SSL協議之握手協議

2022-06-27 13:48:09 字數 1985 閱讀 1634

2. 第一步:客戶端向伺服器傳送clienthello

clienthello中涉及到的訊息具體如下:

客戶端版本,按優先順序列出客戶端支援的協議版本,首選客戶端希望支援的最新協議版本。

客戶端隨機數random

會話id(session id)

如果客戶端第一次連線到伺服器,那麼這個欄位就會保持為空。上圖中該字段為空,說明這是第一次連線到伺服器。

加密套件:

客戶端會給伺服器傳送自己已經知道的密碼套件列表,這是由客戶按優先順序排列的,但完全由伺服器來決定傳送與否。tls中使用的密碼套件有一種標準格式。上面的報文中,客戶端傳送了17套加密套件。服務端會從中選出一種來作為雙方共同的加密套件。

壓縮方法:

為了減少頻寬,可以進行壓縮。

擴充套件包:

其他引數(如伺服器名稱,填充,支援的簽名演算法等)可以作為副檔名使用。

這些是客戶端問候的一部分,如果已收到客戶端問候,接下來就是伺服器的確認,伺服器將傳送伺服器問候。

3. 第二步:服務端向客戶端傳送 server hello 訊息,這個訊息會從 client hello 傳過來的  ciphers suites裡確定乙份加密套件,這個套件決定了後續加密和生成摘要時具體使用哪些演算法,另外還會生成乙份隨機數 random2。

serverhello中涉及到的具體引數:

伺服器版本version:伺服器會選擇客戶端支援的最新版本。

伺服器隨機數random:伺服器和客戶端都會生成32位元組的隨機數。用來建立加密金鑰。

加密套件:伺服器會從客戶端傳送的加密套件列表中選出乙個加密套件。

會話id(session id):伺服器將約定的session引數儲存在tls快取中,並生成與其對應的session id。

壓縮演算法:如果支援,伺服器將同意客戶端的首選壓縮方法。

擴充套件包4. 這個階段之後,客戶端服務端知道了下列內容:

ssl版本

金鑰交換、資訊驗證和加密演算法

壓縮方法

有關金鑰生成的兩個隨機數。

5. 第四步:伺服器向客戶端傳送certificate訊息,伺服器將數字證書和到根ca整個鏈發給客戶端,使客戶端能用伺服器證書中的伺服器公鑰認證伺服器。

訊息包含乙個x.509證書,證書中包含公鑰,發給客戶端用來驗證簽名或在金鑰交換的時候給訊息加密。這一步是服務端將自己的證書下發給客戶端,讓客戶端驗證伺服器的身份,客戶端驗證通過後取出證書中的公鑰。

7. 第七步: 伺服器向客戶端傳送server hello done,該訊息表示伺服器已經將所有資訊傳送完畢,接下來等待客戶端的訊息。

8. 第8步: 客戶端向伺服器端傳送client key exchange,change cipher spec,handshake,一共發了3個訊息。其實這一步我不是明白什麼意思

9. 最後一步:伺服器向客戶端傳送server hello done,握手結束

SSL協議之握手協議

一 握手協議 握手協議是客戶機和伺服器用ssl連線通訊時使用的第乙個子協議,握手協議包括客戶機與伺服器之間的一系列訊息。ssl中最複雜的協議就是握手協議。該協議允許伺服器和客戶機相互驗證,協商加密和mac演算法以及保密金鑰,用來保護在ssl記錄中傳送的資料。握手協議是在應用程式的資料傳輸之前使用的。...

SSL握手協議

握手協議執行過程 第一階段 客戶端向服務端發hello資訊,包含協議版本 隨機數 會話id 密碼套件等資訊 服務端向客戶端發hello資訊,包含協議版本 隨機數 會話id 密碼套件等資訊。第二階段 伺服器發證書給客戶端 包含伺服器自身相關證書 數字簽名 引數等。第三階段 客戶端發證書給服務端 包含客...

SSL的握手協議

1.使用者瀏覽器將其ssl版本號 加密設定引數 與session有關的資料以及其它一些必要資訊傳送到伺服器。2.伺服器將其ssl版本號 加密設定引數 與session有關的資料以及其它一些必要資訊傳送給瀏覽器,同時發給瀏覽器的還有伺服器的證書。如果配置伺服器的ssl需要驗證使用者身份,還要發出請求要...