代码之家  ›  专栏  ›  技术社区  ›  Stephane

X509:数字签名和不可否认性有什么区别

  •  22
  • Stephane  · 技术社区  · 14 年前

    现在,我不明白两者的实际区别是什么:我总是在同一个证书中看到两者,从来没有两个证书具有相同的身份,每个证书都有一个角色。事实上,我无法想象不可抵赖性和数字签名不一样的场景,在所有实际问题上,都是一样的。

    谁能给我解释一下有什么区别吗?如果你有一个关于在什么情况下应该选择一个而不是另一个的建议,那也会有帮助

    6 回复  |  直到 14 年前
        1
  •  46
  •   Calrion    13 年前

    我意识到这个问题有点老了,但我想我可以在这个问题上透露一些急需的信息。

    keyUsage属性中的不可否认性值与整个证书相关,而不是任何特定用途。不可否认标志的存在表明私钥具有足够的保护,使得证书中指定的实体以后不能否认它们对证书所做的操作。旗帜的出现并不意味着 防止 与其说是拒绝,不如说是拒绝 这种否认不太可能经受住合理的审查。

    因此,在这个特定的情况下,CA向用户提供了一个证书选项,该证书包含或不包含不可否认元素。如果您想向那些验证签名的人断言您不能轻易否认签名的人是您(这里的USB令牌是密钥启用码),请使用不可否认证书。否则,请使用标记为数字签名的证书。(根据证书中的其他属性,您可以使用其中一个或两个证书签署文档,也可以不使用。)

    http://en.wikipedia.org/wiki/Non-repudiation
    另见相关RFC: http://www.faqs.org/rfcs/rfc3280.html (第4.2.1.3节)

        2
  •  8
  •   Stephane    14 年前

        3
  •  6
  •   Franck Leroy    11 年前

    “数字签名”意味着您可以保证文档的来源或用户的id;这就是身份验证。

    “不可否认性”是指文件被批准,这是内容承诺,也称为电子签名(不是数字签名)。

    希望这能有帮助,因为即使在2013年人们也会问这个问题。。。

        4
  •  4
  •   Neil Moss    11 年前

    有趣的问题,你的想法和我的一致。

    我在IBM找到了一个推荐人 here 关于键的用法,但我还是不能真正理解它的区别。

    读了这篇文章后,我能表达的最好的理解是,不可否认用法的意思是“我” 真正地 我本来想签这个的,我 真正地 理解签署本协议的含义。”

    抱歉,这不是一个完整的答案,但我希望它有帮助。

    编辑 2014年4月4日

    我刚刚又得到了更多的分数。@Calrion给出的答案要好得多,所以用那种方式发送+1。

        5
  •  1
  •   Vlasta    8 年前

    如果您使用私有证书进行身份验证(针对某个服务器),则身份验证的工作方式如下:在建立连接期间,您的浏览器(或其他软件)对服务器提供的一些随机数据进行了签名,以证明另一方是您。但关键是,您无法控制要签名的数据。因此,服务器可以发送而不是随机数据发送“我,彼得诺文蒂,把我所有的钱给詹姆斯克拉克。”

    为了避免这种情况,用于对某些文档进行签名的密钥应该具有“不可否认性”而不是“数字签名”位集。

        7
  •  0
  •   Annie Y    4 年前

    请记住,X.509将 nonRepudiation contentCommitment . 这似乎比用“非”来描述要好。所以这句话支持弗兰克·勒罗伊的回答。

    请注意,它们是简单的位,它们的名称仅表示密钥的用法。RFC 5280中给出了这些位的一些解释。但如何解释这两者之间的区别最终还是留给了证书颁发者。RFC 5280对此表示,“数字签名和不可否认位之间的进一步区别可能会在特定的证书策略中提供。”

    https://tools.ietf.org/html/rfc5280#section-4.2.1.3