[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

WG Last Call Summary: Simple Authentication and Security Layer (SASL)



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Only few issues appear to have arisen during Working Group Last Call.
Several of these issues can be resolved by fairly minimal edits.
Editors: please submit another draft resolving these issues.

After the draft resolving these issues is published, I will conclude
that the Working Group has reached consensus, and I will submit this
document to the IESG for consideration as a Proposed Standard.  Please
let me know if you have feedback concerning this course of action, or
about the issues identified below.

Issues (0), (1), and (2) are minor editorial issues which I feel are
not exceptionally contentious.  Issues (3), (4), and (5) involve
optional fields in the authentication request and the authentication
outcome message.  I believe that issue (3) is moderately complex, but
only requires a reasonably simple change.  Issue (6) is a potential
interoperability problem on which I would like opinions.

ISSUES
======

(0) The draft does not display its expiration date in explicit form;
    the Internet-Draft Guidelines state that the text "expires in six
    months" is not acceptable.

(1) Hallvard Furuseth notes that in Section 4, "authentication
    identity" appears to be erroneously written where "authorization
    identity" is meant in the following text:

> 4.  Protocol Requirements

>     Where the specification does not precisely prescribe how identities
>     in SASL relate to identities used elsewhere in the protocol, for
>     instance in access control policy statements, it may be appropriate
>     for the protocol to provide a facility by which the client can
>     discover information (such as the representation of the
>     authentication identity used in making access control decisions)
>     ^^^^^^^^^^^^^^^^^^^^^^^
>     about established identities for these uses.

    I believe the above change is reasonable, and that there is
    consensus to make this change.

(2) Discussion indicates that text describing credentials could be
    more explicit about the relationship of the authentication
    identity to the credentials.  Jeffrey Hutzelman's suggested text
    appears to be reasonable:

>>>>> "jhutz" == Jeffrey Hutzelman <jhutz@xxxxxxx> writes:

jhutz> OLD TEXT:
jhutz>   The server is responsible for verifying the client's credentials and
jhutz>   verifying that the client is allowed to act as the authorization
jhutz>   identity.  A SASL exchange fails if either (or both) of these
jhutz>   verifications fails.  (The SASL exchange may fail for other reasons,
jhutz>   such as service authorization failure.)

jhutz> NEW TEXT:
jhutz>   The server is responsible for verifying the client's credentials,
jhutz>   extracting the client's authentication identity (in a manner which
jhutz>   depends on the mechanism being used), and verifying that the client
jhutz>   is allowed to act as the requested authorization identity.  A SASL
jhutz>   exchange fails if either verification (or both) fails.  (The SASL
jhutz>   exchange may also fail for other reasons, such as service
jhutz>   authorization failure).

    I saw no objections to the above text.

(3) Hallvard notes a more complex issue involving some ambiguity in
    the definition "initial response" in the context of optional data
    provided in the application protocol's authentication request.  I
    agree with Hallvard that the usage in Section 5 is inconsistent
    with the usage elsewhere in the document, and that the intended
    usage of "initial response" is "first authentication data
    transmitted by the client".  I suggest the following changes:

> 5.  Mechanism Requirements

[...]

>   2) A definition of the server-challenges and client-responses of the
>      authentication exchange, as well as:

>      a) An indication whether mechanism is client-first, variable, or
>         server-first.  If a SASL mechanism is defined as client-first
>         and the client does not send an initial response, then the first

    Insert "in the authentication request" after "initial response".

>         server challenge MUST be empty (the EXTERNAL mechanism is an
>         example of this case).  If a SASL mechanism is defined as
>         variable, then the specification needs to state how the server
>         behaves when the initial client response is omitted (the

    Insert "from the authentication request" after "is omitted".

>         DIGEST-MD5 mechanism [DIGEST-MD5] is an example of this case).
>         If a SASL mechanism is defined as server-first then the client
>         MUST NOT send an initial client response (the CRAM-MD5 mechanism

    Insert "in the authentication request" after "initial client
    response".

>         [CRAM-MD5] is an example of this case).

(4) Discussion initiated by Hallvard suggests that text describing
    optional initial response (in the authentication request) or
    optional additional final data (in the authentication outcome)
    could use additional clarification.  My evaluation of the
    discussion suggests the following interpretations:

    (a) Within the authentication request, an application protocol may
        optionally support a field containing an initial client
        response.  It is optional for an implementation to actually
        send this initial client response field, but implementations
        of such an application protocol must accept this initial
        response field.

    (b) Within the authentication outcome message, an application
        protocol may optionally a field containing additional data
        from the server.  It is optional for an implementation to
        actually use this additional data field, but implementations
        of such an application protocol must accept this additional
        data field.

    I do not have specific recommended text to address this issue.

(5) Addressing a minor editorial issue brought up by Hallvard, I
    suggest (based on discussion) to change the following text in
    Section 3:

>   Where mechanisms specify the first data sent in the exchange is from
>   the client to the server and additional data is sent to the client
>   along with indicating a successful outcome, and the protocol provides
>   fields supporting both, the exchange can be shorted by two
>   round-trips:

    by replacing "the exchange ... round-trips:" with "then the
    exchange takes two fewer round trips:".

(6) I have found a potential interoperability problem.  In the course
    of my own review of the document, I noticed that Section 4
    requires that an application protocol providing a field for
    initial client response data in the authentication request must
    have a means for distinguishing an empty initial response from an
    absent initial response.  There is a similar requirement on the
    additional data field in the authentication outcome.

    I think this is a potential interoperability trap.  It seems to me
    that text as it stands probably provides adequate warning about
    this problem, but perhaps additional text emphasizing this
    requirement should appear in other places (e.g., Section 3)
    mentioning the optional initial response and additional data
    fields.  I would like additional opinions on this subject, but
    this issue may not be sufficiently serious to hold up the
    document.

==========

Again, please let me know if you have feedback about the results of
this Last Call.

 --- Tom Yu, SASL WG co-chair
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (SunOS)

iD8DBQFDwfsDSO8fWy4vZo4RAuNhAJ42SRS7Adu18zmlo5gPMMgkT09oFgCg5BIV
w2doefQjozsW5jkUYObcecs=
=sSNK
-----END PGP SIGNATURE-----