Subject: [precis] Stephen Farrell's Discuss on draft-ietf-precis-saslprepbis-17: (with DISCUSS and COMMENT)

From: "Stephen Farrell" <[email-masked]>
Date: Wed, 27 May 2015 05:56:19 -0700

Stephen Farrell has entered the following ballot position for
draft-ietf-precis-saslprepbis-17: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-precis-saslprepbis/

----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

4.1: zero length password - I think you're wrong on that
one but it is arguable. If RFC4013 also prohibited zero
length passwords (I couldn't tell at a quick glance) or if
the WG did debate this and having done so decided to
prohibit zero length passwords then I will clear the
discuss immediately. But if not, I'd like to chat about
it...

There are situations where an empty password is ok (say
when I'm not "protecting" something but just want to know
what user's profile to use, e.g. for weather) and that is
supported in many systems (that hence won't be able to
exactly adopt this) and insisting on a non-empty password
could be more damaging than allowing a zero-length
password, whenever a user re-uses a password for something
for which no password is really needed (and which hence is
less likely to be well protected) and where that password
is also used to protect something of significantly higher
value. The zero-length password is also not an interesting
subset of the set of stupid passwords really so doesn't
deserve to be called out as such (and you say that in the
draft when you talk about length-1 passwords.) So I think
allowing zero length passwords is better overall, and more
consistent with implementations.

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

- Unsurprisingly, the diff between this and RFC4013 isn't
useful, so I read from scratch. If I'm commenting on
something that was already true of 4013, just tell me and
that'll be fine.

- intro: given the unsolved i18n issues and the fact that
passwords are crap (security wise) would it be fair to ask
that you add a sentence here to encourage folks to not use
passwords at all but some better form of authentication,
when that's possible? (Which is sadly not nearly common
enough for user authentication.)

- nitty nit: intro, 2nd last para on p3: once a password is
chosen, there are no more entropy changes so you cannot
maximise entropy *during* authentication. Maybe
s/during/for/ works though.

- 3.2.2, bullet 3: I read this as saying to use the latest
Unicode default case folding and not to stick with v7.0
even if a new and in this sense different version is
published. This is just to check that that is what you
intended and that I've not misread the text.

---

From: Alexey Melnikov <[email-masked]>
Date: Wed, 27 May 2015 14:06:27 +0100

Hi Stephen,

On 27/05/2015 13:56, Stephen Farrell wrote:
  [...]
> length passwords (I couldn't tell at a quick glance)
Yes, zero length password was always prohibited by RFC 4013. If you look 
at various RFCs that reference SASLPrep, they say "if the password is 
invalid or zero length after applying SASLPrep normalization, then 
reject it" (or similar words).
> or if
The main reason for disallowing it was because with SASLPrep (or 
Precis), a non empty sequence of characters can result in empty password 
after canonicalization, which seems misleading/dangerous if allowed.
Can you suggest specific text? It is a bit hard to agree/disagree in 
abstract.

---

From: Stephen Farrell <[email-masked]>
Date: Wed, 27 May 2015 14:14:04 +0100

Hiya,

> reject it" (or similar words).

That wins. I'll clear the discuss and make this a comment.

> Can you suggest specific text? It is a bit hard to agree/disagree in

Will do in the updated comment.

Cheers,
S.

---

From: Simon Josefsson <[email-masked]>
Date: Fri, 29 May 2015 22:19:49 +0200

> That wins. I'll clear the discuss and make this a comment.

I question if this is correct -- my SASLprep implementation accepts zero
length passwords.  Where in RFC 4013 is the requirement to reject them?

I think Stephen's thoughts around empty passwords makes a lot of sense.
Empty passwords are used in many places, for good or bad.

I'm certain that not all RFCs that refer to SASLprep has the wording
above.  RFC 5802 (SCRAM) doesn't, as far as I can tell, for example.

/Simon

---

From: Alexey Melnikov <[email-masked]>
Date: Sat, 30 May 2015 18:19:40 +0100

Hi Simon,

> On 29 May 2015, at 21:19, Simon Josefsson <[email-masked]> wrote:
> 

SASL PLAIN and SCRAM have relevant text (in case of SCRAM, this only applies to usernames, but they are the same SASLPrep profile, so I think the lack of similar text for passwords was not intentional) 
> above.  RFC 5802 (SCRAM) doesn't, as far as I can tell, for example.

See above.