Maidsphere

2010.3.8

Firefoxって証明書失効リスト(CRL)を自動で見に行ってない気がする これ,きわめて危険だと思うんですけど…… ちなみに,Google Chromeは問題なく証明書失効警告を出したのよ IEとかOperaとかは調べてない まず,証明書って基本的に何段階かの階層に分かれてて トップの階層にOSとかブラウザとかにバンドルされてるルート証明書がある このルート証明書はVerisignとかEquifaxとかGeoTrustとかのルート認証局の証明書で はっきり言って,これがないとインターネットでの暗号化通信は始まらないわけ きわめて重要な証明書 で,次の階層にそのルート証明書によって署名された次の証明書(中間証明書)があって またさらに次の階層にその中間証明書で署名された次の証明書(二次的な中間証明書)があって…… という風に連鎖していって 最後の階層に,末端の証明書が出るわけ 末端の証明書は,その証明書に署名した一つ上の階層の中間証明書の署名を いちばん上の階層にあるルート証明書まで検証していくことで その真正性(正真性・正当性)を確認できる,という仕組み で,次に証明書失効リスト(CRL)なんだけど これは証明書の階層ごとに管理されてる失効した証明書のリスト たとえば,ある中間証明書を管理する中間認証局(中間CA)が間違えて ある証明書(以降「間違えて署名された証明書」)に署名してしまったとする で,この間違えて署名された証明書は世の中に出ちゃったんだけどどうしよう! って時に,この中間認証局が発行するCRLに 無効にしたい証明書(=間違えて署名された証明書)を一意に特定できるIDを書いておく 証明書を扱うアプリケーションは,証明書を扱うときにCRLを普通はチェックするので その証明書が有効か無効かを確認できる,という仕組み なお,ルート証明書以外の証明書には「CRL配布ポイント」っていう項目があって そこにその証明書に署名した上位の階層にある認証局の失効リストが 容易に見れる仕様になってる で,Firefoxはどうやらこのチェックをしてない 常識的に考えて,ありえないんだけど…… ここで出した例だと 間違えて署名した,って話だけど このCRLって,最悪の場合秘密鍵が漏洩したから証明書を失効させるって場合にも使われるので 要するに,CRLを見に行っていないってことは SSLで接続している相手が,本当に自分が意図した相手なのか 証明することができないってことになる これって,超ヤバいんですけどどうなの?