Re: [Technical Errata Reported] RFC9204 (7277)

Lucas Pardue <lucaspardue.24.7@gmail.com> Fri, 16 December 2022 12:51 UTC

Return-Path: <lucaspardue.24.7@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 30C3CC1526FF for <quic@ietfa.amsl.com>; Fri, 16 Dec 2022 04:51:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.844
X-Spam-Level:
X-Spam-Status: No, score=-1.844 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 H9hjbNBzWyFB for <quic@ietfa.amsl.com>; Fri, 16 Dec 2022 04:51:13 -0800 (PST)
Received: from mail-oo1-xc2a.google.com (mail-oo1-xc2a.google.com [IPv6:2607:f8b0:4864:20::c2a]) (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 16136C14CE43 for <quic@ietf.org>; Fri, 16 Dec 2022 04:51:13 -0800 (PST)
Received: by mail-oo1-xc2a.google.com with SMTP id w4-20020a4aaf04000000b004a1ab217cecso346981oon.13 for <quic@ietf.org>; Fri, 16 Dec 2022 04:51:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=HHbGt6/omVxYWh3xM6cLbSzt38vAAVnw4twdbBO1iqk=; b=m2jmBxFAGwaCO+x0+gVftM3MpTSd9eUMb5SnqwDk1x2CqHbCLw0y6UlW7xleFNxRte dnBCo8MbzqFk4YCm5/dzJLKXYLEhxmSCioNGOCAC6x5hR5L8h9p6cFLGoky7rELdPbbr voUIUZLfStgAMAtHiFOjgraRBkB+wsGq47YXo2u81msYuzYQy+KuT8vooo9u2gTtBUme 16zBf2YKtyn71VayArP/zdwZ6P7FP+wBCPhtR0nk9/QmXN9SqDr8RulVwhR6oo0yzFIf Ub3pGsBnxsn09XivfHjIjg+XVJH3gqnpA8qIO45Y/sl0GnEIuzgQB/3aJRnc68pXtAWp z7gA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=HHbGt6/omVxYWh3xM6cLbSzt38vAAVnw4twdbBO1iqk=; b=kNIqg4MqWTGkdsZdcohNkp2sh5Rm5CzL8MImiO7jZVSq47SpbU+6rKpDItBZhkM1q7 zLRTg+B48c8TgPNJUHQGRfWTLTPg8tF/5b1K8eMSVqkm6NN3J2UpBZg/TpUrOg/qO0Ja Tg7dtLelyqqLGd02k+PcyOUB3S6I+fEsNW9N87iiLCjPMwXE+qJJkzE+u4sqiYdnys/R UWuPFpKdWhD5c0JsTzKO0YE6HBK6+CUDnYExrvoE8oZxQ4+3/gK4oldlUs4gxCntwSTT zgMeuZTA6CuoTc2tn4Yf5QMCl7rJqc4EQET7kX5oemt0veIrRnlxYAk39YjdnpIwNv4m IAxA==
X-Gm-Message-State: ANoB5pldQ5eQ3s10dK/XEZCNsAhrS469zYC/p/8gS/3xweO4cyuMDavv ZWYO4BwBiBWtxcS0a5pl2ZbwfkUARNZzNlaFFMNap6hofUs=
X-Google-Smtp-Source: AA0mqf7Ygs728C9HHy8FcLkTt/tX5uM/F5xqx1FRDCH/QbWqcMBjxMPeoEMJPwuUMMgIl7onGdps84Yejup8eGxMKGI=
X-Received: by 2002:a4a:aece:0:b0:48b:f37a:c28f with SMTP id v14-20020a4aaece000000b0048bf37ac28fmr32847566oon.36.1671195071841; Fri, 16 Dec 2022 04:51:11 -0800 (PST)
MIME-Version: 1.0
References: <20221215233141.39BA52B443@rfcpa.amsl.com> <b7a486d9-d23b-4d71-8fa3-ca811c14eead@betaapp.fastmail.com> <PA4PR07MB84145558156CF9EE683191F295E69@PA4PR07MB8414.eurprd07.prod.outlook.com>
In-Reply-To: <PA4PR07MB84145558156CF9EE683191F295E69@PA4PR07MB8414.eurprd07.prod.outlook.com>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Fri, 16 Dec 2022 12:51:00 +0000
Message-ID: <CALGR9oZ2WbEfoe+9N7RUgxo4Oy4fxwiFu9pKNVaAb7taE5f4hg@mail.gmail.com>
Subject: Re: [Technical Errata Reported] RFC9204 (7277)
To: Magnus Westerlund <magnus.westerlund=40ericsson.com@dmarc.ietf.org>
Cc: Martin Thomson <mt@lowentropy.net>, "quic@ietf.org" <quic@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000009b8b1c05eff16c0c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/tgmjRvHDPev-mjPQWEM_zqRn5LE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Dec 2022 12:51:17 -0000

Hey,

Arguably from a QPACK perspective, these entries are not useless, since
they can be used by a server that wants to encode a header field with that
name and value. QPACK doesn't have an opinion on header syntax, as long as
the entries in its table meet its own rules things are ok. That can
sometimes surprise people, something higher up the stack has to deal with
validating fields themselves. For a HTTP proxy, if it were passing through
"access-control-allow-credentials: TRUE" it's likely to be doing so
verbatim, and so QPACK offers the chance to do it using a smaller encoding.

It's also worth noting that QPACK encoding can use an indexed field name
without needing to use the value, for instance using the indexed field name
(entry 73 or 74) and a string literal "true". And given the length of the
string "access-control-allow-credentials" there are still compression
savings to be had from using its index instead. Or an implementation could
try to match "access-control-allow-credentials: true" to a static table,
fail and just insert it into their dynamic table without batting an eyelid.

The background to the choice of QPACK static table entries is probably
sumamrised best on
https://github.com/quicwg/base-drafts/wiki/QPACK-Static-Table.

I agree it's unfortunate that we captured some information in the table
that turned out not to be compliant with its related specification. Any
design change to support alternative static tables is going to be hard and
disruptive. A note to say the entry values are non-standard might help.
However, we'd want to understand who the target audience is and whether
they'd really care about what we said.

Cheers
Lucas

On Fri, Dec 16, 2022 at 10:07 AM Magnus Westerlund <magnus.westerlund=
40ericsson.com@dmarc.ietf.org> wrote:

> Hi,
>
>
>
> Isn’t this a Hold for Update case? The table is wrong in the sense that it
> contains useless entries as they don’t represent syntactically correct
> values. And in the future if the static table is revised and a way of
> knowing that the peer uses the revised table this should be addressed. So I
> would think a Hold for Update is an appropriate response to this errata. Or
> even just to clarify in the spec that these are mostly useless.
>
>
>
> Cheers
>
>
>
> Magnus Westerlund
>
>
>
> *From: *QUIC <quic-bounces@ietf.org> on behalf of Martin Thomson <
> mt@lowentropy.net>
> *Date: *Friday, 16 December 2022 at 01:31
> *To: *quic@ietf.org <quic@ietf.org>
> *Subject: *Re: [Technical Errata Reported] RFC9204 (7277)
>
> Unfortunately, I think we have to reject this report.  Though the values
> for these entries might be useless, we can't change this without creating
> interoperability issues.
>
> On Fri, Dec 16, 2022, at 10:31, RFC Errata System wrote:
> > The following errata report has been submitted for RFC9204,
> > "QPACK: Field Compression for HTTP/3".
> >
> > --------------------------------------
> > You may review the report below and at:
> > https://www.rfc-editor.org/errata/eid7277
> >
> > --------------------------------------
> > Type: Technical
> > Reported by: Rory Hewitt <rory.hewitt@gmail.com>
> >
> > Section: Appendix A
> >
> > Original Text
> > -------------
> > In the static table, entry 73 has a value of:
> >
> > access-control-allow-credentials: TRUE
> >
> > and entry 74 has a value of:
> >
> > access-control-allow-credentials: FALSE
> >
> > Corrected Text
> > --------------
> > Entry 73 should have a value of:
> >
> > access-control-allow-credentials: true
> >
> > (note the lower-case value of "true")
> >
> > and entry 74 should NOT EXIST since "FALSE" (in upper-case
> > or lower-case) is not a valid value for this header.
> >
> > Notes
> > -----
> > The "access-control-allow-credentials" header is a CORS header. It only
> > has one allowed value - "true" (without quotes, MUST be in lower-case).
> > Values of "TRUE", "FALSE" and "false" are all invalid values, as is any
> > mixed-case version of "true".
> >
> > See the latest WHATWG spec at
> > https://fetch.spec.whatwg.org/#cors-protocol-and-credentials which
> > notes the required case-sensitivity of the "true" value and that it is
> > the only valid value.
> >
> > Also see the prior W3C spec at
> >
> https://www.w3.org/TR/2020/SPSD-cors-20200602/#access-control-allow-credentials-response-header
> > which says the same thing. Note that the W3C spec was superseded by the
> > WHATWG spec.
> >
> > Note that there are many instances of
> > "access-control-allow-credentials: false" being returned from server
> > responses (which is presumably why these values were added to the
> > table), but they are invalid and the servers that send them are not
> > following the CORS specification.
> >
> > There may be case to be made that the static table is defined to make
> > the QPACK algorithm as performant as possible and therefore it should
> > include not only commonly-used valid values, but also commonly-used
> > invalid values. However, the static table should ideally contain only
> > valid header values.
> >
> > Instructions:
> > -------------
> > This erratum is currently posted as "Reported". If necessary, please
> > use "Reply All" to discuss whether it should be verified or
> > rejected. When a decision is reached, the verifying party
> > can log in to change the status and edit the report, if necessary.
> >
> > --------------------------------------
> > RFC9204 (draft-ietf-quic-qpack-21)
> > --------------------------------------
> > Title               : QPACK: Field Compression for HTTP/3
> > Publication Date    : June 2022
> > Author(s)           : C. Krasic, M. Bishop, A. Frindell, Ed.
> > Category            : PROPOSED STANDARD
> > Source              : QUIC
> > Area                : Transport
> > Stream              : IETF
> > Verifying Party     : IESG
>