Re: [dns-privacy] [Ext] Re: ADoT requirements for authentication?

Ben Schwartz <bemasc@google.com> Tue, 29 October 2019 20:58 UTC

Return-Path: <bemasc@google.com>
X-Original-To: dns-privacy@ietfa.amsl.com
Delivered-To: dns-privacy@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E3B3E1208DC for <dns-privacy@ietfa.amsl.com>; Tue, 29 Oct 2019 13:58:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.499
X-Spam-Level:
X-Spam-Status: No, score=-17.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FLSyMy5DZdbB for <dns-privacy@ietfa.amsl.com>; Tue, 29 Oct 2019 13:58:51 -0700 (PDT)
Received: from mail-io1-xd29.google.com (mail-io1-xd29.google.com [IPv6:2607:f8b0:4864:20::d29]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F1752120289 for <dns-privacy@ietf.org>; Tue, 29 Oct 2019 13:58:50 -0700 (PDT)
Received: by mail-io1-xd29.google.com with SMTP id 1so16386328iou.4 for <dns-privacy@ietf.org>; Tue, 29 Oct 2019 13:58:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ZTVJARQmtVgbFLzazEs/lz0qvIEl33C6z4MB6pqlMXk=; b=iaZwu3ry6k6ufOyun2sHVwSDJ7oMHvfVA4UiOsvjLwpMF0oLKJ7M2vZ+hn5sXxbh/p WqjydCy7/B83HFGEd/k3iR4SHMTgEExpaioVXqTleh5ujEut/XW3NZMPq4QAW5EXC9zf HaAYBJz4yPizItDagxfqJU7IdrfTjqwpB+rhqWpXFFz1IqX7MxLYBvSWht7iBhU3H32q DwgTtoS/w4W6mzRqLqfZOqjmq3QGF3Z0L/nZ+CWzG0uHZXU5tfcuzRkxM7EuDEPfnskn V5YxCAA53ByRYjgsPzd4YgBGqTZYssWxTC4C/ywb2pjX9FVyOHTa+5Pd+cYNjvD5r1tu hJBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ZTVJARQmtVgbFLzazEs/lz0qvIEl33C6z4MB6pqlMXk=; b=ZL10kmcDL3G8rfPcsxDo2xYoPQIsGE9HLepWVdnI0UNi2/C5+FLEUm/huq+kYog31m 0iCQYn/Gexv5uOcfzpj00GgkZB6vmBuyHA4m+msrXAB9/qLDJ7NmRYQoX5k2mBW3cDnC hgPVCeS3sno9v/1Fh3urPL3unkMEADE0FYfpbiar9nb1nlezjRIG3iKUZHBbDFJEseO0 nztnPuzLoH+qA09I2oUj/omoGpQ7+oeuXkGgmnN91aNNZuY/BK+DJZNI/DCVpPfHs6fJ 8asflyrLeSMmsFuDLHJh4dyNhhgAN8msdMRHSWYqLLRWq9hIT3Yuu8wiRFqHuGJQcTAD 1tig==
X-Gm-Message-State: APjAAAUu86NI9mWC/0awN8HcWG9TyOuEvV0OcNj9ZREb1IoNN7igubnJ H2Gqe6JS6svR7fzT5/eX50k+zVhnjPkb40nASHr/Hw==
X-Google-Smtp-Source: APXvYqwxhOkkZ8Dh18utz/pjlsFxKnkwN9PCn+HhrIY4JgB1QbBjeGC7IPUjVGfWJwWE5FkDuDLoo4erST+nao3lM8M=
X-Received: by 2002:a02:77c4:: with SMTP id g187mr23566190jac.83.1572382729708; Tue, 29 Oct 2019 13:58:49 -0700 (PDT)
MIME-Version: 1.0
References: <943e3973-f6a7-9f6e-a66a-33aff835bd5e@innovationslab.net> <503df6fb-b653-476f-055f-15c1a668ba36@innovationslab.net> <5fe86408-35a8-16ea-d22a-9c6c4a681057@icann.org> <CA+9kkMBZUPfWov6B+pgLYuFmZh10dTzwF2PdKs5Vozzssqvzjw@mail.gmail.com> <edf53c16-3be9-786c-dcb1-0edc9fd9711c@icann.org> <CA+9kkMC5ynqK+8QO==5Pi_9edjTkJJ3yLHBHqJFOox8fi1_8HQ@mail.gmail.com> <CAHbrMsAAvadukzifKEj9eEWB91aDjmnu775F_YdtBaUHrHwDDQ@mail.gmail.com> <CA+9kkMCVj3Lte1dooNthm0f6eBPFUGbxdQBGyjB62KD8wn+f-g@mail.gmail.com>
In-Reply-To: <CA+9kkMCVj3Lte1dooNthm0f6eBPFUGbxdQBGyjB62KD8wn+f-g@mail.gmail.com>
From: Ben Schwartz <bemasc@google.com>
Date: Tue, 29 Oct 2019 16:58:38 -0400
Message-ID: <CAHbrMsCU4b7yNwEfq1J0qsX3vbij+bLdXpanPMKaF+h6yqkXKw@mail.gmail.com>
To: Ted Hardie <ted.ietf@gmail.com>
Cc: Paul Hoffman <paul.hoffman@icann.org>, "dns-privacy@ietf.org" <dns-privacy@ietf.org>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="00000000000018f57f059612e2c8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/IT8fR38wrPCQIdfhpXcbzFievYw>
Subject: Re: [dns-privacy] [Ext] Re: ADoT requirements for authentication?
X-BeenThere: dns-privacy@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <dns-privacy.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dns-privacy>, <mailto:dns-privacy-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dns-privacy/>
List-Post: <mailto:dns-privacy@ietf.org>
List-Help: <mailto:dns-privacy-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dns-privacy>, <mailto:dns-privacy-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Oct 2019 20:59:00 -0000

On Tue, Oct 29, 2019 at 3:07 PM Ted Hardie <ted.ietf@gmail.com> wrote:

> On Tue, Oct 29, 2019 at 9:54 AM Ben Schwartz <bemasc@google.com> wrote:
>
>> FWIW, my expectation has been that ADoT would use TLSA-like
>> authentication, with no trust anchors other than DNSSEC (and nothing
>> resembling the WebPKI).
>>
>> Which certificate usage are you thinking of, in RFC 6698 terms?
>

I'm not very familiar with these terms, but I think I mean usage 2: "trust
anchor assertion".

Generally, I think TLSA-like authentication rooted in DNSSEC validation is
> fine.  But I remain pretty much of the opinion that if you get a
> certificate via that method that is "wrong" for values of wrong like
> "presented the wrong IP address or name in the cert"  or "fails DNSSEC
> validation" then you should do more than log the error.
>

I agree: validation failure should generally be fatal.  (I expect we'll
need fallback behavior for some scenarios, but not validation failures.)

I also would like to point out that there are cases where you might have an
> authoritative server responding to recursive resolvers where there is a
> root of trust between them but where DNSSEC may not be validated:  split
> DNS.  Imagine for a moment that enterprise.example has a hierarchy that
> includes FQDNs like hostname.campus.internal.enterprise.example .  Each
> campus has its own recursive resolver, but they all talk to nameservers
> like ns.internal.enterprise.example.  In cases like those, the desire of
> the enterprise to not show its internal structures may mean that they do
> not wish to use DNSSEC to secure anything in internal, but they likely have
> a shared root of trust between the recursive resolvers and the
> authoritative server.
>

This resembles the ongoing experiment
<https://engineering.fb.com/security/dns-over-tls/> between Facebook and
Cloudflare, where both parties have agreed to speak DoT by hardcoding the
relevant parameters and special-casing the relevant authoritative servers.
They didn't need an ADoT standard to make this possible, because the
connection is a "closed system" based on an agreement between the two
parties.

In your corporate-internal scenario, the recursive and authoritative
servers are even more closely tied, being operated and controlled by the
same party, so a secure upgrade protocol is much less relevant than on the
open internet.  The admins can hardcode whatever authentication procedure
they want.  They can even use pre-shared keys!

Leaving that aspect aside, if we suppose that enterprise.example is a
signed parent zone, and internal.enterprise.example is an unsigned child
zone, we can still potentially enable DNSSEC-rooted ADoT to
ns.internal.enterprise.example, if we can find a way to put its TLSA data
in the parent zone.  I think this is worth attempting.

Put another way, I think you may need to support authentication using PKI
> trust anchors as well.
>

Assuming PKI is used to validate the nameserver's name, I'm not sure it's
sufficient, because this name is potentially attacker-controlled.  If the
parent zone is unsigned, I think opportunistic privacy is likely the best
we can offer.

 regards,
>
> Ted
>
> On Tue, Oct 29, 2019 at 12:01 PM Ted Hardie <ted.ietf@gmail.com> wrote:
>>
>>> Hi Paul,
>>>
>>> On Tue, Oct 29, 2019 at 8:27 AM Paul Hoffman <paul.hoffman@icann.org>
>>> wrote:
>>>
>>>> On 10/29/19 8:02 AM, Ted Hardie wrote:
>>>> > To be sure I understand you correctly, in the second case, the
>>>> connection would be made to some IP address (e.g. NASA's 198.116.4.181).
>>>> The recursive resolver logs the details of the certificate, but it
>>>> continues with the connection even if the CA NASA uses for the certificate
>>>> is not known to the resolver?  What does it do in the face of other
>>>> certificate errors like expired certificates or certificates presenting a
>>>> different name?
>>>>
>>>> It continues. This is exactly how opportunistic encryption is defined.
>>>>
>>>>
>>> Just to be clear, it's my experience that accepting self-signed
>>> certificates from peers does not equate to accepting certificate errors.
>>> The situation in which you set up a connection to n.n.n.n and get a self
>>> signed certificate saying "example.com" and when you set up a
>>> connection to n.n.n.n expecting "example.com" and get a cert back for
>>> "accident.example" are pretty distinguishable. I would expect some
>>> configurations to accept the first without issue; I find accepting the
>>> second deeply odd.
>>>
>>>
>>>> > I have to say that I'm pretty surprised by the idea that TLS in this
>>>> context should behave any differently than TLS in application layer
>>>> contexts, and I'm a little concerned about having configuration options for
>>>> this that amount to "ignore errors of types $FOO".
>>>>
>>>> TLS in application layers can specify that opportunistic encryption,
>>>> yes?
>>>>
>>>>
>>> I think you are using "opportunistic encryption" to mean something
>>> different from what I mean by it.  What I mean by it is "use it when you
>>> can, even if you don't know in advance you can".  Testing for DoT before
>>> using a DNS resolver on UDP 53 and using it if you find it is
>>> "opportunistic encryption", for example.
>>>
>>>
>>>> >  Accepting self-signed certificates is a known configuration, so I
>>>> get that, but if someone has configured roots of trust, accepting other
>>>> certificates outside the roots of trust in the configuration is pretty odd
>>>> practice.
>>>>
>>>> Do you feel that there is a requirement that all recursive resolvers
>>>> use the same set of trust anchors?
>>>
>>>
>>> No.
>>>
>>>
>>>> If not, and if you are against the use of opportunistic encryption in
>>>> this case,
>>>
>>>
>>> See above.  I don't think I'm against opportunistic encryption.  I think
>>> I'm against starting to exchange traffic over a TLS connection with an
>>> identifiable error.  There are degrees there, obviously.  Some folks would
>>> say an expired but correct certificate should be logged but accepted, but a
>>> flat out "wrong name presented" would likely get different treatment.
>>>
>>> who will decide what set of trust anchors all resolvers in all
>>>> jurisdictions will use?
>>>>
>>>>
>>> Everyone will decide who they accept?  That's how the WebPKI works, for
>>> all its shuffling glory, and with ACME/Let's Encrypt it has gotten very
>>> easy to get a certificate that will often be accepted.
>>>
>>> Just my two cents,
>>>
>>> Ted
>>>
>>> --Paul Hoffman
>>>> _______________________________________________
>>>> dns-privacy mailing list
>>>> dns-privacy@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/dns-privacy
>>>>
>>> _______________________________________________
>>> dns-privacy mailing list
>>> dns-privacy@ietf.org
>>> https://www.ietf.org/mailman/listinfo/dns-privacy
>>>
>>