1. 程式人生 > >發現新大陸:一個最簡單的破解SSL加密網路資料包的方法

發現新大陸:一個最簡單的破解SSL加密網路資料包的方法


1. 簡介

相信能訪問到這篇文章的同行基本上都會用過流行的網路抓包工具WireShark,用它來抓取相應的網路資料包來進行問題分析或者其他你懂的之類的事情。


一般來說,我們用WireShark來抓取包進行分析是沒有多大問題的。但這裡有個問題是,如果你碰到的是用SSL/TLS等加密手段加密過的網路資料的時候,往往我們只能束手無策。在過去的話,如果我們擁有的該傳輸會話的私鑰的話我們還是可以將它提供給WireShark來讓其對這些加密資料包進行解密的,但這已經是想當年還用RSA進行網路資料加密的年代的事情了。當今大家都已經逐漸擁抱前向加密技術PFS 的時代了,所以該方法就不再適用了。因為前向加密技術的目的就是讓每個資料互動都使用的是不同的私鑰,所以你像以前RSA時代一樣想只用一個私鑰就能把整個session會話的網路資料包都破解出來的話是不可能的了。所以這將是一個挺惱火的事情。

2. Session Key日記記錄來救火!

大家先別火起,這裡我來告訴你另外一個簡單的方法來解決這個問題!其實Firefox和Chrome瀏覽器都支援用日記檔案的方式記錄下用來加密TLS資料包對稱會話祕鑰的。這樣你就可以在WireShark中指定該檔案來快速完成你的破解目的了。請繼續往下看具體的步驟。

3. Browsers配置

首先你需要配置一個環境變數。

3.1 在Windows下的配置:

怎麼去到環境變數配置頁面相信不需要我多說了,畢竟國內還是Windows的天下。


在上圖的位置增加一個新的叫做“SSLKEYLOGFILE”的環境變數並指定其路徑到你想要儲存你的會話私鑰的地方。


3.2 在Linux或者MAC OS X上的配置:

1$ export SSLKEYLOGFILE=~/path/to/sslkeylog.log

當然,如果你想在你的系統每次啟動的時候都指定該日記路徑的話,你可以在你的Linux下執行下面的動作:

1~/.bashrc

或者在你的MAC OS X上執行以下命令:

1~/.MacOSX/environment

這樣我們下次啟動Firefox或者Chrome的開發者模式的時候,TLS祕鑰就會自動寫入到該指定檔案下面了。

4. Wireshark配置

為了支援這個功能,你當前的WireShark版本必須是1.6或者更新。我們僅僅要做的就是先進入偏好設定頁面:


展開協議選項:


找到SSL選項然後如下圖所示開啟上面設定好的會話祕鑰儲存檔案:



5. 結果

下圖就是我們通常見到的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資料包的相信資訊了:


6. 小結

通過本文我真心希望你能從中學到一些東西,該方法讓我們能夠如此直截了當的去把TLS資料包給破解出來。這種方式的另外一個值得一提的好處是,給會話過程中的兩臺機器根本不需要安裝任何Wireshark工具,因為你會擔心安裝上去會搞得問題是做多錯多都不知道哪裡出問題了。你只需要做的是把他們上面的該會話祕鑰檔案指定到一個網路共享資料夾然後用另外一個已經機器上安裝WireShark並如前所示指定該祕鑰檔案進行抓包就了事了。

最後多謝大家檢視本文。如想每天都能看到最新的技術等資訊文章,敬請關注本人下面提供的微信公眾號:techgogogo。謝謝!

-------------完------------------

/譯者

微信知識共享公眾號

CSDN

天地會珠海分舵

TechGoGoGo

http://blog.csdn.net/zhubaitian

優秀資源推薦

地址

點評