暗号化方式

要求生成プログラム・バインディングの設定では、暗号化方式に SOAP メッセージの暗号化で使用するデータ暗号化アルゴリズムおよび鍵暗号化アルゴリズムの指定が含まれます。 暗号化用 WSS API (WSSEncryption) は、アルゴリズム名、およびデータ暗号化方式と鍵暗号化方式のマッチング・アルゴリズム URI (Uniform Resource Identifier) を指定します。 データ暗号化アルゴリズムと鍵暗号化アルゴリズムを指定すると、それらのアルゴリズムで暗号化されたエレメントのみが受け入れられます。

データ暗号化アルゴリズム

データ暗号化アルゴリズムは、本文とシグニチャーを含む SOAP メッセージの各部を暗号化するために使用します。 データ暗号化解除アルゴリズムは、各データ暗号化アルゴリズム・タイプのアルゴリズム URI (Uniform Resource Identifier) を指定します。

以下の事前構成済みデータ暗号化アルゴリズムがサポートされています。
表 1. データ暗号化アルゴリズム. これらのアルゴリズムが SOAP メッセージの暗号化に使用されます。
データ暗号化アルゴリズム名 アルゴリズム 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 データ暗号化アルゴリズム TRIPLE DES の URI: http://www.w3.org/2001/04/xmlenc#tripledes-cbc

デフォルトでは、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) ポリシー・ファイルをダウンロードする必要があります。

ジェネレーター側の暗号化用に構成されたデータ暗号化アルゴリズムは、コンシューマー側の暗号化解除用に構成されたデータ暗号化アルゴリズムと一致している必要があります。

鍵暗号化アルゴリズム

このアルゴリズムは、鍵の暗号化と暗号化解除に使用されます。この鍵情報は、デジタル署名および暗号化用の鍵の生成に必要な構成を指定する際に使用します。 署名情報の構成と暗号化情報の構成で、鍵情報を共有することができます。 コンシューマー側の鍵情報は、受信メッセージにおけるデジタル署名の検証、または暗号化されたメッセージ・パーツの暗号化解除に使用する鍵の情報を指定するために使用します。 要求生成プログラムはクライアント用に構成されます。

注: ポリシー・セットは対称鍵の暗号化をサポートしません。 WSS API を対称鍵の暗号化で使用する場合、ポリシー・セットを使用している Web サービスのエンドポイントとの間では操作が行えません。

鍵暗号化アルゴリズムは、鍵暗号化方式のアルゴリズム URI (Uniform Resource Identifier) を指定します。 次の事前構成済み鍵暗号化アルゴリズムがサポートされています。

表 2. サポートされている事前構成済み鍵暗号化アルゴリズム. これらのアルゴリズムが鍵の暗号化と暗号化解除に使用されます。
WSS API 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 鍵暗号化アルゴリズムの URI、キー・ラップ TRIPLE DES の場合: http://www.w3.org/2001/04/xmlenc#kw-tripledes
鍵に関連する以下のような追加情報を指定して、会話をセキュアにする必要があります。
  • algorithmName
  • keyLength
デフォルトでは、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 ポリシー・ファイルをダウンロードする必要があります。

生成プログラム用の鍵暗号化アルゴリズムは、 コンシューマー用に構成された鍵暗号化解除アルゴリズムと一致していなければなりません。

以下は、データ暗号化方式で Triple-DES を使用し、鍵暗号化方式で RSA1.5 を使用する暗号化のサンプル・コードの例です。

	  // get the message context
	  Object msgcontext = getMessageContext();

	  // generate WSSFactory instance
	  WSSFactory factory = WSSFactory.getInstance();

	  // generate 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 to the encryption
	  SecurityToken token = factory.newSecurityToken(X509Token.class,
        callbackHandler);

	  	  // generate WSSEncryption instance to encrypt the SOAP body content
	  WSSEncryption enc = factory.newWSSEncryption(token);
	  enc.addEncryptPart(WSSEncryption.BODY_CONTENT);

	  // 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);

トピックのタイプを示すアイコン 参照トピック



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