

印度证书颁发机构eMudhra签发的8张TLS中级证书私钥熵值仅3–8位,严重弱密导致攻击者可伪造任意网站身份实施中间人劫持;虽主流浏览器已紧急拦截,但Linux发行版、IoT设备及嵌入式系统因更新机制缺失,修复难度和周期远超‘心脏出血’漏洞。
作者:Dan Goodin (Ars Technica)
编译:深潮 TechFlow
深潮导读:由印度证书颁发机构 eMudhra 签发的 8 张 TLS 中级证书私钥被曝严重缺陷,其密钥熵值低至 3 至 8 位,使攻击者理论上可伪造任意网站的受信凭证实施中间人劫持;尽管主流浏览器已迅速实施拦截,但由于大量嵌入式设备、IoT 硬件与 Linux 发行版缺乏自动化更新机制,这场波及全网底层的修复清理工作其复杂度恐将超越当年的“心脏出血”漏洞。

中级证书的漏洞允许任何人都可以为互联网上的任意服务器随意签发 Web 凭证。
周二,全球各地的安全技术人员全面进入高度戒备状态。此前,安全人员发现了 8 张私钥极度脆弱的 TLS 证书,攻击者可利用它们为互联网上的任意站点随意伪造受各大浏览器和移动应用程序无条件信任的身份凭证。
截至周二上午晚些时候,主流浏览器制造商以及部分核心应用和编程语言已全面拦截这 8 张中级证书。跟踪所有浏览器受信任证书签发情况的证书透明度日志(Certificate Transparency Logs),目前尚未发现这些受损密钥被恶意利用的记录。然而,威胁远未结束,因为要针对 Linux 发行版、嵌入式系统以及物联网(IoT)设备等互联网其他异构组成部分进行补丁更新,将极其困难且耗时漫长。
这 8 张中级证书属于总部位于印度的权威证书颁发机构 eMudhra Limited。周二发布在 emudhra.we-have-a-problem.com 上的一份非正式安全通告写道:“我们这里遇到了麻烦,Wayne。”这句话使用了其中一张 eMudhra 证书的私钥进行了数字签名。由于有确凿证据表明报告方掌握了该私钥,安全防御人员紧急行动起来,因为这同一私钥可被用于对未经授权的证书进行签名,而这些证书将被全球数以百万计的服务器所信任。
开源 Go 编程语言的密码学工程师兼密码学维护者 Filippo Valsorda 告诉 Ars:“这将是一场庞大的清理工作,规模甚至超过‘心脏出血’(Heartbleed)漏洞。它将产生一个极其漫长的长尾效应,涵盖物联网设备、Docker 容器、被遗忘的 Linux 机器,以及自带根证书副本且无人维护的 CLI 命令行工具(这在 Python 等某些生态系统中很常见)。此外,Linux 发行版目前仍在陆续推送更新,其中一些尚未准备就绪,随后系统管理员还需要将它们应用到海量机器上。”
Heartbleed 是 OpenSSL 密码学库中一个严重漏洞的代号。2014 年,该漏洞遭到大规模利用。黑客利用该漏洞解密了各方之间受 TLS 保护的通信,并获取了私有 TLS 证书密钥、会话 Cookie 和密码。攻击波及了数千台服务器,其中包括全球一些大型公司和政府机构的服务器。
从该事件中恢复需要经历耗时数年的漫长流程。具体措施包括在所有受影响设备上修补 OpenSSL、重新签发数百万个 TLS 密钥、吊销旧证书、轮换密码和会话令牌,以及更新嵌入式设备和其他被遗忘的系统,这在整个互联网规模下极其耗费时间和资源。
Valsorda 解释道:“每当需要不同环境下的众多人群采取行动时,都需要耗费很长时间。这一次的情况更糟,因为环境更多、人员更广,异构性也更高。”
受损的 eMudhra 密钥缺陷之严重,超出了许多研究该事件的工程师的想象。NIST P-384 椭圆曲线密码学私钥的正常大小包含大约 384 位熵,该大小允许近 2 的 384 次方(即一个 116 位数字)种不同的可能性。而这些受损密钥的私钥大小仅在 3 位至 8 位之间。令人震惊的是,这些私钥竟然就是 4、56、66、115、155、156、230、237。
Valsorda 表示:“这完全属于‘绝不可能发生’的范畴。也许某个极其危险的密钥生成接口有一个‘size’参数,而他们误将其设为了 1???”
BGP.tools 总监 Ben Cartwright-Cox 表示:“我的猜测是示例代码不小心泄露到了生产环境中,但具体原因很难确定。然而,竟然没有人注意到这一点,这简直太离谱了。”
在当前初期阶段,最直接的威胁似乎针对那些使用 VPN 的用户,特别是在政府可能恶意拦截流量的国家。同时还存在许多其他令人担忧的情况。终端用户基本上别无选择,只能暂停使用多种非浏览器的 TLS 通信方式,直到确认更新已经到位。
如前所述,大多数浏览器已经拦截了这些中级证书。唯一的例外似乎是运行在 Windows 10 上的 Edge 浏览器,截至本文发布时,该浏览器仍在连接 12 个受影响的主机。在回答为何如此以及公司是否有拦截计划的问题时,微软的一位代表表示,如果有任何消息要“分享”,公司会保持沟通。与此同时,Signal、WhatsApp、Wireguard 以及其他不依赖 TLS 实现保密性的应用程序未受影响。该页面和 emudhra.we-have-a-problem.com 网站列出了迄今已知已修复的应用程序。
这起事件再次暴露了 TLS 机制中的一个致命缺陷:整个系统的安全性完全取决于其最薄弱的一环,而在这种情况下就是 eMudhra。幸运的是,证书透明度日志在很大程度上防范了这种故障,但该措施需要各方主动监控海量数据源,并且只有在未经授权的证书被签发之后才能发挥作用。eMudhra 的代表未能立即接受置评请求。
需要说明的是:利用受损证书需要实施主动的中间人攻击(Adversary-in-the-Middle),这意味着攻击者必须充当两个 TLS 通信方之间的代理,接收加密流量、解密、重新加密后再发送给另一方。在某些情况下,这种能力通常仅限于拥有极其丰富资源的攻击者。然而,控制了本地网络(如咖啡馆、大学或其他组织内部网络)的人所面临的挑战要小得多。