/ Article / 32浏览

ESNI和ECH

引入

在HTTPS通信中,有两个步骤会泄露双方实际的通讯域名

  1. DNS查询时,需要发送实际域名
  2. TLS握手阶段,Client Hello数据包会包含域名

TLS通讯只有在握手阶段会泄露域名,握手完成之后,除了传输层必要数据(IP、端口号、MAC地址)为明文外,其余数据都已加密,中间人截获之后也无法解密

ESNI

ESNI的作用在加密Client Hello中的SNI字段,防止域名被中间人看见,同时也能解决SNI阻断问题
原理:

  1. DNS服务器需要配置一条_esni类型的TXT记录,记录值为服务器公钥
  2. 客户端获取到服务器公钥之后,将SNI字段使用公钥加密后再发送
  3. 服务器收到数据包之后,使用公钥解密获取实际SNI

目前ESNI已被更完善的ECH(Encrypted Client Hello) 代替

ECH

ECH支持加密整个Client Hello数据包。
ECH需要在DNS配置更多信息,公钥、支持的加密算法等
和加密SNI相同,客户端加密Client Hello数据包中需要加密的部分,生成ClientHelloInner数据包
服务端通过私钥进行解密

更新于
路由器中使用Redir-Host和TPoxy代替Fake-ip和TUN
路由器中使用Redir-Host和TPoxy代替Fake-ip和TUN
DNS分流设置,AdGuardHome、Dnsmasq、ChinaDNS-NG
DNS分流设置,AdGuardHome、Dnsmasq、ChinaDNS-NG
Tailscale subnet 中的设备单独加入 tailnet 之后,该设备无法通过原局域网 IP 访问
Tailscale subnet 中的设备单独加入 tailnet 之后,该设备无法通过原局域网 IP 访问
HTTPS抓包
HTTPS抓包
最近在干嘛(三四月)
最近在干嘛(三四月)
LibreOffice Python Macro 开发
LibreOffice Python Macro 开发

0

  1. This post has no comment yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注