Re: [quicwg/base-drafts] Change connection ID with Transport Parameters (#1041)
Martin Thomson <notifications@github.com> Tue, 09 January 2018 04:13 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 3495412711A for <quic-issues@ietfa.amsl.com>; Mon, 8 Jan 2018 20:13:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.999
X-Spam-Level:
X-Spam-Status: No, score=-6.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=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 7UuORdNh8Xw5 for <quic-issues@ietfa.amsl.com>; Mon, 8 Jan 2018 20:13:55 -0800 (PST)
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2-ext4.iad.github.net [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 51A61126D3F for <quic-issues@ietf.org>; Mon, 8 Jan 2018 20:13:55 -0800 (PST)
Date: Mon, 08 Jan 2018 20:13:54 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1515471234; bh=0i7kIFJtXE69JW9uSvY/rgQD02BkbfTziDShtEeIT/k=; h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=tr7R0ZIaTf7irD1NYIhYSee6L+neHrMp2Lyy6tHICVMCQOFtWAB+Hhxof/hgPD+B2 rMccfmAfe7QmGtuPgXUzwl5IPy3m8P8wYw9U5vBx3sNYRgcKt+dEz14lR/6vOC+83K C+s/UaA7NLWuu9bpGBvYZ/aTYObyPrmBvMwsd2zQ=
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abc150dd95c4c47cce95f9f43d976de2d63afddbcc92cf00000001166c038292a169ce111aa501@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1041/review/87409147@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1041@github.com>
References: <quicwg/base-drafts/pull/1041@github.com>
Subject: Re: [quicwg/base-drafts] Change connection ID with Transport Parameters (#1041)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5a54418254959_769c3ff8072cef2c2536a"; 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/Sld63ZZNlg7-EAmUpAOi1-QFZR4>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 09 Jan 2018 04:13:57 -0000
martinthomson requested changes on this pull request. I have a few reservations about using transport parameters for this. I know we had some concerns about using NEW_CONNECTION_ID for this, but it might be a better approach. I can already think of at least one gotcha with that, but it's potentially a cleaner model. > @@ -690,14 +690,16 @@ The client MUST choose a random connection ID and use it in Initial packets ({{packet-initial}}) and 0-RTT packets ({{packet-protected}}). When the server receives a Initial packet and decides to proceed with the -handshake, it chooses a new value for the connection ID and sends that in a -Handshake packet ({{packet-handshake}}). The server MAY choose to use the value -that the client initially selects. +handshake, it may chooses a new value for the connection ID and sends that in MAY choose I think > @@ -690,14 +690,16 @@ The client MUST choose a random connection ID and use it in Initial packets ({{packet-initial}}) and 0-RTT packets ({{packet-protected}}). When the server receives a Initial packet and decides to proceed with the -handshake, it chooses a new value for the connection ID and sends that in a -Handshake packet ({{packet-handshake}}). The server MAY choose to use the value -that the client initially selects. +handshake, it may chooses a new value for the connection ID and sends that in +the server_connection_id transport parameter ({{transport-parameter-definitions}}) +of the Handshake packet ({{packet-handshake}}). A transport parameter can't be "of the Handshake packet". You can drop from "of" onward. > -Once the client receives the connection ID that the server has chosen, it MUST +If the client receives a new connection ID that the server has chosen, it MUST Transport parameters are only really available once the handshake completes. For one, they are in TLS EncryptedExtensions, which isn't necessarily right up front. More importantly, though we could release them before the handshake completes, it makes it harder to reason about their authenticity. Given that transport parameters are used for client address validation, that's problematic. > use it for all subsequent Handshake ({{packet-handshake}}) and 1-RTT ({{packet-protected}}) packets but not for 0-RTT packets ({{packet-protected}}). +The server MUST NOT switch to the new connection ID until has received a +packet containing the connection ID from the client. In particular, the I think that it is easier to make the switch with the change to 1-RTT protected packets. Creating another mini-protocol here complicates things considerably. Outside of cases with packet loss (where you can't rely on the client being able to recover the transport parameters), the only real difference is that you are changing the connection ID sent with the client's second flight (it's set of Handshake packets). Now, I agree that there is potentially some value in having the right markings on the client Handshake packets, but maybe the right answer here is to use NEW_CONNECTION_ID. -- 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/1041#pullrequestreview-87409147
- [quicwg/base-drafts] Change connection ID with Tr… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… Martin Thomson
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… Nick Banks
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… Mike Bishop
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… Martin Thomson
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett
- Re: [quicwg/base-drafts] Change connection ID wit… Martin Thomson
- Re: [quicwg/base-drafts] Change connection ID wit… ianswett