6.2.7. 指定 Algorithm Suite
概述
算法套件是用来执行诸如签名、加密、生成消息摘要等操作的一种一致加密算法集合。
为了参考目的,本节描述了 WS-SecurityPolicy 规范定义的算法套件。但是,是否提供特定的算法套件,这取决于底层的安全供应商。Apache CXF 安全性基于可插拔 Java Cryptography Extension(JCE)和 Java 安全套接字扩展(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] 是加密算法;\[Sym KW] 是对称密钥包装算法;\[Asym KW] 是非对称密钥包装算法; \[Enc KD] 是加密密钥的算法;[Sym KW] 是签名算法。
表 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 支持两种替代摘要算法: Sha1
和 Sha256
。
Sha1
算法由以下 URI 识别:
http://www.w3.org/2000/09/xmldsig#sha1
Sha256
算法由以下 URI 识别:
http://www.w3.org/2001/04/xmlenc#sha256
Encryption
加密属性 [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
非对称密钥换行
非对称密钥换行属性 [Asym KW] 指定用于签名和加密非对称密钥的算法。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
computed 密钥
computed 键属性 [Comp Key] 指定用于计算派生密钥的算法。当安全方与共享密钥通信(例如,使用 WS-SecureConvers 时)时,建议使用一个派生密钥而不是原始共享密钥,以避免通过托管第三方公开大量数据以供分析。WS-SecurityPolicy 指定始终使用 PSha1
算法。
PSha1
算法由以下 URI 识别:
http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/dk/p_sha1
加密密钥分离
加密密钥 derivation 属性 [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
签名密钥分离
签名密钥 derivation 属性 [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 |
最小对称密钥长度的值 [Min SKL] 取决于选择哪个算法套件。