印度數碼憑證認證機構 eMudhra 發生嚴重金鑰安全事故。旗下 8 組中間憑證機構(Intermediate CA)的橢圓曲線私密金鑰極容易被推算,其中一組竟然只是整數「4」,其他金鑰亦包括 56、115、155 等小數字。安全研究員 Scott Helme 指,他從公開憑證還原全部 8 組金鑰,整個過程不足 1 秒。Google、Mozilla 等瀏覽器供應商已緊急封鎖受影響的憑證。

標示 384-bit 實際金鑰只有個位數
事件涉及 P-384 橢圓曲線密碼學金鑰。正常情況下,私密金鑰應從極大的數值範圍隨機選取,使外界無法根據公開金鑰反推原來數值。但 eMudhra 的 8 組受影響金鑰全部小於 256,研究人員只需逐一測試少量可能數值,就能從公開憑證找出答案。
其中「EM OV TLS CA – G3C」的私密金鑰數值為 4。雖然以標準 384-bit 格式顯示時前面會補上大量「00」,實際秘密數值仍然只是 4。Helme 公開的完整結果亦包括 56、66、115、155、156、230 及 237。8 組金鑰分別對應 6 組 TLS 憑證簽發機構及 2 組程式碼簽署機構。每組又有 eMudhra 與 Sectigo 交叉簽發的憑證,合共涉及 16 張中間 CA 憑證。
原始通報人 Wayne 於 10 月 17 日向 Google、Mozilla、Apple、Microsoft 及 eMudhra 報告問題,並提交證明他掌握金鑰的簽章。這宗事故的重點並非有黑客入侵伺服器偷走密鑰,而是密鑰在生成時已經弱得可以由公開資料算出來。
可偽造 HTTPS 憑證 非瀏覽器程式仍須防範
中間 CA 金鑰可用來簽發下一層憑證。若系統仍信任受影響的憑證鏈,掌握弱金鑰的人就有能力偽造其他網站的 HTTPS 憑證。當攻擊者亦能攔截或操控連線時,用戶或程式便可能連到假冒網站,令傳輸資料遭讀取或修改。
Google 指 Chrome 已於 10 月 17 日透過 CRLSet 封鎖有問題的金鑰,無須用戶更新或重新啟動瀏覽器。Mozilla 同日透過 OneCRL 封鎖相關憑證,並推出 Firefox 修正版本。Google 表示在採取封鎖行動前,受影響的 6 組 TLS 中間 CA 沒有憑證記錄於 Certificate Transparency(CT)系統,因此按照預設規則強制檢查 CT 的 Chrome 用戶,未有因這些中間 CA 簽發的假憑證而受影響的證據。
風險仍可能延伸至部分沒有檢查憑證撤銷狀態或 CT 紀錄的程式。Helme 在自行架設的測試環境中,成功令預設設定的 curl、Python 及 Node.js 接受以弱金鑰簽發的假網站憑證。這是安全研究示範,不代表 Stripe 或其他真實網站已遭入侵。系統管理員應更新作業系統的 CA 憑證清單、相關程式套件及裝置韌體。
eMudhra 指 2025 年產生金鑰時出錯
eMudhra 在 10 月 21 日向印度市場披露,相關 8 組中間 CA 金鑰源於 2025 年 4 月 30 日的金鑰生成程序。公司初步調查指,當時測試金鑰封裝及解封裝(wrap/unwrap)的程式碼出錯,意外產生另一批較弱金鑰,並因標籤相近而誤用來申請及簽發中間 CA 憑證。公司強調其基建沒有被入侵,沒有資料外洩,印度本地數碼簽署及 eSign 服務亦不受影響,但事故根本原因仍在調查。
eMudhra 另稱,8 組受影響中間 CA 只有 1 組曾投入正式環境,而且在問題揭發前均未簽發終端用戶憑證。Google 已宣布將「emSign ECC Root CA – G3」從 Chrome 信任清單移除,預計於美國時間 10 月 27 日陸續生效。仍使用相關根憑證鏈的網站需要改用其他受信任的 TLS 憑證,以免瀏覽器日後拒絕連線。
資料來源:Scott Helme、Google Security Blog、Mozilla、Mozilla Bugzilla、eMudhra
