TLS連接過程

Https連接過程需要在正式收發(fā)數(shù)據(jù)前建立TLS連接,確保安全性。

TLS建立在TCP之上,建立TLS連接前需要TCP4次握手。然后進(jìn)行TLS連接。在連接中要完成秘鑰交換,交換算法不同,握手過程細(xì)節(jié)也會(huì)不同。

ECDHE握手過程

ECDHE握手過程(圖片來自透視Http協(xié)議課程)

瀏覽器發(fā)送Client Hello消息

  • 客戶端向服務(wù)器打招呼,消息中包含客戶端生成的隨機(jī)數(shù)C,客戶單的TLS版本號(hào),可使用的密碼套件列表及擴(kuò)展列表。
  • 后續(xù)需要對(duì)比TLS版本號(hào),用隨機(jī)數(shù)計(jì)算秘鑰。

服務(wù)器發(fā)送Server Hello消息

  • 服務(wù)器向客戶端打招呼,消息包含服務(wù)器生成的隨機(jī)數(shù)S,確認(rèn)TLS版本號(hào),從客戶端可用密碼套件列表中選用的密碼套件。
  • 還需包含數(shù)字證書,用于驗(yàn)證。
  • 以及秘鑰交換算法的參數(shù)(也就是公鑰),需包含簽名認(rèn)證。
  • 并確認(rèn)已收到了Client Hello信息。

客戶端驗(yàn)證并計(jì)算主密鑰

  • 對(duì)收到的證書和簽名進(jìn)行驗(yàn)證。
  • 驗(yàn)證成功后向服務(wù)器發(fā)送送秘鑰交換算法的參數(shù)。
  • 服務(wù)器接收到客戶端的秘鑰交換算法參數(shù)(也就是私鑰),開始計(jì)算master secret。先生成pre-master,根據(jù)pre-master和兩個(gè)隨機(jī)數(shù)算出master secret(主秘鑰)。
  • 客戶端也進(jìn)行主秘鑰的計(jì)算。之所以稱為主密鑰,是因?yàn)楦鶕?jù)主密鑰可生成多個(gè)會(huì)話秘鑰由于不同的具體加密,如:客戶端發(fā)送用的會(huì)話秘鑰、服務(wù)端用的會(huì)話秘鑰。
  • 目前都是明文通信,所以秘鑰的生成必須很講究,各部計(jì)算都需隨機(jī)性極強(qiáng)的算法,保證安全性。

驗(yàn)證加密通信并驗(yàn)證

至此加密通信所用的秘鑰都已生成,在此之前都是明文發(fā)送??蛻舳送ㄖ?wù)器啟用加密通信并加密發(fā)送之前所發(fā)信息的摘要,服務(wù)器也做一樣的事,用于驗(yàn)證加密通信是否可行。發(fā)送的兩個(gè)消息分別是“Change Cipher Spec”和“Finished”。之后就可使用加密的Http請(qǐng)求和響應(yīng)。

雙向認(rèn)證

上述方式驗(yàn)證了服務(wù)器的安全性,而服務(wù)器驗(yàn)證客戶端可用更多方式,比如賬號(hào)密碼,此時(shí)已經(jīng)達(dá)到了加密通信的標(biāo)準(zhǔn)。

更深層次的客戶端驗(yàn)證,也可Client Hello中出示客戶端證書,用以驗(yàn)證。最終實(shí)現(xiàn)更為安全的雙向驗(yàn)證。比如銀行的U盾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容