跳至主要內容
Skip to content

深入淺出 TLS 協定:保護網路通訊的安全鎖

在 HTTP 請求的旅程中,TLS (Transport Layer Security) 扮演著「保險箱」的角色。它確保了資料在傳輸過程中不會被偷看 (加密)、不會被竄改 (完整性),且對方真的是他所宣稱的身分 (身分驗證)。


一、 從 SSL 到 TLS:安全演進史

很多人習慣將 HTTPS 的加密稱為「SSL」,但實際上我們現在使用的是它的繼承者 TLS

協定名稱完整名稱狀態
SSL 2.0/3.0Secure Sockets Layer已廢棄 (不安全)
TLS 1.0/1.1Transport Layer Security已廢棄
TLS 1.2Transport Layer Security 1.2目前主流
TLS 1.3Transport Layer Security 1.3當前最推薦 (更安全、更快速)

二、 TLS 提供三大核心保障

  1. 機密性 (Confidentiality):利用非對稱加密交換金鑰,再利用對稱加密傳輸資料,確保內容只有雙方看得懂。
  2. 完整性 (Integrity):通過 MAC (Message Authentication Code) 或數位簽章,確保資料在搬運過程中沒被動過。
  3. 身分驗證 (Authentication):通過數位憑證 (Digital Certificate),確認你連上的真的是 google.com 而不是駭客。

三、 TLS 1.2 握手流程 (2 RTT)

在 TCP 連線建立後,TLS 1.2 需要經過多個步驟來協商加密方式並交換金鑰:


四、 TLS 1.3 的革命:1 RTT 與 0 RTT

TLS 1.3 大幅精簡了過程,將金鑰交換合併到了 Hello 階段。

  • 1 RTT 握手:資料交換前只需要一次往返,比 TLS 1.2 快上一倍。
  • 0 RTT (Resumption):如果你之前連過這台伺服器,這次甚至可以在握手封包裡就直接帶上加密資料。

> **HTTPS = HTTP over TLS**。並非是一個新的協定,而是 HTTP 的資料先經過 TLS 加密後,再丟給 TCP 去傳輸。


總結

版本握手時間安全性特色
TLS 1.22 RTT支援度最廣,但握手較慢
TLS 1.31 RTT極高移除了不安全算法,速度大幅提升

進階挑戰

  1. 使用瀏覽器開發者工具的 Security 面板,查看當前網頁使用的是 TLS 哪一個版本以及哪種加密套件 (Cipher Suite)。
  2. 思考為什麼我們不全程使用「非對稱加密」來傳輸資料就好?為什麼中間要換成對稱加密?

延伸閱讀與資源