Re: [TLS] About encrypting SNI

Erik Nygren <erik+ietf@nygren.org> Thu, 17 April 2014 02:46 UTC

Return-Path: <nygren@gmail.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 6EFC31A03D5 for <tls@ietfa.amsl.com>; Wed, 16 Apr 2014 19:46:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level:
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] 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 JWpuYXdcuHon for <tls@ietfa.amsl.com>; Wed, 16 Apr 2014 19:46:49 -0700 (PDT)
Received: from mail-ve0-x236.google.com (mail-ve0-x236.google.com [IPv6:2607:f8b0:400c:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id 5B3BA1A03D4 for <tls@ietf.org>; Wed, 16 Apr 2014 19:46:49 -0700 (PDT)
Received: by mail-ve0-f182.google.com with SMTP id jw12so11517095veb.41 for <tls@ietf.org>; Wed, 16 Apr 2014 19:46:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=QYP98ylSYHHsUzT73Cy7Tdt1EGh9Aq4ugFnM37y41C4=; b=qkUVU4X5c4g+QMDN3kBXh6ZqvnDpstFUmOzhjjeXUKE1i+cGYdRAuXwQO+N163fHSX 7UVMIN1qhrGlR56IGt6XaDLMPSLRR786kzVaZP5EMcecz7NMNsBsxYRDOMDX89EwWWNq 7TQmgHKwI+T4mSxJoGnTgoVbLxLw1Ems7Yoy6ttrnCXcFUhP7PMjD9cQ7uE6ZDpRzS3S UdWbC5Z+sgINEl3MGwJu/JazTO5fw5wQX/tAukwMoJ/Mv9sswY54Z9+SqjP6havbpWzN /I7anBWREz0r714VcrSx+qrBu344oksYhRy3GX2ZwP853IitHbfELtxmLdwmfaO8nvsy OUew==
MIME-Version: 1.0
X-Received: by 10.58.31.136 with SMTP id a8mr5279724vei.20.1397702805847; Wed, 16 Apr 2014 19:46:45 -0700 (PDT)
Sender: nygren@gmail.com
Received: by 10.221.18.70 with HTTP; Wed, 16 Apr 2014 19:46:45 -0700 (PDT)
In-Reply-To: <CALCETrWY_-N+nM9N0_gbeffkX5Jo8vn7XKeFCezGiwq2A74Wjw@mail.gmail.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> <m2k3apmjk2.fsf@usma1mc-0csx92.kendall.corp.akamai.com> <CALCETrU6zn52yX=Q-_h4epR6W9+f2oTr3yfyK1sxiwGa2dvWGw@mail.gmail.com> <CAKC-DJgNvF=hhwoyRNkJ3vKz9EZ_JpoM84bCip6eProLwsQsEg@mail.gmail.com> <CALCETrWY_-N+nM9N0_gbeffkX5Jo8vn7XKeFCezGiwq2A74Wjw@mail.gmail.com>
Date: Wed, 16 Apr 2014 22:46:45 -0400
X-Google-Sender-Auth: V_g1QVCwofpFsBLMNZnupWPjXis
Message-ID: <CAKC-DJg6kRLezM+Q60VLY=dBU9C_Q9hb_0u7WD-HHWVJ5Y6tRQ@mail.gmail.com>
From: Erik Nygren <erik+ietf@nygren.org>
To: Andy Lutomirski <luto@amacapital.net>
Content-Type: multipart/alternative; boundary="047d7b2e49d03e856604f7340b9c"
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/hRC1kWJPXau7L-5TL-orPhCPP70
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: Thu, 17 Apr 2014 02:46:53 -0000

On Wed, Apr 16, 2014 at 3:09 PM, Andy Lutomirski <luto@amacapital.net>wrote:

> On Wed, Apr 16, 2014 at 11:56 AM, Erik Nygren <erik+ietf@nygren.org>
> wrote:
> > If we do anything with DNS, we need to be very conscious that individual
> > records change asynchronously from other records.  For example, we can't
> > assume that an A/AAAA record and a DANE record refer to the same operator
> > (webserver, hosting provider, CDN, etc).   In order for anything along
> these
> > lines to be deployable, it must be possible for everything associated
> with a
> > particular name->service binding to change together.  In addition,
> browser
> > vendors are extremely wary of doing extra DNS lookups synchronous to a
> > request which is one reason that SRV records aren't in-use today for
> > HTTP(S).
>
> You can hack around this by temporarily turning off hello encryption
> when switching providers.  This is unfortunate, though.
>

In my experience, anything of this form not designed to be easy to operate,
reliably support rotation, and robustly move between providers is likely to
fail to be deployable.  Errors in this world seems to be a top cause of
outages and this sort of thing can be very hard to reason about.  Sadly,
anything that requires "hack around" as part of its normal operating regime
just isn't going to work.



I'm not sure exactly what you mean by handshake_token.  Do you mean
> the anti-replay token?
>
The handshake token as a way of identifying the service binding in use
> seems problematic to me.  Wouldn't it be better to just leave it out
> entirely?  As long as each IP only accepts one or two handshake keys,
> then figuring out which one is in use by trial decryption should be
> fine.  I think that something is wrong if you have an IP with lots of
> handshake keys.
>
> Realistically, you may need up to four handshake keys: old FIPS, new
> FIPS, old non-FIPS, new non-FIPS.
>

Perhaps handshake_key_label would have been a better term.
I was referring to what is in PredictedParameters.server_key_label in ekr's
tls13-new-flows
(which has the same problem if not handled properly, and even if used
properly still
has risks here which may not have good answers).

There are plenty of valid scenarios where you may need considerably more
than four.
An example given earlier on the list is for VM/cloud hosting providers who
need to demultiplex
from a small number of IPv4 addresses to different backend servers being
run by different
entities without mutual trust, each of which having independent different
sets of keys.

      Erik