最近DOH概念有点火,2018年DOH技术正式成为国际标准 (RFC8484),2019年谷歌公共递归8.8.8.8正式宣布支持DOH,随后Firefox、Chrome浏览器等应用程序也提供对DOH的支持,连微软也宣布Win10系统将来会支持DOH。DOH似乎已是大势所趋,锐不可当。国内IT运维人员也都跃跃欲试,希望能够通过这项新的技术来提升DNS服务的安全。但同时大家也比较迷茫,不知道从什么地方入手。今天就给大家介绍一下DOH技术基本原理和应用场景,同时也会对比一下这项技术和国内早已开始使用的HTTPDNS的区别。enjoy:
什么是DOH?
从上图可以看到DOH协议主要是作用于客户端和公共递归服务之间的查询,保证这一段的数据加密传输,从而在一定程度上改善客户端到递归服服务器之间的传输安全问题。
在弹出的页面中往下拉,找到“启动基于HTTPS的DNS”选项。
浏览器内置了Cloudflare和NextDNS的两个服务商的DOH服务器,也支持自定义。这里我们使用默认的Cloudflare。然后使用Firefox访问几个页面,同时抓包测试DNS解析情况。Cloudflare DNS服务器域名是cloudflare-dns.com,查询到对应的服务IP是104.16.248.249和104.16.249.249。
再来看下访问网页的抓包信息:
最后,再说下另外一种常见到的DOT协议(DNS over TLS),它和DOH原理和应用场景类似,都是用来加密DNS流量的,IETF将DOH协议定义为RFC8484,将DOT定义为RFC7858和RFC8310。DOH基于HTTPS协议,默认端口是443,DOT使用TCP作为基本连接协议,并通过TLS加密和身份验证进行分层,默认端口是853。它们功能和应用场景是完全一样的,只是两种不同的标准。安卓系统从9.0以后,开始支持加密DNS,其实就是DOT协议。
如果DNS解析过程未来都使用加密传输协议,那么现在一些常见的DNS安全问题将不复存在,比如域名劫持、TTL时间被篡改、缓存污染等问题,企业业务运行将更加安全稳定。