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

Kazuho Oku <kazuhooku@gmail.com> Fri, 06 April 2018 05:08 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 246C8127867 for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 22:08:39 -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 0IZRmV3lEHUx for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 22:08:36 -0700 (PDT)
Received: from mail-pf0-x22b.google.com (mail-pf0-x22b.google.com [IPv6:2607:f8b0:400e:c00::22b]) (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 C785912783A for <quic@ietf.org>; Thu, 5 Apr 2018 22:08:36 -0700 (PDT)
Received: by mail-pf0-x22b.google.com with SMTP id o16so4754637pfk.9 for <quic@ietf.org>; Thu, 05 Apr 2018 22:08:36 -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=njlppaPVfnMjAKO6+zY28b0cMFdfPY01KE7zR9TKvzU=; b=KfcoR3pNKRJ3apN1UGLdVZxtN+0ughGCayLk2uJl9ZbTHKzsskqFEar9//OWsVOPtv nlu2vrf6p223kTuNu3zjeKYXdffA5J6PVjlxjQDm0rO4aL/WvLAHHMteKSyip/81XOMl xVjPA7YCtLg5KbmbCm8BKLn8GyovRVDSH5awvPiPFfJszswtr41bclD+YiRdRP1DjHHz iSke9yh1PWj5rJfbhMYZo+sF1jqNQZtFeilw0JfXZ+nbN3wb0e9xDf9pHyeGBwW8VprT CIvDPpEjtJrdCkJxDqHGSBGCYWCulIJy0L7hjDkcG0kIrYm3CBEBB2YsFHgs62cIDrbf HXhA==
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=njlppaPVfnMjAKO6+zY28b0cMFdfPY01KE7zR9TKvzU=; b=tc/C+V1kLYqhnrS1osAmduallJO5AVtdRD0bvMA+4C/r2gzYueOvfLysotgo2fQZKP BPEyO4CzmY9zXF/UaHy4gqTnwoJ1LEGk07GMnMHz85a8TtSOsYOCBcUYfSMYugoixIAA QOZ6oG1PVGifroKPKOBMmGDuejRKPUbqjHGzP5HydLwQF2CIjYYdEEn6D1Fh9L0wb0zR lmuNBMPc+74dFkofoqsPtc5ZUPRmAjIUAWjIKqMrBISyRk3lSjNOG6Wuil08rqgbTgV6 3Gj1W7+CRnNYrp8jWxAMGHO9UNU+IbkCXL/bUos2nZIgCObFaZeU5I20TLXpztch9ftX aMuA==
X-Gm-Message-State: AElRT7FxvagUD1LjeAC01au1/mTt37zvkIeuHmXAXo/3XcmWhan+yG0P xBMH/pCsmlNUjsFyZqJu0MRxO21SnfnBczSK8r8=
X-Google-Smtp-Source: AIpwx49Pqv/8DYDshe6Dy8RsWvUvI3ngYPkv4Y6ewM3EK+6Q04NgMUXD+nXCPD6aV9IBAeiQ3MjqfLBwPqYhnwRRO+s=
X-Received: by 10.98.139.143 with SMTP id e15mr19446241pfl.134.1522991316289; Thu, 05 Apr 2018 22:08:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.145.130 with HTTP; Thu, 5 Apr 2018 22:08:35 -0700 (PDT)
In-Reply-To: <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> <DB6PR10MB17669E3FDBABEB0173715F40ACBA0@DB6PR10MB1766.EURPRD10.PROD.OUTLOOK.COM>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 06 Apr 2018 14:08:35 +0900
Message-ID: <CANatvzwhfy9kLAH5t0eVwr2Kfh_3ToSamPeyCtkUmCSGhcZ=JA@mail.gmail.com>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
To: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
Cc: "Lubashev, Igor" <ilubashe@akamai.com>, "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>
Content-Type: multipart/alternative; boundary="f403045c2f4067503a0569270cdd"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/TIHc4FISSVF3Y_NtZSkEX8i31IE>
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 05:08:39 -0000

2018-04-06 13:33 GMT+09:00 Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>:

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

That is a good point, but I think that the answer is no.

In the long header format, the lengths of CID's are sent in clear in the
latest working version of the draft. And if I recall correctly, people are
interested in greasing the CID lengths by advertising CIDs longer than
necessary against a minor portion of the clients. We assume that the
shortest length of CID is zero, and an endpoint that uses a zero-length CID
can grease it to any length.

To summarize, we will be greasing CID length regardless of if we include it
as part of the short header.


> ------------------------------
> *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>:
>
>> > 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 <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
>



-- 
Kazuho Oku