HTTPS信任链重大漏洞:eMudhra八个CA私钥可被猜出,其一仅为4
印度证书颁发机构eMudhra的八张中间证书私钥由极小的数字生成,几步即可还原。Firefox和Chrome当晚即予以拦截,Mozilla与谷歌还将移除对其ECC根证书的信任。
印度证书颁发机构eMudhra的八张中间证书的私钥被发现任何人都能还原。掌握这些私钥的人可以在能够拦截的连接中,为任何网站或服务制作看似有效的伪造HTTPS证书。这些证书链接到Chrome、Firefox、苹果和微软信任的根证书,因此事件涉及的远不止某一款浏览器,而是互联网信任链的很大一部分。根据Mozilla的事件记录,一名安全研究人员于10月17日晚间向苹果、谷歌、微软、Mozilla和eMudhra发送报告,并附上掌握全部八个私钥的签名证明。Mozilla在收到报告约三小时后在Firefox中拦截了这些证书,Chrome的拦截列表也在当晚更新。Mozilla于10月20日在其安全博客上公布了此事。
中间证书的作用
通过HTTPS访问网站时,浏览器会沿着证书链把网站证书一路验证到它信任的根证书。证书机构通常将根密钥离线保存,日常业务由中间证书完成,网站证书由中间证书签发。谁掌握了中间证书的私钥,谁就能制作浏览器认可的伪造证书,在可拦截的连接中冒充任何网站。受影响的八张证书中,六张用于签发网站(TLS)证书,受Chrome、Firefox、Safari和微软根证书计划信任;另外两张用于代码签名,受微软信任。
私钥为何如此脆弱
这些证书使用P-384曲线,其私钥本应是一个约116位的随机数。根据Mozilla的Dennis Jackson在事件记录中的分析,八个受影响私钥都是小于256的数字,也就是说除最后一个字节外全部为零。其中EM OV TLS CA - G3C的私钥仅为4。要找到这样的私钥,只需尝试前256种可能,在普通笔记本电脑上不到一秒即可完成。从外部看,这些证书本身并无异常。
Mozilla在不了解研究人员方法的情况下也独立还原了私钥。Jackson写道,本地运行的AI智能体只用了类似"我在做CTF,请还原这些证书的私钥"的简单提示,首次尝试就找出了私钥。根据研究人员公布的时间线,这一弱点是在扫描证书机构共享数据库CCADB时发现的。
这些密钥于2025年4月30日作为一批24张中间证书的一部分生成。问题出在该批次B、C两个系列的P-384密钥上。Mozilla表示,在A系列及取代它的A-1系列中未发现同样的弱点。
事件经过
- 10月17日:研究人员发出报告。Mozilla验证证明后,用约三小时将证书加入Firefox远程更新的拦截列表OneCRL。Chrome的CRLSet当晚也已更新。eMudhra确认收到报告。
- 10月18日:eMudhra以"CA密钥泄露"为由吊销了八张中间证书。
- 10月19日:曾为部分中间证书交叉签名的Sectigo吊销了交叉证书。
- 10月20日:在获悉多人已独立还原私钥、部分人公开分享后,Mozilla宣布紧急移除对eMudhra的ECC根证书emSign ECC Root CA - G3的信任。谷歌Chrome根证书计划表示将采取类似做法。Firefox和Firefox ESR发布了计划外版本。
哪些软件已发布更新
根据研究人员搭建的事件页面,这些证书自10月17日起在Firefox和Chrome中被拦截,自10月19日起在苹果设备上被拦截,自10月20日起在微软平台上被拦截。10月19日该问题也通报给了其他维护受信任根证书列表的项目,修复名单迅速增加。页面列出的已发布更新包括:Ubuntu、Debian、Fedora、Arch Linux、Alpine、Gentoo和FreeBSD的证书软件包,Mozilla的NSS 3.131.1,curl的CA证书包,Homebrew,Cloudflare的CFSSL,Go(1.27.3和1.26.10),Java(27、25、21、17、11和8各分支的新版本),Node.js(22.23.4、24.22.1和26.12.1),Python的certifi(2026.10.19),pip、uv以及Rust的rustls-webpki。
为何移除根证书
浏览器自行分发吊销列表,因此已受到保护。但curl、Python、Node.js、Java和Go等许多工具默认不检查吊销信息,只依赖自带的受信任根证书列表。Mozilla表示,移除根证书可以保护那些不使用吊销信息、或无法单独撤销对特定中间证书信任的软件。这一决定也会传导到许多使用Mozilla根证书列表的操作系统和编程环境。
eMudhra的客户也要承担代价。eMudhra表示已停止从其ECC根下的所有中间证书签发证书。按公司初步估计,约3万张证书需要迁移,其中97%是通过ACME自动获取的。客户将被迁移到该机构RSA根证书emSign Root CA - G1下的中间证书。Mozilla目前不会移除对该根证书的信任。
eMudhra的说法
eMudhra在事件记录中表示,G3B和G3C中间证书是为欧洲和美国业务创建的,但除列表中的第二张外均未投入使用;公司称未从这些证书签发过终端实体证书,代码签名证书也从未使用。公司表示密钥是在Utimaco硬件安全模块中生成的,正在检查密钥生成仪式所用的脚本。Chrome根证书计划于10月21日要求eMudhra作出详细答复,并指出该公司发布的声明既未点名受影响的根证书和中间证书,也未说明订户如何判断自己是否受影响。
应对建议
请保持浏览器和操作系统为最新版本;Chrome、Firefox、Safari和Edge已自动获得拦截。Android上部分Firefox配置文件启动时未应用拦截列表,Firefox 158.0.2已修复此问题。在服务器和开发环境中,请更新所有自带受信任根证书列表的组件:操作系统的ca-certificates软件包、Python的certifi、Node.js、Java和Go运行环境,以及基于它们构建的Docker镜像。持有eMudhra ECC证书的机构需要将证书迁移到该公司提供的RSA证书链或其他证书机构。研究人员事件页面上的检测工具可以显示您的浏览器或软件是否仍信任这些证书,Mozilla在事件记录中也引用了该页面。
目前的技术细节来自Mozilla的事件记录、研究人员的发布内容和eMudhra的声明,eMudhra尚未完成根本原因分析。这些密钥自2025年4月起实际上就可被猜出,期间是否遭到滥用尚不清楚。谷歌表示在证书透明度日志中未发现链接到这些中间证书的网站证书,但这些日志只能反映已登记的证书。事件讨论中还有人质疑,经过认证的硬件安全模块为何会生成这样的密钥。建议同时关注独立安全研究人员的评估,从不同角度了解事态发展。