原文位址: http://article.yeeyan.org/view/530101/444688
一般來說,我們用WireShark來抓取包進行分析是沒有多大問題的。但這裡有個問題是,如果你碰到的是用SSL/TLS等加密手段加密過的網絡資料的時候,往往我們隻能束手無策。在過去的話,如果我們擁有的該傳輸會話的私鑰的話我們還是可以将它提供給WireShark來讓其對這些加密資料包進行解密的

相信能通路到這篇文章的同行基本上都會用過流行的網絡抓包工具WireShark,用它來抓取相應的網絡資料包來進行問題分析或者其他你懂的之類的事情。
大家先别火起,這裡我來告訴你另外一個簡單的方法來解決這個問題!其實Firefox和Chrome浏覽器都支援用日記檔案的方式記錄下用來加密TLS資料包對稱會話秘鑰的。這樣你就可以在WireShark中指定該檔案來快速完成你的破解目的了。請繼續往下看具體的步驟。
首先你需要配置一個環境變量。
怎麼去到環境變量配置頁面相信不需要我多說了,畢竟國内還是Windows的天下。
在上圖的位置增加一個新的叫做“SSLKEYLOGFILE”的環境變量并指定其路徑到你想要儲存你的會話私鑰的地方。
1
<code>$ export SSLKEYLOGFILE=~/path/to/sslkeylog.log</code>
當然,如果你想在你的系統每次啟動的時候都指定該日記路徑的話,你可以在你的Linux下執行下面的動作:
<code>~/.bashrc</code>
或者在你的MAC OS X上執行以下指令:
<code>~/.MacOSX/environment</code>
這樣我們下次啟動Firefox或者Chrome的開發者模式的時候,TLS秘鑰就會自動寫入到該指定檔案下面了。
為了支援這個功能,你目前的WireShark版本必須是1.6或者更新。我們僅僅要做的就是先進入偏好設定頁面:
展開協定選項:
找到SSL選項然後如下圖所示打開上面設定好的會話秘鑰儲存檔案:
下圖就是我們通常見到的WireShark抓到TLS資料包後的顯示結果:
This is what it looks like when you switch to the “Decrypted SSL Data” tab. Note that we can now see the request information in plain-text! Success!大家可以看到WireShark下面會有一個“已解密的SSL Data”的标簽,點選之後你就可以如下圖所示的看到已經解密的TLS資料包的相信資訊了:
通過本文我真心希望你能從中學到一些東西,該方法讓我們能夠如此直截了當的去把TLS資料包給破解出來。這種方式的另外一個值得一提的好處是,給會話過程中的兩台機器根本不需要安裝任何Wireshark工具,因為你會擔心安裝上去會搞得問題是做多錯多都不知道哪裡出問題了。你隻需要做的是把他們上面的該會話秘鑰檔案指定到一個網絡共享檔案夾然後用另外一個已經機器上安裝WireShark并如前所示指定該秘鑰檔案進行抓包就了事了。
最後多謝大家檢視本文。如想每天都能看到最新的技術等資訊文章,敬請關注本人下面提供的微信公衆号:techgogogo。謝謝!
-------------完------------------