Bump versions.
[gsasl.git] / doc / specification / draft-siemborski-rfc2554bis-03.txt
blob0b2fe1b6d255f459ae6abe734b5800f3c7730655
7 Network Working Group                                  Robert Siemborski
8 INTERNET-DRAFT                                Carnegie Mellon University
9 Intended Category: Proposed Standard                         April, 2004
12                SMTP Service Extension for Authentication
13                   <draft-siemborski-rfc2554bis-03.txt>
16 Status of this Memo
17     This document is an Internet-Draft and is in full conformance with
18     all provisions of Section 10 of RFC2026.
20     Internet-Drafts are working documents of the Internet Task Force
21     (IETF), its areas, and its working groups.  Note that other groups
22     may also distribute working documents as Internet-Drafts.
24     Internet-Drafts are draft documents valid for a maximum of six
25     months and may be updated, replaced, or obsoleted by other documents
26     at any time.  It is inappropriate to use Internet Drafts as
27     reference material or to cite them other than as "work in progress."
29     The list of current Internet-Drafts can be accessed at
30     http://www.ietf.org/ietf/1id-abstracts.txt
32     The list of Internet-Draft Shadow Directories can be accessed at
33     http://www.ietf.org/shadow.html.
35     Distribution of this memo is unlimited.
37 Abstract
39     This document defines a Simple Mail Transport Protocol (SMTP)
40     extension whereby an SMTP client may indicate an authentication
41     mechanism to the server, perform an authentication protocol
42     exchange, and optionally negotiate a security layer for subsequent
43     protocol interactions during this session.  This extension includes
44     a profile of the Simple Authentication and Security Layer (SASL) for
45     SMTP.
47     This document obsoletes RFC 2554 and replaces it as a Proposed
48     Standard.
58 Siemborski                Expires October, 2004                 [Page 1]
64 SMTP Service Extension for Authentication                    April, 2004
67 Table of Contents
70 1. How to Read This Document . . . . . . . . . . . . . . . . . . . .   3
71 2. The Authentication Service Extension  . . . . . . . . . . . . . .   3
72 3. The AUTH Command  . . . . . . . . . . . . . . . . . . . . . . . .   3
73 3.1. Examples  . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
74 4. The AUTH Parameter to the MAIL FROM command . . . . . . . . . . .   8
75 4.1. Examples  . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
76 5. Status Codes  . . . . . . . . . . . . . . . . . . . . . . . . . .  10
77 6. Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . . . .  11
78 7. Security Considerations . . . . . . . . . . . . . . . . . . . . .  12
79 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . .  14
80 9. Protocol Actions  . . . . . . . . . . . . . . . . . . . . . . . .  14
81 10. Intellectual Property Rights . . . . . . . . . . . . . . . . . .  14
82 11. Copyright  . . . . . . . . . . . . . . . . . . . . . . . . . . .  14
83 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . .  15
84 13. Changes Since RFC 2554 . . . . . . . . . . . . . . . . . . . . .  17
85 14. Author's Address . . . . . . . . . . . . . . . . . . . . . . . .  17
86 15. Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . .  18
118 Siemborski                Expires October, 2004                 [Page 2]
124 SMTP Service Extension for Authentication                    April, 2004
127 1.  How to Read This Document
129     The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD
130     NOT", "RECOMMENDED", and "MAY" in this document are to be
131     interpreted as defined in "Key words for use in RFCs to Indicate
132     Requirement Levels" [KEYWORDS]
134     In examples, "C:" and "S:" indicate lines sent by the client and
135     server, respectively.
137 2.  The Authentication Service Extension
139      1.   The name of this [SMTP] service extension is "Authentication"
141      2.   The EHLO keyword value associated with this extension is
142           "AUTH"
144      3.   The AUTH EHLO keyword contains as a parameter a space
145           separated list of the names of available [SASL] mechanisms.
146           The list of available mechanisms MAY change after a successful
147           STARTTLS command [SMTP-TLS].
149      4.   A new [SMTP] verb "AUTH" is defined.
151      5.   An optional parameter using the keyword "AUTH" is added to the
152           MAIL FROM command, and extends the maximum line length of the
153           MAIL FROM command by 500 characters.
155      6.   This extension is appropriate for the submission protocol
156           [SUBMIT].
158 3.  The AUTH Command
160     AUTH mechanism [initial-response]
162       Arguments:
163           mechanism: A string identifying a [SASL] authentication
164           mechanism.
166           initial-response: An optional initial client response.  If
167           present, this response MUST be encoded as described in Section
168           3 of [BASE64].
170       Restrictions:
171           After an AUTH command has been successfully completed, no more
172           AUTH commands may be issued in the same session.  After a
173           successful AUTH command completes, a server MUST reject any
174           further AUTH commands with a 503 reply.
178 Siemborski                Expires October, 2004                 [Page 3]
184 SMTP Service Extension for Authentication                    April, 2004
187           The AUTH command is not permitted during a mail transaction.
189       Discussion:
190           The AUTH command initiates a [SASL] authentication exchange
191           between the client and the server.  The client identifies the
192           SASL mechanism to use with the first parameter of the AUTH
193           command.  If the server supports the requested authentication
194           mechanism, it performs the SASL exchange to authenticate the
195           user.  Optionally, it also negotiates a security layer for
196           subsequent protocol interactions during this session.  If the
197           requested authentication mechanism is invalid (e.g. is not
198           supported or requires an encrpytion layer), the server rejects
199           the AUTH command with a 504 reply, and if it supports the
200           [ESMTP-CODES] extension it SHOULD return a 5.5.4 enhanced
201           response code.
203           The SASL authentication exchange consists of a series of
204           server challenges and client responses that are specific to
205           the chosen [SASL] mechanism.
207           A server challenge is sent as a 334 reply with the text part
208           containing the [BASE64] encoded string supplied by the SASL
209           mechanism.  This challenge MUST NOT contain any text other
210           than the BASE64 encoded challenge.
212           A client response consists of a line containing a [BASE64]
213           encoded string.  If the client wishes to cancel the
214           authentication exchange, it issues a line with a single "*".
215           If the server receives such a response, it MUST reject the
216           AUTH command by sending a 501 reply.
218           The optional initial response argument to the AUTH command is
219           used to save a round trip when using authentication mechanisms
220           that support an initial client response.  If the initial
221           response argument is omitted and the chosen mechanism requires
222           an initial client response, the server MUST proceed as defined
223           in section 5.1 of [SASL].  In SMTP, a server challenge that
224           contains no data is defined as a 334 reply with no text part.
225           Note that there is still a space following the reply code, so
226           the complete response line is "334 ".
228           Note that the AUTH command is still subject to the line length
229           limitations defined in [SMTP]. If use of the initial response
230           argument would cause the AUTH command to exceed this length,
231           the client MUST NOT use the initial response parameter (and
232           instead proceed as defined in section 5.1 of [SASL]).
234           If the client is transmitting an initial response of zero
238 Siemborski                Expires October, 2004                 [Page 4]
244 SMTP Service Extension for Authentication                    April, 2004
247           length, it MUST instead transmit the response as a single
248           equals sign ("=").  This indicates that the response is
249           present, but contains no data.
251           If the client uses an initial-response argument to the AUTH
252           command with a SASL mechanism that does not support an initial
253           client send, the server MUST reject the AUTH command with a
254           501 reply.  Servers using the enhanced status codes extension
255           [ESMTP-CODES] SHOULD return an enhanced status code of 5.7.0
256           in this case.
258           If the server cannot [BASE64] decode any client response, it
259           MUST reject the AUTH command with a 501 reply (and an enhanced
260           status code of 5.5.2).  If the client cannot BASE64 decode any
261           of the server's challenges, it MUST cancel the authentication
262           using the "*" response.  In particular, servers and clients
263           MUST reject (and not ignore) any character not explicitly
264           allowed by the BASE64 alphabet, and MUST reject any sequence
265           of BASE64 characters that contains the pad character ('=')
266           anywhere other than the end of the string (e.g. "=AAA" and
267           "AAA=BBB" are not allowed).
269           Note that these [BASE64] strings can be much longer than
270           normal SMTP commands.  Clients and servers MUST be able to
271           handle the maximum encoded size of challenges and responses
272           generated by their supported authentication mechanisms.  This
273           requirement is independent of any line length limitations the
274           client or server may have in other parts of its protocol
275           implementation.
277           The authorization identity generated by this [SASL] exchange
278           is a simple username, and both client and server MUST use the
279           [SASLprep] profile of the [StringPrep] algorithm to prepare
280           these names for transmission or comparison.  If preparation of
281           the authorization identity fails or results in an empty string
282           (unless it was transmitted as the empty string), the server
283           MUST fail the authentication.
285           If the server is unable to authenticate the client, it SHOULD
286           reject the AUTH command with a 535 reply unless a more
287           specific error code is appropriate.  Should the client
288           successfully complete the exchange, the SMTP server issues a
289           235 reply.  These status codes, along with others defined by
290           this extension, are discussed in Section 5 of this document.
292           If a security layer is negotiated during the SASL exchange, it
293           takes effect for the client on the octet immediately following
294           the CRLF that concludes the last response generated by the
298 Siemborski                Expires October, 2004                 [Page 5]
304 SMTP Service Extension for Authentication                    April, 2004
307           client.  For the server, it takes effect immediately following
308           the CRLF of its success reply.
310           When a security layer takes effect, the SMTP protocol is reset
311           to the initial state (the state in SMTP after a server issues
312           a 220 service ready greeting).  The server MUST discard any
313           knowledge obtained from the client, such as the EHLO argument,
314           which was not obtained from the SASL negotiation itself.
315           Likewise, the client MUST discard any knowledge obtained from
316           the server, such as the list of SMTP service extensions, which
317           was not obtained from the SASL negotiation itself (Note that a
318           client MAY compare the advertised SASL mechanisms before and
319           after authentication in order to detect an active down-
320           negotiation attack).
322           The client SHOULD send an EHLO command as the first command
323           after a successful SASL negotiation which results in the
324           enabling of a security layer.
326           When both [TLS] and SASL security layers are in effect, the
327           TLS encoding MUST be applied after the SASL encoding,
328           regardless of the order in which the layers were negotiated.
330           The service name specified by this protocol's profile of SASL
331           is "smtp".  This service name is also to be used for the
332           [SUBMIT] protocol.
334           If an AUTH command fails, the client MAY proceed without
335           authentication, Alternatively, the client MAY try another
336           authentication mechanism or present different credentials by
337           issuing another AUTH command.
339           To ensure interoperability, client and server implementations
340           of this extension MUST implement the [DIGEST-MD5] SASL
341           mechanism.
344 3.1.    Examples
346     Here is an example of a client attempting AUTH using the [PLAIN]
347     SASL mechanism under a TLS layer, and making use of the initial
348     client response:
358 Siemborski                Expires October, 2004                 [Page 6]
364 SMTP Service Extension for Authentication                    April, 2004
367      S: 220-smtp.example.com ESMTP Server
368      C: EHLO client.example.com
369      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
370      S: 250-AUTH GSSAPI
371      S: 250-ENHANCEDSTATUSCODES
372      S: 250 STARTTLS
373      C: STARTTLS
374      S: 220 Ready to start TLS
375        ... TLS negotiation proceeds, further commands protected by TLS layer ...
376      C: EHLO client.example.com
377      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
378      S: 250 AUTH KERBEROS_V4 GSSAPI PLAIN
379      C: AUTH PLAIN dGVzdAB0ZXN0ADEyMzQ=
380      S: 235 2.7.0 Authentication successful
382     Here is another client that is attempting AUTH PLAIN under a TLS
383     layer, this time without the initial response.  Parts of the
384     negotiation before the TLS layer was established have been omitted:
386        ... TLS negotiation proceeds, further commands protected by TLS layer ...
387      C: EHLO client.example.com
388      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
389      S: 250 AUTH KERBEROS_V4 GSSAPI PLAIN
390      C: AUTH PLAIN
391       (note: there is a single space following the 334 on the following line)
392      S: 334
393      C: dGVzdAB0ZXN0ADEyMzQ=
394      S: 235 2.7.0 Authentication successful
396     Here is an example using a mechanism which does not support an
397     initial client send, and includes a server challenge:
399      S: 220-smtp.example.com ESMTP Server
400      C: EHLO client.example.com
401      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
402      S: 250-AUTH CRAM-MD5
403      S: 250-ENHANCEDSTATUSCODES
404      S: 250 STARTTLS
405      C: AUTH CRAM-MD5
406      S: 334 PDQxOTI5NDIzNDEuMTI4Mjg0NzJAc291cmNlZm91ci5hbmRyZXcuY211LmVkdT4=
407      C: cmpzMyBlYzNhNTlmZWQzOTVhYmExZWM2MzY3YzRmNGI0MWFjMA==
408      S: 235 2.7.0 Authentication successful
410     Here is an example of a client attempting AUTH EXTERNAL under TLS,
411     using the derived authorization ID (and thus a zero-length initial
412     client send).
418 Siemborski                Expires October, 2004                 [Page 7]
424 SMTP Service Extension for Authentication                    April, 2004
427      S: 220-smtp.example.com ESMTP Server
428      C: EHLO client.example.com
429      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
430      S: 250-AUTH GSSAPI
431      S: 250-ENHANCEDSTATUSCODES
432      S: 250 STARTTLS
433      C: STARTTLS
434      S: 220 Ready to start TLS
435        ... TLS negotiation proceeds, further commands protected by TLS layer ...
436      C: EHLO client.example.com
437      S: 250-smtp.example.com Hello client.example.com, pleased to meet you
438      S: 250 AUTH EXTERNAL GSSAPI PLAIN
439      C: AUTH EXTERNAL =
440      S: 235 2.7.0 Authentication successful
443 4.  The AUTH Parameter to the MAIL FROM command
445     AUTH=addr-spec
447     Arguments:
448         An addr-spec (see section 3.4.1 or [RFC2822]) that names the
449         identity which submitted the message to the delivery system, or
450         the two character sequence "<>" indicating such an identity is
451         unknown or insufficiently authenticated.  To comply with
452         restrictions imposed on ESMTP parameters, the addr-spec is
453         encoded inside an xtext.  The syntax of an xtext is described in
454         Section 5 of [ESMTP-DSN].
456     Note:
457         For the purposes of this discussion, "authenticated identity"
458         refers to the identity (if any) derived from the authorization
459         identity of previous AUTH command, while the terms "authorized
460         identity" and "supplied addr-spec" refer to the sender identity
461         that is being associated with a particular message.  Note that
462         one authenticated identity may be able to identify messages as
463         being sent by any number of authorized identities within a
464         single session.  For example, this may be the case when an SMTP
465         server (one authenticated identity) is processing its queue
466         (many messages with distinct authorized identities).
468     Discussion:
469         The optional AUTH parameter to the MAIL FROM command allows
470         cooperating agents in a trusted environment to communicate the
471         authorization identity associated with individual messages.
473         If the server trusts the authenticated identity of the client to
474         assert that the message was originally submitted by the supplied
478 Siemborski                Expires October, 2004                 [Page 8]
484 SMTP Service Extension for Authentication                    April, 2004
487         addr-spec, then the server SHOULD supply the same addr-spec in
488         an AUTH parameter when relaying the message to any other server
489         which supports the AUTH extension.
491         For this reason, servers that advertise support for this
492         extension MUST support the AUTH parameter to the MAIL FROM
493         command even when the client has not authenticated itself to the
494         server.
496         A MAIL FROM parameter of AUTH=<> indicates that the original
497         submitter of the message is not known.  The server MUST NOT
498         treat the message as having been originally submitted by
499         authenticated identity which resulted from the AUTH command.
501         If the AUTH parameter to the MAIL FROM command is not supplied,
502         the client has authenticated, and the server believes the
503         message is an original submission, the server MAY generate an
504         addr-spec from the user's authenticated identity for use in an
505         AUTH parameter when relaying the message to any server which
506         supports the AUTH extension.  The generated addr-spec is
507         implementation specific, but it MUST conform to the syntax of
508         [RFC2822].  If the implementation cannot generate a valid addr-
509         spec, it MUST transmit AUTH=<> when relaying this message.
511         If the server does not sufficiently trust the authenticated
512         identity of the client, or if the client is not authenticated,
513         then the server MUST behave as if the AUTH=<> parameter was
514         supplied.  The server MAY, however, write the value of any
515         supplied AUTH parameter to a log file.
517         If an AUTH=<> parameter was supplied, either explicitly or due
518         to the requirement in the previous paragraph, then the server
519         MUST supply the AUTH=<> parameter when relaying the message to
520         any server which it has authenticated to using the AUTH
521         extension.
523         A server MAY treat expansion of a mailing list as a new
524         submission, setting the AUTH parameter to the mailing list
525         address or mailing list administration address when relaying the
526         message to list subscribers.
528         Note that an implementation which is hard-coded to treat all
529         clients as being insufficiently trusted is compliant with this
530         specification.  In that case, the implementation does nothing
531         more than parse and discard syntactically valid AUTH parameters
532         to the MAIL FROM command, and supply AUTH=<> parameters to any
533         servers which it authenticates to.
538 Siemborski                Expires October, 2004                 [Page 9]
544 SMTP Service Extension for Authentication                    April, 2004
547 4.1.    Examples
549     An example where the original identity of the sender is trusted and
550     known:
552      C: MAIL FROM:<e=mc2@example.com> AUTH=e+3Dmc2@example.com
553      S: 250 OK
555     One example where the identity of the sender is not trusted or is
556     otherwise being suppressed by the client:
558      C: MAIL FROM:<john+@example.org> AUTH=<>
559      S: 250 OK
562 5.  Status Codes
564     The following error codes may be used to indicate various success or
565     failure conditions.  Servers that return enhanced status codes
566     [ESMTP-CODES] SHOULD use the enhanced codes suggested here.
568     235 2.7.0 Authentication Succeeded
570     This response to the AUTH command indicates that the authentication
571     was successful.
573     432 4.7.12 A password transition is needed
575     This response to the AUTH command indicates that the user needs to
576     transition to the selected authentication mechanism.  This is
577     typically done by authenticating once using the [PLAIN]
578     authentication mechanism.  The selected mechanism SHOULD then work
579     for authentications in subsequent sessions.
581     454 4.7.0 Temporary authentication failure
583     This response to the AUTH command indicates that the authentication
584     failed due to a temporary server failure.  The client SHOULD NOT
585     prompt the user for another password in this case, and instead
586     notify the user of server failure.
588     534 5.7.9 Authentication mechanism is too weak
590     This response to the AUTH command indicates that the selected
591     authentication mechanism is weaker than server policy permits for
592     that user.  The client SHOULD retry with a new authentication
593     mechanism.
598 Siemborski                Expires October, 2004                [Page 10]
604 SMTP Service Extension for Authentication                    April, 2004
607     535 5.7.8 Authentication credentials invalid
609     This response to the AUTH command indicates that the authentication
610     failed due to invalid or insufficient authentication credentials.
611     In this case, the client SHOULD ask the user to supply new
612     credentials (such as by presenting a password dialog box).
614     530 5.7.0 Authentication required
616     This response SHOULD be returned by any command other than AUTH,
617     EHLO, HELO, NOOP, RSET, or QUIT when server policy requires
618     authentication in order to perform the requested action and
619     authentication is not currently in force.
621     538 5.7.11 Encryption required for requested authentication
622     mechanism
624     This response to the AUTH command indicates that the selected
625     authentication mechanism may only be used when the underlying SMTP
626     connection is encrypted. Note that this response code is documented
627     here for historical purposes only.  Modern implementations SHOULD
628     NOT advertise mechanisms that are not permitted due to lack of
629     encryption, unless an encryption layer of sufficient strength is
630     currently being employed.
632 6.  Formal Syntax
634     The following syntax specification uses the Augmented Backus-Naur
635     Form notation as specified in [ABNF].
637     Except as noted otherwise, all alphabetic characters are case-
638     insensitive.  The use of upper or lower case characters to define
639     token strings is for editorial clarity only.  Implementations MUST
640     accept these strings in a case-insensitive fashion.
643         UPALPHA         = %x41-5A            ;; Uppercase: A-Z
645         LOALPHA         = %x61-7A            ;; Lowercase: a-z
647         ALPHA           = UPALPHA / LOALPHA  ;; case insensitive
649         DIGIT           = %x30-39            ;; Digits 0-9
651         HEXDIGIT        = %x41-46 / DIGIT    ;; hexidecimal digit (uppercase)
653         hexchar         = "+" HEXDIGIT HEXDIGIT
658 Siemborski                Expires October, 2004                [Page 11]
664 SMTP Service Extension for Authentication                    April, 2004
667         xchar           = %x21-2A / %x2C-3C / %x3E-7E
668                           ;; US-ASCII except for "+", "=", SPACE and CTL
670         xtext           = *(xchar / hexchar)
672         AUTH_CHAR       = ALPHA / DIGIT / "-" / "_"
674         auth_type       = 1*20AUTH_CHAR
676         auth_command    = "AUTH" SPACE auth_type [SPACE (base64 / "=")]
677                           *(CRLF [base64]) CRLF
679         auth_param      = "AUTH=" xtext
680                             ;; The decoded form of the xtext MUST be either
681                             ;; an addr-spec or the two characters "<>"
683         base64          = base64_terminal /
684                           ( 1*(4base64_CHAR) [base64_terminal] )
686         base64_char     = UPALPHA / LOALPHA / DIGIT / "+" / "/"
687                           ;; Case-sensitive
689         base64_terminal = (2base64_char "==") / (3base64_char "=")
691         continue_req    = "334" SPACE [base64] CRLF
693         CR              = %x0C           ;; ASCII CR, carriage return
695         CRLF            = CR LF
697         CTL             = %x00-1F / %x7F ;; any ASCII control character and DEL
699         LF              = %x0A           ;; ASCII LF, line feed
701         SPACE           = %x20           ;; ASCII SP, space
704 7.  Security Considerations
706     Security issues are discussed throughout this memo.
708     If a client uses this extension to get an encrypted tunnel through
709     an insecure network to a cooperating server, it needs to be
710     configured to never send mail to that server when the connection is
711     not mutually authenticated and encrypted.  Otherwise, an attacker
712     could steal the client's mail by hijacking the [SMTP] connection and
713     either pretending the server does not support the Authentication
714     extension or causing all AUTH commands to fail.
718 Siemborski                Expires October, 2004                [Page 12]
724 SMTP Service Extension for Authentication                    April, 2004
727     Before the [SASL] negotiation has begun, any protocol interactions
728     are performed in the clear and may be modified by an active
729     attacker.  For this reason, clients and servers MUST discard any
730     knowledge obtained prior to the start of the SASL negotiation upon
731     the establishment of a security layer.
733     This mechanism does not protect the TCP port, so an active attacker
734     may redirect a relay connection attempt (i.e. a connection between
735     two MTAs) to the submission port [SUBMIT].  The AUTH=<> parameter
736     prevents such an attack from causing a relayed message, in the
737     absence of other envelope authentication, from picking up the
738     authentication of the relay client.
740     A message submission client may require the user to authenticate
741     whenever a suitable [SASL] mechanism is advertised.  Therefore, it
742     may not be desirable for a submission server [SUBMIT] to advertise a
743     SASL mechanism when use of that mechanism grants the clients no
744     benefits over anonymous submission.
746     Servers MAY implement a policy whereby the connection is dropped
747     after a number of failed authentication attempts.  If they do so,
748     they SHOULD NOT drop the connection until atleast 3 attempts to
749     authenticate have failed.
751     Implementations MUST support a configuration where SASL mechanisms
752     that are vulnerable to passive eavesdropping attacks (such as
753     [PLAIN]) are not advertised or used without the presence of an
754     external security layer such as [TLS].
756     This extension is not intended to replace or be used instead of end-
757     to-end message signature and encryption systems such as [S/MIME] or
758     [PGP].  This extension addresses a different problem than end-to-end
759     systems; it has the following key differences:
761      1.   It is generally useful only within a trusted enclave.
763      2.   It protects the entire envelope of a message, not just the
764           message's body.
766      3.   It authenticates the message submission, not authorship of the
767           message content.
769      4.   When mutual authentication is used along with a security
770           layer, it can give the sender some assurance that the message
771           was successfully delivered to the next hop.
773 Additional security considerations are mentioned in the [SASL]
774 specification.
778 Siemborski                Expires October, 2004                [Page 13]
784 SMTP Service Extension for Authentication                    April, 2004
787 8.  IANA Considerations
789     This document requests that the IANA update the entry for the "smtp"
790     SASL protocol name to point at this document.
792     This document requests that the IANA register the Authentication
793     SMTP service extension as defined in Section 2 of this document.
796 9.  Protocol Actions
798     [RFC Editor: Remove this section prior to publication]
800     This document obsoletes RFC 2554 and replaces it as a Proposed
801     Standard.
803 10.  Intellectual Property Rights
805     The IETF takes no position regarding the validity or scope of any
806     intellectual property or other rights that might be claimed to
807     pertain to the implementation or use of the technology described in
808     this document or the extent to which any license under such rights
809     might or might not be available; neither does it represent that it
810     has made any effort to identify any such rights.  Information on the
811     IETF's procedures with respect to rights in standards-track and
812     standards-related documentation can be found in BCP-11.  Copies of
813     claims of rights made available for publication and any assurances
814     of licenses to be made available, or the result of an attempt made
815     to obtain a general license or permission for the use of such
816     proprietary rights by implementors or users of this specification
817     can be obtained from the IETF Secretariat.
819     The IETF invites any interested party to bring to its attention any
820     copyrights, patents or patent applications, or other proprietary
821     rights which may cover technology that may be required to practice
822     this standard.  Please address the information to the IETF Executive
823     Director.
825 11.  Copyright
827     Copyright (C) The Internet Society (2003). All Rights Reserved.
829     This document and translations of it may be copied and furnished to
830     others, and derivative works that comment on or otherwise explain it
831     or assist in its implementation may be prepared, copied, published
832     and distributed, in whole or in part, without restriction of any
833     kind, provided that the above copyright notice and this paragraph
834     are included on all such copies and derivative works.  However, this
838 Siemborski                Expires October, 2004                [Page 14]
844 SMTP Service Extension for Authentication                    April, 2004
847     document itself may not be modified in any way, such as by removing
848     the copyright notice or references to the Internet Society or other
849     Internet organizations, except as needed for the  purpose of
850     developing Internet standards in which case the procedures for
851     copyrights defined in the Internet Standards process must be
852     followed, or as required to translate it into languages other than
853     English.
855     This document and the information contained herein is provided on an
856     "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
857     TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
858     BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
859     HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
860     MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
898 Siemborski                Expires October, 2004                [Page 15]
904 SMTP Service Extension for Authentication                    April, 2004
907 12.  References
909      The following documents contain normative definitions or
910 specifications that are necessary for correct understanding of this
911 protocol:
913 [ABNF]      Crocker, D. and P. Overell, "Augmented BNF for Syntax
914             Specifications: ABNF", RFC 2234, November 1997.
916 [BASE64]    Josefsson, S., "The Base16, Base32, and Base64 Data
917             Encodings", RFC 3548, July 2003.
919 [DIGEST-MD5]
920             Leach, P., Melnikov, A., and Newman C., "Using Digest
921             Authentication as a SASL Mechanism", draft-ietf-sasl-
922             rfc2831bis-*.txt, a work in progress.
924 [ESMTP-CODES]
925             Freed, N., "SMTP Service Extension for Returning Enhanced
926             Error Codes", RFC 2034, October 1996.
928 [ESMTP-DSN] Moore, K., "SMTP Service Extension for Delivery Status
929             Notifications", RFC 1891, January 1996.
931 [KEYWORDS]  Bradner, S., "Key words for use in RFCs to Indicate
932             Requirement Levels", BCP 14, RFC 2119, March 1997
934 [RFC2822]   Resnick, P. "Internet Message Format", RFC 2822, April 2001.
936 [SASL]      Melnikov, A., "Simple Authentication and Security Layer
937             (SASL)", draft-ietf-sasl-rfc2222bis-*.txt, a work in
938             progress.
940 [SASLprep]  Zeilega, K., "SASLprep: Stringprep profile for user names
941             and passwords", draft-ietf-sasl-saslprep-*.txt, a work in
942             progress
944 [SMTP]      Klensin, J., "Simple Mail Transfer Protocol", RFC 2821,
945             April 2001.
947 [SMTP-TLS]  Hoffman, P. "SMTP Service Extension for Secure SMTP over
948             Transport Layer Security", RFC 3207, February 2002.
950 [StringPrep]
951             Hoffman, P., Blanchet, M., "Preparation of Internationalized
952             Strings ("stringprep")", draft-hoffman-rfc3454bis-*.txt, a
953             work in progress
958 Siemborski                Expires October, 2004                [Page 16]
964 SMTP Service Extension for Authentication                    April, 2004
967 [SUBMIT]    Gellens, R. and J. Klensin, "Message Submission", RFC 2476,
968             December 1998.
970 The following references are for informational purposes only:
972 [PGP]       Elkins, M., "MIME Security with Pretty Good Privacy (PGP)",
973             RFC 2015, October 1996.
975 [PLAIN]     Newman, C. "Using TLS with IMAP, POP3, and ACAP", RFC 2595,
976             June 1999.
978 [S/MIME]    Ramsdell, B., "S/MIME Version 3 Message Specification", RFC
979             2633, June 1999.
981 [TLS]       Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC
982             2246, January 1999.
984 13.  Changes Since RFC 2554
986             1.   Clarify that servers MUST support the use of the
987                  AUTH=addr-spec parameter to MAIL FROM, even when the
988                  client is not authenticated.
990             2.   Clarify the initial-client-send requirements, and give
991                  additional examples.
993             3.   Update references to newer versions of various
994                  specifications.
996             4.   Require the minimum implementation of DIGEST-MD5.
998             5.   Clarify that the mechanism list can change.
1000             6.   Deprecate the use of the 538 response code.
1002             7.   Add the use of the SASLprep profile for preparing
1003                  authorization identities.
1005             8.   Substantial cleanup of response codes and indicate
1006                  suggested enhanced response codes.  Also indicate what
1007                  response codes should result in a client prompting the
1008                  user for new credentials.
1010             9.   General other editorial clarifications.
1018 Siemborski                Expires October, 2004                [Page 17]
1024 SMTP Service Extension for Authentication                    April, 2004
1027 14.  Author's Address:
1029     Robert Siemborski
1030     Carnegie Mellon, Andrew Systems Group
1031     Cyert Hall 207
1032     5000 Forbes Avenue
1033     Pittsburgh, PA  15213
1034     +1 412 268 7456
1035     rjs3+@andrew.cmu.edu
1037 15.  Acknowledgments:
1039     The author would like to acknowledge the contributions of John Myers
1040     and other contributors to RFC 2554, on which this document draws
1041     from heavily.
1043     The author would also like to thank Ken Murchison, Mark Crispin, and
1044     Chris Newman for the time they devoted to reviewing early drafts of
1045     this document.
1078 Siemborski                Expires October, 2004                [Page 18]