SSLでは、サーバー証明書が信頼の源となる。そのため、証明書には偽造防止のための「電子署名」が施されている。

 電子署名は、「公開鍵暗号方式」を使って実現している。公開鍵暗号方式とは、暗号化と復号(暗号化されたデータを元に戻すこと)に、一対の「公開鍵」と「秘密鍵」を使う暗号方式のこと(図1)。公開鍵暗号方式の暗号アルゴリズムとしては「RSA」が有名。ほとんどの場合、SSLでもRSAが使われる。

 図1●共通鍵暗号と公開鍵暗号
図1●共通鍵暗号と公開鍵暗号
SSLでは、共通鍵暗号方式と公開鍵暗号方式が使われる。前者は主に通信の暗号化に利用される。後者は暗号化に加え、電子署名にも利用できる。
[画像のクリックで拡大表示]

 文字通り公開鍵は、第三者が利用できるように公開し、秘密鍵は、本人だけが保管しておく。一方の鍵で暗号化したデータは、対となるもう一方の鍵でないと復号できない。例えば、ある秘密鍵で暗号化したデータは、対となる公開鍵でないと復号できない。

 この秘密鍵を使って、サーバー証明書のデータを暗号化したものが、証明書の電子署名になる(図2)。電子署名を検証したい第三者は、認証局の公開鍵を使って、その電子署名を復号する。きちんと復号できれば、電子署名を作成(暗号化)したのは「秘密鍵を持つ人物=認証局」ということになる。

図2●公開鍵暗号を使えば「署名」できる
電子署名の実体は、サーバー証明書の内容を認証局の秘密鍵で暗号化したもの。ブラウザーは、あらかじめ登録されている認証局の公開鍵で電子署名を復号して検証する。公開鍵暗号方式の性質により、きちんと復号できる電子署名を作れるのは、秘密鍵を持つ認証局だけ。
[画像のクリックで拡大表示]

 また、証明書の内容が改ざんされている場合には、復号した結果と一致しないので、すぐに分かる。

 認証局の公開鍵は、ブラウザーに登録されている(図3)。登録されているのは、ブラウザーメーカーが「信用できる」と判断した認証局の公開鍵に限られる。

図3●「信頼できる」認証局の公開鍵はブラウザーに
ブラウザーメーカーが「信頼できる」と判断した認証局の公開鍵は、ブラウザーにあらかじめ登録されている。例えばIEでは、「インターネットオプション」の「コンテンツ」タブで「証明書」をクリックすれば、公開鍵が登録されている認証局が「信頼されたルート証明機関」として表示される。