1 . 客戶端的瀏覽器向伺服器傳送客戶端ssl協議的版本號、加密演算法的種類、產生的隨機數以及其他伺服器和客戶端之間通訊所需要的各種資訊
2 . 伺服器向客戶端傳送ssl協議的版本號、加密演算法的種類、產生的隨機數以及其他相關資訊,同時伺服器還向客戶端傳送自己的證書
3 . 客戶利用伺服器傳過來的資訊驗證伺服器的合法性,伺服器的合法性包括:證書是否過期、發行伺服器的ca是否可靠、發行者證書的公鑰能否正確解開伺服器證書的「發行者的數字簽名」、伺服器證書上的網域名稱是否和伺服器實際網域名稱相匹配。如果合法性驗證沒有通過,通訊將斷開,如果驗證通過,將繼續進行下一步
4 . 使用者端隨機產生乙個用於後端通訊的「對稱密碼」,然後用伺服器的公鑰(伺服器的公鑰從伺服器證書中獲得)對其加密,然後將加密後的「預主密碼」傳給伺服器
5 . 如果伺服器要求客戶的身份驗證(在握手過程中可選),使用者可以建立乙個隨機數然後對其進行資料簽名,將這個含有簽名的隨機數和客戶自己的證書以及加密過得「預主密碼」一起發給伺服器
6 . 如果伺服器要求客戶的身份驗證,伺服器必須檢驗客戶證書和簽名隨機數的合法性,具體的合法性驗證包括:客戶的證書使用日期是否有效、為客戶提供證書的ca是否可靠、發行ca的公鑰能否正確解開客戶證書的發行ca的數字簽名、檢查客戶的證書是否在證書廢止列表(crl)中。檢驗如果沒有通過,通訊立刻中斷;如果驗證通過,伺服器將用自己的私鑰解開加密的「預主密碼」,然後執行一系列步驟來產生主通訊密碼(客戶端頁將用同樣的方法產生相同的主通訊密碼)
7 . 伺服器和客戶端用相同的主密碼即「通話密碼」,乙個對稱金鑰用於 ssl 協議的安全資料通訊的加解密通訊。同時在 ssl 通訊過程中還要完成資料通訊的完整性,防止資料通訊中的任何變化
8 . 客戶端向伺服器端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知伺服器客戶端的握手過程結束
9 . 伺服器向客戶端發出資訊,指明後面的資料通訊將使用的步驟⑦中的主密碼為對稱金鑰,同時通知客戶端伺服器端的握手過程結束
10 . ssl 的握手部分結束,ssl 安全通道的資料通訊開始,客戶和伺服器開始使用相同的對稱金鑰進行資料通訊,同時進行通訊完整性的檢驗
單向認證模式與雙向認證模式的區別,就在於第⑤、第⑥步是否要求對客戶的身份認證。單向不需要認證,雙向需要認證。
HTTPS和SSL握手過程
https介紹 https http 一組對稱 非對稱和基於證書的加密技術 https是最常見的http安全版本。它得到了很廣泛的應用,所有主要的商業瀏覽器和伺服器都提供https。https將http協議與一組強大的對稱 非對稱和基於證書的加密技術結合在一起,使得https不僅很安全,而且很靈活,...
https加密過程(SSL握手)
https在http的基礎上多了ssl加密層。https的加密過程也就是ssl的握手過程。mac金鑰相當於資料校驗,是為了保證資料完整性而存在的。ssl將資料流分割成記錄,每條記錄都會附上乙個mac,然後再對 記錄 mac值 進行加密。比如客戶端要向服務端傳送資料,對於資料的每個記錄,客戶端都會用它...
SSL 握手過程
出處 一 ssl握手有三個目的 1.客戶端與伺服器需要就一組用於 保護資料的演算法達成一致 2.它們需要確立一組由那些演算法所使用的 加密金鑰 3.握手還可以選擇 對客戶端進行認證。三 ssl記錄協議 3.1 記錄頭訊息 記錄頭資訊的工作就是為接收實現 receiving implementatio...