generated at
TLSハンドシェイク
安全なデータのやり取りをする前に、clientとserver間で行うやりとり
公開鍵暗号方式共通鍵を交換する


SSL/TLS通信の流れの1つ目の手順であることを知っておくと見通しが良い
2つ目の手順(TLSのデータ転送)で、共通鍵暗号方式でやりとりをする
TLSハンドシェイクはそのための準備をしている




図示しようと思ったがめんどくさくなったmrsekut



手順
1 clientが送信
clientが利用可能な暗号方式を伝える
e.g.
SSL/TLSのversion
圧縮アルゴリズム
server認証アルゴリズム #??
鍵交換アルゴリズム
TLSのデータ転送で使用するデータ保護用の共通鍵暗号方式アルゴリズム
TLSのデータ転送で使用するデータの完全性を確認するためのMACアルゴリズム
client random
2 serverが送信
使用するアルゴリズムを送信
ClientHelloへの応答
自身の公開鍵を含むserver証明書を送信
この公開鍵って何に使うの #??
cleintが、「serverが正しいもの」であることを確認するために使う
clientで生成したランダムな文字列を公開鍵で暗号化する
serverはその暗号化された文字列を覆道して、元の文字列を取得する
どうやって?clientは秘密鍵を持ってるの #??
だとしたら、この鍵のペアってどの時点で作ってるの?
TLSハンドシェイクの中のどの部分で検証しているの #??
サーバーからの送信終了を示す
3 clientが送信
鍵交換メッセージ
無暗号通信の終了を示す
これ以降の通信は全て暗号化される
ハンドウェイクの終了
4 serverが送信
無暗号通信の終了を示す
これ以降の通信は全て暗号化される
ハンドウェイクの終了


図示して、順番ごとに説明しつつ
どれとどれが対応している操作7日、を示せばわかりやすい気がする
どのへんが、ハイブリッド暗号方式なのか
単純化
ざっくりどういうフェーズがアアル化
どの順序に対応しているか