提问者:小点点

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


根据XML签名规范(3.2.2签名验证),可以对KeyInfo元素进行签名:

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

在这里,我们可以看到具有此类签名的xml示例。

有什么理由自行签署证书吗?

它消除了哪些安全风险?


共1个答案

匿名用户

看看这个关于XAdES中属性签名证书的澄清部分。ETSI XAdES建立在XMLDSig之上,以稳定长期有效的高级签名的要求

ds: KeyInfo不存在或不包含用于签名的证书时,证书是强制性的,并且具有相同的目的

7.2.2签名证书元素

在许多现实生活环境中,用户将能够从不同的CA甚至同一CA获得不同的证书,这些证书包含不同名称的相同公钥。主要优点是用户可以将相同的私钥用于不同目的。当使用智能卡来保护私钥时,多次使用私钥是一个优势,因为智能卡的存储总是有限的。当涉及多个CA时,每个不同的证书可能包含不同的身份,例如作为国民或公司雇员。因此,当私钥用于各种目的时,需要证书来澄清在生成签名时使用私钥的背景。如果私钥有可能多次使用,签名者有必要向验证者指明要使用的确切证书。

许多当前的方案只是在签名数据之后添加证书,因此受到各种替换攻击。替换攻击的一个例子是一个“坏”CA,它将使用其他人的公钥向某人颁发证书。如果来自签名者的证书只是附加到签名中,因此不受签名的保护,任何人都可以用另一个证书替换一个证书,消息看起来就像是由其他人签名的。为了对抗这种攻击,证书的标识符必须受到来自签名者的数字签名的保护。