Re: [Doh] WG Review: DNS Over HTTPS (doh)

Ted Hardie <> Mon, 18 September 2017 17:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D8DC1132D4E; Mon, 18 Sep 2017 10:20:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Status: No, score=-2.699 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id VWMJ6IoKYvHF; Mon, 18 Sep 2017 10:20:48 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:400d:c09::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id ED43C133018; Mon, 18 Sep 2017 10:20:47 -0700 (PDT)
Received: by with SMTP id j5so1233563qkd.0; Mon, 18 Sep 2017 10:20:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/KeUfW/KNVqkgDX152TrybMH8cEFoppRuB9gtpRwFAM=; b=TkJ5XBuEdXYqSIInwqqnQcNLe/cd03xy6i3HKe2JNdRw3JYiVAiuPKfDyuj7rMaiFn 3P1eW4RQZxAsCja0TiUKD5/rRM5WUWjZWN4Ydpen+xQfsW2JH2d5ECLYwUIcXL5wNaJm itb0qJGV154eidG5gkR+Cvgyd75bHpUuHAgarpB5vQDkIqWLqq9FLEYtt7bGTzgdguC9 Hf8YBtR9XnkHEJaqLke7kgUgk+quTB6mnYEdgaGDLBm43LgLYYOYf9hCkuLxVJo7RIEe /RVqjlRS96UejlT8yA79OB4pJYKZn/WxPIdqYE8xFbaVo16asQsys41ZVb/fwi3U4g9z 6Mfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/KeUfW/KNVqkgDX152TrybMH8cEFoppRuB9gtpRwFAM=; b=s92uXnCMsgcRc+Eu1AivS8ttqXyd7raABucWYN1Gy6F8Qvpe/qcCAfBF5Z0aDTMglE RcVIbBshnD7/toBT1rb72Owar1MmmCUZD22wc85xxo+VqoH07qnMkcQk4Ha/S3A0NSOG 9/T09YMEnhgSFvWGnQI731q5fQODyBnw2OvUeumxqdHGo3cldKeqv+ldGB6KlpAw+LMn 4RxcdY/Qn9eN3KK2Waw8EWwyoBrlN4jX4n1l372u5mL8hQA3OL8/E1MvznKDpJUC2gKM 6G58rVNPUKxi5RKA8ki0NJxyeCTEcwTWwPIjDH8O2SvPz+DQDGDciWE3inIvapFLLN8A 2vKg==
X-Gm-Message-State: AHPjjUjjSJbn6oQQ6NUnJbCEsKInqgXlYzVeeRTqyGZz+IJecJgW1opZ 1dXSQIMfMdXW2lGji+5hj8oQ+HB4Q2BicFwt7ow=
X-Google-Smtp-Source: AOwi7QBBJbC8r6Vu8VX5liuCEaXK6m54eBV2mD580BwCxZTQWYQy8k6/vAtlnVLecCKBxsePj2ntL0Pp/uYo//CDfWg=
X-Received: by with SMTP id 9mr21208957qks.208.1505755246861; Mon, 18 Sep 2017 10:20:46 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Mon, 18 Sep 2017 10:20:16 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <>
From: Ted Hardie <>
Date: Mon, 18 Sep 2017 10:20:16 -0700
Message-ID: <>
To: Mark Nottingham <>
Cc: Adam Roach <>,, Paul Hoffman <>, IETF <>
Content-Type: multipart/alternative; boundary="001a11475fa29ba22e055979f644"
Archived-At: <>
Subject: Re: [Doh] WG Review: DNS Over HTTPS (doh)
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: DNS Over HTTPS <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 18 Sep 2017 17:20:52 -0000

On Sat, Sep 16, 2017 at 8:00 PM, Mark Nottingham <> wrote:

> > So, I don't that this is established.  One mental model for this work is
> that DNS, having started with UDP and TCP as transports, has now added a
> set of additional secure transports.  Two of those were defined in DPRIV;
> this defines another.  From that perspective, any time an application
> requires a DNS name to be resolved, the relevant local code would try the
> set of secure transports until it got an answer.  The application may not
> know which is used and does not specify it; it is simply getting the DNS
> answer back that allows it to proceed.
> Every time people start talking in this manner and referring to HTTP as a
> "transport", I get flashbacks to WS-* and what a glorious failure that was.
If it helps, I am happy to say "facilitating protocol".  The mental model
question for the charter is really:

Does this add a new tool for DNS systems attempting resolution to use when
previous efforts are blocked?  So any DNS resolution might use it, whether
from a browser, an app, or system call, but that those would not *specify*
it be used?

Does this add a method for Web application to directly resolve DNS resource
records using a resolver self-identified in the Javascript?  So DNS
resolutions are instantiated and consumed by Javascript without any
intermediation by the local DNS resolver or the browser's DNS rules?

Does this charter aim for the working group to do both?

As currently written, I see the charter describing 1.  There has been an
argument that it also do 2 or that 2 becomes possible when 1 is specified
and is thus automatically part of the scope.  If that is the case, I
believe the charter needs a re-write to describe it.

> > The name of the group (DNS over HTTP), the justification at the
> beginning of the charter:
> >
> > This will enable the domain name system to function over certain paths
> where existing DNS methods (UDP, TLS, and DTLS) experience problems. This
> will enable the domain name system to function over certain paths where
> existing DNS methods (UDP, TLS, and DTLS)
> > experience problems.
> >
> > and Paul's input draft all point to that interpretation.  Note
> especially that Paul's draft provides the UDP wireformat as response.  To
> me, that strongly hints that the results of this get handed to the same bit
> of code that would take the UDP wireformat from other transports (like UDP)
> and do what it would have done with data retreived from any of those.  That
> behavior makes sense for DNS transported over HTTP, where you are talking
> to an authoritative server or shared resolver over a new transport.
> I don't disagree that the charter lays out that the goal is to enable the
> use case of DNS using HTTP semantics -- that's hopefully uncontroversial.
> > That order of operations does not make sense as a new resource type
> available to web applications, in part because they can't tell from
> examining the URI whether the resulting *resource* obeys CORS or not.
> It's not clear why that's an important property. Why is it necessary?
If it goes into a browser or system cache, it is an important property; it
may also be important depending on the UI result.  If the
JavaScript-internal resolution process feeds other parts of the page, it
may even be a problem.

> > There are serious attacks here that even DNSSEC won't catch, because a
> malicious server and cooperating JavaScript app could give correct answers
> that are non performant (like the search engine instance on the most
> distant continent).
> Who would be consuming these answers? How is this different from
> configuring your system to use a malicious DNS resolver (either in an
> application or the OS)?
> Because the JavaScript you download could pick the resolver.  The OS and
browser are largely trusted; the JavaScript is largely not.

> > And, if there really was a handoff to the local DNS subsystem for
> parsing and processing, the JavaScript also wouldn't be able to tell
> whether the result they get from that subsystem is the one that the just
> retrieved (because a cache entry from some other system may have a
> different SOA record and be returned as a result instead).  To avoid that,
> they would have build udp wireformat parsers into the downloadable
> javascript.
> >
> > I think if you want the second, a way of making DNS resources available
> to web applications, you need a very different approach; it may be
> valuable, but I don't believe this charter covers it.  If it is meant to,
> it needs a major re-write.
> I agree there are significant risks when using DNS. I think the question
> is what to do about it.
> One thing the WG could do would be to write some Security Considerations
> about the different ways this could be sub-optimal or even dangerous.
> I don't see how giving the protocol a new URI scheme avoids these risks,
> given that the defined resources would be available over HTTP still.
It gives the browser something to look at.  If it rejects udp-wireformat
mime types being returned from HTTPS URIs but accepts them from dnsh URIs,
it can handle the data differently.  I don't know that browsers want to do
that, mind you, I'm simple saying that the working group could decide that
this was a reasonable facility to consider.  Ruling out ways for the
ecosystem to distinguish this from other web resources seems to be the
wrong way to go, at least to me.



> Cheers,
> --
> Mark Nottingham