XML签名 - 签署KeyInfo元素的原因

时间:2017-01-10 11:55:59

标签: xml digital-signature pki xml-dsig

根据XML Signature Specification(3.2.2"签名验证"), KeyInfo 元素可能会被签名:

"注意,KeyInfo(或其某些转换版本)可以通过参考元素签名。"

Here我们可以看到带有这种签名的xml示例。

有没有理由单独签署证书?

它消除了哪些安全隐患?

1 个答案:

答案 0 :(得分:2)

在XAdES中查看关于属性signingCertificate的澄清部分。 ETSI XAdES构建于XMLDSig之上,以建立长期保持有效的高级签名要求

signingCertificate不存在或者不包含用于签名的证书时,

ds:KeyInfo是强制性的,并且用于相同目的

  

7.2.2 SigningCertificate元素

     

在许多现实生活环境中,用户将能够从不同的CA或甚至来自相同的CA获取不同的证书,这些证书包含用于不同名称的相同公钥。主要优点是用户可以将相同的私钥用于不同目的。当使用智能卡来保护私钥时,多次使用私钥是有利的,因为智能卡的存储总是有限的。当涉及多个CA时,每个不同的证书可以包含不同的身份,例如,作为公司的国民或员工。因此,当私钥用于各种目的时,需要证书来阐明在生成签名时使用私钥的上下文。在存在多次使用私钥的可能性的情况下,签名者必须向验证者指示要使用的精确证书。

     

许多当前的方案只是在签名数据之后添加证书,因此受到各种替代攻击。替代攻击的一个例子是“坏”" CA将向拥有其他人公钥的人颁发证书。如果签名者的证书只是附加到签名上,因此不受签名保护,任何人都可以用另一个证书替换另一个证书。消息似乎是由其他人签署的。 为了应对此类攻击,证书的标识符必须受签名者的数字签名保护