使用 WSS API 配置解密方法以保护消息机密性

可以配置绑定文件的响应使用者(客户端)部分的解密方法信息。解密信息用于指定使用者(接收方)对入局 SOAP 消息进行解密的方式。要配置解密,请指定要进行解密的消息部件并指定要用于解密的算法方法和安全性令牌。

开始之前

机密性是指加密,而完整性是指数字签名。机密性减少跨因特网流动的消息被获悉的风险。使用机密性规范,在正确目标接收到消息时,消息已在发送和解密之前被加密。在配置解密之前,您应熟悉 XML 加密。

关于此任务

对于解密,您必须指定以下各项:

  • 要进行解密的消息部件。
  • 要指定的解密算法。

要在客户端配置解密功能和解密部件,请使用 WSSDecryption 和 WSSDecryptPart API 或者通过管理控制台来配置策略集。

WebSphere® Application Server 提供绑定的缺省值。但是,管理员必须修改生产环境的缺省值。

WebSphere Application Server 使用解密信息,供缺省使用者用于对 SOAP 消息部件进行解密。WSSDecryption API 将下列必需部件配置为解密部件。

表 1. 必需的解密部件. 使用解密信息来指定如何解密入局消息。
解密部件 描述
关键字 用于将解密部件添加至 SOAP 消息的关键字。
XPath 表达式 用于将解密部件添加至 SOAP 消息的 XPath 表达式。
WSSDencryptPart 对象 此对象将解密部件添加至 SOAP 消息。
WSSVerification 对象 此对象将签名验证组件添加为解密组件。
此部件将 SOAP 头中由 QName 指定的头添加为解密部件。
安全性令牌对象 此对象将安全性令牌添加为解密部件。

只有使用了 Web Services Secure Conversation (WS-SecureConversation),Web Service 安全性 API (WSS API) 才通过使用共享密钥支持对称加密。

WSS API 允许使用关键字或 XPath 表达式来指定 SOAP 消息中要进行解密的部件。WebSphere Application Server 支持使用下列关键字:

表 2. 受支持的解密关键字. 使用关键字来解密入局消息。
关键字 引用
BODY_CONTENT 关键字,用于作为解密目标的 SOAP 消息主体的主体内容。
SIGNATURE 关键字,用于作为解密目标的签名元素。
USERNAME_TOKEN, 关键字,用于作为解密目标的用户名令牌元素。

如果使用 WSS API、WSSDecryption API 和 WSSDecryptPart API 进行配置,请完成以下高级步骤:

过程

  1. 使用 WSSDecryption API 配置加密。 缺省情况下,WSSDecryption API 执行以下任务:
    1. 生成回调处理程序。
    2. 生成使用者安全性令牌对象。
    3. 添加安全性令牌引用类型。
    4. 添加 WSSEncryptPart 对象。
    5. 添加要进行加密的部件。 使用关键字和 XPath 表达式添加要进行解密的缺省部件。
    6. 添加验证组件。
    7. 在 SOAP 消息中添加由 QName 指定的头。
    8. 设置缺省数据加密方法。
    9. 指定是否使用 Boolean 值对密钥进行解密。 对共享密钥进行加密时调用此方法。
    10. 设置缺省密钥加密方法。
  2. 使用 WSSEncryptPart API 来配置加密部件或添加变换方法。缺省情况下,WSSEncryptPart API 执行以下任务:
    1. 设置通过使用关键字或 XPath 表达式指定的加密部件。
    2. 设置由 XPath 表达式指定的加密部件。
    3. 设置签名组件对象 WSSSignature。
    4. 设置 SOAP 消息中由 QName 指定的头。
    5. 设置生成器安全性令牌。
    6. 根据需要添加变换方法。
  3. 根据需要更改算法或消息部件的缺省值。 例如,可更改下列其中一项或多项:
    • 将 USERNAME_TOKEN 添加为解密目标。
    • 将数据加密算法更改为缺省值 AES 128 以外的值。
    • 将密钥加密算法更改为缺省值 KW_RSA_OAEP 以外的值。
    • 指定不对加密密钥进行加密 (false)。
    • 将安全性令牌类型更改为缺省值 X.509 令牌以外的值。
    • 仅将 BODY_CONTENT 用作加密部件,不同时使用 SIGNATURE。

结果

对使用者绑定配置解密信息。

示例

以下举例说明了 WSSDecryption API:
WSSFactory factory = WSSFactory.getInstance();
WSSConsumingContext concont = factory.newWSSConsumingContext();
    X509ConsumeCallbackHandler callbackhandler = generateCallbackHandler();
// see X509ConsumeCallbackHandler
    WSSDecryption dec = factory.newWSSDecryption(X509Token.class, 
        callbackhandler);
    
 concont.add(dec);

下一步做什么

必须对客户端请求生成者(发送方)绑定配置类似的加密信息(如果尚未配置此信息)。

接下来,检查 WSSDecryption API 过程。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configencryptinfoconjaxws
文件名:twbs_configencryptinfoconjaxws.html