我必须处理瑞士邮局颁发的关于 USB 令牌的证书。在同一个令牌上提供两个证书。在其预期使用领域中,一个具有“不可否认性”,另一个具有“数字签名”。
现在,我无法理解两者之间的实际区别是什么:我总是在同一个证书中看到两者,从来没有两个证书具有相同的身份,每个证书都有一个角色。事实上,我无法想象不可否认性和数字签名不一样的场景,在所有实际问题上,都是一回事。
谁能给我解释一下有什么区别,好吗?如果你有一个关于在什么情况下应该选择一个而不是另一个的建议,那也会有所帮助。
我必须处理瑞士邮局颁发的关于 USB 令牌的证书。在同一个令牌上提供两个证书。在其预期使用领域中,一个具有“不可否认性”,另一个具有“数字签名”。
现在,我无法理解两者之间的实际区别是什么:我总是在同一个证书中看到两者,从来没有两个证书具有相同的身份,每个证书都有一个角色。事实上,我无法想象不可否认性和数字签名不一样的场景,在所有实际问题上,都是一回事。
谁能给我解释一下有什么区别,好吗?如果你有一个关于在什么情况下应该选择一个而不是另一个的建议,那也会有所帮助。
我意识到这个问题有点老了,但我想我可以为这个问题提供一些急需的信息。
keyUsage 属性中的不可否认值与整个证书相关,而不是任何特定用途。不可否认标志的存在表明私钥具有足够的保护措施,证书中指定的实体以后不能拒绝 - 拒绝 - 他们对证书采取的行动。标志的存在并不能阻止拒绝,而是表明拒绝可能无法通过合理的审查。
因此,在这种特定情况下,CA 为用户提供了包含或不包含不可否认元素的证书的选项。如果您想向那些验证签名的人断言您不能轻易否认是您签署了它(USB 令牌是这里的关键启用者),请使用不可否认证书。否则,请使用标记为数字签名的证书。(根据证书中的其他属性,您可能能够也可能不能使用其中一个或两个证书签署文件。)
请参阅维基百科:http
://en.wikipedia.org/wiki/Non-repudiation
另请参阅相关 RFC: http: //www.faqs.org/rfcs/rfc3280.html(第 4.2.1.3 节)
我与实现它的人交谈过,显然,他们打算将“不可否认”证书用于 /really/ 签署文件,并将“数字签名”证书用于身份验证。
“数字签名”是指您可以保证文件的来源或用户的身份;这是认证。
“不可否认”意味着文件被批准,这是内容承诺,也称为电子签名(不是数字签名)。
希望这会有所帮助,因为即使在 2013 年,人们也总是问这个问题。
有趣的问题,您的想法与我的想法相符。
我在 IBM 找到了关于密钥用法的参考资料,但我仍然无法真正理解这种区别。
阅读这篇文章后,我能说的最好的理解是不可否认的用法意味着“我真的打算签署这个,并且我真的理解签署这个的含义。”
抱歉,这不是一个完整的答案,但我希望它有所帮助。
编辑2014 年 4 月 4 日
我又得到了更多的分数。@Calrion 的答案要好得多,因此请以这种方式发送任何 +1。
应该使用“数字签名”进行身份验证(是您签署了这个),而“不可否认”意味着您知道您签署了什么。
如果您使用您的私人证书进行身份验证(针对某些服务器),身份验证的工作方式如下:在建立连接期间,您的浏览器(或其他软件)签署了服务器提供的一些随机数据,以证明对方是您。但关键是您无法控制要签名的数据。因此,服务器可以发送“我,Petr Novonty,把我所有的钱都给詹姆斯克拉克”而不是随机数据发送。
为避免这种情况,用于签署某些文档的密钥应设置“不可否认”而不是“数字签名”位。
此页面对所有关键用法进行了一些清晰的描述:
请记住,X.509 重命名nonRepudiation
了contentCommitment
. 这似乎比通过“非”的描述要好。所以这句话支持了Franck Leroy给出的答案。
请注意,它们是简单的位,它们的名称仅说明密钥的使用。RFC 5280 中给出了对这些位的一些解释。但是如何解释这两者之间的区别最终留给了证书颁发者。RFC 5280 对此表示“数字签名和不可否认位之间的进一步区别可能在特定的证书策略中提供。”