ジェネレーター・バインディング用の暗号化方式の選択
ジェネレーター・バインディング向け要求暗号化用クライアントを構成するには、 クライアントが SOAP メッセージを暗号化するときに使用する暗号化方式を指定する必要があります。
始める前に
以下のステップを実行する前に、XML 暗号化情報に目を通して、 SOAP メッセージの暗号化と暗号化解除について十分理解してください。
- WSSEncryption API を使用して、データ暗号化アルゴリズム方式と鍵暗号化アルゴリズム方式を構成します。
- 必要に応じて、WSSEncryptPart API を使用して変換アルゴリズム方式を構成します。 デフォルトでは、変換アルゴリズムはありません。
このタスクについて
一部の暗号化解除関連の定義は、XML 暗号化仕様に基づいています。 以下の情報は、データ暗号化に関連するいくつかの用語の定義です。
- データ暗号化方式アルゴリズム
- データ暗号化アルゴリズムでは、データ暗号化方式のアルゴリズム URI (Uniform Resource Identifier) を指定します。
このアルゴリズムは、固定サイズの複数オクテット・ブロックでデータを暗号化および暗号化解除します。
デフォルトでは、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) ポリシー・ファイルをダウンロードする必要があります。
- 鍵暗号化方式アルゴリズム
- 鍵暗号化アルゴリズムでは、データの暗号化に使用される鍵を暗号化する方式のアルゴリズム URI (Uniform Resource Identifier) を指定します。
このアルゴリズムは、暗号化鍵および暗号化解除鍵のために指定されている公開鍵暗号化アルゴリズムです。
デフォルトでは、RSA-OAEP アルゴリズムは、SHA1 メッセージ・ダイジェスト・アルゴリズムを使用して、暗号化操作の一部としてメッセージ・ダイジェストを計算します。 オプションで、鍵暗号化アルゴリズム・プロパティーを指定することにより、SHA256 または SHA512 メッセージ・ダイジェスト・アルゴリズムを使用できます。
プロパティー名は、com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod です。 プロパティー値は、以下のダイジェスト方式の URI のいずれかです。- http://www.w3.org/2001/04/xmlenc#sha256
- http://www.w3.org/2001/04/xmlenc#sha512
デフォルトで RSA-OAEP アルゴリズムは、OAEPParams 用のオプショナル・エンコードのオクテット・ストリングに対してヌル・ストリングを使用します。 鍵暗号化アルゴリズム・プロパティーを指定することにより、明示的エンコードのオクテット・ストリングを提供できます。 プロパティー名として、com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams を指定できます。プロパティー値は、オクテット・ストリングを Base 64 でエンコードした値です。
重要: これらのダイジェスト方式および OAEPParams プロパティーは、 ジェネレーター側でのみ設定することができます。コンシューマー側では、着信 SOAP メッセージからこれらのプロパティーが読み取られます。KW-AES256 および KW-AES192 鍵暗号化アルゴリズムを使用する場合、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 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 | 鍵暗号化アルゴリズムの URI、鍵ラップ AES 128 の場合: http://www.w3.org/2001/04/xmlenc#kw-aes128 |
WSSEncryption.KW_AES192 | 鍵暗号化アルゴリズムの URI、鍵ラップ AES 192 の場合:
http://www.w3.org/2001/04/xmlenc#kw-aes192 制約事項: 構成済みアプリケーションを Basic Security Profile (BSP) に準拠させる場合は、192 ビットの鍵暗号化アルゴリズムを使用しないでください。
|
WSSEncryption.KW_AES256 | 鍵暗号化アルゴリズムの URI、鍵ラップ AES 256 の場合: http://www.w3.org/2001/04/xmlenc#kw-aes256 |
WSSEncryption.KW_RSA_OAEP (デフォルト値) | 鍵暗号化アルゴリズムの URI、鍵ラップ RSA OAEP の場合: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
WSSEncryption.KW_RSA15 | 鍵暗号化アルゴリズムの URI、鍵ラップ RSA 1.5 の場合: 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 プロセス・タスクを検討してください。