⑴ ECH(Encrypted Client Hello) 技術簡述
ECH(Encrypted Client Hello)技術是TLS協議的一個擴展,旨在加密TLS連接握手過程中的Client Hello明文信息。以下是對ECH技術的詳細簡述:
一、背景與目的在TLS(傳輸層安全協議)連接建立過程中,Client Hello是客戶端向伺服器發送的第一個消息,其中包含了諸如SNI(伺服器名稱指示)等敏感信息。這些信息通常被網路運營商用於分析用戶的上網行為,並可能被打包售賣給廣告營銷商,從而給用戶帶來不必要的麻煩和騷擾。ECH技術的出現,正是為了加密這些信息,保護用戶的隱私。
二、工作原理ECH技術的工作原理相對簡單,但實現起來卻相當復雜。其核心在於將原Client Hello信息拆分成兩個部分:明文的Client Hello Outer和密文的Client Hello Inner。
facing server在收到Client Hello Outer後,會使用自己的私鑰解密Client Hello Inner,從而獲取到完整的Client Hello信息。然後,facing server會中斷這次TLS握手,並使用解密後的參數(如SNI)嘗試與對應的upstream(上游伺服器,即實際提供服務的web伺服器)進行正常的TLS握手。
三、關鍵組件與流程facing server:一個web伺服器的代理網關,擁有一個或多個IP地址,背後可能託管著數個或數萬個網站。facing server的公鑰由瀏覽器客戶端在DNS解析階段從支持DoH(DNS over HTTPS)的DNS伺服器獲得。
DoH(DNS over HTTPS):一種通過HTTPS協議進行DNS查詢的技術。它允許客戶端在加密的通道上向DNS伺服器發送查詢請求,並接收加密的響應。DoH伺服器支持HTTPS Resource Record,其中包含了facing server的公鑰。
Client Hello Outer與Client Hello Inner的生成與傳輸:
瀏覽器客戶端在發起TLS連接時,首先會生成Client Hello Outer和Client Hello Inner。
Client Hello Outer以明文形式發送給facing server。
Client Hello Inner使用facing server的公鑰進行加密,並發送給facing server。
facing server的解密與重定向:
facing server使用自己的私鑰解密Client Hello Inner,獲取完整的Client Hello信息。
facing server中斷這次TLS握手,並使用解密後的參數(如SNI)嘗試與對應的upstream進行正常的TLS握手。
ECH技術的實現需要同時滿足以下三個條件:
ECH技術通過加密TLS連接握手過程中的Client Hello明文信息,有效保護了用戶的隱私。然而,其實現需要同時滿足多個條件,包括web伺服器套件的支持、啟用DoH協議的DNS伺服器以及支持ECH協議的瀏覽器。隨著技術的不斷發展,ECH技術有望在未來得到更廣泛的應用和推廣。