相信只要是從事軟體開發, 多多少少都會涉及到資料報的抓取。常見的有網頁資料抓取(即網頁爬蟲),應用程式資料報抓取等。網頁資料抓取比較簡單, 在chrome下可以非常方便的分析網頁結構和資料請求;而應用程式資料報的抓取則相對複雜些, 通常需要配置**軟體。常用的**軟體有paros, mitmproxy, honeyproxy等。若是你的路由器支援, 你甚至可以直接在電腦上使用wireshark捕捉其他ip的資料報。
mitmproxy 是python編寫的資料報抓取軟體, 使用控制台作為操作介面。提供libmproxy工具包。
honeyproxy 基於 mitmproxy, 提供比較友好的互動介面。
通常,簡單的未加密的http資料報是非常容易抓取的, 只要簡單的配置下paros就可以了。 因為, http未加密, 所有的資料都是明文傳輸的, 配置**後, **可以直接讀取到這些通訊資料報。
然而, https 則不行, 即便是通過**進行資料傳輸, 流過**的資料也是經過ssl加密的, **當然沒有辦法解密通訊資料報。
https 通訊時序
https 對應的通訊時序圖如下:
伺服器在接受到客戶端發起https連線請求後, 將返回該**的證書(根證書資訊等)
客戶端將校驗**證書的合法性。
驗證通過後,客戶端產生隨機的對稱金鑰。
客戶端使用**證書的公鑰加密對稱金鑰, 並傳送給伺服器端。
伺服器端收到對稱金鑰後, 就可以進行利用對稱金鑰的密文通訊了。
每乙個https的**都會向證書頒發機構(ca)申請乙個**證書, 這個證書實際是非對稱加密的公鑰金鑰對, 利用非對稱加密演算法的特殊性, 可以在理論上避免第三方竊聽。
非對稱加密演算法的原理
https加密通訊原理
https 加密通訊利用非對稱加密演算法
和對稱演算法
, 使用非對稱加密演算法驗證身份
和傳送對稱金鑰
, 使用對稱演算法
加密通訊資料。
證書實際就是非對稱加密演算法的公鑰
和私鑰
, 分為兩大類,根證書
和**證書
。
聊到這裡, 我們可以看出若想偽造**證書進行https**, 必須匯入自己的根證書到系統中, 才能使客戶端認為偽造的**證書是有效的。
偉大的goagent 就是用這種原理實現的, 因此從嚴格的角度上來說, goagent是不安全的, 有被竊聽的危險。不過, 屌絲怕啥, 隨便竊...
所以, 有人說沒辦法抓取https 的資料報, 這是不正確的。 經過一些配置還是可以抓取https 資料報的。可惜我跟個傻帽似的還跟honeyproxy 的作者**怎麼加入https的支援, 羞愧死了。
mitmproxy實際上是支援抓取https資料報的。在官方文件裡面, 甚至將firefox, osx, windows7, ios, android 怎麼配置根證書都說的一清二楚。android的配置位址是 可惜我在我的手機galaxy nexus( 4.2 stock rom)上測試沒成功。
android 2.x 與 android 4.1 以及android 4.2 的根證書配置方式都不同。 若是有同學搞定這個問題, 分享下心得哈.
分布式Key Value資料的開發可行性分析
前段時間和同事討論key value db的用途的問題,說是非常的有用。下週打算實現乙個原型。今天把前幾天寫的文件總結一下。希望大家提些建議和意見。功能 相對於關聯式資料庫功能更少,只提供有限的key value查詢功能,以及一些可管理功能。相對於關聯式資料庫可以提供更加強勁的效能,提供更好的可管理...
專案可行性的研究內容
可行性研究是一種系統的投資決策科學分析方法。專案可行性研究是指 在專案投資決策前,通過對專案有關的工程技術 經濟 社會等方面的條件和情況進行調查 研究和分析,對各種可能的技術方案進行比較論證,並對投資專案建成後的經濟效益和社會效益進行 和分析,以考察專案技術上的先進性和通用性 經濟上的合理性和盈利性...
mongodb分庫的可行性操作
1 建立乙個新的mongodb庫 2 把當前的mongodb集合改為比如 log data為log data 201904062230 3 把log data 201904062230備份到新庫中 4 在獲取資料的地方再連線新庫的log data 201904062230集合展示資料 示例如下 wh...