首頁>科技>

引子

上次分享藉助 Wireshark 對 QQ 音樂進行抓取 HTTPS 包,並談了談如何脫掉 HTTPS 的加密外殼?Wireshark 就像是網路世界的顯微鏡,可以在它的幫助下了解網路中發生的一切,本次藉助 Wireshark 來簡單談談 HTTPS 協議的握手過程,希望大家能夠稍作了解,以備不時之需。

HTTPS 協議握手一覽

本次依然基於 Wireshark 對 QQ 音樂抓取 HTTPS 包為例。

透過上圖,HTTPS 握手是建立在 TCP 基礎上的,首先進行 TCP 的三次握手(之前分享過,感興趣的可以扒拉一下歷史推文回味一下),然後再進行建立 TLS 連線,下面重點談談 TLS 握手過程(HTTPS = HTTP + TLS/SSL)。

我們可以藉助 Wireshark 提供的「Statistics|Flow Graph」功能,進行展示出 HTTPS 協議握手的流程圖,如下圖所示。

我們還可以藉助 Wireshark 提供的「顯示過濾器」功能來篩選出重點關注的 TLS 握手資料包,如下圖所示。

透過上面兩張截圖,能夠梳理出 HTTPS 協議握手的幾個重要步驟。

步驟一:客戶端向伺服器端傳送一個 Client Hello步驟二:伺服器端向客戶端返回一個 Server Hello步驟三:伺服器端向客戶端返回一個 Certificate步驟四:伺服器端向客戶端返回 Server Key Exchange,Server Hello Done步驟五:客戶端向伺服器端傳送 Client Key Exchange,Change Cipher Spec,Encrypted Handshake Message步驟六:伺服器端向客戶端返回 New Session Ticket,Change Cipher Spec,Encrypted Handshake Message
HTTPS 協議握手剖析

HTTPS 握手的過程,藉助 Wireshark 能夠看的很清晰,接下來採取剝洋蔥的方式,一層一層去分析。

步驟一:Client Hello

透過 Wireshark 抓包分析,如上圖所示,Clinet Hello 階段主要是客戶端告訴服務端客戶端所支援的 TLS 協議的版本號、客戶端支援的加密套件、客戶端支援的壓縮方法以及客戶端生成的一個隨機數等相關資訊。

步驟二:Server Hello

透過抓包分析,如上圖所示,主要是服務端根據客戶端傳遞的支援的相關資訊,確定使用的 SSL/TLS 協議版本;確定使用哪種加密套件及壓縮方法等;產生一個隨機數 Random。

步驟三:Certificate

此步主要是服務端向客戶端傳送證書。

步驟四:Server Key Exchange,Server Hello Done

Server Key Exchange:此訊息是服務端向客戶端傳送金鑰交換演算法相關引數和資料的,常用的金鑰交換演算法有 RSA、DH、ECDH 等。

Server Hello Done:服務端告訴客戶端訊息傳送完畢。

步驟五:

Client Key Exchange:此訊息用來交換秘鑰引數,生成一個pre-master key,然後將這個 Key 傳給伺服器端,服務端會結合自己的私鑰解密出 Key,得到第三個隨機數,進而可以生成一個通訊金鑰。

Change Cipher Spec:此訊息是告訴伺服器端後期的通訊都會使用協商出來的這個金鑰進行加密。

Encrypted Handshake Message:客戶端將前面的握手訊息生成摘要,然後用協商好的秘鑰進行加密,若服務端接收後能解出來,說明前面協商出來的秘鑰是一致的。

步驟六:

New Session Ticket:包含了一個加密通訊所需要的資訊,這些資料採用一個只有伺服器知道的金鑰進行加密。目標是消除伺服器需要維護每個客戶端的會話狀態快取的要求。

Change Cipher Spec:此訊息是告訴客戶端後期的通訊都會使用協商出來的金鑰進行加密通訊。

Encrypted Handshake Message:服務端將握手過程的訊息生成摘要再用秘鑰加密,這是服務端發出的第一條加密訊息。客戶端接收後會用秘鑰解密,能解出來說明協商的秘鑰是一致的。

到這裡 TLS 握手就完成了,接著就是資料傳輸了。HTTPS 資料傳輸如下圖所示。

寫在最後

紙上得來終覺淺,絕知此事要躬行,有些傳到不到的地方,還需要結合 Wireshark 抓包自行分析一番。

資料分享:

經典例子:https://gitlab.com/wireshark/wireshark/-/wikis/SampleCaptures官方文件:https://www.wireshark.org/docs/wsug_html_chunked/

參考書籍:

《從實踐中學習Wireshark資料分析》《Wireshark網路分析就是這麼簡單》

歷史推文:

一起聊技術、談業務、架構,少走彎路,不踩大坑。會持續輸出精彩分享,敬請期待!

21
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 不止光刻機,高階科研儀器也是“頑疾”,破冰之路沒有彎道超車