ブログ一覧に戻る
ベストプラクティス2026年10月22日4分で読めます

eMudhra 認証局の秘密鍵漏洩:8つの中間CA証明書、そのうち1つの鍵の値は「4」

eMudhra CA compromise: eight private keys, and one of them is 4

ベストプラクティス

この記事のポイント

【なぜ重要か】 ブラウザ各社が信頼する認証局 eMudhra が、8枚の中間CA証明書の秘密鍵を誤った方法で生成した結果、いずれも256以下という極めて小さな値になっており、うち1つはわずか「4」だった。この秘密鍵を持つ者は任意のドメインに対して有効な証明書を発行できるため、ネットワーク経路上に位置できる攻撃者であれば任意のWebサイトになりすますことが可能だった。ブラウザはすでにブロック済みだが...

【なぜ重要か】 ブラウザ各社が信頼する認証局 eMudhra が、8枚の中間CA証明書の秘密鍵を誤った方法で生成した結果、いずれも256以下という極めて小さな値になっており、うち1つはわずか「4」だった。この秘密鍵を持つ者は任意のドメインに対して有効な証明書を発行できるため、ネットワーク経路上に位置できる攻撃者であれば任意のWebサイトになりすますことが可能だった。ブラウザはすでにブロック済みだが、curl・git・コンテナイメージ・各種言語ランタイムなど、失効確認を行わないツールやシステムでは依然として脆弱な状態が続いている可能性がある。

【ポイント】

  • 秘密鍵の深刻な欠陥: 正常に生成された鍵は約10^115通りの候補から選ばれるべきところ、8つの鍵はすべて256以下の値であり、ラップトップが1文読み終わるより早く全候補を総当たりできる。原因としてはキャスト時の型変換バグや旧Go実装による10進数変換での切り捨てが考えられる。
  • 影響範囲: 主要ブラウザ(Firefox・Chrome・Apple・Microsoft)は2026年10月17〜20日までに証明書をブロック済み。一方、macOSのビルトインツール(curl・git・python3など)、Dockerコンテナイメージ、Go・Java・Node.js・Python(certifi)・Rustなど独自の証明書バンドルを持つランタイム、IoTデバイスは依然として脆弱なままの可能性がある。また6枚がTLS用、2枚がMicrosoft信頼のコード署名用であり、攻撃者は任意の発行元名でマルウェアに署名できた。
  • 対処方法: OSおよびブラウザを最新版に更新し、各ディストリビューション対応の修正済みca-certificatesパッケージ(Ubuntu: 20260816ubuntu0.*、Debian 12: 20250419~deb12u2、Alpine: 20261020-r0、Fedora: 2026.2.92_v9.0.319)を適用する。コンテナはdocker build --pull --no-cacheで再ビルドし、certifi等の言語ランタイム独自バンドルも個別にアップデートする。
  • Aikidoによる検出: Aikidoはコンテナイメージを自動チェックし、システムの信頼ストアが影響を受けている場合は「High」、certifi等の独自バンドルを持つパッケージ(Python certifi 2026.10.18未満など)が対象の場合は「Critical」として検出する。また、Device Protection v1.10.20をホットフィックスとしてリリース済み。
  • ブラウザと非ブラウザツールの違い: ブラウザはOneCRL・CRLite・CRLSetsなどの仕組みで失効情報をリアルタイムに受け取れるが、多くのコマンドラインツールやランタイムは失効確認を行わず、信頼するルート証明書のリストを更新しない限り妥協した中間CAを信頼し続ける。

【まとめ】 eMudhra の秘密鍵生成の不具合により、任意ドメインへのなりすましやマルウェアへの不正署名が可能な状態だった深刻なインシデントである。ブラウザユーザーはすでに保護されているが、サーバー・CI/CDパイプライン・コンテナイメージ・各種言語ランタイムを運用するエンジニアは、直ちにca-certificatesを修正済みバージョンに更新し、コンテナイメージを再ビルドした上で、言語ランタイム独自の証明書バンドルも個別にアップデートする必要がある。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...