前面我們在分析瀏覽器訪問乙個頁面步驟的時候涉及了http請求響應過程。
而http是明文傳輸的,這就意味著介於傳送端和接收端之間的任意節點都可以知道傳輸的內容是什麼,這些節點可以是路由器、**等。
因此,https出現了,其是以安全為目標的http通道,全稱是hyper text transfer protocal over secure socket layer,即在http之下加入了ssl(安全套套接層),用於安全的http資料傳輸。
tls(傳輸層安全)跟ssl(安全套接字)可以理解成類似的東西,可以將ssl理解成負責對http的資料進行加密的加密套件,而tls是ssl的公升級版/繼任者。
在通過對https的建立過程(ssl建立安全會話的過程)進行了解學習後,對客戶端、伺服器、ca三方在這個過程中的互動做了乙個簡單的圖。因為涉及的東西較多,下面只對建立過程進行乙個整體認識。
其實客戶端生成隨機數密碼(對稱金鑰/協商金鑰)依賴於隨機數random_c、隨機數random_s、隨機數pre-master。
此外,伺服器還有乙個對對稱金鑰的驗證過程。
根據進一步學習了解,繪製了個比前面「乙個圖」複雜但是更準確點的「另乙個圖」。
伺服器和客戶端的驗證過程其實就是使用hash演算法計算握手資訊,並使用對稱金鑰解密對方發過來的資訊,對兩者進行比較,如果一致則說明己方的對稱金鑰跟對方是一致的,即正確的。
(這裡的握手資訊指的是雙方的通訊資訊/引數,是雙方都存有的資料。)
一開始客戶端和伺服器協商的加密演算法其實是乙個加密套件,其中包括了認證演算法 au (身份驗證)、金鑰交換演算法 keyexchange(金鑰協商)、對稱加密演算法 enc (資訊加密)和資訊摘要 mac(完整性校驗)。
參考:
HTTPS請求的建立過程
伺服器證書 向ca機構申請的證書,儲存在伺服器中,當瀏覽器發起請求時,會把伺服器證書傳送給瀏覽器 伺服器證書包含以下資訊 持有者姓名 發證機關 issuer 有效日期 證書持有人的公鑰 擴充套件資訊 數字簽名 用發證機關的私鑰對前五點資訊簽名 ca根證書 瀏覽器中內建了主流ca機構的根證書,根證書中...
https建立連線過程
既然要公升級為https協議,那就很有必要知道https的原理是什麼,https是怎麼保證資訊只有通訊雙方能解析而不被第三方截獲導致資訊被竊取 篡改。2.1 原理圖 下面是一張https建立連線的原理圖,下面會對每一步進行說明。https建立連線 2.2 https建立連線過程 2.2.1 客戶端訪...
HTTPS建立鏈結過程
第一階段 客戶端向服務端傳送加密通訊請求並攜帶 1.客戶端支援 ssl tls 版本 2.客戶端產生的隨機數,用於生成最後的會話秘鑰。3.客戶端支援的密碼套件 版本和密碼套件由伺服器進行選擇 第二階段 伺服器在收到客戶端發來的請求後,選擇上述版本和密碼套件後,同樣生成乙個隨機數,並攜帶伺服器的數字證...