Re: [TLS] A la carte handshake negotiation

David Benjamin <davidben@chromium.org> Fri, 26 June 2015 21:12 UTC

Return-Path: <davidben@google.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 BFECA1A8794 for <tls@ietfa.amsl.com>; Fri, 26 Jun 2015 14:12:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level:
X-Spam-Status: No, score=-1.388 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, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 pj0pcPLCuTxK for <tls@ietfa.amsl.com>; Fri, 26 Jun 2015 14:12:53 -0700 (PDT)
Received: from mail-ie0-x232.google.com (mail-ie0-x232.google.com [IPv6:2607:f8b0:4001:c03::232]) (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 220D41A876B for <tls@ietf.org>; Fri, 26 Jun 2015 14:12:53 -0700 (PDT)
Received: by iebmu5 with SMTP id mu5so83333793ieb.1 for <tls@ietf.org>; Fri, 26 Jun 2015 14:12:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=gf26hGf+GPQsYVg+LT6lg1wKX1b/54xljFU3KsBn6+Q=; b=jyALsr1g3DNxGsDbA1pmUNb6lPfvYgTG2JEMrMqcTIlbMBD/aTK5GMkQ+smg1Kq/lU /2qjAma8ongzsmftdLuC/cQQvAO/L5GMPP6O03z4Nj6i93bosuzq+5zaaI4ks3PDF39E rO5D/ptCQkYkn/2waEsFP+zOnmLRimklKYx78=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-type; bh=gf26hGf+GPQsYVg+LT6lg1wKX1b/54xljFU3KsBn6+Q=; b=UXYEPwrrjY3ZCK5P3Cvu/uxG/mNBz8FsjxmKZKvhzm//YA+psTj7coulS4dL4eKZ4i VeTB9VFlcjHYn5NWa6de2XXXlkKX2kppz7G9FEzZrI3qZMYv3kth68HM354kQtehIIaZ J+Kp42ijLofDED0eAqLaauAB+tXsIeFuH+WKSKl1uNgDpAQK1ckzoGizr2Alc1evX9e/ DxgAZfcaxX5z3P+QaOxdJSR5+5XqkO0Sm9moEEIDNiPOLCA5+dXw5mZ5GR8+tH2y5h1i SOK0U326Cv4ad+iAuDfvrRYTiWOeHsCB+ONXQO4e7/E263x1tgfDP8U9tr6YecCg2+Jl sUrA==
X-Gm-Message-State: ALoCoQljupDG4jsXUYkd7cZ8rPSLYRc+yalPP5a1MYFUdu/Qe3AuHgXD35Zb0UDCof7LlGMJTKnE
X-Received: by 10.107.136.214 with SMTP id s83mr5112497ioi.65.1435353172599; Fri, 26 Jun 2015 14:12:52 -0700 (PDT)
MIME-Version: 1.0
References: <201506111558.21577.davemgarrett@gmail.com> <20150616233111.GD6117@localhost> <201506170131.17179.davemgarrett@gmail.com> <CAF8qwaCew287OLCdrgdKXbzbc+xWmT4eYWKfLJXLbTvEFVBJWA@mail.gmail.com> <20150626204731.GJ6117@localhost>
In-Reply-To: <20150626204731.GJ6117@localhost>
From: David Benjamin <davidben@chromium.org>
Date: Fri, 26 Jun 2015 21:12:43 +0000
Message-ID: <CAF8qwaAbgQMK7C4aJExUTz+kJBV=S5vuXy=Ba75NGqXqwABN9A@mail.gmail.com>
To: Nico Williams <nico@cryptonector.com>
Content-Type: multipart/alternative; boundary=001a113eb2a6fb0a0305197233a6
Archived-At: <http://mailarchive.ietf.org/arch/msg/tls/hbTcvgChqTBeqj6piMuV4J7VOv8>
Cc: "<tls@ietf.org>" <tls@ietf.org>
Subject: Re: [TLS] A la carte handshake negotiation
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: <https://mailarchive.ietf.org/arch/browse/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: Fri, 26 Jun 2015 21:12:54 -0000

On Fri, Jun 26, 2015 at 4:47 PM Nico Williams <nico@cryptonector.com>; wrote:

> On Fri, Jun 26, 2015 at 07:02:32PM +0000, David Benjamin wrote:
> > On Wed, Jun 17, 2015 at 1:31 AM Dave Garrett <davemgarrett@gmail.com>;
> wrote:
> > >
> >
> > I have the same concerns with this version as before. I don’t believe it
> > lowers the risk of accidental interop failure---if anything, it makes it
> > worse.
> >
> > This scheme is still a problem for Chrome on Windows XP. This proposal
> > effectively makes ECDSA (and ECDHE) MTI for any clients doing the
> standard
> > PKI-based handshake. Whether or not this is desirable, it certainly
> should
> > be spelled out clearly in the spec.
> >
> > Imagine how implementations look. Most allow configuring the cipher suite
> > list. This now interacts subtly with configuring 1.3 ciphers, and we have
> > the same interop risks of a parallel extension. What if the consumer, for
> > whatever reason, omitted the ECDHE_ECDSA variant of some AEAD but
> included
> > ECDHE_RSA? Now 1.2 servers work, 1.3 ones don’t. Alright, so what if we
> > internally checked for consistency? That’s fine, but we could just as
> > easily have checked for consistency between 1.2 cipher suites and a new
> 1.3
> > mechanism.
>
> This can be fixed by having signalling cipher suite assignments for
> negotiating a cartesian product of them (in addition to any actual
> cipher suites offered).  This allows for a) compression of negotiation,
> b) fallback support for 1.2, 1.1, and 1.0, and c) expression of
> preference for specific cipher suites ahead of (or after) the cartesian
> product cipher suites.
>
> We'd still end up with a cartesian product in the registry, but missing
> registrations implied by the negotiation signalling cipher suites could
> still work.
>

Hrm. I might not understanding you right, isn't that roughly the same as
defining new values:

  TLS_ECDHE_CERT_WITH_AES_128_GCM_SHA256
  TLS_ECDHE_CERT_WITH_CHACHA20_POLY1305
  etc.
  ("CERT" being an unopinionated placeholder for the result of the
inevitable bikeshedding over the name. :-) )

and saying that TLS 1.3 uses those rather than either ECDHE_RSA or
ECDHE_ECDSA, but they share a namespace with the pre-1.3 cipher suite list
for convenience and avoiding a new extension? That seems reasonable to me
actually. If we avoid weird pre-1.3 interactions, I don't have opinions on
new extension vs camping out in the old namespace.

Or is the goal that, by accepting both ECDHE_CERT and ECDHE_ECDSA, the
common case can send a slightly shorter ClientHello? (For Chrome I think
it'd be four bytes because we only do two AEADs.)


David