eMudhra 中間 CA 鍵の危殆化と Go の対応
eMudhra 中間 CA 鍵の危殆化
eMudhra は,インドを拠点にデジタル ID や電子証明書,PKI などの事業を行う企業グループだそうな1。 証明書発行事業を担う会社は eMudhra Limited で,インド認証局監督機関(Controller of Certifying Authorities; CCA)のライセンスを受けているようだ。
先日の中間 CA 証明書の秘密鍵の危殆化(compromise)と,それに伴うルート CA 証明書の失効に関する情報については,以下が参考になる。
- eMudhra Statement on Recent Certificate Security Incident
- 2083449 - eMudhra: Private key compromise of Intermediate Certificates
どうやら,クライアント側で中間 CA 証明書を個別に失効させられない場合に備えた予防措置としてルート CA 証明書も失効することにしたらしい。 主要ブラウザでは既にルート CA 証明書が失効しているはずである。 ただし,独自に CA 証明書をバンドルしているアプリケーション,コンテナ,VPN,組込み機器などは,個別の対応が必要になる。
今回の危殆化に至る経緯が明らかになるにつれ(かなり間抜けだったらしい),同社に対する批判が高まり,グローバル SSL/TLS 証明書事業から段階的に撤退することにしたようだ。
However, the level of social media amplification around this incident has brought scrutiny that is out of proportion to SSL/TLS’s place in our business. In view of this, after detailed deliberations our board has concluded that withdrawing from global SSL/TLS is the right decision for eMudhra and its shareholders. For many certifying authorities, SSL/TLS is the whole business. For eMudhra it is one part of a much broader digital solutions portfolio. We will put our energy where we create the most value for customers with Sharpened Focus on Core Enterprise Solutions and trust services other than SSL/TLS.
他のインド国内向けの事業については継続するとのこと。
Go の対応
今回の件に対応するため Go 1.27.3 がリリースされた。 経緯や対応については,以下の公式ブログ記事が参考になる。
Go は標準ライブラリに TLS 証明書の検証機能を持っている。 Windows と macOS では検証を OS の API に移譲しているが Linux では独自実装の検証器を用いている。
Go ships a TLS certificate verifier in the standard library. When users usenet/httporcrypto/tlsto connect to a TLS service, the verifier is called to check if the certificates the other side of the connection presents are valid. On Windows and macOS we delegate these checks to the platform APIs, and on Linux, which lacks platform APIs, we use our own verifier implementation.
というわけで Web や gRPC など TLS 接続を行うネットワークサービスにアクセスする可能性のある Go 製ツールは,Go コンパイラを 1.27.3 (または 1.26.10) 以降に更新してビルドし直す必要がある。
If you run Go binaries which interact with network services using TLS (such as directly via net/http or crypto/tls or via a dependency such as gRPC), ensure you are running on the latest minor releases. Binaries rebuilt with Go 1.27.3 and 1.26.10 will automatically reject certificates issued by the compromised eMudhra intermediates.
Go 以外の製品の情報については次節のブックマークを参照のこと(随時更新予定)。 まぁ,証明書の危殆化はビックリするほど珍しいことではないので(多くはないが過去にも危殆化事例はある),粛々と対応するのが吉である。
ブックマーク
- Google: Protecting Chrome and Android Users from Compromised eMudhra Intermediate CA Certificates
- Apple: About the compromised eMudhra intermediate CAs - Apple Support
- Microsoft: Microsoft’s response to compromised eMudhra certificate authority keys
- Cloudflare: 8 eMudhra certificates are compromised. Here’s what you need to know
- Cisco: Cisco Informational for Emergency Distrust of eMudhra Root and Intermediate Certificate Authorities
参考図書
- プログラミング言語Go - 丸善出版 理工・医学・人文社会科学の専門書出版社
- 明解で効率的なプログラムを描くための書。 柴田 芳樹 訳
- Release 2016-06-15
- 評価
[Comment] 著者のひとりは,あの “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。と思ったら絶版状態らしい(2025-01 現在)。復刊を望む!
Powered by linkcard
- Go言語 100Tips ありがちなミスを把握し、実装を最適化する impress top gearシリーズ
- Teiva Harsanyi (著), 柴田 芳樹 (著)
- インプレス 2023-08-18 (Release 2023-08-18)
- Kindle版
- B0CFL1DK8Q (ASIN)
- 評価
[Comment] 版元で PDF 版を購入可能。事実上の Effective Go とも言える充実の内容。オリジナルは敢えてタイトルに “tips” という単語を入れるのを避けたのに邦題が「100 Tips」とかなっていて,原作者がお怒りとの噂(あくまで噂)
- Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプラクティス impress top gearシリーズ
- James Cutajar (著), 柴田 芳樹 (著)
- インプレス 2024-12-04 (Release 2024-12-04)
- Kindle版
- B0DNYMMBBQ (ASIN)
- 評価
[Comment] 読書会のために購入。インプレス社の本は Kindle 版より版元で PDF 版を買うのがオススメ。「並行処理」について原理的な解説から丁寧に書かれている。 Go で解説されているが Go 以外の言語でも応用できる。


