Re: [TLS] About encrypting SNI

Viktor Dukhovni <viktor1dane@dukhovni.org> Tue, 20 May 2014 21:40 UTC

Return-Path: <viktor1dane@dukhovni.org>
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 D4CB31A03AB for <tls@ietfa.amsl.com>; Tue, 20 May 2014 14:40:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.3
X-Spam-Level:
X-Spam-Status: No, score=-101.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_31=0.6, USER_IN_WHITELIST=-100] 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 ME9Xungmz-ti for <tls@ietfa.amsl.com>; Tue, 20 May 2014 14:40:38 -0700 (PDT)
Received: from mournblade.imrryr.org (mournblade.imrryr.org [38.117.134.19]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AF6D41A02BC for <tls@ietf.org>; Tue, 20 May 2014 14:40:38 -0700 (PDT)
Received: by mournblade.imrryr.org (Postfix, from userid 1034) id 82BFB2AB10D; Tue, 20 May 2014 21:40:36 +0000 (UTC)
Date: Tue, 20 May 2014 21:40:36 +0000
From: Viktor Dukhovni <viktor1dane@dukhovni.org>
To: tls@ietf.org
Message-ID: <20140520214036.GF27883@mournblade.imrryr.org>
References: <0B76075A-D9F1-4780-8834-7FF0A1C82999@vigilsec.com> <20140425013239.7FE5E1ACE1@ld9781.wdf.sap.corp> <CAFggDF3u1R+540x6SM3Rt5u+GNQ44ZKozCoTSU1k+XMPU9V-tQ@mail.gmail.com> <C81C96A7-0878-4C84-AB8C-CF0BF11841F2@gmail.com> <CAHBU6itFLCdcZWzrDv02h=3-HF9+uF+ymqFf1cbDYOdvG17nzg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CAHBU6itFLCdcZWzrDv02h=3-HF9+uF+ymqFf1cbDYOdvG17nzg@mail.gmail.com>
User-Agent: Mutt/1.5.23 (2014-03-12)
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/40KyWSsZXP6JYYbcG_0ySpBu9cc
Subject: Re: [TLS] About encrypting SNI
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: tls@ietf.org
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, 20 May 2014 21:40:40 -0000

On Tue, May 20, 2014 at 01:24:12PM -0700, Tim Bray wrote:

> Let?s assume you are correct in all your assertions.  It is still the case
> that every time you increase the proportion of the attack surface which is
> encrypted, you increase the difficulty for snoopers. It is not a
> requirement that you make the snoopers? task impossible; in fact, all you
> can ever do is crank up the difficulty for attackers. It seems obvious that
> encrypting as much of connection setup as possible would increase attacker
> difficulty so, if practical, it should be done.

This runs smack into the "mile-high pole" fallacy.  Quoting Bruce Schneier:

    Secure the Weakest Link

    You can't just plant a mile-high pole in front of your castle
    and hope the enemy runs right into it; you have to look at the
    whole landscape and build earthworks and a palisade.  Similarly,
    just because you're using an encryption algorithm with a 256-bit
    key doesn't mean you're secure; the enemy is likely to find
    some avenue of attack ignores the encryption algorithm completely.

In particular stronger security measures that focus on a small part
of the problem often yield no measurable benefit.  This is quite
likely the case here.  I would not want to encourage any user whose
life or well-being depended on security of TLS against traffic
analysis to even consider relying on TLS SNI encryption.  Such users
need to be substantially more cautious.

The only plausible use-case for SNI encryption is to thwart bulk
traffic analysis directed at entire populations, users likely to
be targeted MUST NOT rely on protection as feeble as an encrypted
TLS handshake might yield (yes, if it is possible at tolerable
cost to not aid the attacker AND there is a reasonably plausible
measurable benefit as a result, one should still implement the
protection).

So this boils down to whether:

      Is it in fact plausible that all the various counter-measures
      were they rolled out (over a decade or two), in multiple
      protocols and implementations, would provide the expected
      benefit by making traffic analysis measurably more difficult?

I am regrettably skeptical of this.  I think we could make more
progress by obviating the need for SNI than by attempting to encrypt
it.

For example, with DNSSEC SRV records, the TLS service endpoint for
a hosted domain can be mapped to a fixed hosting name that does
not depend on the hosted domain name, and the client could verify
the single name in the server certificate.  If we move to an SNI-free
world, the problem is eliminated from TLS.  There are still DNS
queries to protect, but these would need to be protected anyway (the
A record lookup).

Of course SNI is almost certainly not the only sensitive payload
in the handshake, and one might want to define a stripped-down
outer protocol that completes an ADH or AECDH key exchange with
channel binding first to an SNI-agnostic TLS stack at the target,
and then sub-negotiates with channel binding any additional protection
that may be desired.  Such a protocol would sport mandatory session
tickets for fast reliable resumption, with a lifetime advertised
to the client to avoid needless fallback latency to the full outer
protocol.  Resumption would begin with an outer session ticket and
an encrypted inner handshake (which might also be a resumption).
If outer resumption does fail (should be rare), the server would
elicit a new full outer handshake from the client, without requiring
the client to disconnect and retry.

This would be a dramatic change, would one still call such a beast
TLS?

-- 
	Viktor.