日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

對于想抓取HTTPS的測試初學者來說,常用的工具就是fiddler。

但是初學時,大家對于fiddler如何抓取HTTPS難免走歪路,也許你一步步按著網上的帖子成功了,這自然是極好的。

但也有可能沒那么幸運,這時候你就會很抓狂。

為此我把一些我自己的安裝經驗和網絡上的教程進行了整合

下面為大家演示如何用fiddler抓取HTTPS的詳細教程。如若失敗,請先仔細檢查,避免錯過細節!然后重新重試!

01

淺談HTTPS

我們都知道HTTP并非是安全傳輸,在HTTPS基礎上使用SSL協議進行加密構成的HTTPS協議是相對安全的。目前越來越多的企業選擇使用HTTPS協議與用戶進行通信,如百度、谷歌等。HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。網上有諸多資料,有些寫得過于晦澀難懂,尤其是需要密碼學的一些知識。我做了一下簡單的整理,刨除復雜的底層實現,單從理解SSL協議的角度宏觀上認識一下HTTPS。一言以弊之,HTTPS是通過一次非對稱加密算法(如RSA算法)進行了協商密鑰的生成與交換,然后在后續通信過程中就使用協商密鑰進行對稱加密通信。HTTPS協議傳輸的原理和過程簡圖如下所示:

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

HTTPS協議傳輸原理

一共有8個步驟,我們針對每一步,具體看看發生了什么事:

第一步,客戶端發起明文請求:將自己支持的一套加密規則、以及一個隨機數(Random_C)發送給服務器。

第二步,服務器初步響應:服務器根據自己支持的加密規則,從客戶端發來的請求中選出一組加密算法與HASH算法,生成隨機數,并將自己的身份信息以證書(CA)的形式發回給瀏覽器。CA證書里面包含了服務器地址,加密公鑰,以及證書的頒發機構等信息。這時服務器給客戶端的包括選擇使用的加密規則、CA證書、一個隨機數(Random_S)。

第三步,客戶端接到服務器的初步響應后做四件事情:

(1)證書校驗: 驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等)。

(2)生成密碼:瀏覽器會生成一串隨機數的密碼(Pre_master),并用CA證書里的公鑰加密(enc_pre_master),用于傳給服務器。

(3)計算協商密鑰:

此時客戶端已經獲取全部的計算協商密鑰需要的信息:兩個明文隨機數 Random_C 和 Random_S 與自己計算產生的 Pre-master,計算得到協商密鑰enc_key。

enc_key=Fuc(random_C, random_S, Pre-Master)

(4)生成握手信息:使用約定好的HASH計算握手消息,并使用協商密鑰enc_key及約定好的算法對消息進行加密。

第四步,客戶端將第三步產生的數據發給服務器:

這里要發送的數據有三條:

(1)用公鑰加密過的服務器隨機數密碼enc_pre_master

(2)客戶端發給服務器的通知,"以后我們都要用約定好的算法和協商密鑰進行通信的哦"。

(3)客戶端加密生成的握手信息。

第五步,服務器接收客戶端發來的數據要做以下四件事情:(1)私鑰解密:使用自己的私鑰從接收到的enc_pre_master中解密取出密碼Pre_master。

(2)計算協商密鑰:此時服務器已經獲取全部的計算協商密鑰需要的信息:兩個明文隨機數 Random_C 和 Random_S 與Pre-master,計算得到協商密鑰enc_key。

enc_key=Fuc(random_C, random_S, Pre-Master)

(3)解密握手消息:使用協商密鑰enc_key解密客戶端發來的握手消息,并驗證HASH是否與客戶端發來的一致。

(4)生成握手消息使用協商密鑰enc_key及約定好的算法加密一段握手消息,發送給客戶端。

第六步,服務器將第五步產生的數據發給客戶端:

這里要發的數據有兩條:

(1)服務器發給客戶端的通知,”聽你的,以后我們就用約定好的算法和協商密鑰進行通信哦“。

(2)服務器加密生成的握手信息。

第七步,客戶端拿到握手信息解密,握手結束。

客戶端解密并計算握手消息的HASH,如果與服務端發來的HASH一致,此時握手過程結束。

第八步,正常加密通信

握手成功之后,所有的通信數據將由之前協商密鑰enc_key及約定好的算法進行加密解密。

這里客戶端與服務器互相發送加密的握手消息并驗證,目的是為了保證雙方都獲得了一致的密碼,并且可以正常的加密解密數據,為后續真正數據的傳輸做一次測試。另外,HTTPS一般使用的加密與HASH算法如下:非對稱加密算法:RSA,DSA/DSS對稱加密算法:AES,RC4,3DESHASH算法:MD5,SHA1,SHA256其中非對稱加密算法用于在握手過程中加密生成的密碼,對稱加密算法用于對真正傳輸的數據進行加密,而HASH算法用于驗證數據的完整性。由于瀏覽器生成的密碼是整個數據加密的關鍵,因此在傳輸的時候使用了非對稱加密算法對其加密。非對稱加密算法會生成公鑰和私鑰,公鑰只能用于加密數據,因此可以隨意傳輸,而服務器的私鑰用于對數據進行解密,所以服務器都會非常小心的保管自己的私鑰,防止泄漏。

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

02

Fiddler抓取HTTPS協議原理

我們都知道,Fiddler是個很好的代理工具,可抓取協議請求用于調試。關于Fiddler抓取HTTP協議的原理和配置比較簡單,對Fiddler和客戶端稍作配置,便能使得Fiddler輕易地獲取HTTP請求。但是由于HTTPS協議的特殊性,要進一步地配置Fiddler,我們首先要了解一下fiddler抓取HTTPS協議的原理才能更好地理解如何對fiddler進行配置。Fiddler本身就是一個協議代理工具,在上一節HTTPS原理圖上,客戶端與服務器端進行通信的過程全部都由Fiddler獲取到,也就是如下圖所示:

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

Fiddler抓取HTTPS協議原理圖

我們看到Fiddler抓取HTTPS協議主要由以下幾步進行:

第一步,Fiddler截獲客戶端發送給服務器的HTTPS請求,Fiddler偽裝成客戶端向服務器發送請求進行握手 。

第二步,服務器發回相應,Fiddler獲取到服務器的CA證書, 用根證書公鑰進行解密, 驗證服務器數據簽名, 獲取到服務器CA證書公鑰。然后Fiddler偽造自己的CA證書, 冒充服務器證書傳遞給客戶端瀏覽器。

第三步,與普通過程中客戶端的操作相同,客戶端根據返回的數據進行證書校驗、生成密碼Pre_master、用Fiddler偽造的證書公鑰加密,并生成HTTPS通信用的對稱密鑰enc_key。

第四步,客戶端將重要信息傳遞給服務器, 又被Fiddler截獲。Fiddler將截獲的密文用自己偽造證書的私鑰解開, 獲得并計算得到HTTPS通信用的對稱密鑰enc_key。Fiddler將對稱密鑰用服務器證書公鑰加密傳遞給服務器。

第五步,與普通過程中服務器端的操作相同,服務器用私鑰解開后建立信任,然后再發送加密的握手消息給客戶端。

第六步,Fiddler截獲服務器發送的密文, 用對稱密鑰解開, 再用自己偽造證書的私鑰加密傳給客戶端。

第七步,客戶端拿到加密信息后,用公鑰解開,驗證HASH。握手過程正式完成,客戶端與服務器端就這樣建立了”信任“。

在之后的正常加密通信過程中,Fiddler如何在服務器與客戶端之間充當第三者呢?

服務器—>客戶端:Fiddler接收到服務器發送的密文, 用對稱密鑰解開, 獲得服務器發送的明文。再次加密, 發送給客戶端。

客戶端—>服務端:客戶端用對稱密鑰加密,被Fiddler截獲后,解密獲得明文。再次加密,發送給服務器端。由于Fiddler一直擁有通信用對稱密鑰enc_key, 所以在整個HTTPS通信過程中信息對其透明。

從上面可以看到,Fiddler抓取HTTPS協議成功的關鍵是根證書(具體是什么,可google),這是一個信任鏈的起點,這也是Fiddler偽造的CA證書能夠獲得客戶端和服務器端信任的關鍵。

接下來我們就來看如果設置讓Fiddler抓取HTTPS協議。

03

Fiddler抓取HTTPS設置

注意以下操作的前提是,手機已經能夠連上Fiddler,這部分的配置過程簡單就不贅述了,可參考:手機如何連接Fiddler 。

如何繼續配置讓Fiddler抓取到HTTPS協議呢?

(一)首先對Fiddler進行設置:打開工具欄->Tools->Fiddler Options->HTTPS

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

選中Capture HTTPS CONNECTs,因為我們要用Fiddler獲取手機客戶端發出的HTTPS請求,所以中間的下拉菜單中選中from remote clients only。選中下方Ignore server certificate errors.

(二)然后,就是手機安裝Fiddler證書。

這一步,也就是我們上面分析的抓取HTTPS請求的關鍵。

操作步驟很簡單,打開手機瀏覽器,在瀏覽器地址輸入代理服務器IP和端口,會看到一個Fiddler提供的頁面。

Fiddler抓取HTTPS最全(強)攻略!后悔沒有早知道

 

接著點擊最下方的FiddlerRoot certificate,這時候點擊確定安裝就可以下載Fiddler的證書了。

下載安裝完成好后,我們用手機客戶端或者瀏覽器發出HTTPS請求,Fiddler就可以截獲到了,就跟截獲普通的HTTP請求一樣。

好啦,以上就是關于HTTPS的簡介以及Fiddler如何獲取HTTPS協議的原理和配置,看到Fiddler整齊劃一地截獲到HTTP和復雜的HTTPS協議,心里還有點小激動呢

分享到:
標簽:Fiddler
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定