技术

eMudhra证书私钥竟是数字4,任何网站都能被伪造

Adrian Kessler
在 Google 中添加我们

一张用于证明网站身份的证书,其背后的密钥竟然就是数字4。不是一串以4开头的长随机数,而真的只有一个4。同一家印度证书颁发机构 eMudhra 还有另外七把密钥,数值也几乎一样小。任何人只要拿到这些密钥,就能为任何网站签发证书——无论是银行还是电子邮件服务商——而信任 eMudhra 的软件都会把它当成真证书。

浏览器地址栏里的挂锁图标,检查的就是这类证书。如果攻击者伪造了证书,并能在你与互联网之间拦截通信——比如利用咖啡馆的 Wi-Fi、被入侵的路由器,或充满敌意的国家级网络——就可以冒充真实网站,读取或篡改你发送的内容。Chrome、Firefox、Safari 和微软的平台已经不再信任这八张证书,但你设备上的许多其他软件仍然信任它们。

这类密钥通常是一个约384位的随机数,大约有10的115次方种可能。Ars Technica 列出的 eMudhra 密钥长度只有3到8位,分别是:4、56、66、115、155、156、230和237。安全研究员斯科特·赫尔姆(Scott Helme)写道,他从自己笔记本电脑上的公开证书中找回了全部八把密钥,“用时还不到一秒”。他后来还补充说,Anthropic 的 Claude 只凭一条提示也做到了这一点。

这起事件不需要有人窃取任何东西。据 BleepingComputer 报道,eMudhra 在向 Mozilla 提交的说明中将问题归咎于密钥生成流程所用脚本中的一个漏洞:脚本生成了另一组强度很低的密钥,工作人员因为标签看起来相似,误选了这组密钥。该公司称自己已签发超过6000万张数字证书,并告诉 Mozilla,大多数受影响的中间证书从未投入使用,也没有证据表明它们曾为终端用户签发证书。eMudhra 已撤销全部八张证书,并停止通过受影响的根证书签发证书。

浏览器端的问题相对容易处理。Chrome、Firefox 和 Safari 会在后台向用户推送撤销列表,并要求每张证书都出现在公开的证书透明度日志中;而没有任何一张由这些密钥签发的网站证书出现在日志里,因此默认情况下,及时更新的浏览器并未受到影响。真正的漏洞在其他地方:命令行工具 curl、Python、Node 和 Go 等编程语言、VPN 客户端、Docker 容器以及智能家居设备,都各自维护着受信任机构列表;它们很少检查证书是否已撤销,也不会查看透明度日志。赫尔姆为 Stripe 的支付 API 制作了一张伪造证书,测试发现,在他检查的所有 Linux 和 macOS 设备上,curl、Python 和 Node 都接受了这张证书。

Go 语言加密代码维护者菲利波·瓦尔索达(Filippo Valsorda)告诉 Ars Technica:“这会是一项规模巨大的清理工作,比 Heartbleed 还棘手。”他指的是 OpenSSL 的那个漏洞,当年花了数年时间才彻底清理干净。他预计,问题会留下“非常、非常漫长的尾巴”,波及物联网设备、Docker 容器、被遗忘的 Linux 机器,以及自带受信任根证书副本、却无人维护的工具。利用这些密钥仍要求攻击者处于网络传输路径上,因此政府、遭入侵的办公网络,或公共热点的运营者都可能具备实施攻击的条件。Ars 指出,不依赖这些证书进行加密的 Signal、WhatsApp 和 WireGuard 不受影响。

从证书于2025年4月创建的那天起,这些密钥就能被找回,暴露窗口长达约17个月;而对于那些会跳过透明度检查的软件,无法判断是否有人曾利用这些密钥实施攻击。2025年5月,每张证书还都由 Sectigo 的 AAA Certificate Services 根证书交叉签名,进一步扩大了信任它们的系统范围。

对大多数人来说,解决办法就是安装更新。一名研究人员于10月17日向各浏览器厂商报告了这些密钥。Mozilla 当天不到三小时便在 Firefox 中屏蔽了相关证书,并于10月20日发布 Firefox 158.0.1、新版 ESR 构建版本和 NSS 3.131.1,移除了 eMudhra 根证书。根据 Mozilla 工程师丹尼斯·杰克逊(Dennis Jackson)维护的事件追踪网站,Apple 于10月19日加入防护,微软则于10月20日跟进;不过 Ars 发布报道时发现,Windows 10 上的 Edge 仍能连接测试服务器。Go 1.27.3 和 1.26.10、pip 26.2.2、uv 0.13.4 以及 certifi 2026.10.19 已经发布;Cloudflare 更新了 WARP 和 1.1.1.1 应用,Linux 发行版仍在陆续推出新版 ca-certificates 软件包。macOS 内置的 curl 仍会信任这些密钥,除非用户手动编辑其证书文件。

Chrome 已确认,将在第43版中把 eMudhra 根证书从 Chrome Root Store 中移除。在所有设备完成更新之前,短短八个位,仍横亘在大量日常软件与仿冒任何网站的假证书之间。

标签: , , , , ,

在 Google 中添加我们

讨论

有 0 条评论。