Https 加密過程詳解

一、Https介紹

HTTPS 是 HyperText Transfer Protocol Secure 縮寫,相較於 HTTP,突出了安全!因爲在網絡信息傳輸過程中服務端和客戶端的信息都會被 SSL,TSL 加密,在傳輸的過程中,即便被截取了,別人也不知道你們的會話內容是什麼,只有收發方纔有對應的密鑰去解開,再對內容進行迴應。其中的原理就是:服務端和客戶端都有兩把鑰匙:公鑰和私鑰,公鑰用來加密數據,同時只能用自己的私鑰去解開,這樣及時公鑰被截獲,密文內容也破解不了。

HTTP: 直接通過明文在瀏覽器和服務器之間傳遞信息。
HTTPS: 採用 對稱加密 和 非對稱加密 結合的方式來保護瀏覽器和服務端之間的通信安全。

對稱加密
對稱加密: 加密和解密都是同一個密鑰。

非對稱加密
非對稱加密: 密鑰成對出現,分爲公鑰和私鑰,公鑰和私鑰之間不能互相推導,公鑰加密需要私鑰解密,私鑰加密需要公鑰解密

兩種加密區別
對稱加密速度快,非對稱加密速度慢 (相對慢 100 倍)。
對稱加密相對非對稱加密不安全,只要密鑰暴露和,明文傳遞沒有區別;非對稱加密可以將公鑰暴露,供客戶端加密,服務端使用私鑰解密。


二、Https加密流程

SSL: 在 TCP 協議之上,應用層之下運作,是用來傳輸敏感信息的。使用 SSL 連接的 URL 地址以 https 開頭,而不是 http。

  1. 瀏覽器使用 Https 的 URL 訪問服務器,建立 SSL 鏈接。
  2. 服務器接收到 SSL 鏈接後,發送非對稱加密的公鑰 A 給瀏覽器。
  3. 瀏覽器生成隨機數,作爲對稱加密的密鑰 B
  4. 瀏覽器使用服務器返回的公鑰 A,對自己生成的對稱加密密鑰 B 進行加密,得到密鑰 C
  5. 瀏覽器將密鑰 C 發送給服務器
  6. 服務器使用自己的私鑰 D 對接受的密鑰 C 進行解密,得到對稱加密密鑰 B。
  7. 瀏覽器和服務器之間使用密鑰 B 作爲對稱加密密鑰進行通信。

通過上面的流程瀏覽器和服務器之間共享一個對稱加密密鑰 B,而且不會被人監聽和攔截到,之後的消息傳遞,使用密鑰 B 進行對稱加密。

優點: 非對稱加密只使用了一次,後續所有的通信消息都是用對稱加密,效率比非對稱加密高。


三、數字證書

1.非對稱加密的缺點

當服務器發送公鑰給客戶端, 中間人截獲公鑰 ,將 中間人自己的公鑰 冒充服務器的公鑰發送給客戶端。之後客戶端會用 中間人的的公鑰 來加密自己生成的 對稱密鑰 。然後把加密的密鑰發送給服務器,這時中間人又把密鑰截取,中間人用自己的私鑰把加密的密鑰進行解密,解密後中間人就能獲取 對稱加密的密鑰 。

注意: 非對稱加密之所以不安全,因爲客戶端不知道這把公鑰是不是屬於服務器的。

2.認證中心 (CA)
一個擁有公信力、大家都認可的認證中心,數字證書認證機構。

  • 服務器在給客戶端傳輸公鑰的過程中,會把 公鑰和服務器的個人信 息通過 hash 算法 生成 信息摘要 。
    在這裏插入圖片描述

  • 爲了 防止信息摘要被調換 ,服務器會採用 CA 提供的私鑰 對信息摘要進行加密來形成 數組簽名 。在這裏插入圖片描述

  • 最後會把原來沒 Hash 算法 之前的 個人信息、公鑰及、數字簽名 合併在一起,形成 數字證書。在這裏插入圖片描述

  • 客戶端拿到 數字證書 之後,使用 CA 提供的公鑰 對數字證書裏的數字簽名進行解密來得到信息摘要,然後對數字證書裏服務器的公鑰及個人信息進行 Hash 得到 另一份信息摘要 。

  • 最後將 兩份信息摘要對比, 如果一樣則證明是服務器,否則就是中間人。在這裏插入圖片描述

發佈了165 篇原創文章 · 獲贊 852 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章