次に、セキュアな Web サイト (SSL を使用しているサイト) にアクセスする際の一般的なプロセスの概要を簡単に説明します。Web ユーザーとしてオンライン銀行にアクセスする場合について考えます。
ここでは、データ自体の暗号化には通常は対称アルゴリズムが使用され、対称アルゴリズムのシークレット キーの送信にのみ非対称アルゴリズムが使用されるものとします。
以下の説明にある「ブラウザー」および「銀行のサーバー」という記述は、それぞれの SSL ソフトウェアを指しています。
- 銀行のログイン ページの URL を入力します。
- ブラウザーがサポートできる対称アルゴリズムのリストを銀行のサーバーに送信し、銀行の証明書を要求します。
- サーバーは使用する対称アルゴリズムを応答で伝え、要求された証明書を送信します。また、シークレット キーの生成に使用する乱数も送信します。
- ブラウザーは、銀行の証明書に表示されている CA の階層をインストールされている CA 証明書と照合してチェックします。一致するものがなければ、ブラウザーは警告を表示します。
- 一致するものがあれば、ブラウザーは銀行の証明書を発行元の CA と照合してチェックし、通常は次のチェックを行います。いずれかに失敗した場合は警告を表示します。
- ブラウザーは乱数を生成し、銀行のパブリック キーを使用して非対称アルゴリズムで暗号化してから銀行のサーバーに送信します。
- 銀行のサーバーは、ブラウザーから送信された乱数を銀行のプライベート キーを使用して復号化します。
- ブラウザーおよび銀行のサーバーのそれぞれで 2 つの乱数から別々にシークレット キーが計算されます。
- 最後のチェックとして、ブラウザーおよび銀行のサーバーは上記のすべてのメッセージの MAC を相互に送信し、攻撃者によっていずれのメッセージも変更されていないことを確認します。
- これで、選択された対称アルゴリズムを使用して機密性を確保しながら、ブラウザーおよび銀行のサーバーが相互にデータを送信できるようになります。