Re: [quicwg/base-drafts] Authenticate connection IDs (#3499)

Christian Huitema <> Sat, 09 May 2020 00:47 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B45693A0406 for <>; Fri, 8 May 2020 17:47:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Status: No, score=-3.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id WKWPgTKF2TDa for <>; Fri, 8 May 2020 17:47:13 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 7D6853A0405 for <>; Fri, 8 May 2020 17:47:12 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id C57B99603CD for <>; Fri, 8 May 2020 17:47:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1588985230; bh=7QTviLXFBtzZbl1JbYJqg1Z69MpaJDrXU2f1V60ROkc=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Fpfi9zCuI0Y49wG3uTvb7mj5o8Smz/3lwvyFMcQIkO91laj8NmdyhYKYQYJGNPxwN vIXbeGuG/XOe0BMhWXfEdxZYxBzroFwFYSAID0IXk/wXo75PI+KnOdl9zx2E5m+72g oAyzPtKtJGYjJexRv4FZpkfwxto6YorzlB4LfFDY=
Date: Fri, 08 May 2020 17:47:10 -0700
From: Christian Huitema <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3499/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Authenticate connection IDs (#3499)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5eb5fd8eb7a12_72a13fe1326cd95c116772"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: huitema
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 09 May 2020 00:47:18 -0000

@huitema commented on this pull request.

> @@ -1475,6 +1475,49 @@ lifetime of a connection, especially in response to connection migration
 ({{migration}}); see {{issue-cid}} for details.
+## Authenticating Connection IDs {#cid-auth}
+The choice each endpoint makes about connection IDs during the handshake is
+authenticated by including all values in transport parameters; see
+{{transport-parameters}}. This ensures that all connection IDs used for the
+handshake are also authenticated by the cryptographic handshake.
+Each endpoint includes the value of the Source Connection ID field from the most
+recent Initial packet it sent in the initial_connection_id transport
+parameter; see {{transport-parameter-definitions}}. A server includes the
+Destination Connection ID field it receives in original Initial packets from the

We already have a definition for an original_connection_id transport parameter (see section of the transport spec, Continuing a Handshake After Retry). From the point of view of the client, we have the following:

1) Without retry:
* Initial DCID: DCID of the first Initial packet sent by the client.
* Server SCID: CID chosen by the server to identify the connection during the handshake. Also used by the client for further Initial or Handshake packets once the client receives a first handshake message from the server.

2) With Retry:
* Original DCID: the DCID in the first Initial packet sent by the client, when that packet triggered a Retry.
* Server suggested DCID: the SCID of the Retry packet sent by the server. 
* Initial DCID: the DCID in the first Initial packet sent by the client in response to the Retry. MUST be set to the Server suggested DCID.
* Server SCID: the SCID chosen by the server to identify the connection. May or may not be the same as Server suggested DCID.

Maybe we should tighten these definitions.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: