这周影响面最广的安全事件不是某个应用漏洞,而是一家印度 CA 的密钥生成出了问题。
发生了什么
eMudhra 在 2025 年 4 月的密钥仪式上生成了八个中间 CA 证书,生成方式让任何人都能恢复它们的私钥。10 月 17 日有研究者把全部八个的密钥控制证明报给了苹果、Chrome、微软、Mozilla 和 eMudhra;19 小时内 Chrome 通过 CRLSet 屏蔽了六个 TLS 密钥,Firefox 的 OneCRL 推送在当晚完成;18 日 eMudhra 以 caCompromise 为由吊销全部八个。
为什么影响这么广
浏览器有自己的吊销机制,所以浏览器侧很快就安全了。真正危险的是服务端代码——它通常既不检查证书透明度日志,也不查吊销列表。一份伪造的证书,对跳过 CT 和吊销的客户端是完全有效的。
处置清单
Go 1.27.3 与 1.26.10 把受影响中间证书强制加入拦截清单。但 Go 是编译型语言,拦截清单是编译进执行档的——只升级本机工具链、不重新编译并重新部署现有程序,线上还是用旧的信任链,等于没修。
Python 侧要查每个虚拟环境的 certifi、每个锁文件里的 certifi、pip 自带的 certifi,以及 Python 自带的 ensurepip 里那份。Node.js 26.12.1、24.22.1、22.23.4 更新了 NSS 3.131.1。Java 各条线、Rust 的 webpki-roots、Erlang 的 certifi 都有对应版本。
一条通用经验
这件事真正的教训是:根证书会被一层层 vendor 进去。你能数清自己项目里到底有几份 CA 文件吗?数不清的话,平时就该准备一个扫描脚本,出事时按脚本走,而不是凭记忆。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。