TLS協議握手過程簡介

TLS協議四次通訊過程:
 
對於上圖可分爲4步:
1.客戶端發出請求(ClientHello)
首先,客戶端先向服務器發出加密通訊請求,在這一過程當中 客戶端須要向服務器提供如下信息:
1)支持的協議版本 TLS 1.0 2.0
2)一個客戶端生成的隨機數,用於一會生成「對話密鑰」
3)支持的加密方法。例如:RSA公鑰加密
4)支持的壓縮方法
這裏須要知道客戶端發送的信息中不包括服務器域名
 
2.服務器迴應(ServerHello)
服務器收到客戶端請求後,向客戶端發出迴應,服務器的迴應內容以下
1)肯定使用的加密通訊協議版本 TLS1.0 若是與以前的版本不一致,服務器關閉加密通訊
2)一個服務器生成的隨機數,用於一會的「對話密鑰」
3)肯定使用的加密方法,例如:RSA公鑰加密
4)服務器證書
除此以外,服務器還會須要肯定客戶端的身份,就會包含一份請求(要求客戶端提供客戶端證書)
 
3.客戶端迴應
客戶端收到服務器的證書後,會先去檢測收到的服務器證書,是否是可信任的證書。若是證書過時,或者是不可信任的機構頒佈,就會向訪問者顯示一個警告,告訴其是否須要繼續通訊
若是證書沒有問題,客戶端就是從證書總提取服務器的公鑰,以後想服務器迴應如下消息:
1)一個隨機數,該隨機數用於服務器公鑰加密
2)編碼改變通知
3)客戶端結束握手通知,而且會發送一個Hash值,用來驗證以前發送的信息正確性
至此,一共出現了三個隨機數:1-3步驟中都會生成隨機數(pre-master key),有個這三個隨機數後,客戶端和服務器都會同時有三個隨機數,接着雙方就用商定的加密方法,各自生成本次會話所用的同一把「會話密鑰」
 
 
4.服務器的迴應
服務器收到客戶端的第三個隨機數後,計算出本次會話所用的會話密鑰。以後想客戶端發出如下信息:
1)編碼改變通知,表示雙方的信息都是用商定後的加密方法發送
2)服務器握手結束通知,表示服務器的握手截斷結束,一樣會發送一段HASH給客戶端用來校驗。
 
轉載至阮老師的帖子:
相關文章
相關標籤/搜索