如果我有一条消息需要发送给另一个人,我该如何实现不可否认性?
对消息进行数字签名是否足够?
如果我有一条消息需要发送给另一个人,我该如何实现不可否认性?
对消息进行数字签名是否足够?
不,数字签名不足以实现不可否认性——远非如此。
不可否认性是一个法律概念。这意味着,如果发生争议,在诉讼中可以让一方履行其承诺。
例如,声称提供不可否认性的数学方案必须经受住“陪审团攻击”。一些专家证人必须能够用普通陪审员(和法官)可以理解的非技术术语来解释为什么数学证明了任何事情。与此同时,另一方的专家证人将提出相反的论点。如果该方案使用花哨的数学,那么陪审员和法官可能无法理解,因此在诉讼中可能没有多大用处。这是一种攻击,文献中的大多数数学方案都不太可能经得起考验。
恐怕密码学研究界的大部分人都搞砸了。研究人员写了许多声称解决“不可否认性问题”的技术论文,试图用数学来解决它——但他们未能接受的是,密码数学和语用学之间存在巨大差距,法律问题。不幸的是,问题中最难解决的不是数学,而是语用学和法律问题。不幸的是,这似乎是密码学研究界长期存在的盲点。
以下是实现法院或律师会满意的真正不可否认性的一些挑战:
恶意软件。 如果爷爷的电脑感染了恶意软件,窃取了他的私钥怎么办?我们是否要让他对任何被该恶意软件签名的东西负责——即使这意味着他失去了他的房子?那太荒谬了。特别是,一种简单的否认方法是简单地声称“我的私钥一定已被泄露/被盗”。
类似的评论也可以用于社会工程学。当社会工程攻击很有可能成功窃取私钥时,当方案设计成普通人无法安全使用时,当设计者知道(或应该知道)这一点时,我认为陪审员是否愿意追究爷爷的责任值得怀疑,仅仅是因为他被设计不佳的安全系统搞砸了。
人类与计算机。 从法律上讲,不可否认性是关于人的行为的。法院将寻找人类(例如爷爷)同意合同/交易条款的证据。密码方案无法做到这一点。它们只能显示某些计算机执行了某些操作。密码学家喜欢假设计算机充当人类的代理,并且计算机的行为可以代替人类的行为,但这不是一个合理的假设。例如,个人计算机上的恶意软件可以在未经人同意的情况下应用私钥。
基本上,大多数对不可否认方案的密码学研究都有错误的威胁模型。它基于我们后来发现的错误假设。
如果您想了解更多信息,已经发表了大量关于密码学文献中所谓的“不可否认性”与律师接受的充分性之间的差距的文章。以下是一些示例出版物,您可以在其中阅读更多信息:
卡尔·埃里森(Carl Ellison),不可否认性。
罗斯安德森,责任和计算机安全:九项原则。
Brian Gladman、Carl Ellison 和 Nicholas Bohm,数字签名、证书和电子商务。
Adrian McCullagh 和 William Caelli,数字环境中的不可否认性。
Michael Roe,密码学和证据。
Peter Gutmann,数字签名立法。
Greg Broiles 提供了关于不可否认性的法律观点。
不可否认性是指有证据证明所宣布的作者确实写了该消息-即使未经所述作者的同意也可以验证该证明:作者必须不能否认他的消息。
这需要非对称密码学(由于可以在未经作者同意的情况下进行验证,因此它不能使用作者可能拥有的任何密钥),即数字签名,这是用于此目的的工具。
但是,使用数字签名,您只完成了一半的工作,这就是简单的一半。数字签名不会告诉你:“作者是 Bob”。它告诉:“作者是控制与此公钥关联的私钥的人”。您仍然必须有一种方法可以可靠地(在某种意义上:以可接受的证明方式)将 Bob 的公钥与 Bob 的身份联系起来。这是证书的地方付诸行动。证书是包含身份(“Bob”)和公钥的一段数据,由“认证机构”签署:CA 在签署证书时说:“这是由那个家伙”。由于 CA 使用自己的数字签名,它也属于不可否认的范围:证书“证明”公钥是 Bob 的唯一,前提是 CA 是诚实的并使用了可靠的程序(例如,与 Bob 面对面会面)用身份证验证)来建立密钥和 Bob 之间的链接。如果 CA 失败,可以使用错误的证书起诉 CA。从实践的角度来看,CA 的主要兴趣在于证书可以自动验证,并且知道单个 CA 公钥足以验证 CA 生成的数百万个证书。Web 浏览器在连接到 HTTPS 站点时会这样做:它们根据浏览器代码(或操作系统)中硬编码的“根 CA”验证服务器的证书。几十个根 CA 公钥就足以验证整个互联网。
底线是,虽然数字签名是适合使用的加密工具,但大多数解决方案都是非加密的;这主要是程序问题和大量与律师兼容的文件。
如果可以确保您是唯一有权访问用于签署消息的私钥的人,这也会有所帮助。例如,如果私钥的副本也由某种密钥托管服务持有,则不可否认性更难断言,因为您总是可以声称“我没有签署该消息,它一定是一个邪恶的系统管理员访问托管数据库”。
X.509 证书在 keyusage 属性中有一个“不可否认”位,用于标识密钥的预期用途。rfc5280谈到了这一点。
无 否认是指拥有从请求者到授权者以及从授权者到请求者的任何交易的证据。这是一个电子证明,将包含进行任何交易的人的信息。
例如:客户去银行要求更改其银行账户密码,柜员或授权人将协助客户,但必须使用生物识别登录系统,这是为了确保识别如果客户的银行账户出现任何问题,谁在协助客户,那么调查小组可以追踪谁负责客户的银行账户,因为这是一个生物识别应用程序,授权人不能否认针对他的任何指控/如果客户的银行账户存在任何形式的欺诈行为。
客户还会使用生物识别应用程序,以确保他/她确实来到银行并提出更改请求,有时银行账户持有人会派人到银行对敏感信息进行更改,使用如果客户的银行帐户详细信息存在任何形式的欺诈行为,则拒绝将用作证明来确保识别谁来银行并提出更改请求的证明。
敏感数据的任何更改都会有一个保险库(报告),其中将显示更改之前和提出更改请求之后的所有信息。该报告还将显示提出更改请求的客户的详细信息,以及授权客户进行更改的授权人的详细信息。当更改后客户的银行账户发生任何欺诈行为时,调查团队可以使用此报告。