跳至主要内容

[IS] SSL, TLS 和 HTTPS

參考資料

TL;DR

  • 公鑰和私鑰是一對的,被公鑰加密的內容,只能透過該把私鑰解密
  • 憑證(certificate)的目的是在證明「這把公鑰真的是這個伺服器的」,避免有人偽裝該伺服器來騙取你的鑰匙

流程

  1. server 上有公鑰和私鑰,這副鑰匙是一對的,用來進行「非對稱加密

    • 以此公鑰加密之後,只能透過對應的私鑰進行解密

    • server 向 client 提供「公鑰」

  2. client 有用來做「對稱加密」的鑰匙

    • client 將這把鑰匙以 server 提供的公鑰進行加密
  3. server 收到透過公鑰加密過的「由 client 提供的密鑰」後,

    • 以 server 自己的私鑰解密

    • 解密後可以取得 client 提供的密鑰

  4. 後續 server 和 client 溝通時,都會透過由 client 提供的這把密鑰來進行「對稱式的加解密」

HTTPs illustrated

圖片來源:SSL, TLS, HTTPS Explained @ ByteByteGo

參考