Re: [sasl] I-D Action:draft-ietf-sasl-scram-08.txt

Nicolas Williams <Nicolas.Williams@sun.com> Fri, 02 October 2009 20:09 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: sasl@core3.amsl.com
Delivered-To: sasl@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4E9243A67D2 for <sasl@core3.amsl.com>; Fri, 2 Oct 2009 13:09:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.883
X-Spam-Level:
X-Spam-Status: No, score=-5.883 tagged_above=-999 required=5 tests=[AWL=0.163, 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 4DfbG4UW3scf for <sasl@core3.amsl.com>; Fri, 2 Oct 2009 13:09:48 -0700 (PDT)
Received: from sca-ea-mail-4.sun.com (sca-ea-mail-4.Sun.COM [192.18.43.22]) by core3.amsl.com (Postfix) with ESMTP id 8BE2A3A67C1 for <sasl@ietf.org>; Fri, 2 Oct 2009 13:09:47 -0700 (PDT)
Received: from dm-central-01.central.sun.com ([129.147.62.4]) by sca-ea-mail-4.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n92KBG3q019000 for <sasl@ietf.org>; Fri, 2 Oct 2009 20:11:16 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-01.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id n92KBFUc032039 for <sasl@ietf.org>; Fri, 2 Oct 2009 14:11:16 -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 n92K03VM003089; Fri, 2 Oct 2009 15:00:03 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id n92K03sJ003088; Fri, 2 Oct 2009 15:00:03 -0500 (CDT)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Fri, 02 Oct 2009 15:00:03 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Simon Josefsson <simon@josefsson.org>
Message-ID: <20091002200003.GM887@Sun.COM>
References: <20091002174501.75F953A6855@core3.amsl.com> <87pr95r2q7.fsf@mocca.josefsson.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <87pr95r2q7.fsf@mocca.josefsson.org>
User-Agent: Mutt/1.5.7i
Cc: sasl@ietf.org
Subject: Re: [sasl] I-D Action:draft-ietf-sasl-scram-08.txt
X-BeenThere: sasl@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SASL Working Group <sasl.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sasl>
List-Post: <mailto:sasl@ietf.org>
List-Help: <mailto:sasl-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Oct 2009 20:09:49 -0000

On Fri, Oct 02, 2009 at 09:54:24PM +0200, Simon Josefsson wrote:
> This version seems fine in general, but re SASLprep on password it says:
> 
>   o Normalize(str): Apply a Unicode normalization algorithm to a UTF-8
>     [RFC3629] encoded "str". The resulting string is also in UTF-8.
>     Implementations SHOULD use the SASLPrep profile [RFC4013] of the
>     "stringprep" algorithm [RFC3454] as the normalization algorithm.
> 
> That text does not resolve whether Normalize() should be invoked with
> unassigned code points permitted or not.  There were different
> suggestions on what clients and servers should do in earlier
> discussions, so I believe the text has to be explicit on what clients
> and servers needs to do.
> 
> I don't care strongly, but my preference is to disallow unassigned code
> points everywhere where a string is hashed.  Allowing unassigned code
> points introduce uncertainty in the algorithm, and I find that to rarely
> be useful in practice.  My experience is that allowing unassigned code
> points is useful when the string is transferred to the other side for
> comparison, but when the string is hashed that is no longer the case.  I
> am aware that others have different preferences.

Here we must treat passwords as storage strings.  SASLprep doesn't
distinguish between query and stored strings, but it does reference
Stringprep, which does.  And Stringprep has this to say about stored
strings: "[s]tored strings using the profile MUST NOT contain any
unassigned code points".

New text:

   o  Normalize(str): Apply a Unicode normalization algorithm to a UTF-8
      [RFC3629] encoded "str".  The resulting string is also in UTF-8.
      Implementations SHOULD use the SASLPrep profile [RFC4013] of the
      "stringprep" algorithm [RFC3454] as the normalization algorithm.
----> Note that, for SCRAM, passwords are "stored strings", which means
----> that unassigned codepoints in SCRAM passwords are prohibited (see
----> RFC3454, section 7).

Nico
--