我检查了W3C网站上的 XML签名语法和处理, 但它没有多关于多重签名的说法. 是否有标准或规则在单个xml文件上创建多重签名? 谢谢 示例:(考虑仅相同文件引用) 原始的xml root item nameAppl
但它没有多关于多重签名的说法.
是否有标准或规则在单个xml文件上创建多重签名?
谢谢
示例:(考虑仅相同文件引用)
原始的xml
<root> <item> <name>Apple</name> <price>100</price> </item> </root>
首先A用带有标志的签名签名
签名XML
<root> <item> <name>Apple</name> <price>100</price> </item> <Signature>this is Signature signed by A with Ref URL=""</Signature> </root>
现在,B想要签署XML(包含A的签名)
B签名XML
<root> <item> <name>Apple</name> <price>100</price> </item> <Signature>Signature A: this is Signature signed by A with Ref URL=""</Signature> <Signature>Signature B: this is Signature signed by B with Ref URL=""</Signature> </root>
然后,当涉及到验证时,它变得令人困惑……
签名A,在验证时,它看到了
<root> <item> <name>Apple</name> <price>100</price> </item> <Signature>Signature B: this is Signature signed by B with Ref URL=""</Signature> </root>
但它实际签署的是什么
<root> <item> <name>Apple</name> <price>100</price> </item> </root>
(请注意,由于包含变换,在签名和验证时会删除一个签名节点)
在进行包络签名时,可以通过将签名节点视为root来解决相同的问题.
但如果涉及多个参考,它可能会变得更加复杂.
对于您的示例,每个签名(应该)不是“root”,而是“item”节点(或项目节点集).因此,签名B不包括签名A作为要签名的数据.