【问题标题】:XML signature - reasons to sign KeyInfo elementXML 签名 - 签署 KeyInfo 元素的原因
【发布时间】:2017-05-24 21:49:40
【问题描述】:

根据XML Signature Specification(3.2.2“签名验证”),KeyInfo 元素可以被签名:

“请注意,KeyInfo(或其某些转换版本)可以通过 Reference 元素进行签名。”

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

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

它消除了哪些安全风险?

【问题讨论】:

    标签: xml digital-signature pki xml-dsig


    【解决方案1】:

    查看有关 XAdES 中属性 signingCertificate 的说明部分。 ETSI XAdES 建立在 XMLDSig 之上,以建立长期有效的高级签名的要求

    ds:KeyInfo 不存在或不包含用于签名的证书时,signingCertificate 是必需的,并且用于相同目的

    7.2.2 SigningCertificate 元素

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

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

    【讨论】:

    • 我已经与那些签名和证书合作了 5 年,但不知道具有相同密钥的多个证书或那种反击。总有新东西要学:)
    • @pedrofb,但是如果有一个“坏”(且受信任的)CA 并且它为攻击者颁发证书,那么攻击者可以同时替换证书和签名这也保护了该证书。在“坏” CA 的情况下,签署证书没有帮助,不是吗?
    • 确实是@dimmoborgir。您只能通过事先将公钥发送给收件人进行双重验证来保护自己。 “坏” CA 无法创建有效签名,因为它不拥有私钥。但是该 CA 很难被认为是“受信任的”。要求非常严格。看一下信任服务提供者颁发证书的要求:etsi.org/deliver/etsi_en/319400_319499/31941101/01.00.00_20/…
    • @pedrofb。如果(接收者)不信任“坏”CA,那么接收者可以很容易地检测到用另一个(不信任)替换原始证书(信任)(只需验证证书有效性)。因此,所描述的替代攻击将不会成功。即使没有额外的签名。
    • @dimmoborgir 理解替代攻击的关键是您的第一条评论。一个“坏”且受信任的 CA。我想我没有准确评论.. CA可以使用发件人的公钥颁发有效证书,但不能替换签名,因为它没有私钥,所以无法替换签名的KeyInfo如果已签名。如果 KeyInfo 未签名,则“坏”且受信任的 CA 可以替换它。所以你的第一条评论的断言“和签名”是不可能的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 2016-12-14
    • 2018-02-24
    • 2016-09-26
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多