目次

ホーム#プロトコル に戻る

SSL/TLSのハンドシェイクを把握する

SSL/TLSは、問題になることが多く、パケットキャプチャーして、問題解決する必要があります。
SSL/TLSの通信が、クライアントとサーバで、どのような仕組みになっているかは把握しておく必要があります。

SSL3.0~TLS1.2 のハンドシェイク

クライアント発 サーバ発 説明
ClientHello 初期乱数、プロトコルバージョン、SessionID、CipherSuite(暗号方式)、CompressionMethod(圧縮方式)、Extensions(拡張)の6要素を交換
ServerHello
ServerCertificate サーバ証明書,中間証明書を送信
ServerKeyExchange 「使い捨て」共通値(g, p)の作成
「使い捨て」サーバ秘密鍵と公開鍵の作成
「使い捨て」共通値(g, p)、サーバ公開鍵の送信
CertificateRequest クライアント証明書を送信するように促す
クライアント証明書が必要な場合に送信
ServerHelloDone
ClientCertificate CertificateRequestが来た場合、
クライアント証明書を送る
ClientKeyExchange 共通値(g, p)を基にクライアント秘密鍵、公開鍵の作成
クライアント公開鍵の送信
CertificateVerify
ChangeCipherSpec
Finished ハンドシェイクの終了
ChangeCipherSpec
Finished
ApplicationData ← → ApplicationData データ本文を暗号化して送受信


参考





ホーム#プロトコル に戻る