SSL/TSL雙向認證過程與Wireshark抓包分析
1、 SSL/TSL基本知識
2、 TLS/SSL雙向認證握手過程分析
(1)client_hello
支援的協議版本,比如TLS 1.0;
支援的加密演算法(Cipher Specs);
客戶端生成的隨機數1(Challenge),稍後用於生成"對話金鑰"。
(2)server_hello
確認使用的協議版本;
伺服器生成的隨機數2,稍後用於生成"對話金鑰";
確認使用的加密演算法; 演算法解釋: HTTPS背後的加密演算法
向客戶端提供自己的證書;
請求客服端的證書。
(3)客戶端發生給服務端
客戶端證書傳送給服務端;
client_key_exchange。
(4)客戶端發生給服務端
客戶端證書校驗;
change_cipher_spec:客戶端通知伺服器後續的通訊都採用協商的通訊金鑰和加密演算法進行加密通訊。
(5)服務端向客戶端
change_cipher_spec: 驗證通過之後,伺服器同樣傳送 change_cipher_spec 以告知客戶端後續的通訊都採用協商的金鑰與演算法進行加密通訊;
encrypted_handshake_message:伺服器也結合所有當前的通訊引數資訊生成一段資料並採用協商金鑰 session secret 與演算法加密併發送到客戶端;
(6)加密通訊
開始使用協商金鑰與演算法進行加密通訊。
3、SSL雙向認證過程如何進行加密資料傳輸業務資料的?
簡單的說:
在認證初期,客戶端和服務端分別生成一個隨機數。後面,在第(3)步,客戶端又生成pre-master-key隨機數,加密後傳給服務端。此時,客戶端和服務端雙方都有三個隨機數了。
此時,客戶端和服務端分別將這三個隨機數通過前面協商的加密演算法進行加密,各自生成本次會話所用的同一把“會話祕鑰”。即:雙方使用同一把密碼進行對稱加解密通訊。
下面是詳解:
4、其他關於SSL/TSL詳解