JSSE および JCE プログラミング・インターフェースによるセキュア・トランスポート

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) のバージョン 5 に統合されています。 JSSE API の API パッケージは、javax.net.ssl.* です。JSSE API の使用法に関する資料は、http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html の J2SE 6 API の資料にあります。

いくつかの JSSE プロバイダーは、WebSphere Application Server に付属の Java 2 SDK バージョン 5 と一緒に出荷されます。 IBMJSSE プロバイダーは、 以前の WebSphere Application Server リリースで使用されます。

新規の IBMJSSE2 プロバイダーについて詳しくは、http://www.ibm.com/developerworks/java/jdk/security/60/ にある資料を参照してください。

Java Secure Socket Extension のカスタマイズ

多くの JSSE の性質を カスタマイズすることができます。 カスタマイズするには、暗号化パッケージ・プロバイダー、X509Certificate、 および HTTPS プロトコルのさまざまな実装をプラグインするか、 あるいはさまざまなデフォルトの鍵ストア・ファイル、鍵マネージャー・ファクトリー、およびトラスト・マネージャー・ ファクトリーを指定します。 以下の表に、カスタマイズできる性質とそのデフォルト値、およびカスタマイズに使用されるメカニズムが要約されています。
表 1. カスタマイズ可能な項目. カスタマイズできる鍵の性質は、以下のとおりです。
カスタマイズ可能な項目 デフォルト カスタマイズ方法
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 プロパティー・ファイルは以下のディレクトリーにあります。

[AIX Solaris HP-UX Linux Windows]app_server_root/java/jre/lib/security ディレクトリー。

[z/OS]app_server_root/properties ディレクトリー。

[IBM i]profile_root/properties ディレクトリー。

アプリケーション・プログラミング・インターフェース

JSSE では、 標準のアプリケーション・プログラミング・インターフェース (API) は、 javax.net ファイル、javax.net.ssl ファイル、 および javax.security.cert ファイルのパッケージで入手可能です。 API は、以下のものをカバーしています。
  • ソケットと SSL ソケット
  • ソケットと SSL ソケットを作成するファクトリー
  • セキュア・ソケット・ファクトリー用のファクトリーとして機能するセキュア・ソケット・コンテキスト
  • 鍵マネージャー・インターフェースとトラスト・マネージャー・インターフェース
  • セキュア HTTP URL 接続クラス
  • 公開鍵証明書 API
[AIX Solaris HP-UX Linux Windows][IBM i]JSSE API についての詳細は、 以下の情報にアクセスしてください。
バージョン 1.6
  1. Web サイト http://www.ibm.com/developerworks/java/jdk/security/ にアクセスします。
  2. Java 1.6 をクリックします。
  3. 「Java Secure Socket Extension (JSSE) Guide」セクションの「Javadoc HTML documentation」をクリックします。

Java Secure Socket Extension を使用したサンプル

Java Secure Socket Extension (JSSE) は、その機能を説明するサンプルも提供しています。 Java Secure Socket Extension (JSSE) は、その機能を説明するサンプルも提供しています。 以下の場所にあるサンプルにアクセスできます。
バージョン 1.6
  1. Web サイト http://www.ibm.com/developerworks/java/jdk/security/ にアクセスします。
  2. Java 1.6 をクリックします。
  3. 「Java Secure Socket Extension (JSSE) Guide」セクションの「jssedocs_samples.zip」をクリックします。
表 2. 抽出ファイル. 以下の表には、抽出ファイルをリストしています。
ファイル 説明
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 が表示されます。
詳しい説明は、ソース・コードを参照してください。サンプルを実行する前に、これらの指示に従ってください。

Java 2 セキュリティーの許可

JSSE を使用してアプリケーションを実行するには、 以下の許可が必要になる場合があります。 このリストは、単なる参照用です。
  • java.util.PropertyPermission "java.protocol.handler.pkgs", "write"
  • java.lang.RuntimePermission "writeFileDescriptor"
  • java.lang.RuntimePermission "readFileDescriptor"
  • java.lang.RuntimePermission "accessClassInPackage.sun.security.x509"
  • java.io.FilePermission "${user.install.root}${/}etc${/}.keystore", "read"
  • java.io.FilePermission "${user.install.root}${/}etc${/}.truststore", "read"
IBMJSSE プロバイダーの場合:
  • java.security.SecurityPermission "putProviderProperty.IBMJSSE"
  • java.security.SecurityPermission "insertProvider.IBMJSSE"
SUNJSSE プロバイダーの場合
  • java.security.SecurityPermission "putProviderProperty.SunJSSE"
  • java.security.SecurityPermission "insertProvider.SunJSSE"

デバッグ

javax.net.debug システム・プロパティーを介して構成することにより、JSSE は、 動的なデバッグ・トレース -Djavax.net.debug=true を提供します。

[AIX Solaris HP-UX Linux Windows][IBM i]J2EE のデバッグ・バージョンがインストールされている場合、値 true を指定すると、トレース機能が有効になります。

[z/OS]true を指定すると、 トレース機能が有効になります。 管理コンソールを使用して、アプリケーション・サーバーのデバッグのためのシステム・プロパティーを設定します。

資料

JSSE に対する資料の参照については、『セキュリティー: 学習用リソース』トピックを参照してください。

JCE

Java Cryptography Extension (JCE) は、WebSphere Application Server 用の暗号アルゴリズム、鍵アルゴリズム、およびハッシュ・アルゴリズムを提供します。JCE は、暗号化、鍵生成、鍵一致、 およびメッセージ確認コード (MAC) の各アルゴリズムのフレームワークと実装も提供します。 暗号化のサポートには、対称、非対称、ブロック、ストリームの各暗号が含まれます。

IBMJCE

IBM バージョンの Java Cryptography Extension (IBMJCE) は、 WebSphere Application Server で使用される JCE 暗号サービス・プロバイダーの実装です。IBMJCE は SunJCE に似ていますが、IBMJCE は、SunJCE にはない、 数多くのアルゴリズムを提供します。
  • 暗号アルゴリズム (AES、DES、TripleDES、PBEs、Blowfish など)
  • 署名アルゴリズム (SHA1withRSA、MD5withRSA、SHA1withDSA)
  • メッセージ・ダイジェスト・アルゴリズム (MD5、MD2、SHA1、SHA-256、SHA-384、SHA-512)
  • メッセージ確認コード (HmacSHA1、HmacMD5)
  • 鍵一致アルゴリズム (DiffieHellman)
  • 乱数生成アルゴリズム (IBMSecureRandom、SHA1PRNG)
  • 鍵ストア (JKS、JCEKS、PKCS12、JCERACFKS [z/OS のみ])
IBMJCE は、com.ibm.crypto.provider.* パッケージに所属します。

詳しくは、以下の Web サイトで、JCE についての情報を参照してください。 http://www.ibm.com/developerworks/java/jdk/security/60/

IBMJCEFIPS

IBM バージョンの Java Cryptography Extension Federal Information Processing Standard (IBMJCEFIPS) は、 WebSphere Application Server で使用される JCE 暗号サービス・プロバイダーの実装です。IBMJCEFIPS サービス・プロバイダーには、以下のものが実装されています。
  • 署名アルゴリズム (SHA1withDSA、SHA1withRSA)
  • 暗号アルゴリズム (AES、TripleDES、RSA)
  • 鍵一致アルゴリズム (DiffieHellman)
  • キー (ペア) ジェネレーター (DSA、AES、TripleDES、HmacSHA1、RSA、DiffieHellman)
  • メッセージ確認コード (MAC) (HmacSHA1)
  • メッセージ・ダイジェスト (MD5、SHA-1、SHA-256、SHA-384、SHA-512)
  • アルゴリズム・パラメーター・ジェネレーター (DiffieHellman、DSA)
  • アルゴリズム・パラメーター (AES、DiffieHellman、DES、TripleDES、DSA)
  • キー・ファクトリー (DiffieHellman、DSA、RSA)
  • 秘密鍵ファクトリー (AES、TripleDES)
  • 証明書 (X.509)
  • セキュア・ランダム (IBMSecureRandom)

アプリケーション・プログラミング・インターフェース

Java Cryptography Extension (JCE) のアーキテクチャーは、プロバイダーをベースとしています。プロバイダーは、JCE により定義されている API を実装することによって、 JCE フレームワークにプラグインすることができます。 JCE API は以下のものに対応しています。
  • 対称バルク暗号化 (DES、RC2、IDEA など)
  • 対称ストリーム暗号化 (RC4 など)
  • 非対称暗号化 (RSA など)
  • パスワード・ベースの暗号化 (PBE)
  • 鍵一致
  • メッセージ確認コード

[AIX Solaris HP-UX Linux Windows][IBM i]JCE API については、 Web サイト http://www.ibm.com/developerworks/java/jdk/security/ に詳しい説明があります。

Java Cryptography Extension を使用したサンプル

サンプルは、 Web サイト http://www.ibm.com/developerworks/java/jdk/security/jceDocs_samples.zip ファイルにあります。 このファイルを unzip して、jceDocs/samples ディレクトリーで以下のファイルを探します。
表 3. Java Cryptography Extension を使用したサンプル. 以下の表では、Java Cryptography Extension を使用したサンプルについて説明します。
ファイル 説明
SampleDSASignature.java DSA 鍵のペア (公開鍵と秘密鍵) を生成し、 その鍵を使用して、SHA1withDSA アルゴリズムによって、 メッセージにデジタル署名をする方法をデモンストレーションします。
SampleMarsCrypto.java Mars 秘密鍵の生成方法、および Mars の暗号化と暗号化解除を行う方法をデモンストレーションします。
SampleMessageDigests.java MD2 および MD5 アルゴリズムのメッセージ・ダイジェストを使用する方法をデモンストレーションします。
SampleRSACrypto.java RSA 鍵ペアの生成方法、および RSA の暗号化と暗号化解除を行う方法をデモンストレーションします。
SampleRSASignatures.java RSA 鍵のペア (公開鍵と秘密鍵) を生成し、その鍵を使用して、SHA1withRSA アルゴリズム を用いてメッセージにデジタル署名をする方法を例示します。
SampleX509Verification.java X509 証明書を検証する方法を例示します。

資料

JCE に関する資料については、『セキュリティー: 学習用リソース』トピックを参照してください。


トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_jsse
ファイル名:csec_jsse.html