摘要:DNS记录信息比Facebook覆盖的网民更广,数据规模也更大,这也是为什么我认为它几乎是当今互联网最大的用户隐私风险。

 

最近Facebook 8700万用户隐私信息泄露的事件相信大家都有所耳闻,且这些个人数据涉嫌被用于影响2016年美国大选的选民看法。一时间关于隐私保护的话题被推上了一个高潮。同时最近Cloudflare宣布正式推出1.1.1.1公共DNS服务,号称是互联网上速度最快,隐私优先的消费者DNS服务。为什么dns服务也需要如此强调它的隐私性呢?大家都知道,通过dns记录信息几乎可以知道所有网民的上网信息,你的每一次网页浏览记录,每一次APP操作记录几乎都会被DNS记录。那么通过这些信息也完全可以分析出用户的个人偏好,行为习惯。而且它比Facebook覆盖的网民更广,数据规模也更大,这也是为什么我认为它几乎是当今互联网最大的用户隐私风险。

 

当然今天主要讲讲关于dns的隐私保护方案,目前主要的dns隐私保护方案技术主要分为三类:

  • DNS Query Name Minimisation to Improve Privacy (DNS 查询最小化)

  • DNS over TLS

  • Oblivious DNS

 

DNS Query Name Minimisation 是IETF2016年3月份提出来的一种用来改进dns隐私保护的技术,这里对他的原理做一个简单的介绍,首先DNS查询最小化技术的核心理念是发送最少信息的dns查询就能降低用户隐私泄露的风险,这个理念的思路显然是正确的。所以假如需要查询一个域名www.test.google.com的解析的情况的时候,首先它只会向顶级域名解析服务器查询google.com的解析情况来确认这个域名解析服务器是否存在相关记录,而不会发送完整的解析请求,这样避免顶级域名解析服务器获取二级及以下的域名解析请求信息。那么DNS查询最小化的思路就是避免不同层级的dns解析服务器获取到完整的用户dns请求。从而降低用户隐私泄露的风险。但是即使如此dns递归查询服务器最终还是能完整的获取到dns查询的记录和客户端IP,只能说是隐私风险确实会降低。

 

DNS over TLS 是IETF在2016年6月在RFC 7858中提出的,它要求所有DNS数据都通过TLS进行加密传输,这样做可以有效的解决互联网服务提供商(ISP)对DNS查询的监听,目前google也准备在android 8.x中启用DNS over TLS,但是话又说回来,这个仍然解决不了dns解析记录被dns递归服务器获取的隐私风险。

 

Oblivious DNS 是近期普林斯顿大学一个四人研究小组在DNS-OARC 28会议提出的一种新的dns隐私保护方案,它的核心思路是如果用户需要查询www.foo.com的解析记录,那么首先会通过客户端对查询请求www.foo.com做一个对称加密得到一个加密串x,然后附加在顶级域名.odns上,从而得到x.odns;然后将x.odns的解析请求发送到递归服务器,然后odns查询的权威服务器使用其私钥对x.odns进行解密后返回正确的dns查询结果和加密的域名记录到客户端,客户端再进行解密得到最终的查询结果。相比较来说这种方案解决了互联网服务提供商和dns递归服务器对dns查询的隐私泄露风险,但是同样这种风险集中转移到了提供第三方的域名解析服务的ODNS身上。

 

 

 

 

那么最后我们回到cloudflare发布的1.1.1.1公共dns服务,那么它号称的隐私优先的dns服务是怎么实现的呢,首先它支持DNS-over-HTTPS和DNS-over-TLS,然后cloudflare承若会在24小时内删除用户的dns查询记录。那么其实看起来如果将Oblivious DNS 的解决方案和当前cloudflare 24小时删除用户dns查询记录的策略加起来将是一个比较完美的方案。但是我仍然对cloudflare在这24时内使用用户dns记录做的分析和分析结构的保存表示担忧。