ESNI , DoH/DoT, DNSSEC


ESNI
加密 SNI 信息,ClientHello 中添加加密的 server_name,用来加密的密钥来自 DNS 查询:服务器在 DNS 服务上发布密钥(公钥),客户端进行 DNS 查询时像其他信息一样得到这个密钥。// 依赖 DoH
TLS 1.3 的扩展,因为 TLS 1.3 中将服务端发送证书移动到 TLS 握手的加密部分(在开始握手时,客户端附带了公钥)。

// Encrypted Client Hello 替换了 ESNI: https://blog.cloudflare.com/encrypted-client-hello/
对密钥分发进行了改进,使协议对 DNS 缓存不一致的情况更加健壮
ClientHelloOuter(并不用于预期的连接),ClientHelloInner
ECH 还改变了密钥分发和加密故事:支持 ECH 的 TLS 服务器现在通过 HTTPSSVC DNS 记录公布其公钥,而 ESNI 为此使用 TXT 记录
验证 ECH:hosts 添加 1.1.1.1 blog.cloudflare.com ,浏览器访问,正常应该是不能访问的。但可能被运营商劫持了,导致能访问。假如使用了 ECH 以及 DoH ,应该就不能访问了。

DoH/DoT
Traditionally, DNS queries are sent in plaintext. Anyone listening on the Internet can see which websites you are connecting to.
To ensure your DNS queries remain private, you should use a resolver that supports secure DNS transport such as DNS over HTTPS (DoH) or DNS over TLS (DoT).

DNSSEC:
allows a user, application, or recursive resolver to trust that the answer to their DNS query is what the domain owner intends it to be.
和 DoH 的区别是查询路径上也加密,需要权威 DNS 服务器也支持查询加密


EDNS,它本质上是对 DNS 协议进行了扩展,其中一个扩展就是指名请求来源的 IP 地址,而不是使用网络请求的客户端 IP