home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2384.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  13.8 KB  |  452 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        R. Gellens
  8. Request for Comments: 2384                       QUALCOMM, Incorporated
  9. Category: Standards Track                                   August 1998
  10.  
  11.  
  12.                              POP URL Scheme
  13.  
  14. Status of this Memo
  15.  
  16.    This document specifies an Internet standards track protocol for the
  17.    Internet community, and requests discussion and suggestions for
  18.    improvements.  Please refer to the current edition of the "Internet
  19.    Official Protocol Standards" (STD 1) for the standardization state
  20.    and status of this protocol.  Distribution of this memo is unlimited.
  21.  
  22. Copyright Notice
  23.  
  24.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  25.  
  26. 1.  Introduction
  27.  
  28.    [POP3] is a widely-deployed mail access protocol.  Many programs
  29.    access POP3 message stores, and thus need POP3 configuration
  30.    information.  Since there are multiple configuration elements which
  31.    are required in order to access a mailbox, a single string
  32.    representation is convenient.
  33.  
  34.    A POP3 mailbox (like an [IMAP4] mailbox) is a network resource, and
  35.    URLs are a widely-supported generalized representation of network
  36.    resources.
  37.  
  38.    A means of specifying a POP3 mailbox as a URL will likely be useful
  39.    in many programs and protocols. [ACAP] is one case where a string
  40.    encapsulation of elements required to access network services is
  41.    needed.  For example, an [IMAP4] message store is usually specified
  42.    in ACAP datasets as an [IMAP-URL].
  43.  
  44.    This memo defines a URL scheme for referencing a POP mailbox.
  45.  
  46. 2.  Conventions Used in this Document
  47.  
  48.    The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
  49.    in this document are to be interpreted as defined in "Key words for
  50.    use in RFCs to Indicate Requirement Levels" [KEYWORDS].
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Gellens                     Standards Track                     [Page 1]
  59.  
  60. RFC 2384                     POP URL Scheme                  August 1998
  61.  
  62.  
  63. 3.  POP Scheme
  64.  
  65.    The POP URL scheme designates a POP server, and optionally a port
  66.    number, authentication mechanism, authentication ID, and/or
  67.    authorization ID.
  68.  
  69.    The POP URL follows the common Internet scheme syntax as defined in
  70.    RFC 1738 [BASIC-URL] except that clear text passwords are not
  71.    permitted.  If :<port> is omitted, the port defaults to 110.
  72.  
  73.    The POP URL is described using [ABNF] in Section 8.
  74.  
  75.    A POP URL is of the general form:
  76.  
  77.         pop://<user>;auth=<auth>@<host>:<port>
  78.  
  79.    Where <user>, <host>, and <port> are as defined in RFC 1738, and some
  80.    or all of the elements, except "pop://" and <host>, may be omitted.
  81.  
  82. 4.  POP User Name and Authentication Mechanism
  83.  
  84.    An authorization (which mailbox to access) and authentication (whose
  85.    password to check against) identity (referred to as "user name" for
  86.    simplicity) and/or authentication mechanism name may be supplied.
  87.    These are used in a "USER", "APOP", "AUTH" [POP-AUTH], or extension
  88.    command after making the connection to the POP server.  If the URL
  89.    doesn't supply an authentication identifier, the program interpreting
  90.    the POP URL SHOULD request one from the user.
  91.  
  92.    An authentication mechanism can be expressed by adding ";AUTH=<enc-
  93.    auth-type>" to the end of the user name.  If the authentication
  94.    mechanism name is not preceded by a "+", it is a SASL POP [SASL]
  95.    mechanism.  If it is preceded by a "+", it is either "APOP" or an
  96.    extension mechanism.
  97.  
  98.    When an <enc-auth-type> is specified, the client SHOULD request
  99.    appropriate credentials from that mechanism and use the "AUTH",
  100.    "APOP", or extension command instead of the "USER" command.  If no
  101.    user name is specified, one SHOULD be obtained from the mechanism or
  102.    requested from the user as appropriate.
  103.  
  104.    The string ";AUTH=*" indicates that the client SHOULD select an
  105.    appropriate authentication mechanism.  It MAY use any mechanism
  106.    supported by the POP server.
  107.  
  108.    If an <enc-auth-type> other than ";AUTH=*" is specified, the client
  109.    SHOULD NOT use a different mechanism without explicit user
  110.    permission.
  111.  
  112.  
  113.  
  114. Gellens                     Standards Track                     [Page 2]
  115.  
  116. RFC 2384                     POP URL Scheme                  August 1998
  117.  
  118.  
  119.    If a user name is included with no authentication mechanism, then
  120.    ";AUTH=*" is assumed.
  121.  
  122.    Since URLs can easily come from untrusted sources, care must be taken
  123.    when resolving a URL which requires or requests any sort of
  124.    authentication.  If authentication credentials are supplied to the
  125.    wrong server, it may compromise the security of the user's account.
  126.    The program resolving the URL should make sure it meets at least one
  127.    of the following criteria in this case:
  128.  
  129.    (1) The URL comes from a trusted source, such as a referral server
  130.    which the client has validated and trusts according to site policy.
  131.    Note that user entry of the URL may or may not count as a trusted
  132.    source, depending on the experience level of the user and site
  133.    policy.
  134.  
  135.    (2) Explicit local site policy permits the client to connect to the
  136.    server in the URL.  For example, if the client knows the site domain
  137.    name, site policy may dictate that any hostname ending in that domain
  138.    is trusted.
  139.  
  140.    (3) The user confirms that connecting to that domain name with the
  141.    specified credentials and/or mechanism is permitted.
  142.  
  143.    (4) A mechanism is used which validates the server before passing
  144.    potentially compromising client credentials.
  145.  
  146.    (5) An authentication mechanism is used which will not reveal
  147.    information to the server which could be used to compromise future
  148.    connections.
  149.  
  150.    A URL containing ";AUTH=*" should be treated with extra care since it
  151.    might fall back on a weaker security mechanism. Finally, clients are
  152.    discouraged from using a plain text password as a fallback with
  153.    ";AUTH=*" unless the connection has strong encryption (e.g., a key
  154.    length of greater than 56 bits).
  155.  
  156.    Note that if unsafe or reserved characters such as " " or ";" are
  157.    present in the user name or authentication mechanism, they MUST be
  158.    encoded as described in RFC 1738 [BASIC-URL].
  159.  
  160. 5.  Relative POP URLs
  161.  
  162.    Relative POP URLs are not permitted.
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Gellens                     Standards Track                     [Page 3]
  171.  
  172. RFC 2384                     POP URL Scheme                  August 1998
  173.  
  174.  
  175. 6.  Multinational Considerations
  176.  
  177.    Since 8-bit characters are not permitted in URLs, [UTF8] characters
  178.    are encoded as required by the URL specification [BASIC-URL].
  179.  
  180. 7.  Examples
  181.  
  182.    The following examples demonstrate how a POP client program might
  183.    translate various POP URLs into a series of POP commands. Commands
  184.    sent from the client to the server are prefixed with "C:", and
  185.    responses sent from the server to the client are prefixed with "S:".
  186.  
  187.    The URL:
  188.  
  189.         <pop://rg@mailsrv.qualcomm.com>
  190.  
  191.    Results in the following client commands:
  192.  
  193.         <request password from user>
  194.         <connect to mailsrv.qualcomm.com, port 110>
  195.         S: +OK POP3 server ready <1896.697170952@mailsrv.qualcomm.com>
  196.         C: USER rg
  197.         S: +OK
  198.         C: PASS secret
  199.         S: +OK rg's mailbox has 2 messages (320 octets)
  200.  
  201.    The URL:
  202.  
  203.         <pop://rg;AUTH=+APOP@mail.eudora.com:8110>
  204.  
  205.    Results in the following client commands:
  206.  
  207.         <client requests password from user>
  208.         <connect to mail.eudora.com, port 8110>
  209.         S: +OK POP3 server ready <1896.697170952@mail.eudora.com>
  210.         C: APOP rg c4c9334bac560ecc979e58001b3e22fb
  211.         S: +OK mailbox has 1 message (369 octets)
  212.  
  213.    The URL:
  214.  
  215.         <pop://baz;AUTH=SCRAM-MD5@foo.bar>
  216.  
  217.    Results in the following client commands:
  218.  
  219.         <connect to foo.bar, port 110>
  220.  
  221.         S: +OK POP3 server ready <1896.697170952@foo.bar>
  222.         C: AUTH SCRAM-MD5 AGNocmlzADx0NG40UGFiOUhCMEFtL1FMWEI3MmVnQGVsZW
  223.  
  224.  
  225.  
  226. Gellens                     Standards Track                     [Page 4]
  227.  
  228. RFC 2384                     POP URL Scheme                  August 1998
  229.  
  230.  
  231.            Fub3IuaW5ub3NvZnQuY29tPg==
  232.         S: + dGVzdHNhbHQBAAAAaW1hcEBlbGVhbm9yLmlubm9zb2Z0LmNvbQBq
  233.            aGNOWmxSdVBiemlGcCt2TFYrTkN3
  234.         C: AQAAAMg9jU8CeB4KOfk7sUhSQPs=
  235.         S: + U0odqYw3B7XIIW0oSz65OQ==
  236.         C:
  237.         S: +OK mailbox has 1 message (369 octets)
  238.  
  239. 8.  ABNF for POP URL scheme
  240.  
  241.    The POP URL scheme is described using [ABNF]:
  242.  
  243.         achar            = uchar / "&" / "=" / "~"
  244.                                 ; see [BASIC-URL] for "uchar" definition
  245.  
  246.         auth             = ";AUTH=" ( "*" / enc-auth-type )
  247.  
  248.         enc-auth-type    = enc-sasl / enc-ext
  249.  
  250.         enc-ext          = "+" ("APOP" / 1*achar)
  251.                               ;APOP or encoded extension mechanism name
  252.  
  253.         enc-sasl         = 1*achar
  254.                               ;encoded version of [SASL] "auth_type"
  255.  
  256.         enc-user         = 1*achar
  257.                               ;encoded version of [POP3] mailbox
  258.  
  259.         pop-url          = "pop://" server
  260.  
  261.         server           = [user-auth "@"] hostport
  262.                               ;See [BASIC-URL] for "hostport" definition
  263.  
  264.         user-auth        = enc-user [auth]
  265.  
  266. 9.  Security Considerations
  267.  
  268.    Security considerations discussed in the [POP3] specification and the
  269.    [BASIC-URL] specification are relevant.  Security considerations
  270.    related to authenticated URLs are discussed in section 4 of this
  271.    document.
  272.  
  273.    Many email clients store the plain text password for later use after
  274.    logging into a POP server.  Such clients MUST NOT use a stored
  275.    password in response to a POP URL without explicit permission from
  276.    the user to supply that password to the specified host name.
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Gellens                     Standards Track                     [Page 5]
  283.  
  284. RFC 2384                     POP URL Scheme                  August 1998
  285.  
  286.  
  287. 10.  Acknowledgements
  288.  
  289.    This document borrows heavily from Chris Newman's [IMAP-URL]
  290.    specification, and has attempted to follow the advice in [URL-
  291.    GUIDELINES].
  292.  
  293. 11.  References
  294.  
  295.    [ABNF]           Crocker, D., and P. Overell, "Augmented BNF for
  296.                     Syntax Specifications: ABNF", RFC 2234, November
  297.                     1997.
  298.  
  299.    [ACAP]           Newman, C., and J. Myers, "ACAP -- Application
  300.                     Configuration Access Protocol", RFC 2244, November
  301.                     1997.
  302.  
  303.    [BASIC-URL]      Berners-Lee, T., Masinter, L., and M. McCahill,
  304.                     "Uniform Resource Locators (URL)", RFC 1738,
  305.                     December 1994.
  306.  
  307.    [IMAP-URL]       Newman, C., "IMAP URL Scheme", RFC 2192, September
  308.                     1997.
  309.  
  310.    [IMAP4]          Crispin, M., "Internet Message Access Protocol -
  311.                     Version 4rev1", RFC 2060, December 1996.
  312.  
  313.    [KEYWORDS]       Bradner, S., "Key words for use in RFCs to Indicate
  314.                     Requirement Levels", BCP 14, RFC 2119, March 1997.
  315.  
  316.    [POP-AUTH]       Myers, J., "POP3 AUTHentication command", RFC 1734,
  317.                     December 1994.
  318.  
  319.    [POP3]           Myers, J., and M. Rose, "Post Office Protocol --
  320.                     Version 3", STD 53, RFC 1939, May 1996.
  321.  
  322.    [SASL]           Myers, J., "Simple Authentication and Security Layer
  323.                     (SASL)", RFC 2222, October 1997.
  324.  
  325.    [URL-GUIDELINES] Masinter, Alvestrand, Zigmond, "Guidelines for new
  326.                     URL Schemes", Work in Progress.
  327.  
  328.    [UTF8]           Yergeau, F., "UTF-8, a transformation format of ISO
  329.                     10646", RFC 2279, January 1998.
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Gellens                     Standards Track                     [Page 6]
  339.  
  340. RFC 2384                     POP URL Scheme                  August 1998
  341.  
  342.  
  343. 12.  Author's Address
  344.  
  345.    Randall Gellens
  346.    QUALCOMM, Incorporated
  347.    6455 Lusk Blvd.
  348.    San Diego, CA  92121-2779
  349.    U.S.A.
  350.  
  351.    Phone: +1 619 651 5115
  352.    Fax:   +1 619 651 5334
  353.    EMail: Randy@Qualcomm.Com
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Gellens                     Standards Track                     [Page 7]
  395.  
  396. RFC 2384                     POP URL Scheme                  August 1998
  397.  
  398.  
  399. 13.  Full Copyright Statement
  400.  
  401.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  402.  
  403.    This document and translations of it may be copied and furnished to
  404.    others, and derivative works that comment on or otherwise explain it
  405.    or assist in its implementation may be prepared, copied, published
  406.    and distributed, in whole or in part, without restriction of any
  407.    kind, provided that the above copyright notice and this paragraph are
  408.    included on all such copies and derivative works.  However, this
  409.    document itself may not be modified in any way, such as by removing
  410.    the copyright notice or references to the Internet Society or other
  411.    Internet organizations, except as needed for the purpose of
  412.    developing Internet standards in which case the procedures for
  413.    copyrights defined in the Internet Standards process must be
  414.    followed, or as required to translate it into languages other than
  415.    English.
  416.  
  417.    The limited permissions granted above are perpetual and will not be
  418.    revoked by the Internet Society or its successors or assigns.
  419.  
  420.    This document and the information contained herein is provided on an
  421.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  422.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  423.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  424.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  425.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Gellens                     Standards Track                     [Page 8]
  451.  
  452.