Re: [TLS] Two Multi-CDN proposals

Mike Bishop <mbishop@evequefou.be> Fri, 01 March 2019 23: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 373401271FF for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 15:19:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.89
X-Spam-Level:
X-Spam-Status: No, score=-1.89 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, 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 uGt_Y5BbKKmJ for <tls@ietfa.amsl.com>; Fri, 1 Mar 2019 15:19:29 -0800 (PST)
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700126.outbound.protection.outlook.com [40.107.70.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9765124B0C for <tls@ietf.org>; Fri, 1 Mar 2019 15:19:28 -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=7v3l9ZzTAeMAtXHgnVFm6aySu9lUBFJkJTbEh3CWLsI=; b=rNBgcuHLabX7DikuLO3Fi0g7dO0/BBXNMQLexg/JRfFpNxuuTLFgfJ/7H3JTsYJxcUfLlPO63oV3hfUFjhyWjOu2SxZVPEGDm7QDgPBP6ST5TiaZegPtX32ML4UfZs7y0jU/O9Nv6Yn4KN7asB8pQJ2UHWkFUzvkqrz3S8JhPw8=
Received: from CY4PR22MB0983.namprd22.prod.outlook.com (10.171.164.151) by CY4PR22MB0264.namprd22.prod.outlook.com (10.173.192.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.14; Fri, 1 Mar 2019 23:19:24 +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; Fri, 1 Mar 2019 23:19:24 +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+CUABXSdh6X0azAAgAAE8gCAAAPrgIAADGqAgACI74CAAlSjMA==
Date: Fri, 01 Mar 2019 23:19:24 +0000
Message-ID: <CY4PR22MB09831CBC251393EE334905D4DA760@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>
In-Reply-To: <1eaaebf3-6e8a-ae84-0ab3-f977295c0721@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: 9cf99ccc-94a8-429e-e3c1-08d69e9c580e
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:CY4PR22MB0264;
x-ms-traffictypediagnostic: CY4PR22MB0264:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <CY4PR22MB02646309BCF67AD8294B26CDDA760@CY4PR22MB0264.namprd22.prod.outlook.com>
x-forefront-prvs: 09634B1196
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(39830400003)(376002)(396003)(366004)(346002)(51444003)(13464003)(189003)(199004)(53386004)(6116002)(790700001)(74316002)(106356001)(2906002)(97736004)(6246003)(7736002)(14444005)(256004)(508600001)(66574012)(71190400001)(4326008)(68736007)(71200400001)(606006)(561944003)(105586002)(14454004)(6306002)(54896002)(33656002)(55016002)(86362001)(9686003)(76176011)(229853002)(8676002)(236005)(46003)(6436002)(486006)(316002)(110136005)(186003)(8936002)(93886005)(81166006)(81156014)(53936002)(7696005)(74482002)(102836004)(99286004)(52536013)(5660300002)(25786009)(11346002)(446003)(476003)(6506007)(53546011); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR22MB0264; H:CY4PR22MB0983.namprd22.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: evequefou.be does not designate permitted sender hosts)
x-microsoft-exchange-diagnostics: 1;CY4PR22MB0264;23:yYqQMV8QEksFByfPPBp5sfzLgGGGRMDncp/l2mpDQefofoGrybWTCl8a9teeRwj97Bss/EqIFcIOt+hpi4iD4QtaknRsLgVboNoZ63Az9cC8zu6vUY+j3AqaZWq0+SqFDWZR9rAO1s5ao75+QNE5y5BVH44kZpm7sACNM963r3syBLOQslnKAeGBcEVMaqo4OHM9q2QQRJMzZ2OaE8eVdMR10AMLGlvNnk1XreqzP4c0YO3+7sMFK+axBrjp0mDlqLXNIsOb3GkJNtUMX4T74rIX1dJhPz7N3ZvfTCEAXTBa0IfgLvX3BQixWWR5jS2ZP8j1F/YIpIBKipwlPOy9hvW8JSsBSjX0v6SD+K2dBA3JCAFVF+aaFXIq3DAdxenS43IWf0PrBA99gzkS7poL5U7tzF7bjmdcaEfIb9qZMO7+WrLeR97GzTQwJyCWOJt3Trgw26cFLsHga6Qy9iefgLq5gYdVM337NcV2qVBFEYsDV64iJIKYTdyhUp+L4MSbOMrdSKqJk5l7CeNdJXM4jfU1sAiwD94Bx/Tq7mVkZMS7qduPWcEPeFM7GjMOguIpfor07yvEpxDmvYevhbiZi9O62qwwQ66D+bC1EB1t3la4vQl0mgnZOCtf8uenOHm22AmvEONf3n2T46fSDhYQtAbBlu5eOFpgc6cYOPJV3wZQh6f/ZHIqmUD+rBsgKW5x1zLyRZvxZZT/pnKrpBmPXEwH+V/2afbop8pcC/JnalMnG782O7diz3YRy39HwO+YhyN5KCdh91oH48UsKRLvlEogwfrtsalQBw+GE7QW+U4ZLhYHUODXIjeIm7Z95o5tWa0XKyByS1vvWzAwZI5L09Aemhnqd619/BYqSKm4LXpju1dSIcKAMJIUVja0rE35drnprzzfHQOQ2gd/xHa6tFrUoNKSqvIZqHlw7m1lS911T4s7izyY6Pp4A5an4w7HPmaMggzjv/NjYgsOgNzCftJDzM4AVuqK3q2Aiw3n+mQx/2CcC8lVXPR8zSBQMfEy2eE0Shi7GucXc57A0il7/y8DRJ3qrUFPx/2VyvVAFeuIfZ5t6Vqp1r1xm/S0CzAFUC4PJveJij+ny/N11pP1mSuAY84NIp9zcgAFYVVDEzaovI5bIkwR/NS7BSG76//e31DaR2BJHG9jg49zEtmyYtdpWLRk6pmMRT9IQCMLXE+4ORsTQ1057EQRLrh7GUwEwcnmXofC0UetiUIMi9Ybvfv6jKCEF+2XisdaEWm0nrqFhYJgg3NTjQnSWqHUZ0IB+3ec5IK/8BhE5gYutb6PSJEKyi/qvz62XAHFQy9uxiUHiQ/ovYcscVaJe3kiNqECXU2Jcho7b2GmMbeKIdVkNxfg+20T0bsJXK6FHsJg46Nt4DTsfJjeqnLPocMaEusEwAx/I6tMoAaBNudYXjOMhA==
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: ujNPxwpHdXzzUIy2k+OclORru/slsXlKNvbE3RcfzQSK5iYVK7nMcuUKKJS5SoXhKiF3c/pG+vuGXCfeX/cXIe8fym3AX51a8RJkt++KlOVOo+1Lm+RXND7B41nlDU3YWDB74Gp/u1jp6zCS2hzkFc9TvCinxs3AIeZ1z2h+Vu8/OffeyHNpNfTvNXa/IFKP/0ruSuuXGNqX9UFz9v1GQ4c/aFBtPtpkwFzpfmySKYbhHnG6h00wePURaoKRK8owvF4w2pFH7giHDQ+YBTrFMyVoFW4IrfqiRR/QW0iUgZUeqPc4p6/w2PUzRwkcqIH3y0SzlFL20vMYaEihmJZC65KCPte0gEJ4QOopTC0qYG7ijQ313turizFl5fzYOyJ2y+I3WwL8XRTuMqw74rXQJfcCKAyf39ToM6k0PAeRsok=
Content-Type: multipart/alternative; boundary="_000_CY4PR22MB09831CBC251393EE334905D4DA760CY4PR22MB0983namp_"
MIME-Version: 1.0
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 9cf99ccc-94a8-429e-e3c1-08d69e9c580e
X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2019 23:19:24.7970 (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: CY4PR22MB0264
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/f9ljVHY0vagOc9LXqigpXhV8grk>
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: Fri, 01 Mar 2019 23:19:34 -0000

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.



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

>