Re: [dns-privacy] Multiple DNS requests per packet, multiple packet responses

Phillip Hallam-Baker <> Wed, 19 March 2014 18:55 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 3D4BB1A0780 for <>; Wed, 19 Mar 2014 11:55:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id FBnUN1OpIXeH for <>; Wed, 19 Mar 2014 11:55:38 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4010:c04::22f]) by (Postfix) with ESMTP id 94CF41A071A for <>; Wed, 19 Mar 2014 11:55:37 -0700 (PDT)
Received: by with SMTP id w7so6152736lbi.20 for <>; Wed, 19 Mar 2014 11:55:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=exRwSWeaIro5G7PB1VRYBgeFb3DNuSblndwsyOzcf2A=; b=lshhZ4FSAGSQMVLoFx7Yj83fVZ1jyiEwL3vrJTVe8+P4/8uN1eQePKU9JenjcjdL0B yTXW16BlswFAKDxLusGfhdrPp8JWxDwsAgp6ODj4hR3WYYJwblmBOgLFJvZgopRUeh6w gSwIUIqc0a7xTJOrop4GxSWvgbzQuyQiUN3RhxJDbMobNzPoOkSqLM1cC1mvgl91zyhm eOJWpM7Ad42qphobjolfsf1skwxLxRaVzXn24hVwxyGxQGojvqMQ4wnA+XvoL2Xgb+hW A+fY6fsl681e3OtTtbLb+/7uwIhrlZqVEbV9wW3ltaZX3S15iavybkX5iovBbPvqJRc+ g0rw==
MIME-Version: 1.0
X-Received: by with SMTP id g8mr2222843lab.50.1395255328247; Wed, 19 Mar 2014 11:55:28 -0700 (PDT)
Received: by with HTTP; Wed, 19 Mar 2014 11:55:28 -0700 (PDT)
In-Reply-To: <>
References: <> <>
Date: Wed, 19 Mar 2014 14:55:28 -0400
Message-ID: <>
From: Phillip Hallam-Baker <>
To: Ted Hardie <>
Content-Type: multipart/alternative; boundary="001a1132efa236164a04f4fa32f0"
Subject: Re: [dns-privacy] Multiple DNS requests per packet, multiple packet responses
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 19 Mar 2014 18:55:48 -0000

On Wed, Mar 19, 2014 at 2:09 PM, Ted Hardie <> wrote:

> On Wed, Mar 19, 2014 at 10:40 AM, Phillip Hallam-Baker <>wrote:
>> One consequence of encrypting DNS traffic is that we break backwards
>> compatibility.
> Howdy,
> Backwards compatibility with what part of the system?  Or perhaps first,
> what question are we answering, that makes you presume this?

Since my client does not currently know about encryption it is going to
have to be upgraded to send encrypted packets.

Once my client sends encrypted packets they cannot by definition be read
unless the receiver has the key and decryption algorithm. Since no server
currently implements said decryption, a new server is needed.

Hence the new protocol cannot be backwards compatible with the old. There
can be a transition path and of course that needs to be considered. But
both the plug and the socket have to change and so there is no reason to
insist on the same connector.

> Imagine for a moment that the question is: "How do I prevent exposure of
> clear text DNS queries from pervasive surveillance when they are sent from
> my home to a recursive resolver in a data center?"  One answer certainly
> could be "Set up an IPSEC tunnel between yourself and that data
> center-based resolver, then run DNS across it".  There are a bunch of
> trade-offs that will tell you whether that is a good idea, but one piece of
> the puzzle is that the DNS bits would look exactly the same.

If the answer was IPSEC then we would be doing it already.

There are times to persevere and there are times to just let go. IPSEC has
been in the last category for a decade.

Every IPSEC VPN I have ever used has come with instructions on how to
install a third party IPSEC stack for use with it. And every one of those
has been an unending tale of incompatibility and instability.

The only reason to build on existing specifications is to make use of
existing implementations. If the implementations are huge and unstable then
its time to move on.

There are other approaches which retain the current syntax and change out
> only the transport (for many other values of transport).  There is no
> reason to believe those are wrong  on first principles, so let's not start
> with a "this means DNS 2.0" until we've worked out what the actual issues
> are, okay?

My point is that once you decide to change out the transport, you have made
a major change.

All I am proposing to do is to change out the transport. I am suggesting a
KeyExchange + Encapsulation type solution. So it would still be RFC1035
messages inside the encapsulation. But we do have some choices in the way
we design the encapsulation.

Now you can argue that we could just use IPSEC or DTLS. But those are both
really complicated protocols and they are both wired up to PKIX. Yes, I
know that in theory you can do other stuff but in practice you can't
because the stacks have only been tested for interop on PKIX.

PKIX is built on top of DNS. Which is not a show stopper form making use of
PKIX to secure DNS but you have to do it carefully and in a controlled way.