八位信任:eMudhra 的 CA 密钥在毫秒内被破解
一家大型印度证书颁发机构 eMudhra 被发现生成了多枚椭圆曲线 CA 私钥,其有效熵只有 8 位,其中一枚的值甚至是“4”,因此可从其公钥证书在毫秒内被破解。评论者探讨了这类问题如何能躲过审计并进入浏览器信任库,它揭示了网络证书颁发机构模型的脆弱性,以及 Certificate Transparency 等保障措施的局限。他们还强调了对无法打补丁的物联网与嵌入式设备的长期影响:在这些设备被更新信任库或退役之前,它们可能会因 HTTPS 中间人攻击而变得极易受害,或被机会主义地越狱。
弱密钥的成因
- 评论者拆解 Mozilla 的漏洞报告:eMudhra 将问题归咎于用于导出时包装/解包 ECC 密钥的“KGC 脚本”偏差。
- 由于代码缺陷,似乎还生成了第二对弱得多的密钥对;而且令人困惑地相似的密钥标签导致操作员在为 CSR 和交叉签名时用了错误的密钥。
- 许多人对 HSM 或仪式工具竟能在如此小的范围内生成密钥感到震惊;他们认为“测试/弱密钥”能力本身就是一种根本性的设计异味。
恶意还是无能
- 许多人认为这更像是严重疏忽或“高级愚蠢”,而不是恶意:如果你已经控制了 CA,就不需要靠弱密钥来滥用它。
- 也有人指出,故意埋下弱点可以提供可否认性,但大多数人仍认为“漏洞 + 草率流程”的解释更可信。
CA 体系与审计问题
- 普遍观点认为 CA 生态过度信任、验证不足:有数百个根证书和数千个中间证书,但却连 CA 密钥的基本熵/单元测试都没有。
- 审计被批评为走过场,可能漏掉像 8 位密钥这样显而易见的失败。
- 有人认为这次事件应该足以让公司倒闭;也有人指出许多 CA 是“既成事实”的既有参与者,而政治/eIDAS 式要求使得大幅削减的可能性不大。
影响与缓解
- 立即建议:更新 OS 的 CA bundle、语言运行时,并重建容器镜像;注意 Flatpak 和某些运行时可能仍自带自己的存储。
- 人们特别担心那些无法打补丁或很少更新的设备(路由器、电视、打印机、IoT、嵌入式 Java keystore),它们会一直信任这些中间证书直到 2039 年。
发现过程与搜索其他弱密钥
- 据称,这些弱密钥是通过对 CCADB 证书运行 Google 的 paranoid_crypto 找到的;对该语料库的进一步扫描没有发现类似案例。
- 还有人提议在所有根证书/中间证书上进行更广泛的自动化检查(“行李代码熵”),包括检查被截断或由时间戳播种的密钥。
关于 PKI 替代方案的争论
- 很长的讨论串围绕用 DNSSEC/DANE、名称约束,或内容签名与用户可控信任图来替代或约束 CA 展开。
- 反驳意见强调部署失败(DNSSEC)、顶级域名运营方带来的政治/控制问题、非专家的可用性,以及旧版客户端的持续存在。
IoT 与机会主义利用
- 多个人已经在使用这些损坏的 CA 密钥来对流量做中间人攻击,以及越狱受限设备(智能音箱、家电、ESP32 硬件)。
- 在设备仍未打补丁期间,这种双重用途被视为既是少见的“好处”,也是严重的保密风险。