[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Security
Kurt Zeilenga wrote:
>> Normally we say "SHOULD" when we mean "old stuff
>> has a good excuse, its old".
> There are many reasons to use SHOULD.
Sure, "old" is just one reason commonly accepted as
"good excuse" without talking about it, because a
protocol or programs written before the SHOULD was
introduced typically could not foresee this.
For other reasons updated specifications with a new
SHOULD ideally mention what might be good excuses,
otherwise folks could claim that "because I say so"
is good enough to violate a SHOULD.
[i18n]
> With PLAIN, the client lack of knowledge doesn't
> matter. It simply provides the UTF-8 encoded
> Unicode password. The server can sort it out.
Okay, got it, when say SASLprep is used this has
to be done on the side of the client for CRAM-MD5
passwords. For PLAIN passwords the server can do
it or something else, as long as the client sends
UTF-8 (maybe limited to Unocode 3.2).
Apparently the client "MUST NOT" use SASLprep for
PLAIN, that could confuse "something else" on the
server side. Is that correct ?
SASLprep(x) = SASLprep( SASLprep(x)) would help
if both sides try the same preparation for PLAIN.
So we need a MUST for CRAM-MD5 and UTF8-non-ascii
passwords on the side of the client.
> Except where the client and server have an a
> priori agreement to utilize a different character
> set, encoding, and/or preparation, the password
> MUST be represented using Unicode, prepared using
> SASLprep, and encoded as UTF-8 prior to input
> to the cryptographic functions.
+1 A different charset is not necessarily an issue,
when it is transformed to SASLprepped UTF-8 in the
preparation step. That's remotely the same idea as
for IRIs in legacy charsets.
A legacy charset could be even an advantage, almost
all of them are covered by Unicode 3.2, as required
by SASLprep.
Frank