Re: [kitten] draft-hansen-scram-sha256 and incorporating session hashing for channel binding

Simon Josefsson <simon@josefsson.org> Sat, 23 May 2015 14:31 UTC

Return-Path: <simon@josefsson.org>
X-Original-To: kitten@ietfa.amsl.com
Delivered-To: kitten@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CD611A1B6B for <kitten@ietfa.amsl.com>; Sat, 23 May 2015 07:31:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level:
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_SE=0.35, 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 T8ZafmU00dEO for <kitten@ietfa.amsl.com>; Sat, 23 May 2015 07:31:08 -0700 (PDT)
Received: from duva.sjd.se (duva.sjd.se [IPv6:2001:9b0:1:1702::100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E55151A1F02 for <kitten@ietf.org>; Sat, 23 May 2015 07:27:54 -0700 (PDT)
Received: from latte.josefsson.org ([155.4.17.3]) (authenticated bits=0) by duva.sjd.se (8.14.4/8.14.4/Debian-4) with ESMTP id t4NERU0v029392 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NOT); Sat, 23 May 2015 16:27:31 +0200
Date: Sat, 23 May 2015 16:27:28 +0200
From: Simon Josefsson <simon@josefsson.org>
To: Tony Hansen <tony@att.com>
Message-ID: <20150523162728.5b6b63cd@latte.josefsson.org>
In-Reply-To: <555FC6CF.5020306@att.com>
References: <54DC00D0.2050900@cs.tcd.ie> <54EC66FF.50603@cs.tcd.ie> <54ECABD8.3090902@att.com> <87zj82f1yj.fsf@latte.josefsson.org> <54F4B8B8.8090406@isode.com> <555FC6CF.5020306@att.com>
X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; boundary="Sig_/FF2ootm/tXhbLoyTOay+NOP"; protocol="application/pgp-signature"
X-Virus-Scanned: clamav-milter 0.98.7 at duva.sjd.se
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/kitten/ShEjBBYMTMPWZjKeRcWzKi4HcFU>
Cc: "kitten@ietf.org" <kitten@ietf.org>
Subject: Re: [kitten] draft-hansen-scram-sha256 and incorporating session hashing for channel binding
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/kitten/>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 May 2015 14:31:10 -0000

Den Fri, 22 May 2015 20:16:15 -0400
skrev Re: [kitten] draft-hansen-scram-sha256 and incorporating
session         hashing for channel binding:

> On 3/2/15 2:23 PM, Alexey Melnikov wrote:
> >
> > On 25/02/2015 15:25, Simon Josefsson wrote:
> >> Tony Hansen <tony@att.com> writes:
> >>
> >>> On 2/24/15 6:56 AM, Stephen Farrell wrote:
> >>>> But in addition, there were two substantive issues that ought be
> >>>> resolved before IETF LC:
> >>>>
> >>>> 1. a new channel binding or requiring tls-session-hash (and I
> >>>> guess some explanatory text about why that is good/needed)
> >>> To recap:
> >>>
> >>> Simon Josefsson made this comment:
> >>>
> >>>> Since SCRAM was published, we have learned that the tls-unique
> >>>> channel binding is insecure -- it would be nice if we could
> >>>> combine the SHA256 update with another default channel binding
> >>>> type to resolve that problem.  In my view, the problem with
> >>>> SCRAM today isn't primarily its use of SHA1 but it's broken
> >>>> channel binding.
> >>> Martin Thompson responded:
> >>>
> >>>> We have a solution for that:
> >>>> https://tools.ietf.org/html/draft-ietf-tls-session-hash
> >>> I've read through tls-session-hash and am unsure how to proceed
> >>> here.
> >>>
> >>> One of my goals when proposing SCRAM-SHA-256 was to not change the
> >>> protocol at all, other than updating the hash algorithm.
> >>>
> >>> I'm not sure how to incorporate a recommendation for session
> >>> hashing here. I'm thinking this would be best handled by adding
> >>> something to the Security Considerations section. Does that seem
> >>> right?
> >>>
> >>> Would anyone be willing to suggest text changes for these
> >>> comments?
> >> I believe the problem is that RFC 5802 is insecure as currently
> >> specified, and we are bringing this up as a problem with your
> >> draft, which is unfair to you since the problem was not introduced
> >> by you.
> >>
> >> If people like the tls-session-hash approach (I'm not in that
> >> category, but there may be consensus around it), the proper fix is
> >> to update RFC 5802 and reference tls-session-hash as a normative
> >> reference.  This will take care of the problem, as you could copy
> >> that text into your document.  If you are looking for a text
> >> change here, it would be:
> >>
> >>    To be secure SCRAM-SHA-256-PLUS has to be used over a TLS
> >> channel that
> >>    MUST have [TLS-SESSION-HASH] negotiated.
> >>
> >> Personally, I would prefer to change to another mandatory channel
> >> binding that is secure for all TLS versions.
> > Before we make the decisions between referencing tls-session-hash
> > versa a new channel binding, can you sketch out how the new channel
> > binding is going to be defined?
> >
> > (If we choose to define a new channel binding, I think Kitten WG is
> > the right place for doing this work.)
> 
> I added the following to the security section:
> 
> >     The strength of this mechanism is dependent in part on the
> hash-iteration count, as denoted by "i" in
> >     <xref target="RFC5802"/>.
> >     As a rule of thumb, the hash-iteration count should be such
> > that a
> modern machine will take 0.1 seconds
> >     to perform the complete algorithm; however this is unlikely to
> > be
> practical on mobile devices and
> >     other relatively low-performance systems.
> >     At the time this was written, the rule of thumb gives around
> 15,000 iterations required;
> >     however an iteration count of 4096 takes around 0.5 seconds on
> current mobile handsets.
> >     This computational cost can be avoided by caching the ClientKey
> (assuming the Salt and iteration count is stable).
> >     Therefore the recommendation of this specification is that the
> iteration count SHOULD be at least 4096, but careful
> >     consideration ought to be given to using a significantly higher
> value, particularly where mobile use is less important.
> 
> If anyone has suggestions for additions to this, or changes, please
> suggest it now.

This text has nothing to do with the tls-session-hash issue?

If you don't want to ship a known insecure protocol, I believe the
options are to either include text similar to what I proposed above, or
to replace tls-unique with a secure TLS channel binding (e.g.,
draft-josefsson-sasl-tls-cb).  Shipping a known insecure protocol is
another option, but then you should add a security consideration
explaining that tls-unique is not secure without tls-session-hash and
that consistency with (the also insecure) RFC 5802 was deemed more
important security.

/Simon