網絡基礎(三) — HTTPS

一、概述

HTTP的不足

  1. 通信使用明文(不加密),內容可能會被竊聽。
  2. 不驗證通信方的身份,因此有可能遇到僞裝。
  3. 無法驗證報文的完整性,所以有可能已遭篡改。

下面針對以上3點給出解決方案。

二、解決方案

1. 明文傳輸的問題

問題:

已知 HTTP 的不足,信息在網絡發送過程的任何一個節點都有可能被竊取,導致了信息的不安全。

方案:

爲了解決這個問題,我們可以對發送的信息進行加密處理,從而達到了安全傳輸的目的。(雖然加密後的信息仍可能被竊取,但用戶無法對信息進行解密或解密的難度提升很多)。

加密策略

  1. 通信的加密

HTTP 協議中沒有加密機制,但可以通 過和 SSL (Secure Socket Layer,安全套接層) 或TLS (Transport Layer Security,安全層傳輸協議) 的組合使用,加密 HTTP 的通信內容。

  1. 內容加密

對HTTP報文內容進行加密。如下圖所示:
在這裏插入圖片描述

2. 通信方身份僞裝的問題

問題:

不驗證通信方的身份,存在各種隱患:

  1. 無法確定請求發送 目 的 Web 服務器是 是 實意圖返回 響應的 臺服務器。有可能是已僞裝的 Web 服務器
  2. 無法確定正在通信的對方是否具備訪問權限。
  3. 無法判斷請求來自何方,出自誰手。
  4. 即使是無意義的請求也會照單全收,所以可能存在Dos攻擊。

方案:

查看請求方的證書,證書需要第三方權威機構頒發 (即請求方的身份合法性由頒發證書機構保證)。SSL 提供了證書功能。

3. 報文完整性的問題

問題:

HTTP 協議無法保證接收到的報文就是發送方請求的原始報文,也有可能在發送過程中被第三方劫持篡改過。如下圖所示:
在這裏插入圖片描述

方案:

SSL 提供了摘要功能,可以驗證信息的完整性。

三、HTTPS

HTTPS = HTTP + 加密+認證 + 完整性保護 = HTTP + SSL

由於 SSL 提供了 加密、認證、完整性保護 功能,因此 HTTPS 相當於是 HTTP + SSL

在這裏插入圖片描述

1. HTTPS 進行加密,解密,驗證的流程

在這裏插入圖片描述
共分爲8個步驟:

  1. 客戶端發起HTTPS請求。
  2. 服務端配置證書,證書其實就是一對公鑰和私鑰。
  3. 傳送證書,其實就是將公鑰傳遞給客戶端(證書包含了頒發機構,過期時間等信息)。
  4. 客戶端通過 TLS 對證書進行解析,如果證書沒有問題,就生成一個隨機值 Key,然後用證書(公鑰)對該隨機值進行加密。
  5. 將加密後的隨機值 Key 發送回服務端。
  6. 服務端使用證書(私鑰)對接收到的加密信息進行解密,獲取到客戶端生成的隨機值 Key。
  7. 使用獲取到的隨機值 Key 對發送的數據進行加密,併發送給客戶端。
  8. 客戶端接收到加密信息之後,使用之前證書生成的隨機值Key對加密信息進行解密。

2. SSL 的劣勢

會導致請求和響應變慢。

主要有兩個原因:

  1. 通信慢:除了TCP連接、發送 HTTP 請求、響應HTTP 外,還得進行 SLL通信,流程變多了。
  2. 使用 SSL 會對傳輸的內容進行加密處理,導致 CPU 和 內存消耗增加。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章