Https建立過程

HTTPS定義

在HTTP之下增加一個安全層,用於保障HTTP的加密傳輸

HTTPS本質

在客戶端和服務器之間用非對稱加密協商出一套對稱加密密鑰,每次發送信息之前將內容加密,收到之後解密,達到內容的加密傳輸

HTTPS建立連接過程

客戶端建立TLS連接

  • Client Hello,包含:
    • 可選的TLS版本集合
    • 可選的Cipher Suite加密套件集合
    • 客戶端隨機數
  • Server Hello,包含:
    • TLS版本
    • Cipher Suite加密套件
    • 服務器隨機數

服務器發回證書

  • 證書包含:
    • 服務器公鑰,名字,地區,主機名等
    • 對服務器公鑰的簽名
    • 驗證上面簽名的公鑰,及證書籤發機構的公鑰
    • 簽發機構的公鑰的簽名

客戶端驗證服務器證書

  • 用簽發機構的公鑰驗證服務器公鑰簽名
  • 用根證書(在操作系統中)驗證簽發機構的公鑰的簽名
  • 驗證主機名

客戶端和服務器協商對稱密鑰

  • 客戶端用公鑰加密發送Pre-Master-Secret
  • 客戶端和服務器端分別通過客戶端隨機數、服務器隨機數、Pre-Master-Secret各自計算出Master Secret
  • 通過Master Secret算出:
    • 客戶端加密密鑰
    • 服務器端加密密鑰
    • 客戶端MAC Secret
    • 服務器端MAC Secret
  • 客戶端發送通知:將使用加密通信
    • 使用服務器端加密密鑰將以上內容加密發送給服務器端
  • 客戶端發送Finished
  • 服務器發送通知:將使用加密通信
    • 使用客戶端加密密鑰將以上內容發送給客戶端
  • 服務器發送Finished

使用對稱密鑰開始通信

  • 客戶端使用服務器密鑰加密數據,服務器使用客戶端密鑰加密數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章