Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Fri, 06 April 2018 04:34 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 1F019127863 for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 21:34:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.01
X-Spam-Level:
X-Spam-Status: No, score=-0.01 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] 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 BHJrCZpnKws3 for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 21:33:57 -0700 (PDT)
Received: from mail-pl0-x230.google.com (mail-pl0-x230.google.com [IPv6:2607:f8b0:400e:c01::230]) (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 A89CF12E87D for <quic@ietf.org>; Thu, 5 Apr 2018 21:33:57 -0700 (PDT)
Received: by mail-pl0-x230.google.com with SMTP id a39-v6so2633519pla.10 for <quic@ietf.org>; Thu, 05 Apr 2018 21:33:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:thread-topic:thread-index:date:message-id :references:in-reply-to:accept-language:content-language :mime-version; bh=w5hryrXAt2CCo6hlxdoKbAJC44MJhgoCHYsCuAeA2RI=; b=B6zaW5bA+8s8S5ewWjjASFyBALkmSHntlTC8O2ekYZQzpIFXe03VHc5xUkmbMpyPlY 1eiAF1qgtRtdTIiDiZ9+pKUqj+VBDm+w0ScNchBIHS7exS614tsgpxDToxaKNg1tjIpQ Szvd3ColM06nsxIHsRd2dM8207wUaCai93ARUeRI4vUcySJ36Clr0GLazL1dhNvZEztz 1mc1FBF9ofWAcM/L3i1NH/mH8yPQTrfPtgJ+8iKs+PD1/rSsM/IU6oaQ6mwEfxp+yGJa 9Pk4SoMKRocNmmffEABjjIL5JgxkHkprC4JtzWU2R0ygBOyeqsoCaEJmCkLGk/90vxdl VQvg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:thread-topic:thread-index :date:message-id:references:in-reply-to:accept-language :content-language:mime-version; bh=w5hryrXAt2CCo6hlxdoKbAJC44MJhgoCHYsCuAeA2RI=; b=ALpbJdtdVnyO2AJg9q7kH1nrwWUI/FIZk3KRvbiFExKBbmTZrmOgVmT1ZXJ/hpGax9 UtNI8wR+7u+cApMPO3+lf0rYGq2sV/NvG8essU8zVwnjyyyaOu9v/+8ZWjI0SKvb202z zwLyRR4fXSR7ycZZAst4L1z+DPIc5RCeIYHDtL5BritMcWXHbT+rajEGp+xgOFbyM1MY HxVDeOeKr/gB0xIowDmyBkpt59TEMlsYb7ZQuGre1FrldnL/KuMePq3w7DSbgrnA6WWr iABvQJoMWjQQ0gjdUxxJA03R3entf7Xa/eiIeatJc/FZlwLZmgt5cpLkoitM4ChFM+GT avGw==
X-Gm-Message-State: AElRT7HZ7wohMB+HHcshM6O1begFVkguMuMIDTHyyBODNIlILNtgpls0 jQzyyt6XH0faFlFzZAIsUng=
X-Google-Smtp-Source: AIpwx4/IDMQ5rTOc9/iREOqFzPh44SbuTrICuxiCpZ/MlhaFf6OYpnVpmTp+0y6AbnAimD/48LYTeg==
X-Received: by 2002:a17:902:bd4a:: with SMTP id b10-v6mr23594027plx.271.1522989237197; Thu, 05 Apr 2018 21:33:57 -0700 (PDT)
Received: from DB6PR10MB1766.EURPRD10.PROD.OUTLOOK.COM ([40.101.73.69]) by smtp.gmail.com with ESMTPSA id d12sm9334405pgq.41.2018.04.05.21.33.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 05 Apr 2018 21:33:56 -0700 (PDT)
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
To: Kazuho Oku <kazuhooku@gmail.com>, "Lubashev, Igor" <ilubashe@akamai.com>
CC: "mirja.kuehlewind@tik.ee.ethz.ch" <mirja.kuehlewind@tik.ee.ethz.ch>, "huitema@huitema.net" <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>, "martin.thomson@gmail.com" <martin.thomson@gmail.com>, "fkautz@alumni.cmu.edu" <fkautz@alumni.cmu.edu>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
Thread-Topic: Privacy holes (was: Re: Getting to consensus on packet number encryption)
Thread-Index: AQHTzPOipWEBPIFckUWx4XrXrFfv2aPyVBsAgAACsQCAAI6BAIAAGGkAgAAH54CAAAZCgIAADoWAgAAD1oCAAAjLpw==
X-MS-Exchange-MessageSentRepresentingType: 2
Date: Fri, 06 Apr 2018 04:33:51 +0000
Message-ID: <DB6PR10MB17669E3FDBABEB0173715F40ACBA0@DB6PR10MB1766.EURPRD10.PROD.OUTLOOK.COM>
References: <7fd34142-2e14-e383-1f65-bc3ca657576c@huitema.net> <BBB8D1DE-25F8-4F3D-B274-C317848DE872@akamai.com> <CAN1APdd=47b2eXkvMg+Q_+P254xo4vo-Tu-YQu6XoUGMByO_eQ@mail.gmail.com> <CAKcm_gMpz4MpdmrHLtC8MvTf5uO9LjD915jM-i2LfpKY384O2w@mail.gmail.com> <HE1PR0702MB3611A67E764EE1C7D1644FAD84AD0@HE1PR0702MB3611.eurprd07.prod.outlook.com> <d8e35569-e939-4064-9ec4-2cccfba2f341@huitema.net> <CACpbDccqKoF-Y1poHMN2cLOK9GOuvtMTPsF-QEen3b30kUo9bg@mail.gmail.com> <CAKcm_gNffwpraF-H2LQBF33vUhYFx0bi_UXJ3N14k4Xj4NmWUw@mail.gmail.com> <40C1F6FE-2B2C-469F-8F98-66329703ED50@mnot.net> <21C36B57-6AE2-40EF-9549-7196D7FA9B45@tik.ee.ethz.ch> <B176FC07-887D-4135-B01E-FE8B4986A5EE@mnot.net> <CAKcm_gOCeocLyrYpOS7Ud332xdz3xHSH0psPN8T6BGRjoL9ptQ@mail.gmail.com> <CY4PR21MB0630FA0EDD343396AD414641B6A40@CY4PR21MB0630.namprd21.prod.outlook.com> <CAN1APde13JTzCvKFFvMd183Fka6QGD1kGBjsa9fcoLrYeA2hsA@mail.gmail.com> <CY4PR21MB0630C0FD4FBECBFEC3C863BBB6A40@CY4PR21MB0630.namprd21.prod.outlook.com> <759C5BE4-DE4C-4A82-929C-B03234B88A37@huitema.net> <CAJGwveB=qs+J2iBQRs3d5jdGuP9yBWoAgv0t3mwD=Wrf6Q5g8g@mail.gmail.com> <F395D018-FFCA-405F-BBD5-1313C6F6DAF9@huitema.net> <CABkgnnWAgGJaKs8teKTURiNDRA61fRhN6pxYQuD1MbkPDqasKQ@mail.gmail.com> <CANatvzwKCqHQB1Mvp0K+Ref507s3YZCzV0xK=SgM9mAyA7s7yg@mail.gmail.com> <CABkgnnWzoL47g3WcWhP549ssP8p65tQMMKQmBD0taymD1A4EfQ@mail.gmail.com> <CANatvzykQLWtNk4VPwkoe4n1nY2K0pdhai=NJeRszK1AM5xU=Q@mail.gmail.com> <65cf3a3009944ca288a0cd6768d09339@usma1ex-dag1mb5.msg.corp.akamai.com>, <CANatvzxwV+F+KqhP9SMy_PqsfoP0A1TCkjcuZY6VdZBnr0U0-w@mail.gmail.com>
In-Reply-To: <CANatvzxwV+F+KqhP9SMy_PqsfoP0A1TCkjcuZY6VdZBnr0U0-w@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
Content-Type: multipart/alternative; boundary="_000_DB6PR10MB17669E3FDBABEB0173715F40ACBA0DB6PR10MB1766EURP_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/csH2Er9zsSZT4yj2Vtqlds-uSYc>
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: Fri, 06 Apr 2018 04:34:01 -0000

So eventually CID's will ossify into certain lenghts by convention to things working smoothly in the general case?

________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Kazuho Oku <kazuhooku@gmail.com>
Sent: Friday, April 6, 2018 6:02:23 AM
To: Lubashev, Igor
Cc: mirja.kuehlewind@tik.ee.ethz.ch; huitema@huitema.net; quic@ietf.org; martin.thomson@gmail.com; fkautz@alumni.cmu.edu
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)



2018-04-06 12:48 GMT+09:00 Lubashev, Igor <ilubashe@akamai.com<mailto:ilubashe@akamai.com>>:
> The length of DCID can be a signal to the stateless load balancers.

Short headers do not have an explicit CID length, so we are back to validating the integrity of CID, no? What am I missing?

Yeah I missed that, apparently. Thank you for pointing that out.

So I would propose to encrypt the type bits _and_ have DCID length in the header in cleartext.

By doing that, it will still be possible for stateless load balancers to determine if a packet is initial (by checking if DCIL is 8) without decrypting the packet, at the same time being impossible for a middlebox to reliably determine the same thing (assuming that some servers will advertise DCID of 8 octets).



-----Original Message-----
From: Kazuho Oku [kazuhooku@gmail.com<mailto:kazuhooku@gmail.com>]
Received: Thursday, 05 Apr 2018, 10:56PM
To: Martin Thomson [martin.thomson@gmail.com<mailto:martin.thomson@gmail.com>]
CC: Mirja Kühlewind [mirja.kuehlewind@tik.ee.ethz.ch<mailto:mirja.kuehlewind@tik.ee.ethz.ch>]; QUIC WG [quic@ietf.org<mailto:quic@ietf.org>]; Christian Huitema [huitema@huitema.net<mailto:huitema@huitema.net>]; Frederick Kautz [fkautz@alumni.cmu.edu<mailto:fkautz@alumni..cmu.edu>]
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)

Hi Martin,

Thank you for the response.. My comments inline.

2018-04-06 11:34 GMT+09:00 Martin Thomson <martin.thomson@gmail.com<mailto:martin.thomson@gmail.com>>:
On Fri, Apr 6, 2018 at 12:06 PM, Kazuho Oku <kazuhooku@gmail.com<mailto:kazuhooku@gmail.com>> wrote:
> If I understand correctly, Christian's concern is that some middleboxes
> might only create a hole if the first packet sent by a client (using a new
> port) looks like a Initial packet.

Oh, I didn't get the same impression, but it does seem like a valid
concern.  The idea I had was to have clients migrate often enough that
those middleboxes will see those migrations and not incorrectly assume
that flows have to start with Initial packets.

Of course, migrating often like this might not provide enough
incentive to avoid that practice because clients will likely make new
connections when the old one fails.  But given that this sort of
failure probably involves a timeout before the repair, it's probably
still noticeable enough to generate support tickets (and incentive to
allow the migration to pass).

Existing middleboxes that pass UDP will be fine, so we at least have
that in our favour.

> 1. frequent gratuitous migration by clients, so that middlebox vendors can
> notice that there design is wrong prior to shipping it

That is what this was angling for.  The question being how frequent.

> 3. mimic 0-RTT handshake when gratuitously switching to a new UDP flow
> (depends on #1262)
>
> 1 and 2 have been discussed on this thread. I haven't yet seen 3 being
> discussed.

It has been suggested a few times elsewhere.  The question is how far
you go: do you send Initial and Handshake packets that use the
handshake packet protection and carry apparently real ClientHello and
ServerHello messages?  Do you restrict the flow of packets to match
0-RTT?

> The concerns so far being raised for 1 is that NATs might run out of
> unassigned ports and that switching to a new path might trigger the restart
> of congestion control on large-scale NATs that use multiple public
> addresses.

That is possible, but it depends on how often you attempt this.  CGNAT
does try to keep IP addresses for the same device stable.  If not,
then a congestion controller reset for relatively infrequent
migrations isn't so bad if heuristics fail.  It's only when you have
very frequent migration that the resets becomes burdensome.

How frequent is the issue here.

If it's too frequent, some NATs could run out of unassigned ports, and if depending on their eviction algorithm, shutdown UDP-based flows running other protocols that do not do gratuitous switching. Other NATs could start assigning new public addresses as they run out of unassigned ports.

If it's too infrequent, then the chance of seeing misimplemented middlebox becomes higher.


> The concern so far being raised for 2 is that stateless load balancers would
> be required to decrypt the type field (or the entire packet, depending on
> how we encrypt) to determine if a packet is trying to initiate a new
> connection.

Yeah, that's hard.  Having the load balancer hit the slow path for
every packet seems pretty fatal.

That was my understanding until I started to consider the impact of symmetric CIDs.

The length of DCID can be a signal to the stateless load balancers for distinguishing an initial packet. If people interested in using that type of load balancer can agree that they will be using CID other than 8 octets, the length can be used as the signal by them.

More detail about using DCID can be found on https://www.ietf.org/mail-archive/web/quic/current/msg03809.html<https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mail-2Darchive_web_quic_current_msg03809.html&d=DwMFaQ&c=96ZbZZcaMF4w0F4jpN6LZg&r=Djn3bQ5uNJDPM_2skfL3rW1tzcIxyjUZdn_m55KPmlo&m=WsJaFd1M4_j4sdAutwoZzcMiZ8Ut8mmyHO9Jn0FAQOI&s=gTP2rfuzpXp0_GdcmG8aA_N4hlvaYnhj6H_CVyXBK10&e=>.

--
Kazuho Oku



--
Kazuho Oku