XML多重签名是否有标准?

我检查了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>

(请注意,由于包含变换,在签名和验证时会删除一个签名节点)
在进行包络签名时,可以通过将签名节点视为root来解决相同的问题.
但如果涉及多个参考,它可能会变得更加复杂.

解决方法

在一组节点上进行多个签名并使用当前的XMLDSig标准将它们包含在同一XML文档中没有问题.不需要特殊规则或标准.

对于您的示例,每个签名(应该)不是“root”,而是“item”节点(或项目节点集).因此,签名B不包括签名A作为要签名的数据.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念