Network Working Group                                           J. Myers
Internet Draft: SMTP Authentication                        February 1997
Document: draft-myers-smtp-auth-05.txt


                         SMTP Service Extension
                           for Authentication
Status of this Memo

   This document is an Internet Draft.  Internet Drafts are working
   documents of the Internet Engineering Task Force (IETF), its Areas,
   and its Working Groups.  Note that other groups may also distribute
   working documents as Internet Drafts.

   Internet Drafts are draft documents valid for a maximum of six
   months.  Internet Drafts may be updated, replaced, or obsoleted by
   other documents at any time.  It is not appropriate to use Internet
   Drafts as reference material or to cite them other than as a
   ``working draft'' or ``work in progress``.

   To learn the current status of any Internet-Draft, please check the
   1id-abstracts.txt listing contained in the Internet-Drafts Shadow
   Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or
   munnari.oz.au.

   A revised version of this draft document will be submitted to the RFC
   editor as a Proposed Standard for the Internet Community.  Discussion
   and suggestions for improvement are requested.  This document will
   expire before July 1996.  Distribution of this draft is unlimited.


1. Introduction

   This document defines an extension to the SMTP service whereby an
   SMTP client may indicate an authentication mechanism to the server,
   perform an authentication protocol exchange, and optionally negotiate
   a security layer for subsequent protocol interactions.  This
   extension is a profile of the Simple Authentication and Security
   Layer [SASL].












Myers                                                           [Page 1]


Internet Draft             SMTP Authentication          26 February 1997


2. Conventions Used in this Document

   In examples, "C:" and "S:" indicate lines sent by the client and
   server respectively.

   The following terms are used in this document to signify the
   requirements of this specification.

   1) MUST, or the adjective REQUIRED, means that the definition is an
   absolute requirement of the specification.

   2) MUST NOT that the definition is an absolute prohibition of the
   specification.

   3) SHOULD means that there may exist valid reasons in particular
   circumstances to ignore a particular item, but the full implications
   MUST be understood and carefully weighed before choosing a different
   course.

   4) SHOULD NOT means that there may exist valid reasons in particular
   circumstances when the particular behavior is acceptable or even
   useful, but the full implications SHOULD be understood and the case
   carefully weighed before implementing any behavior described with
   this label.

   5) MAY, or the adjective OPTIONAL, means that an item is truly
   optional. One vendor may choose to include the item because a
   particular marketplace requires it or because the vendor feels that
   it enhances the product while another vendor may omit the same item.
   An implementation which does not include a particular option MUST be
   prepared to interoperate with another implementation which does
   include the option.

   "Can" is used instead of "may" when referring to a possible
   circumstance or situation, as opposed to an optional facility of the
   protocol.


3. The Authentication service extension


(1) the name of the SMTP service extension is "Authentication"

(2) the EHLO keyword value associated with this extension is "AUTH"

(3) The AUTH EHLO keyword contains as a parameter a space separated list
    of the names of supported SASL mechanisms.




Myers                                                           [Page 2]


Internet Draft             SMTP Authentication          26 February 1997


(4) a new SMTP verb "AUTH" is defined

(5) No additional parameters are added to either the MAIL FROM or RCPT
    TO commands.


4. The AUTH command

   AUTH mechanism [initial-response]

Arguments:
    a string identifying a SASL authentication mechanism.
    an optional base64-encoded response

Restrictions:
    after an AUTH command has successfully completed, no more AUTH com-
    mands may be issued in the same session.  After a successful AUTH
    command completes, a server MUST reject any further AUTH commands
    with a 503 reply.

Discussion:
    The AUTH command indicates an authentication mechanism to the
    server.  If the server supports the requested authentication mecha-
    nism, it performs an authentication protocol exchange to authenti-
    cate and identify the user.  Optionally, it also negotiates a secu-
    rity layer for subsequent protocol interactions.  If the requested
    authentication mechanism is not supported, the server rejects the
    AUTH command with a 504 reply.

    The authentication protocol exchange consists of a series of server
    challenges and client answers that are specific to the authentica-
    tion mechanism.  A server challenge, otherwise known as a ready
    response, is a 334 reply with the text part containing a BASE64
    encoded string.  The client answer consists of a line containing a
    BASE64 encoded string.  If the client wishes to cancel an authenti-
    cation exchange, it issues a line with a single "*".  If the server
    receives such an answer, it MUST reject the AUTH command by sending
    a 501 reply.

    The optional initial-response argument to the AUTH command is used
    to save a round trip when using authentication mechanisms that are
    defined to send no data in the initial challenge.  When the initial-
    response argument is used with such a mechanism, the initial empty
    challenge is not sent to the client and the server uses the data in
    the initial-response argument as if it were sent in response to the
    empty challenge.  If the initial-response argument to the AUTH com-
    mand is used with a mechanism that sends data in the initial chal-
    lenge, the server rejects the AUTH command with a 535 reply.



Myers                                                           [Page 3]


Internet Draft             SMTP Authentication          26 February 1997


    If the server cannot BASE64 decode the argument, it rejects the AUTH
    command with a 501 reply.  If the server rejects the authentication
    data, it SHOULD reject the AUTH command with a 535 reply.  Should
    the client successfully complete the authentication exchange, the
    SMTP server issues a 235 reply.

    The service name specified by this protocol's profile of SASL is
    "smtp".

    If a security layer is negotiated through the SASL authentication
    exchange, it takes effect immediately following the CRLF that con-
    cludes the authentication exchange for the client, and the CRLF of
    the success reply for the server.

    The server is not required to support any particular authentication
    mechanism, nor are authentication mechanisms required to support any
    security layers.  If an AUTH command fails, the client may try
    another authentication mechanism by issuing another AUTH command.
    In other words, the client may request authentication types in
    decreasing order of preference.

    The BASE64 string may in general be arbitrarily long.  Clients and
    servers MUST be able to support challenges and responses that are as
    long as are generated by the authentication mechanisms they support,
    independent of any line length limitations the client or server may
    have in other parts of its protocol implementation.

Examples:
    S: 220 smtp.andrew.cmu.edu ESMTP server ready
    C: EHLO jgm.pc.cc.cmu.edu
    S: 250-smtp.andrew.cmu.edu
    S: 250 AUTH=SKEY
    C: AUTH FOOBAR
    S: 504 Unrecognized authentication type
    C: AUTH SKEY c21pdGg=
    S: 334 OTUgUWE1ODMwOA==
    C: BsAY3g4gBNo=
    S: 235 S/Key authentication successful













Myers                                                           [Page 4]


Internet Draft             SMTP Authentication          26 February 1997


5. Formal Syntax

   The following syntax specification uses the augmented Backus-Naur
   Form (BNF) notation as specified in [RFC822].

   Except as noted otherwise, all alphabetic characters are case-insen-
   sitive.  The use of upper or lower case characters to define token
   strings is for editorial clarity only.  Implementations MUST accept
   these strings in a case-insensitive fashion.

   ATOM_CHAR       ::= <any CHAR except atom_specials>

   atom_specials   ::= "(" / ")" / "{" / SPACE / CTLs / "%" / "*" /
                       <"> / "\"

   auth_command    ::= "AUTH" SPACE auth_type [SPACE base64]
                  *(CRLF base64) CRLF

   auth_type       ::= 1*ATOM_CHAR

   base64          ::= *(4base64_CHAR) [base64_terminal]

   base64_char     ::= "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" /
                       "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" /
                       "Q" / "R" / "S" / "T" / "U" / "V" / "W" / "X" /
                       "Y" / "Z" /
                       "a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" /
                       "i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" /
                       "q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" /
                       "y" / "z" /
                       "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" /
                       "8" / "9" / "+" / "/"
                       ;; Case-sensitive

   base64_terminal ::= (2base64_char "==") / (3base64_char "=")

   CHAR            ::= <any 7-bit US-ASCII character except NUL,
                        0x01 - 0x7f>

   continue_req    ::= "334" SPACE base64 CRLF

   CR              ::= <ASCII CR, carriage return, 0x0C>

   CRLF            ::= CR LF

   CTL             ::= <any ASCII control character and DEL,
                        0x00 - 0x1f, 0x7f>




Myers                                                           [Page 5]


Internet Draft             SMTP Authentication          26 February 1997


   LF              ::= <ASCII LF, line feed, 0x0A>

   SPACE           ::= <ASCII SP, space, 0x20>



6. References

   [SASL]  Myers, J., "Simple Authentication and Security Layer",
   draft-myers-auth-sasl-XX.txt, Carnegie Mellon.

   [RFC821] Postel, J., "Simple Mail Transfer Protocol", RFC 821, August
   1982.

   [RFC822] Crocker, D., "Standard for the Format of ARPA Internet Text
   Messages", RFC 822, August 1982.



7. Security Considerations

   Security issues are discussed throughout this memo.

   If a client uses this extension to get an encrypted tunnel through an
   insecure network to a cooperating server, it needs to be configured
   to never send mail to that server when the connection is not mutually
   authenticated and encrypted.  Otherwise, an attacker could steal the
   client's mail by hijacking the SMTP connection and either pretending
   the server does not support the Authentication extension or causing
   all AUTH commands to fail.

   This extension does not provide a defined mechanism for authentica-
   tion using a plaintext password.  This omission is intentional.

   This extension is not intended to replace or be used instead of end-
   to-end message signature and encryption systems such as PEM or PGP.
   This extension addresses a different problem than end-to-end systems;
   it has the following key differences:

   (1) it is generally useful only within a trusted enclave

   (2) it protects the entire envelope of a message, not just the mes-
       sage's body.

   (3) it authenticates the message submission, not authorship of the
       message content





Myers                                                           [Page 6]


Internet Draft             SMTP Authentication          26 February 1997


   (4) it can give the sender some assurance the message was delivered
       to the next hop in the case where the sender mutually authenti-
       cates with the next hop and negotiates an appropriate security
       layer.

       Additional security considerations are mentioned in the SASL
       specification [SASL].



8. Author's Address:

John G. Myers
220 Palo Alto Ave, Apt 102
Palo Alto, CA 94301

Email: jgm@cmu.edu


































Myers                                                           [Page 7]