Re: [TLS] Can flags be responded to with an extension?

Eric Rescorla <ekr@rtfm.com> Mon, 09 May 2022 15:57 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 B7E41C15E3EB for <tls@ietfa.amsl.com>; Mon, 9 May 2022 08:57:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.897
X-Spam-Level:
X-Spam-Status: No, score=-6.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20210112.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KyHp-B9VRj7Y for <tls@ietfa.amsl.com>; Mon, 9 May 2022 08:57:04 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AFDE2C1595E5 for <tls@ietf.org>; Mon, 9 May 2022 08:57:04 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id k27so16829378edk.4 for <tls@ietf.org>; Mon, 09 May 2022 08:57:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LjcbvpmXPuHeagw3oVlbWFomC/5XqPqHr/fu2UpvuhE=; b=YSJtkwzLtk3na0HQq+DxJv/XG7gw3UIuKoAsAcEt7dGZwSLceWSgGacAzRjilSZdYg MQ3EGuROLAVfirlvjQdhoRYTR1LLbzmKFF0X/723WAVOyHt5fvaHgr4KOG8MhQcaEqOt au/rqWAcIrcVCfK2lSRqgkdDfR7tsUdIB34iujTf4uoXoI8W9//FP3TRBNw/G/9aJ6Gh VZU6+Nj+n50shVcsd0VnVm1OM8HmwlJ2GDL9XS+/OBo/wiGUock6SGD1s/qqNmrlqOaW ej5RfxgcblnZVIS462+B/2cu0I+tFu9OF1iW3mqp0IhsFAxIEXVlBvCsARZAqOAjlfOu GSJQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LjcbvpmXPuHeagw3oVlbWFomC/5XqPqHr/fu2UpvuhE=; b=X6kCKrZeUGpnvN6/jqCGDc87pnDSCcu9UfYFyzv+0h6du1X7gJ108SrKYiIFUQPOno vmcVkU7I2N00rrQw/3M/TB34L7AkSrpCukj7/d0jNM0X1lF8x+SYh+b9Y10Gs5bTulvE qIZfG8nB1MS9TwE/RhNzVO599yqIulB/eQMQl9O+mjtXyGaEgFqs1nnCp+QJ0+xI9560 fvXRyFqHmUhAYpGykCq8Ppz3so+RxBpyfdCs63YJh3LJ+JCyNoAsvAdPO9mPuHwAValE lX23lXLxO+nMWKDZKwXTNRV5A+Ko0tD3uddQOWgKrSiCtSEXoHB/iMy+NQwZOryQIa/8 oqKw==
X-Gm-Message-State: AOAM531N56BSYBD5LrgqUBsgTJQZqS/FCbp26nkt0kCFxQ6lN25JDUFD oGaAyTiaYEWwcVk0ir4W6qRTMplDs3duQo47q9iOcQ==
X-Google-Smtp-Source: ABdhPJxVjccMZXor6iSMqrrsHE1vqEXaSzESg/j/ofBwZRiMJ/SAEnERN3MstWHTa0KXcmN42ByLPWhuxL4v2ns0b20=
X-Received: by 2002:a05:6402:1148:b0:413:11e0:1f58 with SMTP id g8-20020a056402114800b0041311e01f58mr17844304edw.113.1652111822780; Mon, 09 May 2022 08:57:02 -0700 (PDT)
MIME-Version: 1.0
References: <CABcZeBPyqFSgdiUbgKk5QbHnDA_zT8RH_KROebTrUNOnfqZZGQ@mail.gmail.com> <20220413225130.GC3149@akamai.com> <00386759-28C6-4E54-BC9C-1C566D4A0B6D@gmail.com> <20220509154319.GC12383@akamai.com>
In-Reply-To: <20220509154319.GC12383@akamai.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 9 May 2022 08:56:26 -0700
Message-ID: <CABcZeBMmNfEM_uUP7cjA-3eYVp+Wkz6jzuSraNJ=Ua3ov_tVpg@mail.gmail.com>
To: Benjamin Kaduk <bkaduk=40akamai.com@dmarc.ietf.org>
Cc: Yoav Nir <ynir.ietf@gmail.com>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000005394a305de96426c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/roaNLGwf2e8GpKjlFETmy8XG5w8>
Subject: Re: [TLS] Can flags be responded to with an extension?
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.34
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: Mon, 09 May 2022 15:57:05 -0000

On Mon, May 9, 2022 at 8:43 AM Benjamin Kaduk <bkaduk=
40akamai.com@dmarc.ietf.org> wrote:

> On Mon, May 09, 2022 at 06:10:43PM +0300, Yoav Nir wrote:
> >
> >
> > > On 14 Apr 2022, at 1:51, Benjamin Kaduk <bkaduk=
> 40akamai.com@dmarc.ietf.org> wrote:
> > >
> > > On Wed, Apr 13, 2022 at 10:56:49AM -0700, Eric Rescorla wrote:
> > >> Consider the case where the client wants to offer some capability that
> > >> the server then responds to with real data, rather than just an
> > >> acknowledgement.
> > >>
> > >> For instance, supposing the SCT extension from RFC 6962 did not exist,
> > >> the client would want to indicate support in CH and the server would
> > >> send the SCT in CERT, but this extension would need to be non-empty
> > >> and hence not a flag. draft-ietf-tls-tlsflags-09 seems a bit
> > >> uncelar on this point (unless I'm missing it) but I think we
> > >> should explicitly allow it.
> > >
> > > In my head this was already disallowed.  I couldn't swear to whether
> > > we actually talked about it previously or not, though.
> >
> > I’m pretty sure we haven’t discussed this (or at least, I wasn’t in the
> room).  In my head it’s also disallowed.  In the text, it’s not explicitly
> disallowed, but the text does talk about response flags that are in flag
> extensions, not about responses that are in other extensions or other
> messages.  So implicitly disallowed?
>
> I think the description in the abstract of the target class of extension as
> those "that carry no interesting information except the 1-bit indication
> that a
> certain optional feature is supported" also implicitly disallows response
> bodies.
>

Hmm... I don't think this is really the right approach at this stage.

The situation here is that the explicit text is ambiguous. If this were
already an RFC, we would need to try to determine what it meant so that we
could agree how implementations ought to be behaving. In that case, yes, we
would look at this kind of language to attempt to resolve the ambiguity.

However, this is not an RFC and so our task is to make the specification as
unambiguous as possible. At this stage, we should be asking what the
*right* answer is, not what the one that most closely matches the current
ambiguous text. My argument is that the right answer is the one that most
closely embodies the broader goal of saving bandwidth for low-information
signals, in this case the signal that the client could process a given
server extension. So, yes, the client's extension contains no interesting
information but the server's does, which, I think, is consistent with this
text, even if, arguably, it's not the better reading.

I can certainly see arguments against forbidding this practice for
technical reasons (e.g., simplicity), but, again, then the specification
should just say so.

-Ekr