/ Article / 20浏览

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数据包
服务端通过私钥进行解密

更新于
HTTPS抓包
HTTPS抓包
最近在干嘛(三四月)
最近在干嘛(三四月)
LibreOffice Python Macro 开发
LibreOffice Python Macro 开发
NAS文件备份
NAS文件备份
Ubunut 24 自建幸福工厂服务器
Headscale+Derp异地组网

0

  1. This post has no comment yet

发表回复

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