Internet DRAFT - draft-hardaker-dnse-split-key-dns
draft-hardaker-dnse-split-key-dns
DNSE W. Hardaker
Internet-Draft Parsons, Inc.
Intended status: Standards Track April 01, 2014
Expires: October 03, 2014
Anonymizing and privatizing requests and responses in the DNS
draft-hardaker-dnse-split-key-dns-00
Abstract
This document discusses the type of architecture necessary to make
DNS requests not just private between parties, but functionally
anonymous so that the only entity that knows who made the request is
the source entity itself.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 03, 2014.
Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Hardaker Expires October 03, 2014 [Page 1]
Internet-Draft Anonymizing and privatizing the DNS April 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Work in Progress Warning . . . . . . . . . . . . . . . . 2
1.2. Request/Response Protection Through Encrypted Links . . . 2
1.2.1. True DNS Privacy Requirements . . . . . . . . . . . . 3
1.3. A New Model For Protecting End Entities . . . . . . . . . 3
2. The Solution . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Minimal Requirements . . . . . . . . . . . . . . . . . . 4
3. Operational Considerations . . . . . . . . . . . . . . . . . 5
4. Security Considerations . . . . . . . . . . . . . . . . . . . 5
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6. Normative References . . . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
1.1. Work in Progress Warning
Warning: the content in this document is mostly a crazy scheme to
show the problems with current approaches to anonymize requests and
responses in the DNS. The architecture is an example solution and is
not necessarily the best available. Consider it a discussion point.
Specifically: THIS WILL NOT WORK FULLY IN PRACTICE.
1.2. Request/Response Protection Through Encrypted Links
Today, most end-entities talk to a select number of recursive
resolvers that are responsible for handling the bulk of their DNS
lookups. An end entity system may wish to lookup an A record for the
www.example.com domain name, and rather than starting from the root
itself and finding the answer, they'll pass the buck to a recursive
resolver to take advantage of their better processing power and
cache. Typically thees resolvers are hosted by ISPs on behalf of
their clients.
+--------------------+
| root |
+--------------------+
^
|
|
v
+-----------+ +--------------------+ +-------------+
| endEntity | <--> | recursive resolver | <--> | example.com |
+-----------+ +--------------------+ +-------------+
^
Hardaker Expires October 03, 2014 [Page 2]
Internet-Draft Anonymizing and privatizing the DNS April 2014
|
|
v
+--------------------+
| com |
+--------------------+
In this architecture (based on how DNS is implemented), only the
endEntity and the recursive resolver know who made the request for
www.example.com, unless someone ("Eve") is actively monitoring the
link(s) between the endEntity and the recursive resolver.
To protect against attacks by Eve, solutions spaces being discussed
today are trying to protect these links by tunneling DNS over
encrypted methods such as encrypted transports (DTLS and TLS) or
through modifying DNS itself.
However, this architecture assumes that the recursive resolver itself
is trustable and has not been taken over, either legally or
maliciously, itself. The endEntity still has no assurance against a
well funded advisory that their requests are not being logged by the
recursive resolver.
1.2.1. True DNS Privacy Requirements
For true privacy, only the end-entity can be aware of "what is being
asked for". If anyone other entity knows both of these two pieces of
information, the end entity no longer has exclusive control over
their privacy.
1.3. A New Model For Protecting End Entities
In order to protect against this threat, the endEntity must transmit
the request to the recursive resolver in such a way that the
recursive resolver in such a way that the recursive resolver must not
be aware of which end entity sent the request in the first place.
This can only be done through carefully funneling encrypted versions
of the request through aggregators in the middle in such a way that
the traffic aggregators themselves can't see the request.
+-----------+ +-----------+ +-----------+ +-------------+
| endEntity | ==> | resolver2 | ==> | | --> | example.com |
+-----------+ +-----------+ | | +-------------+
|| | |
|| | recursive |
\/ | resolver |
+-----------+ | | +-------------+
| resolver1 | ====================> | | --> | com |
Hardaker Expires October 03, 2014 [Page 3]
Internet-Draft Anonymizing and privatizing the DNS April 2014
+-----------+ +-----------+ +-------------+
|
|
v
+--------------------+
| root |
+--------------------+
===> Special Encrypted
---> Normal DNS
How this can be accomplished in a way that makes the recursive
resolver unaware of who is making the original request is discussed
in the next section
2. The Solution
2.1. Minimal Requirements
To truly protect the end entity against anyone but them knowing the
requests they make, we must:
o The end-entity must encrypt the request for the recursive
resolver.
o The end-entity must transmit the request to the recursive resolver
in a way that the middle entities don't know both "what is being
asked for" and "who is requesting the information". True privacy
is only accomplished if both of these facts are only known by the
requestor.
To implement this, the standard DNS system can be used to transmit
encrypted requests to an anonymous supporting distant recursive
resolver as follows:
1. It does this by creating a symmetric key, KK, and using it to
encrypt the "real" request
(name="www.example.com",type="A",class="IN") using the secret key
KK and an encryption algorithm. This will result in an encrypted
blob "EEEEEEE".
Hardaker Expires October 03, 2014 [Page 4]
Internet-Draft Anonymizing and privatizing the DNS April 2014
2. It then encodes this, and half of the symmetric key (we'll call
the split halves K1 and K2) into a DNS request with a special
domain suffix that is known to be supported by the anonymizing
recursive resolver. For this example, we'll use "exmaple.org" as
the anonymizing recursive resolver's special name space. E.G.,
the resulting request might look like "EEEEEEEEE.K1.example.org"
for type NEWTYPE (or TXT records for those that want to brave the
wrath).
It transmits this request, and the corresponding request containing
EEEEEEE.K2.example.org, to two different generic recursive resolvers.
[These need to be two organizationally separate resolvers and
delivered over two separate networks, such as one over a TOR network
and one over a regular network such that both requests never go over
the same "link" and can not be seen together]. In the architecture
diagram above, resolver1 and resolver2 will both receive two
different request packets and process them normally. Though they
know the source end-entity that submitted the DNS requests, they do
not know what's really in them.
Both requests will eventually end up at the anonymizing name servers
associated with example.org. They will eventually collect the two
halves being sent to them from resolver1 and resolver2 and can
combine the key halves to determine the real request contained inside
EEEEEEE. At this point, the recursive resolver knows the real
request, but not what end-entity initiated it. It only knows the two
resolvers (1 and 2) that it came through.
The anonymizing recursive resolver can then perform the actual lookup
with the extracted information, encrypt it into a new response packet
to be put in the DNS RR payload for EEEEEEEEE.K1.example.org and
EEEEEEEEE.K2.example.org and return the answers to the recursive
resolvers.
The recursive resolvers can then return the results to the end-
entity, who can take either of the two responses and decode the
results (or both responses if they don't keep a key cache and need K1
and K2 both again).
3. Operational Considerations
This is truly a hack. It could be made to work, sure, but it's a big
big hack. Maybe a better solution will come out of it that provides
more privacy than just protecting the link between the end-entity and
the recursive resolver, which is insufficient as shown above.
4. Security Considerations
Hardaker Expires October 03, 2014 [Page 5]
Internet-Draft Anonymizing and privatizing the DNS April 2014
Security definitely should be considered.
Do not try this at home kids.
Splitting the keys into more than two pieces and sending them to more
resolvers provides, obviously, even greater protection.
5. IANA Considerations
TBD
6. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
STD 13, RFC 1034, November 1987.
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
Author's Address
Wes Hardaker
Parsons, Inc.
P.O. Box 382
Davis, CA 95617
US
Phone: +1 530 792 1913
Email: ietf@hardakers.net
Hardaker Expires October 03, 2014 [Page 6]