SSL では対称と非対称の両方の暗号化アルゴリズムを使用します。対称アルゴリズム
では、同じ鍵を使用してデータの暗号化と暗号化解除を行います。非対称アルゴリズムより
高速ですが、安全でない場合があります。非対称アルゴリズムでは、1 対の鍵を
使用します。一方の鍵を使用して暗号化されたデータは、もう一方の鍵を使用してのみ
暗号化解除できます。通常、鍵の 1 つは秘密にされますが、もう 1 つは公開されます。
鍵の 1 つが必ず秘密のままにされるため、非対称アルゴリズムは一般に安全ですが、
対称アルゴリズムに比べずっと低速です。
両方のアルゴリズムの利点を生かすために、SSL では、非対称アルゴリズムによって暗号化されているメッセージの内部に、毎回ランダムに選択される対称鍵をカプセル化しています。
クライアントとサーバーの両方が対称鍵を所有した後は、非対称鍵に代えて対称鍵が
使用されます。
サーバー認証が要求されたとき、SSL では、以下のように処理されます。
- セキュア・ページを要求するために、クライアントは HTTPS を使用します。
- サーバーはクライアントにサーバーの公開鍵と証明書を送信します。
- クライアントでは、その証明書が引き続き有効なトラステッド・パーティー (通常は、トラステッド認証局) によって発行された証明書であることおよび接触先のサイトに関連する証明書
であることを検査します。
- クライアントは、公開鍵を使用してランダム対称暗号鍵を暗号化し、要求された URL を暗号化したものとその他の暗号化した HTTP データと一緒にサーバーに送信します。
- サーバーは、秘密鍵を使用して、対称暗号鍵を暗号化解除し、
対称鍵を使用して URL および HTTP データを暗号化解除します。
- サーバーは、要求された HTML 文書と HTTP データを対称鍵によって暗号化し、これを送り返します。
- クライアントは、対称鍵を使用して HTTP データと HTML 文書を暗号化解除し、
その情報を表示します。