SSL與IPSec淺析


用wireshark對SSL握手分析

為了更好理解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...等一些字段。

通過以上分析可知證書結構如下圖:

img

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虛擬機,以此作為服務器。服務器的搭建參考以下:

  1. https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md#%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E

  2. https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md

配置服務器

配置完如圖:

注意到自動配置的ip地址為學校的ip,本機不能進行訪問。修改/etc/ipsec.conf文件,使其中的leftid=192.168.220.128 為虛擬機的ip地址。

重啟服務:systemctl restart ipsec xl2tpd

查看是否在運行:systemctl status ipsec

配置客戶端

  1. 右鍵單擊系統托盤中的無線/網絡圖標。

  2. 選擇 打開網絡和共享中心。或者,如果你使用 Windows 10 版本 1709 或以上,選擇 打開"網絡和 Internet"設置,然后在打開的頁面中單擊 網絡和共享中心

  3. 單擊 設置新的連接或網絡

  4. 選擇 連接到工作區,然后單擊 下一步

  5. 單擊 使用我的Internet連接 (VPN)

  6. Internet地址 字段中輸入你的 VPN 服務器 IP

  7. 目標名稱 字段中輸入任意內容。單擊 創建

  8. 返回 網絡和共享中心。單擊左側的 更改適配器設置

  9. 右鍵單擊新創建的 VPN 連接,並選擇 屬性

  10. 單擊 安全 選項卡,從 VPN 類型 下拉菜單中選擇 "使用 IPsec 的第 2 層隧道協議 (L2TP/IPSec)"。

  11. 單擊 允許使用這些協議。選中 "質詢握手身份驗證協議 (CHAP)" 和 "Microsoft CHAP 版本 2 (MS-CHAP v2)" 復選框。

  12. 單擊 高級設置 按鈕。

  13. 單擊 使用預共享密鑰作身份驗證 並在 密鑰 字段中輸入你的 VPN IPsec PSK

  14. 單擊 確定 關閉 高級設置

  15. 單擊 確定 保存 VPN 連接的詳細信息。

連接成功截圖:

wireshark抓包分析

隨意截取一個ESP的包,未看到AH的包:

可以看到安全參數索引(SPI) 與 序列號 (SN)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM