Re: [TLS] About encrypting SNI - Traffic Analysis Attacks?

Nico Williams <nico@cryptonector.com> Tue, 13 May 2014 20:20 UTC

Return-Path: <nico@cryptonector.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B00E1A01EF for <tls@ietfa.amsl.com>; Tue, 13 May 2014 13:20:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.044
X-Spam-Level:
X-Spam-Status: No, score=-1.044 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
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 Fk_gqJjm1-G3 for <tls@ietfa.amsl.com>; Tue, 13 May 2014 13:20:39 -0700 (PDT)
Received: from homiemail-a103.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) by ietfa.amsl.com (Postfix) with ESMTP id 389161A01BA for <tls@ietf.org>; Tue, 13 May 2014 13:20:25 -0700 (PDT)
Received: from homiemail-a103.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a103.g.dreamhost.com (Postfix) with ESMTP id 766C52007F222 for <tls@ietf.org>; Tue, 13 May 2014 13:20:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h= mime-version:in-reply-to:references:date:message-id:subject:from :to:cc:content-type; s=cryptonector.com; bh=nvnssUopA4+vxTPJ6Oxr PpxjVqU=; b=mjDHbaw6vgfCRoRUQQ5kCUe/Ak1ZWrlnLI6ohEkRz3Et01l4+J4E gKZleGX4VZ9qiGp0WjwApBUJyRFxGndgak25IIOtVKVbRE6NhGHS4rMzGYESau0X k4LMba026ca4WEQG7sGR721rXQrOjEX2hE/MDdGpT2L6yX+0P06g+pM=
Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by homiemail-a103.g.dreamhost.com (Postfix) with ESMTPSA id 2BA232007F21C for <tls@ietf.org>; Tue, 13 May 2014 13:20:18 -0700 (PDT)
Received: by mail-wg0-f47.google.com with SMTP id x12so935385wgg.30 for <tls@ietf.org>; Tue, 13 May 2014 13:20:17 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.194.84.101 with SMTP id x5mr4952134wjy.52.1400012417009; Tue, 13 May 2014 13:20:17 -0700 (PDT)
Received: by 10.216.29.200 with HTTP; Tue, 13 May 2014 13:20:16 -0700 (PDT)
In-Reply-To: <53727940.2070900@nthpermutation.com>
References: <2A0EFB9C05D0164E98F19BB0AF3708C7120A04ED40@USMBX1.msg.corp.akamai.com> <534C3D5A.3020406@fifthhorseman.net> <474FAE5F-DE7D-4140-931E-409325168487@akamai.com> <D2CB0B72-A548-414C-A926-A9AA45B962DA@gmail.com> <2A0EFB9C05D0164E98F19BB0AF3708C7120B490162@USMBX1.msg.corp.akamai.com> <CACsn0cmusUc3Rsb2Wof+dn0PEg3P0bPC3ZdJ75b9kkZ5LDGu_A@mail.gmail.com> <534DB18A.4060408@mit.edu> <CABcZeBOJ7k8Hb9QqCAxJ_uev9g_cb4j361dp7ANvnhOOKsT7NA@mail.gmail.com> <CA+cU71kFo6EihTVUrRRtBYEHbZwCa9nZo-awt4Sub2qXcKHC7g@mail.gmail.com> <CAK3OfOi1x9huaazwcO=d72mfOFuV_RyXnfHmFRduhhbJE2miYw@mail.gmail.com> <CALCETrWukS2QJSb01n7OpXD2iaK43OhZr4E8YZyJ6JaorCdBKw@mail.gmail.com> <CAKC-DJjgFrAmxkC-MsmL+-uRWpN_mDPGkV_g-6DhbVH+69EQEQ@mail.gmail.com> <2A0EFB9C05D0164E98F19BB0AF3708C7130ABEA050@USMBX1.msg.corp.akamai.com> <53725C34.8060105@fifthhorseman.net> <53727940.2070900@nthpermutation.com>
Date: Tue, 13 May 2014 15:20:16 -0500
Message-ID: <CAK3OfOhcCJ2h=MhRFKLedOsxZeMk94C2sETkx3h6HzG7JeW=Jg@mail.gmail.com>
From: Nico Williams <nico@cryptonector.com>
To: Michael StJohns <msj@nthpermutation.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/SEzcLh-wEAf_vvtnVt0fGPAMVrY
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] About encrypting SNI - Traffic Analysis Attacks?
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 May 2014 20:20:41 -0000

On Tue, May 13, 2014 at 2:57 PM, Michael StJohns <msj@nthpermutation.com> wrote:
> On 5/13/2014 1:53 PM, Daniel Kahn Gillmor wrote:
> One of the things missing from this discussion is whether or not encrypting
> the SNI is sufficiently resistant to traffic analysis techniques to make it
> worthwhile:  E.g.  A trivial attack is where there are a 100 web sites at a
> particular IP address, but only one of them has a name that is 28 characters
> in length and that's the one eavesdroppers care about.  A non trivial attack
> is where the web sites can be characterized via their patterns of traffic (a
> web page with 28 items, of which 16 are pictures with known fixed lengths).

Well, and for the many cases where there are many fewer than 100 sites
at one IP address...  the IP address will reveal plenty.

> Random padding can mitigate some of this (but will require some changes to
> TLS) and random reordering of HTTP requests can also help a bit (mostly a
> client side change), but transaction based protocols like HTTP (e.g. most of
> the time I'm pretty sure that the client is sending some sort of GET even if
> I don't know exactly what its asking for) tend to reveal the underlying
> patterns, even if the actual data is protected.

HTTP has infinitely extensible headers just for this purpose ;)

We can address some of the traffic analysis problems.  I think if we
don't now, we will eventually.  It's just a question of when.  Sooner
would be better.  It might not be feasible at this time; we should
find out if it is.

So far it looks like we'd need:

a) confidentiality protection in DNS,

b) leverage DNSSEC/DANE to get zero-round-trip SNI encryption in TLS,

c) apply care to avoid leaking information via payload sizes.

What else?

Sounds like a lot to get right for 1.3!  Even if we defer (a) but make
some assumptions about it so we can ship 1.3 and enable (a) later, we
might get it wrong.

Nico
--