视野之外
[ 返回文章列表 ]
节点与协议
发布日期: 2026-03-23
4 分钟阅读

TLS 握手原理与 SNI 伪装技术:从 ClientHello 到 ECH 加密

深入剖析 TLS 1.3 握手流程、SNI(Server Name Indication)明文暴露机制及 ECH 加密 SNI 在防封锁中的应用。

在现代化代理协议(如 Trojan、VLESS-REALITY、Shadowsocks-2022)中,TLS 协议 是流量伪装的核心基石。墙和深度包检测(DPI)设备之所以能识别未加密的连接,主要利用了 TLS 握手初期明文传输的 SNI(服务器名称指示) 字段。

一、TLS 1.3 握手完整流程

TLS 1.3 将握手轮次由 TLS 1.2 的 2-RTT 缩减为 1-RTT,不仅速度更快,而且加密覆盖面更广:

  1. ClientHello:
    • 客户端向服务器发送支持的 TLS 版本、加密套件列表、Random 随机数,以及 SNI 字段(如 target-website.com)。
  2. ServerHello + Key Exchange:
    • 服务器选择加密套件,返回服务器证书与 Diffie-Hellman 公钥。
  3. 完成握手:
    • 双方生成对称密钥,随后的所有应用层数据(HTTP/2、HTTP/3)全部经过高强度加密。

二、SNI 漏洞与 DPI 的审查原理

虽然 TLS 握手完成后数据是加密的,但在 ClientHello 数据包中,SNI 字段是纯明文传输的:

  • DPI 审查设备只需拦截 ClientHello 报文,读取 SNI 中的域名。如果是受限域名,直接注入 TCP RST 报文阻断连接。
  • REALITY 伪装技术的应对:VLESS-REALITY 协议通过借用真实高权重合规网站(如 apple.com 或 microsoft.com)的 TLS 握手特征与证书,使 DPI 认为你只是在正常访问微软或苹果服务器。

三、ECH(Encrypted Client Hello)前沿技术

为了彻底消除 SNI 明文泄漏,IETF 推出了 ECH(加密客户端宣告) 规范:

  • 客户端在发起 TLS 握手前,先通过 DNS HTTPS 记录获取目标的 ECH 公钥。
  • 客户端将包含真实 SNI 的 ClientHello 进行二次加密,外层仅包裹一个虚假的公共域名(Outer SNI)。
  • 防火墙与中间节点完全无法得知客户端真正想要访问的真实域名,从根本上攻克了 SNI 审查问题。
* 点击复制包含绝对主地址的分享链接
相关研究日志 RECOMMENDED
回首页