Internet DRAFT - draft-gellens-password

draft-gellens-password





Internet Draft                                               R. Gellens
Document: draft-gellens-password-00.txt                        QUALCOMM
Expires: August 2001                                      February 2001
    
    
                       Password-Changing Protocol
    
    
Status of this Memo:
    
    This document is an Internet-Draft and is in full conformance with
    all provisions of Section 10 of RFC2026.
    
    Internet-Drafts are working documents of the Internet Engineering
    Task Force (IETF), its areas, and its working groups.  Note that
    other groups may also distribute working documents as
    Internet-Drafts.
    
    Internet-Drafts are draft documents valid for a maximum of six
    months and may be updated, replaced, or obsoleted by other documents
    at any time.  It is inappropriate to use Internet- Drafts as
    reference material or to cite them other than as "work in progress."
    
    The list of current Internet-Drafts can be accessed at
    <http://www.ietf.org/ietf/1id-abstracts.txt>
    
    The list of Internet-Draft Shadow Directories can be accessed at
    <http://www.ietf.org/shadow.html>.
    
    A version of this draft document is intended for submission to the
    RFC editor as a Proposed Standard for the Internet Community.
    Discussion and suggestions for improvement are requested.
    
    
Copyright Notice
    
    Copyright (C) The Internet Society 2001.  All Rights Reserved.


















Gellens                   Expires August 2001                   [Page 1]Internet Draft         Password-Changing Protocol         February 2001

Table of Contents
    
     1.  Abstract . . . . . . . . . . . . . . . . . . . . . . . . . .  2
     2.  Conventions Used in this Document . . . . . . . . . . . . . . 2
     3.  Comments . . . . . . . . . . . . . . . . . . . . . . . . . .  2
     4.  Password-Change Protocol  . . . . . . . . . . . . . . . . . . 3
       4.1.  Response Codes . . . . . . . . . . . . . . . . . . . . .  3
         4.1.1.  Detail Codes  . . . . . . . . . . . . . . . . . . . . 3
       4.2.  Server Greeting  . . . . . . . . . . . . . . . . . . . .  4
       4.3.  STARTTLS Command  . . . . . . . . . . . . . . . . . . . . 4
       4.4.  PASSWORD Command . . . . . . . . . . . . . . . . . . . .  5
       4.5.  QUIT Command  . . . . . . . . . . . . . . . . . . . . . . 5
     5.  IANA Considerations  . . . . . . . . . . . . . . . . . . . .  6
     6.  Appendix A: poppassd  . . . . . . . . . . . . . . . . . . . . 6
     7.  References . . . . . . . . . . . . . . . . . . . . . . . . .  6
     8.  Security Considerations . . . . . . . . . . . . . . . . . . . 7
     9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . .  7
    10.  Author's Address  . . . . . . . . . . . . . . . . . . . . . . 7
    11.  Full Copyright Statement . . . . . . . . . . . . . . . . . .  7
    
    
1.  Abstract
    
    A number of existing clients and servers currently support the
    "poppassd" protocol for changing passwords.  This protocol is
    extremely insecure, as it transmits the user name, current and new
    passwords in clear text.  It also has more round-trips than needed,
    and lacks an extension mechanism.  In addition, it is not possible
    to specify for which service(s) the password is to be changed.  The
    protocol also traditionally usurps port 106, which is actually
    assigned for a different purpose.
    
    This document proposes a replacement protocol for password changing
    which is easy to implement on both client and server, and avoids the
    above problems.
    
    
2.  Conventions Used in this Document
    
    The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
    in this document are to be interpreted as defined in "Key words for
    use in RFCs to Indicate Requirement Levels" [KEYWORDS].
    
    In examples, lines beginning with "C:" and "S:" represent text sent
    by the client and server, respectively.  Any line wrapping is done
    for editorial clarity only.  Commands and responses may be sent in
    any case.  Use of upper case is for editorial clarity only.
    
    





Gellens                   Expires August 2001                   [Page 2]Internet Draft         Password-Changing Protocol         February 2001

3.  Comments
    
    Because the existing "poppassd" started as an adjunct to POP servers
    and clients, public comments can be sent to the IETF POP Extensions
    mailing list, <ietf-pop3ext@imc.org>.  To subscribe, send a message
    to <mailto:ietf-pop3ext-request@imc.org> with the word SUBSCRIBE as
    the body.  Depending on how you are reading this, you may be able to
    simply click here:
    <mailto:ietf-pop3ext-request@imc.org?body=subscribe>.
    
    Private comments should be sent to the author.
    
    
4.  Password-Change Protocol
    
    Summary:  The server listens on port XXX.  In response to a client
    opening a connection, the server sends a greeting which lists the
    supported capabilities, including privacy mechanisms.  The client
    initiates a security layer.  If successful, the client sends a
    request which includes the service(s), authorization identity (the
    identity who password is to be changed), authentication identity
    (the identity performing the change), current authentication
    password, and new password.  The server responds with a status.  The
    client requests that the connection be closed.  The server responds,
    and closes the connection.
    
    
4.1.  Response Codes
    
    Response codes are OK, NO, or BAD, optionally followed by a
    hierarchical detail code, which may optionally include a URL for
    more information.  All codes may be followed by a quoted string.
    This string may be useful for debugging or logging.
    
    OK indicates the command succeeded.  Normally, a detail code is not
    used.
    
    NO indicates the command failed.  Normally a detail code is sent,
    which may be followed by a URL.  The detail code allows the client
    to display a meaningful error to the user, possibly translated into
    a display language.  The URL allows site policy to be explained.
    
    BAD indicates the command is invalid or malformed.  Normally a
    detail code is sent.
    
    
4.1.1.  Detail Codes
    
    Detail codes consist of a hierarchical series of slash-separated
    words, each providing more detail.  Detail codes MUST be registered
    with IANA.  See section 5, IANA Considerations for more information.
    The entire detail code is enclosed in square brackets ("[" and "]").


Gellens                   Expires August 2001                   [Page 3]Internet Draft         Password-Changing Protocol         February 2001

    An optional URL, enclosed in angle brackets ("<" and ">") MAY follow
    the final detail and precede the close square bracket.
    
    An [ABNF] description of detail codes:
    
        detail-code     =  "[" detail *( "/" detail ) [ url-text ] "]"
        detail          =  1*ALPHA
        url-text        =  "<" url ">" ; url defined in [BASIC-URL]
    
    Examples:
        NO [POLICY]
        NO [POLICY <http://int.example.org/policies/passwords#length>]
        NO [PRIVACY] "Negotiate TLS and reissue command"
    
    Initial detail codes:
    
        POLICY The new password was rejected for site-policy reasons.
        
        PRIVACY A security (encryption) layer must be in force before
        the command can be issued.
    
    
4.2.  Server Greeting
    
    The server greeting is OK or NO.  If NO, the connection is then
    closed.  If OK, the server announces its capabilities.  Capabilities
    are sent as a hierarchical, parenthesized, space-separated list.
    Capabilities MUST be registered with IANA.  See 5, IANA Considerations
    for more information.
    
    In ABNF:
    
        greeting        =  "NO" /
                           "OK" [chatter] SP services SP capabilities
        chatter         =  SP <"> 1*CHAR <">
        services        =  SERVICES service-list
        service-list    =  "(" service *( SP service ) ")"
        service         =  1*ALPHA
        capabilities    =  "CAPABILITIES" capa-list
        capa-list       =  "(" [ capa-item *( SP capa-item ) ] ")"
        capa-item       =  1*ALPHA [ capa-param ]
        capa-param      =  1*ALPHA [ *( SP 1*ALPHA ) ]
    
    Examples:
    
        OK "password changer ready" SERVICES(MAIL) CAPABILITIES(TLS)
        OK SERVICES(MAIL WEB) CAPABILITIES(TLS)
    
    





Gellens                   Expires August 2001                   [Page 4]Internet Draft         Password-Changing Protocol         February 2001

4.3.  STARTTLS Command
    
    The STARTTLS command starts a TLS negotiation.  The client includes
    the name of the server in the STARTTLS command.  This allows one
    physical server to host multiple virtual domains without needing
    extra IP addresses.  A TLS negotiation begins immediately after the
    CRLF at end of the OK response from the server.  An ERR response MAY
    result if a security layer is already active.  Once a client issues
    the STARTTLS command, it MUST NOT issue and further commands until a
    server response is seen and the TLS negotiation is complete.
    
    In ABNF:
    
        starttls        =  "STARTTLS" server-name
        server-name     =  1*CHAR
    
    Example:
    
        C: STARTTLS mail.example.org
        S: OK
    
    
4.4.  PASSWORD Command
    
    The PASSWORD command requests that a password be changed.  A client
    MAY send multiple requests (for example, to change the passwords for
    several accounts).
    
        request         = "PASSWORD" SP services SP authorization NULL
                          authentication NULL current-pw new-pw
        services        = "(" 1*ALPHA *( SP 1*ALPHA ) ")"
        authorization   = 1*CHAR  ; user performing the action
        authentication  = 0*CHAR  ; change this password
        current-pw      = 1*CHAR  ; current password for authorization
        new-pw          = 1*CHAR  ; requested new password
    
    Examples:
    
        C: PASSWORD (mail) fred00dumb0dumber
                               00    0
        S: NO [POLICY] "New password fails multiple tests"

        C: PASSWORD (mail) maida00S0leBurY770I11iaD75
                                00          0
        S: OK "mail password for maida updated"
    
    
4.5.  QUIT Command
    





Gellens                   Expires August 2001                   [Page 5]Internet Draft         Password-Changing Protocol         February 2001

    The QUIT command inicates that the client has no further requests.
    The server responds with an OK, and then closes the connection.  The
    client closes the connection after receiving the OK response.
    
    
5.  IANA Considerations
    
    IANA is requested to maintain a registry of password-change service
    names and response detail codes.  These registries can be added to
    on a first-come, first-served basis, however, the item to be
    registered MUST be defined in an RFC or other permanent and readily
    available reference, in sufficient detail so that interoperability
    between independent implementations is possible. (This is the
    "Specification Required" policy described in [IANA]).
    
    
6.  Appendix A: poppassd
    
    For historical interest, the "poppassd" protocol is described below:
    
    C: <open connection to port 106>
    S: 200 poppassd (version 1.1) ready.
    C: USER fred
    S: 300 send password
    C: PASS stupid
    S: 200 Hello, fred.
    C: NEWPASS still-stupid
    S: 200 Password changed for fred
    C: QUIT
    S: Goodby.

    C: <open connection to port 106>
    S: 200 poppassd (version 1.1) ready.
    C: USER fred
    S: 300 send password
    C: PASS stupid
    S: 500 Incorrect login.
    C: QUIT
    S: Goodby.
    
    
7.  References
    











Gellens                   Expires August 2001                   [Page 6]Internet Draft         Password-Changing Protocol         February 2001

    [ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications:
    ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd.,
    November 1997. <ftp://ftp.isi.edu/in-notes/rfc2234.txt>
    
    [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate
    Requirement Levels", RFC 2119, Harvard University, March 1997.
    <ftp://ftp.isi.edu/in-notes/rfc2119.txt>
    
    [BASIC-URL] Berners-Lee, Masinter, McCahill, "Uniform Resource
    Locators (URL)", RFC 1738, CERN, Xerox Corporation, University of
    Minnesota, December 1994. <ftp://ftp.isi.edu/in-notes/rfc1738.txt>
    
    
8.  Security Considerations
    
    The security implications of a password-changing protocol are
    obvious and serious.  Interception of a request exposes a password
    which the user may feel is secure (after all, it was just changed).
    Clients and servers which support the current insecure "popassd"
    protocol SHOULD implement this replacement, and SHOULD use it
    instead.
    
    
    
9.  Acknowledgments
    
    Thanks to Chris Newman for his suggestions.
    
    
10.  Author's Address
    
   Randall Gellens                    +1 858 651 5115
   QUALCOMM Incorporated              randy@qualcomm.com
   5775 Morehouse Drive
   San Diego, CA  92121-2779
   U.S.A.
    
    
11.  Full Copyright Statement
    
    Copyright (C) The Internet Society 2001.  All Rights Reserved.
    
    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain it
    or assist in its implementation may be prepared, copied, published
    and distributed, in whole or in part, without restriction of any
    kind, provided that the above copyright notice and this paragraph
    are included on all such copies and derivative works.  However, this
    document itself may not be modified in any way, such as by removing
    the copyright notice or references to the Internet Society or other
    Internet organizations, except as needed for the purpose of
    developing Internet standards in which case the procedures for


Gellens                   Expires August 2001                   [Page 7]Internet Draft         Password-Changing Protocol         February 2001

    copyrights defined in the Internet Standards process must be
    followed, or as required to translate it into languages other than
    English.
    
    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.
    
    This document and the information contained herein is provided on an
    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.









































Gellens                   Expires August 2001                   [Page 8]