Intro
DNS劫持、污染在国内相当常见。除了用来屏蔽一些国外的网站,最常见的是劫持百度统计的域名。因为国内大多数网站都使用百度统计,而使用百度统计需要从百度的网站加载一段JavaScript。部分运营商通过DNS劫持,重定向该请求到自己的服务器,并返回一段包含有广告代码的JavaScript,用于弹窗、推广等广告活动。印象最深的是前几年某银行的行长在使用自家的App时弹出了一段红包广告,因此暴怒。而我个人则是因为有次被劫持了live.com,而心有余悸。
所以我一直使用USTC的DNS进行域名解析,虽然无法防止记录和中间人工具,但大多数常用网站的解析结果还算权威。然而,最近半年发现USTC的DNS也被污染了:
C:\Users λ Resolve-DnsName -Server 202.141.162.123 www.google.com Name Type TTL Section IPAddress ---- ---- --- ------- --------- www.google.com A 157 Answer 74.86.228.110 C:\Users λ Resolve-DnsName -Server 202.141.178.13 www.google.com Name Type TTL Section IPAddress ---- ---- --- ------- --------- www.google.com A 154 Answer 74.86.228.110
于是转向DNSCrypt,DNSCrypt是一种加密DNS请求的网络协议,可以有效的阻止重放攻击、观察攻击、时序攻击、中间人攻击和解析伪造攻击。DNSCrypt相关的技术包括: