Re: [quicwg/base-drafts] First byte changes (#2006)
janaiyengar <notifications@github.com> Tue, 20 November 2018 01:45 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 074071292AD for <quic-issues@ietfa.amsl.com>; Mon, 19 Nov 2018 17:45:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.47
X-Spam-Level:
X-Spam-Status: No, score=-8.47 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, 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 57IUxM9LnpKX for <quic-issues@ietfa.amsl.com>; Mon, 19 Nov 2018 17:45:36 -0800 (PST)
Received: from out-6.smtp.github.com (out-6.smtp.github.com [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 23FF0124C04 for <quic-issues@ietf.org>; Mon, 19 Nov 2018 17:45:36 -0800 (PST)
Date: Mon, 19 Nov 2018 17:45:35 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1542678335; bh=hJVty9g5sasIISgF9GRbos1IgbZNxN43NlTAviTOQYA=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=dqMfBxxIV+nSjvtkwYFGoyBqSyTVoFr5l/Hw6Wn1Ua12aCgia4lP2clrpbJJsczet bmRFtc0xhb6mJDJtLG7Pg5ylpp4OgyCVWzrM3HBwUMlG3t68AG2rQtDBt2ZrdH3/gw 58cdFyzDAKcuAQBY5WDPR8MWqxpTCaCDHOIJVE8g=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab8a15b879aca65a54e36f77341f0d6f1f5150e09a92cf00000001180b293f92a169ce16b57ba1@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2006/review/176570962@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2006@github.com>
References: <quicwg/base-drafts/pull/2006@github.com>
Subject: Re: [quicwg/base-drafts] First byte changes (#2006)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5bf3673f469ad_3def3fe9fa8d45b812307e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
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/XDlOZijNWai6CBDgpP_qchuM_bI>
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: Tue, 20 Nov 2018 01:45:39 -0000
janaiyengar commented on this pull request.
> @@ -771,10 +771,9 @@ used for QUIC packet protection is the AEAD that is negotiated for use with the
TLS connection. For example, if TLS is using the TLS_AES_128_GCM_SHA256, the
AEAD_AES_128_GCM function is used.
-QUIC packets are protected prior to applying packet number protection
-({{pn-encrypt}}). The unprotected packet number is part of the associated data
-(A). When removing packet protection, an endpoint first removes the protection
-from the packet number.
+Packets are protected prior to applying header protection ({{header-protect}}).
Sigh. Naming. So how about two nouns: "packet protection" and "header protection". They're both imperfect, but at least accurate. I would then eschew usages like "Packets are protected" in favor of "Packet protection is applied".
> +Before a TLS ciphersuite can be used with QUIC, a header protection algorithm
+MUST be specified for the AEAD used with that ciphersuite. This document
+defines algorithms for AEAD_AES_128_GCM, AEAD_AES_128_CCM, AEAD_AES_256_GCM,
+AEAD_AES_256_CCM (all AES AEADs are defined in {{!AEAD=RFC5116}}), and
+AEAD_CHACHA20_POLY1305 {{!CHACHA=RFC8439}}.
+
+
+### Header Protection Sample {#hp-sample}
+
+The header protection algorithm uses both the header protection key and a sample
+of the ciphertext from the packet Payload field.
+
+The same number of bytes are always sampled, but an allowance needs to be made
+for the endpoint removing protection, which will not know the length of the
+Packet Number field. In sampling the packet ciphertext, the Packet Number field
+is assumed to be 4 bytes long (its maximum possible encoded length), unless
This discussion belongs on #1575, and at any rate, I would not make this a reason for blocking this PR. I would argue that we get in what we've agreed on (which is this PR), and then continue discussion on simplification on #1575.
>
-: The fourth bit (0x10) of byte 0 is set to 1.
+: The next two bits (those with a mask of 0x18) of byte 0 are reserved. These
+ bits are protected using header protection (see Section 5.4 of
+ {{QUIC-TLS}}). The value included prior to protection MUST be set to 0. An
This conversation is getting carried away. @igorlord: If the bits can be anything, and if middleboxes start using those bits as scratch space, they're effectively ossified. Endpoints can't use them anymore, since middleboxes might stomp on them in the network. How do we counter that?
>
-: The fourth bit (0x10) of byte 0 is set to 1.
+: The next two bits (those with a mask of 0x18) of byte 0 are reserved. These
+ bits are protected using header protection (see Section 5.4 of
+ {{QUIC-TLS}}). The value included prior to protection MUST be set to 0. An
+ endpoint MUST treat receipt of a packet that has a non-zero value for these
+ bits after removing protection as a connection error of type
+ PROTOCOL_VIOLATION.
Ah, right. @martinthomson it might be worth clarifying that this is "packet protection" (see nomenclature note above)
> confidentiality protection separate from packet protection, as described in
- Section 5.3 of {{QUIC-TLS}}. The length of the packet number field is encoded
+ Section 5.4 of {{QUIC-TLS}}. The length of the packet number field is encoded
in the plaintext packet number. See {{packet-encoding}} for details.
@huitema The Packet Number Length field is the last two bits of the first byte (see 2 paragraphs above).
--
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/2006#discussion_r234842343
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- [quicwg/base-drafts] First octet changes (#2006) Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… janaiyengar
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… ianswett
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… erickinnear
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Dmitri Tikhonov
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… David Schinazi
- Re: [quicwg/base-drafts] First octet changes (#20… Christian Huitema
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… Dirkjan Ochtman
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Marten Seemann
- Re: [quicwg/base-drafts] First octet changes (#20… Christian Huitema
- Re: [quicwg/base-drafts] First octet changes (#20… Kazuho Oku
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First octet changes (#20… MikkelFJ
- Re: [quicwg/base-drafts] First octet changes (#20… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… ianswett
- Re: [quicwg/base-drafts] First byte changes (#200… Christian Huitema
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Mike Bishop
- Re: [quicwg/base-drafts] First byte changes (#200… MikkelFJ
- Re: [quicwg/base-drafts] First byte changes (#200… David Schinazi
- Re: [quicwg/base-drafts] First byte changes (#200… David Schinazi
- Re: [quicwg/base-drafts] First byte changes (#200… Dmitri Tikhonov
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Marten Seemann
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Alexandre Ferrieux
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… janaiyengar
- Re: [quicwg/base-drafts] First byte changes (#200… Kazuho Oku
- Re: [quicwg/base-drafts] First byte changes (#200… MikkelFJ
- Re: [quicwg/base-drafts] First byte changes (#200… janaiyengar
- Re: [quicwg/base-drafts] First byte changes (#200… Igor Lubashev
- Re: [quicwg/base-drafts] First byte changes (#200… Christian Huitema
- Re: [quicwg/base-drafts] First byte changes (#200… Martin Thomson