この記事は Qt Blog の ”Security advisory: Fraudulent certificates" を翻訳したものです。
執筆: Peter Hartmann 2011年3月29日
偽の SSL 証明書によって引き起こされる存在的な脅威に対応する Qt 4.6 および 4.7 用の パッチ を作成しました。
背景:
SSL 認証局(CA)から偽の SSL 証明書が不正に取得されました。
それらの証明書では取得者が Web でその他のサイトになりすませる可能性があります。攻撃者は mail.google.com, login.yahoo.com と login.live.com 等のサイトの有効な証明書を利用できます。
以下のパッチはそれらの偽証明書をブラックリストに載せ、これらの証明書を利用するサイトとの SSL ハンドシェイクを中断することで問題を解決します。このパッチは Qt 4.6 と 4.7 の全てのバージョンに適用されます。全ての Qt 4.6.x と 4.7.x のソースに適用できるはずです。今後の Qt のリリースにはこの修正が取り込まれます。
blacklist-fraudulent-comodo-certificates-patch.diff
この偽証明書の問題に関する詳細と全てのサイトのリストは http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html を参照してください。
技術的背景:
偽の証明書を利用したサイトとの SSL 接続を確立させてユーザをだますためには、証明書を制御することに加えて、攻撃者は被害者が使用する DNS サーバもしくは proxy サーバを制御する必要があるでしょう。これらの方法で、攻撃者は被害者をだまして偽の証明書を利用した攻撃者のサイトに接続させることが可能でした。
残る疑問点は一つです: それらの証明書を排除しなければ問題は解決しないのではないでしょうか。
まず、それらの証明書は既に影響を受ける証明局によって失効しています(前述のリンクを参照)。
しかし、この問題の場合、おそらくほとんどのブラウザベンダがこれらの証明書をブラックリスト化した新しいバージョンをリリースする理由の一つが、デフォルトでブラウザが OCSP サーバ(証明書の廃止の状態の確認に用いられるサーバ)からの無効証明書との報告を致命的として受け付けずに、SSL 接続が継続されるためです。Qt は OCSP をまだサポートしていないため、証明書をブラックリスト化することのみが取り得る選択となります(今回は [qtbug QTBUG-12812 'Qt に OCSP を実装するタスク'] に投票する良い機会でしょう)。Qt はバージョン 4.7 からシステムのルート証明書を信頼しているため、Qt が自動的に信頼するルート証明書に対して出来ることは他にはありません。