Re: LAST CALL: Simple Authentication and Security Layer (SASL)
Simon Josefsson <jas@extundo.com> Fri, 24 June 2005 13:21 UTC
Received: from above.proper.com (localhost.vpnc.org [127.0.0.1]) by above.proper.com (8.12.11/8.12.9) with ESMTP id j5ODLG1W030821; Fri, 24 Jun 2005 06:21:16 -0700 (PDT) (envelope-from owner-ietf-sasl@mail.imc.org)
Received: (from majordom@localhost) by above.proper.com (8.12.11/8.12.9/Submit) id j5ODLG58030820; Fri, 24 Jun 2005 06:21:16 -0700 (PDT)
X-Authentication-Warning: above.proper.com: majordom set sender to owner-ietf-sasl@mail.imc.org using -f
Received: from yxa.extundo.com (root@178.230.13.217.in-addr.dgcsystems.net [217.13.230.178]) by above.proper.com (8.12.11/8.12.9) with ESMTP id j5ODLCZu030689 for <ietf-sasl@imc.org>; Fri, 24 Jun 2005 06:21:15 -0700 (PDT) (envelope-from jas@extundo.com)
Received: from latte.josefsson.org (c494102a.s-bi.bostream.se [217.215.27.65]) (authenticated bits=0) by yxa.extundo.com (8.13.4/8.13.4/Debian-3) with ESMTP id j5ODL9C1031487 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <ietf-sasl@imc.org>; Fri, 24 Jun 2005 15:21:10 +0200
From: Simon Josefsson <jas@extundo.com>
To: ietf-sasl@imc.org
Subject: Re: LAST CALL: Simple Authentication and Security Layer (SASL)
References: <ldvd5qe58p9.fsf@cathode-dark-space.mit.edu>
OpenPGP: id=B565716F; url=http://josefsson.org/key.txt
X-Hashcash: 1:21:050624:ietf-sasl@imc.org::c5Ek5byNMSmOzh9Y:4wLf
Date: Fri, 24 Jun 2005 15:21:01 +0200
In-Reply-To: <ldvd5qe58p9.fsf@cathode-dark-space.mit.edu> (Tom Yu's message of "Wed, 22 Jun 2005 18:26:58 -0400")
Message-ID: <ilufyv799he.fsf@latte.josefsson.org>
User-Agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Spam-Status: No, score=0.1 required=5.0 tests=FORGED_RCVD_HELO autolearn=failed version=3.0.3
X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yxa-iv
X-Virus-Scanned: ClamAV version 0.84, clamav-milter version 0.84e on yxa.extundo.com
X-Virus-Status: Clean
Sender: owner-ietf-sasl@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-sasl/mail-archive/>
List-ID: <ietf-sasl.imc.org>
List-Unsubscribe: <mailto:ietf-sasl-request@imc.org?body=unsubscribe>
Hello all,
In general, I think the document is pretty good. It could use a
re-read, to fix editorial flaws. I only reviewed my pet problem-area
of SASLprep below.
Section 4, Protocol Requirements:
Specifications are encouraged to prescribe use of existing
authorization identity forms as well as existing string
representations, such as simple user names [RFC4013]. Protocols
whose authorization identities are simple user names SHOULD use of
SASLprep [RFC4013] (a profile of the StringPrep [RFC3454]
preparation algorithm) as their preparation algorithm.
The intention of the requirement appear unclear to me. For example,
take IMAP or SMTP authentication, with simple username+password. Is
the intention that the transferred authorization identity should be in
SASLprep:ed form? If so, I believe it is better to preserve as much
as possible of what the user typed as long as possible. Having the
client apply SASLprep to the authorization identity would violate
that.
On the other hand, requiring the server to apply SASLprep may be too
expensive. There are resource-starvation issues to consider here.
Customers are asking for optimized versions of my StringPrep
implementation to be able to use it in a server.
If the above requirement is going to be present, I believe it should
either be clear on what is intended, or acknowledge that it is meant
to be fuzzy and that is leaves things open. To me, I get the
impression that it is meant to be fuzzy. Adopting parts of the
following paragraph, from Mechanism Requirements, would acknowledge
that the fuzziness is intended, and that protocol specifications must
clarify the details. What do you think?
In order to avoid interoperability problems due to differing
normalizations, when a mechanism calls for character data is to be
used as input to a cryptographic and/or comparison function, the
specification MUST detail precisely how and where (client or server)
the character data is to be prepared, including all normalizations,
for input into the function to ensure proper operation.
Also, there is a typo, s/SHOULD use of/SHOULD use/.
Section 5, Mechanism Requirements:
The mechanism SHOULD NOT use the authorization identity string in
generation of any long-term cryptographic keys or hashes as there is
no requirement that the authorization identity string be be
non-canonical.
I might be picking words here, but 'non-canonical'? Shouldn't that be
'canonical'? Even so, if I understand correctly, what is intended is
that one user may have different authorization identities in different
protocols, and that is why mechanisms shouldn't use the authorization
identities as input to hash functions etc. If so, I don't think
"canonical" is a good word here, since one protocol's authzid is as
good as another protocol's authzid. There is no "canonical" authzid
to speak of.
Also, there is a typo, s/be be/to be/.
Cheers,
Simon
- LAST CALL: Simple Authentication and Security Lay… Tom Yu
- Re: LAST CALL: Simple Authentication and Security… Simon Josefsson
- Re: LAST CALL: Simple Authentication and Security… Kurt D. Zeilenga
- Re: LAST CALL: Simple Authentication and Security… Simon Josefsson