サイバーセキュリティ

eMudhraの証明書の秘密鍵は「4」だった あらゆるサイトの偽装が可能に

Adrian Kessler
Googleで追加する

ウェブサイトの身元を証明する証明書のひとつを支える秘密鍵は、なんと数字の「4」だった。たまたま4で始まる長い乱数ではない。正真正銘、4そのものだ。同じインドの認証局eMudhraが発行した証明書には、これに近いほど単純な鍵がさらに7つ使われていた。これらの鍵を手にした者なら、銀行からメールサービスまで、eMudhraを信頼するソフトウェアが本物と認めるあらゆるウェブサイトの証明書を発行できる。

ブラウザーのアドレスバーに表示される南京錠のマークが確認しているのが、こうした証明書だ。偽造証明書を使えば、カフェのWi-Fiや侵害されたルーター、敵対的な国のネットワークなどで、利用者とインターネットの間に割り込んだ攻撃者が本物のサイトになりすまし、送信内容を読んだり改変したりできる。Chrome、Firefox、Safari、そしてMicrosoftの各プラットフォームは、すでにこの8つの証明書を信頼しないようにしている。一方、端末上のほかのソフトウェアには、まだ対応していないものが数多く残っている。

この種の鍵は通常、長さ約384ビットの乱数で、可能な組み合わせはおよそ10の115乗にのぼる。ところがeMudhraの鍵はわずか3~8ビットで、Ars Technicaが列挙した値は4、56、66、115、155、156、230、237だった。セキュリティ研究者のスコット・ヘルム(Scott Helme)は、ノートパソコンに保存されていた公開証明書から8つすべてを復元できたとし、「1秒もかからなかった」と記している。さらに後日、AnthropicのClaudeも、ひとつのプロンプトだけで同じことを実行したと付け加えた。

何かを盗む必要はなかった。BleepingComputerが報じたMozillaへの説明で、eMudhraは鍵生成の手順に使うスクリプトのバグを原因に挙げた。スクリプトが脆弱な鍵の別セットを作成し、ラベルが似ていたため、担当者が誤ってそちらを選んでしまったという。6,000万件を超えるデジタル証明書を発行してきたという同社は、影響を受けた中間証明書の大半は本番環境で使われておらず、エンドユーザー向け証明書への署名に使われた証拠も見つかっていないとMozillaに説明した。8つの鍵はすべて失効させ、影響を受けたルート証明書による発行も停止している。

ブラウザーへの対処は簡単なほうだ。Chrome、Firefox、Safariは失効リストを利用者に気づかれない形で配信しているうえ、すべての証明書に公開のCertificate Transparencyログへの記録を求めている。これらの鍵につながるウェブサイト証明書は一度もログに記録されなかったため、最新のブラウザーが標準設定のままで危険にさらされることはなかった。問題は、それ以外のあらゆる場所にある。curlなどのコマンドラインツール、Python、Node、Goなどの言語、VPNクライアント、Dockerコンテナ、スマートホーム機器は、それぞれ独自の信頼する認証局リストを備えている。証明書の失効を確認することはまれで、透明性ログも参照しない。ヘルムはStripeの決済API向けの偽造証明書を作成し、試したすべてのLinuxおよびmacOSマシンで、curl、Python、Nodeがそれを受け入れることを確認した。

「これは大規模な後始末になる。Heartbleedよりも大変だ」と、Go言語の暗号処理コードを保守するフィリッポ・ヴァルソルダ(Filippo Valsorda)はArs Technicaに語った。修正に何年もかかったOpenSSLの脆弱性を振り返っての発言だ。ヴァルソルダは、独自の信頼済みルート証明書を同梱するIoT機器やDockerコンテナ、忘れ去られたLinuxマシン、保守されていないツールなどに、「非常に、非常に長い尾を引く」影響が残ると予想している。鍵を悪用するには、依然として攻撃者が通信経路上にいる必要がある。そのため、政府や侵害された社内ネットワーク、公衆Wi-Fiの運営者などが実行可能な攻撃となる。Arsによると、暗号化にこれらの証明書を使っていないSignal、WhatsApp、WireGuardは影響を受けない。

証明書が作成された2025年4月の時点から鍵は復元可能で、その期間は約17カ月に及んだ。透明性チェックを省略するソフトウェアに対して、誰かが鍵を使ったかどうかを知る手段はない。また、すべての証明書は2025年5月にSectigoのAAA Certificate Servicesルートによるクロス署名を受けており、それらを信頼するシステムの範囲が広がっていた。

大半の利用者にとって、対策はアップデートをインストールすることだ。研究者がブラウザーメーカーに鍵の問題を報告したのは10月17日だった。Mozillaはその日のうちに3時間以内でFirefox上の証明書をブロックし、10月20日には、eMudhraのルート証明書を削除したFirefox 158.0.1、新しいESRビルド、NSS 3.131.1を公開した。Mozillaのエンジニア、デニス・ジャクソン(Dennis Jackson)が運営するインシデント情報サイトによると、Appleは10月19日、Microsoftは10月20日に保護措置を追加した。ただしArsが公開時に確認したところ、Windows 10上のEdgeはテスト用サーバーへの接続を続けていた。Go 1.27.3と1.26.10、pip 26.2.2、uv 0.13.4、certifi 2026.10.19がリリースされ、CloudflareはWARPと1.1.1.1のアプリを更新した。Linuxディストリビューション各社も、新しいca-certificatesパッケージの提供を続けている。macOSに標準搭載されているcurlは、証明書ファイルを手作業で編集しないかぎり、引き続きこの鍵を信頼する。

Chromeは、バージョン43でeMudhraのルート証明書をChrome Root Storeから削除すると明らかにした。すべての端末に対応が行き渡るまで、日常的に使われる多くのソフトウェアと、あらゆるサイトの精巧な偽装との間を隔てるのは、わずか8ビットだ。

タグ: , , , , ,

Googleで追加する

ディスカッション

0件のコメントがあります。