Re: [quicwg/base-drafts] Rework HTTP authority/coalescing again (#4808)

Martin Thomson <notifications@github.com> Mon, 25 January 2021 07:11 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E89C23A0B3A for <quic-issues@ietfa.amsl.com>; Sun, 24 Jan 2021 23:11:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.45
X-Spam-Level:
X-Spam-Status: No, score=-1.45 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 64bNYrPP299I for <quic-issues@ietfa.amsl.com>; Sun, 24 Jan 2021 23:11:48 -0800 (PST)
Received: from smtp.github.com (out-21.smtp.github.com [192.30.252.204]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E36C53A0B39 for <quic-issues@ietf.org>; Sun, 24 Jan 2021 23:11:47 -0800 (PST)
Received: from github.com (hubbernetes-node-4ee90c9.ac4-iad.github.net [10.52.112.15]) by smtp.github.com (Postfix) with ESMTPA id 15AFB520E97 for <quic-issues@ietf.org>; Sun, 24 Jan 2021 23:11:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1611558707; bh=iL+V8XcWjJCAlM/SqbCfcFOVMoTwi1+is6hc6Nvcroo=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Kmg0gkN+BnMQvedI4iRKC16WXM1HqvmnK1bjG0rOPs/spHweNwxQq4V2uKjJZpKrH HklpyV8QC0vtw5fFmSU6sPlrOf8jNXV7VjXaMbpdwY9iEDgBewUbzyIiPRMyCRyYPC TE5LFzF/0uJJ2JVzNDAllxVZHWWjazZeVFW1YX5M=
Date: Sun, 24 Jan 2021 23:11:47 -0800
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK3SQMR2G6AK4A5RTPF6DJIDHEVBNHHC6NYGYM@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/4808/review/575107959@github.com>
In-Reply-To: <quicwg/base-drafts/pull/4808@github.com>
References: <quicwg/base-drafts/pull/4808@github.com>
Subject: Re: [quicwg/base-drafts] Rework HTTP authority/coalescing again (#4808)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_600e6f33130e8_7fee1a04544258"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/LvMs6kKlYRbnPxhdodKadAoIxiM>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jan 2021 07:11:50 -0000

@martinthomson commented on this pull request.

Some suggestions.  I think that the certificate retention bit needs a tweak.

> -component of the URL.
-
-If a server presents a valid certificate and proof that it controls the
-corresponding private key, then a client will accept a secured TLS session with
-that server as being authoritative for all origins with the "https" scheme and a
-host identified in the certificate.  The host must be listed either as the CN
-field of the certificate subject or as a dNSName in the subjectAltName field of
-the certificate; see {{!RFC6125}}.  For a host that is an IP address, the client
-MUST verify that the address appears as an iPAddress in the subjectAltName field
-of the certificate.
-
-If the hostname or address is not present in the certificate, the client MUST
-NOT consider the server authoritative for origins containing that hostname or
-address.  See Section 4.3 of {{!SEMANTICS}} for more detail on authoritative
-access.
+component of the URL.  Upon receiving a server certificate in the TLS handshake,

URI?

> +4.3.4 of {{!SEMANTICS}}.  This implies that clients will need to retain the
+server certificate chain; clients which do not do so will be unable to reuse the

I think that this needs to say that it retains the certificate and any information it might need for validation of that certificate (this implies a need for extra information that includes intermediate certificates, CT SCTs, stapled OCSP, and other details the client might depend on).

> -host is derived from a URI, a selected alternative service ({{!ALTSVC}}), or a
-configured proxy.  A client MAY open multiple HTTP/3 connections to the same IP
-address and UDP port using different transport or TLS configurations but SHOULD
-avoid creating multiple connections with the same configuration.
+requests with multiple different URI authority components.  To use an existing
+connection for a new origin, clients MUST validate the certificate presented by
+the server for the new origin server using the process described in Section
+4.3.4 of {{!SEMANTICS}}.  This implies that clients will need to retain the
+server certificate chain; clients which do not do so will be unable to reuse the
+connection for additional origins.
+
+If the certificate is not acceptable with regard to the new origin for any
+reason, the connection MUST NOT be reused and a new connection SHOULD be
+established for the new origin.  If the reason the certificate cannot be
+verified might apply to other origins already associated with the connection,
+the client SHOULD re-validate the server certificate for those origins.

This might need a "for instance", which might be "For instance, if validation of the certificate fails because the certificate expired, then this might be used to invalidate all other origins for which that certificate was used to establish authority."

> +Clients SHOULD NOT open more than one HTTP/3 connection to a given host and port
+pair, where the host is derived from a URI, a selected alternative service
+({{!ALTSVC}}), or a configured proxy.  A client MAY open multiple HTTP/3
+connections to the same IP address and UDP port using different transport or TLS

I know that this is old, but the discontinuity here is jarring.  S1 uses "host and port", S2 uses "IP and port".  I think that the first can be made IP/port, noting that the IP and maybe port is obtained through name resolution, proxy configuration, or alternative services (which might include name resolution).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/4808#pullrequestreview-575107959