2011年8月31日水曜日

偽物のgoogle.comのSSL証明書が発行された件

偽物のgoogle.comのSSL証明書が発行されたそうです。事の発端はこちらのメールだそうで、問題の証明書のダウンロード先も書かれています。

この証明書の発行元となっているのは、ノルウェーの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鍵の漏洩のような重要な問題が発生しているのかもしれません。

また、今回のネタの提供者はイラン在住でイラン政府の関与を疑っているようです。なんだか物騒な話ですが、そういった背景を加味すると、今回の対応もありえるような気がします。しばらくは目を離せないネタになりそうです。

2011年8月11日木曜日

PKI Day 2011の申し込みが始まりました

PKI Day 2011の申し込みが始まりました。今年は9/26に山王健保会館での開催となります。開催の概要と申し込みはこちら。今年は去年の半分となる120名の定員です。参加を希望する人は早目に申し込んでおいたほうがいいと思います。もちろん私も参加するつもりです。

ちなみに、PKI Dayは去年からUstreamで配信を行っているようです。今は公演の一部分(15分程度)しか見れませんが、会場の雰囲気は伝わると思います。今年は定員が減ってしまったので、インターネットで公開してもらえると助かる人も多いのではないでしょうか。







Video streaming by Ustream

2011年7月26日火曜日

iOSの4.3.5で修正された脆弱性がちょっとおもしろい件(CVE-2011-0228)

AppleがiOSのセキュリティアップデートを公開しましたが、PKI的にちょっと面白げな内容でした。パブリックな信頼された認証局から発行されたSSL証明書の私有鍵を使って、別の任意のフィールドを含むSSL証明書を発行すると、その証明書が有効な(Validな)として判定されてしまうそうです。
例として、VerisignからSSL証明書を1通購入するものとします。この証明書は、iPhoneがデフォルトで信頼する認証局から発行されているため、ウェブサーバーにインストールすれば正しいSSL証明書として認識されます。

次に、このSSL証明書を発行する際に生成した私有鍵を使って詐称用の証明書に署名します。このときに、詐称用の証明書には任意のSubject DNやSubjectAltName:DNS等を指定できます。例えば、www.microsoft.comで使用するSSL証明書も発行できます。ここまでは、別に難しいことではなく、OpenSSLを使えば誰でもできてしまいますし、特に不正な行動ではありません。

問題はiPhoneで詐称用の証明書の検証する際に発生します。本来ならば、信頼された認証局(上記ではVerisign)から発行されたSSL証明書のBasicConstraintsフィールドのSubject TypeにはEnd Entityが指定されているはずなので、このSSL証明書の私有鍵で署名した証明書のパス検証を行うと、詐称用の証明書は無効な(invalidな)証明書として取り扱われなくてはなりません。

今回の問題は、詐称用の証明書のパス検証の際に、SSL証明書(上記ではVerisignから発行されたも)のBasicConstrainsフィールドの値を正しく確認しないために、詐称用のSSL証明書が有効な認証局から発行されたとして扱われてしまいます。つまり、第三者が勝手に発行したSSL証明書が有効な証明書として判定されてしまうのです。

これは結構大きな穴だと思います。7/15にiOS 4.3.4が出て、すぐに今回のアップデートが出たことを考えると、Appleもこの問題の危険性を認識しているのでしょうね。

2011年7月14日木曜日

PKI day 2011は9月に開催するんだそうな

ここ数年はPKI Dayは今頃の時期に開催することが多かったのですが、今年は9月26日(月)に開催するそうです。開催場所も変わり、トスラブ山王(山王健保会館)になるそうです。

トスラブ山王は会社の健康診断でお世話になったりしています。建物の感じからすると、会場はあまり広くはなさそうな感じなので、参加人数が制限されてしまうかもしれませんね。

2011年6月30日木曜日

オフィスで熱中症になった件

先日、会社で節電のために冷房を入れないで頑張っていたら熱中症になりました。症状としては以下のような感じでした。
  • 頭が痛い。
  • 強烈な睡魔に襲われた感じがして頭が働かない
  • 突然意識が無くなる
  • 顔が赤くなる
過去にも熱中症になったことは何度かあり、そのときの症状に酷似していたので、すぐに水を飲んで冷房を入れました。しばらくすると動けるようになったので、その日は代休を使って午後から帰りました。正直、意識が飛んだのにはビビりました。

何でこんなことになったのかというと、節電の為に空調の設定温度を高め(29度)にしていたことと、私の席の空気の対流が悪かったたこと、そして、熱源が多いことです。私の席は胸ぐらいの高さのパーティションに囲まれていて、PCが3台(タワーが2台、ノートが1台)と液晶モニターが3台(マルチモニター構成)稼働しています。空調の風も来ないし、発熱も十分です。

節電も重要かもしれませんが、健康を削ってまでやる必要は無いと思います。節電もほどほどにするのがよいのでしょうね。