6.2.7. アルゴリズムスイートの指定
概要
アルゴリズムスイートは、署名、暗号化、メッセージダイジェストの生成などの操作を実行する暗号化アルゴリズムの一貫したコレクションです。
ここでは、WS-SecurityPolicy 仕様で定義されたアルゴリズムスイートについて説明します。ただし、特定のアルゴリズムスイートを利用できるかどうかは、基礎となるセキュリティープロバイダーによって異なります。Apache CXF セキュリティーは、プラグイン可能な Java Cryptography Extension (JCE) および Java Secure Socket Extension (JSSE) レイヤーに基づいています。デフォルトでは、Apache CXF は Sun の JSSE プロバイダーで設定されています。このプロバイダーは、Sun の JSSE リファレンスガイド の 付録 A で説明されている暗号スイートをサポートしています。
構文
AlgorithmSuite
要素の構文は以下のようになります。
<sp:AlgorithmSuite xmlns:sp="..." ... > <wsp:Policy xmlns:wsp="..."> (<sp:Basic256 ... /> | <sp:Basic192 ... /> | <sp:Basic128 ... /> | <sp:TripleDes ... /> | <sp:Basic256Rsa15 ... /> | <sp:Basic192Rsa15 ... /> | <sp:Basic128Rsa15 ... /> | <sp:TripleDesRsa15 ... /> | <sp:Basic256Sha256 ... /> | <sp:Basic192Sha256 ... /> | <sp:Basic128Sha256 ... /> | <sp:TripleDesSha256 ... /> | <sp:Basic256Sha256Rsa15 ... /> | <sp:Basic192Sha256Rsa15 ... /> | <sp:Basic128Sha256Rsa15 ... /> | <sp:TripleDesSha256Rsa15 ... /> | ...) <sp:InclusiveC14N ... /> ? <sp:SOAPNormalization10 ... /> ? <sp:STRTransform10 ... /> ? (<sp:XPath10 ... /> | <sp:XPathFilter20 ... /> | <sp:AbsXPath ... /> | ...)? ... </wsp:Policy> ... </sp:AlgorithmSuite>
アルゴリズムスイートのアサーションは、多数の代替アルゴリズム (例: Basic256
) をサポートします。代替アルゴリズムスイートの詳細については、表6.4「アルゴリズムスイート」 を参照してください。
アルゴリズムスイート
表6.4「アルゴリズムスイート」 WS-SecurityPolicy によってサポートされるアルゴリズムスイートの概要を示します。列見出しは、次のようにさまざまなタイプの暗号化アルゴリズムを示しています。\Dig はダイジェストアルゴリズムです。\Enc は暗号化アルゴリズムです。\SymKW は対称鍵ラップアルゴリズムです。\AsymKW は非対称キーラップアルゴリズムです。\ Enc KD は、暗号化キー導出アルゴリズムです。\ Sig KD は、署名鍵導出アルゴリズムです。
表6.4 アルゴリズムスイート
アルゴリズムスイート | \[Dig] | \[Enc] | \[Sym KW] | \[Asym KW] | \[Enc KD] | \[Sig KD] |
---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
暗号化アルゴリズムのタイプ
WS-SecurityPolicy では、以下のタイプの暗号化アルゴリズムがサポートされます。
対称キー署名
対称キー署名プロパティー [Sym Sig] は、対称キーを使用して署名を生成するアルゴリズムを指定します。WS-SecurityPolicy は、HmacSha1
アルゴリズムを常に使用するように指定します。
HmacSha1
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2000/09/xmldsig#hmac-sha1
非対称鍵の署名
非対称鍵の署名プロパティー [Asym Sig] は、非対称キーを使用して署名を生成するアルゴリズムを指定します。WS-SecurityPolicy は、RsaSha1
アルゴリズムを常に使用するように指定します。
RsaSha1
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2000/09/xmldsig#rsa-sha1
ダイジェスト
digest プロパティー [Dig] は、メッセージダイジェスト値の生成に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、2 つの代替ダイジェストアルゴリズム (Sha1
および Sha256
) をサポートします。
Sha1
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2000/09/xmldsig#sha1
Sha256
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#sha256
暗号化
暗号化プロパティー [Enc] は、データの暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、Aes256
、Aes192
、Aes128
、TripleDes
の暗号化アルゴリズムをサポートします。
Aes256
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#aes256-cbc
Aes192
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#aes192-cbc
Aes128
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#aes128-cbc
TripleDes
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#tripledes-cbc
対称キーラッピング
対称キーラッピングプロパティー [Sym KW] は、対称鍵の署名および暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、対称鍵ラップアルゴリズムの KwAes256
、KwAes192
、KwAes128
、KwTripleDes
をサポートします。
KwAes256
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#kw-aes256
KwAes192
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#kw-aes192
KwAes128
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#kw-aes128
KwTripleDes
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#tripledes-cbc
非対称キーラッピング
非対称キーラッププロパティー [AsymKW] は、非対称キーの署名と暗号化に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、非対称鍵ラップアルゴリズムの KwRsaOaep
と KwRsa15
をサポートします。
KwRsaOaep
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
KwRsa15
アルゴリズムは、以下の URI で識別されます。
http://www.w3.org/2001/04/xmlenc#rsa-1_5
コンピュートキー
コンピュートキープロパティー [Comp Key] は、派生された鍵の計算に使用されるアルゴリズムを指定します。セキュアな参加者が共有秘密鍵の ID と通信する場合 (WS-SecureConversation を使用する場合など)、悪意のあるサードパーティーによる分析に過剰なデータが公開されないように、元の共有キーの代わりに派生キーを使用することが推奨されます。WS-SecurityPolicy は、PSha1
アルゴリズムを常に使用するように指定します。
PSha1
アルゴリズムは、以下の URI で識別されます。
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1
暗号化キー導出
暗号化キー導出プロパティー [Enc KD] は、派生した暗号化キーの計算に使用するアルゴリズムを指定します。WS-SecurityPolicy は、PSha1L256
、PSha1L192
、PSha1L128
の暗号化キーの派生アルゴリズムをサポートします。
PSha1
アルゴリズムは以下の URI で識別されます (PSha1L256
、PSha1L192
、および PSha1L128
に同じアルゴリズムが使用されます。キーの長さのみが異なります)。
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1
署名鍵導出
署名キー導出プロパティー [Sig KD] は、派生署名キーの計算に使用されるアルゴリズムを指定します。WS-SecurityPolicy は、PSha1L192
、PSha1L128
の署名キーの派生アルゴリズムをサポートします。
キー長のプロパティー
表6.5「キー長のプロパティー」 は、WS-SecurityPolicy でサポートされるキーの最小および最大の長さを示しています。
表6.5 キー長のプロパティー
プロパティー | キーの長さ |
---|---|
最小対称キーの長さ [Min SKL] | 128, 192, 256 |
対称キーの最大長 [Max SKL] | 256 |
非対称キーの最小長 [Min AKL] | 1024 |
非対称キーの最大長 [Max AKL] | 4096 |
最小対称鍵長の値 MinSKL は、選択されているアルゴリズムスイートによって異なります。