印度憑證機構 eMudhra 中繼 CA 私鑰外洩,Chrome / Firefox 即時封鎖、Go / Python certifi 等緊急修補
Mozilla 與 Google Chrome 根憑證計畫 20 日證實,印度憑證機構 eMudhra 旗下八張中繼 CA 憑證的私鑰外洩,持有者可簽發瀏覽器會接受的任意網站憑證;金鑰如何流出、何時流出、還有誰持有,目前都不清楚。
Mozilla 與 Google 的 Chrome 根憑證計畫(Chrome Root Program)20 日證實,印度憑證機構(CA)eMudhra 的八張中繼 CA 憑證私鑰已經外洩。中繼 CA 負責簽署網站出示的憑證,任何持有這些金鑰的人,都能為任意網站簽發瀏覽器會接受的憑證。eMudhra 以 emSign 品牌透過印度、美國與荷蘭的公司銷售憑證,根憑證列在 Mozilla、Chrome 與蘋果的信任清單。外洩的八張包括網域驗證(DV)、組織驗證(OV)與延伸驗證(EV)TLS 憑證各兩張,以及兩張程式碼簽章憑證。
研究員 17 日晚間通知各根憑證計畫。Chrome 在 UTC 18:05 收到通報,19:45 就以 CRLSet 封鎖六張 TLS 中繼憑證;Mozilla 在 20:06 收到,22:59 完成對標準設定 Firefox 推送 OneCRL 封鎖。兩者都是瀏覽器自行抓取的撤銷清單,使用者不需更新或重新啟動。Chrome 表示,封鎖前沒有任何串接到這六張中繼憑證的 TLS 憑證被記錄到憑證透明度(CT)日誌,因此 Chrome 與其他要求 CT 紀錄的瀏覽器不會預設信任。Chrome 的封鎖比對公鑰而非憑證,也一併擋下 Sectigo 以 AAA Certificate Services 根憑證交叉簽署的副本。蘋果 19 日、微軟 20 日跟進封鎖,eMudhra 也撤銷這八張憑證。
瀏覽器之外的軟體風險更高。許多檢查 TLS 憑證的程式,從 Go 編譯的程式到使用 Python certifi 憑證包的軟體,都不檢查撤銷資料,程式碼或根憑證包更新前會持續信任這條憑證鏈。Go 20 日發布 1.27.3 與 1.26.10,標準函式庫直接拒絕任何含這八把金鑰的憑證鏈(CVE-2026-111943),程式須重新編譯才會生效;Python certifi、Rust webpki-roots 與 Homebrew ca-certificates 則把 emSign ECC Root CA - G3 根憑證整個移除,Node.js 與 Composer 修正仍在進行。Mozilla 指出,移除根憑證會連帶切斷所有串接到這些根憑證的合法憑證,部分伺服器在更換憑證鏈前,將無法使用信任清單的非 Firefox 使用者連線。
Mozilla 20 日從 NSS 移除 emSign ECC Root CA - G3,Chrome 也將在第 43 版根憑證庫移除同一根憑證,並以事件嚴重性為由,檢視 eMudhra 另一張根憑證 emSign Root CA - G1 的地位。Chrome 表示已檢查信任清單其他所有 CA 憑證,未發現同樣的失效模式。負責 Go 標準函式庫密碼學套件的 Filippo Valsorda 表示,Linux 根憑證庫維護不佳,撤銷資訊傳不到應用程式,把金鑰寫進程式碼是唯一的辦法。截至 20 日,eMudhra 的信任服務資料庫仍未發出任何事件公告。
(首圖來源:eMudhra Limited)