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 ,应该就不能访问了。
// Firefox 118 支持:https://support.mozilla.org/en-US/kb/understand-encrypted-client-hello
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