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 メッセージの暗号化で使用するデータ暗号化アルゴリズムおよび鍵暗号化アルゴリズムの指定が含まれます。 暗号化用 WSS API (WSSEncryption) は、アルゴリズム名、およびデータ暗号化方式と鍵暗号化方式のマッチング・アルゴリズム URI (Uniform Resource Identifier) を指定します。 データ暗号化アルゴリズムと鍵暗号化アルゴリズムを指定すると、それらのアルゴリズムで暗号化されたエレメントのみが受け入れられます。

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

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

以下の事前構成済みデータ暗号化アルゴリズムがサポートされています。
表 1. データ暗号化アルゴリズム
データ暗号化アルゴリズム名 アルゴリズム 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);



関連タスク
ジェネレーター・バインディング向け暗号化方式の選択
WSSEncryption API を使用した SOAP メッセージの暗号化
WSS API を使用してメッセージの機密性を保護するための 暗号化の構成
参照トピック    

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

最終更新: 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/rwbs_wssencryptalgorithms.html