TLS1.3抓包分析----解密Application Data
一、問題描述
TLS1.3 在兩次握手后,開始加入加密傳輸。具體表現Change Cipher Spec之后出現 Application Data(加密后的數據,WireShark不能解密)。

二、解決方案
tls1.3 交互的雙方分別是 谷歌瀏覽器和 支持tls1.3的服務器。WireShark在抓包過程中的作用是呈現數據交互,它本身不會存儲客戶端和服務端交互的各種信息。包括會話密鑰。
所以想要讓WireSharke解密需要告訴指定會話密鑰,但這個信息只有瀏覽器知道。又因為Firefox和Chrome瀏覽器都支持用log文件的方式記錄下用來加密TLS數據包對稱會話秘鑰的,
所以創建ssl.log來保存會話密鑰,然后把這個文件路徑告訴wireShark就能看到明文。
三、具體操作步驟
我的設備:mac os Sequoia 15.1.1 M3
1. 終端方式啟動Chrome瀏覽器
將Chrome瀏覽器按指定log文件的方式,記錄加密TLS數據對稱會話密鑰。(ssl.log填寫自己的絕對路徑)
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ssl-key-log-file=/Users/test/log/ssl.log
2. 配置wireshark 日志路徑
wireshark -> preferences -> Protocols -> tls

3. 打開瀏覽器請求域名驗證
瀏覽器輸入https://api.github.com,查看ssl.log是否有內容產生(如下)。

4. 效果
可以看到Application Data變成了 Certificate, Certificate verify, Finished。

四、排查過程
https://www.jianshu.com/p/9c027c580f8d
網絡上找了好久,都是在重復copy這個人的思路。可是這種windows的方式并不能解決我的問題。問題主要卡在了文內設置完系統變量后,瀏覽器就會自動使用,可是明顯mac不是這樣的。于是我就在尋找如果讓我本地瀏覽器按指定日志的方式啟動。
后來在一偏文章中看到了 --ssl-key-log-file=xx.log。到這里瀏覽器和抓包工具聯系起來了,問題也解決了。

浙公網安備 33010602011771號