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 提供對記...