HTTP 三次握手, HTTP 四次揮手

2021-01-01 23.43.29.png
SSL 四次握手
1.客戶端請求建立SSL鏈接,并向服務端發(fā)送一個隨機數(shù)(client random)和客戶端支持的加密方法(比如RSA),此時是明文傳輸?shù)摹?/p>
2.服務端選擇客戶端支持的一種加密算法并生成另一個隨機數(shù)(server random),并將授信的服務端證書和公鑰下發(fā)給客戶端。
3.客戶端收到服務端的回復,會校驗服務端證書的合法性,若合法,則生成一個新的隨機數(shù)premaster secret并通過服務端下發(fā)的公鑰及加密方法進行加密,然后發(fā)送給服務端。
4.服務端收到客戶端的回復,利用已知的加解密方式進行解密,同時利用client random、server random和premater secret通過一定算法生成對稱加密key - session key。
此后,數(shù)據(jù)傳輸即通過對稱加密方式進行加密傳輸。
從以上過程可以看看https實際上是用了對稱加密技術和非對稱加密技術,非對稱加密解密速度慢,但安全性高,用來加密對稱加密的密鑰;而對稱加密雖然安全性低,但解密速度快,可以用于傳輸數(shù)據(jù)的加密。