DNS污染? 如何保护隐私安全
DNS污染是指一些刻意制造或无意中制造出来的域名服务器分组,把域名指往不正确的IP地址。
原理解析
我们假设A为用户端也就是你的电脑设备,B为DNS服务器,C为A到B链路中一个节点的网络设备(路由器、交换机、网关等)。然后我们模拟一次被污染的DNS请求过程。A访问一个网站,比如 google.com ,然后,A向B通过UDP方式发送查询请求,比如查询内容 A google.com ,这个数据库在前往B的时候要经过数个节点网络设备比如C,然后继续前往DNS服务器B。然而在这个传输过程中,C针对这个数据包进行特征分析,(DNS端口为53,进行特定端口监视扫描,对UDP明文传输的DNS查询请求进行特征和关键词匹配分析,比如“google.com”是关键词,也或者是“A记录”),从而立刻返回一个错误的解析结果(比如返回了 A 233.233.233.233 )。众所周知,作为链路上的一个节点,网络设备C 必定比真正的 DNS服务器B 更快的返回结果到 用户电脑A,而目前的DNS解析机制策略有一个重要的原则,就是只认第一。因此 节点网络设备C所返回的查询结果就被 用户电脑A当作了最终结果,于是用户电脑A因为获得了错误的IP,导致无法正常访问 google.com 。
解决办法
修改hosts文件,操作系统中Hosts文件的权限优先级高于DNS服务器,操作系统在访问某个域名时,会先检测HOSTS文件,然后再查询DNS服务器。可以在hosts添加受到污染的DNS地址来解决DNS污染和DNS劫持。通过一些软件编程处理,可以直接忽略返回结果是虚假IP地址的数据包,直接解决DNS污染的问题。使用DNS加密软件,目前主流的是DoH,是一种通过HTTPS协议传输DNS查询的方法,它利用了HTTPS协议天然的加密特性来保障数据传输的隐私性与安全性。DoH复用了HTTPS协议,使得DNS查询与普通的web流量是混合在一起的。DoH与HTTPS共用443端口,从而更难被中间人识别攻击。
现在,国内已经有了比较成熟的DoH供应商,比如阿里云、腾讯的DNS Pro等等。国际上也有Cloudflare、谷歌等DoH供应商。对于被DNS污染的网站站长来说,最有效的方法就是 换域名或者IP 了。