Sorry spooks: Princeton boffins reckon they can hide DNS queries
'Oblivious DNS' decouples users from the sites they visit
The Domain Name System (DNS) is a plain-text service that lets anyone who can see “the wire” capture a user's DNS traffic and work out whether they're asking for naughty.com or nice.com. So to help enhance its privacy a group of researchers has proposed a more "Oblivious DNS” protocol.
However, as the group explained here, even encrypted DNS (for example, DNS over TLS) is still exposed at the recursive resolver (that is, the DNS component most directly connected to the client), because that server decrypts the user request so it can fetch the IP address of the site the user wants.
In other words, whether you use your ISP's resolver, or one provided by a third party like Google or Cloudflare, at some point you have to trust the resolver with your DNS requests.
In a world where law enforcement has taken an increasingly-intrusive attitude to Internet traffic, the authors believe DNS requests need end-to-end protection, because “operators could be targets of data requests”.
As anybody who's watched the treacle-like rollout of IPv6 knows, it's nearly impossible to get Internet infrastructure owners to deploy technology that demands a major re-architecture of their kit.
To get around this, Oblivious DNS is designed to operate without any change to the existing DNS. As its designers write, it “allows current DNS servers to remain unchanged and increases privacy for data in motion and at rest”.
Instead it introduces two infrastructure components that would be deployed alongside current systems: a resolver “stub” between the recursive resolver and the client; and a new authoritative name server,
.odns at the same level in the hierarchy as the root and TLD servers (see image below).
In this model:
- The stub server accepts the user query (“what's the IP address of foo.com?”), and encrypts it with a session key/public key combination;
- The recursive name server receives the request (with
.odnsappended) and the session key, both encrypted;
.odnstells the resolver to pass the request up to the ODNS authoritative server, which decrypts the request and acts as a recursive resolver (that is, it passes requests up the DNS hierarchy in the normal fashion);
- The ODNS encrypts the response and passes it back down to the stub, which sends the response to the client.
The authors explained that this decouples the user's identity from their request.
The recursive resolver a user connects to knows the IP address of the user, but not the query; while the ODNS resolver can see the query, but only knows the address of the recursive resolver the user connects to, not the user.
Similarly, an attacker with access to a name server never sees the user's IP address, because the request is coming from the ODNS server.
The group has posted a conference presentation from late March here [PDF], and emphasises that Oblivious DNS is a “work in progress”.
The protocols proposers are Princeton University's Paul Schmitt, privacy PhD student Annie Edmundson, carrier network researcher Nick Feamster, routing researcher Jennifer Rexford, and Internet protocol expert Allison Mankin of Salesforce. All are prominent in the standards community. ®