使用 WSS API 配置加密以保护消息机密性

可以对客户端请求生成者(发送方)绑定配置加密信息。加密信息用于指定生成器(发送方)对出局 SOAP 消息进行加密的方式。要配置加密,请指定要进行加密的消息部件并指定要用于加密的算法方法和安全性令牌。

开始之前

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

关于此任务

对于加密,您必须指定以下各项:
  • 要进行加密的消息部件。
  • 要指定的加密算法。

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

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

WebSphere Application Server 使用加密信息,供缺省生成器用于对 SOAP 消息部件进行加密。WSSEncryption API 将下列必需部件配置为加密部件。

表 1. 必需的加密部件. 使用加密部件来增加 SOAP 消息的机密性。
加密部件 描述
关键字 用于将加密部件添加至 SOAP 消息的关键字。
XPath 表达式 用于将加密部件添加至 SOAP 消息的 XPath 表达式。
WSSEncryptPart 对象 此对象将加密部件添加至 SOAP 消息。
WSSSignature 对象 此对象将签名组件添加为加密组件。
此部件将 SOAP 头中由 QName 指定的头添加为加密部件。
安全性令牌对象 此对象将安全性令牌添加为加密部件。

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

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

表 2. 受支持的加密关键字. 使用关键字来指定加密部件。
关键字 引用
BODY_CONTENT 关键字,用于作为加密目标的 SOAP 消息主体的内容。
SIGNATURE 关键字,用于作为加密目标的签名组件。

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

过程

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

结果

对生成器绑定配置加密信息。

示例

以下举例说明了 WSSEncryption API:
    WSSFactory factory = WSSFactory.getInstance();
    WSSGenerationContext gencont = factory.newWSSGenerationContext();
   
    X509GenerateCallbackHandler callbackhandler = generateCallbackHandler();
    SecurityToken token = factory.newSecurityToken(X509Token.class, callbackHandler);
    WSSEncryption enc = factory.newWSSEncryption(token);
    
    gencont.add(enc);

下一步做什么

必须对客户端响应使用者(接收方)绑定配置类似的解密信息(如果尚未配置此信息)。

接下来,检查 WSSEncryption API 过程。


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



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