Subject: Comments on draft-ietf-sasl-plain-01.txt

From: Simon Josefsson <[email-masked]>
Date: Sat, 17 May 2003 23:02:18 +0200

The server MAY also use the password to initialize any new
  authentication database, such as one suitable for [CRAM-MD5] or
  [DIGEST-MD5].

First, DIGEST-MD5 need authcid and authzid too, it isn't possible to
initialize a hashed password database suitable for DIGEST-MD5 using
the password only.

Secondly, how will this interact with the non-ASCII handling in
CRAM-MD5 and DIGEST-MD5?  Should the PLAIN server SASLprep() the
strings or not, before hashing them and storing them in the database,
for later use with *-MD5?  The answer appears to depend on how
*-MD5bis will handle non-ASCII, but there is no CRAM-MD5bis, and
DIGEST-MD5bis does not currently mention SASLprep.

Since 2195 is unclear on the username syntax (ASCII?  UTF-8?  Opaque
data except SPC?), it would be prudent to mention in the security
considerations that if someone currently uses non-ASCII usernames in
PLAIN, the SASLprep() operation may cause changes to the username.
This warning may be more appropriate in the saslprep document, but
that document doesn't have a security consideration currently.  E.g.,
if someone has a system with two users "foo<GERMAN SHARP S>" and
"fooss", the SASLprep() operation translates the first string into the
latter before database comparison, whereas the application does not
necessarily perform the same translation.  The consequences appears to
be that someone who knows the password for "fooss" may also be
authenticated as "foo<GERMAN SHARP S>".

Thanks.