全球最重要的DNS服务器1.1.1.1证书被假冒,对互联网构成威胁
我们上网时,浏览器地址栏前面那个小锁头,代表连接是加密的——这背后靠的是 TLS 证书。这些证书就像“数字身份证”,把一个网站域名(比如 google.com)和它的加密公钥绑在一起。证书由“发证机构”(叫 CA,证书颁发机构)签发,而这个机构自己掌握着对应的私钥,用来证明这张证书是真的。
但问题来了:谁拿到这张证书,谁就能冒充那个网站!
最近就出大事了——有人发现,竟然有三张本不该存在的 TLS 证书,被错误地签发给了著名的公共 DNS 服务 1.1.1.1(这是 Cloudflare 提供的服务,很多人在用)。这意味着,拿到这些证书的人,可以假装自己就是真正的 1.1.1.1 服务器。
这些证书于5月颁发,可用于解密通过DNS over HTTPS加密的域名查询查询。DNS over HTTPS是一种协议,当终端用户设备请求访问特定域名的IP地址时,提供端到端加密。
Ryan Hurst(网络安全公司 Peculiar Ventures 的 CEO,也是 TLS 和数字证书领域的专家)告诉 Ars Technica:
“如果攻击者想利用这些假证书搞事情,他们可以发动‘中间人攻击’——偷偷截住你和 Cloudflare DNS 之间的通信。”
怎么做到呢?他解释说,攻击者可以用一种叫 BGP 劫持的技术。BGP 是互联网的“导航系统”,它告诉数据包:“你要去的 IP 地址现在走这条路”。攻击者可以通过伪造路由信息,让网络以为他们控制的服务器才是真正的 1.1.1.1。
一旦成功,再加上这三张假证书,攻击者就能:
- 解密你的 DNS 查询内容
- 看到你在查什么网站
- 甚至篡改结果,把你引向钓鱼网站或恶意页面
这次事件暴露出互联网信任体系的一个大漏洞——我们整个网络的安全,其实都建立在这些“数字证书”上。比如你登录 Gmail、网银、税务局网站,之所以敢输入密码,就是因为浏览器说:“这个网站有合法证书,是真的!”可现在,连 1.1.1.1 这种关键服务都能被错误发证,那谁还能信?
更离谱的是:按照规定,证书颁发机构(CA)在签发证书前,必须验证申请者确实控制了对应的 IP 地址,并且要留下验证所用的 IP 记录。但这次的三张问题证书,一条验证记录都没有!完全不符合规范。
而且,微软也有责任。因为这些错误证书居然被 Windows 系统信任了长达好几个月,微软却一直没发现、也没阻止。
另外,Cloudflare 和整个证书生态系统的其他参与者也难辞其咎。因为现在所有签发的证书都必须公开记录在一个叫“证书透明度日志”(Certificate Transparency Log)的地方,目的就是让大家能快速发现异常证书。
可问题是:这三张证书是四个月前就发出来的,直到现在才被人发现。说明这个“公开监督”机制根本没起作用,大家根本没人认真看这些日志。
安全证书是什么?
- 你可以把它想象成一个网站的“数字驾照”或“官方印章”。
- 它的主要作用是证明你正在访问的网站(比如 bank.com)确实是真正的那个网站,而不是一个假冒的钓鱼网站。
- 它通过加密技术来保护你的浏览器和网站之间传输的数据,防止被窃听或篡改。
为什么这件事很严重?拥有这个错误证书的人(假设是攻击者)可以尝试进行“中间人攻击”。具体来说:
- 第一步:欺骗你的网络。 攻击者可能需要先利用一种叫做 BGP 劫持 的技术来撒谎,欺骗网络路由器,让你的设备误以为攻击者的服务器才是真正的 1.1.1.1。(文章里的评论者也指出可能还有其他方法能做到这一点)。
- 第二步:冒充真实服务。 当你的流量被引导到攻击者的假服务器后,他们就可以出示这个错误的安全证书。因为证书看起来是合法的,你的浏览器可能会选择信任它。
- 第三步:窃听和篡改。 一旦连接建立,攻击者就能解密、查看、甚至修改你与 1.1.1.1 DNS 服务之间的所有通信。这可能会泄露你的上网查询记录,甚至将你引导到恶意网站。
- 潜在影响更广: 文章提到,Cloudflare 的 WARP VPN 服务 也可能受到类似的影响。
这暴露了哪些更深层的问题?这次事件显示了互联网安全基础架构中的几个关键环节出了问题:
- 证书颁发机构 (CA) 失职: 颁发证书的机构(CA)有严格的规则来验证申请者是否真的拥有那个网站或地址。然而,为这三个错误证书负责的 CA 都没有提供它们用于验证的 IP 地址记录,说明验证过程失败了。
- 微软 (Microsoft) 反应迟缓: 微软的 Windows 系统内置了一个受信任的 CA 列表。微软没有及时发现并阻止系统信任这个错误证书,让它长时间处于“被信任”状态。
- 透明度日志未被充分监控: 为了及时发现这类错误,所有颁发的证书都会被记录到一个公开的“透明度日志”里。安全专家、公司(比如 Cloudflare)都应该定期检查这些日志。但这个错误证书在签发4个月后才被公众发现,说明大家对这些至关重要的日志关注得不够。