文章
· 九月 19 阅读大约需 2 分钟

第二十九章 添加数字签名 - 指定 KeyInfo 的规范化方法

第二十九章 添加数字签名 - 指定 <KeyInfo>的规范化方法

默认情况下,<KeyInfo> 元素使用Exclusive XML Canonicalization进行规范化, 元素包括以下内容:

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

要使用包容性 XML 规范化来规范化此元素,请执行以下操作:

 Set sig.SignedInfo.CanonicalizationMethod.Algorithm=$$$SOAPWSc14n

其中 sig%XML.Security.Signature 的实例。

在这种情况下, <KeyInfo> 包含以下内容:

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315">

添加签名确认

WS-Security 1.1 <SignatureConfirmation> 功能使 Web 客户端能够确保收到的 SOAP 消息是响应 Web 客户端发送的原始请求而生成的。客户端请求通常经过签名,但并非必须如此。在此机制中,Web 服务将 <SignatureConfirmation> 元素添加到安全标头元素,Web 客户端可以检查该 <SignatureConfirmation>元素。

对于 Web 服务,要将<SignatureConfirmation> 元素添加到安全标头元素:

  1. 调用 Web 服务的 WSAddSignatureConfirmation() 方法。对于参数,请指定安全标头元素的主签名。例如:
 do ..WSAddSignatureConfirmation(sig)
  1. 照常发送 SOAP 消息。请参阅添加安全标头元素中的一般注释。

此方法将 WS-Security 1.1 <SignatureConfirmation> 元素添加到出站消息中。它为 SecurityIn 中收到的每个 <Signature>SecurityOut 属性添加一个 <SignatureConfirmation> 元素。

如果 SecurityIn 不包含签名,则会添加不带 Value 属性的 <SignatureConfirmation> 元素,这是 WS-Security 1.1 的要求。

有关验证<SignatureConfirmation> 元素的信息,请参阅检查签名确认。

讨论 (0)1
登录或注册以继续