ジェネレーター・バインディング向け要求暗号化用クライアントを構成するには、 クライアントが SOAP メッセージを暗号化するときに使用する暗号化方式を指定する必要があります。
以下のステップを実行する前に、XML 暗号化情報に目を通して、 SOAP メッセージの暗号化と暗号化解除について十分理解してください。
一部の暗号化解除関連の定義は、XML 暗号化仕様に基づいています。 以下の情報は、データ暗号化に関連するいくつかの用語の定義です。
デフォルトでは、Java Cryptography Extension (JCE) は、効果が制限または限定された強力な暗号に付属しています。 192 ビットおよび 256 ビットの Advanced Encryption Standard (AES) 暗号化アルゴリズムを使用するには、 無制限の管轄権ポリシー・ファイルを適用する必要があります。
AES256-cbc アルゴリズムと AES192-cbc アルゴリズムの場合、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java™ Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。
デフォルトでは、RSA-OAEP アルゴリズムは、SHA1 メッセージ・ダイジェスト・アルゴリズムを使用して、暗号化操作の一部としてメッセージ・ダイジェストを計算します。 オプションで、鍵暗号化アルゴリズム・プロパティーを指定することにより、SHA256 または SHA512 メッセージ・ダイジェスト・アルゴリズムを使用することができます。
デフォルトで RSA-OAEP アルゴリズムは、OAEPParams 用のオプショナル・エンコードのオクテット・ストリングに対してヌル・ストリングを使用します。 鍵暗号化アルゴリズム・プロパティーを指定することにより、明示的エンコードのオクテット・ストリングを提供できます。 プロパティー名として、com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams を指定することができます。 プロパティー値は、オクテット・ストリングを Base 64 でエンコードした値です。
KW-AES256 および KW-AES192 鍵暗号化アルゴリズムを使用する場合、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java™ Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。
使用タイプ | 説明 |
---|---|
データの暗号化 | データの暗号化と暗号化解除の両方に使用するアルゴリズム URI を指定します。 固定サイズの複数オクテット・ブロック単位でデータを暗号化および暗号化解除します。 |
鍵の暗号化 | 暗号鍵の暗号化と暗号化解除に使用するアルゴリズム URI を指定します。 |
データの暗号化
WebSphere Application Server は、以下の事前構成されたデータ暗号化アルゴリズムをサポートします。
データの暗号化名 | アルゴリズム URI |
---|---|
WSSEncryption.AES128 (デフォルト値) | データ暗号化アルゴリズム AES 128 の URI: http://www.w3.org/2001/04/xmlenc#aes128-cbc |
WSSEncryption.AES192 | データ暗号化アルゴリズム AES 192 の URI: http://www.w3.org/2001/04/xmlenc#aes192-cbc |
WSSEncryption.AES256 | データ暗号化アルゴリズム AES 256 の URI: http://www.w3.org/2001/04/xmlenc#aes256-cbc |
WSSEncryption.TRIPLE_DES | データ暗号化アルゴリズム 3DES の URI: http://www.w3.org.2001/04/xmlenc#tripledes-cbc |
鍵の暗号化
WebSphere Application Server は、以下の事前構成された鍵暗号化アルゴリズムをサポートします。
鍵の暗号化名 | アルゴリズム URI |
---|---|
WSSEncryption.KW_AES128 | 鍵暗号化アルゴリズム、鍵ラップ AES 128 の URI: http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSEncryption.KW_AES192 | 鍵暗号化アルゴリズム、鍵ラップ AES 192 の URI:
http://www.w3.org/2001/04/xmlenc#kw-aes192 注:
ご使用の構成済みアプリケーションを Basic Security Profile (BSP) に準拠させる場合は、
192 ビットの鍵暗号化アルゴリズムを使用しないでください。
|
WSSEncryption.KW_AES256 | 鍵暗号化アルゴリズム、鍵ラップ AES 256 の URI: http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSEncryption.KW_RSA_OAEP (デフォルト値) | 鍵暗号化アルゴリズム、鍵ラップ RSA OAEP の URI: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSEncryption.KW_RSA15 | 鍵暗号化アルゴリズム、鍵ラップ RSA 1.5 の URI: http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
WSSEncryption.KW_TRIPLE_DES | http://www.w3.org/2001/04/xmlenc#kw-tripledes |
暗号化アルゴリズム方式と暗号化パーツ・アルゴリズム方式を構成するには、 WSSEncryption API を使用するか、または管理コンソールを使用してポリシー・セットを構成します。
WSS API プロセスは以下の高水準ステップを実行して、 クライアントを要求暗号化用に構成するときに使用する暗号化方式を指定します。
以下の例は、 WSSEncryption.setEncryptionMethod() と WSSEncryption.setKeyEncryptionMethod() を使用する WSS API のサンプル・コードです。
// Get the message context Object msgcontext = getMessageContext(); // Generate the WSSFactory instance WSSFactory factory = WSSFactory.getInstance(); // Generate the WSSGenerationContext instance WSSGenerationContext gencont = factory.newWSSGenerationContext(); // Generate callback handler X509GenerateCallbackHandler callbackHandler = new X509GenerateCallbackHandler( "", "enc-sender.jceks", "jceks", "storepass".toCharArray(), "bob", null, "CN=Bob, O=IBM, C=US", null); // Generate the security token used for encryption SecurityToken token = factory.newSecurityToken(X509Token.class , callbackHandler); // Generate WSSEncryption instance WSSEncryption enc = factory.newWSSEncryption(token); // Set the data encryption method // DEFAULT: WSSEncryption.AES128 enc.setEncryptionMethod(WSSEncryption.TRIPLE_DES); // Set the key encryption method // DEFAULT: WSSEncryption.KW_RSA_OAEP enc.setEncryptionMethod(WSSEncryption.KW_RSA15); // Add the WSSEncryption to the WSSGenerationContext gencont.add(enc); // Generate the WS-Security header gencont.process(msgcontext);
次に、変換アルゴリズムを追加する場合は、 WSSEncryptPart API プロセス・タスクを検討してください。