eMudhra 中间证书私钥泄露事件分析

事件概览

发生了什么: 2026 年 10 月 17 日,eMudhra 的八个中间证书(六个 TLS,两个代码签名)被发现其私钥可被轻易恢复——每个密钥的 P-384 私钥标量都是小于 256 的整数。Mozilla、Chrome、Apple 和 Microsoft 已收到通知,相关证书已通过 OneCRL 撤销,eMudhra 的信任根层级已从浏览器中移除。 为何重要: 恢复的中间密钥可让攻击者签发任意 TLS 证书,任何仍信任受损根的浏览器都会信任这些证书,从而能够对任何域名实施中间人攻击。


关键事件时间线(UTC)

时间 事件
2026-10-17 20:06 Mozilla 收到报告(由 Chrome 转发),称 eMudhra 八个中间证书的私钥已泄露。
2026-10-17 20:08 Mozilla 确认收到并验证了密钥控制证明。
2026-10-17 20:18 完整的 CCADB 扫描显示其中两个中间证书由 Sectigo 交叉签名。
2026-10-17 21:28 eMudhra 确认问题并表示正在调查。
2026-10-17 21:48 Mozilla 独立恢复了私钥,确认密钥是通过有缺陷的流程生成的。
2026-10-17 22:59 Mozilla 在 Firefox 的 OneCRL 中撤销了六个 TLS 中间证书。
2026-10-18 09:38 eMudhra 将所有八个中间证书标记为已撤销(原因 caCompromise)。
2026-10-18 12:06 Mozilla 发起 Bugzilla 事件以协调响应。
2026-10-20 Mozilla 发布了包含内置 OneCRL 快照的临时 Firefox 版本/ESR。
2026-10-21-23 eMudhra 发布公开状态页面和新闻稿,宣布退出全球 TLS 市场。

技术根本原因

弱 P-384 私钥标量

  • P-384 私钥必须是范围 [1, order-1](约 2^192)内的随机整数。八个受损密钥均 小于 256,即它们由 255 个零字节加上一个非零字节组成。
  • 此类密钥可通过枚举前 256 个可能的私钥值或通过简单的 baby-step-giant-step 离散对数攻击立即恢复。
  • 缺陷 并非 在签名算法中;签名本身使用弱密钥也能正确验证。

弱密钥是如何产生的

  • 这些密钥是在 2025 年 4 月 30 日 的一次批量密钥生成仪式中生成的,该仪式创建了 24 个中间 CA(三个系列 A、B、C;两种算法 RSA-4096 和 P-384;四个验证级别 DV、OV、EV、CS)。
  • B 系列和 C 系列的 P-384 密钥(即八个受影响的证书)是由一个 偏离规范的 KGC 脚本 创建的,该脚本执行了 wrap/unwrap 测试。脚本错误地在 HSM 上生成了 第二对 密钥,并在 CSR 中使用了较弱的那对。
  • 使用的 HSM 型号是 Utimaco(FIPS 140-2 Level 3 认证)。该偏差导致 HSM 接受了外部提供的标量(低熵值),而不是使用其内部 RNG。
  • A 系列和 A-1 系列密钥是在 Entrust HSM 上生成的,未受影响。

相关事件

  • Bug 1970728(2025 年 6 月)报告了同一六个 TLS 中间证书的无效 CRL 签名。CRL 使用 原始 强密钥签名,但由于颁发的 CA 证书引用了弱密钥,签名验证失败。
  • 2026 年 10 月 14 日 为 emSign Root TLS CA - G1 发布了另一份无效 CRL(CRL #11),使用了错误的私钥签名,表明密钥映射控制存在更广泛的失误。

影响评估

类别 详情
受影响的证书 6 个 TLS 中间证书(EV、OV、DV)受 Chrome、Firefox、Apple、Microsoft 信任;2 个代码签名中间证书受 Microsoft 信任。
潜在攻击者能力 为任何链接到受损根的域名签发任意 TLS 证书;对任何未收到撤销更新的客户端执行 MITM 攻击。
浏览器中的缓解措施 通过 OneCRL(Firefox)撤销,并从 Chrome、Apple 和 Microsoft 信任库中移除 emSign ECC Root CA - G3。
剩余风险 未获取 OneCRL 或缓存了根证书的设备(例如旧版 Android、嵌入式系统)在根证书从其信任库中移除之前仍然易受攻击。
交叉签名证书 Sectigo 交叉签名的中间证书在某些信任库中仍未撤销;Sectigo 此后已撤销它们并发布了新的 CRL/OCSP。

Mozilla 的响应

  • 立即撤销 – 2026 年 10 月 17 日 22:59 UTC 的 OneCRL 更新撤销了六个 TLS 中间证书。
  • 根证书移除 – 紧急从所有主要浏览器中移除 emSign ECC Root CA - G3,以保护缺乏撤销获取能力的客户端。
  • 版本升级 – 临时 Firefox Release/ESR(10 月 20 日)内置了最新的 OneCRL 快照。
  • 协调 – Bug 2083382 跟踪了 OneCRL 流程;Bug 2083449 记录了整个事件,并包含一份针对 eMudhra 的详细问卷。
  • 外联 – Mozilla 发布了公告,指导依赖方迁移离开受损的信任层级。

eMudhra 的公开声明和行动

  • 状态页面(2026 年 10 月 20 日) – 宣布泄露、撤销八个中间证书,并退出全球 TLS 市场。
  • 新闻稿(2026 年 10 月 21 日) – 声称“已直接通知受影响的客户和合作伙伴”,并承诺从替代 CA 提供免费替换证书。
  • 撤销行动 – 于 2026 年 10 月 18 日将所有八个中间证书标记为已撤销;Sectigo 撤销了交叉签名证书并发布了新的 CRL/OCSP。
  • 退出信任根 – 停止签发链接到 emSign ECC Root CA - G3 的证书;继续在独立层级下运营非 TLS 根(CS、SMIME)。
  • 未决问题 – 截至 2026 年 10 月 23 日,eMudhra 尚未回答 Mozilla 的详细技术问卷(硬件细节、KGC 脚本、审计证据、内部发现时间线等)。

社区反应(精选 Hacker News 评论)

  • 系统性信任担忧 – 评论者指出,该事件凸显了“任何 CA 都可以为任何域名签发证书”模型的脆弱性,并呼吁更严格地将 CA 绑定到特定命名空间(例如 DNSSEC)。
  • HSM 责任 – 一些人认为 Utimaco HSM 不应允许低熵密钥生成,暗示密钥是导入的而非内部生成的。
  • 操作责任 – 其他人指出人为错误(重复的密钥标签、wrap/unwrap 测试)和工具不足是直接原因。
  • 问责 – 多条评论要求追究 eMudhra 的责任,并将其疏忽与其他行业的工程失败进行比较。

对 PKI 生态系统的教训

  1. 严格的密钥生成审计 – HSM 必须强制生成高熵密钥,除非明确授权,否则拒绝外部提供的标量。
  2. 唯一的密钥标识符 – 密钥标签和元数据应全局唯一,以防止意外重用错误的密钥对。
  3. 自动化的签名后验证 – 每份 CRL 和证书在发布前都应针对预期的签名密钥进行验证;自动化检查可以捕获类似 Bug 1970728 中的不匹配。
  4. 信任根卫生 – 当颁发 CA 受损时,应迅速撤销交叉签名的中间证书;下游 CA 必须积极监控撤销源。
  5. 透明度义务 – CA 计划(Mozilla、Chrome、Apple、Microsoft)应强制及时、详细的披露;未能回应调查问卷会削弱信任。

仍未解答的开放问题

  • 确切的 HSM 固件版本,以及仪式期间是否以 FIPS 批准模式运行。
  • 完整的 KGC 脚本以及导致 wrap/unwrap 偏差的具体代码缺陷。
  • 是否有其他 eMudhra 根(CS、SMIME)遭受类似的密钥标签或生成问题。
  • 详细的迁移指标:受影响的证书数量、替换进度以及预计完成日期。
  • eMudhra 将如何确保未来的密钥生成仪式避免同样的缺陷,尤其是对于仍在运营的非 TLS 根。

结论

eMudhra 事件表明,一个弱密钥生成步骤就可能使整个信任层级失效。浏览器迅速采取行动撤销中间证书并移除受损根,但这一事件凸显了在整个 PKI 生态系统中加强程序性保障、自动化验证和透明事件处理的必要性。

Sources