home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1334.txt < prev    next >
Text File  |  1996-05-07  |  34KB  |  496 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           B. Lloyd Request for Comments: 1334                                           L&A                                                               W. Simpson                                                               Daydreamer                                                             October 1992 
  8.  
  9.                        PPP Authentication Protocols 
  10.  
  11. Status of this Memo 
  12.  
  13.    This RFC specifies an IAB standards track protocol for the Internet    community, and requests discussion and suggestions for improvements.    Please refer to the current edition of the "IAB Official Protocol    Standards" for the standardization state and status of this protocol.    Distribution of this memo is unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    The Point-to-Point Protocol (PPP) [1] provides a standard method of    encapsulating Network Layer protocol information over point-to-point    links.  PPP also defines an extensible Link Control Protocol, which    allows negotiation of an Authentication Protocol for authenticating    its peer before allowing Network Layer protocols to transmit over the    link. 
  18.  
  19.    This document defines two protocols for Authentication: the Password    Authentication Protocol and the Challenge-Handshake Authentication    Protocol.  This memo is the product of the Point-to-Point Protocol    Working Group of the Internet Engineering Task Force (IETF).    Comments on this memo should be submitted to the ietf-ppp@ucdavis.edu    mailing list. 
  20.  
  21. Table of Contents 
  22.  
  23.    1.  Introduction ...............................................    2    1.1 Specification Requirements .................................    2    1.2 Terminology ................................................    3    2. Password Authentication Protocol ............................    3    2.1 Configuration Option Format ................................    4    2.2 Packet Format ..............................................    5    2.2.1 Authenticate-Request .....................................    5    2.2.2 Authenticate-Ack and Authenticate-Nak ....................    7    3. Challenge-Handshake Authentication Protocol..................    8    3.1 Configuration Option Format ................................    9    3.2 Packet Format ..............................................   10    3.2.1 Challenge and Response ...................................   11    3.2.2 Success and Failure ......................................   13 
  24.  
  25.  
  26.  
  27. Lloyd & Simpson                                                 [Page 1] 
  28.  RFC 1334                   PPP Authentication               October 1992 
  29.  
  30.     SECURITY CONSIDERATIONS ........................................   14    REFERENCES .....................................................   15    ACKNOWLEDGEMENTS ...............................................   16    CHAIR'S ADDRESS ................................................   16    AUTHOR'S ADDRESS ...............................................   16 
  31.  
  32. 1.  Introduction 
  33.  
  34.    PPP has three main components: 
  35.  
  36.       1. A method for encapsulating datagrams over serial links. 
  37.  
  38.       2. A Link Control Protocol (LCP) for establishing, configuring,          and testing the data-link connection. 
  39.  
  40.       3. A family of Network Control Protocols (NCPs) for establishing          and configuring different network-layer protocols. 
  41.  
  42.    In order to establish communications over a point-to-point link, each    end of the PPP link must first send LCP packets to configure the data    link during Link Establishment phase.  After the link has been    established, PPP provides for an optional Authentication phase before    proceeding to the Network-Layer Protocol phase. 
  43.  
  44.    By default, authentication is not mandatory.  If authentication of    the link is desired, an implementation MUST specify the    Authentication-Protocol Configuration Option during Link    Establishment phase. 
  45.  
  46.    These authentication protocols are intended for use primarily by    hosts and routers that connect to a PPP network server via switched    circuits or dial-up lines, but might be applied to dedicated links as    well.  The server can use the identification of the connecting host    or router in the selection of options for network layer negotiations. 
  47.  
  48.    This document defines the PPP authentication protocols.  The Link    Establishment and Authentication phases, and the Authentication-    Protocol Configuration Option, are defined in The Point-to-Point    Protocol (PPP) [1]. 
  49.  
  50. 1.1.  Specification Requirements 
  51.  
  52.    In this document, several words are used to signify the requirements    of the specification.  These words are often capitalized. 
  53.  
  54.    MUST       This word, or the adjective "required", means that the definition       is an absolute requirement of the specification. 
  55.  
  56.  
  57.  
  58. Lloyd & Simpson                                                 [Page 2] 
  59.  RFC 1334                   PPP Authentication               October 1992 
  60.  
  61.     MUST NOT       This phrase means that the definition is an absolute prohibition       of the specification. 
  62.  
  63.    SHOULD       This word, or the adjective "recommended", means that there may       exist valid reasons in particular circumstances to ignore this       item, but the full implications should be understood and carefully       weighed before choosing a different course. 
  64.  
  65.    MAY       This word, or the adjective "optional", means that this item is       one of an allowed set of alternatives.  An implementation which       does not include this option MUST be prepared to interoperate with       another implementation which does include the option. 
  66.  
  67. 1.2.  Terminology 
  68.  
  69.    This document frequently uses the following terms: 
  70.  
  71.    authenticator       The end of the link requiring the authentication.  The       authenticator specifies the authentication protocol to be used in       the Configure-Request during Link Establishment phase. 
  72.  
  73.    peer       The other end of the point-to-point link; the end which is being       authenticated by the authenticator. 
  74.  
  75.    silently discard       This means the implementation discards the packet without further       processing.  The implementation SHOULD provide the capability of       logging the error, including the contents of the silently       discarded packet, and SHOULD record the event in a statistics       counter. 
  76.  
  77. 2.  Password Authentication Protocol 
  78.  
  79.    The Password Authentication Protocol (PAP) provides a simple method    for the peer to establish its identity using a 2-way handshake.  This    is done only upon initial link establishment. 
  80.  
  81.    After the Link Establishment phase is complete, an Id/Password pair    is repeatedly sent by the peer to the authenticator until    authentication is acknowledged or the connection is terminated. 
  82.  
  83.    PAP is not a strong authentication method.  Passwords are sent over    the circuit "in the clear", and there is no protection from playback 
  84.  
  85.  
  86.  
  87. Lloyd & Simpson                                                 [Page 3] 
  88.  RFC 1334                   PPP Authentication               October 1992 
  89.  
  90.     or repeated trial and error attacks.  The peer is in control of the    frequency and timing of the attempts. 
  91.  
  92.    Any implementations which include a stronger authentication method    (such as CHAP, described below) MUST offer to negotiate that method    prior to PAP. 
  93.  
  94.    This authentication method is most appropriately used where a    plaintext password must be available to simulate a login at a remote    host.  In such use, this method provides a similar level of security    to the usual user login at the remote host. 
  95.  
  96.       Implementation Note: It is possible to limit the exposure of the       plaintext password to transmission over the PPP link, and avoid       sending the plaintext password over the entire network.  When the       remote host password is kept as a one-way transformed value, and       the algorithm for the transform function is implemented in the       local server, the plaintext password SHOULD be locally transformed       before comparison with the transformed password from the remote       host. 
  97.  
  98. 2.1.  Configuration Option Format 
  99.  
  100.    A summary of the Authentication-Protocol Configuration Option format    to negotiate the Password Authentication Protocol is shown below.    The fields are transmitted from left to right. 
  101.  
  102.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Type      |    Length     |     Authentication-Protocol   |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  103.  
  104.    Type 
  105.  
  106.       3 
  107.  
  108.    Length 
  109.  
  110.       4 
  111.  
  112.    Authentication-Protocol 
  113.  
  114.       c023 (hex) for Password Authentication Protocol. 
  115.  
  116.    Data 
  117.  
  118.       There is no Data field. 
  119.  
  120.  
  121.  
  122. Lloyd & Simpson                                                 [Page 4] 
  123.  RFC 1334                   PPP Authentication               October 1992 
  124.  
  125.  2.2.  Packet Format 
  126.  
  127.    Exactly one Password Authentication Protocol packet is encapsulated    in the Information field of a PPP Data Link Layer frame where the    protocol field indicates type hex c023 (Password Authentication    Protocol).  A summary of the PAP packet format is shown below.  The    fields are transmitted from left to right. 
  128.  
  129.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |    Data ...    +-+-+-+-+ 
  130.  
  131.    Code 
  132.  
  133.       The Code field is one octet and identifies the type of PAP packet.       PAP Codes are assigned as follows: 
  134.  
  135.          1       Authenticate-Request          2       Authenticate-Ack          3       Authenticate-Nak 
  136.  
  137.    Identifier 
  138.  
  139.       The Identifier field is one octet and aids in matching requests       and replies. 
  140.  
  141.    Length 
  142.  
  143.       The Length field is two octets and indicates the length of the PAP       packet including the Code, Identifier, Length and Data fields.       Octets outside the range of the Length field should be treated as       Data Link Layer padding and should be ignored on reception. 
  144.  
  145.    Data 
  146.  
  147.       The Data field is zero or more octets.  The format of the Data       field is determined by the Code field. 
  148.  
  149. 2.2.1.  Authenticate-Request 
  150.  
  151.    Description 
  152.  
  153.       The Authenticate-Request packet is used to begin the Password       Authentication Protocol.  The link peer MUST transmit a PAP packet 
  154.  
  155.  
  156.  
  157. Lloyd & Simpson                                                 [Page 5] 
  158.  RFC 1334                   PPP Authentication               October 1992 
  159.  
  160.        with the Code field set to 1 (Authenticate-Request) during the       Authentication phase.  The Authenticate-Request packet MUST be       repeated until a valid reply packet is received, or an optional       retry counter expires. 
  161.  
  162.       The authenticator SHOULD expect the peer to send an Authenticate-       Request packet.  Upon reception of an Authenticate-Request packet,       some type of Authenticate reply (described below) MUST be       returned. 
  163.  
  164.          Implementation Note: Because the Authenticate-Ack might be          lost, the authenticator MUST allow repeated Authenticate-          Request packets after completing the Authentication phase.          Protocol phase MUST return the same reply Code returned when          the Authentication phase completed (the message portion MAY be          different).  Any Authenticate-Request packets received during          any other phase MUST be silently discarded. 
  165.  
  166.          When the Authenticate-Nak is lost, and the authenticator          terminates the link, the LCP Terminate-Request and Terminate-          Ack provide an alternative indication that authentication          failed. 
  167.  
  168.    A summary of the Authenticate-Request packet format is shown below.    The fields are transmitted from left to right. 
  169.  
  170.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    | Peer-ID Length|  Peer-Id ...    +-+-+-+-+-+-+-+-+-+-+-+-+    | Passwd-Length |  Password  ...    +-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  171.  
  172.    Code 
  173.  
  174.       1 for Authenticate-Request. 
  175.  
  176.    Identifier 
  177.  
  178.       The Identifier field is one octet and aids in matching requests       and replies.  The Identifier field MUST be changed each time an       Authenticate-Request packet is issued. 
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  Lloyd & Simpson                                                 [Page 6] 
  185.  RFC 1334                   PPP Authentication               October 1992 
  186.  
  187.     Peer-ID-Length 
  188.  
  189.       The Peer-ID-Length field is one octet and indicates the length of       the Peer-ID field. 
  190.  
  191.    Peer-ID 
  192.  
  193.       The Peer-ID field is zero or more octets and indicates the name of       the peer to be authenticated. 
  194.  
  195.    Passwd-Length 
  196.  
  197.       The Passwd-Length field is one octet and indicates the length of       the Password field. 
  198.  
  199.    Password 
  200.  
  201.       The Password field is zero or more octets and indicates the       password to be used for authentication. 
  202.  
  203. 2.2.2.  Authenticate-Ack and Authenticate-Nak 
  204.  
  205.    Description 
  206.  
  207.       If the Peer-ID/Password pair received in an Authenticate-Request       is both recognizable and acceptable, then the authenticator MUST       transmit a PAP packet with the Code field set to 2 (Authenticate-       Ack). 
  208.  
  209.       If the Peer-ID/Password pair received in a Authenticate-Request is       not recognizable or acceptable, then the authenticator MUST       transmit a PAP packet with the Code field set to 3 (Authenticate-       Nak), and SHOULD take action to terminate the link. 
  210.  
  211.    A summary of the Authenticate-Ack and Authenticate-Nak packet format    is shown below.  The fields are transmitted from left to right. 
  212.  
  213.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |  Msg-Length   |  Message  ...    +-+-+-+-+-+-+-+-+-+-+-+-+- 
  214.  
  215.    Code 
  216.  
  217.       2 for Authenticate-Ack; 
  218.  
  219.  
  220.  
  221. Lloyd & Simpson                                                 [Page 7] 
  222.  RFC 1334                   PPP Authentication               October 1992 
  223.  
  224.        3 for Authenticate-Nak. 
  225.  
  226.    Identifier 
  227.  
  228.       The Identifier field is one octet and aids in matching requests       and replies.  The Identifier field MUST be copied from the       Identifier field of the Authenticate-Request which caused this       reply. 
  229.  
  230.    Msg-Length 
  231.  
  232.       The Msg-Length field is one octet and indicates the length of the       Message field. 
  233.  
  234.    Message 
  235.  
  236.       The Message field is zero or more octets, and its contents are       implementation dependent.  It is intended to be human readable,       and MUST NOT affect operation of the protocol.  It is recommended       that the message contain displayable ASCII characters 32 through       126 decimal.  Mechanisms for extension to other character sets are       the topic of future research. 
  237.  
  238. 3.  Challenge-Handshake Authentication Protocol 
  239.  
  240.    The Challenge-Handshake Authentication Protocol (CHAP) is used to    periodically verify the identity of the peer using a 3-way handshake.    This is done upon initial link establishment, and MAY be repeated    anytime after the link has been established. 
  241.  
  242.    After the Link Establishment phase is complete, the authenticator    sends a "challenge" message to the peer.  The peer responds with a    value calculated using a "one-way hash" function.  The authenticator    checks the response against its own calculation of the expected hash    value.  If the values match, the authentication is acknowledged;    otherwise the connection SHOULD be terminated. 
  243.  
  244.    CHAP provides protection against playback attack through the use of    an incrementally changing identifier and a variable challenge value.    The use of repeated challenges is intended to limit the time of    exposure to any single attack.  The authenticator is in control of    the frequency and timing of the challenges. 
  245.  
  246.    This authentication method depends upon a "secret" known only to the    authenticator and that peer.  The secret is not sent over the link.    This method is most likely used where the same secret is easily    accessed from both ends of the link. 
  247.  
  248.  
  249.  
  250.  Lloyd & Simpson                                                 [Page 8] 
  251.  RFC 1334                   PPP Authentication               October 1992 
  252.  
  253.        Implementation Note: CHAP requires that the secret be available in       plaintext form.  To avoid sending the secret over other links in       the network, it is recommended that the challenge and response       values be examined at a central server, rather than each network       access server.  Otherwise, the secret SHOULD be sent to such       servers in a reversably encrypted form. 
  254.  
  255.    The CHAP algorithm requires that the length of the secret MUST be at    least 1 octet.  The secret SHOULD be at least as large and    unguessable as a well-chosen password.  It is preferred that the    secret be at least the length of the hash value for the hashing    algorithm chosen (16 octets for MD5).  This is to ensure a    sufficiently large range for the secret to provide protection against    exhaustive search attacks. 
  256.  
  257.    The one-way hash algorithm is chosen such that it is computationally    infeasible to determine the secret from the known challenge and    response values. 
  258.  
  259.    The challenge value SHOULD satisfy two criteria: uniqueness and    unpredictability.  Each challenge value SHOULD be unique, since    repetition of a challenge value in conjunction with the same secret    would permit an attacker to reply with a previously intercepted    response.  Since it is expected that the same secret MAY be used to    authenticate with servers in disparate geographic regions, the    challenge SHOULD exhibit global and temporal uniqueness.  Each    challenge value SHOULD also be unpredictable, least an attacker trick    a peer into responding to a predicted future challenge, and then use    the response to masquerade as that peer to an authenticator.    Although protocols such as CHAP are incapable of protecting against    realtime active wiretapping attacks, generation of unique    unpredictable challenges can protect against a wide range of active    attacks. 
  260.  
  261.    A discussion of sources of uniqueness and probability of divergence    is included in the Magic-Number Configuration Option [1]. 
  262.  
  263. 3.1.  Configuration Option Format 
  264.  
  265.    A summary of the Authentication-Protocol Configuration Option format    to negotiate the Challenge-Handshake Authentication Protocol is shown    below.  The fields are transmitted from left to right. 
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275. Lloyd & Simpson                                                 [Page 9] 
  276.  RFC 1334                   PPP Authentication               October 1992 
  277.  
  278.      0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Type      |    Length     |     Authentication-Protocol   |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |   Algorithm   |    +-+-+-+-+-+-+-+-+ 
  279.  
  280.    Type 
  281.  
  282.       3 
  283.  
  284.    Length 
  285.  
  286.       5 
  287.  
  288.    Authentication-Protocol 
  289.  
  290.       c223 (hex) for Challenge-Handshake Authentication Protocol. 
  291.  
  292.    Algorithm 
  293.  
  294.       The Algorithm field is one octet and indicates the one-way hash       method to be used.  The most up-to-date values of the CHAP       Algorithm field are specified in the most recent "Assigned       Numbers" RFC [2].  Current values are assigned as follows: 
  295.  
  296.          0-4     unused (reserved)          5       MD5 [3] 
  297.  
  298. 3.2.  Packet Format 
  299.  
  300.    Exactly one Challenge-Handshake Authentication Protocol packet is    encapsulated in the Information field of a PPP Data Link Layer frame    where the protocol field indicates type hex c223 (Challenge-Handshake    Authentication Protocol).  A summary of the CHAP packet format is    shown below.  The fields are transmitted from left to right. 
  301.  
  302.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |    Data ...    +-+-+-+-+ 
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  Lloyd & Simpson                                                [Page 10] 
  309.  RFC 1334                   PPP Authentication               October 1992 
  310.  
  311.     Code 
  312.  
  313.       The Code field is one octet and identifies the type of CHAP       packet.  CHAP Codes are assigned as follows: 
  314.  
  315.          1       Challenge          2       Response          3       Success          4       Failure 
  316.  
  317.    Identifier 
  318.  
  319.       The Identifier field is one octet and aids in matching challenges,       responses and replies. 
  320.  
  321.    Length 
  322.  
  323.       The Length field is two octets and indicates the length of the       CHAP packet including the Code, Identifier, Length and Data       fields.  Octets outside the range of the Length field should be       treated as Data Link Layer padding and should be ignored on       reception. 
  324.  
  325.    Data 
  326.  
  327.       The Data field is zero or more octets.  The format of the Data       field is determined by the Code field. 
  328.  
  329. 3.2.1.  Challenge and Response 
  330.  
  331.    Description 
  332.  
  333.       The Challenge packet is used to begin the Challenge-Handshake       Authentication Protocol.  The authenticator MUST transmit a CHAP       packet with the Code field set to 1 (Challenge).  Additional       Challenge packets MUST be sent until a valid Response packet is       received, or an optional retry counter expires. 
  334.  
  335.       A Challenge packet MAY also be transmitted at any time during the       Network-Layer Protocol phase to ensure that the connection has not       been altered. 
  336.  
  337.       The peer SHOULD expect Challenge packets during the Authentication       phase and the Network-Layer Protocol phase.  Whenever a Challenge       packet is received, the peer MUST transmit a CHAP packet with the       Code field set to 2 (Response). 
  338.  
  339.       Whenever a Response packet is received, the authenticator compares 
  340.  
  341.  
  342.  
  343. Lloyd & Simpson                                                [Page 11] 
  344.  RFC 1334                   PPP Authentication               October 1992 
  345.  
  346.        the Response Value with its own calculation of the expected value.       Based on this comparison, the authenticator MUST send a Success or       Failure packet (described below). 
  347.  
  348.          Implementation Note: Because the Success might be lost, the          authenticator MUST allow repeated Response packets after          completing the Authentication phase.  To prevent discovery of          alternative Names and Secrets, any Response packets received          having the current Challenge Identifier MUST return the same          reply Code returned when the Authentication phase completed          (the message portion MAY be different).  Any Response packets          received during any other phase MUST be silently discarded. 
  349.  
  350.          When the Failure is lost, and the authenticator terminates the          link, the LCP Terminate-Request and Terminate-Ack provide an          alternative indication that authentication failed. 
  351.  
  352.    A summary of the Challenge and Response packet format is shown below.    The fields are transmitted from left to right. 
  353.  
  354.     0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |  Value-Size   |  Value ...    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |  Name ...    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  355.  
  356.    Code 
  357.  
  358.       1 for Challenge; 
  359.  
  360.       2 for Response. 
  361.  
  362.    Identifier 
  363.  
  364.       The Identifier field is one octet.  The Identifier field MUST be       changed each time a Challenge is sent. 
  365.  
  366.       The Response Identifier MUST be copied from the Identifier field       of the Challenge which caused the Response. 
  367.  
  368.    Value-Size 
  369.  
  370.       This field is one octet and indicates the length of the Value       field. 
  371.  
  372.  
  373.  
  374. Lloyd & Simpson                                                [Page 12] 
  375.  RFC 1334                   PPP Authentication               October 1992 
  376.  
  377.     Value 
  378.  
  379.       The Value field is one or more octets.  The most significant octet       is transmitted first. 
  380.  
  381.       The Challenge Value is a variable stream of octets.  The       importance of the uniqueness of the Challenge Value and its       relationship to the secret is described above.  The Challenge       Value MUST be changed each time a Challenge is sent.  The length       of the Challenge Value depends upon the method used to generate       the octets, and is independent of the hash algorithm used. 
  382.  
  383.       The Response Value is the one-way hash calculated over a stream of       octets consisting of the Identifier, followed by (concatenated       with) the "secret", followed by (concatenated with) the Challenge       Value.  The length of the Response Value depends upon the hash       algorithm used (16 octets for MD5). 
  384.  
  385.    Name 
  386.  
  387.       The Name field is one or more octets representing the       identification of the system transmitting the packet.  There are       no limitations on the content of this field.  For example, it MAY       contain ASCII character strings or globally unique identifiers in       ASN.1 syntax.  The Name should not be NUL or CR/LF terminated.       The size is determined from the Length field. 
  388.  
  389.       Since CHAP may be used to authenticate many different systems, the       content of the name field(s) may be used as a key to locate the       proper secret in a database of secrets.  This also makes it       possible to support more than one name/secret pair per system. 
  390.  
  391. 3.2.2.  Success and Failure 
  392.  
  393.    Description 
  394.  
  395.       If the Value received in a Response is equal to the expected       value, then the implementation MUST transmit a CHAP packet with       the Code field set to 3 (Success). 
  396.  
  397.       If the Value received in a Response is not equal to the expected       value, then the implementation MUST transmit a CHAP packet with       the Code field set to 4 (Failure), and SHOULD take action to       terminate the link. 
  398.  
  399.    A summary of the Success and Failure packet format is shown below.    The fields are transmitted from left to right. 
  400.  
  401.  
  402.  
  403.  Lloyd & Simpson                                                [Page 13] 
  404.  RFC 1334                   PPP Authentication               October 1992 
  405.  
  406.      0                   1                   2                   3     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |     Code      |  Identifier   |            Length             |    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    |  Message  ...    +-+-+-+-+-+-+-+-+-+-+-+-+- 
  407.  
  408.    Code 
  409.  
  410.       3 for Success; 
  411.  
  412.       4 for Failure. 
  413.  
  414.    Identifier 
  415.  
  416.       The Identifier field is one octet and aids in matching requests       and replies.  The Identifier field MUST be copied from the       Identifier field of the Response which caused this reply. 
  417.  
  418.    Message 
  419.  
  420.       The Message field is zero or more octets, and its contents are       implementation dependent.  It is intended to be human readable,       and MUST NOT affect operation of the protocol.  It is recommended       that the message contain displayable ASCII characters 32 through       126 decimal.  Mechanisms for extension to other character sets are       the topic of future research.  The size is determined from the       Length field. 
  421.  
  422. Security Considerations 
  423.  
  424.       Security issues are the primary topic of this RFC. 
  425.  
  426.       The interaction of the authentication protocols within PPP are       highly implementation dependent.  This is indicated by the use of       SHOULD throughout the document. 
  427.  
  428.       For example, upon failure of authentication, some implementations       do not terminate the link.  Instead, the implementation limits the       kind of traffic in the Network-Layer Protocols to a filtered       subset, which in turn allows the user opportunity to update       secrets or send mail to the network administrator indicating a       problem. 
  429.  
  430.       There is no provision for re-tries of failed authentication.       However, the LCP state machine can renegotiate the authentication       protocol at any time, thus allowing a new attempt.  It is 
  431.  
  432.  
  433.  
  434. Lloyd & Simpson                                                [Page 14] 
  435.  RFC 1334                   PPP Authentication               October 1992 
  436.  
  437.        recommended that any counters used for authentication failure not       be reset until after successful authentication, or subsequent       termination of the failed link. 
  438.  
  439.       There is no requirement that authentication be full duplex or that       the same protocol be used in both directions.  It is perfectly       acceptable for different protocols to be used in each direction.       This will, of course, depend on the specific protocols negotiated. 
  440.  
  441.       In practice, within or associated with each PPP server, there is a       database which associates "user" names with authentication       information ("secrets").  It is not anticipated that a particular       named user would be authenticated by multiple methods.  This would       make the user vulnerable to attacks which negotiate the least       secure method from among a set (such as PAP rather than CHAP).       Instead, for each named user there should be an indication of       exactly one method used to authenticate that user name.  If a user       needs to make use of different authentication method under       different circumstances, then distinct user names SHOULD be       employed, each of which identifies exactly one authentication       method. 
  442.  
  443.       Passwords and other secrets should be stored at the respective       ends such that access to them is as limited as possible.  Ideally,       the secrets should only be accessible to the process requiring       access in order to perform the authentication.        The secrets should be distributed with a mechanism that limits the       number of entities that handle (and thus gain knowledge of) the       secret.  Ideally, no unauthorized person should ever gain       knowledge of the secrets.  It is possible to achieve this with       SNMP Security Protocols [4], but such a mechanism is outside the       scope of this specification. 
  444.  
  445.       Other distribution methods are currently undergoing research and       experimentation.  The SNMP Security document also has an excellent       overview of threats to network protocols. 
  446.  
  447. References 
  448.  
  449.    [1] Simpson, W., "The Point-to-Point Protocol (PPP)", RFC 1331,        Daydreamer, May 1992. 
  450.  
  451.    [2] Reynolds, J., and J. Postel, "Assigned Numbers", RFC 1340,        USC/Information Sciences Institute, July 1992. 
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  Lloyd & Simpson                                                [Page 15] 
  458.  RFC 1334                   PPP Authentication               October 1992 
  459.  
  460.     [3] Rivest, R., and S. Dusse, "The MD5 Message-Digest Algorithm", MIT        Laboratory for Computer Science and RSA Data Security, Inc.  RFC        1321, April 1992. 
  461.  
  462.    [4] Galvin, J., McCloghrie, K., and J. Davin, "SNMP Security        Protocols", Trusted Information Systems, Inc., Hughes LAN        Systems, Inc., MIT Laboratory for Computer Science, RFC 1352,        July 1992. 
  463.  
  464. Acknowledgments 
  465.  
  466.    Some of the text in this document is taken from RFC 1172, by Drew    Perkins of Carnegie Mellon University, and by Russ Hobby of the    University of California at Davis. 
  467.  
  468.    Special thanks to Dave Balenson, Steve Crocker, James Galvin, and    Steve Kent, for their extensive explanations and suggestions.  Now,    if only we could get them to agree with each other. 
  469.  
  470. Chair's Address 
  471.  
  472.    The working group can be contacted via the current chair: 
  473.  
  474.       Brian Lloyd       Lloyd & Associates       3420 Sudbury Road       Cameron Park, California 95682 
  475.  
  476.       Phone: (916) 676-1147 
  477.  
  478.       EMail: brian@lloyd.com 
  479.  
  480. Author's Address 
  481.  
  482.    Questions about this memo can also be directed to: 
  483.  
  484.       William Allen Simpson       Daydreamer       Computer Systems Consulting Services       P O Box 6205       East Lansing, MI  48826-6205 
  485.  
  486.       EMail: Bill.Simpson@um.cc.umich.edu 
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  Lloyd & Simpson                                                [Page 16] 
  495.  
  496.