clientHello谬泌,客戶端向服務(wù)端發(fā)送 version,client random忆嗜,sessionID凄贩,cipher suites(客戶端支持的密碼套件組成的列表),compression(客戶端支持的壓縮方法)苟鸯,extensions
serverhello 服務(wù)端選擇的參數(shù)傳遞給客戶端
certificate 服務(wù)端發(fā)送證書 (網(wǎng)站信息[信息 + 摘要 + 散列算法+ 公鑰] + 數(shù)字簽名) 給客戶端同蜻,服務(wù)端需要保證它發(fā)送的證書與選擇的算法套件一致。證書是CA機(jī)構(gòu)通過服務(wù)端提供的信息生成的早处。私鑰只保存在服務(wù)端湾蔓,公鑰可以發(fā)送給所有的客戶端。
serverkeyexchange 服務(wù)端向客戶端發(fā)送 server random
serverhellodone 服務(wù)端將握手消息發(fā)送完畢砌梆,等待客戶端發(fā)送消息默责。
clientkeyexchange 客戶端向服務(wù)端發(fā)送使用服務(wù)端公鑰加密的 premaster secret
changeciperspec 發(fā)送端已取得用以生產(chǎn)連接參數(shù)的足夠信息。
最后咸包,生成共享密鑰傻丝,客戶端和服務(wù)端均使用client random、server random诉儒、premaster secret使用相同的算法生成相同的共享密鑰
數(shù)字簽名
數(shù)字簽名是一種密碼學(xué)方案葡缰,用于驗(yàn)證一條消息的真實(shí)性。使用私鑰對消息進(jìn)行簽名,并使用對應(yīng)公鑰進(jìn)行驗(yàn)證泛释。驗(yàn)證流程:
- 計(jì)算希望簽名的文檔的散列
- 對結(jié)果散列和一些額外的元數(shù)據(jù)(如使用的散列算法)進(jìn)行編碼
- 使用私鑰加密編碼過的數(shù)據(jù)滤愕,結(jié)果就是簽名,可以追加到文檔中作為身份驗(yàn)證的依據(jù)
- 接收方接收文檔并使用相同的散列算法獨(dú)立計(jì)算文檔散列怜校。使用本地公鑰對消息進(jìn)行解密间影,將散列碼解出來,再確認(rèn)使用的散列算法是否正確茄茁,解密出的散列是否與本地計(jì)算的相同魂贬。這個方案的強(qiáng)度取決于加密、散列以及編碼組件的各自強(qiáng)度裙顽。