Secure Socket Layer の概要

SSL はデータのプライバシーおよび保全性を提供すると同時に、公開鍵インフラストラクチャー (PKI) 方式に基づいたサーバー認証およびクライアント認証も提供しています。PKI では、サーバー組織がネゴシエーションで使用できる公開鍵/秘密鍵のペアを生成する必要があります。PKI では、公開鍵で暗号化されたデータは秘密鍵でのみ暗号化解除でき、秘密鍵で暗号化されたデータは公開鍵でのみ暗号化解除できるようになっていなければなりません。セキュア接続の両端で異なるキーが使用されるため、これを非対称暗号化方式と呼びます。クライアントが接続を要求すると、サーバーはそのクライアントに対して公開鍵を送信します。

クライアントとサーバーは PKI 方式の暗号化を用いて、SSL パラメーター・ネゴシエーションを暗号化します。ネゴシエーションされる最も大切な項目の 1 つは、データ伝送中に使用する暗号化アルゴリズムです。ここで選ばれるアルゴリズムは、セキュア接続の両側で同じ鍵を使用するものです。これを対称暗号化方式と呼び、SSL パラメーター・ネゴシエーションで使用される非対称 PKI 方式に比べて、およそ 1000 倍の速度で実行されます。対称暗号化方式で使用される暗号鍵は、PKI 暗号化方式で保護された SSL ネゴシエーションの間に作成され、交換されます。

一部のクライアント/サーバー接続は、SSL ハンドシェークを開始する前にクライアントが SSL を希望またはサポートしているかどうか判別できる、ネゴシエーションをサポートしています。ほとんどのサーバーとクライアントは、即時に SSL ハンドシェーク・プロセスを開始するよう構成することか、または SSL ハンドシェークを実行するかどうかのネゴシエーションを行うよう構成することができます。ネゴシエーションを伴う TLS/SSL がサポートされているかどうか、 またそれがどのように実装されているかについては、該当するサーバーまたはクライアントのセキュリティー情報を参照してください。

SSL プロトコルはハンドシェークで開始します。ハンドシェークでは、次のことが行われます。