圖解https傳輸過程及其原理
1.基礎知識
-
SSL:一般情況下,網站使用的都是明文方式傳輸資料,但是在涉及到一些隱私資訊時(如銀行交易),這個時候網站就會跳轉到 SSL,SSl的功能就是提供加密資料。這樣的話,TCP/IP協議只要做好的自己的事情,資料加密就全權委託給SSL協議完成
-
TLS:TLS是對SSL的擴充套件和優化,他可以提供資料安全的同時,確保資料的完整性
-
HTTPS:超文字傳輸安全協議。 就是http+ssl/tls ,可以理解為安全版http
-
對稱加密:對稱加密又叫做私鑰加密,即資訊的傳送方和接收方使用 同一個金鑰去加密和解密 資料
-
非對稱加密:使用一對金鑰,即公鑰和私鑰,且二者成對出現。私鑰被自己儲存,不能對外洩露。公鑰指的是公共的金鑰,任何人都可以獲得該金鑰。 用公鑰或私鑰中的任何一個進行加密,用另一個進行解密 。
-
證書認證:個人生成的公鑰和私鑰是不被信任的,只有經過CA認證後後才會被認為是可信任的金鑰。目前大多瀏覽器都內建了國際知名CA的根證書中心,如果我們的金鑰被CA中心簽名過,那麼就是合法的數字證書。但其CA驗證金鑰過程複雜,所以很多人使用自簽名的數字證書
小結:很明顯非對稱加密安全是很高的,因為拿到其中一把鑰匙無法推算出另一把鑰匙,即使有人攔截了加密後的資訊,是不可能解密的,甚至就是說加密者自己也無法解密,因為別人沒有金鑰,而加密者自己也僅僅擁有公鑰, 非對稱加密使用的是公鑰加密和私鑰解密機制
2.圖解https傳輸過程

網路來源.png
一步一步來:
1)客戶端發起https請求,連線到服務端的443埠
2)服務端採用的https有一套數字證書,這個證書可以自己配置,也可以像證書管理組織申請,證書的本質是公鑰(發給任何人)和私鑰(腹服務端保留)
3)服務端將公鑰傳送證書傳遞給客戶端,證書中包含了很多資訊,比如證書的頒發機構,過期時間,網址,公鑰等
4)客戶端解析證書,由客戶端的TLS完成,首先會驗證公鑰是否有效,比如頒發機構,過期時間等。如果有異常,就會彈出警告資訊。(這個我們上網應該遇到過,一般都是提示說該網站的證書不可信任,是否繼續啥的balabala,具體的記不清了)。 證書沒問題後會隨機生成隨機值(這個很重要,用於對稱加密) ,然後使用第三步中的證書 對這個隨機值 進行 非對稱加密
5)將證書非對稱加密後的隨機值傳到伺服器
6)伺服器 使用私鑰對其進行非對稱解密 後,得到客戶端的隨機值,然後 把內容通過該隨機值進行對稱加密
7)服務端將對稱加密後的資訊發給客戶端
8)客戶端用之前的生成的隨機值來進行對稱解密,獲取內容明文
總結:在傳輸過程中,發起了兩次請求,用到了對稱加密和非對稱加密