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>
 |