SSL(Secure Sockets Layer)インターネットショッピングなどを楽しむときに、ブラウザの画面下に「鍵(かぎ)のマーク」が表示されることがあります。会社のポータルサイト(行き先案内板や、行動予定表などのサイト)に接続したときもこのマークが表示されます。この鍵のマークには「安全な通信」という意味があります。ではどのようにしてこれらの安全な通信が確立されるのでしょうか。ここでは暗号化技術を応用したSSL通信を説明します。
------------------------------------------------------------------
■SSLの誕生
SSL(Secure Sockets Layer)は、NetScape Communications社が開発した暗号化を目的としたプロトコルです。OSIモデルではTCP層とアプリケーション層の間に位置し、WWWブラウザとWWWサーバ間のデータ転送の安全性を確保するために開発されました。現在ではFTPや他のTCP/IPアプリケーションにも適用できる業界標準のセキュリティプロトコルになっています。
一般に、HTTPS(https://)やFTPS(ftps://)などに応用され、1999年にはインターネット上での標準化のためにTLS1.0として公開されました。が、インターネット上ではTLS1.0よりもSSL3.0を標準で利用する傾向があります。(NetScapeやIEの設定オプションではデフォルトでSSL2.0/3.0は有効になっているものの、TLSについては選択制になっています。)

■SSLの仕組み
SSLは、PKI(Public Key Infrastructure;公開かぎ基盤)の仕組みを利用して、通信相手の公開かぎの正当性を認証しながら安全に暗号化通信を行えるようにしています。同時にSSLは、WWWブラウザとWWWサーバの両方に実装されていないと機能しませんが、現在では主要なWWWブラウザやWWWサーバには標準で実装されているため、SSLによる認証と暗号化通信を容易に利用できるようになっています。

■SSLの詳細な仕組み(少々長くなりますがこれがSSLの全てです)
SSLの仕組みを丁寧に説明するには図解によることが一番です。以下�〜�の順に説明しますが、ビジュアル的な概要については下記のHPを参照ください。
http://www.atmarkit.co.jp/fnetwork/rensai/pki03/pki01.html#a01
※ちなみに、この辺の内容が情報処理試験で出題されています。

�公開かぎ登録手続き
 自己生成した公開かぎを通信相手に認証してもらうための準備として、公開かぎを含む自らの身元を明らかにする情報を認証局(CA:Certificate Authority)に登録申請します。認証局では登録申請情報に基づいて、通信相手に代わって登録申請者に交付します。審査に合格したら、公開かぎを含むデジタル証明書を作成して、登録申請者に交付します。なお、認証局が発行するデジタル証明書にはその正当性を通信相手が認証できるように、認証局の秘密かぎで暗号化したデジタル署名が添付されています。

�通信相手の認証手続き
 送信者側が受信者側にデジタル証明書の送付を要求します。これに応じて受信者側が送信者側に自らの正当性を確認するために、受信したデジタル証明書が認証局に登録されていることを確認して、同時に認証局の公開かぎを取得し、デジタル証明書に添付されているデジタル署名を復号してダイジェスト版に戻します。次に認証局で行ったのと同じ方法でデジタル証明書からダイジェスト版を生成して、復号したダイジェスト版と比較照合し、一致すれば受信者側が正当であると認証します。

�暗号化通信
 デジタル証明書で受信者側の正当性を認証できたら、データの暗号規格(3DESやRC4など)を決定して、受信者側に伝えます。次に共通かぎ生成の元となるデータをデジタル証明書に含まれる受信者側の公開かぎで暗号化して、受信者側に送付します。この元となるデータは正当な公開かぎと対をなす秘密かぎを持つ正当な受信者しか復号できません。そして、送信者側と受信者側で元となるデータから共通かぎを生成します。送信者側は生成した共通かぎでデータを暗号化して送付し、受信者側は同じ共通かぎでデータを復号します。

 SSLでは、の動作を自動的に行い、通信相手の公開かぎの正当性を認識しながら、安全に暗号化通信を行えるようにしています。

■SSLにできること
 →長々と書き綴ってきましたが、最後にSSLを実装することによってセキュリティ上どのようなメリットがあるのかを説明します。
SSL/TLSは階層構造があり、実際には上位層では盗聴や改ざん、成りすましを防止する機能は持っていません。しかし、この上位プロトコルによって他のプロトコルにアラート機能を装備することができます。例えば、他のプロトコルの処理中にエラーなどのイベントが起きた場合に、そのイベント発生を相手(他のプログラム)に知らせます。この機能によって、Fatal(致命的エラー)の場合はそのイベントを受け取ったプログラムが該当する通信プロセスを直ちに切断できるわけです。
また下位層では、上位層から作業を引き継いで共通鍵暗号化を決定して、データを3DESやRC4といった共通鍵暗号化アルゴリズムによって圧縮・暗号化して、盗聴を防止しています。改ざんについては、MD5やSHA-1などの代表的な関数のメッセージダイジェスト機能によって防いでいます。

SSLとはすなわち、『伝言ゲームを間違えずに必ず成功させる技術』です。ここで「伝言ゲーム」と例えたには理由があります。「伝言ゲーム」の大前提は「会話を他のメンバに聞かれない」ことです。要するに、安全なSSLを利用するためには無線LANのセキュア設定や、OSパッチ等のセキュリティ実装が必須となるのです。安全だからといって過信してはいけませんね。