小結TSL的協議協議運行機制

握手階段分4次通訊:算法

第一次:ClientHello瀏覽器

客戶端向服務端發出加密通訊的請求,請求裏面包含:服務器

一、加密協議的版本。編碼

二、client生成的隨機數加密

三、支持的加密算法好比:RSA公鑰加密server

四、client支持的壓縮算法hash

第二次:ServerHellocli

服務端向客戶端響應,並返回如下信息:隨機數

一、服務端確認的加密版本,若是服務端支持的TSL加密版本和客戶端不一致, 那麼轉回到不加密的通訊。請求

二、server生成的隨機數。

三、server發給客戶端的證書(證書裏面包含公鑰和數字簽名、加密算法、簽名機構、過時時間)、網址

第三次:

一、客戶端驗證服務端的證書有沒有過時,網址信息是否是客戶端要請求的。瀏覽器從服務器拿到證書。證書上有服務器的公鑰和CA機構打上的數字簽名。拿到證書後「驗證」其數字簽名。具體就是,根據證書上寫的CA簽發機構,在瀏覽器內置的「根證書」裏找到這個機構對應的「公鑰」,用此「公鑰」解開數字簽名,獲得摘要(digest,證書內容的hash值),據此驗證證書的合法性。若是驗證沒有經過,那麼會有顯示的警告。

二、若是用戶確認了或者這些都校驗經過了。那麼客戶端再生成一個隨機數叫作「pre market key」,該隨機數用公鑰加密返回給服務端。

三、編碼改變通知。

第四次:

一、這樣服務端就有了3個隨機數,服務端用這個3個隨機數生成會話密鑰。

二、而後用這個密鑰給內容加密。同時用私鑰給會話密鑰加密,返回給客戶端。

三、發送編碼改變通知,通知客戶端之後就用會話密鑰加密內容。

相關文章
相關標籤/搜索