XML多重签名是否有标准?

时间:2012-06-06 16:31:43

标签: xml security w3c digital-signature

我已经检查过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来解决相同的问题。 但是如果涉及多个引用,它可能会变得更复杂。

1 个答案:

答案 0 :(得分:3)

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

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