440 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			440 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | |
|   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 | |
| <head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
 | |
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | |
|     <meta name="robots" content="index,follow" />
 | |
|     <meta name="creator" content="rfcmarkup version 1.111" />
 | |
|     <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
 | |
| <meta name="DC.Identifier" content="urn:ietf:rfc:1734" />
 | |
| <meta name="DC.Description.Abstract" content="This document describes the optional AUTH command, for indicating an
 | |
| authentication mechanism to the server, performing an authentication
 | |
| protocol exchange, and optionally negotiating a protection mechanism
 | |
| for subsequent protocol interactions. [STANDARDS-TRACK]" />
 | |
| <meta name="DC.Creator" content="J. Myers" />
 | |
| <meta name="DC.Date.Issued" content="December, 1994" />
 | |
| <meta name="DC.Title" content="POP3 AUTHentication command" />
 | |
| 
 | |
|     <link rel="icon" href="/images/rfc.png" type="image/png" />
 | |
|     <link rel="shortcut icon" href="/images/rfc.png" type="image/png" />
 | |
|     <title>RFC 1734 - POP3 AUTHentication command</title>
 | |
|     
 | |
|     
 | |
|     <style type="text/css">
 | |
| 	body {
 | |
| 	    margin: 0px 8px;
 | |
|             font-size: 1em;
 | |
| 	}
 | |
|         h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
 | |
| 	    font-weight: bold;
 | |
|             line-height: 0pt;
 | |
|             display: inline;
 | |
|             white-space: pre;
 | |
|             font-family: monospace;
 | |
|             font-size: 1em;
 | |
| 	    font-weight: bold;
 | |
|         }
 | |
|         pre {
 | |
|             font-size: 1em;
 | |
|             margin-top: 0px;
 | |
|             margin-bottom: 0px;
 | |
|         }
 | |
| 	.pre {
 | |
| 	    white-space: pre;
 | |
| 	    font-family: monospace;
 | |
| 	}
 | |
| 	.header{
 | |
| 	    font-weight: bold;
 | |
| 	}
 | |
|         .newpage {
 | |
|             page-break-before: always;
 | |
|         }
 | |
|         .invisible {
 | |
|             text-decoration: none;
 | |
|             color: white;
 | |
|         }
 | |
|         a.selflink {
 | |
|           color: black;
 | |
|           text-decoration: none;
 | |
|         }
 | |
|         @media print {
 | |
|             body {
 | |
|                 font-family: monospace;
 | |
|                 font-size: 10.5pt;
 | |
|             }
 | |
|             h1, h2, h3, h4, h5, h6 {
 | |
|                 font-size: 1em;
 | |
|             }
 | |
|         
 | |
|             a:link, a:visited {
 | |
|                 color: inherit;
 | |
|                 text-decoration: none;
 | |
|             }
 | |
|             .noprint {
 | |
|                 display: none;
 | |
|             }
 | |
|         }
 | |
| 	@media screen {
 | |
| 	    .grey, .grey a:link, .grey a:visited {
 | |
| 		color: #777;
 | |
| 	    }
 | |
|             .docinfo {
 | |
|                 background-color: #EEE;
 | |
|             }
 | |
|             .top {
 | |
|                 border-top: 7px solid #EEE;
 | |
|             }
 | |
|             .bgwhite  { background-color: white; }
 | |
|             .bgred    { background-color: #F44; }
 | |
|             .bggrey   { background-color: #666; }
 | |
|             .bgbrown  { background-color: #840; }            
 | |
|             .bgorange { background-color: #FA0; }
 | |
|             .bgyellow { background-color: #EE0; }
 | |
|             .bgmagenta{ background-color: #F4F; }
 | |
|             .bgblue   { background-color: #66F; }
 | |
|             .bgcyan   { background-color: #4DD; }
 | |
|             .bggreen  { background-color: #4F4; }
 | |
| 
 | |
|             .legend   { font-size: 90%; }
 | |
|             .cplate   { font-size: 70%; border: solid grey 1px; }
 | |
| 	}
 | |
|     </style>
 | |
|     <!--[if IE]>
 | |
|     <style>
 | |
|     body {
 | |
|        font-size: 13px;
 | |
|        margin: 10px 10px;
 | |
|     }
 | |
|     </style>
 | |
|     <![endif]-->
 | |
| 
 | |
|     <script type="text/javascript"><!--
 | |
|     function addHeaderTags() {
 | |
| 	var spans = document.getElementsByTagName("span");
 | |
| 	for (var i=0; i < spans.length; i++) {
 | |
| 	    var elem = spans[i];
 | |
| 	    if (elem) {
 | |
| 		var level = elem.getAttribute("class");
 | |
|                 if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
 | |
|                     elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";		
 | |
|                 }
 | |
| 	    }
 | |
| 	}
 | |
|     }
 | |
|     var legend_html = "Colour legend:<br />      <table>         <tr><td>Unknown:</td>                   <td><span class='cplate bgwhite'>    </span></td></tr>         <tr><td>Draft:</td>                     <td><span class='cplate bgred'>    </span></td></tr>         <tr><td>Informational:</td>             <td><span class='cplate bgorange'>    </span></td></tr>         <tr><td>Experimental:</td>              <td><span class='cplate bgyellow'>    </span></td></tr>         <tr><td>Best Common Practice:</td>      <td><span class='cplate bgmagenta'>    </span></td></tr>         <tr><td>Proposed Standard:</td>         <td><span class='cplate bgblue'>    </span></td></tr>         <tr><td>Draft Standard (old designation):</td> <td><span class='cplate bgcyan'>    </span></td></tr>         <tr><td>Internet Standard:</td>         <td><span class='cplate bggreen'>    </span></td></tr>         <tr><td>Historic:</td>                  <td><span class='cplate bggrey'>    </span></td></tr>         <tr><td>Obsolete:</td>                  <td><span class='cplate bgbrown'>    </span></td></tr>     </table>";
 | |
|     function showElem(id) {
 | |
|         var elem = document.getElementById(id);
 | |
|         elem.innerHTML = eval(id+"_html");
 | |
|         elem.style.visibility='visible';
 | |
|     }
 | |
|     function hideElem(id) {
 | |
|         var elem = document.getElementById(id);
 | |
|         elem.style.visibility='hidden';        
 | |
|         elem.innerHTML = "";
 | |
|     }
 | |
|     // -->
 | |
|     </script>
 | |
| </head>
 | |
| <body onload="addHeaderTags()">
 | |
|    <div style="height: 13px;">
 | |
|       <div onmouseover="this.style.cursor='pointer';"
 | |
|          onclick="showElem('legend');"
 | |
|          onmouseout="hideElem('legend')"
 | |
| 	 style="height: 6px; position: absolute;"
 | |
|          class="pre noprint docinfo bgbrown"
 | |
|          title="Click for colour legend." >                                                                        </div>
 | |
|       <div id="legend"
 | |
|            class="docinfo noprint pre legend"
 | |
|            style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; "
 | |
|            onmouseover="showElem('legend');"
 | |
|            onmouseout="hideElem('legend');">
 | |
|       </div>
 | |
|    </div>
 | |
| <span class="pre noprint docinfo top">[<a href="../html/" title="Document search and retrieval page">Docs</a>] [<a href="/rfc/rfc1734.txt" title="Plaintext version of this document">txt</a>|<a href="/pdf/rfc1734" title="PDF version of this document">pdf</a>] [<a href="./draft-myers-pop3-auth" title="draft-myers-pop3-auth">draft-myers-pop3-...</a>] [<a href="/rfcdiff?difftype=--hwdiff&url2=rfc1734" title="Inline diff (wdiff)">Diff1</a>] [<a href="/rfcdiff?url2=rfc1734" title="Side-by-side diff">Diff2</a>]                 </span><br />
 | |
| <span class="pre noprint docinfo">                                                                        </span><br />
 | |
| <span class="pre noprint docinfo">Obsoleted by: <a href="./rfc5034">5034</a>                                     PROPOSED STANDARD</span><br />
 | |
| <span class="pre noprint docinfo">                                                                        </span><br />
 | |
| <pre>
 | |
| Network Working Group                                           J. Myers
 | |
| Request for Comments: 1734                               Carnegie Mellon
 | |
| Category: Standards Track                                  December 1994
 | |
| 
 | |
| 
 | |
|                       <span class="h1">POP3 AUTHentication command</span>
 | |
| 
 | |
| Status of this Memo
 | |
| 
 | |
|    This document specifies an Internet standards track protocol for the
 | |
|    Internet community, and requests discussion and suggestions for
 | |
|    improvements.  Please refer to the current edition of the "Internet
 | |
|    Official Protocol Standards" (STD 1) for the standardization state
 | |
|    and status of this protocol.  Distribution of this memo is unlimited.
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-1" href="#section-1">1</a>. Introduction</span>
 | |
| 
 | |
|    This document describes the optional AUTH command, for indicating an
 | |
|    authentication mechanism to the server, performing an authentication
 | |
|    protocol exchange, and optionally negotiating a protection mechanism
 | |
|    for subsequent protocol interactions.  The authentication and
 | |
|    protection mechanisms used by the POP3 AUTH command are those used by
 | |
|    IMAP4.
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-2" href="#section-2">2</a>. The AUTH command</span>
 | |
| 
 | |
|    AUTH mechanism
 | |
| 
 | |
|          Arguments:
 | |
|              a string identifying an IMAP4 authentication mechanism,
 | |
|              such as defined by [<a href="#ref-IMAP4-AUTH" title=""IMAP4 Authentication Mechanisms"">IMAP4-AUTH</a>].  Any use of the string
 | |
|              "imap" used in a server authentication identity in the
 | |
|              definition of an authentication mechanism is replaced with
 | |
|              the string "pop".
 | |
| 
 | |
|          Restrictions:
 | |
|              may only be given in the AUTHORIZATION state
 | |
| 
 | |
|          Discussion:
 | |
|              The AUTH command indicates an authentication mechanism to
 | |
|              the server.  If the server supports the requested
 | |
|              authentication mechanism, it performs an authentication
 | |
|              protocol exchange to authenticate and identify the user.
 | |
|              Optionally, it also negotiates a protection mechanism for
 | |
|              subsequent protocol interactions.  If the requested
 | |
|              authentication mechanism is not supported, the server
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="grey">Myers                                                           [Page 1]</span>
 | |
| </pre><!--NewPage--><pre class='newpage'><a name="page-2" id="page-2" href="#page-2" class="invisible"> </a>
 | |
| <span class="grey"><a href="./rfc1734">RFC 1734</a>                       POP3 AUTH                   December 1994</span>
 | |
| 
 | |
| 
 | |
|              should reject the AUTH command by sending a negative
 | |
|              response.
 | |
| 
 | |
|              The authentication protocol exchange consists of a series
 | |
|              of server challenges and client answers that are specific
 | |
|              to the authentication mechanism.  A server challenge,
 | |
|              otherwise known as a ready response, is a line consisting
 | |
|              of a "+" character followed by a single space and a BASE64
 | |
|              encoded string.  The client answer consists of a line
 | |
|              containing a BASE64 encoded string.  If the client wishes
 | |
|              to cancel an authentication exchange, it should issue a
 | |
|              line with a single "*".  If the server receives such an
 | |
|              answer, it must reject the AUTH command by sending a
 | |
|              negative response.
 | |
| 
 | |
|              A protection mechanism provides integrity and privacy
 | |
|              protection to the protocol session.  If a protection
 | |
|              mechanism is negotiated, it is applied to all subsequent
 | |
|              data sent over the connection.  The protection mechanism
 | |
|              takes effect immediately following the CRLF that concludes
 | |
|              the authentication exchange for the client, and the CRLF of
 | |
|              the positive response for the server.  Once the protection
 | |
|              mechanism is in effect, the stream of command and response
 | |
|              octets is processed into buffers of ciphertext.  Each
 | |
|              buffer is transferred over the connection as a stream of
 | |
|              octets prepended with a four octet field in network byte
 | |
|              order that represents the length of the following data.
 | |
|              The maximum ciphertext buffer length is defined by the
 | |
|              protection mechanism.
 | |
| 
 | |
|              The server is not required to support any particular
 | |
|              authentication mechanism, nor are authentication mechanisms
 | |
|              required to support any protection mechanisms.  If an AUTH
 | |
|              command fails with a negative response, the session remains
 | |
|              in the AUTHORIZATION state and client may try another
 | |
|              authentication mechanism by issuing another AUTH command,
 | |
|              or may attempt to authenticate by using the USER/PASS or
 | |
|              APOP commands.  In other words, the client may request
 | |
|              authentication types in decreasing order of preference,
 | |
|              with the USER/PASS or APOP command as a last resort.
 | |
| 
 | |
|              Should the client successfully complete the authentication
 | |
|              exchange, the POP3 server issues a positive response and
 | |
|              the POP3 session enters the TRANSACTION state.
 | |
| 
 | |
|          Possible Responses:
 | |
|              +OK maildrop locked and ready
 | |
|              -ERR authentication exchange failed
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="grey">Myers                                                           [Page 2]</span>
 | |
| </pre><!--NewPage--><pre class='newpage'><a name="page-3" id="page-3" href="#page-3" class="invisible"> </a>
 | |
| <span class="grey"><a href="./rfc1734">RFC 1734</a>                       POP3 AUTH                   December 1994</span>
 | |
| 
 | |
| 
 | |
| 
 | |
|          Examples:
 | |
|              S: +OK POP3 server ready
 | |
|              C: AUTH KERBEROS_V4
 | |
|              S: + AmFYig==
 | |
|              C: BAcAQU5EUkVXLkNNVS5FRFUAOCAsho84kLN3/IJmrMG+25a4DT
 | |
|                 +nZImJjnTNHJUtxAA+o0KPKfHEcAFs9a3CL5Oebe/ydHJUwYFd
 | |
|                 WwuQ1MWiy6IesKvjL5rL9WjXUb9MwT9bpObYLGOKi1Qh
 | |
|              S: + or//EoAADZI=
 | |
|              C: DiAF5A4gA+oOIALuBkAAmw==
 | |
|              S: +OK Kerberos V4 authentication successful
 | |
|                 ...
 | |
|              C: AUTH FOOBAR
 | |
|              S: -ERR Unrecognized authentication type
 | |
| 
 | |
|               Note: the line breaks in the first client answer  are
 | |
|               for editorial clarity and are not in real authentica-
 | |
|               tors.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="grey">Myers                                                           [Page 3]</span>
 | |
| </pre><!--NewPage--><pre class='newpage'><a name="page-4" id="page-4" href="#page-4" class="invisible"> </a>
 | |
| <span class="grey"><a href="./rfc1734">RFC 1734</a>                       POP3 AUTH                   December 1994</span>
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-3" href="#section-3">3</a>. Formal Syntax</span>
 | |
| 
 | |
|    The following syntax specification uses the augmented Backus-Naur
 | |
|    Form (BNF) notation as specified in <a href="./rfc822">RFC 822</a>.
 | |
| 
 | |
|    Except as noted otherwise, all alphabetic characters are case-
 | |
|    insensitive.  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            ::= "AUTH" 1*(SPACE / TAB) auth_type *(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    ::= "+" SPACE base64 CRLF
 | |
| 
 | |
|    CR              ::= <ASCII CR, carriage return, 0x0C>
 | |
| 
 | |
|    CRLF            ::= CR LF
 | |
| 
 | |
|    CTL             ::= <any ASCII control character and DEL,
 | |
|                         0x00 - 0x1f, 0x7f>
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="grey">Myers                                                           [Page 4]</span>
 | |
| </pre><!--NewPage--><pre class='newpage'><a name="page-5" id="page-5" href="#page-5" class="invisible"> </a>
 | |
| <span class="grey"><a href="./rfc1734">RFC 1734</a>                       POP3 AUTH                   December 1994</span>
 | |
| 
 | |
| 
 | |
|    LF              ::= <ASCII LF, line feed, 0x0A>
 | |
| 
 | |
|    SPACE           ::= <ASCII SP, space, 0x20>
 | |
| 
 | |
|    TAB             ::= <ASCII HT, tab, 0x09>
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-4" href="#section-4">4</a>. References</span>
 | |
| 
 | |
|    [<a name="ref-IMAP4-AUTH" id="ref-IMAP4-AUTH">IMAP4-AUTH</a>]  Myers, J., "IMAP4 Authentication Mechanisms", <a href="./rfc1731">RFC 1731</a>,
 | |
|    Carnegie Mellon, December 1994.
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-5" href="#section-5">5</a>. Security Considerations</span>
 | |
| 
 | |
|    Security issues are discussed throughout this memo.
 | |
| 
 | |
| 
 | |
| 
 | |
| <span class="h2"><a class="selflink" name="section-6" href="#section-6">6</a>. Author's Address</span>
 | |
| 
 | |
|    John G. Myers
 | |
|    Carnegie-Mellon University
 | |
|    5000 Forbes Ave
 | |
|    Pittsburgh, PA 15213
 | |
| 
 | |
|    EMail: jgm+@cmu.edu
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| Myers                                                           [Page 5]
 | |
| 
 | |
| </pre><br />
 | |
| <span class="noprint"><small><small>Html markup produced by rfcmarkup 1.111, available from
 | |
| <a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
 | |
| </small></small></span>
 | |
| </body></html>
 | 
