z/OS SunPKCS11 sağlayıcısının kullanımı sırasında kısıtlamalar
SunPKCS11 sağlayıcısını kullandığınızda aşağıdaki kısıtlamalar ve koşullar geçerlidir.
- $JAVA_HOME/conf/security dosyasındaki yargı yetkisi alanı ilke dosyalarında tanımlanan varsayılan güçten daha güçlü şifreleme gerektiren Java™ PKCS#11 uygulamaları, aşağıdaki noktalar dikkate alınarak yazılmalıdır.
- Bu web sitesinden kısıtlamasız ilke dosyalarını alın.
- Kısıtlamasız ilke dosyalarını
US_export_policy.jarvelocal_policy.jar, $JAVA_HOME/conf/security varsayılan güvenlik düzeyi ilke dosyalarının üzerine yazarak kopyalayın.
- SunPKCS11 kural dışı durumu
Template is inconsistentyayınlanırsa ve SunPKCS11 yapılanış kütüğündekiattributesseçeneği ayarlanırsa, özniteliklerin uyumlu olduğunu doğrulayın. Örneğin, genel ya da özel RSA anahtar çifti oluşturulduğundaTemplate is inconsistentkural dışı durumu yayınlanır. SunPKCS11 yapılanış kütüğünde aşağıdaki öznitelikler ayarlanır.attributes(generate, CKO_PUBLIC_KEY, CKK_RSA) = { CKA_SIGN = true }Not: Olağan durumda CKA_SIGN özniteliği bir RSA özel anahtarıyla ilişkilendirildiği için, bu örnek kural dışı duruma neden olur. Vendor defined errordizgisini içeren bir kural dışı durum yayınlandıysa, görüntülenen bozuk kod bir ICSF dönüş kodu ve neden kodudur. 0x'pxxxyyyy' biçimindedir; burada xxx, ICSF dönüş kodudur ve yyyy, ICSF neden kodudur (p değeri yoksayılabilir). Bu kodların anlamını belirlemek için z/OSsürümünüze ilişkin z/OS® Cryptographic Services ICSF Application Programmer's Guide adlı yayına bakın.Vendor defined errorKural dışı durumun dönüş kodu0xc00c008ise, bunun nedeni, izin verilenden daha uzun bir Modulus Exponent 'e sahip, oluşturulmuş bir RSA özel anahtarı olabilir. Bu durumda, Modulus Exponent boyutu z/OS donanım şifreleme ortamınızda 1024 bitle sınırlıdır. Modulus Exponent için izin verilen boyutları belirlemek üzere z/OSsürümünüze ilişkin z/OS Cryptographic Services ICSF Writing PKCS#11 Applications başlıklı konuya bakın. Desteklenen anahtar tipleri ve mekanizmaları bölümüne bakın.Kural dışı durum, aşağıdaki yollardan biri kullanılarak çözülebilir:
- Modulus Exponent 'in boyutunu izin verilen boyutta programlı olarak tanımlayın.
- Bir z/OS donanım şifreleme hızlandırıcı kartını etkinleştirin; bu durumda sistem yöneticinizle iletişim kurun.
Not: Çin Kalan Teoremi (CRT) biçiminde z/OS PKCS #11 RSA özel anahtarları oluşturun. Bu istisnayı aşarlar ve normalde daha iyi performans gösterirler.- Bir SunPKCS11 uygulaması çalıştırıldığında
java.security.NoSuchAlgorithmExceptionkural dışı durumu oluşursa ve algoritma z/OSiçin desteklenen algoritmalar listesinde destekleniyorsa. Bu davranış, z/OS donanım şifreleme kartlarının kullanılamamasından kaynaklanıyor olabilir. Bu sorun ortaya çıkarsa sistem yöneticinize başvurun. - Anahtar kaydırma,
javax.crypto.Cipherwrapveunwrapyöntemleriyle desteklenir. z/OSüzerinde yalnızca belirli sarma senaryoları desteklenir. Onlar aşağıdaki gibidir.- DES, DESede ya da AES anahtarı kullanılarak RSA özel anahtarının sarılması
- RSA genel anahtarı kullanılarak bir DES, DESede ya da AES anahtarının kaydırılması
- DES, DESede ya da AES anahtarı kullanılarak bir DES, DESede ya da AES anahtarının kaydırılması desteklenmez. Ayrıca, bir RSA özel anahtarının RSA genel anahtarıyla kaydırılması desteklenmez.
KeyStore.setKeyEntryyöntemi kullanılarak PKCS#11 anahtar deposuna bir SunPKCS11 anahtarı ayarlandığında, anahtar nesnesi TKDS ' ye kopyalanır ve belirteç özniteliği true olarak ayarlanır.setKeyEntryiçine geçirilen SunPKCS11 anahtarı artık geçerli değil. TKDS ' den geçerli anahtar nesnesini almak içinKeyStore.getKeyyöntemine çağrı yapılmalıdır.- Java PKCS#11 uygulamanız birden çok JVM 'de ya da süreçte çalışıyorsa ve TKDS' ye nesne ekleyip silerse ayrı simgeler kullanılması önerilir. Örneğin, yeni bir RSA genel ve özel anahtar çifti yaratan bir Java PKCS#11 uygulaması çalıştırırsanız,
KeyStore.load, ardından yeni RSA özel anahtarı içinKeystore.setKeyEntryve ardından TOKEN1kullanarak JVM #1 üzerinde bu RSA özel anahtarınınKeystore.deleteEntrykomutunu izler. JVM #2'de Java PKCS#11 uygulaması,KeyStore.deleteEntryJVM #1' de yapılmadan önce TOKEN1 kullanan birKeystore.loadçalıştırır, beklenmedik sonuçlar ortaya çıkabilir. - Java PKCS#11 yapılanış dosyasında
tokenlabelözniteliği kullanılırken, simge erişiminin (SAF CRYPTOZ sınıf kaynakları tarafından denetlenir) her Java PKCS#11 kullanıcısı için ya da bu kullanıcı tarafından yaratılan simgelerle sınırlı olması önerilir. Örneğin, ADMIN adlı kullanıcınınSO.ADMIN*veUSER.ADMIN*için tanımlanmış bir SAF CRYTPOZ profili olur ve bu iki CRYPTOZ profiline CONTROL erişimi olur. Örneğin, RACF ® RACDCERT ya da Sistem SSLgskkymanaraçlarıyla ADMIN kullanıcısı için ya da bu kullanıcı tarafından yaratılan belirteçlerin simge adı ADMIN1olur. Bu tür bir teknik kullanılarak simge erişiminin ayarlanması, PKCS#11 nesne görünürlüğünü sınırlar. SunPKCS11' lerKeyStore.engineLoadgibi, daha az nesne yüklenmesi gerektikçe, bir anahtar deposunu özel anahtar, sertifika ve gizli anahtar nesneleriyle yükleyen yöntemlerin daha hızlı tamamlanmasını sağlar. - SunPKCS11 sağlayıcısı için izleme, java komutu kullanılırken -Djava.security.auth.debug=sunpkcs11 değiştirgesi ayarlanarak etkinleştirilebilir. z/OS PKCS#11 ICSF C-API için izlemeyi etkinleştirme ayrıntıları, z/OSsürümünüze ilişkin z/OS Cryptographic Services ICSF Yazma PKCS#11 Uygulamaları başlıklı konuda açıklanmaktadır. SunPKCS11 sağlayıcısı tarafından desteklenen şifreleme algoritmalarının, anahtar nesnelerinin ve anahtar uzunluklarının tanımları için PKCS #11: Cryptographic Token Interface Standardbelgesine bakın. Ayrıca, Oracle SunPKCS11 sağlayıcısı hakkında daha fazla bilgi için Oracle PKCS#11 Başvuru Kılavuzu' na bakın.