在每個HTTPS連接開始時,客戶端(互聯網用戶的Web瀏覽器)和服務器(託管網站)都必須進行一系列檢查,以便彼此進行身份驗證並確定參數,進行加密的連接。這被稱爲TLS握手,也被稱爲SSL握手。
TLS握手過程主要完成了三件事:
)將服務器認證爲非對稱公鑰/私鑰對的合法所有者。
2)確定將用於連接的TLS版本和密碼套件。
3)交換將用於通信的對稱會話密鑰。
如果簡化公鑰基礎結構(PKI),那麼實際上就是安全密鑰交換。在HTTPS連接期間,實際上是使用對稱會話密鑰(通常是256位高級加密標準(AES)密鑰)完成通信,該會話密鑰是在事物的客戶端生成的。生成對稱密鑰時,雙方都會得到一份副本。他們可以使用它來加密和解密在它們之間傳輸的數據。
TLS .2使用一次握手,可以在客戶端和服務器之間進行多次往返。如圖所示:
TLS握手工作過程:(這些步驟都在很短很短的時間內發生)
)客戶端和服務器相互ping通。
2)服務器出示其SSL / TLS證書。
3)客戶端驗證證書頒發機構(CA)簽名的證書。
4)他們交換一列受支持的密碼套件並達成協議,然後進行密鑰交換。
另一方面,TLS .3將TLS握手改進爲單個往返。如圖所示:
顯然,這減少了連接啓動所花費的時間(毫秒),因此可能並不明顯(除非是大規模的)。TLS .3還允許恢復0-RTT,從而進一步簡化了與啓用TLS .3的網站的後續連接。