協議模型:
- 第一步(客戶端/服務器的證書,隨機數,算法,協議交換):
- 客戶端產生隨機數RNC
- 客戶端發送客戶端的證書,協議(SSL/TLS),算法信息,RNC給服務器.
- 服務斷接收到請求,產生服務端的隨機數RNS
- 服務端回覆服務器的證書,協議(SSL/TLS),算法信息,RNS給客戶.
- 第二步(客戶端/服務器向認證機構校驗證書信息):
- 客戶端向第三方/本地信任庫認證接收到的服務器證書信息.
- 服務器斷向第三方/本地信任庫校驗客戶端的證書信息
- 第三步(生成主密鑰 Primary Master Secret):
- 客戶端產生隨機數PMS.
- 客戶端根據協議(SSL/TLS),服務器的證書公鑰生成加密過的PMS.
- 客戶端向服務器發送加密過的PMS.
- 服務器與接收加密過的PMS,並根據服務器的證書私鑰解密出PMS.
- 客戶端與服務端保存公共私鑰(RNC+RNS+PMS)作爲共同的私鑰.
- 第四步(會話密鑰確認):
- 客戶端通過PMS產生會話密鑰.
- 客戶端數據使用會話密鑰加密發送給服務器.
- 服務器使用PMS產生對應的密鑰.
- 服務使用會話密鑰解密接收到的數據.
- 服務器發送確認信息給客戶端.
- 終止握手.
- 第五步(正式會話):
- 客戶端數據使用會話密鑰加密 發送給服務端.
- 服務端接收數據使用相同的會話密鑰解密出數據.
- 服務器使用會話密鑰加密數據發送給客戶端
- 客戶端使用會話密鑰解密出對應數據.
只要這六步中有一步校驗異常,都會重新握手.