ニュース

本来116桁の秘密鍵がたった3桁 インド認証局の一部中間CA証明書にミス

 インドの認証局であるeMudhraが発行した中間CA証明書の一部で、秘密鍵が異常に小さな値となってしまい、簡単に公開鍵から秘密鍵を割り出せる状態となっていたことが分かった。セキュリティ研究者のWayne氏が10月17日、Root Program Teamsに報告したことから明らかとなった。

 この中間CA証明書では、P-384と呼ばれる楕円曲線暗号が用いられている。2の384乗通り(約10の115乗通り)の中からランダムな値を使って秘密鍵を生成するもので、公開鍵から秘密鍵を割り出すのは事実上不可能となっている。しかし、今回問題となった8件の証明書では、最下位の1byteにしか値が入っておらず、最大255回の試行で秘密鍵を割り出せてしまう状態となっていた。

 秘密鍵が割り出せると、Webサイトのなりすましや通信内容の傍受/改ざんなどに悪用される可能性がある。セキュリティ研究者のScott Helme氏によれば、実際の秘密鍵の値は「4」、「56」、「115」といった非常に小さなもので、8件すべての鍵の割り出しにかかった時間は1秒未満だったという。

 eMudhraでは、2025年4月に実施したキーセレモニー(鍵ペアの生成手続き)における鍵のラップ/アンラップの工程で、本来の強力な鍵に加えて脆弱な鍵が生成され、誤って脆弱な鍵をルートストアに公開してしまった。その後、2回の独立した監査サイクルがあったものの検出されなかった。正確な根本原因は現在も調査中で、詳細は追って公表するとしている。ちなみに、研究者はAIツールを活用して脆弱な鍵をリバースエンジニアリングしたという。

 なお、同社の説明では、対象となった8件のうち、1件が本番環境で稼働していたものの、これらの証明書からWebサイト向けの証明書は1件も発行されていなかったとしている。また、Chromeチームによれば、証明書透明性ログ(Certificate Transparency)にも当該の中間CA証明書につながるものは確認されなかったとしている。

 WebブラウザのChromeやFirefoxでは10月17日にこれらの証明書を遮断しており、eMudhraも18日にすでに失効処理を行なった。MozillaのDennis Jackson氏によれば、Appleは19日、Microsoftは20日からそれぞれ遮断を開始しているという。そのほか、GoやPythonなど開発者向けのソフトウェアやパッケージについても、順次対応が進められている。