當前位置:編程學習大全網 - 源碼下載 - 國密SSL VPN握手抓包分析

國密SSL VPN握手抓包分析

Windows PC電腦;

國密SSL VPN客戶端(瀏覽器);

Wireshark客戶端(需支持國密協議版本, github地址 ),用於查看握手數據。

打開wireshark客戶端,監聽對應的網卡。可以在聯網時通過wireshark查看哪個網卡有網絡波動,選擇對應的網卡。

Wireshark設置按照IP過濾,設置SSL VPN連接的國密服務器IP過濾。IP地址即為安全接入的網關或安全服務的地址。

此時可以看到通過GMTLS協議的握手數據。根據請求我們具體分析。

客戶端向服務端發送Client Hello消息,傳送客戶端支持的最高 SSL 協議的版本號、隨機數、加密算法列表,以及其他所需信息。Client Hello消息的內容如下圖所示:

服務端收到客戶端建立SSL連接的請求後,通過發送Server Hello消息向客戶端傳送SSL 協議的版本號、隨機數、會話ID、加密算法的種類以及其他相關信息。消息內容如下:

同時服務端向客戶端發送包含其證書的Certificate消息。證書中所攜帶服務端的公鑰。如下圖所示:

發送Certificate Request消息,要求服務端上報證書,如下圖所示:

客戶端發送Client Key Exchange和Change Cipher Spec消息,Client Key Exchange包含使用服務器公鑰加密過的隨機數Pre_Master_Secret,該參數用於後續生成主密鑰。 (此處客戶端使用前面提到的兩個隨機數,再生成第三個隨機數,然後通過服務端證書中的公鑰對第三個隨機數加密,生成該 Pre_Master_Secret ) **;Change Cipher Spec消息告訴服務器,接下來的消息將采用新協商的加密套件和密鑰進行通信,並通知客戶端到服務器的握手過程結束。如下圖所示:

服務端同樣發送Change Cipher Spe消息通知服務端到客戶端的握手過程結束,並發送壹個加密的握手數據Encrypted Handshake Message 消息,客戶端收到消息解密後進行驗證,驗證通過則說明握手過程中的數據沒有被篡改過,也說明服務端是之前交換證書的持有者。現在雙方就可以開始加密通信。如下圖所示:

  • 上一篇:有了GPT,我再也不怕寫文章了。
  • 下一篇:如何在Mac 平臺配置NetBeans C++ IDE
  • copyright 2024編程學習大全網