给大家普及一下知识
这里有两个知识点:
1 DoH 就是 DNS over HTTPS , 由于HTTPS只解决了 用户和网站传输数据加密问题,但由于历史原因 DNS 是没有加密都是明文的,DNS就是把域名解析成IP的服务。 由于没有加密 所以很容易就知道你的IP 你要访问的域名是什么,所以就很容易被XXX了。
2 SNI 就是 Server Name Indication , ESNI 就是 Encrypted Server Name Indication 。 SNI 的作用 是 原来因为一个加密HTTPS证书对应一个IP,但如果虚拟主机这种一个IP上有很多域名的站点,HTTPS就无法区分了,所以弄出了一个SNI标识 就是浏览器会带有SNI就是你访问的目标网站地址 这样一个IP上通过SNI就可以区分多个网站达到虚拟主机的目的。 但SNI是未加密的,所以很容易就知道你要访问的网站,就很容易被XXX了。
那么 DoH 就是 DNS over HTTPS, 这样DNS查询是通过HTTPS的就无法知道你要目标网站地址了,ESNI就是加密的SNI也无法知道你访问的地址了。
主要是借助 cloudflare 这层CDN,由于cloudflare 最先和firefox 配合 开启了 DoH 和 ESNI 所以 通过cloudflare 的CDN,用户查询DNS是通过cloudflare的DoH 加密查询的 这样就只能知道用户和 cloudflare的CDN的地址,无法知道用户访问的查询目标地址信息。
同样 firefox 支持ESNI,这样通过支持ESNI的 cloudflare的CDN在访问HTTPS网站后 无法获取到SNI目标网站标识,只能知道 cloudflare的CDN的地址。
就是说使用了firefox 最新版本就能直接访问 使用了cloudflare的CDN加速的网站,因为无法获取到目标地址也无法被XXX了
所以据说要直接墙掉 cloudflare 这个CDN
https://blog.cloudflare.com/zh/esni-zh/https://zhuanlan.zhihu.com/p/47407337