如何測試加密用戶端問候通過代理的相容性

密封的網際網路內層信封裝在透明外層信封中,通過獲授權代理閘道前往分散式邊緣伺服器

Encrypted Client Hello(ECH,加密用戶端問候)會保護 TLS ClientHello 中包括 SNI 目標名稱在內的敏感欄位。它改變被動網路觀察者可見的資訊,但不表示所有代理路徑都天然私密、相容或設定正確。

瀏覽器可能從 DNS HTTPS 記錄取得 ECH 設定,也可能只傳送 GREASE 佔位、在設定不符後重試、停用 ECH 回退,或直接重用現有連線。因此,頁面載入成功不能證明 ECH 已被接受。

本文為獲授權設施建立驗收測試,涵蓋 HTTP CONNECT、HTTPS 代理、受管 TLS 檢查與直連控制路徑,不用於繞過組織政策或對代理營運方隱藏流量。

先定義可見性邊界

路由元件可能看見的資訊
本機 DNS 解析器HTTPS 記錄查詢與回傳的 ECH 設定
被動網路路徑目標位址、時間、外層 ClientHello 與公開名稱
明確代理代理驗證與用戶端要求的 CONNECT authority
透明隧道外層 TLS 交握,通常看不到加密內層 ClientHello
獲核准的 TLS 檢查閘道依組織政策終止的流量
目標邊緣內層 ClientHello 與 ECH 是否接受

若用戶端在 CONNECT 要求中傳送主機名稱,ECH 不會向明確代理隱藏該名稱。隱私與相容聲明必須分開測試。評估前先以代理 TLS 檢查稽核確認每個終止點。

建立小型受控矩陣

使用自己控制的目標與 DNS 區域,或供應商支援的測試端點。準備目前 ECH 設定、無 ECH 設定、隔離區中的過期測試設定、只回傳 A/AAAA 而不回傳 HTTPS 記錄的解析路徑,以及直連、HTTP CONNECT、HTTPS 代理與明確獲准的檢查路徑。

保持應用內容、帳號狀態、用戶端版本與地區不變,每次只改一個變數。不要修改第三方 DNS 或正式檢查策略。

先驗證 DNS 責任方

ECH 依賴用戶端取得可用設定,通常來自 DNS HTTPS 服務繫結。記錄解析器類別、回應碼、HTTPS 記錄是否存在、設定識別或雜湊、TTL 與回應年齡。

比較每條路由上用戶端實際看到的答案。代理可能完全不承載 DNS;作業系統、瀏覽器安全 DNS 或 SOCKS 遠端解析模式可能選擇不同解析器。SVCB 與 HTTPS DNS 相容測試可建立記錄發現與別名處理基線。

不要記錄完整瀏覽歷程或客戶主機名稱,應使用自有樣例、匿名路由別名與設定雜湊。

證明「接受」,而非只看見擴充

出現 encrypted_client_hello 擴充不代表 ECH 成功。用戶端即使沒有可用設定,也可能傳送 GREASE 值。證據應區分未嘗試、僅 GREASE、使用預期設定的真實 ECH、服務端接受、驗證過的重試設定、明確失敗,以及未使用 ECH 的回退或重試。

優先使用能明確回報接受狀態的用戶端或服務端診斷。若獲准擷取封包,只把它當輔助證據並縮短保留。不能只憑 HTTP 成功回應推論 ECH 已接受。

隔離代理跳點

依序執行冷啟動測試:獲核准直連控制、HTTP CONNECT、單獨驗證用戶端側 TLS 的 HTTPS 代理,以及適用時的受管檢查路徑。冷測試之間關閉可重用連線池,記錄代理協商、CONNECT 結果、目標 TLS 結果、ECH 狀態、ALPN、位址家族與總耗時。

HTTPS 代理的用戶端到代理 TLS,與 CONNECT 內部目標 TLS 是兩條不同連線。目標 ECH 不負責驗證代理憑證。ALPN 協商稽核可將協定協商失敗與 ECH 失敗分開。

識別重試與回退

設定輪替可能使服務端拒絕舊設定並提供重試資訊,用戶端接著以新傳輸連線再試。這與靜默停用 ECH 後繼續不同。

建議記錄路由別名、用戶端版本、解析器類別、HTTPS 記錄雜湊、ECH 提議類別、接受狀態、重試次數、回退類別、連線/TLS/總耗時與結果類別。以無敏感資訊的要求標記關聯用戶端、代理與目標證據,絕不記錄代理密碼、Cookie、私鑰或原始客戶目標。

代理失敗後用戶端若意外直連,ECH 測試應判定失敗。應把代理繞過稽核套用於每次重試,而非只有第一次要求。

測試冷暖狀態

DNS TTL、ECH 設定快取、TLS 工作階段恢復與連線重用都可能掩蓋變化。至少測試空 DNS/連線狀態的冷程序、TTL 內第二次要求、受控設定輪替後、快取到期後、可進行工作階段恢復的暖要求,以及路由變更後的新連線。

如果要求重用了現有連線,既沒有新 DNS 也沒有新 TLS 交握,就不能把結果歸因於設定輪替。每個樣本都要記錄是否真正建立新傳輸。

驗收門檻

  • 預期 DNS HTTPS 記錄抵達正確用戶端。
  • 能區分真實 ECH 與僅 GREASE。
  • 目標側證據在預期時確認接受。
  • 過期設定依文件執行重試。
  • 沒有未經核准的直連回退。
  • 代理與目標 TLS 故障可分別歸因。
  • 準確描述明確代理可見性。
  • 受管檢查行為符合組織政策。
  • 快取與連線重用不會偽裝成新成功。
  • 日誌只保留別名與雜湊,不含秘密或瀏覽歷程。

疑難排解對照

現象優先檢查
只有一個用戶端缺少 HTTPS 記錄解析器責任方、安全 DNS 政策與快取
有擴充但服務端回報未使用 ECHGREASE、過期設定或不支援套件
直連成功但 CONNECT 失敗代理協定支援、目標可達性與政策
首次交握重試、第二次成功設定輪替與驗證過的重試證據
頁面載入但沒有新 TLS 事件連線重用或工作階段恢復
代理失敗後直連成功繞過或回退政策違規
檢查路徑行為不同檢查相容性與受管用戶端政策

GeoDNS 一致性測試可協助區分地區答案漂移與 ECH 設定問題。

常見問題

ECH 會讓明確代理看不到目標嗎?

不一定。即使後續 TLS ClientHello 的 SNI 受保護,明確代理仍可能從 CONNECT authority 收到目標主機名稱,必須依實際應用到代理協定判斷。

擷取封包看到 ECH 擴充足以證明成功嗎?

不足。它可能只是 GREASE。應確認使用真實設定,並取得用戶端或服務端接受證據。

為隔離 ECH 錯誤可以停用憑證驗證嗎?

不可以。憑證、主機名稱與 ECH 檢查保護不同屬性,應保持驗證開啟並使用受控憑證。

更換代理出口能修復過期 ECH 設定嗎?

只有當路由確實改變解析器或目標邊緣證據時才可能影響結果,且必須解釋原因。隨機輪替不是修復,應直接診斷 DNS、設定年齡與重試。

合規說明

只測試自己擁有或獲授權評估的目標、DNS 區域、用戶端與代理設施。遵守網路政策、隱私義務與供應商條款。不得利用 ECH 測試繞過存取控制、隱藏被禁止活動,或在未獲授權時削弱合規檢查。