隐私 ===== 在查询链路上,如果节点双方采取DNS over TLS等对称加密或Cookie型认证方案,可以有效隐藏查询域名信息,但是无法规避中间人攻击的风险。针对DNS节点在上述查询链路的隐私风险保护,现行方案概要如下: Stub解析器(用户终端) ---------------------- 用户终端的Stub解析器向递归服务器发起查询,由于DNS默认采用UDP包明文发送查询应答数据包,用户内网广播及查询链路存在流量窃听的风险,而从用户侧的Stub解析器到递归服务器链路上存在中间人攻击的风险。 对于用户终端而言,基于公钥体系可行的信息隐藏方案是终端侧采用DNSCrypt方案,解决“Stub解析器 -> 递归服务器”的链路的窃听、中间人攻击的风险,但用户终端的访问兴趣对递归服务器而言则是透明可见的。针对递归服务器对用户侧的信息收集问题,用户终端可以采取多层IP代理、或者域名混杂查询等模式,部分隐藏真实IP地址或域名访问意图。 递归服务器(运营商递归服务器、公共递归服务器等) -------------------------------------------------- 多数个人用户默认采用运营商提供的递归DNS服务、或者采用Google Public DNS/Open DNS等公用递归DNS服务。因此,递归服务器做为连接用户终端以及权威服务器的关键节点,拥有互联网关键热点业务域名的访问动态信息。 递归服务器可以选择支持增强用户隐私保护功能,例如OpenDNS等公共递归支持响应DNS over TLS、DNSCrypt的查询请求。 递归服务器可以选择向权威隐藏或展示部分DNS信息。Google的“Client Subnet in DNS Requests”方案在优化本地用户访问的同时,也在一定程度上泄漏了用户所在的网络地址范围。AFNIC的“DNS query name minimization”方案则对根、顶级域部分隐藏了二级及以下域名的热点访问业务域名信息,但是由于全球递归服务器的广泛性,除非各大运营商递归服务器、重点开放递归服务器全部支持该方案,否则实际隐私保护效果有限。此外,如果递归服务器向根、顶级域、二级及以下域名权威采用DNS over TLS的加密查询,可有效防范骨干节点的旁路透明监听,避免明文插入型的域名劫持风险。 根 ---- 根服务器是迭代查询的起点,现行解析架构下可以掌握绝大部分全球热点互联网域名信息。Google的“Root Servers by Running One on Loopback”方案直接在递归侧载入根区文件信息,如果各大运营商递归服务器、重点开放递归服务器全部支持该方案,则根服务器所能掌握的下级域名信息将大大减少,能够有效实现对跨境查询根服务域名信息隐藏。 顶级域(CN、COM、NET等) ------------------------- 重点顶级域拥有百万级到亿级的注册二级域名,由于COM/NET的先发优势,全球互联网重点企业例如Google、微软、IBM等多数在COM/NET注册关键业务域名。由于互联网业务流量具有长尾效应,顶级域掌握的信息质量主要由该域下的业务热度决定。 ICANN的NewG(新顶级域)策略能够增加某些特殊应用类的域名注册,但是短期内能够掌握互联网动态变化的顶级域仍集中在传统的热点顶级域。 递归内部的多层转发,或者域名混杂查询可以在一定程度上隐藏部分域名的真实查询比例分布。 二级及以下域名权威 -------------------- 互联网存在第三方提供的二级及以下域名权威解析服务(免费或收费),该服务提供商完全掌握了已托管的互联网域名的所有业务IP配置信息,因此重点互联网业务出于业务保密的考虑,往往拥有自行搭建的权威服务器。 二级及以下域名权威可以在向递归服务器返回权威应答的同时,设法延长NS记录的TTL时间,减少递归向上层顶级域权威查询的信息泄漏,应对注册商记录异常的风险。