天天看點

wireshark怎麼抓包_Wireshark解析TLS協定

前段時間有個大廠的朋友問怎麼從Windows用戶端軟體抓取HTTPS協定的通訊,解決這個問題的方法有很多。使用Wireshark也可以做TLS協定的解析:一種是直接根據RSA私鑰進行解密,RSA私鑰通常情況下很難獲得(沒有使用DH密鑰交換;協定是SSLv3,TLS 1.0-1.2;必須是伺服器證書的私鑰;建立連接配接時必須有ClientKeyExchange握手資訊);一種是使用會話密鑰的日志檔案,這是通用辦法,即便使用DH密鑰交換也可以做解密。

密鑰日志檔案是系統配置環境變量SSLKEYLOGFILE後浏覽器生成的文本檔案,也就是每次會話密鑰會寫入這個文本檔案中。Wireshark配置該檔案後即可解析抓取的TLS通訊資料。

Wireshark的首選項→Protocols下選擇TLS,在其中的(Pre)-Master-Secret log filename中配置環境變量SSLKEYLOGFILE中配置的日志檔案路徑即可,配置完成後需重新開機浏覽器。TLS debug file可以記錄資料解密過程。

wireshark怎麼抓包_Wireshark解析TLS協定

配置Pre-Master-Secret log filename

為了使密鑰日志檔案解密協定内容生效,還需要配置Protocols下的TCP協定,啟用“Reassemble out-of-order segments”,該選項在3.0版本後預設是禁用的。

wireshark怎麼抓包_Wireshark解析TLS協定

配置Reassemble out-of-order segments

配置RSA密鑰解密,可以在Protocols下的“RSA密鑰”對話框中配置密鑰檔案,檔案格式可以是PEM或者PKCS#12格式(.pfx或.p12字尾)。

Wireshark官網提供了批處理腳本來避免設定全局環境變量SSLKEYLOGFILE,替換firefox為其他應用,也可以解決非浏覽器應用的TLS流量解密問題,如果其使用的TLS庫支援的話(SSLKEYLOGFILE實際是TLS庫生成的):

啟用和配置SSLKEYLOGFILE後,就可以通過Wireshark抓包擷取TLS的解密資料。

wireshark怎麼抓包_Wireshark解析TLS協定