ジェネレーター・バインディング用の暗号化方式の選択

ジェネレーター・バインディング向け要求暗号化用クライアントを構成するには、 クライアントが SOAP メッセージを暗号化するときに使用する暗号化方式を指定する必要があります。

始める前に

以下のステップを実行する前に、XML 暗号化情報に目を通して、 SOAP メッセージの暗号化と暗号化解除について十分理解してください。

クライアントが 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 ポリシー・ファイルをダウンロードする必要があります。

重要: お客様の国において、暗号ソフトウェアの輸入、所持、使用、または他国への再輸出が規制されている可能性があります。 無制限ポリシー・ファイルをダウンロードまたは使用する前に、お客様の国の法律、規制、暗号ソフトウェアの輸入、所持、使用、または他国への再輸出に関する方針を確認し、許可されているかどうかを判別してください。
表 1. 暗号化の使用タイプ. 暗号化の使用タイプは、暗号化方式を指定します。
使用タイプ 説明
データの暗号化 データの暗号化と暗号化解除の両方に使用するアルゴリズム URI を指定します。 固定サイズの複数オクテット・ブロック単位でデータを暗号化および暗号化解除します。
鍵の暗号化 暗号鍵の暗号化と暗号化解除に使用するアルゴリズム URI を指定します。

データの暗号化

WebSphere® Application Server は、 以下の事前構成済みデータ暗号化アルゴリズムをサポートしています。

表 2. データ暗号化アルゴリズム. 事前構成された以下の暗号化アルゴリズム が 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 は、次の事前構成済み鍵暗号化アルゴリズムをサポートしています。

表 3. 鍵暗号化アルゴリズム. 事前構成された以下の暗号化アルゴリズム が 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 を使用する場合は、ポリシー・セットを使用する Web サービスのエンドポイントと相互運用することができなくなります。

WSS API プロセスは以下の高水準ステップを実行して、 クライアントを要求暗号化用に構成するときに使用する暗号化方式を指定します。

手順

  1. WSSEncryption API を使用して、必要なデータ暗号化アルゴリズムを追加します。 データ暗号化アルゴリズムは、 SOAP メッセージのパーツを暗号化または暗号化解除するために使用されます。 データ暗号化アルゴリズムでは、データ暗号化方式のアルゴリズム URI (Uniform Resource Identifier) を指定します。

    クライアント・ジェネレーター構成は、 プロバイダー・コンシューマーの構成と一致する必要があります。

    デフォルトのデータ暗号化アルゴリズムは AES 128 です。データの暗号化名は AES128 で、 データ暗号化アルゴリズムの URI は http://www.w3.org/2001/04/xmlenc#aes128-cbc です。 WebSphere Application Server は、 以下の事前構成済みデータ暗号化アルゴリズムをサポートしています。

    • AES 128: http://www.w3.org/2001/04/xmlenc#aes128-cbc

      AES 128 アルゴリズムは、 デフォルトのデータ・アルゴリズム方式です。

    • AES 192: http://www.w3.org/2001/04/xmlenc#aes192-cbc

      構成済みアプリケーションを Basic Security Profile (BSP) に準拠させる場合は、 192 ビットの鍵暗号化アルゴリズムを使用しないでください。

      この AES 192-cbc アルゴリズムを使用するには、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。

    • AES 256: http://www.w3.org/2001/04/xmlenc#aes256-cbc

      この AES 256-cbc アルゴリズムを使用するには、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。

    • TRIPLEDES: http://www.w3.org/2001/04/xmlenc#tripledes-cbc
  2. 必要に応じて、別のデータ暗号化アルゴリズムを指定するように WSSEncryption API 方式を変更します。 例えば、以下のコードを追加して、デフォルトの AES 128 アルゴリズムから Triple DES アルゴリズムに変更することも可能です。
    // Default data encryption algorithm: AES128
    WSSEncryption enc = factory.newWSSEncryption(x509t); 
       enc.setEncryptionMethod(EncryptionMethod.TRIPLEDES_CBC);
    gencont.add(enc); 
  3. WSSEncryption API を使用して、必要な鍵暗号化アルゴリズムを追加します。 鍵暗号化アルゴリズムは、 SOAP メッセージ内のメッセージ・パーツの暗号化に使用する鍵を暗号化するために使用されます。 暗号鍵 (メッセージ・パーツの暗号化に使用される鍵) が暗号化されない場合は、 暗号化解除 API で「false」を選択して暗号化鍵に一致させます。

    クライアント・ジェネレーター構成は、 プロバイダー・コンシューマーの構成と一致する必要があります。

    鍵暗号化アルゴリズムのデフォルト値は、鍵ラップ RSA OAP です。 鍵の暗号化名は KW_RSA_OAEP で、 鍵暗号化アルゴリズムの URI は http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p です。 WebSphere Application Server は、次の事前構成済み鍵暗号化アルゴリズムをサポートしています。

    • KW AES128: http://www.w3.org/2001/04/xmlenc#kw-aes128
    • KW AES192: http://www.w3.org/2001/04/xmlenc#kw-aes192

      この鍵ラップ AES 192 アルゴリズムを使用するには、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。

      構成済みアプリケーションを Basic Security Profile (BSP) に準拠させる場合は、 192 ビットの鍵暗号化アルゴリズムを使用しないでください。

      KW AES 256: http://www.w3.org/2001/04/xmlenc#kw-aes256

      この鍵ラップ AES 256-cbc アルゴリズムを使用するには、Web サイト http://www.ibm.com/developerworks/java/jdk/security/index.html から非制限 Java Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。

    • KW RSA OAEP: http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p.

      KW RSA OAEP アルゴリズムは、 デフォルトの鍵アルゴリズム方式です。

      Software Development Kit (SDK) バージョン 1.4 で実行する場合は、 サポートされる鍵トランスポート・アルゴリズムのリストに、このアルゴリズムは含まれていません。 SDK バージョン 1.5 で実行する場合、このアルゴリズムはサポートされる鍵トランスポート・アルゴリズムのリストに表示されます。 詳しくは、 http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1pを参照してください。

    • KW RSA15: http://www.w3.org/2001/04/xmlenc#rsa-1_5
    • KW TRIPLE DES: http://www.w3.org/2001/04/xmlenc#kw-tripledes
    注: Web Services Secure Conversation の場合、WSSEncryption API で、 以下のような追加の鍵関連情報を指定することもできます。
    • algorithmName
    • keyLength

タスクの結果

エラー条件がある場合は、WSSException が発生します。正常な場合、API が WSSGenerationContext.process() を呼び出し、WS-Security ヘッダーが生成されて、SOAP メッセージが Web Services Security を使用して保護されます。

以下の例は、 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 プロセス・タスクを検討してください。


トピックのタイプを示すアイコン タスク・トピック



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