DNS over HTTPS

特性

DNS over HTTPS利用HTTP协议的GET命令发出经由JSON等编码的DNS解析请求。较于传统的DNS协议，此处的HTTP协议通信处于具有加密作用的SSL/TLS协议（两者统称作HTTPS）的保护之下。但是，由于其基于HTTPS，而HTTPS本身需要经由多次数据来回传递才能完成协议初始化，其域名解析耗时较原DNS协议会显著增加。
基于HTTPS的DNS是提议的标准，由IETF以RFC 8484（2018年10月）发布。 它使用HTTP / 2和HTTPS，并支持有线格式DNS响应数据，如现有UDP响应中所返回的，在具有MIME类型application / dns-message的HTTPS有效负载中。 如果使用HTTP / 2，服务器也可以使用HTTP / 2服务器推送来发送它预期客户端可能提前发现有用的值。
传统的DNS协议形成于互联网早期，直接基于UDP或TCP协议，且彼时未虑及现代安全性的需要，未利用密码学等手段进行加密或验证。因而，其无法抵御现代互联网常见的DNS投毒污染等攻击手段或监听。虽然后来的DNSSEC方案通过电子签名进行验证，强化了DNS的安全性，并能够抵御DNS投毒污染等篡改通信的手段，但其对于中间网络设备进行的监听仍然没有抵御能力（随后，监听者可以通过获取的通信数据知晓用户访问了哪一域名，而域名往往与具体的网站相关系）。此外，DNSSEC的起效要求现有的大量DNS解析服务的提供商（常为互联网服务提供商或第三方大型互联网机构）对已有的DNS服务器进行大范围修改等问题，其推进进程并不理想。而对于DNS over HTTPS，在正确部署服务端并妥善配置客户端的前提下，互联网服务提供商或其它中间网络设备无法解密（亦即无法获知请求的实际内容）或者篡改已经加密的HTTPS通信，故其能够有效保护互联网用户的安全及隐私；另一方面，其基于已经成熟并已广泛部署的HTTPS协议，客户端进行利用较为方便。

实施方案

DNS over https用于DNS解析器的递归DNS解析。 解析器（DoH客户端）必须能够访问托管查询端点的DoH服务器。基于HTTPS的DNS缺乏操作系统的本机支持。 因此，希望使用它的用户必须安装附加软件。 三种使用场景很常见：
1.在应用程序中使用DoH实现：某些浏览器具有内置的DoH实现，因此可以绕过操作系统的DNS功能来执行查询。 缺点是应用程序可能无法通过错误配置或缺乏对DoH的支持来通知用户是否跳过DoH查询。
2.在本地网络中的名称服务器上安装DoH代理：在此方案中，客户端系统继续使用传统（端口53或853）DNS来查询本地网络中的名称服务器，然后通过到达来通过DoH收集必要的回复 互联网中的DoH服务器。 此方法对最终用户是透明的。
3.在本地系统上安装DoH代理：在此方案中，操作系统配置为查询本地运行的DoH代理。 与前面提到的方法相反，需要在希望使用DoH的每个系统上安装代理，这可能需要在更大的环境中付出很多努力。
4.为操作系统安装DoH解析插件
在所有这些方案中，DoH客户端不直接查询任何权威名称服务器。 相反，客户端依赖于使用传统（端口53或853）查询的DoH服务器来最终到达权威服务器。 因此，DoH不具备端到端加密协议的资格，只有逐跳加密且仅在始终使用DNS over TLS时才有资格。