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 的層級結構與憑證驗證如何防止冒充。
運作方式
調整中央主題
按項目或課堂修改中央主題名稱。
擴展分支
編輯概念並加入例子或註解。
連結相關概念
畫出跨分支連結;只有方向重要時先用箭嘴。
常見問題
HTTP 與 HTTPS 有甚麼分別?
HTTPS 就是在一個加密的 TLS 連線裡運行的 HTTP。請求與回應用的完全是同一套協定;改變的是在任何一條 HTTP 訊息送出之前,瀏覽器與伺服器會先完成一次握手,建立起一個加密的工作階段。傳送的一切——URL、標頭、cookie、回應主體——都只有兩端讀得到。
TLS 握手期間發生了甚麼?
瀏覽器送出一個 ClientHello,列出它支援的協定與加密套件;伺服器回覆它的選擇和自己的憑證;瀏覽器對照一家受信任的憑證頒發機構驗證該憑證;然後雙方交換一個秘密,並由它各自推導出相同的工作階段金鑰。此後 HTTP 訊息就以加密形式流動。圖解把這場交換壓縮成上述四個步驟。
瀏覽器為甚麼需要憑證頒發機構?
因為任何一部伺服器都可以聲稱自己是任何一個域名。憑證頒發機構(CA)就是那個第三方:它先驗證域名確實屬於申請人,才在伺服器的憑證上加上簽章。瀏覽器內建了受信任 CA 的公開金鑰,因此可以自行驗證簽章——正是這一點,把一個自說自話的身分變成一個有人擔保的身分。
憑證警告是甚麼意思?
它代表「憑證有效且未過期?」這個決策裡的其中一項檢查失敗了——憑證已過期、涵蓋的是另一個域名、由一家不受信任的 CA 簽發,或者已被撤銷。瀏覽器選擇封鎖連線而不繼續,因為該網站的身分無法驗證。
喺 QueryChart 編輯呢張心智圖
喺可編輯畫布開啟心智圖。移動概念、加入分支同畫連結。