解密方法
解密算法指定用来对 SOAP 消息进行解密的数据和密钥加密算法。 用于解密的 WSS API (WSSDecryption) 指定数据和密钥加密方法的算法统一资源标识 (URI)。 WSSDecryption 接口是 com.ibm.websphere.wssecurity.wssapi.decryption 包的一部分。
数据加密算法
数据加密算法是用来对数据进行加密和解密的算法。 此算法类型用于对数据进行加密,以对消息的各个部件(包括主体内容和签名)进行加密和解密。
数据解密算法指定数据加密方法的算法统一资源标识 (URI)。 WebSphere® Application Server支持以下预配置的数据解密算法:
| WSS API | URI |
|---|---|
| WSSDecryption.AES128(缺省值) | 数据加密算法 AES 128 的 URI: https://www.w3.org/2001/04/xmlenc#aes128-cbc |
| WSSDecryption.AES192 | 数据加密算法 AES 192 的 URI: https://www.w3.org/2001/04/xmlenc#aes192-cbc |
| WSSDecryption.AES256 | 数据加密算法 AES 256 的 URI: https://www.w3.org/2001/04/xmlenc#aes256-cbc |
| WSSDecryption.TRIPLE_DES | 数据加密算法 TRIPLE DES 的 URI: https://www.w3.org/2001/04/xmlenc#tripledes-cbc |
默认情况下,Java™ 加密扩展 (JCE) 附带受限或有限强度的密码。 要使用 192 位和 256 位高级加密标准 (AES) 加密算法,必须应用无限制的权限策略文件。
为了AES256-cbc和AES192-cbc算法,您必须从以下网站下载不受限制的 Java™ 加密扩展 (JCE) 策略文件: https://www.ibm.com/developerworks/java/jdk/security/index.html。
数据加密算法必须与为使用者配置的数据解密算法相匹配。
密钥加密算法
密钥加密算法是用来对密钥进行加密和解密的算法。
此密钥信息用于指定生成用于数字签名和加密的密钥所需要的配置。 签署信息和加密信息配置可以共享密钥 信息。 使用者端的密钥信息用于指定密钥的信息,该密钥用于在接收的消息中验证数字签名或用于解密加密的消息部件。 为客户机配置请求生成者。
密钥加密算法指定密钥加密方法的算法统一资源标识 (URI)。 WebSphere Application Server支持以下预配置密钥加密算法:
| WSS API | URI |
|---|---|
| WSSDecryption.KW_AES128 | 密钥加密算法的 URI,密钥包装 AES 128: https://www.w3.org/2001/04/xmlenc#kw-aes128 |
| WSSDecryption.KW_AES192 | 密钥加密算法的 URI,密钥包装 AES 192: https://www.w3.org/2001/04/xmlenc#kw-aes192 限制:如果您希望配置的应用程序符合基本安全配置文件 (BSP),请不要使用 192 位密钥加密算法。
|
| WSSDecryption.KW_AES256 | 密钥加密算法的 URI,密钥包装 AES 256: https://www.w3.org/2001/04/xmlenc#kw-aes256 |
| WSSDecryption.KW_RSA_OAEP(缺省值) | 密钥加密算法的 URI,密钥包装 RSA OAEP: https://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p |
| WSSDecryption.KW_RSA15 | 密钥加密算法的 URI,密钥包装 RSA 1.5: https://www.w3.org/2001/04/xmlenc#rsa-1_5 |
| WSSDecryption.KW_TRIPLE_DES | 数据加密算法的URI,密钥包装TRIPLE DES: https://www.w3.org/2001/04/xmlenc#kw-tripledes |
缺省情况下,RSA-OAEP 算法使用 SHA1 消息摘要算法来在加密操作期间计算消息摘要。 (可选)可通过指定密钥加密算法属性来使用
SHA256 或 SHA512 消息摘要算法。 属性名为:com.ibm.wsspi.wssecurity.enc.rsaoaep.DigestMethod。 属性值是下列其中一个摘要方法 URI: https://www.w3.org/2001/04/xmlenc#sha256
https://www.w3.org/2001/04/xmlenc#sha512
缺省情况下,RSA-OAEP 算法使用空字符串来作为 OAEPParams 的可选编码八位元字符串。 可通过指定密钥加密算法属性来提供显式的编码八位元字符串。 对于属性名,可以指定 com.ibm.wsspi.wssecurity.enc.rsaoaep.OAEPparams。 属性值是八位元字符串的基本 64 位编码值。
为了kw-aes256和kw-aes192密钥加密算法,您必须从以下网站下载不受限制的 JCE 策略文件: https://www.ibm.com/developerworks/java/jdk/security/index.html。
生成器和使用者的密钥加密算法必须匹配。
以下示例提供了用于以下操作的默认算法的 WSS API 代码示例: WebSphere Application Server解密:
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);