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


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


Let\'s Encrypt数字签名
说到数字签名就不能不对Let\'s Encrypt竖起大拇指 , 可以说它以一己之力为整个互联网网站撑起了HTTPS的天 。Let\'s Encrypt成立于2014年 , 是一家非盈利性的认证机构 , 目前为约2亿个网站提供了数字证书认证 , 累积签发了10亿张的证书 。
数字证书签名,Lets Encrypt和数字证书安全


Let\'s Encrypt成功的关键取决于两点:
它是免费的 。Let\'s Encrypt之前 , 大多数证书颁发机构向要获得证书的网站管理员收取费用 。
Let\'s Encrypt证书和商业证书的区别:
数字证书签名,Lets Encrypt和数字证书安全


它是自动化的 。如果遵循其标准化协议 , 则可以通过API请求 , 续订甚至吊销证书 。与此形成对比的是其他证书机构需要手动处理并需要一些时间来颁发证书 。
如果网站管理员希望网站example-com(通过HTTPS)向用户提供安全的连接 , 则可以向Let\'s Encrypt发出申请证书 , 并在证明自己拥有域example-com并颁发证书后 , 便可以使用该证书来与任何信任"Let\'s Encrypt"的浏览器协商安全连接 。
这个实际流程如下:
1、Alice使用RSA公钥在Let\'s Encrypt中注册 。
2、Alice要求Let\'s Encrypt证书example-com 。
3、Let\'s Encrypt让Alice证明自己是example-com所有者 , 需要签发一些数据并将其上传到example-com/.well-known/acme-challenge/some_file 。
4、爱丽丝签署并上传签名后 , 要求Let\'s Encrypt其进行检查 。
5、Let\'s Encrypt检查是否可以访问上的文件example-com , 如果它成功下载了签名并且签名有效 , 则Let\'s Encrypt向Alice颁发证书 。
这个过程的流程图如下:
数字证书签名,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获得证书 。

推荐阅读