Re: [TLS] About encrypting SNI

"Sniffen, Brian" <bsniffen@akamai.com> Wed, 16 April 2014 16:54 UTC

Return-Path: <bsniffen@akamai.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 8F2731A025A for <tls@ietfa.amsl.com>; Wed, 16 Apr 2014 09:54:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.172
X-Spam-Level:
X-Spam-Status: No, score=-2.172 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.272] autolearn=ham
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 Vo1kQ7o_rSfo for <tls@ietfa.amsl.com>; Wed, 16 Apr 2014 09:54:13 -0700 (PDT)
Received: from prod-mail-xrelay08.akamai.com (prod-mail-xrelay08.akamai.com [96.6.114.112]) by ietfa.amsl.com (Postfix) with ESMTP id 27EBC1A0258 for <tls@ietf.org>; Wed, 16 Apr 2014 09:54:13 -0700 (PDT)
Received: from prod-mail-xrelay08.akamai.com (localhost.localdomain [127.0.0.1]) by postfix.imss70 (Postfix) with ESMTP id D211748276; Wed, 16 Apr 2014 16:54:09 +0000 (GMT)
Received: from prod-mail-relay09.akamai.com (unknown [172.27.22.68]) by prod-mail-xrelay08.akamai.com (Postfix) with ESMTP id BB4C348273; Wed, 16 Apr 2014 16:54:09 +0000 (GMT)
Received: from usma1ex-cashub.kendall.corp.akamai.com (usma1ex-cashub4.kendall.corp.akamai.com [172.27.105.20]) by prod-mail-relay09.akamai.com (Postfix) with ESMTP id 8A1A01E03D; Wed, 16 Apr 2014 16:54:09 +0000 (GMT)
Received: from USMBX1.msg.corp.akamai.com ([172.27.107.26]) by USMA1EX-CASHUB4.kendall.corp.akamai.com ([172.27.105.20]) with mapi; Wed, 16 Apr 2014 12:54:07 -0400
From: "Sniffen, Brian" <bsniffen@akamai.com>
To: Andy Lutomirski <luto@amacapital.net>
Date: Wed, 16 Apr 2014 12:54:06 -0400
Thread-Topic: [TLS] About encrypting SNI
Thread-Index: Ac9ZlHrqPWDyEh6gSqy5zIHp95J42A==
Message-ID: <ADBC94F9-0EBB-4F50-B49D-EDAFF8AD9313@akamai.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> <m2ppkhl08c.fsf@usma1mc-0csx92.kendall.corp.akamai.com> <CALCETrXuvA7XAu7O4QVGe1Ktzo8wfQq88j2g44bfc=MGYzY9BQ@mail.gmail.com>
In-Reply-To: <CALCETrXuvA7XAu7O4QVGe1Ktzo8wfQq88j2g44bfc=MGYzY9BQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/signed; boundary="Apple-Mail=_58D3ECD9-8399-482C-BAE0-F4977C6A96AF"; protocol="application/pgp-signature"; micalg="pgp-sha1"
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/F9aGubHprFN5jjimRXprbWIlApg
Cc: "tls@ietf.org" <tls@ietf.org>
Subject: Re: [TLS] About encrypting SNI
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: Wed, 16 Apr 2014 16:54:17 -0000

On Apr 16, 2014, at 11:39 AM, Andy Lutomirski <luto@amacapital.net> wrote:

> On Wed, Apr 16, 2014 at 9:15 AM, Brian Sniffen <bsniffen@akamai.com> wrote:
>> Andy Lutomirski <luto@amacapital.net> writes:
>> 
>>> On 04/14/2014 10:21 PM, Watson Ladd wrote:
>>>> Now, the best mechanism I can think off would be to use DNS to preload
>>>> a per-IP SNI encryption key, or have the handshake optionally involve
>>>> getting one. But I still can't figure out how to authenticate the
>>>> gotten key without a lot of complexity. The best solution is for the
>>>> client and server to do a DH, then pass the desired website (which
>>>> might get you investigated when the initial handshake is intercepted),
>>>> and have that cert sign the handled DH, then go back and do a TLS
>>>> connection. Ugh.
>>> 
>>> What if it were an opt-in thing?  A hypothetical DANE extension could
>>> associate with each domain a tuple (ClientHello-protection public key,
>>> TLS version guaranteed to be supported).  Clients could resolve that
>>> essentially for free as long as they're already querying DNS, and this
>>> could prevent downgrade attacks and give an efficient way to encrypt the
>>> entire ClientHello.
>> 
>> Then the censor looks to see which key is used, yes?
>> 
> 
> The idea is that the same key would be used for hello encryption for
> all domains served by the same IP addresses.

Oh, I see.  But the US government customers want a key to a NIST scheme generated with Dual_EC, and the notional non-government entities want anything but that.

> Even if different keys were used, I'm not sure the censor can tell
> which.  I think that the particular public-key protocol I suggested
> doesn't leak any information about the public key used to a censor
> that doesn't know the private key, but I could be wrong.

But they want different protocols.  So we drift to having the censor-approved data on one IP, and the censor-opposed data on another IP.

I see the benefit of the wildcard proposal—it seems to help small users who don’t really get a say in their crypto, and just use example.tumblr.com and similar, where there’s a bunch of innocent social data mixed in with the politically interesting parts.  I don’t see how encrypted SNI helps preserve the privacy of the clients of a big web site against the adversaries I understand to oppose such.

-Brian