解密方法
解密算法指定用来对 SOAP 消息进行解密的数据和密钥加密算法。 用于解密的 WSS API (WSSDecryption) 指定数据和密钥加密方法的算法统一资源标识 (URI)。 WSSDecryption 接口是 com.ibm.websphere.wssecurity.wssapi.decryption 包的一部分。
数据加密算法
数据加密算法是用来对数据进行加密和解密的算法。 此算法类型用于对数据进行加密,以对消息的各个部件(包括主体内容和签名)进行加密和解密。
数据解密算法指定数据加密方法的算法统一资源标识 (URI)。 WebSphere® Application Server 支持以下预先配置的数据解密算法:
| WSS API | URI |
|---|---|
| WSSDecryption.AES128(缺省值) | 数据加密算法 AES 128 的 URI:http://www.w3.org/2001/04/xmlenc#aes128-cbc |
| WSSDecryption.AES192 | 数据加密算法 AES 192 的 URI:http://www.w3.org/2001/04/xmlenc#aes192-cbc |
| WSSDecryption.AES256 | 数据加密算法 AES 256 的 URI:http://www.w3.org/2001/04/xmlenc#aes256-cbc |
| WSSDecryption.TRIPLE_DES | 数据加密算法三重 DES 的 URI:http://www.w3.org/2001/04/xmlenc#tripledes-cbc |
缺省情况下, Java™ 密码术扩展 (JCE) 随受限或有限强度密码一起提供。 要使用 192 位和 256 位高级加密标准 (AES) 加密算法,必须应用无限制的权限策略文件。
对于 AES256-cbc 和 AES192-cbc 算法,必须从以下 Web 站点下载不受限制的 Java™ 密码术扩展 (JCE) 策略文件: http://www.ibm.com/developerworks/java/jdk/security/index.html。
数据加密算法必须与为使用者配置的数据解密算法相匹配。
密钥加密算法
密钥加密算法是用来对密钥进行加密和解密的算法。
此密钥信息用于指定生成用于数字签名和加密的密钥所需要的配置。 签署信息和加密信息配置可以共享密钥 信息。 使用者端的密钥信息用于指定密钥的信息,该密钥用于在接收的消息中验证数字签名或用于解密加密的消息部件。 为客户机配置请求生成者。
密钥加密算法指定密钥加密方法的算法统一资源标识 (URI)。 WebSphere Application Server 支持以下预先配置的密钥加密算法:
| WSS API | URI |
|---|---|
| WSSDecryption.KW_AES128 | 密钥加密算法密钥合并 AES 128 的 URI:http://www.w3.org/2001/04/xmlenc#kw-aes128 |
| WSSDecryption.KW_AES192 | 密钥加密算法密钥合并 AES 192 的 URI:http://www.w3.org/2001/04/xmlenc#kw-aes192 限制: 如果您希望配置的应用程序符合基本安全概要文件 (BSP) ,请勿使用 192 位密钥加密算法。
|
| WSSDecryption.KW_AES256 | 密钥加密算法密钥合并 AES 256 的 URI:http://www.w3.org/2001/04/xmlenc#kw-aes256 |
| WSSDecryption.KW_RSA_OAEP(缺省值) | 密钥加密算法密钥合并 RSA OAEP 的 URI:http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
| WSSDecryption.KW_RSA15 | 密钥加密算法密钥合并 RSA 1.5 的 URI:http://www.w3.org/2001/04/xmlenc#rsa-1_5 |
| WSSDecryption.KW_TRIPLE_DES | 数据加密算法密钥合并三重 DES 的 URI:http://www.w3.org/2001/04/xmlenc#kw-tripledes |
缺省情况下,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。 属性值是八位元字符串的基本 64 位编码值。
对于 kw-aes256 和 kw-aes192 密钥加密算法,必须从以下 Web 站点下载不受限制的 JCE 策略文件: http://www.ibm.com/developerworks/java/jdk/security/index.html。
生成器和使用者的密钥加密算法必须匹配。
以下示例提供了用于 WebSphere Application Server 解密的缺省算法的 WSS API 代码样本:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
// Required to attach username token into the message.
X509ConsumeCallbackHandler callbackHandler =
new X509ConsumeCallbackHandler("",
"enc-sender.jceks",
"JCEKS",
"storepass".toCharArray(),
"alice",
"keypass".toCharArray(),
"CN=Alice, O=IBM, C=US");
// Set the decrypt component.
// Default encrypted part: Body-Content
// Default data encryption algorithm: AES128
// Default key encryption algorithm: KW-RSA-OAEP
WSSDecryption dec = factory.newWSSDecryption(X509Token.Type,
callbackHandler);
concont.add(dec);
// validate the WS-Security header.
concont.process(msgctx);