我已经检查了 W3C 网站上的 XML 签名语法和处理,但是它几乎没有提到多重签名。是否有在一个 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>
(请注意,由于包络变换,签名和验证时会删除一个人的签名节点)在进行包络签名时将签名节点视为根可以解决相同的问题。但是如果涉及多个引用,它可能会变得更加复杂。