雙向SSL握手過程

2021-05-02 16:05:53 字數 2290 閱讀 8160

1.ssl

客戶端通過

client hello

訊息將它支援的

ssl

版本、加密演算法、金鑰交換演算法、

mac

演算法等資訊傳送給

ssl

伺服器。如果是新建

ssl連線

,提交的訊息中

ssl session id為空

,sesson

id length 為0

。 2.ssl

伺服器確定本次通訊採用的

ssl

版本和加密套件,並通過

server hello

訊息通知給

ssl

客戶端。

ssl

伺服器會為本次會話

分配新的

session id

,並通過

serverhello

訊息傳送給

ssl

客戶端。 3.

ssl

伺服器將攜帶自己公鑰資訊的數字證書通過

certificate

訊息傳送給

ssl客戶端。 4.

ssl

伺服器傳送

certificate request

訊息,請求

ssl

客戶端將其證書傳送給

ssl

伺服器。 5.

ssl

伺服器傳送

server hello done

訊息,通知

ssl

客戶端版本和加密套件協商結束,開始進行金鑰交換。 6.

ssl

客戶端通過

certificate

訊息將攜帶自己公鑰的證書傳送給

ssl

伺服器。

ssl

伺服器驗證該證書的合法性。 7.

ssl

客戶端驗證

ssl

伺服器的證書合法後,利用證書中的公鑰加密

ssl

客戶端隨機生成的

premaster secret

,並通過

client key exchange

訊息傳送給

ssl

伺服器。

8. ssl

客戶端計算已互動的握手訊息、主金鑰的

hash

值,利用自己的私鑰對其進行加密,並通過

certificate verify

訊息傳送給

ssl

伺服器。

9. ssl

客戶端傳送

change cipher spec

訊息,通知

ssl

伺服器後續報文將採用協商好的金鑰和加密套件進行加密和

mac

計算。

10 .ssl

客戶端計算已互動的握手訊息(除

change cipher spec

訊息外所有已互動的訊息)的

hash

值,利用協商好的金鑰和加密套件處理

hash

值(計算並新增

mac

值、加密等),並通過

finished

訊息傳送給

ssl

伺服器。

ssl伺服器利用同樣的方法計算已互動的握手訊息的

hash

值,並與

finished

訊息的解密結果比較,如果二者相同,且

mac

值驗證成功,則證明金鑰和加密套件協商成功。

11.同樣地,

ssl

伺服器傳送

change cipher spec

訊息,通知

ssl

客戶端後續報文將採用協商好的金鑰和加密套件進行加密和

mac

計算。

12. ssl

伺服器計算已互動的握手訊息的

hash

值,利用協商好的金鑰和加密套件處理

hash

值(計算並新增

mac

值、加密等),並通過

finished

訊息傳送給

ssl

客戶端。

ssl

客戶端利用同樣的方法計算已互動的握手訊息的

hash

值,並與

finished

訊息的解密結果比較,如果二者相同,且

mac

值驗證成功,則證明金鑰和加密套件協商成功。

SSL 握手過程

出處 一 ssl握手有三個目的 1.客戶端與伺服器需要就一組用於 保護資料的演算法達成一致 2.它們需要確立一組由那些演算法所使用的 加密金鑰 3.握手還可以選擇 對客戶端進行認證。三 ssl記錄協議 3.1 記錄頭訊息 記錄頭資訊的工作就是為接收實現 receiving implementatio...

SSL握手過程

一 ssl握手有三個目的 1.客戶端與伺服器需要就一組用於保護資料的演算法達成一致 2.它們需要確立一組由那些演算法所使用的加密金鑰 3.握手還可以選擇對客戶端進行認證。5.客戶端將所有握手訊息的mac值傳送給伺服器 6.伺服器將所有握手訊息的mac值傳送給客戶端。第5與第6步用以防止握手本身遭受篡...

SSL握手過程

一 ssl握手有三個目的 1.客戶端與伺服器需要就一組用於保護資料的演算法達成一致 2.它們需要確立一組由那些演算法所使用的加密金鑰 3.握手還可以選擇對客戶端進行認證。三 ssl記錄協議 3.1 記錄頭訊息 記錄頭資訊的工作就是為接收實現 receiving implementation 提供對記...