この証明書の発行元となっているのは、ノルウェーのDigiNotar社の"DigiNotar Public CA 2025"の認証局です。この認証局は"DigiNotar Root CA"の下位CAとして運営されています。どんな審査をしているのか気になったので、軽くCPSでも見てみようと思ったのですが、残念ながらノルウェー語なんでさっぱり理解できなかったです(CPSはここにあります)。
既にDigiNotar Public CA 2025は偽物のSSL証明書を失効したそうなので、念のためWindows 7のCertutil.exeで確認してみました。Certutil.exeはユーザーの中間証明機関ストアに2025の証明書をインポートしてから実行しています。以下は実行結果です。長いので途中は省略しています。
PS C:temp> Certutil -verify -user .\fake_certificate.cer<<省略>>------------------------------------証明書が失効していますCert は End Entity 証明書ですリーフ証明書は失効されています (理由 =0)CertUtil: -verify コマンドは正常に完了しました。
「リーフ証明書は失効されています (理由 =0)」と出ているので、たしかに失効されています。理由=0なので、失効理由の詳細は不明です。不正な証明書のシリアル番号を含むCRLを発行できていることから、何らかのミスによって登録局による審査をスルーして発行してしまったのではないかと思われます。(※多くのCA製品では、自分が発行した証明書以外のシリアル番号をCRLに記載できない実装が多いです)
さて、気になるベンダー各社の対応ですが、MozillaプロジェクトとMicrosoftの対応は素早かったです。Mozillaプロジェクトでは、こちらのページに詳細がまとめられています。アップデートで対応とのことですが、手動でトラストアンカーから不正なSSL証明書を発行してしまったルートCA証明書を削除する手順も公開しています(こちら)。
MicrosoftもSecurity Advisory (2607712)を公開しています。Microsoftは配布しているCTL (Certificate Trust List) からDigiNotar社のルート証明書を取り除いて対応したそうです。Windowsは証明書の有効性を検証する際に、Windows UpdateのサイトからCTLを自動的にダウンロードして検証するので、このような対応となっているのですね。
一見すると、トラストアンカーからルート証明書を削除するのは妥当な対処に思えますが、実はとても影響の大きい対処方法でもあります。なぜならば、ルート証明書をトラストアンカーから削除することによって、DigiNotar社が発行した全ての証明書が信頼されない事になり、既に大量に証明書を発行している場合は、それらが全て無効な証明書として取り扱われてしまうためです。いわゆる村八分のような状態です。
以前、Comodoが不正なSSL証明書を発行してしまったときは、偽物のSSL証明書を失効するという方法が取られました。今回は、偽物のSSL証明書の失効だけでは不十分と判断し、トラストアンカーからルート証明書を削除したことを考えると、CA鍵の漏洩のような重要な問題が発生しているのかもしれません。
また、今回のネタの提供者はイラン在住でイラン政府の関与を疑っているようです。なんだか物騒な話ですが、そういった背景を加味すると、今回の対応もありえるような気がします。しばらくは目を離せないネタになりそうです。