数字证书签名,Lets Encrypt和数字证书安全( 二 )


这个过程的流程图如下:

数字证书签名,Lets Encrypt和数字证书安全

文章插图
数字证书劫持
那么,我们假设Alice并不会实际拥有example-com,但是她通过中间劫持的方法实现了步骤5中进行加密 。自从Let's Encrypt推出以来,这一直是个问题 。事实上普林斯顿大学的一组研究人员在Bamboozling证书颁发机构的BGP中证明了这一点:他们执行了一个真实的BGP攻击演示,以合乎道德的方式从顶级CA获得虚假证书 。为了评估PKI的脆弱性,研究人员收集了180万个证书的数据集,发现这些数据集中绝大多数域都可以成功伪造证书 。
数字证书签名,Lets Encrypt和数字证书安全

文章插图
该论文中,研究人员提出了两种解决方案,以进行补救,或至少降低这些针对KPI攻击的风险:
CA机构从多个有利位置对域名进行验证,以使其难以发起成功的攻击;
CA机构通过BGP监视系统,检测可疑BGP路由并延迟证书验证使网络运营商有时间对BGP攻击做出反应 。
最近Let's Encrypt实现了第一个解决方案:多角度域验证 。该方法改变了上述流程的第5步:在新的策略下Let's Encrypt会从多个位置下载域名的证书验证 。
Let's Encrypt攻击的工作原理
安德鲁·艾耶(Andrew Ayer)在2015年发现了对Let's Encrypt的攻击 。在其中,Andrew提出了一种方法来控制已经验证了域的Let's Encrypt帐户(例如example-com)
攻击是这样的:
Alice通过在example-com上的一些数据上载签名(example-com/.well-known/acme-challenge/some_file) 来注册并完成域验证 。然后,成功地从Let's Encrypt获得证书 。
之后Eve使用新帐户和新的RSA公钥签署了Let's Encrypt,并请求恢复example-com域
Let's Encrypt要求Eve签发一些新数据,并将其上传到example-com/.well-known/acme-challenge/some_file 。
Eve制作了一个新的假冒密钥对,并在Let's Encrypt上更新了其公共密钥 。然后,她要求Let's Encrypt以检查签名 。
Let's Encrypt从example-com获取签名文件,签名匹配,于是Eve被授予example-com域所有权 。
攻击的图示如下:
数字证书签名,Lets Encrypt和数字证书安全

文章插图
在上述攻击中,Eve设法创建了一个有效的公钥,该公钥验证了给定的签名和消息 。数字签名不能唯一地标识密钥或消息
根据RSA的工作原理(这是现代证书交换链的基础):
数字证书签名,Lets Encrypt和数字证书安全

文章插图
对于固定签名signature和(PKCS#1 v1.5)消息message,公钥(e,N)必须满足以下方程式以验证签名:
signature=message^e(modN)
一个人可以很容易地制作一个(大部分时间)满足以下等式的公钥:
e=1N=signaturemessage可以轻松验证验证是否有效:
signature=message(modsignaturemessage)
signaturemessage=0(modsignaturemessage)
根据定义,最后一行是正确的 。
数字签名的安全性
由于理论领域与应用领域之间安全性证明与已实施协议之间存在差距 。密码学中的签名通常使用EUF-CMA模型进行分析,该模型代表自适应选择消息攻击下的存在不可伪造性 。
通过模型中,生成了一个密钥对,然后要求签署一些任意消息 。在观察签署的签名时,如果可以在某个时间点对未请求的消息产生有效的签名,将获胜 。
不幸的是,尽管现代签名方案似乎通过了EUF-CMA测试,但它们往往表现出一些令人惊讶的特性 。论文《Automated Analysis of Subtle Attacks on Protocols that Use Signatures》中Dennis Jackson,Cas Cremers,Katriel Cohn-Gordon和Ralf Sasse试图对使用签名的协议进行细微的攻击的自动化分析,试图列出这些令人惊讶的特性以及受它们影响的签名方案(然后找到一堆)在使用正式验证的协议 。
数字证书签名,Lets Encrypt和数字证书安全

文章插图
保守的排他性(CEO)/破坏性的排他性(DEO):
密钥替换攻击(CEO),其中使用不同的密钥对或公钥来验证给定消息上的给定签名 。
消息密钥替换攻击(DEO),其中使用不同的密钥对或公共密钥来验证新消息上的给定签名 。
可延展性 。大多数签名方案都是可塑的,这意味着如果给出一个有效的签名,就可以对其进行篡改,以使其成为一个不同但仍然有效的签名 。请注意,如果我是签名人,通常可以为同一条消息创建不同的签名 。不清楚这是否会对任何现实世界的协议产生影响,尽管比特币MtGox交易所将其资金损失归咎于该协议,2014年2月,曾经是最大的比特币交易所MtGox关闭并申请破产,声称攻击者利用可塑性攻击来耗尽其帐户 。


推荐阅读