WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

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

ジェネレーター・バインディング向け要求暗号化用クライアントを構成するには、 クライアントが 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 から非制限 Java™ Cryptography Extension (JCE) ポリシー・ファイルをダウンロードする必要があります。

表 1. 暗号化の使用タイプ
使用タイプ 説明
データの暗号化 データの暗号化と暗号化解除の両方に使用するアルゴリズム URI を指定します。 固定サイズの複数オクテット・ブロック単位でデータを暗号化および暗号化解除します。
鍵の暗号化 暗号鍵の暗号化と暗号化解除に使用するアルゴリズム URI を指定します。

データの暗号化

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

表 2. データ暗号化アルゴリズム
データの暗号化名 アルゴリズム 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. 鍵暗号化アルゴリズム
鍵の暗号化名 アルゴリズム 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 を使用する場合は、 ポリシー・セットを使用する 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 サービス・セキュリティーを使用して保護されます。

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




関連概念
XML 暗号化
関連タスク
WSSEncryption API を使用した SOAP メッセージの暗号化
WSS API を使用したジェネレーター・セキュリティー・トークンの構成
twbs_confwssdecryption.html
WSS API を使用してメッセージの機密性を保護するための 暗号化の構成
関連情報
XML Encryption Syntax and Processing W3C Recommendation 10 December 2002
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_confwssencryptalgorithms.html