1. 程式人生 > >Fiddler抓取https協議的原理是什麽?

Fiddler抓取https協議的原理是什麽?

ner -m 解密 spl content 信用 col import 什麽

  近期項目中遇到個問題,就是測試環境的證書實際是不安全的,但是使用Fiddler 後,瀏覽器的地址欄顯示證書竟然安全了。我百思不得其解,查了大量資料,終於解開了,也分享給大家。

  Fiddler2 使用 man-in-the-middle (中間人) 攻擊的方式來截取 HTTPS 流量。在 Web 瀏覽器面前 Fiddler2 假裝成一個 HTTPS 服務器,而 在真正的 HTTPS 服務器面前 Fiddler2 假裝成瀏覽器。Fiddler2 會動態地生成 HTTPS 證書來偽裝服務器。

  第一步,首先fiddler截獲客戶端瀏覽器發送給服務器的https請求, 此時還未建立握手。

  第二步, fiddler向服務器發送請求進行握手, 獲取到服務器的CA證書, 用根證書公鑰進行解密, 驗證服務器數據簽名, 獲取到服務器CA證書公鑰。

  第三步, fiddler偽造自己的CA證書, 冒充服務器證書傳遞給客戶端瀏覽器, 客戶端瀏覽器做跟fiddler一樣的事。

  第四步, 客戶端瀏覽器生成https通信用的對稱密鑰, 用fiddler偽造的證書公鑰加密後傳遞給服務器, 被fiddler截獲。

  第五步, fiddler將截獲的密文用自己偽造證書的私鑰解開, 獲得https通信用的對稱密鑰。

  第六步, fiddler將對稱密鑰用服務器證書公鑰加密傳遞給服務器, 服務器用私鑰解開後建立信任, 握手完成, 用對稱密鑰加密消息, 開始通信。

  第七步, fiddler接收到服務器發送的密文, 用對稱密鑰解開, 獲得服務器發送的明文。再次加密, 發送給客戶端瀏覽器。

  第八步, 客戶端向服務器發送消息, 用對稱密鑰加密, 被fidller截獲後, 解密獲得明文。

  由於fiddler一直擁有通信用對稱密鑰, 所以在整個https通信過程中信息對其透明。   原文鏈接:https://www.zhihu.com/question/24484809

Fiddler抓取https協議的原理是什麽?