2009年5月22日金曜日

IIS7によるTLS Staplingを使った失効情報の配布

IIS7とIE8の環境でOCSPのサポートがどんなもんかなーっと調査していたら、失効はうまく認識するのに、一向にOCSP(via HTTP)通信をしている気配が無い。散々いじくった結果、IISがTSL Staplingを使用して失効情報を配布していると言うことがわかった。そんな裏ワザがあったとは!

環境はこんな感じ
  • Windows Server 2008 EE SP1
    * ADDS
    * ADCS
    Enterprise CA
    OCSP Responder
    * IIS 7 & SSL
    SSL用の証明書は失効済み&失効情報をOCSP Responderで配布
    SSL用の証明書にはCDPを含まない
    SSL用の証明書のAIAにOCSP拡張を含む
  • Windows Vista SP2
    * Internet Explorer 8

この環境でIE8を使ってSSL通信をする。SSL用のサーバー証明書は失効されており、失効情報はOCSPを用いて公開されている。また、証明書にはOCSPレスポンダへのポインタしか含んでいないので、OCSP(via HTTP)で失効情報を入手するはずだ(と思い込んでいた)。実際にやってみると証明書の失効自体はうまく検出され、IEに「この証明書は失効されています」と表示される。しかし、以下の現象が私を悩ませた。
  • イベントログのCAPI2の箇所を見ると、「失効の確認」のイベントでOCSPの情報を入手している。
  • Microsoft Network Monitorでトラフィックを観測すると、OCSP(via HTTP)通信をしていない。
  • ファイアウォールでHTTPをブロックしてもOCSP情報が取得できる。
うんうん悩んでたら、去年のPKI Dayでマイクロソフトの人が、OCSPとTLS Staplingについて話していた事を思い出したので、資料(PDF)を探してきた。TLS Staplingというのは、SSLハンドシェイク時にWebサーバーが自分自身の証明書の失効ステータスを送信する方法だそうな。

さっそく、Network Monitorで見ると....あったあった。SSLの最初のハンドシェイクの時に、「Server Hello. Certificate. Certificate Status.」を送っている。コイツだったのか...

IISは特に意識をせずにセットアップしたので、デフォルトでオンになっているということか。ちょっと探しただけでは、オフにする方法は見当たらなかった...どこだぁ。

0 件のコメント: