保卫网络隐私的“底裤”:DNS劫持与简单应对

本文计划同步发送在微信公众平台上,标题为《拿什么来保卫网络隐私的底裤:DNS劫持与应对》。

写下本文的起因在于上周末笔者本人的经历。在调试服务的时候,笔者突然发现与服务器的连接经常自动断开,甚至死活连不上。排除了服务器端的问题后,经测试,最终发现问题出在学校网络的DNS解析上。通过nslookup查得DNS间歇将我的域名解析到了其他IP地址上,且手动指定阿里巴巴和腾讯DNS无效,初步判定遭到DNS污染。

凡是上网,必然要用到DNS查询,所有访问的域名均要被发送给DNS服务器以获得其指向的地址,你访问了什么小网站,你的房东、老板、学校机房等等通过劫持你的DNS查询数据都可能知道。虽然迟早会被看光,但至少得让房东、老板这种小杂鱼偷看起来没那么容易。

太长不看——结论部分

目前DNS加密是应对DNS污染的主要应对措施(另一种是DNS代理)。对于不同的操作系统,有不同的应对方式,这里先写在文章开头,一些解释的部分放在文章后面。国外的DNS服务商的DoH和DoT服务基本无法访问了,所以本文主要推荐使用阿里和腾讯两家的DNS。

iOS系统

下载修改DNS over TLS或者DNS over HTTPS的描述文件,并添加至系统、启用。目前我自己在使用的是阿里DNS的描述文件:

下载地址:https://cdn.jsdelivr.net/gh/paulmillr/encrypted-dns@master/alibaba-https.mobileconfig复制链接并使用iOS的Safari浏览器打开,如果不放心,可以查看源代码之后再信任)

Android

前往:设置→无线和网络→选择指定加密 DNS 服务(或私人 DNS)→填入tls://223.5.5.5https://doh.pub/dns-querytls://dot.pub 经同学测试,直接填入dot.pub即可

Windows 和 macOS

在网络面板设置DNS(可以参考这篇推送)可以防止默认DNS服务器的无心之失,但对于故意的DNS污染则无能为力。

目前,最为便捷的方式是使用Google Chrome浏览器、Firefox浏览器或者新版Edge浏览器,在设置中打开DNS over TLS/HTTPS:

  • Chrome:设置→隐私设置和安全性→高级→打开“使用安全的 DNS ”开关→选择“自定义”→填写tls://223.5.5.5https://doh.pub/dns-querytls://dot.pub
  • Edge:设置→隐私、搜索和服务→打开“使用安全的 DNS 指定如何查找网站的网络地址”开关→选择“自定义”→填写tls://223.5.5.5https://doh.pub/dns-querytls://dot.pub

Adguard Home

感兴趣、有时间的朋友可以使用Adguard Home,净化本机的DNS,并拦截广告。(这也是笔者目前采用的方案)具体步骤如下:

  1. 安装Adguard Home并启用
  2. 登录Adguard Home后台
  3. 前往设置→DNS设置,在上游DNS设置处填写:
    https://dns.alidns.com/dns-query
    tls://dns.alidns.com
    https://dns.pub/dns-query
  4. 在网络面板设置DNS为运行Adguard Home设备的IP地址

Adguard Home在Windows、macOS和Linux操作系统下均有客户端,详细设置步骤务必参考官方中文说明:https://adguard.com/zh_cn/adguard-home/overview.html

下面是一些细节,供有兴趣的朋友阅读。

什么是DNS,它和我的隐私有什么关系?

什么是DNS

通俗来说,DNS的任务就是将域名指向对应的IP地址。传统的DNS解析过程类似于喊话问路——

电脑:“老王(DNS服务器)!www.baidu.com(域名)哪里走” ←DNS请求

三秒(响应时间)后,老王:“www.baidu.com(域名)指向的是111.111.111.111(地址)” ←DNS应答

DNS的易被污染性

在上面的过程中,可能会出现老王不认识路,回答了一个错误的地址的情况。这时候,如果找另外的人(另行设置DNS服务器),则可以解决老王不认路的问题。但是,这种方法对于更加恶劣的应答者并不奏效:假设有一个李田所(污染者,经常是运营商),想要故意误导你的网络流量,李田所可以采取抢答的办法,因为一般情况下李田所离电脑更近,先接到DNS请求并先回答,有时候李田所(污染者)可能直接伪装成老王来回答,于是就会变成下面的情况——

电脑:“老王(DNS服务器)!www.baidu.com(域名)哪里走” ←DNS请求

一秒(响应时间)后,李田所抢答:“www.baidu.com(域名)指向的是111.122.133.144(错误地址)←抢答

三秒(响应时间)后,老王回答:“www.baidu.com(域名)指向的是111.111.111.111(地址)” ←DNS应答(←被计算机废弃、或者被拦截的正确回答)

于是,你的电脑无论如何也找不到正确的地址了。

DNS的易被监控性

和https不同,DNS请求默认是不加密、不验证的,类似于人在山这头喊话,山里的所有人想听都能听见,而且内容是明文,谁都能听得懂。这也导致了你如果用校园网上网,学校网管基本就能知道你在访问什么不良网站。

解决方法

污染种类局部DNS污染全局DNS污染
来源运营商(地区)。。。
应对方式DoH,DoT代理DNS查询流量

目前可行的方法总体的目标是:简单更改DNS(对于DNS污染无效)、改变DNS查询流量明文的特点,通过加密、认证的方式,解决抢答、冒答问题。具体方法包括:利用https协议的DNS over HTTPS(DoH),利用TLS加密协议的DNS over TLS(DoT),通过代理软件查询DNS流量。比较便捷的还是DoH和DoT两种。

DoT使用 TLS 协议来传输 DNS 协议。TLS 协议是目前互联网最常用的安全加密协议之一,我们访问 HTTPS 的安全基础就是基于 TLS 协议的。相比于之前使用无连接无加密的 UDP 模式, TLS 本身已经实现了保密性与完整性。

DoH使用 HTTPS 来传输 DNS 协议。DoH 的安全原理与 DoT 一样,他们之间的区别只在于:DoH有了 HTTP 格式封装,更加通用。

总体来说,通过DoT和DoH,至少在本机和DNS服务商中间环节不太有可能出现DNS劫持等现象了。

Ricky Lee
Ricky Lee

法学民工,铁道爱好者,城市天际线玩家

文章: 20

3 评论

  1. com 20 E2 AD 90 20Viagra 20Vegano 20 20Viagra 20Fiyat viagra vegano Our series reflects the evolution of American culture, said Kantor, and I think minorities and women were marginalized throughout much of the 20th century priligy online It is usually taken along with other medications to allow your new organ to function normally

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注