Re: [CHANNEL-BINDING] TLS endpoint channel bindings in SCRAM
Nicolas Williams <Nicolas.Williams@sun.com> Wed, 01 April 2009 23:08 UTC
Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: channel-binding@core3.amsl.com
Delivered-To: channel-binding@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id D264A3A67EA for <channel-binding@core3.amsl.com>;
Wed, 1 Apr 2009 16:08:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.754
X-Spam-Level:
X-Spam-Status: No, score=-5.754 tagged_above=-999 required=5 tests=[AWL=0.292,
BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CuqfRTlZ2wzo for
<channel-binding@core3.amsl.com>; Wed, 1 Apr 2009 16:08:16 -0700 (PDT)
Received: from sca-ea-mail-2.sun.com (sca-ea-mail-2.Sun.COM [192.18.43.25]) by
core3.amsl.com (Postfix) with ESMTP id 741463A67D4 for
<channel-binding@ietf.org>; Wed, 1 Apr 2009 16:08:11 -0700 (PDT)
Received: from dm-central-02.central.sun.com ([129.147.62.5]) by
sca-ea-mail-2.sun.com (8.13.7+Sun/8.12.9) with ESMTP id n31N9CaB013269 for
<channel-binding@ietf.org>; Wed, 1 Apr 2009 23:09:12 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104])
by dm-central-02.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP
id n31N9B0D016087 for <channel-binding@ietf.org>;
Wed, 1 Apr 2009 17:09:11 -0600 (MDT)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by
binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id n31MqOkJ001680;
Wed, 1 Apr 2009 17:52:24 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM
(8.14.3+Sun/8.14.3/Submit) id n31MqK7n001679;
Wed, 1 Apr 2009 17:52:20 -0500 (CDT)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to
Nicolas.Williams@sun.com using -f
Date: Wed, 1 Apr 2009 17:52:20 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Dave Cridland <dave@cridland.net>
Message-ID: <20090401225220.GA1500@Sun.COM>
References: <5690.1237934257.266964@peirce.dave.cridland.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5690.1237934257.266964@peirce.dave.cridland.net>
User-Agent: Mutt/1.5.7i
Cc: Mark Novak <Mark.Novak@microsoft.com>, channel-binding@ietf.org,
Stefan Santesson <stefans@microsoft.com>,
Larry Zhu <lzhu@windows.microsoft.com>, ietf-sasl@imc.org,
Paul Leach <paulle@windows.microsoft.com>,
Kevin Damour <kdamour@microsoft.com>,
Jeffrey Altman <jaltman@secure-endpoints.com>,
Sam Hartman <hartmans-ietf@mit.edu>
Subject: Re: [CHANNEL-BINDING] TLS endpoint channel bindings in SCRAM
X-BeenThere: channel-binding@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Discussion of channel binding IANA registry requests and
specifications <channel-binding.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/channel-binding>,
<mailto:channel-binding-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/channel-binding>
List-Post: <mailto:channel-binding@ietf.org>
List-Help: <mailto:channel-binding-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/channel-binding>,
<mailto:channel-binding-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 01 Apr 2009 23:08:17 -0000
On Tue, Mar 24, 2009 at 10:37:37PM +0000, Dave Cridland wrote: > Having carefully examined the tls-server-end-point channel binding, > I've a bit of a concern. We should probably be having this discussion on the channel-binding@ietf.org list (cc'ed). Also cc'ed are folks who participated in the registration of tls-server-end-point. > One of the sticking points of the tls-unique channel binding is how > easy it is to get at the data - OpenSSL provides an API, however it's > often not exposed to language bindings such as Python, etc, and other > TLS implementations may not provide it at all. File bugs against them! If you have a list of such bindings I'll volunteer to help file and track these bugs. > I can't find any way of getting at the on-wire representation of the > server's certificate, and I can't immediately find a way of > discovering which hash algorithm to use, either, in the vast majority > of bindings. > > So rather than expect all TLS implementations and bindings to change, > I'd like to propose an alternate binding, for use where the server's > certificate is an X.509v3 one. > > Specifically, I'd like to use a fixed hash algorithm over the > DER-encoded form of the certificate - I'll call this > "tls-x509-end-point" Questions: 1) Do many/most/all TLS implementations output the DER-encoded form of the server cert? Which ones do/don't? 2) Is the cert used on the wire generally NOT DER-encoded? If so, how hard would it be to change this? (e.g., re-encode the cert and restart apps?) Notes: - By hard-coding a hash function we'd lose hash agility. Hash agility is one of the features of the registered tls-server-end-point channel binding type. OTOH, as you note, for SCRAM this is solved by the existing SCRAM hash agility approach (add a new mech). - We can't really negotiate which type of channel binding to use. It's relatively easy to choose between unique and server-end-point, but to choose between two types of server-end-point bindings is much harder (unless it's a choice made at specification time, in this case for SASL/SCRAM). Neither modifying tls-server-end-point nor introducing a different variant of it seem particularly appealing. The former may well be out of the barn's doors, which would leave us only with the latter choice (or fix the TLS frameworks :) > The DER form of the certificate is readily available through most > bindings, in many cases in a single call, and gives exactly > equivalent hash-input as the on-wire format, which is very likely > [but not mandated, as far as I can find] to be DER anyway. > > Fixing a hash algorithm simply makes this even easier - the current > channel binding uses SHA-256 as a "minimum hash", I'd prefer to use > SHA-1, as we're certain to have it for SCRAM. True. > Finally, I'd propose that SCRAM mandates support for the > 'tls-x509-end-point' channel binding for the applicable cases as a > reasonable fallback when support for the more flexible and > future-proof tls-server-end-point binding is not available. > > Now I'll wait to get shot down in flames. :-) No flames. I think we could do a channel binding type just for SCRAM (we did one just for TELNET, after all). But I think I'd want "DER" in the name, that and the hash function name too. Comments? > Dave. > -- > Dave Cridland - mailto:dave@cridland.net - xmpp:dwd@dave.cridland.net > - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/ > - http://dave.cridland.net/ > Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade Nico --
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Nicolas Williams
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Simon Josefsson
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Dave Cridland
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Pasi.Eronen
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Nicolas Williams
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Nicolas Williams
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Dave Cridland
- Re: [CHANNEL-BINDING] TLS endpoint channel bindin… Nicolas Williams