前端基礎整理 -網絡(三)快速瞭解HTTPS

文章首發在個人我的博客:www.brandhuang.com/article/158…web

若是喜歡本文但願能點個贊~瀏覽器

固然能夠關注我來獲取後續文章安全

也能夠關注我我的博客服務器

HTTPS

HTTP 的不足:網站

  • 通訊使用明文(不加密),可能會被竊聽
  • 不驗證通訊身份,所以可能遭假裝
  • 沒法證實報文的完整性,可能遭篡改
通訊加密

HTTP 和 SSL(Secure Socket Layer,安全套接層) 或 TLS(Transport Layer Security,安全傳輸協議)組合使用來加密 HTTP。加密

加密後的內容依然可能被竊聽,只是可能讓人沒法破解報文的實際含義code

HTTP 和 SSL 組合使用就被稱爲HTTPScdn

內容加密

對 HTTP 協議傳輸的內容進行加密,須要客戶端和服務端同時具備加密和解密的能力。與 SSL 或者 TLS整個通訊線路加密不一樣,因此內容任有被篡改的風險。接口

不驗證通訊方身份就可能遭遇假裝

HTTP 通訊時,不存在確認通訊方的步驟,任何人都能發起請求,服務器收到請求後,也都會返回一個響應(僅限於發送端的 IP 地址和端口沒有被 Web 服務器設爲限制訪問)內存

不確認通訊方會存在如下隱患

  • 沒法肯定請求發送至目標的web服務器是不是按真實意圖返回響應的服務器,有多是已假裝的服務器
  • 沒法肯定響應返回的客戶端是不是按真實意圖接收響應的客戶端,有多是已假裝的客戶端
  • 沒法肯定正在通訊的對方是否具有訪問權限。(某些重要信息只想發給特定用戶通訊的權限)
  • 沒法判斷請求來自何方,出自誰手
  • 即便無心義的請求也會所有接收,沒法阻止海量請求下的DoS攻擊(Denial of Service,拒絕服務攻擊)

SSL 不只提供加密處理,還使用了一種叫證書的手段,用於確認通訊方

沒法證實報文的完整性,可能已遭篡改

HTTP 沒法證實通訊報文的完整性,換句話說,沒有辦法確認,發出的請求/響應和接收到請求/響應是相同的

在傳輸途中遭攻擊者攔截並篡改內容的攻擊叫中間人攻擊

經常使用的防篡改方式:

MD5SHA-1等散列值校驗方法,以及用來確認文件的數字簽名方法。

但以上方式仍沒法百分百保證結果正確,由於若是 MD5 、數字簽名等自己被改寫的話,用戶是沒法感知的,因此有必要使用 HTTPS

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

HTTPS 協議並不是一種新協議,只是 HTTP 通訊接口部分用 SSLTLS 協議替代。

一般 HTTP 直接和 TCP 通訊,當使用 SSL 後,則變成先和 SSL 通訊,再由 SSLTCP 通訊。

SSL 採用的是公開密鑰加密的加密處理方式

  • 對稱密鑰加密:加密和解密同用一個密鑰,也稱爲共享密鑰加密
  • 公開密鑰加密:使用一對非對稱密鑰,一把私有密鑰(private key),一把公開密鑰(public key)。公開密鑰隨意發佈,經過本身的私有密鑰進行解密。

HTTPS採用混合加密機制,即公開密鑰和共享密鑰混合加密的機制

因爲公開密鑰加密處理速度比共享密鑰加密

因此要結合二者優點,將多種方式結合起來用於通訊: 在交換密鑰(共享密鑰加密的密鑰)環節使用「公開密鑰加密方式」,以後創建通訊交換報文階段則使用「共享密鑰加密」

證實公開密鑰正確性的證書

因爲「公開密鑰加密」的方式沒法證實公開密鑰自己是真正的公開密鑰,因此採用數字證書認證機構和其相關機構頒發的公開密鑰證書來解決上述問題

數字證書認證機構業務流程:

  1. 服務器運營人員向證書機構申請公開密鑰
  2. 證書機構識別身份後,對申請的公開密鑰作數字簽名
  3. 證書機構分配這個簽名後的公開密鑰,並將其放入公鑰證書
  • 服務器將數字證書認證機構簽發的公鑰證書發送給客戶端
  • 接到證書的客戶端使用認證機構的公開密鑰對公鑰證書進行簽名驗證,若驗證經過,則說明:1. 認證服務器的公開密鑰是真實有效的數字證書認證機構; 2. 服務器的公開密鑰是值得信賴的。

上述的「認證機構的公開密鑰」必須安全的轉交給客戶端,爲了保證安全,一般是瀏覽器廠商發佈版本時,一般會事先內置經常使用認證機構的公開密鑰。

SSL 速度慢嗎?

SSL 速度慢分兩種:通訊慢大量消耗CPU、內存等資源致使處理速度慢(由於SSL須要加密處理,在客戶端和服務器都須要進行)

爲何不一直使用 HTTPS?

既然 HTTPS 那麼安全,爲何全部的 web 網站不一直使用 HTTPS?

  1. 和純文本通訊相比,加密通訊會消耗更多 CPU、內存等資源,會致使計算機處理的請求數量減小
  2. HTTPS 通訊,證書是必不可少的,全部的網站都購買證書並不合算

因此一般只有敏感信息進行 HTTPS 通訊。

本文先整理這麼多吧,反正一次也消化不完。

還也能夠關注我公衆號「九零後重慶崽兒」。

相關文章
相關標籤/搜索