特集
» 2006年10月13日 13時00分 公開

クライアントセキュリティ大作戦:「オレオレ証明書」にご用心? あなたのPCを守る認証システムを考える (2/4)

[小林哲雄,ITmedia]

「認証局」が正当性を証明する

 まず、よくある「なりすまし」の例を紹介しよう。

 公開鍵を受け渡す場合「本当に正しい公開鍵か分からない」という問題がある。たとえばwww.hogehoge.co.jpというドメインがクラッカーに乗っ取られたとしよう。クラッカーはhogehogeそっくりのサイトを作って、クライアントからの通信をいったん傍受し、これを正規のサイトに流すことで一見正常なサイトを作ることができてしまう。これがなりすましの一例だ。

 偽の公開鍵を渡し、偽の秘密鍵で暗号化するサイトのなりすましを防ぐためには「正しいサイトの公開鍵であることの証明」が必要になる。これを行うのがサーバ証明書だ。

 サーバ証明書にはそのサーバの公開鍵とともに「○○のサイトが正当である」ということを証明する認証局(CA:CertificationAuthority)の署名が入っている。この署名のサイト名と送られてきたサイト名が一致すれば、送られてきた公開鍵はサイトが持つ秘密鍵とペアであることを間接的に認証局が証明していることになる。認証局はサイトの運営者が実在しているか、認証を受けようとしているサーバが運営者のものかなどを確認し、証明書を発行する。

 当然その認証局が正当なところか? という証明が必要になるが、認証局もサーバ証明書を持っており、証明書に記載されている認証局が正当であるという証明を行う上位の認証局の署名が入っている……これが繰り返され、大本となる認証局の署名がなされていれば、巡りめぐって正しいものという証明がなされる。

 この「大元となる認証局」が「ルート認証局」と呼ばれるもので、クライアントマシン(Webブラウザ)にはいくつかのルート認証局の証明書が入っている(ほかの認証局が認証した認証局は中間認証局と呼ばれる)。ルート証明書はブラウザ(の製作者)自身が正しいと認めたものであり、これが正しくないとすべての証明書が成り立たない。

 SSLはまずサーバから公開鍵の入ったサーバ証明書を受け取る。クライアントマシンは証明書に入っている公開鍵の正当性を証明書に含まれているドメイン名と通信相手のドメイン名が正しいか照合(有効期限もチェックする)し、証明書に書かれている認証局が正しいかを認証局のサーバ証明書から(ルート証明書に達するまで)判断する。こうしてサーバ証明書がルート証明書までつながれば、渡されたサーバ証明書がドメイン名の正当な公開鍵であることが証明される。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ