解釋下為什麼抓包 https 需要安裝證書

测试新人發表於2024-03-26

背景

使用 fiddler 或者其他代理抓包工具時,對於 https 的請求都會有一個安裝證書的操作,對於為什麼要有這個操作,這裡大致講下

http 的缺陷

▧▧ http 是明文傳輸協議,資料傳輸過程中是以純文字的形式進行傳輸。這裡的明文指的是未經過加密的資料,這些未經過加密的 http 報文(請求行、請求頭、主體)在網路上傳輸的過程,使得其內容容易被竊聽者擷取和讀取。

  • http 報文格式

    、。

  • 舉例登入介面,若用 http 進行請求,對網路卡進行抓包能得到傳輸的資料

資訊保安

▧▧ 資訊保安的基本要素:保密性、完整性、可用性、可控性、不可否認性

加密技術

▧▧ 增強安全性就需要加密

數字簽名

數字證書是由證書認證機構 CA 對證書申請者真實身份驗證之後,用 CA 的根證書對申請人的一些基本資訊以及申請人的公鑰進行簽名後形成的一個數字檔案

CA 證書機構

https

在進行 HTTPS 請求時,客戶端會在 TLS 握手過程中獲取伺服器的公鑰和數字證書。TLS(Transport Layer Security)是一種用於保護通訊安全的協議,它在建立安全連線時使用了公鑰加密技術。TLS 握手包括以下步驟:

  • 客戶端傳送 ClientHello 訊息:客戶端向伺服器傳送一個包含支援的 TLS 版本、加密演算法和其他相關資訊的 ClientHello 訊息。

  • 伺服器傳送 ServerHello 訊息:伺服器從客戶端的支援列表中選擇一個 TLS 版本、加密演算法等,並將其作為 ServerHello 訊息的一部分傳送回客戶端。

  • 伺服器傳送數字證書:伺服器會將其數字證書傳送給客戶端。數字證書中包含了伺服器的公鑰以及其他身份驗證資訊,比如伺服器的域名等。

  • 驗證數字證書:客戶端會驗證伺服器傳送的數字證書,確保其合法性。這個過程包括檢查數字證書的簽發者、有效期、域名等資訊,並驗證證書鏈的完整性。

  • 生成對稱金鑰:客戶端會生成一個對稱金鑰,並使用伺服器的公鑰加密後傳送給伺服器,以便伺服器之後能夠使用私鑰解密。

  • 握手完成:TLS 握手完成後,客戶端和伺服器就可以使用對稱金鑰進行加密通訊了。

因此,在握手過程中的第三步,客戶端會收到伺服器的數字證書,從而獲取到伺服器的公鑰。

  1. 計算機網路上通訊的四種威脅 截獲 中斷 篡改 偽造

加密技術:

對稱加密:效率高但是金鑰不合適網上傳輸,秘鑰維護麻煩
加密演算法:DES 標準
加密秘鑰
非對稱加密 :加密金鑰和解密秘鑰是不同,分公鑰和私鑰,兩者互不可推
1. 公鑰加密 ,私鑰解密
2. 私鑰加密,公鑰解密

數字簽名:能夠檢查簽名之後內容是否 被更改
CA 證書頒發機構
證書頒發機構作用,為企業和使用者頒發數字證書 確認這些企業和個人身份的真實性
釋出證書吊銷列表
企業和個人信任證書頒發機構

應用層 http imap
SSL SSL 功能標準套接字
運輸層 TCP

傳送方:SSL 接收應用層的資料,對資料進行加密,然後把加了密的資料送往 TCP 套接字
接收方:SSL 從 TCP 套接字讀取資料,解密後把資料交給應用層

SSL 提供以下三個功能

  1. SSL 伺服器鑑別,允許使用者證實伺服器的身份。具有 SSL 功能的瀏覽器維持一個表,上面有一些可信賴的認證中心 CA 和它們的公鑰
  2. 加密的 SSL 會話,客戶和伺服器互動的所有資料都在傳送方加密,在接收方解密 3.SSL 客戶鑑別,允許伺服器證實客戶的身份

HTTP 協議

TLS 證書

ISRG Root X1 是 Let's Encrypt(由 Internet Security Research Group(ISRG)運營)的根證書之一,而 R3 是 Let's Encrypt 簽發的證書中的一箇中間證書。它們都屬於證書的層次結構中的不同層次。 testerhome.com 是一個網站的域名。它使用了由 Let's Encrypt 簽發的證書,在證書鏈中看到 R3 中間證書以及 ISRG Root X1 根證書。

在 HTTPS 連線中,客戶端會接收到伺服器的證書,並驗證它的有效性。這個驗證過程包括檢查證書是否被受信任的 CA 簽發,而這個信任鏈的一部分通常就是根證書 ISRG Root X1

客戶端跟伺服器進行 tcp 握手成功後,客戶端將自己支援的 tsl 協議的版本、壓縮演算法、加密協議等傳送給伺服器,伺服器響應回支援的 Tsl 版本等資料,伺服器傳送數字證書給客戶端,客戶端透過本地信任的 CA 機構的公鑰去解密證書的數字簽名得到摘要,再透過對數字證書進行摘要生成,兩個摘要對比透過後確定證書未被改動,再檢查證書的是否過期/撤銷等問題。數字證書檢查無誤後,隨機生成一個對稱金鑰,並用數字證書的公鑰加密對稱金鑰發給伺服器,伺服器接收到後用私鑰解密資料包獲得客戶端給的加密秘鑰,用客戶端的加密金鑰加密訊息並返回給客戶端,就此兩者 https 握手成功

安全標準:

  1. 成本標準
  2. 時間有效期

金鑰長度決定安全強度,和採用哪種加密關係無關

相關文章