Re: [TLS] WGLC for draft-ietf-tls-cross-sni-resumption

Eric Rescorla <ekr@rtfm.com> Fri, 13 August 2021 19:31 UTC

Return-Path: <ekr@rtfm.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 90B563A2390 for <tls@ietfa.amsl.com>; Fri, 13 Aug 2021 12:31:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.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 OnSp6lQm-NDA for <tls@ietfa.amsl.com>; Fri, 13 Aug 2021 12:31:24 -0700 (PDT)
Received: from mail-il1-x12c.google.com (mail-il1-x12c.google.com [IPv6:2607:f8b0:4864:20::12c]) (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 5FC403A238C for <tls@ietf.org>; Fri, 13 Aug 2021 12:31:24 -0700 (PDT)
Received: by mail-il1-x12c.google.com with SMTP id v2so5758902ilg.12 for <tls@ietf.org>; Fri, 13 Aug 2021 12:31:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NEy2pAo5UKg77WRMX3KHqq9kSN6ks58cWlJW1b63kEo=; b=F2obeP2HSvSed+GQrJB8HiZfz0ZVFrud4x5WZpGBVo908vEH6/ZjSO+Mu6oFQXVrqf qkSaTncrtz+3LxjAi3MzNZ2gv/em9u8yCMYjuEWB1yaPJ91uKA7auJBXFBj767hCUHgP hASIU8Y7LGC0FkUxJFlL6dgmGfn4vFvW7khzcA2ZQtiPInjqatQ2dZNSPeOOqZRxfwhR PapLWEciKUGkDCRP2cpDsVh3zltg+Aee2thgD6fb43xNLnw/mEjkm3uanzowzFaZp3Sb LSgCgRBBNOGxwPD+On8k0c+8Hszb6sXoKplhqlpnw//AKjQC0nmstj9TEgHEFyZ6aE71 e7Fw==
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=NEy2pAo5UKg77WRMX3KHqq9kSN6ks58cWlJW1b63kEo=; b=NEXfpHDHSsrrNhesmfTs1O4ApbER0w6dpVEuIbSsOLZbR0P/h8ftDhqPWic6IXjTjs bB/JxGqMvsDUkGY/LN03gPIjiQN01cAPNs+AyGkRo6Wusljv7hitY6calWaGnHNseHQt VBoWzU5oHWBUidnB8oAXuW4RwFyJwaR71qp4vch65I9HtzuYRVDzMoTQml12FRs0MPAC Df0QV+QG8W0DgsCrTg8jtJKoQRD+BheKql4VsOe9hWIi/zivfLHuWBpdzq1Pe2JoDTN/ t4jcMUrzMYgVYTI/z1HFNBT8BKQYdM2aXJ6osYLfa7PXibTPbvPKYDrXc8IH/cFamosk EyBw==
X-Gm-Message-State: AOAM531gyYgVHlvXrpX3sDASqpustXyoO0nr2bNL4WAKTotMvPaa19ML ySIcN+lMi4YtlcsYGnyQ4eeJfSmMTwssUXKNIdGbZw==
X-Google-Smtp-Source: ABdhPJwbTyLLbjDjmylWKBFKADFtPz5GHEhyig2yNqlK7qJoKTw26Dvfl7gUZ2r3O0YjBEqyCQ6/Q6cbcC9dJQ2zNUw=
X-Received: by 2002:a92:7312:: with SMTP id o18mr2818228ilc.56.1628883082254; Fri, 13 Aug 2021 12:31:22 -0700 (PDT)
MIME-Version: 1.0
References: <0ad354da-5300-4b48-8925-f7ab18cdf235@www.fastmail.com> <8d260f7a-7cbe-4980-9ed2-0120764fc476@www.fastmail.com> <9F2E90F8-3461-4D71-A3E7-A3A9FC5DA8E7@icloud.com> <CAF8qwaDSN40CmwwwbLdXNoYyWmCNepTmcAabHEOAMmG6N=01fQ@mail.gmail.com> <62E46612-F680-4153-A178-EFF8ABD3DAD0@icloud.com> <CAF8qwaCGkmLjYhKeq4oMNndGmb41it+RAhT3aaHU+9OiL3UCXw@mail.gmail.com> <06CDFFDF-FB69-4952-AC5D-9A584DEA8D75@icloud.com>
In-Reply-To: <06CDFFDF-FB69-4952-AC5D-9A584DEA8D75@icloud.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Fri, 13 Aug 2021 12:30:45 -0700
Message-ID: <CABcZeBO-JekxH5P17gUeOUrhmAiVoMY0ypWFouYrdT5wmZxYQA@mail.gmail.com>
To: Carrick Bartle <cbartle891=40icloud.com@dmarc.ietf.org>
Cc: David Benjamin <davidben@chromium.org>, "TLS@ietf.org" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000007fb1b705c975e511"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/NdAYMz15_hXYBf0axiavOYRQKxI>
Subject: Re: [TLS] WGLC for draft-ietf-tls-cross-sni-resumption
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, 13 Aug 2021 19:31:31 -0000

This document seems generally fine. I agree with MT that the security
considerations could be beefed up.

On Wed, Aug 11, 2021 at 3:53 PM Carrick Bartle <cbartle891=
40icloud.com@dmarc.ietf.org> wrote:

> Okay, in that case, I wouldn't use the word "re-validated," since to me
> that sounds like the certificate is to be completely validated again (e.g.
> checking expiration). Instead I would say something like "attempt
> resumption only if the certificate is valid for the new SNI," ideally with
> a reference to the current best practice of how to do that.
>
>
>
> On Aug 11, 2021, at 3:25 PM, David Benjamin <davidben@chromium.org> wrote:
>
> On Wed, Aug 11, 2021 at 5:49 PM Carrick Bartle <cbartle891@icloud.com>
> wrote:
>
>> - Ticket-based PSKs carry over the server certificate from the previous
>> connection
>>
>>
>> What does "carry over" mean here? That the client literally holds on to
>> the certificate and re-evaluates it before resumption? Or just that the
>> trust from evaluating the certificate during the initial handshake also
>> applies to the PSK? Because, AFAICT, the literal ticket isn't required to
>> contain the server certificate.
>>
>
> I meant the latter. Though every TLS stack I've seen does actually retain
> the peer certificate. It's not in the literal ticket (that wouldn't work
> since it's issued by the server), but in the session state the client
> stores alongside the ticket, just like the PSK and other state. This is
> because TLS APIs typically have some kind of function to get the peer
> certificate, and applications typically expect that function to work
> consistently for all connections. That stuff is mostly not in the RFCs
> because it's local state and TLS doesn't define an API.
>
> Anyway, as with any other use of resumption, in order to offer a ticket,
> you need to have retained enough information locally to know that the trust
> from the initial handshake is also good for this connection. This could be
> remembering application context (perhaps by way of separate session
> caches). This could be remembering the whole certificate. This could be
> remembering smaller amounts of information from the certificate. The exact
> details here I don't think TLS should specify, only the conditions on when
> using a session is okay.
>
> David
>
>
>> On Aug 11, 2021, at 2:13 PM, David Benjamin <davidben@chromium.org>
>> wrote:
>>
>> On Wed, Aug 11, 2021 at 5:00 PM Carrick Bartle <cbartle891=
>> 40icloud.com@dmarc.ietf.org> wrote:
>>
>>> >  Notably, it still relies on the server certificate being re-validated
>>> against the new SNI at the
>>> >  session resumption time.
>>>
>>> Where is this specified? I can't find it in RFC 8446. (Sorry if I missed
>>> it.)
>>>
>>
>> Does RFC 8446 actually say this? I haven't looked carefully, but I
>> suspect, if it says anything useful, it's implicit in how resumption works:
>>
>> - If the client offers a PSK, it must be okay with the server
>> authenticating as that PSK for this connection
>> - Ticket-based PSKs carry over the server certificate from the previous
>> connection
>> - Therefore, in order to offer a ticket in a connection, the client must
>> be okay with that previous server certificate in the context of that
>> connection. Server name, trust anchors, and all.
>>
>> This is another one of those cases where cross-SNI resumption is just a
>> more obvious example of a general principle that needs to be written down
>> somewhere in TLS proper. (Even with the same SNI, suppose two different
>> parts of my application use different trust stores. My session resumption
>> decisions must be consistent with that.)
>>
>>
>>> >  However, in the absence of additional signals, it discourages using a
>>> session ticket when the SNI value > does not match ([RFC8446], Section
>>> 4.6.1), as there is normally no reason to assume that all servers
>>> > sharing the same certificate would also share the same session keys.
>>>
>>> It'd be helpful to describe under what circumstances there is reason to
>>> assume that servers that share the same certificate also share the same
>>> session keys (and are able to take advantage of cross-SNI resumption).
>>>
>>>
>>> > On Jul 30, 2021, at 6:57 PM, Christopher Wood <caw@heapingbits.net>
>>> wrote:
>>> >
>>> > Given the few responses received thus far, we're going to extend this
>>> WGLC for another two weeks. It will now conclude on August 13.
>>> >
>>> > Best,
>>> > Chris, for the chairs
>>> >
>>> > On Fri, Jul 16, 2021, at 4:55 PM, Christopher Wood wrote:
>>> >> This is the working group last call for the "Transport Layer Security
>>> >> (TLS) Resumption across Server Names" draft, available here:
>>> >>
>>> >>
>>> https://datatracker.ietf.org/doc/draft-ietf-tls-cross-sni-resumption/
>>> >>
>>> >> Please review this document and send your comments to the list by
>>> July
>>> >> 30, 2021. The GitHub repository for this draft is available here:
>>> >>
>>> >>    https://github.com/vasilvv/tls-cross-sni-resumption
>>> >>
>>> >> Thanks,
>>> >> Chris, on behalf of the chairs
>>> >>
>>> >> _______________________________________________
>>> >> TLS mailing list
>>> >> TLS@ietf.org
>>> >> https://www.ietf.org/mailman/listinfo/tls
>>> >>
>>> >
>>> > _______________________________________________
>>> > TLS mailing list
>>> > TLS@ietf.org
>>> > https://www.ietf.org/mailman/listinfo/tls
>>>
>>> _______________________________________________
>>> TLS mailing list
>>> TLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/tls
>>>
>>
>>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>