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

Martin Thomson <martin.thomson@gmail.com> Fri, 06 April 2018 07:45 UTC

Return-Path: <martin.thomson@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 48862128961 for <quic@ietfa.amsl.com>; Fri, 6 Apr 2018 00:45:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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, RCVD_IN_DNSWL_LOW=-0.7, 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 6R3Bg7QWy0gK for <quic@ietfa.amsl.com>; Fri, 6 Apr 2018 00:45:07 -0700 (PDT)
Received: from mail-oi0-x22d.google.com (mail-oi0-x22d.google.com [IPv6:2607:f8b0:4003:c06::22d]) (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 CE76212426E for <quic@ietf.org>; Fri, 6 Apr 2018 00:45:06 -0700 (PDT)
Received: by mail-oi0-x22d.google.com with SMTP id f63-v6so243374oic.4 for <quic@ietf.org>; Fri, 06 Apr 2018 00:45:06 -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:content-transfer-encoding; bh=d79hz63rTVm+OVRGbcn65DimbRP3voQYMEjaCqnGuko=; b=pwVayTsg06td5Gc4k7Ekv/Zjpjgz+XZqELGcCARKlLDYKsDLAQeapQD+KBorHVgBOR qIraLWJus2JMky9SpCIh5uVef+DAJ4aXcbCHKfOPbEk1PaESN6YNByEjW64kK1j1dmUx LQK7Jn/IXlgo3MIgDSEC4jLnScVUMArkx+wKbydcFczRteWJHz5y3jCEgSxjNdjY7FkL nDUNiZsJaquin4eu7eaeupT1Qn0mQu+NIce/+JL8mBpryLDlQ32WYbFL0fIas08XnwNU FlhLaPy+EuNxEMGlPIp3PwVwcT+a1rty+q3F/OABdy3TgndZFeW1TycNVPffu1ixqPh0 0tuw==
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:content-transfer-encoding; bh=d79hz63rTVm+OVRGbcn65DimbRP3voQYMEjaCqnGuko=; b=nBA3jnTeWBZBIxXY8vwD2XYbMemHNSVSDKy8OZoDkqzLrhI4BMP8RakISnPT10jyT5 IceQQH8VODbKC95BsG0HxQ0khl4GcvpN0hVMfFRlOLBl1Q7d/8lPn2lVFtMAgfkxLMZD zJP1SnkP48JrkgeJ7SVB1jmP6p7DajkfeSsKswhob4PcJmc4ViWGUbbZAiA7e7J38dUJ LTsuQvu3pckFZh+kBzDUPs1oNgHAmwqzwmzhqLkQkekiq8biqEsaSElPO3xTXWlJvc1l 609GFr28EJ6GURr1BwBG5hHHBbRIwWI3WCnpMyfNUDi9kJlChHQTo8wgC2btHAZIqrYb WTeg==
X-Gm-Message-State: ALQs6tBlWKPrCzgIFWGxPAkz38k/nbqWs+TZ1UzKQj1s7AISYmUdTnOi N17J3RVH/ucs2uyyaYnvgcHKgC1CmXE/Moe1A88=
X-Google-Smtp-Source: AIpwx4+y28HGFjT7Tyg9nY+ZLXqOFBAwtN56mtZSzyb5R98O0/vck7jWHbOm0R+1KbQRe+lDISKvBpdxNkad6/jrXCI=
X-Received: by 2002:aca:ebd1:: with SMTP id j200-v6mr15375723oih.110.1523000706078; Fri, 06 Apr 2018 00:45:06 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a9d:ac7:0:0:0:0:0 with HTTP; Fri, 6 Apr 2018 00:45:05 -0700 (PDT)
In-Reply-To: <2F06334E-C3DF-4034-A6A4-AF383505D930@trammell.ch>
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> <2F06334E-C3DF-4034-A6A4-AF383505D930@trammell.ch>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 06 Apr 2018 17:45:05 +1000
Message-ID: <CABkgnnX1=h4qx+3YjXj=ZME5ihZbJ2rqE8zeT4j84dJj0ZfZGg@mail.gmail.com>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
To: "Brian Trammell (IETF)" <ietf@trammell.ch>
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: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/FNlPrZTV_FMgg3hRr65v_nrpeJ0>
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 07:45:09 -0000

We do have data about rate of binding creation, courtesy of tests done
for WebRTC.  In essence, bindings can be created at rates that exceed
most needs (I think that they went down to single digit milliseconds,
far lower than I think is relevant here).

Justin Uberti has the numbers, but I struggled to find the email or
slides; we can ask if you care. This result differed from the data
that was available when STUN was first developed, where it was found
that there were non-trivial numbers of NAT devices that lost bindings
below 20ms (see https://tools.ietf.org/html/rfc5245#appendix-B.1).

The question about exhaustion is relevant, I agree.  There, the value
doesn't need measurement as much as asking the right person what their
configuration is.  Take the number of ports open for bindings per IP,
the duration of a binding, and how many clients are expected to be
behind each IP address or how many bindings each client is limited to.
We'd probably need to just ask a few CGNAT operators; anything smaller
is unlikely to be as sensitive as something that runs at a decent
scale.  But getting data in the usual fashion - making bindings until
something breaks - might be a little antisocial.

If we're going to saturate NAT bindings with this, then a signal might
be a good solution.  Or it might just be that we can recommend a rate
limit on these little migrations.  Based on typical timeouts on UDP
(30s is very common, see also experience with ICE), we could say that
a little migration every 10s is OK and you only have each connection
taking 3 bindings.  That doesn't seem that bad.

On Fri, Apr 6, 2018 at 5:16 PM, Brian Trammell (IETF) <ietf@trammell.ch> wrote:
> (Repeating and expanding my comment on #1269 to the list)
>
> +1 to CID rotation being pointless if we don't do this. However, this seems dangerous if not done carefully, and it links CID rotation rate to the maximum usable UDP port consumption rate, which is (most probably) widely variable across access networks and (AFAICT) largely unknown in the literature. We have anecdata here, and we need data.
>
> Note that QUIC presently doesn't have an advisory on-path state clearance signal (we hsd discussed this as a signal bound to public reset in #20, but it morphed into Stateless Reset, which has completely different semantics), which means that there is neither a present nor yet a potential future method to reduce the NAT state load this will generate.
>
> I'd feel a lot less apprehensive about this if there were an advisory, integrity-protected signal meant for path consumption to clear state for a path. Of course it wouldn't be used at all on day one, but the tradeoff it presents is "hey, this is QUIC, it will burn through your UDP port state faster than any other UDP protocol and multiplicatively faster than TCP; but hey look, you can clear state when you see this path-verifiable singal to reduce the impact this has."
>
> Cheers,
>
> Brian
>
>> On 6 Apr 2018, at 02:38, Martin Thomson <martin.thomson@gmail.com> wrote:
>>
>> On Fri, Apr 6, 2018 at 2:08 AM, Christian Huitema <huitema@huitema.net> wrote:
>>>> On Apr 5, 2018, at 8:58 AM, Frederick Kautz <fkautz@alumni.cmu.edu> wrote:
>>>>
>>>> Are you concerned that middleware boxes may be trained to reject migrations, thereby forcing a new connection with a visible negotiation?
>>>
>>> Yes. Hence the need to grease. For example, have clients do some gratuitous migration to a new source port number rather frequently.
>>
>> This seems like a simple fix, particularly since Mike recently added
>> text that suggests occasional use of new connection IDs.  In the
>> spirit of keeping the wheels greased:
>>
>> https://github.com/quicwg/base-drafts/pull/1269
>>
>