Re: [quicwg/base-drafts] Handling of connection ID in handshake creates corner cases (#843)

Christian Huitema <notifications@github.com> Mon, 09 October 2017 18:12 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 939A4134762 for <quic-issues@ietfa.amsl.com>; Mon, 9 Oct 2017 11:12:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.02
X-Spam-Level:
X-Spam-Status: No, score=-7.02 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, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 b2gyfUrM7xjs for <quic-issues@ietfa.amsl.com>; Mon, 9 Oct 2017 11:12:31 -0700 (PDT)
Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2-ext6.iad.github.net [192.30.252.197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A712134736 for <quic-issues@ietf.org>; Mon, 9 Oct 2017 11:12:31 -0700 (PDT)
Date: Mon, 09 Oct 2017 11:12:30 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1507572750; bh=fsthLolKUcVs23sqfdLOUsf08xqArA1K+P/DR8nZXTY=; h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=z1sOxO2nZ4vPTjBXkfliwSUfQ4wC/r++pXJwdWrRzdrXPGfDPZFypuDCCiYk6qh1L motui6ACqkTGA47+wX1KNroRetWFxj9fWpLmf3P1tboF2TI5HWM6u8jn2G3TWuekmv QrjvnP5d+yBqZiTP06JyGsp9f0KIxnTV1X1C17+4=
From: Christian Huitema <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abbbb9e51a6fda560714ca6403b8a466e8aafae5b892cf0000000115f37e0e92a169ce0fbbdfd8@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/843/335242018@github.com>
In-Reply-To: <quicwg/base-drafts/issues/843@github.com>
References: <quicwg/base-drafts/issues/843@github.com>
Subject: Re: [quicwg/base-drafts] Handling of connection ID in handshake creates corner cases (#843)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_59dbbc0e42f16_64153ffb108e0f30263a9"; 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
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/HZpzy8T8pBBeGoCo_PTVkQwwZWQ>
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: Mon, 09 Oct 2017 18:12:33 -0000

What might work is, look for an ACK Frame in the incoming Server Clear Text, and check that the "largest acknowledged" sequence number matches the sequence number of the client initial packet. Ignore the Server Clear text (and do not update the connection ID) if it does not carry an acknowledgement, or if the acknowledged number does not match the client initial sequence number. But this is not what the spec currently says:
>  5.4.3. Server Cleartext Packet
>
> A Server Cleartext packet uses long headers with a type value of 0x04. It is used to carry acknowledgments and cryptographic handshake messages from the server.
>
> The connection ID field in a Server Cleartext packet contains a connection ID that is chosen by the server (see Section 5.6).
>
> The first Server Cleartext packet contains a randomized packet number. This value is increased for each subsequent packet sent by the server as described in Section 5.7.
>
> The payload of this packet contains STREAM frames and could contain PADDING and ACK frames.

So, if we want to be robust, we may need to update that text: mandate that servers insert an ACK frame in the Server Clear Text, and allow clients to check for presence and value of the ACK frame.

-- 
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/issues/843#issuecomment-335242018