Re: [TLS] Two Multi-CDN proposals

Nick Sullivan <nick@cloudflare.com> Sat, 02 March 2019 02:39 UTC

Return-Path: <nick@cloudflare.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C211A131093 for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 18:39:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cloudflare.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 CquwcI4Lorcv for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 18:39:18 -0800 (PST)
Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) (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 77DD013108F for <tls@ietf.org>; Fri, 1 Mar 2019 18:39:17 -0800 (PST)
Received: by mail-wr1-x432.google.com with SMTP id w2so27797388wrt.11 for <tls@ietf.org>; Fri, 01 Mar 2019 18:39:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudflare.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sfr1pnaMPg2f2cQJFGtUSuKGHOJdtRtYSehuAq9Taf4=; b=R+SF78mkelv7gCRDl/U7Vs4VJTkdEuiuaHzEuWRvHlQHqHXb09pjfbLyEetTpzGe3A 1M2WjAskYtS55nxXxFVQeoFfM6e6cyuMQo2rFRYOIU4ZDQ4iinhkMNLfNI+2LgmGrYiE hDvEDTWcXtqp8J2xDcGpL28MLN7CoUvH+xyS4=
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=sfr1pnaMPg2f2cQJFGtUSuKGHOJdtRtYSehuAq9Taf4=; b=BbAnH8vG01coPLL5LorHxP2VY8/bPx3dASrtmNM52ZZdNKl1pJdWv8056W9zbUQ4ge cMfZvTA5NRKE3UpQmeXbU5g0z7CiZVmU2OKA8+KRgyoDCzG5XruS1nPhLhFxWz7TcbBa f+6//z4vqvZSM8E4b8j8XmfU9qEKzzg9XHuSfG1a17RwrA5WrVCxrEaUkUxYEIYJTuEm tcik0QJEXqui/AY14r5rWp/GhXxVpWzOy1bPiu6CnGJfR+VQeGzOn0+DJ+wRvfQOMmgg 6LA51UuTlokdyH29+QrH+xh/rBx4bxwGt3cGJ/h9dBLgaXAWj8sK1L8F4xKbxwjaKdqA 115A==
X-Gm-Message-State: APjAAAUAIHDQWHIlV2RKzPUL+sVlFOdSP0eKo7wGOG+7s2FO3y2dWjgm wPbtOdi4HRc6JnjV+qfEWQq+U8dzairf57Tuxl2TSQ==
X-Google-Smtp-Source: APXvYqxpreVf8/QCeqdY0eExxGoSqQrfvz+mlAsoPpS7PnxIH5NhcPtbEFv33C+JUp22niHTZhRz6SmR3OVkmwhTyWs=
X-Received: by 2002:a05:6000:92:: with SMTP id m18mr5253122wrx.258.1551494355716; Fri, 01 Mar 2019 18:39:15 -0800 (PST)
MIME-Version: 1.0
References: <CAO8oSX=sPoLo78oX4qEEyeuck7CxM_uAqYPHEsY7BuYqBUaorg@mail.gmail.com> <0b19d021-8101-23ee-2899-450d103a8906@cs.tcd.ie> <CABcZeBN0mf7VFCKKdg9gH0=tCS7eLZz6M5_WJdaNG7XrJeyESw@mail.gmail.com> <0b854704-8f93-f9ad-c067-67f7f73cbbbf@cs.tcd.ie> <CABcZeBM61u=DtjQh+NkQF47MLyZS4EyuGBjDnsfjxz-z5kfjoQ@mail.gmail.com> <1eaaebf3-6e8a-ae84-0ab3-f977295c0721@cs.tcd.ie> <CY4PR22MB09831CBC251393EE334905D4DA760@CY4PR22MB0983.namprd22.prod.outlook.com> <CAO8oSX=2N=_wvf3L=o6ou=zJaSHE4zpgQDK38QO99+ausYmEpQ@mail.gmail.com>
In-Reply-To: <CAO8oSX=2N=_wvf3L=o6ou=zJaSHE4zpgQDK38QO99+ausYmEpQ@mail.gmail.com>
From: Nick Sullivan <nick@cloudflare.com>
Date: Fri, 01 Mar 2019 18:39:04 -0800
Message-ID: <CAFDDyk_57De_xkXQmhfL_GdojMG0j-=RBhoTFReiCHyArobYWQ@mail.gmail.com>
To: Christopher Wood <christopherwood07@gmail.com>
Cc: Mike Bishop <mbishop@evequefou.be>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000f1b2f00583136dba"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/vApeM1IoO4G_dhv0hcmHMQZ__-M>
Subject: Re: [TLS] Two Multi-CDN proposals
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Mar 2019 02:39:21 -0000

On Fri, Mar 1, 2019 at 6:27 PM Christopher Wood <christopherwood07@gmail.com>
wrote:

> On Fri, Mar 1, 2019 at 3:19 PM Mike Bishop <mbishop@evequefou.be> wrote:
> >
> > Stephen, there are a couple complicating factors here where I think we
> all have varying knowledge gaps.
> >
> > There are two major ways of pointing to a CDN:  Direct A/AAAA records
> and CNAMEs.  The easiest way to handle key update complexities on the part
> of the CDN(s) is simply to CNAME the ESNI query for your domain to their
> ESNI record, but you can certainly directly host your CDN’s keys in your
> domain if you prefer.  Nothing should preclude that.
> > The issue we’re trying to address is when the ESNI record and the A/AAAA
> record follow different CNAME chains and you get the records from different
> hosts.  Of course, if we move to an ESNI RRType with the same hostname (see
> #105), there’s hopefully a single CNAME chain that gets cached at the
> resolver and used when looking up both queries.  If they remain separate
> hostnames, it seems like it gets much easier for them to diverge.
> > It’s my understanding that DNSsec doesn’t play well with returning a
> subset of all extant RRs for a given name+type.  However, some CDNs return
> DNS results tailored to the user’s location; the load-balancing servers
> will (in some cases) return CNAMEs to different targets based on the
> desired traffic share.  That’s not a behavior that maps well to DNSsec as I
> understand it.  You mention DNSsec signing your domain as part of why you
> have issues with the proposal, but I think this is an open issue beyond
> ESNI or these PRs.
> >
> > Maybe someone better-steeped in DNS/DNSsec can help us figure out how
> all that should work, and I agree with you that there are definitely bumps
> here we need to iron out – maybe those are just questions to answer, or
> maybe changes to the structure of the record are warranted.
> >
> > However, these PRs are primarily about what information should be in
> these records and how clients make use of it.  I disagree with you that we
> have to resolve both questions at the same time.  Let’s agree on content
> first, and spent some time separately with DNS folks to see whether the
> content can be more pleasantly arranged.
>
> Thanks all for the discussion so far! Focusing strictly on the content
> of the records and not the formatting, as Mike suggests, we
> essentially have the following:
>
> - #137 gives clients a way to detect A/AAAA+ESNI mismatch and recover,
> at the cost of another sequential DNS query for ESNI. In this change,
> A/AAAA records still control where traffic goes.
> - #136 never requires clients to send a second DNS query for ESNI
> since clients ignore the A/AAAA results. In this change, ESNI records
> dictate routing.
>
> With #137, clients willing to send a second DNS query will get ESNI
> for all supporting providers. Clients unwilling to send a second DNS
> query will only get ESNI for those providers which ensure that their
> A/AAAA and ESNI records very rarely mismatch. With #136, clients only
> get ESNI for those providers capable of building ESNI records with
> correct addresses. In theory, these providers should be the same ones
> that could ensure A/AAAA and ESNI record matching.
>
> Given this, the discussion seems to hinge on the following question:
> Are operators comfortable with the risks of letting ESNI records
> control routing. If so, #136 is probably a better design for said
> operators. If not, then #137 is probably required.


Thanks for the summary, Chris.

Speaking for Cloudflare, we prefer the method described in #136 and would
be willing to implement ESNI records this way.

I have sympathy for organizations with a preference for #137 for
debuggability reasons, but I would rather avoid situations in which the
client needs to do an additional DNS query if avoidable.

I would support the option to include either extension based on operator
preference.


> Note that this does not mean we must choose between #136 and #137
> right now. We can do both (after possibly simplifying #137!), use
> them, and see what works best in practice.
>
> Anyway, I hope this summary accurately captures the differences and
> possible tradeoffs.
>
> Best,
> Chris
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
>