天天看點

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

背景

Https即HTTP over TLS。為避免Http明文傳輸帶來的安全隐患,我們可以對傳輸的資料進行加密,考慮到性能問題,使用對稱加密算法。用戶端需要知道服務端使用的密鑰及加密算法,如何保證密鑰的安全傳輸呢?這裡可以使用非對稱加密算法,使用服務端的公鑰pubKey來加密傳輸密鑰key。公鑰是明文傳輸的,中間人仍然可以使用自己的公鑰加密key欺騙用戶端。

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

TLS使用證書進行身份認證,保證服務端是受信任的,同時證書中使用數字簽名防止被篡改。這樣保證了pubKey的安全傳輸TLS使用協商機制來選擇對稱加密使用的算法

抓包分析

  1. 選擇使用的網卡,設定捕捉過濾器host blog.csdn.net (也可以不設定,抓包後通過顯示過濾器檢視),開始抓取。
https抓包_使用wireshark抓包了解https背景抓包分析整體流程

2. 使用curl https://blog.csdn.net/u010648018/article/details/103447167發起一次https請求

3. 可以看到,首先是tcp的三次握手,然後是tls協商加密算法與密鑰交換過程

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

4. Client Hello,用戶端向服務端發送一個随機數和支援的加密算法

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

5. Server Hello,服務端向用戶端發送随機數和選擇的加密算法(ECDHE)

https抓包_使用wireshark抓包了解https背景抓包分析整體流程
  1. Certificate, Server Key Exchange, Server Hello Done
  • Certificate 服務端向用戶端發送證書鍊。證書用于身份認證,其中包含服務端公鑰PubKey
  • Server Key Exchange 根據上面具體選擇的加密算法(ECDHE)準備生成密鑰需要的一些參數(premaster)。(RSA算法沒有該步驟)
  • Server Hello Done 表明服務端的Hello消息發送完畢
https抓包_使用wireshark抓包了解https背景抓包分析整體流程
  1. Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
  • Client Key Exchange 在驗證服務端發送證書可信後,生成加密算法所需的一些參數
  • Change Cipher Spec 告訴服務端以後要使用選擇的加密算法加密資料
  • Encrypted Handshake Message 根據之前用戶端和服務端生成的随機數、加密算法所需的一些參數生成會話密鑰key,對之前的握手消息的Hash值和Mac值進行加密,來驗證該加密密鑰是否可用。服務端以相同的方法生成會話密鑰解密該消息,校驗其中的Hash值和Mac值。
https抓包_使用wireshark抓包了解https背景抓包分析整體流程
  1. Change Cipher Spec, Encrypted Handshake Message
  • Change Cipher Spec 告訴用戶端以後要使用該加密算法來加密資料
  • Encrypted Handshake Message 使用會話密鑰key加密之前的握手消息的Hash值和Mac值,發送給用戶端校驗
https抓包_使用wireshark抓包了解https背景抓包分析整體流程

9. 雙方校驗完成,發送加密的應用資料

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

整體流程

https抓包_使用wireshark抓包了解https背景抓包分析整體流程

繼續閱讀