使用 WSS API 配置加密以保护消息机密性
可以对客户端请求生成者(发送方)绑定配置加密信息。加密信息用于指定生成器(发送方)对出局 SOAP 消息进行加密的方式。要配置加密,请指定要进行加密的消息部件并指定要用于加密的算法方法和安全性令牌。
开始之前
机密性是指加密,而完整性是指数字签名。机密性减少跨因特网流动的消息被获悉的风险。使用机密性规范,在正确目标接收到消息时,消息已在发送和解密之前被加密。在配置加密之前,您应熟悉 XML 加密。
关于此任务
对于加密,您必须指定以下各项:
- 要进行加密的消息部件。
- 要指定的加密算法。
要在客户端配置加密功能和加密部件,请使用 WSSEncryption 和 WSSEncryptPart API 或者通过管理控制台来配置策略集。
WebSphere® Application Server 提供绑定的缺省值。但是,管理员必须修改生产环境的缺省值。
WebSphere Application Server 使用加密信息,供缺省生成器用于对 SOAP 消息部件进行加密。WSSEncryption API 将下列必需部件配置为加密部件。
加密部件 | 描述 |
---|---|
关键字 | 用于将加密部件添加至 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 支持使用下列关键字:
关键字 | 引用 |
---|---|
BODY_CONTENT | 关键字,用于作为加密目标的 SOAP 消息主体的内容。 |
SIGNATURE | 关键字,用于作为加密目标的签名组件。 |
如果使用 WSS API、WSSEncryption API 和 WSSEncryptPart API 进行配置,请完成以下高级步骤:
过程
结果
示例
以下举例说明了 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 过程。