ホーム#プロトコル に戻る
SSL/TLSは、問題になることが多く、パケットキャプチャーして、問題解決する必要があります。
SSL/TLSの通信が、クライアントとサーバで、どのような仕組みになっているかは把握しておく必要があります。
クライアント発 | サーバ発 | 説明 | |
---|---|---|---|
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 | データ本文を暗号化して送受信 |