2009年7月10日金曜日

Vistaでの信頼されたRoot証明書の自動入手の件

先日のエントリーに書いたMSのRoot証明書の配布要件の文書に以下のような記述があった。
Root certificates are updated on Windows Vista automatically. When a user visits a secure Web site (by using HTTPS SSL), reads a secure email (S/MIME), or downloads an ActiveX control that is signed (code signing) and encounters a new root certificate, the Windows certificate chain verification software checks the appropriate Microsoft Update location for the root certificate. If it finds it, it downloads it to the system. To the user, the experience is seamless. The user does not see any security dialog boxes or warnings. The download happens automatically, behind the scenes.
Vistaでは信頼された証明書のリストは、証明書の検証時に自動的にダウンロードされるようだ。気になったので、IEでSSLしているときのCAPI2のトレースログを引っ張り出してきて、チェックしてみた。


確かにパス検証のときに、このURLにアクセスしてauthrootstl.cabを入手しているようだ。
このURLをIEにコピペしてダウンロードしたファイルauthrootstl.cabを展開すると、authroot.stlという証明書信頼リスト(CTL)が入手できる。コイツを開くと以下のように詳細が表示される。


あれ?「リストに署名されている証明書が有効ではありません」ってエラーが出てる。なんだこりゃ。でもって、右下の「署名の表示」を押すと、以下の画面になる。


あぁ、このCTLはAuthenticodeで署名されてるのか。しかも副署名がついてるって事は、なんちゃってタイムスタンプつきか。署名用の証明書と、タイムスタンプ用の証明書をチェックしたところ、両方とも「証明書は要求された使用法では無効です」エラーが出ているようだ。

念のためsigntool.exeで検証してみたけど同じ。
c:\Program Files\Microsoft Platform SDK\Bin>signtool.exe verify c:\temp\authroot.stl
SignTool Error: The signing certificate is not valid for the requested usage.
This error sometimes means that you are using the wrong verification
policy. Consider using the /pa option.
SignTool Error: File not valid: c:\temp\authroot.stl

Number of errors: 1

Authenticode周りは全然詳しくないのでよくわからなくなった。もうちょっと調べてみるか。

0 件のコメント: