Skip to main content

The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
draft-ietf-sasl-plain-09

Revision differences

Document history

Date Rev. By Action
2012-08-22
09 (System) post-migration administrative database adjustment to the No Objection position for Mark Townsley
2012-08-22
09 (System) post-migration administrative database adjustment to the No Objection position for Russ Housley
2006-06-30
09 Amy Vezza State Changes to RFC Ed Queue from Approved-announcement sent by Amy Vezza
2006-06-28
09 Amy Vezza IESG state changed to Approved-announcement sent
2006-06-28
09 Amy Vezza IESG has approved the document
2006-06-28
09 Amy Vezza Closed "Approve" ballot
2006-06-28
09 Sam Hartman State Changes to Approved-announcement to be sent from IESG Evaluation::AD Followup by Sam Hartman
2006-06-28
09 Russ Housley [Ballot Position Update] Position for Russ Housley has been changed to No Objection from Discuss by Russ Housley
2006-06-26
09 Mark Townsley [Ballot Position Update] Position for Mark Townsley has been changed to No Objection from Discuss by Mark Townsley
2006-06-19
09 (System) Sub state has been changed to AD Follow up from New Id Needed
2006-06-19
09 (System) New version available: draft-ietf-sasl-plain-09.txt
2006-03-31
09 (System) Removed from agenda for telechat - 2006-03-30
2006-03-30
09 Amy Vezza State Changes to IESG Evaluation::Revised ID Needed from IESG Evaluation by Amy Vezza
2006-03-30
09 (System) [Ballot Position Update] New position, No Objection, has been recorded for Ross Callon by IESG Secretary
2006-03-30
09 Lisa Dusseault [Ballot Position Update] Position for Lisa Dusseault has been changed to No Objection from Undefined by Lisa Dusseault
2006-03-30
09 Mark Townsley
[Ballot discuss]
>  Clear-text passwords are simple...
>  The drawback is that they are unacceptable for use over an unencrypted
>  network connection.

Is encryption …
[Ballot discuss]
>  Clear-text passwords are simple...
>  The drawback is that they are unacceptable for use over an unencrypted
>  network connection.

Is encryption really the only way to achieve a connection that is acceptable for using a clear-text password over? What if the threat model only includes offband attacks? What if physical security is sufficient? Perhaps "untrusted" or "unsecure" network connection is a better term here. The rest of the document talks more about obtaining "adequate security" rather than encryption per se, so changing this should make the document more consistent with itself as well.

Also, are not some plain-text password methods, for example those that use a one-time password, considered secure even over unsecured connections? If so, perhaps this could be listed as a valid exception case.
2006-03-30
09 Mark Townsley [Ballot Position Update] New position, Discuss, has been recorded for Mark Townsley by Mark Townsley
2006-03-30
09 Jon Peterson [Ballot Position Update] New position, No Objection, has been recorded for Jon Peterson by Jon Peterson
2006-03-29
09 Bill Fenner [Ballot Position Update] New position, No Objection, has been recorded for Bill Fenner by Bill Fenner
2006-03-29
09 Jari Arkko [Ballot Position Update] New position, No Objection, has been recorded for Jari Arkko by Jari Arkko
2006-03-29
09 Brian Carpenter
[Ballot comment]
From Gen-ART review by Eric Gray. A few sentences seem to need clarification.

----

In the second paragraph on page 4, I am …
[Ballot comment]
From Gen-ART review by Eric Gray. A few sentences seem to need clarification.

----

In the second paragraph on page 4, I am having some trouble
parsing the text "The SASLprep preparation algorithm is not
mandatory to allow, when appropriate, the server to employ
other preparation algorithms (including none)."

What I think this means is "To allow the server to employ
other preparation algorithms (when appropriate, including
none), the SASLprep preparation algorithm is not mandatory."
Alternatively, a construction identical in meaning would be
"The SASLprep preparation algorithm is not mandatory.  This
allows, when appropriate, the server to employ other
preparation algorithms (including none)."

Is this interpretation correct?

Another potential (mis?) interpretation of this statement is
"It is not mandatory, in the SASLprep preparation algorithm,
to allow the server to employ other preparation algorithms
(when appropriate, including none)."

The latter interpretation is a stretch as well as not being
self-consistent, but it is a possible interpretation...
============================================================

I am not certain what the first two paragraphs on page 6 are
trying to say.

"It is noted that the DerivateAuthzid and Authorize functions
(whether implemented as one function or two, whether designed
in a manner in which these functions or the mechanism
implementation can be reused elsewhere) require knowledge and
understanding of mechanism and the application-level protocol
specification and/or implementation details to implement

"It is also noted that the Authorize function outcome is clearly
dependent on details of the local authorization model and policy.
Both functions may be dependent on other factors as well."


After struggling with it for a while, I think it means -

'Implementation of portions of the functionality shown in the
above pseudo-code (e.g. - DerivateAuthzid and Authorize) will
require understanding of specific mechanisms, application level
protocols and implementation details.  Also, the functionality
associated, in the pseudo code example, with the "Authorize"
function depends on local authorization and policy details.
Represented functionality may also depend on other factors.'

Is this correct?

I had trouble with the wording because:

1) I have no idea what value to associate with "noting" these
  things as opposed to simply saying them.  Is there any?
2) I had to look a couple of times to realize that the intent
  of the parenthesized text in the first paragraph seems to
  be to avoid giving any sort of "definitive weight" to the
  example represented by the pseudo code (in other words, I
  had to read it twice to realize that I never had to read
  it at all).
3) I had some touble parsing the last two lines of the first
  paragraph.
============================================================

The following text in section 5 -

"The second example shows how the PLAIN mechanism might be
used to assume the identity of another user.  In this example,
the server rejects the request."

The first sentence implies success, the second failure.

I assume the second is correct.  In that case, shouldn't the
first sentence refer to an "attempt to assume ..."?

There is some shock value in the current wording, because I
thought it was getting ready to tell me how to do something
I should not be able to do.
===========================================================

NITs:
====

Section 1 - 6th paragaph "a strong data security service"
as opposed to "an strong ..."

Page 4, third paragraph - "unassigned code points are allowed
to appear in" as opposed to "... allowed appear in".
2006-03-29
09 Brian Carpenter [Ballot Position Update] New position, No Objection, has been recorded for Brian Carpenter by Brian Carpenter
2006-03-28
09 Cullen Jennings [Ballot Position Update] New position, No Objection, has been recorded for Cullen Jennings by Cullen Jennings
2006-03-28
09 Ted Hardie [Ballot Position Update] New position, No Objection, has been recorded for Ted Hardie by Ted Hardie
2006-03-28
09 Russ Housley
[Ballot comment]
The Security Considerations say:
  >
  > "stringprep" and Unicode [StringPrep] security considerations
  > also apply, as do [UTF-8] security considerations. …
[Ballot comment]
The Security Considerations say:
  >
  > "stringprep" and Unicode [StringPrep] security considerations
  > also apply, as do [UTF-8] security considerations.
  >
  I think it would be better if this were a separate paragraph.  Also,
  it will be easier to read if it was reworded slightly:
  >
  > Unicode and "stringprep" [StringPrep] security considerations
  > also apply, as do [UTF-8] security considerations.
2006-03-28
09 Russ Housley
[Ballot discuss]
The Security Considerations say:
  >
  >  General SASL security considerations apply to this mechanism.
  >
  Please add a pointer …
[Ballot discuss]
The Security Considerations say:
  >
  >  General SASL security considerations apply to this mechanism.
  >
  Please add a pointer to these SASL security considerations.
2006-03-28
09 Russ Housley [Ballot Position Update] New position, Discuss, has been recorded for Russ Housley by Russ Housley
2006-03-27
09 Lisa Dusseault
[Ballot comment]
The changes from RFC2595 section explicitly notes that CR and LF are now legal as authzid characters.  As I understand it, since this …
[Ballot comment]
The changes from RFC2595 section explicitly notes that CR and LF are now legal as authzid characters.  As I understand it, since this document updates RFC2595, an application protocol specification would have to write a new profile to use this, and could then exclude CR and LF characters if those cause any problems in the application layer.  Sam and I discussed the possibility of adding this kind of explanation to this document, which I feel would be useful.
2006-03-27
09 Lisa Dusseault [Ballot Position Update] New position, Undefined, has been recorded for Lisa Dusseault by Lisa Dusseault
2006-03-27
09 Dan Romascanu [Ballot Position Update] New position, No Objection, has been recorded for Dan Romascanu by Dan Romascanu
2006-03-27
09 Lars Eggert [Ballot Position Update] New position, No Objection, has been recorded for Lars Eggert by Lars Eggert
2006-03-26
09 Magnus Westerlund [Ballot Position Update] New position, No Objection, has been recorded for Magnus Westerlund by Magnus Westerlund
2006-03-21
09 Sam Hartman [Ballot Position Update] New position, Yes, has been recorded for Sam Hartman
2006-03-21
09 Sam Hartman Ballot has been issued by Sam Hartman
2006-03-21
09 Sam Hartman Created "Approve" ballot
2006-03-21
09 Sam Hartman State Changes to IESG Evaluation from Waiting for AD Go-Ahead by Sam Hartman
2006-03-21
09 Sam Hartman Placed on agenda for telechat - 2006-03-30 by Sam Hartman
2005-04-06
09 Sam Hartman
Re-reviewed.  Requested working group separate out preparation of
authorization id in the non-normative section 4 to be more consistent
with how I think frameworks will …
Re-reviewed.  Requested working group separate out preparation of
authorization id in the non-normative section 4 to be more consistent
with how I think frameworks will be implemented.
2005-03-21
08 (System) New version available: draft-ietf-sasl-plain-08.txt
2005-02-25
09 (System) State has been changed to Waiting for AD Go-Ahead from In Last Call by system
2005-02-25
09 Sam Hartman Working group wants to discuss where authzids are derived
2005-02-25
09 Sam Hartman Removed from agenda for telechat - 2005-03-03 by Sam Hartman
2005-02-23
09 Michelle Cotton IANA Last Call Comments:
Upon approval of this document the IANA will update the reference for the existing PLAIN SASL Mechanism at the following registry:
2005-02-22
09 Sam Hartman
From: Simon Josefsson
Subject: Re: Last Call: 'The Plain SASL Mechanism' to Proposed Standard
Date: Tue, 22 Feb 2005 14:55:24 +0100



The following came up …
From: Simon Josefsson
Subject: Re: Last Call: 'The Plain SASL Mechanism' to Proposed Standard
Date: Tue, 22 Feb 2005 14:55:24 +0100



The following came up when implementing authzid derivation.  My
recommendations on solving this are given below, but first some
discussion on the problem.  In section 2:

  When an empty authorization identity is provided, the server SHALL
  derive the authorization identity from the prepared representation of
  the provided authentication identity string.  This ensures that the
  derivation of different representations of the authentication identity
  produce the same authorization identity.

Given that the strings are prepared as query strings, it is not
strictly true that, as the last sentence suggest, the step ensure that
different representations produce the same authorization identity.

Consider two authid strings with unassigned code points (e.g., with
some new Unicode 4.0 code points).  They could be two different
Unicode representations of essentially the same string.  I.e., had
Unicode 4.0 NFKC been used on the two strings, the output would have
been identical.

Further, the pseudo code description for this case appear
miss-leading, consider:

        string pAuthcid = SASLprep(authcid, true); # prepare authcid
...
        if (authzid == NULL) {
          authzid = DeriveAuthzid(pAuthcid);
          if (authzid == NULL || authzid == "") {
              return false; # could not derive authzid
          }
        }
        if (!Authorize(pAuthcid, authzid)) {
          return false;    # not authorized
        }
...
  The second parameter provided to the Authorize function is not
  prepared by this code.  The application-level SASL profile should be
  consulted to determine what, if any, preparation is necessary.

Now, if authzid is NULL in the first 'if' clause, 'authzid' will
actually be prepared by the code, which doesn't match the explanation.

RECOMMENDATIONS:

Don't derive authorization identities from the prepared representation
of authentication identities, when the presented authzid is empty.

Change the paragraph above into something like:

  When an empty authorization identity is provided, the server SHALL
  derive the authorization identity from the provided authentication
  identity string.  The application-level SASL profile should be
  consulted to determine what, if any, preparation is necessary.

In the pseudo-code, let the DeriveAuthzid function take 'authcid' as
parameter:

        if (authzid == NULL) {
          authzid = DeriveAuthzid(authcid);
          if (authzid == NULL || authzid == "") {
              return false; # could not derive authzid
          }
        }

Further, add an explanation of the DeriveAuthzid function, that
suggest the function prepare the string internally, if required by the
application profile:

  The DeriveAuthzid function is responsible for deriving an
  authorization identity string given the presented authentication
  identity string.  The application-level SASL profile should be
  consulted to determine what, if any, preparation is necessary.
2005-02-22
09 Sam Hartman Placed on agenda for telechat - 2005-03-03 by Sam Hartman
2005-02-22
07 (System) New version available: draft-ietf-sasl-plain-07.txt
2005-02-14
09 Sam Hartman
I've asked the working group to correct the fact that some times the
document uses TLS or other strong encryption layer while in other
cases …
I've asked the working group to correct the fact that some times the
document uses TLS or other strong encryption layer while in other
cases TLS is mandated.
2005-02-14
09 Sam Hartman
The following last call comment was received:
From: "Jeffrey I. Schiller"
Message-ID: <20050211174940.B863@mit.edu>
Subject: [saag] Re: Last Call: 'The Plain SASL Mechanism' to …
The following last call comment was received:
From: "Jeffrey I. Schiller"
Message-ID: <20050211174940.B863@mit.edu>
Subject: [saag] Re: Last Call: 'The Plain SASL Mechanism' to Proposed Standard

I object to this document being made a proposed standard. It
effectively permits the use of plain text passwords over an insecure
mechanism. I thought we were trying to eliminate such things in IETF
protocols.

Although the document purports to be used only when an underlying
transport is providing security (aka TLS) it provides an escape
clause. Namely the phrase "or backwards compatibility dictates
otherwise." This phrase appears twice in the document. In section 1
and again in the Security Considerations Section. To wit:

=46rom Section 1:

  The PLAIN SASL mechanism does not provide a security layer.  This
  mechanism MUST NOT be used without adequate security protection as the
  mechanism affords no integrity nor confidentiality protection itself.
  The PLAIN SASL mechanism MUST NOT be advertised unless a strong
  encryption layer, such as provided by Transport Layer Security
  ([TLS]), is active or backwards compatibility dictates otherwise.
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
=2E..

6. Security Considerations

  The PLAIN mechanism relies on the TLS encryption layer for security.
  When used without TLS, it is vulnerable to a common network
  eavesdropping attack.  Therefore PLAIN MUST NOT be advertised or used
  unless a suitable TLS encryption layer is active or backwards
                                                      ^^^^^^^^^
  compatibility dictates otherwise.
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I will withdraw my objection if this "escape clause" is removed (and
an equivalent one isn't substituted...).
2005-02-11
09 Amy Vezza Last call sent
2005-02-11
09 Amy Vezza State Changes to In Last Call from Last Call Requested by Amy Vezza
2005-02-11
09 Sam Hartman State Changes to Last Call Requested from Publication Requested by Sam Hartman
2005-02-11
09 Sam Hartman Last Call was requested by Sam Hartman
2005-02-11
09 (System) Ballot writeup text was added
2005-02-11
09 (System) Last call text was added
2005-02-11
09 (System) Ballot approval text was added
2005-02-11
09 Sam Hartman AD review conducted before joining the IESG
2005-02-11
09 Sam Hartman State Change Notice email list have been change to tlyu@mit.edu, kurt@openLDAP.org from hartmans@mit.edu, kurt@openLDAP.org
2005-01-21
06 (System) New version available: draft-ietf-sasl-plain-06.txt
2004-12-02
09 Sam Hartman Shepherding AD has been changed to Sam Hartman from Russ Housley
2004-11-04
09 Russ Housley Draft Added by Russ Housley in state Publication Requested
2004-10-29
05 (System) New version available: draft-ietf-sasl-plain-05.txt
2004-02-16
04 (System) New version available: draft-ietf-sasl-plain-04.txt
2003-10-28
03 (System) New version available: draft-ietf-sasl-plain-03.txt
2003-07-02
02 (System) New version available: draft-ietf-sasl-plain-02.txt
2003-05-05
01 (System) New version available: draft-ietf-sasl-plain-01.txt
2003-02-10
00 (System) New version available: draft-ietf-sasl-plain-00.txt