SSL
SSLとは
- 暗号化と認証の機能を提供しているセキュリティ通信のプロトコル
- トランスポート層〜セッション層において動作する
- TCPを利用したプログラムは殆どの場合はSSL通信に置き換えることができる
(図: http://kogures.com/hitoshi/webtext/nw-ip/index.html)
- もとはネットスケープ社が設計したもの
- その後TLSとして標準化され普及した
SSLと非SSLの区別
SSLと非SSL方法を区別する方法はいくつかある。例えばポート番号。
- httpはTCP80番
- httpsはTCP443番
SSLの通信手段
SSLはハンドシェイクとデータ伝送の2ステップに分けることができる
ハンドシェイク
サーバーを認証して暗号鍵を作るためのステップ
ハンドシェイクの目的
- サーバーを認証する
- 暗号化アルゴリズムを決める
- 暗号化鍵とMAC鍵を作る
暗号化アルゴリズム
- SSLでは複数の暗号化アルゴリズムの使用が許可されている
- クライアントが候補を定時し、その中からサーバーが暗号化アルゴリズムを決定する
暗号化鍵とMAC鍵
- 互いに送り合った乱数とプレマスターシークレットと呼ばれるデタラメな文字列から作られる
データの伝送
基本的にIPと同じシンプルなプロトコル