HTTPS 如何運作——TLS 握手解說 · 心智圖

HTTPS 如何運作——TLS 握手解說. 可編輯嘅心智圖,以彩色分支、子題目同曲線連結呈現概念。 曲線表示關聯;只有方向重要時先用箭嘴。

HTTPS 就是在一個加密的工作階段裡運行的 HTTP。在任何一個請求出發之前,瀏覽器與伺服器會先完成一次 TLS 握手——協商、驗證伺服器的憑證,並議定一條只有他們兩方共享的工作階段金鑰。

HTTPS 如何運作——TLS 握手解說 · 心智圖

The interactive MindMap canvas for this explanation — every lane, row and arrow above is a real QueryChart diagram you can open and edit.

點樣閱讀呢張心智圖

  • 由中央主題開始,沿住彩色分支探索相關概念。
  • 曲線表示關聯;只有方向重要時先用箭嘴。

Browser hello

呢個分支匯集 “Browser connects to the HTTPS site”, “Browser sends a ClientHello with supported ciphers”.

Server identity

呢個分支匯集 “Server replies with its certificate and a ServerHello”, “Validity also checks the domain name on the certificate matches the site and that the certificate has not expired or been revoked.”, “Browser blocks the connection with a warning”, “Browser checks the certificate signature against the CA”.

Session keys

呢個分支匯集 “Browser sends a pre-master secret encrypted with the server's public key”, “From the pre-master secret, both sides independently compute the same session key. Only this key encrypts the actual data — the certificate's keys are used once.”.

Encrypted traffic

呢個分支匯集 “HTTP messages are encrypted with the session key”, “Browser and server exchange encrypted data”.

跨分支關聯

HTTPS = 在加密的 TLS 工作階段上承載的 HTTP;加密發生在任何一條 HTTP 訊息之前。

信任來自憑證頒發機構,而不是來自伺服器:瀏覽器是對照一家它早已信任的 CA 去判斷伺服器的憑證。

憑證的金鑰只用一次,用來保護金鑰交換;實際的資料由一條全新的工作階段金鑰加密。

憑證無效或不受信任就會令連線中止——HTTPS 選擇失敗關閉,而不是把資料未經加密送出。

HTTPS 所保護的一切,都跑在互聯網那張圖解所描繪的同一個封包交換網絡之上。

Key relationships and takeaways

  • HTTPS = 在加密的 TLS 工作階段上承載的 HTTP;加密發生在任何一條 HTTP 訊息之前。
  • 信任來自憑證頒發機構,而不是來自伺服器:瀏覽器是對照一家它早已信任的 CA 去判斷伺服器的憑證。
  • 憑證的金鑰只用一次,用來保護金鑰交換;實際的資料由一條全新的工作階段金鑰加密。
  • 憑證無效或不受信任就會令連線中止——HTTPS 選擇失敗關閉,而不是把資料未經加密送出。
  • HTTPS 所保護的一切,都跑在互聯網那張圖解所描繪的同一個封包交換網絡之上。

When to use this visual

  • 向團隊解釋那個鎖頭圖示為甚麼會出現,以及一個憑證警告到底代表甚麼。
  • 在工程師著手處理 TLS 問題、過期憑證或混合內容警告之前,先讓他們認識握手。
  • 講解信任模型:CA 的層級結構與憑證驗證如何防止冒充。

運作方式

  1. 調整中央主題

    按項目或課堂修改中央主題名稱。

  2. 擴展分支

    編輯概念並加入例子或註解。

  3. 連結相關概念

    畫出跨分支連結;只有方向重要時先用箭嘴。

常見問題

HTTP 與 HTTPS 有甚麼分別?

HTTPS 就是在一個加密的 TLS 連線裡運行的 HTTP。請求與回應用的完全是同一套協定;改變的是在任何一條 HTTP 訊息送出之前,瀏覽器與伺服器會先完成一次握手,建立起一個加密的工作階段。傳送的一切——URL、標頭、cookie、回應主體——都只有兩端讀得到。

TLS 握手期間發生了甚麼?

瀏覽器送出一個 ClientHello,列出它支援的協定與加密套件;伺服器回覆它的選擇和自己的憑證;瀏覽器對照一家受信任的憑證頒發機構驗證該憑證;然後雙方交換一個秘密,並由它各自推導出相同的工作階段金鑰。此後 HTTP 訊息就以加密形式流動。圖解把這場交換壓縮成上述四個步驟。

瀏覽器為甚麼需要憑證頒發機構?

因為任何一部伺服器都可以聲稱自己是任何一個域名。憑證頒發機構(CA)就是那個第三方:它先驗證域名確實屬於申請人,才在伺服器的憑證上加上簽章。瀏覽器內建了受信任 CA 的公開金鑰,因此可以自行驗證簽章——正是這一點,把一個自說自話的身分變成一個有人擔保的身分。

憑證警告是甚麼意思?

它代表「憑證有效且未過期?」這個決策裡的其中一項檢查失敗了——憑證已過期、涵蓋的是另一個域名、由一家不受信任的 CA 簽發,或者已被撤銷。瀏覽器選擇封鎖連線而不繼續,因為該網站的身分無法驗證。

喺 QueryChart 編輯呢張心智圖

喺可編輯畫布開啟心智圖。移動概念、加入分支同畫連結。

喺 QueryChart 編輯呢張心智圖

心智圖的更多內容