现行DNS解析架构下的隐私方案
现行DNS解析架构下,DNS隐私重构方案的核心基本围绕递归服务器展开。重点递归服务器覆盖的用户范围,以及对加密、认证、数据隐藏的支持程度,决定了整体隐私保护的强度。
用户侧到递归的链路隐私问题可以通过DNSCrypt方案得到相对合理的解决。递归到上层权威的隐私问题,除了已有的域名层次最小化方案,还可以参考TTL调整主动热点域名查询、全局域名的混杂查询及主动缓存方案,隐藏热点域名信息。顶级域名权威服务查询源IP、二级域名均表现出明显的长尾特征,此时,如果递归侧根据历史缓存信息进行主动查询,则此时域名查询是相对均衡的分布,而非自然的业务访问特征与TTL自然过期的长尾表现。
例如,构建一种递归针对顶级域的信息隐藏方案:
递归接收来自客户端的域名查询请求
递归记录一段时间内(例如1~5天)所有来自客户端查询的二级域名NS信息
递归以预先配置的时间间隔(例如1小时~6小时)定期主动向顶级域查询二级域名的NS信息
递归根据已获取的二级域名NS信息更新自身缓存
理论上的好处:能够有效避免顶级域对某些重点递归的业务访问的热点域名以及TTL进行特征学习,从而进一步减少该递归服务器的某些特殊长尾域名的隐私泄露风险。能够在现有的 DNS 解析架构下进行,减少递归向外部顶级域的信息泄露。
产品上不实用的原因:适用于某些个特殊递归,绝大部分递归没有义务与动机去部署。
namecoin 新型域名注册解析架构
基于bitcoin思路的Namecoin域名服务。
Namecoin是一种特殊的P2P去中心化的<key, value>信息对的注册和传输网络,其主要优势在于解析网络的节点平等,信息发布拥有较高的自由度。在Namecoin对等网络下,下级域的所有者不再受上级权威的制约,上级权威通过clientHold、删除子域等手段恶意停止某个子域的解析的手段无法成功。此外,Namecoin网络中域名所有者也不再受域名注册商信息的制约,相比于传统域名注册信息管理体制下,域名所有者无法针对注册商系统内部错误进行主动性事先预防,有更大的自主管控优势。
由于Namecoin网络的节点拥有整个域名数据信息库,或者选择信任某个上级节点提供的域名数据。因此,传统的递归到上级权威查询链路的隐私泄漏风险不复存在,节点访问互联网业务所需的.bit域名解析能够收缩到网络内部,或节点可信任的子网内部通信。
Namecoin网络主要解决了域名解析信息隐藏的问题,但方案生效的前提在于域名在Namecoin网内注册使用。即使进行IP代理转发、域名混杂请求,用户侧向递归请求传统COM/NET等子域名的内容对于递归仍相对透明,存在某些溯源关联的路径依赖。与现实网络结合的用户侧DNS隐私保护增强,还需要递归侧热点域名的缓存信息有着更广泛的分发共享网络,类似于热点黄页信息预取支持。
用户查询域名信息隐藏方案
DNS本质上是一种查表型的信息服务,在传统层次型的DNS解析架构方案中,递归服务器掌握了最关键的用户域名访问信息。DNSCrypt方案仅解决了用户到递归的链路隐私问题,尽管用户可以通过混淆发包查询多个域名、或者代理查询方式进行部分隐藏,但是用户的真实域名访问兴趣仍可在递归日志中留存记录,存在某些溯源关联的路径依赖。
因此,与现实网络结合的用户侧DNS隐私保护增强,还需要递归侧热点域名的缓存信息有着更广泛的分发共享网络。
例如,构建一种用户查询域名信息隐藏方案:
递归主动参与热点域名信息分发
类似杀毒软件的病毒特征数据更新模式,递归服务器每分钟更新发布热点域名数据。
客户端运行独立的递归缓存更新软件,直接获取热点域名信息。此时,递归无法直接获知用户对热点互联网业务的访问兴趣。
客户端协作网络查询长尾域名
客户端接入P2P协作式域名查询网络,例如基于chord构建。
发起查询的客户端节点根据<TIMESTAMP,QNAME,QTYPE>生成唯一的key值。
查询节点在chord网络中根据key值定位到该时刻系统分发负责此项查询的对等目标节点、或节点集合。
如果对等目标节点没有该key值对应的dns应答缓存,则目标节点需要调用自身、或者相关邻居合作节点启动DNS查询,获取<TIMESTAMP,QNAME,QTYPE>的相关应答信息。
由于不同域名查询频度不同,需要进一步考虑该协作式查询网络节点负载均衡策略。此外,DNS应答往往随着地区运营商的不同返回智能解析结果,应答数据集中还可以加入<AREA, ISP>等辅助信息。
由于恶意节点加入的安全问题,需要综合多个对等节点提供的应答信息投票进行综合评估,或引入更严格的节点信誉度评分机制等等。
分析
理论上的好处:能够避免递归服务器对客户端的域名查询信息进行监测分析,从而规避“用户<->递归”层面的隐私泄漏问题。结合现有的 DNS 解析架构形成一个客户端协作网络,减少递归对于用户的集中式窥探可能。
产品上不实用的原因:配个DNS就能搞定的事,大部分人不会再去装一个专用client。