如今,许多证书颁发机构都使用 ACME 协议来自动化证书颁发过程。这包括验证申请人是域的所有者。最常见的方法是通过 HTTP-01 挑战,它挑战申请人通过 HTTP 从服务器提供给定的令牌。
但我的问题是,如果 HTTPS 是为 Web 提供身份验证和不可否认性的东西,那么没有这些特性的协议 HTTP 怎么能被用来引导 HTTPS?证书颁发机构如何知道提供质询令牌的服务器确实位于它所说的 IP 地址?这个挑战是否容易受到 MITM 攻击,而 HTTPS 正是为了防止这种攻击?
如今,许多证书颁发机构都使用 ACME 协议来自动化证书颁发过程。这包括验证申请人是域的所有者。最常见的方法是通过 HTTP-01 挑战,它挑战申请人通过 HTTP 从服务器提供给定的令牌。
但我的问题是,如果 HTTPS 是为 Web 提供身份验证和不可否认性的东西,那么没有这些特性的协议 HTTP 怎么能被用来引导 HTTPS?证书颁发机构如何知道提供质询令牌的服务器确实位于它所说的 IP 地址?这个挑战是否容易受到 MITM 攻击,而 HTTPS 正是为了防止这种攻击?
实际上,WebPKI 是一个缓存的分布式首次使用信任系统。CA 托管在非常靠近互联网骨干网的地方,好的 CA 执行多角度检查,这意味着它们托管在全球多个地方,每个位置都靠近互联网骨干网,并且它们从多个位置运行 DNS 或 HTTP 验证检查.
如果你在一个被劫持 WiFi 的网吧并尝试做 TOFU,你会得到 MiTM'd。但是要 MiTM 说 AWS 和 GCP 之间的连接要困难得多——流量可能只能由亚马逊、谷歌、一级 ISP 和 NSA 进行 MiTM。
假设任何主权国家政府都可以在其国内物理托管的任何服务器和国外服务器之间建立连接。因此,如果土耳其想要 MiTM 土耳其的任何服务器,它可以。土耳其政府还可以命令土耳其 CA 颁发所有浏览器都信任的证书。
防止 CA 被 MiTM 愚弄的保护与防止 CA 被收买和 CA 被黑客入侵的保护相同:证书透明度日志将显示您未授权的域的证书。如果这被注意到并报告,这将导致 CA 从轨道上被核弹,并在 mozilla.dev.security.policy 上运行。您可以监控您的域的主要受信任证书透明度日志(或花钱请人为您或其他人做这件事)。