第二十九章 添加数字签名 - 指定 KeyInfo 的规范化方法
2024-09-19 本文已影响0人
Cache技术分享
第二十九章 添加数字签名 - 指定 <KeyInfo>
的规范化方法
默认情况下,<KeyInfo>
元素使用Exclusive XML
Canonicalization进行规范化,<KeyInfo> 元素包括以下内容:
<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>
元素添加到安全标头元素:
- 调用
Web
服务的WSAddSignatureConfirmation()
方法。对于参数,请指定安全标头元素的主签名。例如:
do ..WSAddSignatureConfirmation(sig)
- 照常发送
SOAP
消息。请参阅添加安全标头元素中的一般注释。
此方法将 WS-Security 1.1 <SignatureConfirmation>
元素添加到出站消息中。它为 SecurityIn
中收到的每个 <Signature>
向 SecurityOut
属性添加一个 <SignatureConfirmation>
元素。
如果 SecurityIn
不包含签名,则会添加不带 Value
属性的 <SignatureConfirmation>
元素,这是 WS-Security 1.1
的要求。
有关验证<SignatureConfirmation>
元素的信息,请参阅检查签名确认。