掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
SSL握手有三個(gè)目的:客戶(hù)端與服務(wù)器需要就一組用于保護(hù)數(shù)據(jù)的算法達(dá)成一致、它們需要確立一組由那些算法所使用的加密密鑰、握手還可以選擇對(duì)客戶(hù)端進(jìn)行認(rèn)證,下面為大家詳細(xì)講解一下SSL握手具體流程。

目前創(chuàng)新互聯(lián)公司已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、瓊中黎族網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
SSL(Secure Socket Layer)安全套接字協(xié)議是運(yùn)行在應(yīng)用層和TCP層之間的安全機(jī)制。保證上層應(yīng)用數(shù)據(jù)傳輸?shù)谋C苄?、完整性以及傳輸雙發(fā)身份的合法性。1.傳輸加密性:握手協(xié)議定義會(huì)話(huà)密鑰后,所有傳輸?shù)膱?bào)文被會(huì)話(huà)密鑰加密。2.消息的完整性:傳輸?shù)膱?bào)文中增加MAC(消息認(rèn)證碼),用于檢測(cè)完整性。3.身份驗(yàn)證:客戶(hù)端認(rèn)證(可選),服務(wù)端認(rèn)證(強(qiáng)制)
SSL協(xié)議包括:握手協(xié)議(Handshake protocol)、SSLpassword變化協(xié)議(SSL change cipher spec protocol)、警報(bào)協(xié)議(Alert protocol)、記錄協(xié)議(Record protocol)。
握手協(xié)議是SSL連接通信的第一個(gè)子協(xié)議也是最復(fù)雜的協(xié)議。
SSL握手協(xié)議
通過(guò)握手過(guò)程,客戶(hù)端與服務(wù)端之間協(xié)商會(huì)話(huà)參數(shù)(包括相互驗(yàn)證、協(xié)商加密和MAC算法、生成會(huì)話(huà)密鑰等)。
客戶(hù)端-client_hello:1.客戶(hù)端可以支持的SSL最高版本號(hào);2.客戶(hù)端生成的32字節(jié)的隨機(jī)數(shù);3.會(huì)話(huà)標(biāo)識(shí)符ID;4.客戶(hù)端可以支持的密碼套件列表;5.客戶(hù)端可以支持的壓縮方法列表。
服務(wù)端-server_hello:1.SSL版本號(hào),取收到的客戶(hù)端SSL版本和服務(wù)端支持的最高版本中的較低者;2.服務(wù)端生成的32字節(jié)的隨機(jī)數(shù);3.會(huì)話(huà)標(biāo)識(shí)符ID;4.從收到的客戶(hù)端密碼套件列表中選擇一個(gè)密碼套件(包含密鑰交換算法、對(duì)稱(chēng)加密算法、摘要算法);5.從收到的客戶(hù)端壓縮方法列表中選擇一種壓縮方法。
服務(wù)端-certificate:含有公鑰信息的服務(wù)端數(shù)字證書(shū)或到CA的完整證書(shū)鏈。
服務(wù)端-server_key_exchange:可選,根據(jù)密鑰協(xié)商算法而定,如果傳送給客戶(hù)端的服務(wù)端證書(shū)數(shù)據(jù)不足以按照第一階段選定的密鑰交換算法協(xié)商密鑰,該步驟不足密鑰協(xié)商元素。
服務(wù)端-certificate_request:可選,請(qǐng)求驗(yàn)證客戶(hù)端證書(shū)信息,單向數(shù)據(jù)認(rèn)證(只認(rèn)證服務(wù)端)無(wú)此步驟。
服務(wù)端-server_hello_done:通知客戶(hù)端版本號(hào)和加密套件協(xié)商結(jié)束。
客戶(hù)端-certificate:可選,客戶(hù)端數(shù)字證書(shū),雙向數(shù)據(jù)認(rèn)證中服務(wù)端要求驗(yàn)證客戶(hù)端身份合法性。
客戶(hù)端-client_key_exchange:客戶(hù)端交換密鑰,視密鑰交換算法而定,密鑰協(xié)商參數(shù)或pre-master key(服務(wù)端公鑰加密)。
客戶(hù)端-certificate_verify:可選,客戶(hù)端將已交互的握手消息、會(huì)話(huà)密鑰的摘要值用客戶(hù)端私鑰加密發(fā)送給服務(wù)端。
客戶(hù)端-change_cipher_spec:改變密碼格式信息,告訴服務(wù)端之后的報(bào)文消息用會(huì)話(huà)密鑰加密。
客戶(hù)端-finished:向服務(wù)端宣布握手協(xié)議完成。
服務(wù)端-change_cipher_spec:改變密碼格式信息,告訴客戶(hù)端之后的報(bào)文消息用會(huì)話(huà)密鑰加密。
服務(wù)端-finished:向客戶(hù)端宣布握手協(xié)議完成。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流