コンシューマー・バインディング向け暗号化解除方式の選択
コンシューマー・バインディング向け応答暗号化解除用クライアントを構成するには、 クライアントが SOAP メッセージを暗号化解除するときに使用する データおよび変換アルゴリズムの方式を指定します。
始める前に
以下のステップを実行する前に、XML 暗号化情報に目を通して、 SOAP メッセージの暗号化と暗号化解除について十分理解してください。
暗号化解除構成を完了して SOAP メッセージをセキュアにするには、 以下のタスクを行う必要があります。
- SOAP メッセージ・パーツの暗号化解除を構成します。
- 暗号化解除方式を指定します。
WSSDecryption API と WSSDecryptPart 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 (Uniform Resource Identifier) およびその使用タイプを指定する必要があります。URI が複数の使用タイプに使われる場合、それぞれの使用タイプごとに URI を定義する必要があります。 WebSphere® Application Server は、以下の暗号化解除の使用タイプをサポートしています。
使用タイプ | 説明 |
---|---|
データの暗号化 | データの暗号化と暗号化解除の両方に使用するアルゴリズム URI を指定します。 固定サイズの複数オクテット・ブロック単位でデータを暗号化および暗号化解除します。 |
鍵の暗号化 | 暗号鍵の暗号化と暗号化解除に使用するアルゴリズム URI を指定します。 |
暗号化解除アルゴリズムと暗号化解除パーツ・アルゴリズムを構成するには、 WSSDecryption API と WSSDecryptPart API を使用するか、または管理コンソールでポリシー・セットを構成します。
- WSSDecryption API を使用して、データ暗号化アルゴリズム方式と鍵暗号化アルゴリズム方式を構成します。
- WSSDecryptPart API を使用して変換アルゴリズム方式を構成します。
WSS API プロセスは以下の高水準ステップを実行して、 応答暗号化解除のクライアントを構成するときに使用する暗号化解除アルゴリズム方式と暗号化解除パーツ・ アルゴリズム方式を指定します。
手順
タスクの結果
例
以下の例は、本文の内容を暗号化解除し、 またデータ暗号化アルゴリズムおよび鍵暗号化アルゴリズムをデフォルト値から変更する、WSS API のサンプル・コードです。
// Get the message context
Object msgcontext = getMessageContext();
// Generate the WSSFactory instance
WSSFactory factory = WSSFactory.getInstance();
// Generate the WSSConsumingContext instance
WSSConsumingContext gencont = factory.newWSSConsumingContext();
// Generate the callback handler
X509ConsumeCallbackHandler callbackHandler = new
X509ConsumeCallbackHandler(
"",
"enc-sender.jceks",
"jceks",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Generate WSSDecryption instance
WSSDecryption dec = factory.newWSSDecryption(X509Token.class,
callbackHandler);
// Set the candidates for the data encryption method
// DEFAULT : WSSDecryption.AES128
dec.addAllowedEncryptionMethod(WSSDecryption.AES128);
dec.addAllowedEncryptionMethod(WSSDecryption.AES192);
// Set the candidates for the key encryption method
// DEFAULT : WSSDecryption.KW_RSA_OAEP
dec.addAllowedKeyEncryptionMethod(WSSDecryption.KW_TRIPLE_DES);
// Add the WSSDecryption to WSSConsumingContext
concont.add(dec);
// Validate the WS-Security header
concont.process(msgcontext);