DNS,域名系统,每当我们在互联网上,访问一个网站(比如baidu.com)时,我们的设备会先向DNS服务器请求该网站域名对应的IP地址是什么,然后通过IP地址访问对应的网络资源,比如百度网站CDN的IP地址(陕西西安移动,各个地区,运营商,时间的变化都会导致解析结果不同)是39.156.70.37,这既方便了我们(不用记住那一大串IP地址了)又给了我们一个很大的隐患,那就是–dns请求,默认是明文的,也就是说,在你所接入的互联网接入点的各级路由器上面,均可以通过抓包,来看到你所访问的网站域名,从而监控你的网络活动
下面是实际测试结果
可以看到,此时DNS就处于默认设置状态(即DHCP自动设置DNS),此时我在接入点路由设备安装抓包程序,即可获取用户访问的网站域名信息,从而监控用户访问的内容是否健康,是否合法
尤其是在使用加密代理软件中,目前许多新式加密代理软件采用了V2ray代理工具提供的协议,此类工具上手难度高,部分配置文件过于追求速度,把DNS部分交给本机的DNS来进行解析,随后直接通过所得到的IP来连接代理服务器,或者部分代理服务供应商,为了后续维护方便,直接将域名作为服务器地址,导致被发现,校园网的行为管理程序远高于运营商家用宽带网络
这个信息对于普通人可能没什么威胁(没人因为你访问pornhub.com,或者说看了几个男同GV来找你)但是对于校园网这种高度审查,在主路由均部署了行为管理和流量监控程序(甚至DPI-深度包探测,或者基于机器学习的新型流量探测手段)就很容易被辅导员”查水表“或者被警告
DNS不加密是一个历史遗留问题,目前已经出现了相当多的手段来反制基于DNS抓包的行为监控,我们今天主要说最简单的方法–DoH/DoT
DoH就是DNS over HTTPS,即通过HTTPS协议来传输DNS数据,使用TLS加密信息,即可保证用户信息在终端到DNS服务器这一段路中不被监听,下面是一些提供了加密DNS服务的连接信息
DoT就是DNS over TLS,即使用TLS连接来加密DNS查询数据,同样可以实现DNS加密
但是DoT和DoH还有有一些区别,DoT是通过一个独立端口(853)来进行通讯的,所以部分大学为了更好的“管理学生”,可能会对853端口的TLS连接进行阻断,来阻止加密DNS查询。但是DoH不一样,它使用HTTPS协议,如果不对所有DNS服务器的443端口进行封禁,是很难达到效果的,但是443端口是HTTPS的端口,大面积封禁443会导致互联网访问收到极大影响,所以它们不会这样干
IPv4:223.5.5.5
IPv4:223.6.6.6
IPv6:2400:3200::1
IPV6: 2400:3200:baba::1
DoH:https://223.5.5.5/dns-query
DoH:https://223.6.6.6/dns-query
DoH:https://dns.alidns.com/dns-query
DoT:dns.alidns.com
DoT:223.5.5.5
DoT:223.6.6.6
DoT适合移动端设备使用,在Android设备中添加私密DNS即可正常工作
而DoH对Windows来说十分友好,Windows自带了8.8.8.8,1.1.1.1谷歌和cloudflare的默认DoH配置,剩下的如图手动填写即可
当这一切弄完,我们再访问网站,启动抓包程序,看看结果
可以看到,除了三星默认云服务连接的DNS还在使用明文之外(不然查找手机服务会被破解),剩下的DNS数据已经加密,无法通过抓包获取
当然,监控网站域名的方法有很多,没有DNS还有tls的SNI监控,ESNI会被秒封禁,但是本篇文章主要讨论在校园网这种严格行为管理的环境下如何隐蔽上网行为(毕竟不是每个学校都有钱去搞这些,DNS防护一般就够了,不放心可以再加一个境内的加密代理服务器)