Re: [TLS] Two Multi-CDN proposals

Mike Bishop <mbishop@evequefou.be> Sat, 02 March 2019 01:19 UTC

Return-Path: <mbishop@evequefou.be>
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 B804D130F74 for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 17:19:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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=evequefou.onmicrosoft.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 BkZtWUw7ho1S for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 17:19:04 -0800 (PST)
Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-eopbgr780100.outbound.protection.outlook.com [40.107.78.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D6BBB130E99 for <tls@ietf.org>; Fri, 1 Mar 2019 17:19:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=evequefou.onmicrosoft.com; s=selector1-evequefou-be; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oVK/nvZsGlKLXCrvgJtmcgO+2TYI3APsSE+jf0JtHwI=; b=Jmma6EBC4eht7bMEC4f6Jt9CJU7H2+YDN4M2U31c2sPkenERrEltfQmf4cagvbfFwPw108+YaivSaEBDFDxaS0UxXrXNztOnkjy4a4GNFyGsYFxj5sD01vxozsw/coO7Tmn3RVTeookUvyAeQSO7IyKm+/xC82el/JbPqPStRgQ=
Received: from CY4PR22MB0983.namprd22.prod.outlook.com (10.171.164.151) by CY4PR22MB0854.namprd22.prod.outlook.com (10.171.166.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.14; Sat, 2 Mar 2019 01:19:01 +0000
Received: from CY4PR22MB0983.namprd22.prod.outlook.com ([fe80::76:e309:d27f:23e6]) by CY4PR22MB0983.namprd22.prod.outlook.com ([fe80::76:e309:d27f:23e6%2]) with mapi id 15.20.1665.015; Sat, 2 Mar 2019 01:19:01 +0000
From: Mike Bishop <mbishop@evequefou.be>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>, Eric Rescorla <ekr@rtfm.com>
CC: "<tls@ietf.org>" <tls@ietf.org>
Thread-Topic: [TLS] Two Multi-CDN proposals
Thread-Index: AQHUzrgq/mj86VpJpU6F+CUABXSdh6X0azAAgAAE8gCAAAPrgIAADGqAgACI74CAAlSjMIAAGDIAgAAFzaA=
Date: Sat, 02 Mar 2019 01:19:01 +0000
Message-ID: <CY4PR22MB09835BC1F0C9C9F3D97B4779DA770@CY4PR22MB0983.namprd22.prod.outlook.com>
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> <25005af2-f22d-1ffd-e9ab-f2eba081ef8c@cs.tcd.ie>
In-Reply-To: <25005af2-f22d-1ffd-e9ab-f2eba081ef8c@cs.tcd.ie>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=mbishop@evequefou.be;
x-originating-ip: [2601:600:8080:701:6562:16cc:f21e:4d38]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 6dd2a8b1-e11f-45aa-8995-08d69ead0dc5
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600127)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:CY4PR22MB0854;
x-ms-traffictypediagnostic: CY4PR22MB0854:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <CY4PR22MB08547785736566BDBE4ECF0DDA770@CY4PR22MB0854.namprd22.prod.outlook.com>
x-forefront-prvs: 09645BAC66
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(979002)(136003)(366004)(39830400003)(396003)(376002)(346002)(13464003)(199004)(189003)(51444003)(316002)(74482002)(71200400001)(66574012)(93886005)(52536013)(15974865002)(561944003)(46003)(476003)(53936002)(86362001)(110136005)(25786009)(105586002)(6436002)(68736007)(305945005)(7736002)(8936002)(33656002)(5660300002)(81166006)(2906002)(81156014)(71190400001)(186003)(4326008)(486006)(229853002)(6306002)(508600001)(6116002)(14454004)(6506007)(14444005)(256004)(6246003)(106356001)(97736004)(8676002)(9686003)(74316002)(53546011)(11346002)(102836004)(55016002)(76176011)(446003)(7696005)(99286004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR22MB0854; H:CY4PR22MB0983.namprd22.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: evequefou.be does not designate permitted sender hosts)
x-microsoft-exchange-diagnostics: 1;CY4PR22MB0854;23:BreWTgwoK3cBTAu7ez2fDlAVB3t4KmTUGru8a9jrq7gNYb7sEP1goTcqxMUkLwMn5zhFu3uc4wnPFRsjZweD/dZrkSsTx7P3f7lt9LZicWBVENFmUdVDTJUPSkpl8SUFrkRjcSwM1UlHkVa9JLOB15nfOPtU/qX29RTnBeir8zAE7rx0nO01PjE+psW70i9UFaNnj+DRvXLLqVpwxCvC5+1cu0+Op31vZ5LN/Xmp/HJbz2sTqoGtkBZbuXjf+xALWWSuowlzgughApBXcno9CG86UYWgEaHb0QR0kr/QLW8VkM2vankKUM42DqLsoeb0P/LreimPG81Z/UOampM79pAz84mEi77NKs7h9CsBcw1rwQU+ZfTKHnFPa/l1HbptNzDdzrjMNDuApH5nyh5hdYOwjVDLaCLsl3O0rZc4/I42ZY2Os9swlh6GFbEf1nMiuvAcLAV2d6R9SFPoxvOuaw/jyrVCmq6dq17qLaQCbneETnlG1iid3cQ/nNjJ6JbMAGfU7OFVzJHlqVOiAFYFQxi5kV+sx3nJOCwxl6X7g62mWPIj+FCGeniNJA2L9RcfqSOh/RLwPeYeFh/ErOrbrDSVBWR/XTKCslEwtYvMN+VWPI7aqExZxix6nqhPVjBd/xc6FFQ+B9HbmP+T6UTloXch3+j7K+DSP8APHy1Zs3bzZ8kFeYtrzBGXf2LiTPIvObLt53TfhswDolUvdlBrWjOCzTOipeYCB3B+TIjGIPMnI2mu2DcOzvQHk88z0mfB3Ggr/bQ1zcnoyKOhXddIUm8LIpDloMXuJJvBJO6bzeNWGUAEN/Qlt2snYUI2u96dpgAOy9gykCfl0vElnkivOWHwVDizuZ/WTyUZngl7rR6pCqKpdOoYI7R34ukHSH7lIWzjcPKJgVtoIPFp5i62W8aEiUpnJ9zJJXGNIuq2ywiPvsrJXj4C94McLqegdUKa6YdX6pIGIWORZrXS/x2Vtde8I9YYNXiVhruZ65S66vUM/MeGUiInzgM2KqzzRge02ZAKIdWrM8dK6dBJwy+lZANx6s4OmE3eYtr01CmPATLF9ic4DBTkGTw/D4/KRPRYzbbSxpB+gGjkFE4ONOoXFnEN3jV/rGDKbfzewRP47nuhUN1GilhewwR0mul3HSqy0oqS6XOcVH5B767NzvlV5feCN8NYGU4B+eB4miAdMvVOAKXQYk9vVra4nmw4K1mGR1St1lMRQv6q34D9rYIVZ+yDRs8YR/Hk/6IhadD1WK2vxLP+5lfe2HfkaFndfT4mlBt2+dizy6aqPDh4t7wpODTxCwoJx0UHRjfaq6f25t9C0YwHKj/jdaZt+ZMcPvHoo50aGTK/yi60TfFF4khOe4MF6CUmSbh5hs1Exhcf4m0Om3lpYss8I9s0lOqNa5qqx+/FXYTaJWz2DLdxtyi2PsVHGGuMQiCyKpaY++HWiq7m2Qb1Lq4YWLYuavsCquIT
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: HYHu92n429vpAFuJKRt5JWvpPX4xmaj1kR1PCmT52r3nCvLfTUl5sOcKrya+4vjvorJ7MPf6twSMb6C3pHVWinrEPXdfl/84wQDPCSddzPmpkcC28Al1I8eaWzqOs3wUByfGtjILYhgZJ4fzy5o4v/ngup/CsNvN+6MRz2xVkthogHeE/iqY/wFyyp48iXd6eBaMHXbg/Lvoupbal3mxtjNiow8F+3PYA3Tv1ASWkcVzN9jWEjWtJU9VaPcY91wuvgtHCM8JHNcBhF0dTyqiB7pnytw5d3w4/g8Bze4QoQgnM33ojC8ucFSRxch17IXdtiFHAGgh/ImWOvlUZWwOih/hgQpHJDCows4vngct/iiI/EopzVnUFpVknkrEERhOykIEaBgNeINO54uBnydcutmOvxdrXaHbaMrSwTWolHE=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 6dd2a8b1-e11f-45aa-8995-08d69ead0dc5
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Mar 2019 01:19:01.4782 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 41eaf50b-882d-47eb-8c4c-0b5b76a9da8f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR22MB0854
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/JvMJ20qq2hV8wp2h-812qnU8WPw>
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 01:19:20 -0000

"The issue" the PRs are attempting to solve, not in terms of ESNI all-inclusive.  I think we're on the same page, then, except that I'm confused by two things in your reply that appear to be contradictory:  You want to address the content "and structure" of ESNIKeys now, but in the next paragraph reiterate that you're fine leaving what I see as the structural parts for later.

Reading through the thread again, I think I see at least one concrete issue with the current PRs that you raised:  The PRs currently assumes that they get back a single ESNI record and one or more A/AAAA records.  Depending on the deployment, it's possible that there are multiple ESNIKeys records and the draft explicitly permits this, but PR#137 currently does not describe the handling for that.  (PR#136 doesn't really need to, since it disregards the A/AAAA records.)

However, the more common deployment scenario for multi-CDN would be a single record (per version, eventually) from each CDN; each client would receive only one.

-----Original Message-----
From: Stephen Farrell <stephen.farrell@cs.tcd.ie> 
Sent: Friday, March 1, 2019 3:53 PM
To: Mike Bishop <mbishop@evequefou.be>; Eric Rescorla <ekr@rtfm.com>
Cc: <tls@ietf.org> <tls@ietf.org>
Subject: Re: [TLS] Two Multi-CDN proposals


Hiya,

On 01/03/2019 23:19, Mike Bishop wrote:
> Stephen, there are a couple complicating factors here where I think we 
> all have varying knowledge gaps.
Doubtless. I confess lots of ignorance as to how CDNs operate.

> 
> *   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.`

I agree that we need something that works for both. As there are meta-issues with some privacy mechanisms encouraging more centralisation, I think it's important that we be explicit in considering such, as we've been doing here. (To simplify and paraphrase it a bit: part of my position is that "nothing should preclude" is too weak - ESNI needs to work for both - to the extent possible.)

> *   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.

I agree with all you say except the first one of the two words "the issue" - there is more than one issue at play I'd say:-)

> *
> 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.

It seems I didn't explain myself so well. For my setup the fact that I support DNSSEC (and hence periodic re-signing) makes it easier for me to support periodically acquiring and (re-)publishing ESNIKeys from multiple sources. So having an existing DNSSEC setup helps here.

Other than that, I'm not sure DNSSEC and ESNI have so much to do with one another, given that DNSSEC really doesn't provide any cryptographic linkage when things like MX or CNAME are used in the DNS.

> 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.

I'm not quite sure what you mean but I can think of two things:-

1. I have argued about how the content and structure of ESNIKeys can affect deployment models and manageability, and do think that now is the time to consider both. I maintain that position. And my main points in this thread have all been about how the structure of ESNIKeys could affect deployment models.

2. I think I explicitly said I'm fine with the encoding (TXT vs new
RRTYPE) being handled later. The same goes for a lot of other aspects of the structure of ESNIKeys (but not all). There were a bunch of mails though, so it's likely easy to miss that;-)

Cheers,
S.


> 
> 
> 
> -----Original Message----- From: TLS <tls-bounces@ietf.org> On Behalf 
> Of Stephen Farrell Sent: Thursday, February 28, 2019 2:50 AM To: Eric 
> Rescorla <ekr@rtfm.com> Cc: <tls@ietf.org> <tls@ietf.org> Subject:
> Re: [TLS] Two Multi-CDN proposals
> 
> 
> 
> 
> 
> Hiya,
> 
> 
> 
> On 28/02/2019 02:40, Eric Rescorla wrote:
> 
>> On Wed, Feb 27, 2019 at 5:56 PM Stephen Farrell
> 
>> <stephen.farrell@cs.tcd.ie<mailto:stephen.farrell@cs.tcd.ie>>
> 
>> wrote:
> 
>> 
> 
>>> 
> 
>>> Hiya,
> 
>>> 
> 
>>> On 28/02/2019 01:41, Eric Rescorla wrote:
> 
>>>> I think you're misunderstanding the scenario here: we have two CDNs
> 
>>>> A and B, and some switching service in front, so that when you
> 
>>>> lookup
> 
>>> example.com,
> 
>>>> you get a CNAME to A or B, and then you get the ESNIKeySet
> 
>>> 
> 
>>> (ESNIKeySet is a type you've just invented I guess?)
> 
>>> 
> 
>> 
> 
>> No. I forgot it was named ESNIKeys
> 
>> 
> 
> 
> 
> Phew:-)
> 
> 
> 
>>>> for A or B as
> 
>>>> the case may be. So you're not going to get both ESNIKeys values.
> 
>>> 
> 
>>> Yes, that's not the model I had in mind. I don't recall that
>>> having
> 
>>> been written down but maybe I missed it. (Where should I look?)
> 
>>> 
> 
>> 
> 
>> I believe this was discussed in Bangkok during the discussion of
> 
>> problems with the current structure.
> 
> 
> 
> FWIW, I didn't take from that discussion that we only want that model
> to be supported, but it may have passed me by if that was stated.
> 
> 
> 
>>> The model I had in mind was where the hidden site has it's own
>>> DNS
> 
>>> operator but >1 CDN/front-site with each of those having a
>>> private
> 
>>> ESNI value. (And if there's some front-end DNS cleverness, it'd
>>> kick
> 
>>> in when the CNAME from #137 is being chased down.)
> 
>>> 
> 
>> 
> 
>> I don't see how this is conflicts with what I said above, as that
> 
>> server still needs to ensure consistency.
> 
> 
> 
> I don't think mine conflicts with the model you describe, but I do
> think it has different consequences for how we ought structure the
> ESNIKeys stuff.
> 
> 
> 
> To be more specific, say in my model I have example.com and want to
> see ESNI used for www.example.com<http://www.example.com> and I
> publish the zone for example.com including ESNIKeys.
> 
> 
> 
> Now I want browsers to be able to use either cdn1.example or
> cdn2.example to front for www.example.com<http://www.example.com>
> where those are independent CDNs.
> 
> 
> 
> So I need to update my DNS zone periodically whenever one or other
> CDN changes their ESNI public key share.
> 
> In my tiny little case doing this for a few domains, I already have a
> small infrastructure that allows me to do that kind of thing because
> of the need for regular DNSSEC re-signing. (Mine currently works at a
> weekly or daily cadence, but doing it hourly would be fine.)
> 
> 
> 
> I'd like to do that via a simple update to my zone files without
> having to unpack and re-pack the data structures I get from cdn1 or
> cdn2. Now sure, I could write a new tool to munge together what I get
> from the CDNs but that's more work (that could go wrong) and doesn't
> match my current work flows. And I suspect others may operate
> similarly.
> 
> 
> 
> That's what leads me to think that we'd be better off to have
> multi-valued answers when a browser looks up the RRset at
> _esni.www.example.com with each separate value matching one ESNI
> public share (or one CDN, though I'd argue for one share per zone
> file stanza).
> 
> 
> 
> I don't think that conflicts with your model where
> _esni.www.example.com is one or another CNAME at a given moment but
> it does differ from it.
> 
> 
> 
> There is however some dependency on #137 to get what I want I guess
> using the host_pointer to get the privacy benefit of using a CDN. I
> guess I might need to publish yet another ESNI public share that
> matches the private available at the A/AAAA of
> www.example.com<http://www.example.com> as well as those from the CDN
> even though that may get me less privacy benefit compared to browsers
> who go to cdn1 or cdn2. (It's possible that I'm reading
> 
> #137 wrong though, but I read it as supporting the kind of setup I
> describe here.)
> 
> 
> 
>> In any case, the model I am describing has a consistency problem
>> which
> 
>> needs to be addressed.
> 
> 
> 
>>> PS: I nonetheless maintain my points about the current ESNIKeys
> 
>>> structure - it's over generic and over complex and these PRs can
>>> only
> 
>>> make that worse:-)
> 
>>> 
> 
>> 
> 
>> Yes, I am aware this is your opinion, but I don't agree.
> 
> Fair enough:-) Personally I think that if we support the kind of
> model above, such simplifications may well naturally fall out of that
> work but we'll see I guess.
> 
> For example, I think that'd allow re-structuring the ESNIKeys thing
> so the host_pointer in #137 no longer needs to be an extension and
> hence we don't need the concept of mandatory/critical extensions at
> all.
> 
> 
> 
> Cheers,
> 
> S.
> 
> 
> 
> 
> 
> 
> 
>> 
> 
>> -Ekr
> 
>>