JSSE独自の考慮事項
SunJSSE のコードは100% Java™であるため、プラットフォームに依存せず、 z/OS® 固有のコードは含まれていません。 しかし、他のJavaセキュリティコンポーネントには、 z/OS 固有の機能を提供し、 SunJSSE が使用できるものもあります。 これらの機能は、 z/OS プラットフォームに存在する可能性のあるハードウェア暗号化プロバイダーを活用し、 RACF® に証明書を保存するのに役立ちます。
SunJSSE 用のハードウェア暗号化 z/OS
SunJSSE IBMJCECCA ハードウェア暗号化プロバイダーを利用できるため、 アプリケーションで暗号化デバイスを利用できます。 SunJSSE
- IBMJCECCAプロバイダーは、 java.security プロバイダーリスト内の最初のJCE暗号プロバイダーでなければなりません。
- JCECCAKS キーストアなどの IBMJCECCA プロバイダーがサポートするキーストアを使用してください。
- OpenJCEPlus プロバイダーは、 java.security プロバイダーリスト内の最初のJCE暗号プロバイダーでなければなりません。
- IBMZSecurity、SUN、または SunJCE などの別のJCEプロバイダーが実装したキーストアを使用してください。
OpenJCEPlus, の詳細については、 OpenJCEPlus provider をご覧ください。
RACF 秘密鍵と証明書のキーホルダー
RACF キーリングは、 が、 というIBMJCECCAプロバイダー、 というIBMZSecurityプロバイダー、および というIBMJCEHYBRIDプロバイダーに含まれるキーストアを使用することで利用できます。 SunJSSE JCECCARACFKS JCERACFKS JCEHYBRIDRACFKS
ここでは、暗号化操作に IBMJCECCA プロバイダーを使用して、 JCECCARACFKS キーストアで KeyManagerFactory を初期化する方法を例示します。
KeyStore ks = KeyStore.getInstance("JCECCARACFKS");
com.ibm.crypto.hdwrCCA.provider.RACFInputStream inputStream = new
com.ibm.crypto.hdwrCCA.provider.RACFInputStream(username,keyring,password.toCharArray());
ks.load(inputStream,password.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("IbmX509");
kmf.init(ks, password.toCharArray());
RACF キーリングは、URLを使用して希望する キーリングを指定することでもアクセスできます。 RACF 例えば、次のコードでは、アプリケーションが RACF キーリングをトラストストアとして指定できることを示しています。
KeyStore ks = null;
...
// Setup properties for TrustManagerFactory
System.setProperty("javax.net.ssl.trustStore","safkeyringjce://Userid/Keyring");
System.setProperty("javax.net.ssl.trustStoreType","JCERACFKS");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
...
TrustManagerFactory tmf = TrustManagerFactory.getInstance("IbmX509");
tmf.init(ks);
IBMZSecurity、IBMJCECCA、IBMJCEHYBRIDプロバイダーのいずれかを指定するには、次の3つの URL safkeyringオプションが利用可能です。 この方法では、safkeyring URLは RACF キーストアの種類によって異なります。 この方法では、 java.protocol.handler.pkgs は必要ありません。
JCERACFKSキーストアの URL はsafkeyringjceです。JCECCARACFKSキーストアの URL はsafkeyringjceccaです。JCEHYBRIDRACFKSキーストアの URL はsafkeyringjcehybridです。
RACF キーストア非依存の URL safkeyring safkeyring:// は、オプション java.protocol.handler.pkgs と共に、 RACF キーリングとユーザーIDを指定するために使用できます。
- IBMZSecurityプロバイダーから、
safkeyringjce://またはsafkeyring://+java.protocol.handler.pkgs=com.ibm.crypto.zsecurity.provider - IBMJCECCAプロバイダーから、
safkeyringjcecca://またはsafkeyring://+java.protocol.handler.pkgs=com.ibm.crypto.hdwrCCA.provider - IBMJCEHYBRIDプロバイダーから、
safkeyringjcehybrid://またはsafkeyring://+java.protocol.handler.pkgs=com.ibm.crypto.ibmjcehybrid.provider