暗号化 SOAP ヘッダー

暗号化ヘッダー・エレメントは SOAP ヘッダーを暗号化するための標準的な方法を提供します。 OASIS SOAP メッセージ・セキュリティー仕様の拡張機能の 1 つとして、暗号化ヘッダー・エレメントは、応答側が要求を処理したことを示します。 SOAP ヘッダーおよび各部分を暗号化することで、よりセキュアなメッセージ・レベルのセキュリティーを提供できます。

EncryptedHeader すなわち <wsse11:EncryptedHeader> エレメントは、更新された Web Services Security バージョン 1.1 標準の一部であり、Microsoft .NET や DataPower® など、バージョン 1.1 標準をサポートする他のベンダーとのインターオペラビリティーを使用可能にします。

SOAP ヘッダー・ブロックを暗号化するために EncryptedHeader エレメントを使用します。EncryptedHeader エレメントにより、Web Services Security は SOAP mustUnderstand 処理ガイドラインに準拠し、SOAP ヘッダー・ブロックの属性に含まれる情報の開示を防ぐことができます。

<wsse11:EncryptedHeader> エレメントには、1 つの <xenc:EncryptedData> エレメントが含まれている必要があります。 1 つの暗号化ヘッダー・エレメントに対して許可される <xenc:EncryptedData> エレメントは 1 つだけです。

暗号化データ・エレメント

通常、JAX-WS などのプログラミング・モデルは、呼び出しをアプリケーション・コードにディスパッチする前に SOAP メッセージを Java™ バインディング・オブジェクトにデシリアライズします。ただし、SOAP メッセージが暗号化されていると、デシリアライゼーションは失敗します。これは、暗号化の前に、オリジナルの内容が XML 暗号化標準の EncryptedData XML エレメントに置き換えられるからです。

<wsse:Security> ヘッダーに含まれているトークンが、受信側の処理ロールのために暗号化されているほうが望ましい場合もあります。

EncryptedData エレメントを使用する場合は、次のガイドラインに従ってください。
  • EncryptedHeader エレメントには 1 つの EncryptedData エレメントが含まれている必要があります。
  • <xenc:EncryptedData> エレメントは、セキュリティー・トークンを含め、それを <wsse:Security> ヘッダーに含めるために使用できます。
  • 含まれているセキュリティー・トークンを参照するために、<xenc:EncryptedData> に XML ID が含まれていてはいけません。
  • すべての <xenc:EncryptedData> トークンは、埋め込まれた暗号鍵を持っているか、または別の暗号鍵により参照される必要があります。
  • Basic Security Profile 1.1 への準拠が望ましい場合、<xenc:EncryptedData> エレメントに Id 属性を含める必要があります。

暗号化パーツのポリシー・アサーション

EncryptedParts ポリシー・アサーションは、セキュリティー・ポリシーでどのヘッダーが暗号化されるかを指定します。次のテーブルで、EncryptedParts に使用できるエレメントおよび属性を説明します。

表 1. EncryptedParts エレメントの属性とエレメント. 暗号化された部分を使用すると、よりセキュアなメッセージ・レベル・セキュリティーが可能になります。
エレメントまたは属性 説明
/sp:EncryptedParts/sp:Header オプション。このオプション・エレメントがあることは、特定の SOAP ヘッダー (またはヘッダー・セット) が保護される必要があることを示します。単一の EncryptedParts エレメント内に複数の sp:Header エレメントを持つことができます。

各ヘッダー (またはヘッダー・セット) は暗号化される必要があり、この暗号化は Web Services Security バージョン 1.1 で暗号化されたヘッダーを使用してエレメントを暗号化します。 そのため、WS-Secuirty 1.1 で暗号化されたヘッダーがサービスによってサポートされていない場合は、そのヘッダーはメッセージ・レベルのセキュリティーを使用して暗号化することができません。

同じローカル名を持つが、異なる名前空間を持つ複数の SOAP ヘッダーが暗号化される場合は、単一の sp:EncryptedParts アサーションの一部として、または個別の sp:EncryptedParts アサーションとして、複数の sp:Header エレメントが必要です。

/sp:EncryptedParts/sp:Header/@Name オプション。この属性は、機密性を保護する SOAP ヘッダーのローカル名を示します。 この属性が指定されていない場合、名前空間が Namespace 属性に一致するすべての SOAP ヘッダーが保護されます。
/sp:EncryptedParts/sp:Header/@Namespace 必須この属性は、機密性を保護する SOAP ヘッダーの名前空間を示します。

次のメッセージ例は、暗号化されるヘッダーの EncryptedParts ポリシー・アサーションがポリシーに指定された場合に、EncryptedHeader エレメントがメッセージ上でどのようになるかを示しています。

<S:Envelope xmlns:S="…" xmlns:wsse="…" xmlns:wsse11="…" xmlns:wsu="…"
	  xmlns:xenc="…" xmlns:ds="…">
	  <S:Header>
	    <wsse:Security>
      <!-- Tokens etc. -->
	      	      <xenc:EncryptedKey>
	        <xenc:EncryptionMethod Algorithm="…"/>
	          <ds:KeyInfo>
	            … …
	          </ds:KeyInfo>
	         	         <xenc:CipherData>
	           	          <xenc:CipherValue>…</xenc:CipherValue>
	         	        </xenc:CipherData>
	         <xenc:ReferenceList>
	           	           <xenc:DataReference URI="#hdrID"/>
	         </xenc:ReferenceList>
	       	       </xenc:EncryptedKey>
	    </wsse:Security>
	    	    <wsse11:EncryptedHeader wsu:Id="hdrID">
	      	      <xenc:EncryptedData Id="encDataID">
	        	         <xenc:CipherData>
	          	          <xenc:CipherValue>…</xenc:CipherValue>
	        	        </xenc:CipherData>
	        …
	      	      </xenc:EncryptedData>
	    	    </wsse11:EncryptedHeader>	
	  </S:Header>
	  <S:Body>
	    …
	  </S:Body>
</S:Envelope>

Web Services Security バージョン 1.0 仕様のフォーマットでヘッダーを暗号化するには、バインディングの <encryptionInfo> エレメントで、com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.0 プロパティーに true の値を指定します。 このプロパティーを指定した場合、暗号化のターゲットであるヘッダーは、<EncryptedData> エレメントを含む <EncryptedHeader> エレメントの代わりに、<EncryptedData> エレメントによって置き換えられます。

Web Services Security バージョン 1.1 の振る舞いが WebSphere® Application Server のバージョン 7.0 よりも前のバージョンと同じ場合は、バインディングの <encryptionInfo> エレメントの値として true を持つ com.ibm.wsspi.wssecurity.encryptedHeader.generate.WSS1.1.pre.V7 プロパティーを指定します。 このプロパティーを指定した場合、<EncryptedHeader> エレメントには、wsu:Id パラメーターが含まれ、<EncryptedData> エレメントでは Id パラメーターが省略されます。このプロパティーは、Basic Security Profile 1.1 への準拠が必要でない場合にのみ使用してください。

EncryptedHeader エレメントと EncryptedData エレメントの完全な情報については、Web Services Security バージョン 1.1 仕様を参照してください。


トピックのタイプを示すアイコン 概念トピック



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