The traditional Domain Name System (DNS) lacks fundamental features of security and privacy in its design. As concerns of privacy increased on the Internet, security and privacy enhancements of DNS have been actively investigated and deployed. Specially for user's privacy in DNS queries, several relay-based anonymization schemes have been recently introduced, however, they are vulnerable to the collusion of a relay with a full-service resolver, i.e., identities of users cannot be hidden to the resolver. This paper introduces a new concept of a multiple-relay-based DNS for user anonymity in DNS queries, called the mutualized oblivious DNS ($\mu$ODNS), by extending the concept of existing relay-based schemes. The $\mu$ODNS introduces a small and reasonable assumption that each user has at least one trusted/dedicated relay in a network and mutually shares the dedicated one with others. The user just sets the dedicated one as his next-hop, first relay, conveying his queries to the resolver, and randomly chooses its $0$ or more subsequent relays shared by other entities. Under this small assumption, the user's identity is concealed to a target resolver in the $\mu$ODNS even if a certain (unknown) subset of relays collude with the resolver. That is, in $\mu$ODNS, users can preserve their privacy and anonymity just by paying a small cost of sharing its resource. Moreover, we present a PoC implementation of $\mu$ODNS that is publicly available on the Internet. We also show that by measurement of round-trip-time for queries, and our PoC implementation of $\mu$ODNS achieves the performance comparable to existing relay-based schemes.
翻译:传统的域名系统(DNS)在设计时缺乏基本的安全和隐私特征。随着互联网上对隐私的关注增加,对DNS的安全和隐私增强进行了积极调查和部署。在DNS查询中,特别是用户的隐私问题,最近引入了几个基于中继的匿名计划,然而,它们容易受到与全服务解答器(即用户身份无法隐藏于解决者)串通的中继器的串通,即用户身份无法隐藏在解决者手中。本文引入了一种新概念,即在DNS查询中,用户匿名使用多回传的DNS,称为共同的注意到的DNS$(MU$ODNS),扩大现有基于中继的系统概念。$MU$ODNS($MER$$$$$$$$$$$$$$$$@DNS),根据这个小的假设,用户在网络中至少拥有一个可信/专用的中继转发器,我们目前可以将自己的私隐隐隐隐含的ODOD的运行成本, 也可以通过一个小的存储的存储的服务器数据存储存储存储用户的运行数据,我们现有的ODDDDDDDDDD的运行的运行数据, 的运行的运行的运行可以实现一个小的运行成本的运行的运行成本,通过一个小的运行的运行的运行的运行的运行的运行的运行的运行的运行的运行的运行的运行的运行数据。