Qtブログ(日本語)

DigiNotar 社のセキュリティ問題の Qt への影響

作成者: 朝木卓見|Sep 9, 2011 11:09:34 PM

この記事は Qt Blog の "What the DigiNotar security breach means for Qt users" を翻訳したものです。
執筆: Peter Hartmann, 2011年9月2日

[この続報を記載した記事「DigiNotar 社のセキュリティ問題の Qt への影響 (続報)」も合わせて参照してください]

先日、オランダの認証局である DigiNotar 社のセキュリティ問題に関する多数のニュースが流れました。この問題に関しては SANS Internet Storm Center が 詳しい説明 を公開しています。

問題の概略

  • 7月19日 DigiNotar 社のインフラに侵入があったことが発覚しました(情報源)。 Gmail に対するものなどいくつかの偽の証明書が作成され、DigiNotar 社の中間 CA 証明書によって認証されていました。
  • 8月28日 イランのインターネットユーザが Google Chrome が Gmail に対する証明書を信用しないことに気が付きました(情報源)。 Chrome が警告した理由はその証明書が不正であるためではなく(ハッカーは DigiNotar 社に侵入して正規の証明書を作成したので)、Chrome が "certificate pinning" と呼ばれる機能をサポートしているためでした。この機能は mail.google.com のようないくつかのドメインにおいて、そのドメインで使われる証明書パスのルートとなりうるルート CA 認証局を既知のリストとして所持するものです。DigiNotar 社のルート証明書を mail.google.com の証明書の発行に使うことは想定されていなかったため、ブラウザはセキュリティ警告を表示しました。
  • 8月29日 DigiNotar 社によって *.google.com の証明書が無効にされました。しかし、この対応が遅すぎたため、既にそれまでの一ヶ月間で不正な証明書は広く使われてしまいました。
  • 同日 ブラウザベンダは DigiNotar 社への攻撃によって作成された可能性のあるすべての証明書を信頼しないように、ルート証明書全体を認証済みのリストから削除することを決定しました(Internet Explorer, Firefox, Google Chrome)。
  • その後 (Linux ディストリビューションを含む)複数のオペレーティングシステムベンダもまた、DigiNotar 社のルート証明書の削除、もしくはその計画を明らかにしました(Microsoft, Debian, Suse, Ubuntu)。

Qt への影響

今のところ、不正な *.google.com の証明書は Qt(4.7 と今後リリース予定の 4.8 と 5.0) では ブラックリスト に載っています。しかし、それらだけが世に出た不正な証明書ではありません(Google Chrome は少なくとも 247 個の証明書をブラックリスト に載せました)。そればかりか、この記事の執筆時には問題のある証明書の全リストはありません。

Qt 4.7.0 以降を使用している場合

Qt 4.7.0 のリリース時から、Qt はルート証明書をシステムから読み込んでいます。すなわち、使用しているオペレーティングシステムが DigiNotar 社の証明書を削除するアップデートをリリースしていれば、DigiNotar 社の問題となる証明書は Qt では一切承認されません。

Qt 4.6.* 以前を使用している場合

4.7 よりも前の Qt では、ルート証明書を(少し古いものですが)同梱しています。しかし、その中には DigiNotar 社のルート証明書は含まれていないので、特別な対応は必要有りません。

懸念点

問題となるルート証明書はほとんどのオペレーティングシステムで削除されました。これで再び問題なく動くようになったように思えます。しかしながら、この問題はもっと複雑です。DigiNotar 社に属していながら、DigiNotar 社ではなく第三者のルート認証局によって認証された中間 CA 証明書(「クロス証明書」と呼びます)があるからです。そのような証明書はルート証明書から DigiNotar 社のものを削除しても影響されません。また、すべての不正な証明書は同一の中間局から発行されたように見えます(オランダの情報源)。しかし、不正な証明書の完全なリストが存在しないため、確かなことは分かりません。

DigiNotar 社のルート証明書の削除だけで問題の解決に十分であったかどうかは未だ不明です。

謝辞

この記事のクロスチェックを行ってくれた KDE の Rich Moore に感謝します。