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

Martin Thomson <martin.thomson@gmail.com> Fri, 13 April 2018 01:09 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 A8A3712D86B for <quic@ietfa.amsl.com>; Thu, 12 Apr 2018 18:09:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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_NONE=-0.0001, SPF_PASS=-0.001] autolearn=unavailable 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 oXlgmREStKxx for <quic@ietfa.amsl.com>; Thu, 12 Apr 2018 18:09:06 -0700 (PDT)
Received: from mail-ot0-x231.google.com (mail-ot0-x231.google.com [IPv6:2607:f8b0:4003:c0f::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 8DB5012DA43 for <quic@ietf.org>; Thu, 12 Apr 2018 18:09:06 -0700 (PDT)
Received: by mail-ot0-x231.google.com with SMTP id n40-v6so8154492otd.3 for <quic@ietf.org>; Thu, 12 Apr 2018 18:09: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=hzEQHkEJyPonp6AvhlmbjhoOWa1hrArbSeNKU2fhY+Q=; b=KwFIowOyJn082pp8hVn1PeOn7RJQMsm3sTnGTJTlUD4Zv/hJozEd82rpDPATbthJmI ovNRtJZ9qwQo/mSBZO2jCHUUsNHVLONAbim+csJbsqJaGusIiyhMiymhuF0oCcm7KPXS a4EkYDo9ZsLr6pnqBx491fp3QHA94mGSGHxFIewxWFE36tMsL+BEfAoHd12kH4XzE+ki WLvJ1DnlHNU2b9nRNmwHEugNqOgGFS7vLAqa/MCyHUpZnMkBdRxJEOF0XYfmdNSP62es ivP+mahMH1L2qBJjfr6XqFgwwzBAE7H66INeTCficRwJxgZKWpXJVRAIu4Q72u0kKXsc beIQ==
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=hzEQHkEJyPonp6AvhlmbjhoOWa1hrArbSeNKU2fhY+Q=; b=VGPz67Y+VFSBFitzlo65xLDbkIylbl/mJfLM859y7JfcgIHKZFRfSbujP9b11xgtG4 08T9S7/mgwABFF6/OiUx3Yuw6f5Eaafgw9/GR6a4aHCU8425uisWiee9HfdEDfZkzWyC dXa4YJNFdfg2sSbVkkkGHl/oGucFwYKryiFpdpd2L3pEMlDOfe++ttQjH4T+bfV8Vb/N RyyIV2NJ0Hy4BPMn/M0nAGDcU219M2UR8vk4Scgyi1v09lFTr0Q4FGcAAzlsry1K/ipN ++ONcBe1AvPM3ILsayiqmNokn2KQUILWITg3LPOkNjSb/gfBXhmO8dxCSebr67UL/muI p6Qw==
X-Gm-Message-State: ALQs6tAZmsB0OBbST+BoJYAtvwtMC3WkJtwJFfAJmtB4Sl1rt6S/LuG1 BtCNBQCuwT79nmt6k14K1XIwVi003RY+pvwepuI=
X-Google-Smtp-Source: AIpwx48S71QZTfAdoT8FmXAuKuOFa6uRZW7tVp8gCK3KLc/uKnn+uTpSufmD96QBwB3kY0MoZ7LyEtYCMuNu9PkXHpU=
X-Received: by 2002:a9d:7405:: with SMTP id n5-v6mr2098449otk.283.1523581741078; Thu, 12 Apr 2018 18:09:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a9d:ac7:0:0:0:0:0 with HTTP; Thu, 12 Apr 2018 18:09:00 -0700 (PDT)
In-Reply-To: <CANatvzz2-o9VBRb-b_hGMoDTaSVpZkyEKXpgULZOJhHF5+xv2w@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> <B0F49097-F77A-4831-B68B-4266AA880A86@tik.ee.ethz.ch> <759C5BE4-DE4C-4A82-929C-B03234B88A37@huitema.net> <CY4PR21MB063098C907E732B0384B2824B6BE0@CY4PR21MB0630.namprd21.prod.outlook.com> <DM5PR2101MB0901E6C75EDCFDA209714D89B3BE0@DM5PR2101MB0901.namprd21.prod.outlook.com> <CY4PR21MB0630A6C5D63C175F390CC650B6BD0@CY4PR21MB0630.namprd21.prod.outlook.com> <CAKcm_gNW7QsWKfa6x_6ua+63RPtTtxfhYTF9LAODyNw8CjVojA@mail.gmail.com> <CANatvzz2-o9VBRb-b_hGMoDTaSVpZkyEKXpgULZOJhHF5+xv2w@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Fri, 13 Apr 2018 11:09:00 +1000
Message-ID: <CABkgnnUQSR6a5+=XQNZ=7nBC0OKLTmA1L0XuMd2rL--NAcSP2Q@mail.gmail.com>
Subject: Re: Privacy holes (was: Re: Getting to consensus on packet number encryption)
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Praveen Balasubramanian <pravb=40microsoft.com@dmarc.ietf.org>, IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/wPWBpcNkKG9a7ElXpYFnm9jIfYQ>
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, 13 Apr 2018 01:09:13 -0000

This is also my preference, in full realization of the downsides of
that.  Trying to make migration look like a handshake is also really
hard to get right.

On Fri, Apr 13, 2018 at 10:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:
> 2018-04-13 8:36 GMT+09:00 Ian Swett <ianswett=40google.com@dmarc.ietf.org>:
>> Yes, for a powerful adversary, this seems fairly tractable..
>>
>> Making connection migration look like a new connection would likely help a
>> lot.
>
> I am not sure if that is the right path.
>
> We have three ways in which a new set of 5-tuple starts getting used.
>
> * new connection
> * voluntary migration
> * involuntary migration (i.e. NAT rebinding)
>
> For the involuntary migration case, the first packet will always be a
> short header packet.
>
> If we make voluntary migration look like a new connection, the chance
> of involuntary migration getting blocked by a middlebox becomes higher
> (as we have seen gateways blocking the TLS 1.3 records, or the '07'
> case).
>
> Therefore, my preference goes to making all the three cases
> indistinguishable (which is ideal but hard), or keeping voluntary and
> non-voluntary migration look the same (as we do now) at the same time
> making sure that the middlebox developers understand migration happens
> [1].
>
> [1] https://www.ietf.org/mail-archive/web/quic/current/msg03820.html
>
>> On Wed, Apr 11, 2018 at 3:18 PM Praveen Balasubramanian
>> <pravb=40microsoft.com@dmarc.ietf.org> wrote:
>>>
>>> Going back to Christian's original question on privacy holes, there is an
>>> attack for linking IP addresses in the voluntary migration case.
>>>
>>> Let's consider the parking lot problem or in general case losing one
>>> network and roaming to another network. This is the primary use case for
>>> connection migration. In this case all active QUIC connections that can
>>> migrate, will do so. When these connections migrate they can change the CID,
>>> the local port number and packet numbers. However do notice that only the
>>> local 2-tuple changes for each connection, the server's 2-tuple remains the
>>> same.
>>>
>>> Let's assume a powerful adversary can collect a network sniff of all this
>>> traffic and builds a massive dataset. The adversary can then run a machine
>>> learning algorithm to identify time instants where a bunch of connections
>>> change their local 2-tuple at near the same time instant but continue going
>>> to the same server side 2-tuples. This will allow the adversary to link two
>>> IP addresses. The more times the user roams between networks back and forth
>>> the richer the correlation. The more open connections to different servers,
>>> the richer the correlation. Geolocation information can minimize the number
>>> of addresses the adversary needs to correlate.
>>>
>>> The fundamental problem seems to be that the substrate is UDP/IP and it is
>>> in the clear and allows linkability.
>>>
>>> -----Original Message-----
>>> From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Christian Huitema
>>> Sent: Thursday, April 5, 2018 8:34 AM
>>> To: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
>>> Cc: quic@ietf.org
>>> Subject: Privacy holes (was: Re: Getting to consensus on packet number
>>> encryption)
>>>
>>>
>>>
>>> > On Apr 5, 2018, at 2:26 AM, Mirja Kühlewind
>>> > <mirja.kuehlewind@tik.ee..ethz.ch> wrote:
>>> > ...
>>> > Timing doesn’t help here either because you still have the same
>>> > destination IP, both port numbers and the fact that a migrated connection
>>> > does not have a handshake. If we want to address the linkability problem, we
>>> > would need to do much more, probably baring more hits on performance.
>>>
>>> Mirja,
>>>
>>> You rightly point out that the connection ID and the Packet Number are not
>>> the only elements that provide linkability. There is also of course the UDP
>>> source port. That one is not much of an issue for servers, but it is an
>>> issue for clients. We are not spelling that out in the draft. We should,
>>> because clients can trivially close that hole when doing migration.
>>>
>>> I am not sure that the absence of negotiation divulges much data. It marks
>>> the path as originating from a migration, but it does not tell from where.
>>> But there might be an ossification issue. We will get that ossification if
>>> we train middleboxes to believe that connection always start with an
>>> observable negotiation. So maybe we should explore ways to grease that.
>>>
>>> Any other privacy hole that we should fix?
>>>
>>> -- Christian Huitema
>
>
>
> --
> Kazuho Oku
>