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.

---

From: Sam Hartman <[email-masked]>
Date: Sat, 17 May 2003 17:26:53 -0400

>>>>> "Simon" == Simon Josefsson <[email-masked]> writes:

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

We agreed in San Francisco that digest-md5 would use saslprep.  I
believe we agreed the same for cram-md5.  Those updates are pending.

--Sam

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Sun, 18 May 2003 09:23:05 -0700

At 02:02 PM 5/17/2003, Simon Josefsson wrote:

>First, DIGEST-MD5 need authcid and authzid too,

Technically speaking, the DIGEST-MD5 A1 hash doesn't include
the authzid.  

>it isn't possible to

I'll s/password/credentials/ in the above.

>CRAM-MD5 and DIGEST-MD5? 

I think that exactly how PLAIN credentials interact with credentials
of other mechanisms should be viewed as an implementation detail
as the syntax and semantics of those credentials is mechanism
specific.  But as Sam said, I think the WG intends to use SASLprep
for all username and password appearing in such mechanisms. 

>Should the PLAIN server SASLprep() the

Well, saslprep should have a security consideration section.
I think it fine to elaborate that the profile as to why it is
not intended to be applied to identities which are not simple
user names and related issued.  Also, I think 2222bis should
be more clear that the form which authentication credentials
take and how they are used to authenticate the user is
mechanism specific.  Applications should be avoid overloading
syntax and semantics.

I don't see the PLAIN I-D needing any additional text here.

Kurt

---

From: Sam Hartman <[email-masked]>
Date: Sat, 17 May 2003 17:26:53 -0400

--Sam

---

From: "Kurt D. Zeilenga" <[email-masked]>
Date: Sun, 18 May 2003 09:23:05 -0700

Kurt