Re: Packet number encryption

Brian Trammell (IETF) <ietf@trammell.ch> Mon, 05 February 2018 08:38 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 85D52129C6B for <quic@ietfa.amsl.com>; Mon, 5 Feb 2018 00:38:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
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 rPWWehkZZvxv for <quic@ietfa.amsl.com>; Mon, 5 Feb 2018 00:38:47 -0800 (PST)
Received: from gozo.iway.ch (gozo.iway.ch [212.25.24.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACC03126BF7 for <quic@ietf.org>; Mon, 5 Feb 2018 00:38:46 -0800 (PST)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 79E07340D4D; Mon, 5 Feb 2018 09:38:45 +0100 (CET)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/6597.7756); Mon, 5 Feb 2018 09:38:45 +0100 (CET)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS; Mon, 5 Feb 2018 09:38:45 +0100 (CET)
Received: from nb-10604.ethz.ch (account ietf@trammell.ch [82.130.102.91] verified) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.18) with ESMTPSA id 44328255; Mon, 05 Feb 2018 09:38:44 +0100
From: Brian Trammell <ietf@trammell.ch>
Message-Id: <5F8F8C9A-4FA3-4493-AAFA-ADF0416B0BA5@trammell.ch>
Content-Type: multipart/signed; boundary="Apple-Mail=_BD474536-C8D6-4ECF-9FCD-4E3B98CFA4AF"; protocol="application/pgp-signature"; micalg="pgp-sha512"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Packet number encryption
Date: Mon, 05 Feb 2018 09:38:45 +0100
In-Reply-To: <2B5B329E-C539-40EA-B8E4-A96861141F52@fb.com>
Cc: QUIC WG <quic@ietf.org>
To: Roberto Peon <fenix@fb.com>
References: <CABkgnnVyo3MmWtVULiV=FJTnR528qfY8-OmKGWAs0bCvri-a_g@mail.gmail.com> <1F7FB3B8-A94C-4354-9944-FB09FB8DB68B@trammell.ch> <CABcZeBMbwdwyC9TxxHBLYaZKfNB-FG2wCGjqUZ_mNR-A1R47FA@mail.gmail.com> <9096e5ec-581e-875a-b1dd-bff0b05206fd@huitema.net> <CABkgnnWRQSAufwPss+qf=xAzCwRYeNNH8XLPm3yFaHxOb+ba4g@mail.gmail.com> <BF80500A-6277-45DC-8525-9C3FE138B76D@tik.ee.ethz.ch> <5A7191E0.6010003@erg.abdn.ac.uk> <5214AD93-8376-4B25-922F-AF5551CC2E95@netapp.com> <F990E064-E6F8-41A3-B791-F776C9955E15@nokia.com> <CAGD1bZab0GaZFsHwC+nw3AxxC4VusxMJ6oDanzk3dSDdWKAXdw@mail.gmail.com> <2C515BE8694C6F4B9B6A578BCAC32E2F83BA1443@MBX021-W3-CA-2.exch021.domain.local> <BY2PR15MB07757473DB9788558B902EB5CDF80@BY2PR15MB0775.namprd15.prod.outlook.com> <6E58094ECC8D8344914996DAD28F1CCD861B7F@DGGEMM506-MBX.china.huawei.com> <BY2PR15MB07758F932FBB87047ACB9D9ACDFE0@BY2PR15MB0775.namprd15.prod.outlook.com> <00f301d39e3d$f15bdf40$d4139dc0$@gmail.com> <2B5B329E-C539-40EA-B8E4-A96861141F52@fb.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/eNRk9PAso_qz1bsamDcHm8Atcec>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 05 Feb 2018 08:38:51 -0000

hi Roberto, all,

(Trimming recipients)

Briefly: this is the approach under development with the IOAM work in the IPPM (and other) working groups; please come by if you‘d like to contribute there.

There are two serious drawbacks of an IOAM-only approach to measurability of encrypted transports.

First, they only allow measurement on the granularity of the tunnels carrying IOAM traffic. As you point out, sometimes that is exactly what you want. Often it isn’t. Requiring an operator to tunnel traffic differently in order to be able to get the measurement aggregates necessary for a given measurement task runs into a Heisenberg problem: you’ve changed the thing you want to measure in trying to measure it.

Second, they only measure the treatment of a traffic flow between tunnel endpoints. This implies that they're good for intranet diagnostics (of aggregates you generally already have) or for diagnostics for tunnel services provided to customers (assuming you ship IOAM-capable CPE for the customer end; this is indeed one of the reasons to standardize this approach). They're bad for diagnosing stuff within an end network (between the tunnel end and the endpoint) or for anything interdomain.

IOAM approaches are an important part of the measurement toolkit, but they're not a replacement for end-to-end signals for all tasks.

Cheers,

Brian


On 5 Feb 2018, at 08:16, Roberto Peon <fenix@fb.com> wrote:

> That depends.
> Arguably, all the network can know (or should know) is on the basis of a 5-tuple, thus the network could assign sequence numbers based on order of arrival of a 5-tuple.
> 
> However, one could do more useful and/or general things: If the intended egress node is known at the ingress point for a packet then, when applying the appropriate route, stamp the packet with a sequence number on/for that route. At that point you’re able to look at reordering across any/all flows within a route. This is a stronger ordering guarantee than is necessary, and thus is sufficient for any individual flow on that route. In my belief, this would be a superior metric for network health detection overall.
> 
> -=R
> 
> From: Roni Even <ron.even.tlv@gmail.com>
> Date: Sunday, February 4, 2018 at 8:58 PM
> To: Roberto Peon <fenix@fb.com>, "'Roni Even (A)'" <roni.even@huawei.com>, 'Piotr Galecki' <piotr_galecki@affirmednetworks.com>, 'Jana Iyengar' <jri@google.com>, "'Fossati, Thomas (Nokia - GB/Cambridge, UK)'" <thomas.fossati@nokia.com>
> Cc: 'Gorry Fairhust' <gorry@erg.abdn.ac.uk>, 'Eric Rescorla' <ekr@rtfm.com>, 'Christian Huitema' <huitema@huitema.net>, "'Eggert, Lars'" <lars@netapp.com>, 'Brian Trammell' <ietf@trammell.ch>, 'Mirja Kühlewind' <mirja.kuehlewind@tik.ee.ethz.ch>, 'QUIC WG' <quic@ietf.org>, 'Martin Thomson' <martin.thomson@gmail.com>
> Subject: RE: Packet number encryption
> 
> Does not it mean that the network need to identify packets  that are from the same quic connection to make such wrapping?
> Roni
> 
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Roberto Peon
> Sent: Monday, February 05, 2018 2:38 AM
> To: Roni Even (A); Piotr Galecki; Jana Iyengar; Fossati, Thomas (Nokia - GB/Cambridge, UK)
> Cc: Gorry Fairhust; Eric Rescorla; Christian Huitema; Eggert, Lars; Brian Trammell; Mirja Kühlewind; QUIC WG; Martin Thomson
> Subject: Re: Packet number encryption
> 
> A network could carry whatever protocol it wished to, i.e. by wrapping any/all packets on ingress to the network, and then un-wrapping when forwarding to another network. This would allow a network to record and track whatever it wanted to without placing constraints on layers which should be above it.
> 
> If the network placed a sequence number on incoming packets, it could detect reordering across all flows. If it do so on a 5-tuple basis, it could detect reordering/duplication/loss across any 5-tuple.
> 
> -=R
> From: Roni Even (A) <roni.even@huawei.com>
> Sent: Saturday, February 3, 2018 11:47:06 PM
> To: Roberto Peon; Piotr Galecki; Jana Iyengar; Fossati, Thomas (Nokia - GB/Cambridge, UK)
> Cc: Gorry Fairhust; Eric Rescorla; Mirja Kühlewind; Eggert, Lars; Brian Trammell; Christian Huitema; QUIC WG; Martin Thomson
> Subject: RE: Packet number encryption
> 
> Hi,
> Network monitoring:
> Networks may always wrap the packet(s) they have received with whatever data they wish, and unwrap before forwarding. This can allow any network to understand ordering,  loss, etc within its boundaries.
> 
> RE- so you are saying that we can for example  leverage  RTP and define RTP payload for QUIC that will carry QUIC packets, we will just need to resolve the MTU size.
> Roni
> 
> 
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Roberto Peon
> Sent: Saturday, February 03, 2018 8:38 PM
> To: Piotr Galecki; Jana Iyengar; Fossati, Thomas (Nokia - GB/Cambridge, UK)
> Cc: Gorry Fairhust; Eric Rescorla; Mirja Kühlewind; Eggert, Lars; Brian Trammell; Christian Huitema; QUIC WG; Martin Thomson
> Subject: Re: Packet number encryption
> 
> Ossification:
> In the past tcp middleboxes expected in-order, monotonically increasing offsets and tried to fix reordering before forwarding. This middlebox behavior, predicated on observable flows, prevented deployment of things which would have made tcp more efficient.
> 
>  This is the kind of non-theoretical ossification that drove the creation of QUIC in the first place.
> 
> Network monitoring:
> Networks may always wrap the packet(s) they have received with whatever data they wish, and unwrap before forwarding. This can allow any network to understand ordering,  loss, etc within its boundaries.
> 
> Debugging:
> Debugging of flows can still happen for flows that wish to be debugged-- the QUIC connection's key material(s) can be shared manually and used by the debugging tool. This is how one debugs http2, https, etc. already today.
> 
> -=R
> 
> 
> 
> -------- Original message --------
> From: Piotr Galecki <piotr_galecki@affirmednetworks.com>
> Date: 2/2/18 7:00 PM (GMT-08:00)
> To: Jana Iyengar <jri@google.com>, "Fossati, Thomas (Nokia - GB/Cambridge, UK)" <thomas.fossati@nokia.com>
> Cc: Gorry Fairhust <gorry@erg.abdn.ac.uk>, Eric Rescorla <ekr@rtfm.com>, Christian Huitema <huitema@huitema.net>, "Eggert, Lars" <lars@netapp.com>, Brian Trammell <ietf@trammell.ch>, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
> Subject: RE: Packet number encryption
> 
> What is the group’s proposal for allowing network monitoring tools to detect packet retransmission or packet reordering ?
> These metrics are pretty straightforward to measure for TCP flows.
> Tools like Wireshark can analyze packets and spot issues.
> How can the network tools perform this kind of measurements for QUIC flows if PN field is encrypted?
> 
> 
> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jana Iyengar
> Sent: Friday, February 02, 2018 9:31 PM
> To: Fossati, Thomas (Nokia - GB/Cambridge, UK) <thomas.fossati@nokia.com>
> Cc: Gorry Fairhust <gorry@erg.abdn.ac.uk>; Eric Rescorla <ekr@rtfm.com>; Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>; Christian Huitema <huitema@huitema.net>; Brian Trammell <ietf@trammell.ch>; Eggert, Lars <lars@netapp.com>; QUIC WG <quic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>
> Subject: Re: Packet number encryption
> 
> A few points as I catch up on this thread.
> 
> First, I'll remind folks that QUIC is an encrypted transport. I say this because the cost of this operation is trivial in the context of encrypting every packet. The cost is borne at the servers and not at middleboxes, so the additional crypto cost is basically trivial.
> 
> Second, this simplifies and increases robustness of implementation. Avoiding random PN jumps, as Kazuho points out, makes special-casing of code unnecessary. Special code that is exercised occasionally is a strong bug attractor, and I would strongly argue for as few of those as possible in implementation.
> 
> Third, yes, ossification is a real concern. A simple example: using increasing packet numbers as a signature for detecting QUIC. Even if you argue against this example, there are innovative ways in which ossification will happen. This is based on a true story: We had no idea how GQUIC's flags field could get ossified, the value that was being used commonly became used as a signature for QUIC traffic (see Section 7.5 in the SIGCOMM QUIC paper).
> 
> There's a win here in terms of implementation complexity and several implementers have said so. There's a win in terms of ossification and our experience says so. There's a potential loss of manageability, in being able to detect reordering. This is the trade-off, and I am still in favor of encrypting packet numbers.
> 
> On Fri, Feb 2, 2018 at 7:32 AM, Fossati, Thomas (Nokia - GB/Cambridge, UK) <thomas.fossati@nokia.com> wrote:
> On 31/01/2018, 10:06, "QUIC on behalf of Eggert, Lars" <quic-bounces@ietf.org on behalf of lars@netapp.com> wrote:
> > On 2018-1-31, at 10:52, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
> > > +1 - Simply: This *is* complicated and seems to add little.
> >
> > So as an implementor (chair hat off), this adds very little to the
> > overall complexity of the protocol.
> 
> This doesn't sound great.  It's a bit like saying that adding the Higgs
> mechanism to the standard model's lagrangian doesn't make it much more
> complicate :-)  (*)
> 
> More seriously though, I'd like to point out that it is not just about
> implementation complexity, it's also the energy cost per packet that is
> quite crucial.  I haven't done the math but ISTM that bringing in
> another batch of non-optional crypto computation on a per packet basis
> is not going to move the needle in the right direction for stacks that
> run on low power (IoT).
> 
> This is not a catastrophe - we have CoAP and a (D)TLS profile - but
> neither it's ideal, since cutting off the small things from the wider
> ecosystem creates an artificial gap which then will need a middlebox to
> bridge.  (Sure, we have specified the behaviour of a similar box
> already, but it'd be really better if the extra translation logic could
> be avoided in the first place.)
> 
> I guess what I'm saying is that PN encryption being a core mechanism
> that can't be negotiated at handshake time reduces our ability to later
> profile QUIC for the IoT, which would be a bit unlucky.
> 
> So the question is: would it be possible to make this property a
> configurable knob instead?
> 
> (*) https://www.symmetrymagazine.org/article/the-deconstructed-standard-model-equation
> 
>