このトピックでは、 Java Secure Socket Extension (JSSE) および Java Cryptography Extension (JCE) プログラミング・インターフェースを使用したトランスポート・セキュリティーについて詳しく説明します。 このトピック内には、IBM バージョンの Java Cryptography Extension Federal Information Processing Standard (IBMJCEFIPS) についての説明があります。
Java Secure Socket Extension (JSSE) は、WebSphere Application Server のトランスポート・セキュリティーを提供します。 JSSE は、データの暗号化、メッセージの保全、 および認証の機能など、Secure Sockets Layer および Transport Layer Security (TLS) プロトコルに 対応する、アプリケーション・プログラミング・インターフェース (API) フレームワークと API の実装を提供します。
JSSE API は、 Java 2 SDK、Standard Edition (J2SDK) のバージョン 1.4 に統合されています。JSSE API の API パッケージは javax.net.ssl.* です。 JSSE API の使用法に関する 資料は、http://java.sun.com/j2se/1.4.2/docs/api/index.html の J2SE 1.4.2 API の資料にあります。
いくつかの JSSE プロバイダーは、 WebSphere Application Server に付属の J2SDK バージョン 1.4 と一緒に出荷されます。IBMJSSE プロバイダーは、 以前の WebSphere Application Server リリースで使用されます。 IBMJSSEFIPS プロバイダーは IBMJSSE プロバイダー と関連しており、サーバー上で FIPS が使用可能な場合に使用されます。 これらのプロバイダーは、 いずれも WebSphere Application Server バージョン 6.x の Java Message Service (JMS) や HTTP トランスポートを処理することができません。 これらのトランスポートは、J2SDK バージョン 1.4 の ネットワーク入出力 (NIO) 非同期チャネルを利用します。
HTTP および JMS トランスポート は、新規 IBMJSSE2 プロバイダーを使用します。 WebSphere Application Server バージョン 6.x の その他のすべてのトランスポートは、 現状では IBMJSSE2 プロバイダーを使用しています。 必要に応じて、従来の IBMJSSE プロバイダーに 切り替えることができます (SSL レパートリー構成で指定)。
新規の IBMJSSE2 プロバイダーの詳細に ついては、http://www.ibm.com/developerworks/java/jdk/security/142/jsse2docs.zip ファイルに ある資料を参照してください。 このファイルを unzip すると、JSSE2 リファレンス・ ガイドは jsse2Docs/JSSE2RefGuide.html、JSSE2 API 資料は jsse2Docs/api/index.html、 さらに JSSE2 サンプルは jsse2Docs/samples として 解凍されます。
カスタマイズ可能な項目 | デフォルト | カスタマイズ方法 |
---|---|---|
X509Certificate | IBM からの X509Certificate インプリメンテーション | cert.provider.x509v1 セキュリティー・プロパティー |
HTTPS プロトコル | IBM からのインプリメンテーション | java.protocol.handler.pkgs システム・プロパティー |
暗号化パッケージ・プロバイダー | IBMJSSE2 | セキュリティー・プロパティー・ファイル内の security.provider.n= 行。 説明を参照。 |
デフォルト鍵ストア | なし | * javax.net.ssl.keyStore システム・プロパティー |
デフォルトのトラストストア | あれば jssecacerts。なければ cacerts。 | * javax.net.ssl.trustStore システム・プロパティー |
デフォルトの鍵マネージャー・ファクトリー | IbmX509 | ssl.KeyManagerFactory.algorithm セキュリティー・プロパティー |
デフォルトのトラスト・マネージャー・ファクトリー | IbmX509 | ssl.TrustManagerFactory.algorithm セキュリティー・プロパティー |
システム・プロパティーの設定によって カスタマイズできるものであれば、 Java コマンドの -D オプションを使用して、 システム・プロパティーを静的に設定します。 システム・プロパティーは、 管理コンソールを使用して設定できます。 あるいは、コード内で java.lang.System.setProperty メソッドを呼び出して、 システム・プロパティーを動的に設定します。 これは、次のようになります。System.setProperty(propertyName,"propertyValue")
Java セキュリティー・プロパティーを 設定してカスタマイズできるものであれば、java.security プロパティー・ファイルで、セキュリティー・プロパティー値を静的に指定します。 このセキュリティー・プロパティーは、propertyName=propertyValue です。 コードで java.security.Security.setProperty メソッドを呼び出して、 Java セキュリティー・プロパティーを動的に設定します。
java.security プロパティー・ファイルは以下のディレクトリーにあります。
app_server_root/java/jre/lib/security ディレクトリー。
ファイル | 説明 |
---|---|
ClientJsse.java | JSSE を使用して、簡単なクライアントとサーバー間の対話をデモンストレーションします。使用可能な暗号スイートがすべて使用されています。 |
OldServerJsse.java | バックレベル・サンプル |
ServerPKCS12Jsse.java | JSSE と PKCS12 鍵ストア・ファイルを使用して、簡単なクライアントとサーバー間の対話をデモンストレーションします。使用可能な暗号スイートがすべて使用されています。 |
ClientPKCS12Jsse.java | JSSE と PKCS12 鍵ストア・ファイルを使用して、簡単なクライアントとサーバー間の対話をデモンストレーションします。使用可能な暗号スイートがすべて使用されています。 |
UseHttps.java | com.ibm.net.ssl.www.protocol クラス の Java プロトコル・ハンドラーを使用 して、SSL 対応 または SSL 非対応 の Web サーバーへのアクセスを例示します。 URL は、接頭部 http または https を付けて指定します。このサイトから戻される HTML が表示されます。 |
javax.net.debug システム・プロパティーを介して構成することにより、JSSE は、 動的なデバッグ・トレース -Djavax.net.debug=true を提供します。
J2EE のデバッグ・バージョンがインストールされている場合、値 true を指定すると、トレース機能が有効になります。
JSSE に対する資料の参照については、セキュリティー: 学習用リソース の項目を参照してください。
Java Cryptography Extension (JCE) は、WebSphere Application Server 用の暗号アルゴリズム、鍵アルゴリズム、およびハッシュ・アルゴリズムを提供します。 JCE は、暗号化、鍵生成、鍵一致、 およびメッセージ確認コード (MAC) の各アルゴリズムのフレームワークと実装も提供します。 暗号化のサポートには、対称、非対称、ブロック、ストリームの各暗号が含まれます。
詳しくは、以下の Web サイトで、JCE についての情報を参照してください。 http://www.ibm.com/developerworks/java/jdk/security/142/
JCE API については、 Web サイト http://www.ibm.com/developerworks/java/jdk/security/ に詳しい説明があります。
ファイル | 説明 |
---|---|
SampleDSASignature.java | DSA 鍵のペア (公開鍵と秘密鍵) を生成し、 その鍵を使用して、SHA1withDSA アルゴリズムによって、 メッセージにデジタル署名をする方法をデモンストレーションします。 |
SampleMarsCrypto.java | Mars 秘密鍵の生成方法、および Mars の暗号化と暗号化解除を行う方法をデモンストレーションします。 |
SampleMessageDigests.java | MD2 および MD5 アルゴリズムのメッセージ・ダイジェストを使用する方法をデモンストレーションします。 |
SampleRSACrypto.java | RSA 鍵ペアの生成方法、および RSA の暗号化と暗号化解除を行う方法をデモンストレーションします。 |
SampleRSASignatures.java | RSA 鍵のペア (公開鍵と秘密鍵) を生成し、その鍵を使用して、SHA1withRSA アルゴリズム を用いてメッセージにデジタル署名をする方法を例示します。 |
SampleX509Verification.java | X509 証明書を検証する方法を例示します。 |
JCE に関する資料については、セキュリティー: 学習用リソース を参照してください。