ECH Plus

技术原理

EchPlus 的核心技术原理

什么是 ECH?

ECH (Encrypted Client Hello) 是 TLS 1.3 的扩展协议,用于加密 TLS 握手过程中的 ClientHello 消息,特别是 SNI (Server Name Indication) 字段。

传统 TLS 的问题

在传统 TLS 握手中,SNI 字段以明文传输,这意味着:

客户端 → 服务器: ClientHello (SNI: example.com) [明文]

中间人可以看到你正在访问哪个网站,即使后续通信是加密的。

ECH 的解决方案

ECH 通过以下方式解决这个问题:

1. 客户端通过 DNS HTTPS 记录获取 ECH 配置
2. 使用 ECH 公钥加密 ClientHello 中的敏感信息
3. 中间人只能看到外层的 SNI (通常是 CDN 域名)

EchPlus 工作原理

架构概览

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   应用程序   │────▶│  EchPlus    │────▶│   服务端    │────▶ 目标网站
│  (浏览器等)  │     │   客户端    │     │  (WebSocket) │
└─────────────┘     └─────────────┘     └─────────────┘
     SOCKS5/HTTP         ECH + WSS           TCP

连接流程

  1. 本地代理监听

    • 客户端在本地启动 SOCKS5/HTTP 代理服务
    • 应用程序将流量发送到本地代理
  2. ECH 配置获取

    • 通过 DoH (DNS over HTTPS) 查询 HTTPS 记录
    • 获取 ECH 配置参数 (公钥等)
  3. 建立安全连接

    • 使用 ECH 加密 TLS ClientHello
    • 通过 WebSocket 连接到服务端
    • 外层 SNI 显示为普通 CDN 域名
  4. 数据转发

    • 服务端接收请求后连接目标服务器
    • 双向转发数据

分流模式

EchPlus 支持三种分流模式:

模式说明
global全局代理,所有流量通过代理
bypass_cn跳过中国大陆 IP,国内直连
none直连模式,不使用代理

bypass_cn 模式原理

// 1. 加载中国 IP 段列表
// 2. 对目标地址进行 IP 查询
// 3. 使用二分查找判断是否为中国 IP
// 4. 中国 IP 直连,其他走代理

协议支持

SOCKS5 协议

支持完整的 SOCKS5 协议:

  • CONNECT 命令 (TCP 连接)
  • UDP ASSOCIATE (UDP 转发,用于 DNS 查询)

HTTP 代理

支持标准 HTTP 代理协议:

  • CONNECT 方法 (HTTPS 隧道)
  • GET/POST 等方法 (HTTP 请求转发)

安全特性

  1. ECH 加密 - 隐藏真实访问目标
  2. Token 认证 - 防止未授权访问
  3. TLS 1.3 - 使用最新加密标准
  4. DoH 查询 - DNS 查询也走加密通道

On this page