為了更好理解SSL協議的握手過程,結合實例,使用Wireshark抓包分析SSL握手過程中客戶端與服務器間的交互過程。本例中服務器為https://10.21.49.130,客戶端為本機瀏覽器192.168.1.214。
0x00 第一階段
客戶端瀏覽器向服務器發起TCP連接請求,建立起TCP連接后,客戶端向服務器發送Client Hello消息,傳送客戶端支持的最高 SSL 協議的版本號、隨機數、加密算法列表,以及其他所需信息。Client Hello消息的內容如下圖所示:
可以看出SSL更換了名字為TLS,查閱資料緣由為在SSL更新到3.0時,IETF對SSL3.0進行了標准化,並添加了少數機制(但是幾乎和SSL3.0無差異),標准化后的IETF更名為TLS1.0(Transport Layer Security 安全傳輸層協議),可以說TLS就是SSL的新版本3。
通過上圖可以看出client hello的消息結構如下:
查看Ciper Suites支持的加密算法:DES,RSA等
查看擴展(Extensions),發現Compression Methods字段值為0,說明沒有進行壓縮。
0x02 第二階段
服務器向客戶端發送Server Hello包含其證書的Certificate消息並還有Key Exchange Hello done等。證書中所攜帶服務器的公鑰,用於加密后面消息中預主密鑰。消息內容如下:
查看證書:發現只有一個根證書
觀察到證書的地址為cshao@gdut.edu.cn,組織名為www.gdut.edu.cn,單元名為cshao。證書公鑰為3082010a0282010100d82e34...證書的簽名值為:a93fe7b1ed06587df993b72673012b2d3a...等一些字段。
通過以上分析可知證書結構如下圖:
0x02 第三階段與第四階段
服務器發送完Certificate消息后繼續發送Server Key Exchange和Server Hello Done消息,Server Key Exchange消息中包含有密鑰交換算法所需要的額外參數。Server Hello Done消息表示服務器已發送完此階段的全部信息。
客戶端發送Client Key Exchange和Change Cipher Spec消息,Client Key Exchange包含使用服務器RSA公鑰加密過的隨機數Pre_Master_Secret,該參數用於后續生成主密鑰;Change Cipher Spec消息告訴服務器,接下來的消息將采用新協商的加密套件和密鑰進行通信,並通知客戶端到服務器的握手過程結束。
接着服務器同樣發送Change Cipher Spe消息通知服務器到客戶端的握手過程結束,並發送一個加密的握手數據Encrypted Handshake Message 消息,客戶端收到消息解密后進行驗證,驗證通過則說明握手過程中的數據沒有被篡改過,也說明服務器是之前交換證書的持有者。現在雙方就可以開始加密通信Application Data。
IPSec服務器的搭建與ESP簡單抓包及分析
設備有win10,win10上vmware里的linux虛擬機,以此作為服務器。服務器的搭建參考以下:
配置服務器
配置完如圖:
注意到自動配置的ip地址為學校的ip,本機不能進行訪問。修改/etc/ipsec.conf文件,使其中的leftid=192.168.220.128
為虛擬機的ip地址。
重啟服務:systemctl restart ipsec xl2tpd
查看是否在運行:systemctl status ipsec
配置客戶端
-
右鍵單擊系統托盤中的無線/網絡圖標。
-
選擇 打開網絡和共享中心。或者,如果你使用 Windows 10 版本 1709 或以上,選擇 打開"網絡和 Internet"設置,然后在打開的頁面中單擊 網絡和共享中心。
-
單擊 設置新的連接或網絡。
-
選擇 連接到工作區,然后單擊 下一步。
-
單擊 使用我的Internet連接 (VPN)。
-
在 Internet地址 字段中輸入
你的 VPN 服務器 IP
。 -
在 目標名稱 字段中輸入任意內容。單擊 創建。
-
返回 網絡和共享中心。單擊左側的 更改適配器設置。
-
右鍵單擊新創建的 VPN 連接,並選擇 屬性。
-
單擊 安全 選項卡,從 VPN 類型 下拉菜單中選擇 "使用 IPsec 的第 2 層隧道協議 (L2TP/IPSec)"。
-
單擊 允許使用這些協議。選中 "質詢握手身份驗證協議 (CHAP)" 和 "Microsoft CHAP 版本 2 (MS-CHAP v2)" 復選框。
-
單擊 高級設置 按鈕。
-
單擊 使用預共享密鑰作身份驗證 並在 密鑰 字段中輸入
你的 VPN IPsec PSK
。 -
單擊 確定 關閉 高級設置。
-
單擊 確定 保存 VPN 連接的詳細信息。
連接成功截圖:
wireshark抓包分析
隨意截取一個ESP的包,未看到AH的包: