您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關SSL握手具體流程是怎么樣的的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
SSL握手有三個目的:客戶端與服務器需要就一組用于保護數據的算法達成一致、它們需要確立一組由那些算法所使用的加密密鑰、握手還可以選擇對客戶端進行認證。
SSL(Secure Socket Layer)安全套接字協議是運行在應用層和TCP層之間的安全機制。保證上層應用數據傳輸的保密性、完整性以及傳輸雙發身份的合法性。1.傳輸加密性:握手協議定義會話密鑰后,所有傳輸的報文被會話密鑰加密。2.消息的完整性:傳輸的報文中增加MAC(消息認證碼),用于檢測完整性。3.身份驗證:客戶端認證(可選),服務端認證(強制)
SSL協議包括:握手協議(Handshake protocol)、SSLpassword變化協議(SSL change cipher spec protocol)、警報協議(Alert protocol)、記錄協議(Record protocol)。
握手協議是SSL連接通信的第一個子協議也是最復雜的協議。
SSL握手協議
通過握手過程,客戶端與服務端之間協商會話參數(包括相互驗證、協商加密和MAC算法、生成會話密鑰等)。
客戶端-client_hello:1.客戶端可以支持的SSL最高版本號;2.客戶端生成的32字節的隨機數;3.會話標識符ID;4.客戶端可以支持的密碼套件列表;5.客戶端可以支持的壓縮方法列表。
服務端-server_hello:1.SSL版本號,取收到的客戶端SSL版本和服務端支持的最高版本中的較低者;2.服務端生成的32字節的隨機數;3.會話標識符ID;4.從收到的客戶端密碼套件列表中選擇一個密碼套件(包含密鑰交換算法、對稱加密算法、摘要算法);5.從收到的客戶端壓縮方法列表中選擇一種壓縮方法。
服務端-certificate:含有公鑰信息的服務端數字證書或到CA的完整證書鏈。
服務端-server_key_exchange:可選,根據密鑰協商算法而定,如果傳送給客戶端的服務端證書數據不足以按照第一階段選定的密鑰交換算法協商密鑰,該步驟不足密鑰協商元素。
服務端-certificate_request:可選,請求驗證客戶端證書信息,單向數據認證(只認證服務端)無此步驟。
服務端-server_hello_done:通知客戶端版本號和加密套件協商結束。
客戶端-certificate:可選,客戶端數字證書,雙向數據認證中服務端要求驗證客戶端身份合法性。
客戶端-client_key_exchange:客戶端交換密鑰,視密鑰交換算法而定,密鑰協商參數或pre-master key(服務端公鑰加密)。
客戶端-certificate_verify:可選,客戶端將已交互的握手消息、會話密鑰的摘要值用客戶端私鑰加密發送給服務端。
客戶端-change_cipher_spec:改變密碼格式信息,告訴服務端之后的報文消息用會話密鑰加密。
客戶端-finished:向服務端宣布握手協議完成。
服務端-change_cipher_spec:改變密碼格式信息,告訴客戶端之后的報文消息用會話密鑰加密。
服務端-finished:向客戶端宣布握手協議完成。
感謝各位的閱讀!關于“SSL握手具體流程是怎么樣的”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。