是什么让 Let's Encrypt 安全?

信息安全 tls dns 让我们加密
2021-09-03 07:04:50

Let's Encrypt是由电子前沿基金会 (EFF)、Mozilla、Cisco、Akamai、IdenTrust 和密歇根大学的研究人员发起的一项倡议,旨在自动为每个域所有者提供可用于 TLS 的公认证书。

为了证明您拥有一个域,您需要在该域的特定(随机生成)URL 上安装一个包含特定(随机生成)内容的文件。Let's Encrypt 服务器将在签署证书之前通过访问 URL 来验证这一点。

现在,假设我有一些攻击会使域awesomebank.example解析到我的服务器。假设我也可以 MITM 某些人与https://awesomebank.example/. TLS 旨在防止我在不被发现的情况下查看或更改他们与服务器的通信。

是什么阻止我在 Let's Encrypt 服务器上使用这种攻击,并获得证书awesomebank.example,然后将其用于 AwesomeBank 的 MITM 客户而不被发现(因为我有一个有效的证书)?全自动 CA 的存在不会降低 Internet安全性吗?

4个回答

与其他 DV 证书相同的安全性

是什么阻止我在 Let's Encrypt 服务器上使用这种攻击,并获得 awesomebank.example 的证书,然后将其用于 AwesomeBank 的 MITM 客户而不被发现(因为我有一个有效的证书)?

没有什么。如果你拥有网络,那么你就拥有了网络。DV 类型证书(见下文)依赖网络来证明域所有权。通常没有带外检查。(没有人会打电话给你,没有人会检查你的照片身份证,没有人会去公司注册的地方拜访你,等等。)

全自动 CA 的存在不会降低 Internet 的安全性吗?

不。与 DV 类型证书的安全级别相同。

x509 证书(当前)有三个保证级别:

  • DV,域验证
  • OV,组织验证
  • 电动汽车,扩展验证

DV是最便宜的。它基本上意味着“如果有人可以回复 admin@example.com 的电子邮件,那么该人将获得 example.com 的证书”

对 OV、EV 有额外的检查。

有关证书类型的更多信息:GlobalSign.com:有哪些不同类型的 SSL 证书?(在此处存档。)维基百科:https ://en.wikipedia.org/wiki/Public_key_certificate#Validation_levels 这些幻灯片中的更多背景信息:RSAConference2017,会议 ID:PDAC-W10,Kirk Hall,100% 加密网络 - - TLS 的新挑战

进一步阅读

是的,您描述的协议仅确保当您给他们打电话时“在真棒银行接电话的人”与 Let's Encrypt 服务器呼叫他们时在真棒银行接电话的人是同一个人。如果我有能力拦截 Let's Encrypt 和你打给真棒银行的电话,那么我可以骗过你。

理想情况下,您希望 TLS 告诉您的是,当您打电话给他们时,“在 awesome bank 接电话的人”实际上是 awesome bank 的员工但这很难自动化,因为计算机不能仅仅确定某人为谁工作,因此经过更好验证的证书成本更高。Let's Encrypt 做的事情并没有比其他 CA 做的更安全。

人们希望 Let's Encrypt 会尝试让拦截他们对真棒银行的电话比拦截你的电话更难。一些互联网接入点比其他接入点更容易搞乱(不安全的无线得分低),同时搞乱多个接入点比一个更难(所以当 Let's Encrypt 从许多不同的地方下载文件时,它可能会确认它接收到相同的文件世界上的地方,虽然我没有看过他们是否认为有必要)。除了像 NSA 这样的组织之外,MITM 攻击在实践中往往是局部的和暂时的。

因此,它只会在 MITM Let's Encrypt 比 MITM 你更难的范围内提供一些安全措施。我们认为控制您对 Internet 的访问比控制 Let's Encrypt 或真棒银行的访问更容易,这就是为什么您“信任” Let's Encrypt 作为 CA。

当然,这些都不是真正的电话呼叫,而是入站套接字连接。

Let's Encrypt 旨在帮助抵御一系列攻击,并推动 TLS 使用的普及,以拥有全球更安全、更私密的互联网。它旨在更准确地消除可能阻止某些网站管理员更广泛地使用 TLS 证书的技术和财务限制。

但是,作为任何安全措施,这并不是解决所有可能的证券问题并让您将您的网站标记为“100% 安全网站”的奇迹产品!(即使某些网站会毫不犹豫地使用此类邮票......)。安全意味着多层的组合,每一层都旨在解决自己的威胁类别。

如果一个人真的设法获得了您的域名的所有权,那么大多数情况下 Let'sEncrypt 证书交付是自动化的这一事实在这种情况下不会比在另一种情况下产生更大的影响。

提醒一下,从经典 CA 获得证书所需要做的就是拥有一个像“admin@example.com”这样的管理地址并支付一些钱。如果您设法获得域所有权,那么您可以自由地将电子邮件重定向到您自己的邮件服务器,从而有效地拥有您选择的电子邮件地址。

这不是理论上的威胁。您将在此处找到由域名被盗以获取其电子邮件所有权的人撰写的文章。在这种精确的情况下,它是为了访问从第三方团体发送的密码重置电子邮件,但是在他的位置上,攻击者也可以为该域生成新证书并建立一个网络钓鱼站点,该站点将被认为是安全的浏览器。

自动检查的使用并非此 CA 独有,但对于入门级证书很常见。如其他答案所述,使用了 3 个级别的证书:

  • 域验证仅证明您在颁发证书时控制了域。(并且从那时起该证书没有被明确撤销。)
  • 组织验证涉及额外检查证书中列出的公司名称是否有效。
  • 扩展验证包括对申请证书的公司进行更严格的审核。

对于基本的 DV 证书(并且作为 OV 和 EV 应用程序的第一步),大多数 CA 将使用某种形式的自动“域控制验证”。例如,Comodo 提供 3 个选项

  1. 电子邮件必须由域中的通用地址的简短列表之一接收,例如“admin@”,假设只有授权人员才能访问这些邮箱。
  2. 必须在域的 DNS 区域中添加特定的 CNAME 记录,证明申请人具有 DNS 控制权。
  3. URL 必须在域的 HTTP 根目录中添加特定内容,证明申请人对域指向的 Web 服务器具有控制权。

作为 Lets Encrypt 工作的一部分而开发的ACME 协议是为了自动执行此检查的客户端。他们的技术概述实际上提到了基于 DNS 和基于 HTTP 的检查作为可以通过这种方式自动化的示例。

这个想法是,您安装的软件可以根据它可以访问的配置自动确定如何应对这些挑战。如果它可以找到并写入要验证的域的 Document Root,那么基于 HTTP 的挑战很容易自动化。由于邮件传递的复杂性,更传统的基于电子邮件的验证方法难以实现自动化,但它提供的证明数量实际上并没有什么不同。