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

Kazuho Oku <kazuhooku@gmail.com> Fri, 06 April 2018 02:56 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 87C7D12D947 for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 19:56:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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, 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 4srr9c35lkaj for <quic@ietfa.amsl.com>; Thu, 5 Apr 2018 19:56:42 -0700 (PDT)
Received: from mail-pf0-x231.google.com (mail-pf0-x231.google.com [IPv6:2607:f8b0:400e:c00::231]) (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 51C5C126B72 for <quic@ietf.org>; Thu, 5 Apr 2018 19:56:42 -0700 (PDT)
Received: by mail-pf0-x231.google.com with SMTP id j2so9897911pff.10 for <quic@ietf.org>; Thu, 05 Apr 2018 19:56:42 -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=MLwio2PFdcYc1leW4FU4oUbL2muCfFwMPeFgXFQu16s=; b=Aa6lIrryc4FMQx4UHVEOPULc0LI4a/ilxTnK1dNc0gn5QFz+S37N8OIHAmz/C3yIyN +cSlwx4AY8J0cHx7WeTp7WSaRyAL1SNXF9acskAY88Pnk6XgsgjnR/Ezh6UQscDPHxYX GPGt+lWVxm/xurFVmbdVVn1EqNW2hoPB21y4Wn7+hWu0adZihot4vUMB9dgVThL/m+wX sJUbMJHnk02kmnx1svvkkDQuOgtATu4X4L6Fi0te4TADpuRczC+jE5UJGvExtXTmQRC1 K+vTgiwuaqy7UEQcgC20MsFXeWMB03nSjSP8w/swa5c0kEbVpT874Haydx/DJ0PPVS25 Necg==
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=MLwio2PFdcYc1leW4FU4oUbL2muCfFwMPeFgXFQu16s=; b=LtzMgV0menKXRXn3kMc++jkVsq7x4TeD6bWf/HaL92UKC8NZ0nitUZ6TxVCCVgGzbM K0CCP6wuyPS41nbTXaEjJXBpPBp9a5cvoPLNS0t2Mcxp2VpoyYWrc97nmgNbmgRnqXd8 o5iV7lzmkuwoiX8a62h8teDEmsPEVm9T0aeB0oj9QsmrWZTYg77BGwUOJLtt7HWmcRsG r02PuhQ0m7YLFcTCoJ2dsNfHHY0WMeJBNjwO6G7Vp6C0r0oiMpsnEfhSRiNOAL6UX1R9 UoUlr4DQ3V9UKSq4NvanclaGEi3DHyZ+mv26KB68qIEdaRKq1trhEvqvSIprLrU25kZ2 X8LQ==
X-Gm-Message-State: AElRT7EMhbcWlciAGK64Tw3N8xXBj4cjnTqbqOs4X9px4cUCPUE1fz7a SxZfM2Fm/tfgW7zGms3F0MC4Jvt+2As6K8pqXuo=
X-Google-Smtp-Source: AIpwx48QEomVbmP8n/V3OPtVidyMbKuIbGsfpsLvJ1hbt/b8d/NQJ3gEV6+I7gaPh6eTcVvakpW3ma9ClplY23b031g=
X-Received: by 10.101.89.5 with SMTP id f5mr16425039pgu.428.1522983401727; Thu, 05 Apr 2018 19:56:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.145.130 with HTTP; Thu, 5 Apr 2018 19:56:41 -0700 (PDT)
In-Reply-To: <CABkgnnWzoL47g3WcWhP549ssP8p65tQMMKQmBD0taymD1A4EfQ@mail.gmail.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>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 06 Apr 2018 11:56:41 +0900
Message-ID: <CANatvzykQLWtNk4VPwkoe4n1nY2K0pdhai=NJeRszK1AM5xU=Q@mail.gmail.com>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
To: Martin Thomson <martin.thomson@gmail.com>
Cc: Christian Huitema <huitema@huitema.net>, QUIC WG <quic@ietf.org>, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, Frederick Kautz <fkautz@alumni.cmu.edu>
Content-Type: multipart/alternative; boundary="089e08233f14a8aa45056925346c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/RgphHCpB7Dbffz-09WiRotwZ9Uc>
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 02:56:44 -0000

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.

-- 
Kazuho Oku