DoH 使用https协议来进行DNS查询请求

3 min read

DoH全称为DNS-over-HTTP,顾名思义,其主要的使用是使用https协议来进行DNS查询请求。

正常情况下,DNS的请求过程是通过计算机上的DNS客户端程序来完成DNS的查询请求

默认情况下DNS查询使用的协议是UDP协议,而UDP协议存在安全性上的缺陷,基于UDP协议发起的DNS查询请求有可能会遭到DNS劫持,攻击者会将用户想要访问的域名解析到别的IP地址,或者在用户用浏览器访问网站时,会被插入一些广告。而DoH就是为了解决这个问题而产生的。

DoH 利用HTTP协议的GET命令发出经由JSON等编码的DNS解析请求。请求到达DoH服务器后,由DoH服务器解码HTTPS并发送DNS请求,DNS请求结果返回到DoH服务器上后,再由将其打包成HTTPS返回给客户端,这就保证了客户端发起的dns请求不会被攻击者拿到。

较于传统的DNS协议,此处的HTTP协议通信处于具有加密作用的SSL/TLS协议(两者统称作HTTPS)的保护之下。但是,由于其基于HTTPS,而HTTPS本身需要经由多次数据来回传递才能完成协议初始化,其域名解析耗时较原标准DNS协议会显著增加。