4
DISCOVER SOMETHING GOOD

48字节密钥只剩1字节?前CA巨头eMudhra自曝“脚本Bug”导致证书体系彻底崩塌!

在网络安全的世界里,我们习惯了听到“复杂攻击链”、“国家级APT”或“零日漏洞”这类高大上的威胁叙事。但有时候,摧毁一个认证机构(CA)信誉的,不是黑客的精妙渗透,而是一个连单元测试都没跑过的 Python 脚本。

前印度认证机构 eMudhra 最近在 Bugzilla 上发布了一份堪称“教科书级反面案例”的事故说明,正式承认:其签发的极其不安全的数字证书,根源是一个有缺陷的自定义密钥处理脚本。

而这个故事里最荒诞的细节是——他们本应生成 48 字节的 ECDSA P-384 私钥,结果脚本只保留了 1 个字节。是的,你没看错,私钥被截断了 97.9%,有些甚至就是数字“4”。

1. 案发现场:一场“密钥生成仪式”变成了灾难现场

根据 eMudhra 员工 Naveen Kumar ML 在 Bugzilla 上的说明,事故发生在 2025 年 4 月 30 日的一次密钥生成仪式中。

当时,eMudhra 需要在硬件安全模块(HSM)上生成 16 个下属 CA 密钥对(B系列和C系列)。由于 “全球供应链限制”,他们无法获得原本计划用于美国证书业务的 HSM 设备,不得不采取了一个非常规方案:

先用 Utimaco 的 HSM 生成密钥,再通过一个自定义 Python 脚本进行“包装/解包”操作,将密钥迁移到 Crypto4A 的另一台 HSM 上。

问题就出在这个“自定义脚本”上。Kumar 描述道:

“导入代码中的一个错误/缺陷,导致从解包对象回读时截断了私钥值。因此,认证的公钥对应于低于预期范围的私钥标量,可从公开信息中恢复。”

翻译成人话:脚本在读取私钥时少读了 47 个字节,只留下了第 1 个字节。 而 eMudhra 既没有在迁移后验证密钥长度,也没有测试生成的证书是否安全,就直接把这些“残废密钥”投入了生产环境。

2. 后果:浏览器集体拉黑,CA业务当场死亡

这个错误的后果是毁灭性的。

一位 Mozilla 团队成员率先发现了这些弱得离谱的密钥,并指出:攻击者可以轻易从公钥反推出私钥,进而签发任意域名的欺诈性证书。 这意味着攻击者可以冒充任何服务器、窃听加密流量、甚至篡改传输中的数据。

各大浏览器厂商的反应极其迅速:立即将 eMudhra 的所有证书列入不信任列表。

对于一家 CA 来说,这等同于“数字死刑”。eMudhra 随后宣布退出 SSL/TLS 认证业务,并表示该业务“从来不是主要收入来源,但突然成为了严重的尴尬来源”。

3. 深层原因:供应链困境 ≠ 放弃安全底线

eMudhra 将事故归咎于“全球供应链限制”导致的 HSM 缺货,以及为赶在 5 月底政策变更前完成证书生成而采取的“非常规迁移方案”。

但社区对此并不买账。核心质疑在于:

  • 为什么没有测试? 密钥迁移是 PKI 中最敏感的操作之一,任何自定义脚本都必须经过严格的单元测试、集成测试和人工验证。eMudhra 显然跳过了所有这些步骤。
  • 为什么没有校验? 即使在迁移过程中出错,只要在生成证书前检查一次私钥长度或签名强度,就能立刻发现问题。但他们没有。
  • 为什么用“自定义脚本”做关键操作? Kumar 强调该脚本“仅在隔离仪式主机上运行,不是 emCA 软件的功能”。但这恰恰说明它脱离了正规的安全审计和质量保证流程。

供应链困难可以理解,但安全底线不能打折。 当一家 CA 因为“赶工期”和“设备缺货”而绕过基本的安全验证时,它就已经不再值得信任了。

4. 后续:三步“善后计划”能否挽回信任?

Kumar 在帖子中列出了 eMudhra 结束 CA 业务的三个步骤,其中包括:

“实施由独立审查结果推动的改进,以加强我们的一般 PKI 运营。”

听起来很诚恳,但对于已经退出市场的业务来说,这更像是一份“尸检报告”而非“康复计划”。

5. 行业警示:给所有安全从业者的三堂课

eMudhra 的悲剧不是孤例。它再次印证了安全工程中最朴素的真理:

教训说明
🔴 永远不要信任未经验证的自定义脚本尤其是涉及密钥材料的操作。每一行代码都必须有测试、有审计、有验证。
🔴 密钥生成后必须立即验证长度、强度、可用性,缺一不可。不要假设“工具输出的就是对的”。
🔴 供应链压力不能成为跳过安全流程的理由如果条件不允许安全地完成操作,那就推迟、取消或寻找替代方案,而不是“凑合一下”。

它提醒我们:在密码学和 PKI 的世界里,没有“差不多就行”。每一个字节、每一次验证、每一个测试用例,都是信任链条上不可或缺的一环。当你觉得“这次应该没问题”的时候,往往就是问题开始的地方。

GOOD TOOLS ARE BETTER TOGETHER

分享到社交平台

微微博QQQ 好友☆QQ 空间XX↗Telegram

复制链接后,也可以粘贴到微信或其他社交平台。