众多厂商的介入,已让加密DNS成为行业共识。

编者按:本文来自微信公众号“三易生活”(ID:IT-3eLife),作者 三易菌。

大家平时在上网的时候,可能都有过类似这样的经历。刚刚才在A网站里看过的东西,没过多久就出现在了B网站与C网站的广告推送内容里;明明自己在浏览器的网址栏里输入的是G搜索引擎,结果打开的却是B搜索引擎;又或者是在远程办公及观看网课内容时,网页却突然出现了运营商优惠促销信息的弹窗。

现在的人可能都没见识过这一神奇的景象了

造成以上这些现象的原因其实不止一条,它可能源自某些带有不端行为的“安全软件”(比如我们三易生活报道过的Avast),也可能是你的电脑已经被黑客绑架成为“肉鸡”的征兆。但对于大多数情况而言,造成以上现象的原因是一种名为“DNS劫持”的网络破坏行为。

  • 互联网的基本原理,让DNS劫持猖獗不已

在解释何谓DNS污染之前,大家有必要首先理解一下互联网的一个基本原理,即“网址(也叫域名)”与“IP地址”之间的关系。

打个比方,互联网就好比一个巨大的城市,一个个网站就好比城市里的一栋栋大楼。当我们上网的时候,向浏览器里输入的“网址”其实只不过是大楼的名称,而每一个网址对应的IP地址(比如1.1.1.1这种)才是网站真正的“物理坐标”。

很显然对于用户来说,由文字构成的网址是清楚好记的,而“坐标(IP地址)”则是没几个人能记得住的。而此时就需要一个特别的“中间商”出场了,这就是DNS(Domain Name Server,域名服务器)。

当我们在浏览器里输入网址时,浏览器并不是直接连接到目标网站,而是需要先连接到DNS,由DNS将网址“翻译”成IP地址,然后浏览器才能根据这个IP地址找到正确的网站服务器,从而完成整个网页的下载、渲染和显示过程。

如此一来问题就出现了,对于大部分浏览器和操作系统来说,从浏览器发出网址请求到DNS,中间的这段通信是完全没有加密的明文传输。因此也就意味着对于运营商,甚至有时候是对于某些局域网上级服务器来说,他们很容易就能“窥探”到用户想要访问的是什么网站。

程度轻一点的就偷偷做个记录,从而形成你个人网站访问历史的“大数据”,卖给那些广告服务商;程度重的,就是直接“拦截”掉原本发给DNS的网址信息,然后故意返回错误的、或者是掺杂了“私货”的IP地址信息。这样一来,文章开头的输入A网址却访问到B网页,或是在网页上无端出现和网址内容不相干的弹窗广告的现象,就这样实现了。

  • 火狐打头,苹果大举跟进,加密DNS成为共识

知道了DNS劫持现象的基本原理,对于它的防范手段其实也就呼之欲出了。没错,只要把从本机到DNS之间的信息传输改成高度加密的格式,让中途经过的服务器无法嗅探,劫持自然也就不可能进行。

正因为如此,早在数年前,硅谷的一众技术巨头就开始进行加密DNS通信的技术探索。简单来说,只要消费者使用的浏览器以及远端的DNS服务器两边都能支持加密传输,就可以很简单地做到网址和IP地址信息的密文发送。而随着像Cloudflare DNS与Google DNS这样的知名DNS服务商,在近年来相继宣布了对DNS加密的支持,普通用户也终于迎来了DNS安全传输的时代。

火狐浏览器的DNS加密功能内置了与之配套的DNS服务

最早做出响应的是一向在技术上表现激进的Firefox(火狐)浏览器,早在2019年9月,其就已经宣布将全线支持DNS加密传输技术。通过浏览器内默认打开的DNS加密选项,以及内置支持加密传输的Cloudflare DNS,火狐为用户提供了一个便利的、防止DNS被劫持的手段。

不过火狐虽然“先进”,但它客观上的确没有很高的市场份额,因此这就意味着无论是对于推动加密DNS产业普及,还是对于震慑DNS劫持者来说,光靠他们一家的努力是肯定不够的。好在,作为和Mozilla共同推进DNS加密的“战友”之一,苹果总算在近日出手了,而且阵仗还真不小。

根据此次WWDC上公布的信息显示,iOS 14与macOS Big Sur(也就是macOS 11.0)将会同时加入对DNS加密功能的支持。这种支持并不是简单地增加一个用户可选的功能开关,而是在整个系统层面上引入了各种与DNS加密相关的特性。

首先,新系统将会实现对DNS加密通信的全局支持,这意味着原则上所有的流量默认都会经过加密DNS服务器进行通信,所有通过这一新版系统传出的DNS请求,都可以避免遭到DNS劫持或污染。体现在用户的实际感受上来说,首要的变化就是弹窗广告会有所减少,其次就是部分网站的访问延迟也有望大幅下降。

其次,针对某些不便于启用全局DNS加密通信的用户,苹果也在最新的开发工具中为开发者提供了DNS加密相关的扩展程序和配置文件。如此一来,在将来适配iOS14或者新macOS的软件中,用户也能选择让单个软件(比如浏览器、即时通讯工具、网盘)启用加密DNS功能,从而防止特定的个人信息遭到泄露。

不仅如此,从苹果方面公布的一份系统截图来看,新的iOS系统甚至会自动检测加密DNS服务器的可用性。如果用户当前所连接到的网络恶意屏蔽了对加密DNS服务器的连接,则系统会自动弹出警告,并告知使用者存在信息泄露的风险。

  • 微软投身加密阵营,DNS劫持或将成为历史

很显然,相比于“人微言轻”的Mozilla,苹果对于DNS加密的高调表态和强硬支持,不仅起到了对一般大众强力科普这一业界新共识的目的,同时它也刺激了更多厂商和操作系统加入到支持DNS加密,保护用户隐私的这场“战役”中来。

要想在最新的Windows 10测试版中开启DNS加密,需要手动修改注册表

比如说就在2020年5月13日,微软也正式确认,已经在最新的Windows 10 Insider测试版中集成了DNS加密功能的开关。与苹果的做法一样,微软对于DNS加密的支持同样是在系统全局层面上来实现的。也就是说,只要你通过修改注册表键值的方式打开了Windows 10的DNS加密功能,那么所有此系统上的联网数据都会得到DNS加密机制的保护。

很显然,考虑到微软如今在民用操作系统市场中的体量,Windows 10(虽然目前还只是测试版)对于DNS加密技术的支持从某种程度上真正意味着保护浏览记录不被运营商窃取、保护网页内容不被广告主篡改,已然成为了整个互联网产业如今共同行动起来的重要目标。

对于消费者来说,这显然意味着我们未来的互联网浏览体验将有望变得更安全、更清爽。而对于依赖于传统明文DNS进行商业牟利或是其他特殊目的的一些人来说,他们的好日子或许也就真的走到头了。