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

Kazuho Oku <kazuhooku@gmail.com> Fri, 06 April 2018 04:02 UTC

Return-Path: <kazuhooku@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 5D6C01243FE for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 21:02:29 -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 wcK1WNnloPNP for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 21:02:26 -0700 (PDT)
Received: from mail-pf0-x233.google.com (mail-pf0-x233.google.com [IPv6:2607:f8b0:400e:c00::233]) (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 EC80112420B for <quic@ietf.org>; Thu, 5 Apr 2018 21:02:25 -0700 (PDT)
Received: by mail-pf0-x233.google.com with SMTP id f15so10033706pfn.0 for <quic@ietf.org>; Thu, 05 Apr 2018 21:02:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=UJy6v+8rdRqKiqufi78swQaiKVvJXqslscePGwKSLMs=; b=jO07Mi7tiATznHW6NTpEOL2j8wRfvY3hKoGnYqGhPd5B3o/SYv2gUYrwO10PsRds3I egFZjAVcAgALWRlctKY/j41I46iNppurMJh1hi+lMJGaoc/203he5cBN7wsyzBevPNcl ADxHHbVLLCeXFhpi2yJyWQLIJegJijz7iavOfOEH40QOzMFGR1bHafL/XzzEHikDMjva qmF0B9S68cTy38STmr53aT/HsyH1S/fEUcq7navOhwHM+Rn2PVE994RMDhIANAwVnWeK Z8UTUSMP5ALpXeYqbnZp7Cdh86hyHD4pf2LNckqhkSYn4tMAYF2PKLnRYOzBdDoDXmZu IuPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=UJy6v+8rdRqKiqufi78swQaiKVvJXqslscePGwKSLMs=; b=nX0GCjWYJkZVSPBNAcByzRdL7ecxb3erBmP32v55+iJH7uzQ7RR4GB2XpIt206NFo+ Mz57sUBzuQiBJhveteIi3K++HvENHvbN2iqL/icF2e0IAAZJXzw9mUN2ErDap4r/JbHl eAfZ4udlydfJmvOoLoy2i8qbHXWlziZfgEqzF09zhYQN7daWUsHO65KSTQyNk4kI+pyS 9xlMFtIdDVR3ffbJ5DLqAvv7lJjf4fbqqHgTSE+eBqLn2rY9TOwQTkK5bHLbH2Iu4EIU vI4DBMwSjjatyss1XE4AfeOA8W/3xOvQEQz/6wgZ7CyvCFoOwFpwokCNN3ywPrpbv3Np fgTQ==
X-Gm-Message-State: AElRT7HQgQcNVWEeOyKKRnVm1xqZRVmWrIF4LfjXG9t6mgk+kcUf5aiA ETE2kxTlKwhUfYM6nnpOZcPkMVh2hNdzFgjREaY=
X-Google-Smtp-Source: AIpwx48Xykkx4dZtYCk2IFcYmJst3awtWUPvLL8OdjZhSio8TLwPk0MLRfeVH3mckaImL46IsvdNsBF7IrxRjZqA/T4=
X-Received: by 10.101.86.198 with SMTP id w6mr16614847pgs.294.1522987344086; Thu, 05 Apr 2018 21:02:24 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.145.130 with HTTP; Thu, 5 Apr 2018 21:02:23 -0700 (PDT)
In-Reply-To: <65cf3a3009944ca288a0cd6768d09339@usma1ex-dag1mb5.msg.corp.akamai.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>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 06 Apr 2018 13:02:23 +0900
Message-ID: <CANatvzxwV+F+KqhP9SMy_PqsfoP0A1TCkjcuZY6VdZBnr0U0-w@mail.gmail.com>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: "martin.thomson@gmail.com" <martin.thomson@gmail.com>, "quic@ietf.org" <quic@ietf.org>, "mirja.kuehlewind@tik.ee.ethz.ch" <mirja.kuehlewind@tik.ee.ethz.ch>, "huitema@huitema.net" <huitema@huitema.net>, "fkautz@alumni.cmu.edu" <fkautz@alumni.cmu.edu>
Content-Type: multipart/alternative; boundary="089e0826a784a44cdc0569261fa9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/cJM1PIzseuha-2VQBAOaOcSqZzA>
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:02:29 -0000

2018-04-06 12:48 GMT+09:00 Lubashev, Igor <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]
> *Received:* Thursday, 05 Apr 2018, 10:56PM
> *To:* Martin Thomson [martin.thomson@gmail.com]
> *CC:* Mirja Kühlewind [mirja.kuehlewind@tik.ee.ethz.ch]; QUIC WG [
> quic@ietf.org]; Christian Huitema [huitema@huitema.net]; Frederick Kautz [
> 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>:
>
>> On Fri, Apr 6, 2018 at 12:06 PM, Kazuho Oku <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