刚才新闻里提到了DNSoverHTTPS的技术。本问答将为读者简要介绍加密DNS协议的发展历程。首先,我们需要了解传统DNS存在的一些问题。DNS的全称是DomainNameSystem。在今天的互联网协议中,它是一个对应域名和IP的系统。通过域名访问一个地址,我们需要通过DNS查询得到该域名的真实IP地址。比如访问我们的网站时,浏览器会向系统指定的DNS服务器发送请求,让DNS服务器返回该域名的真实IP地址。传统的DNS方式是通过53端口向DNS服务器发送明文请求信息,如果ISP有意,很容易劫持用户与DNS服务器之间的这种请求。由于传统的DNS请求是基于无连接的UDP协议,客户端只接受最快到达的查询结果,所以ISP可以通过抢先应答的方式将错误的IP返回给用户。这种做法称为域名劫持,是DNS协议的典型缺陷。通常,ISP在完成ISP的PPPoE认证并连接到Internet后,会提供两个DNS服务器的IP地址。这种类型的服务器称为非权威域名服务器。将缓存的IP信息返回给用户,其中可能存在被恶意篡改的域名-IP对。当所有使用该缓存服务器的用户查询某个特定域名时,都会得到错误的结果,这就是缓存中毒。以上只是DNS协议本身的两个常见设计缺陷。这些缺陷主要存在于安全方面。利用这些漏洞,ISP可以通过域名劫持在网页中插入广告,攻击者可以对用户进行DNS欺骗。用户发送的网络请求被定向到一个虚假的服务器以获取用户数据。DNS协议的另一个缺陷是它以明文形式传输。只要有心人监听你的53端口,就能轻松知道你访问过哪些网站。然而,作为当今互联网的基石之一,DNS协议并不能轻易被新的协议取代。只能通过其他方式在DNS协议之外进行保护,以提高其安全性和隐私性。从这个想法出发,人们提出了几种方案,第一个是1997年提出的DNSSEC。从DNSSEC到DNSoverHTTPSDNSSECDNSSEC已经存在很长时间但还没有完全普及,它在原有的DNS协议中引入了数字签名验证机制。它在DNS请求包的头部加上数字签名,并通过现代数字证书验证系统。保证DNS查询结果的正确性,或者用信息安全的话说,就是保证DNS查询结果的完整性。DNSSEC于1997年提出,发展已经非常成熟,很多公有域名服务器都支持。但是,DNSSEC仅仅解决了DNS协议的安全问题。它不对DNS查询内容进行加密,其他人可以很容易地看到你访问的网站。没有标准化的DNSCrypt,因此新玩家纷纷涌现。DNSCrypt这次登场了。如果名称中包含Crypt,则必须对其进行加密。是的,它对DNS查询过程进行了完全加密,这样查询结果就没有问题,其他人也看不到你的查询。什么域名。但问题是DNSCrypt一直没有标准化,这使得它无法在Internet上广泛使用。DNSoverTLS和DNSoverHTTPS的前两位参赛者并没有完全赢得挑战,所以新的参赛者来到了赛场。这一次,兄弟二人长得很像。DNSoverTLS(DoT)使用TLS协议来确保DNS查询过程的完整性和机密性,而DNSoverHTTPS(DoH)使用HTTPS协议进行通信,比它的老大哥DoT多了一层HTTP协议。DoT标准于2016年正式发布,DoH标准于2018年10月正式编写,但后者的接受度远高于前者。为什么?这仍然是一个兼容性问题。DoH基于HTTP,使用起来比基于裸TLS的DoT要方便得多。与DoT相比,各大系统和浏览器都可以轻松集成DoH。此外,公共DNS非常快速地支持DoH。现在,几乎所有我们能想到的国外DNS都支持DoH,并且有成为旧DNS协议升级版的趋势。目前支持DoH的浏览器和DNS服务器浏览器FirefoxChrome是DoH标准的主要推动者。自然地,Mozila和Google很快在他们的浏览器中添加了对DoH的支持。DoH教程在浏览器中开启,这里不再赘述。公共DNS服务器要使用DoH,肯定需要DNS服务器的支持,但是出于盈利的考虑,国内ISP的DNS短期内肯定不会支持,像大佬这样的DNS服务器也不会短时间内支持一下。很难加上DoH的支持,只能看国外了。1.1.1.1这是全球最大CDN服务商Cloudflare提供的公共DNS,比较好记。8.8.8.8受污染已久的Google公共DNS终于在DoH下可用。结束语DNSoverHTTPS可以说是目前最有希望的DNS协议的继承者,已经得到了各大软件巨头和域名提供商的大力支持。如果您长期饱受DNS污染或欺诈之苦,并且切换到其他公有DNS后效果不明显,您可以尝试使用DNSoverHTTPS以获得更好的上网体验。对于非常注重隐私的用户来说,DNSoverHTTPS是一项不可或缺的技术,可以帮助您更好地保护自己的隐私不被他人窥探。
