RE: Packet number encryption

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Sun, 04 February 2018 17:35 UTC

Return-Path: <mikkelfj@gmail.com>
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 013591275AB for <quic@ietfa.amsl.com>; Sun, 4 Feb 2018 09:35:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.009
X-Spam-Level:
X-Spam-Status: No, score=-0.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 yQWppjkbncFY for <quic@ietfa.amsl.com>; Sun, 4 Feb 2018 09:35:51 -0800 (PST)
Received: from mail-io0-x22f.google.com (mail-io0-x22f.google.com [IPv6:2607:f8b0:4001:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB92B127369 for <quic@ietf.org>; Sun, 4 Feb 2018 09:35:50 -0800 (PST)
Received: by mail-io0-x22f.google.com with SMTP id f4so27932649ioh.8 for <quic@ietf.org>; Sun, 04 Feb 2018 09:35:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=dE4Bf+gqYhFzZJf30tB3qgIJ1XJn1Fqb/NF0eWqeP2o=; b=NSddxIw013Abq4kZ0tK+/JvvEot/jU8yh2hxsDL8tlSn3KtLMFcgtBFpdbqeFIJOs3 YPlzVkaWJ/xSgmiVpC5RNFRLdN0Tzwyv5t7tLchmg7NAtUYZ/j59AJ+u0lJn7/SNG4u8 zhQxBsCV5Ud15XubAZ8rM8ZxXdtVKJR8A/Xy9+ZDZG0hWrWMk3A/WwXCaWwSI8SsHIeZ h0kaoeW9dhagPoN72WVmDSv0qFrnAEwSl+w554WCS+5MlgyrQ+9b5TLfE5lQVjTJIcYl XCAW2HrJ6zo9GRF1Nd+cThQVwZlPsEeZavYSWCQtW531h3ZlbobtG6h+29kn1aln1H4U IJUw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=dE4Bf+gqYhFzZJf30tB3qgIJ1XJn1Fqb/NF0eWqeP2o=; b=KKQKIoEhamX3Ga0+jG1mNo2eCtppZskGW0keQbpzLfZH8u0+POo3KXwTLapxlygRkr RdkXHOSfreSmtBp4tHZvEimcDj2/SWWB/JcetKldjrHzG9l27/1agXYO8i2TgYUiYM9G 2pvmqvmQvaFsry4Ctp/PmU3YEgP/XezDebxyQk25GaUnDHciOpCbdbyOoLZwO/8Fr7Xl eF8RYos/PxKfP8wsZJjOlyxoYbkrm3OE+egy43FHJj56z80c5EsEwtABEFqjn6XoPRnD AFkcyYEIVFVMy9UZHktlNriJsnYOObTUbfjK3HNFwZH54BgS3hxb62RL5Wm9h5y+OUf1 g4Tw==
X-Gm-Message-State: AKwxytc4OaC1wZ0ZUv6ZgMm0sht30JaYPkCuMU7eTcg2mvvV5/lXcuDc 1WoPn56lNGy2lr+s9fVyHAF/NhthipCQv/sdhj8=
X-Google-Smtp-Source: AH8x225UBLXSkDCsdjLAdq+4YqBMfX0EbH1YQDpQ6qMmwQtnHkbzSC+ZYof84e809QPG4xtT/DENQsuvpeah4yd4baE=
X-Received: by 10.107.140.207 with SMTP id o198mr49713243iod.175.1517765750109; Sun, 04 Feb 2018 09:35:50 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Sun, 4 Feb 2018 09:35:48 -0800
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <e529144067624fcba636fc8c24ee3ff4@usma1ex-dag1mb5.msg.corp.akamai.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> <e529144067624fcba636fc8c24ee3ff4@usma1ex-dag1mb5.msg.corp.akamai.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Sun, 04 Feb 2018 09:35:48 -0800
Message-ID: <CAN1APdfnHxa8Uj9vef7NTJssGqdztp7m8NADyJvnyrmAKy4M1A@mail.gmail.com>
Subject: RE: Packet number encryption
To: "Roni Even (A)" <roni.even@huawei.com>, Jana Iyengar <jri@google.com>, Roberto Peon <fenix@fb.com>, "Lubashev, Igor" <ilubashe@akamai.com>, Piotr Galecki <piotr_galecki@affirmednetworks.com>, "Fossati, Thomas (Nokia - GB/Cambridge, UK)" <thomas.fossati@nokia.com>
Cc: QUIC WG <quic@ietf.org>, Brian Trammell <ietf@trammell.ch>, Martin Thomson <martin.thomson@gmail.com>, Eric Rescorla <ekr@rtfm.com>, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, Christian Huitema <huitema@huitema.net>, Gorry Fairhust <gorry@erg.abdn.ac.uk>, "Eggert, Lars" <lars@netapp.com>
Content-Type: multipart/alternative; boundary="94eb2c05a3ec633bed05646660c5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/CGRkJd5uVsSGFts0qZuvlDilXcA>
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: Sun, 04 Feb 2018 17:35:55 -0000

If you need to troubleshoot a network, what prevents you from injecting
probe packets with random content on the same route? The more opaque QUIC
is, the more likely it is that probe packets would behave the same.

For that matter, QUIC could define stateless probe packets that must route
the same as real connections.

Mikkel


On 4 February 2018 at 18.19.16, Lubashev, Igor (ilubashe@akamai.com) wrote:

The need to troubleshoot networks (at a minimum, to detect packet loss and
reordering) is real.  I would assume that every network would need to have
an ability to do so.  Ability to quickly troubleshoot and fix networks is
not only “nice” for the networks themselves, but it is also very beneficial
to QUIC users.



Having networks wrap and unwrap packets at their boundaries is a
possibility, though it has real costs and downsides.  First, while networks
could setup such wrapping for UDP port 443 traffic, what about QUIC traffic
using other ports?  Would networks need to wrap all UDP traffic?  Second,
this does reduce MTU for end users, reducing available bandwidth.  Third,
this would allow networks to only answer questions like: “Is my network the
culprit of the problem?” instead of “Is the problem in my network, upstream
from me, or downstream from me?”.



Would it be considered outrageous to suggest that packet number encryption
be an option negotiated during connection handshake?  An end user client in
“Privacy-Enhanced” mode would negotiate this, while end users not
particularly concerned with connection migration linkability issues would
leave this off?



- Igor





*From:* Roni Even (A) [mailto:roni.even@huawei.com]
*Sent:* Sunday, February 04, 2018 2:47 AM
*To:* Roberto Peon <fenix@fb.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



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 <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 <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
<https://urldefense.proofpoint.com/v2/url?u=https-3A__static.googleusercontent.com_media_research.google.com_en_pubs_archive_46403.pdf&d=DwMGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=C0sUo-LFNBaYfyoaCsf6TA&m=SY87I4v_IqTCGOds-j5NCOwkQ0cJcYHGyKdXmMIVn6I&s=U9o6dI-dwzKwvXHvvmv7WtVm84puvxhaP0cN2of3VvA&e=>
).



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
<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.symmetrymagazine.org_article_the-2Ddeconstructed-2Dstandard-2Dmodel-2Dequation&d=DwMGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=C0sUo-LFNBaYfyoaCsf6TA&m=SY87I4v_IqTCGOds-j5NCOwkQ0cJcYHGyKdXmMIVn6I&s=etIO0AUHiJm8zucsWaTgo-XULFisCMoG2iDvwC69s9Q&e=>