diff options
author | Kozlov Dmitry <dima@server> | 2010-10-06 16:43:14 +0400 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-10-06 16:43:14 +0400 |
commit | b6a1268714671904e96a49b88680dc3ff07aaa1c (patch) | |
tree | 60424372b94312710b9f583b1bcc641de4020316 /doc/rfc1994.txt | |
parent | 5cf93f33f2350ed3b92f73ead1d2829a6883810a (diff) | |
download | accel-ppp-xebd-b6a1268714671904e96a49b88680dc3ff07aaa1c.tar.gz accel-ppp-xebd-b6a1268714671904e96a49b88680dc3ff07aaa1c.zip |
project cleanup and prepare to release
Diffstat (limited to 'doc/rfc1994.txt')
-rw-r--r-- | doc/rfc1994.txt | 732 |
1 files changed, 0 insertions, 732 deletions
diff --git a/doc/rfc1994.txt b/doc/rfc1994.txt deleted file mode 100644 index e4a553e..0000000 --- a/doc/rfc1994.txt +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - -Network Working Group W. Simpson -Request for Comments: 1994 DayDreamer -Obsoletes: 1334 August 1996 -Category: Standards Track - - - PPP Challenge Handshake Authentication Protocol (CHAP) - - -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. - -Abstract - - The Point-to-Point Protocol (PPP) [1] provides a standard method for - transporting multi-protocol datagrams 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. - - This document defines a method for Authentication using PPP, which - uses a random Challenge, with a cryptographically hashed Response - which depends upon the Challenge and a secret key. - -Table of Contents - - 1. Introduction .......................................... 1 - 1.1 Specification of Requirements ................... 1 - 1.2 Terminology ..................................... 2 - 2. Challenge-Handshake Authentication Protocol ........... 2 - 2.1 Advantages ...................................... 3 - 2.2 Disadvantages ................................... 3 - 2.3 Design Requirements ............................. 4 - 3. Configuration Option Format ........................... 5 - 4. Packet Format ......................................... 6 - 4.1 Challenge and Response .......................... 7 - 4.2 Success and Failure ............................. 9 - SECURITY CONSIDERATIONS ...................................... 10 - ACKNOWLEDGEMENTS ............................................. 11 - REFERENCES ................................................... 12 - CONTACTS ..................................................... 12 - - - - -Simpson [Page i] - -RFC 1994 PPP CHAP August 1996 - - -1. Introduction - - 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. - - 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. - - 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. - - This document defines a PPP authentication protocol. The Link - Establishment and Authentication phases, and the Authentication- - Protocol Configuration Option, are defined in The Point-to-Point - Protocol (PPP) [1]. - - -1.1. Specification of Requirements - - In this document, several words are used to signify the requirements - of the specification. These words are often capitalized. - - MUST This word, or the adjective "required", means that the - definition is an absolute requirement of the specification. - - MUST NOT This phrase means that the definition is an absolute - prohibition of the specification. - - 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 must be - understood and carefully weighed before choosing a - different course. - - 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. - - - - -Simpson [Page 1] - -RFC 1994 PPP CHAP August 1996 - - -1.2. Terminology - - This document frequently uses the following terms: - - 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. - - peer The other end of the point-to-point link; the end which is - being authenticated by the authenticator. - - 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. - - - - -2. Challenge-Handshake Authentication Protocol - - 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. - - 1. After the Link Establishment phase is complete, the - authenticator sends a "challenge" message to the peer. - - 2. The peer responds with a value calculated using a "one-way - hash" function. - - 3. 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. - - 4. At random intervals, the authenticator sends a new challenge to - the peer, and repeats steps 1 to 3. - - - - - - - - -Simpson [Page 2] - -RFC 1994 PPP CHAP August 1996 - - -2.1. Advantages - - CHAP provides protection against playback attack by the peer 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. - - This authentication method depends upon a "secret" known only to the - authenticator and that peer. The secret is not sent over the link. - - Although the authentication is only one-way, by negotiating CHAP in - both directions the same secret set may easily be used for mutual - authentication. - - Since CHAP may be used to authenticate many different systems, name - fields may be used as an index to locate the proper secret in a large - table of secrets. This also makes it possible to support more than - one name/secret pair per system, and to change the secret in use at - any time during the session. - - -2.2. Disadvantages - - CHAP requires that the secret be available in plaintext form. - Irreversably encrypted password databases commonly available cannot - be used. - - It is not as useful for large installations, since every possible - secret is maintained at both ends of the link. - - Implementation Note: 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. Either case requires a - trusted relationship, which is outside the scope of this - specification. - - - - - - - - - - - - - -Simpson [Page 3] - -RFC 1994 PPP CHAP August 1996 - - -2.3. Design Requirements - - 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. - - The one-way hash algorithm is chosen such that it is computationally - infeasible to determine the secret from the known challenge and - response values. - - 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. - - A discussion of sources of uniqueness and probability of divergence - is included in the Magic-Number Configuration Option [1]. - - - - - - - - - - - - - - - - - - - -Simpson [Page 4] - -RFC 1994 PPP CHAP August 1996 - - -3. Configuration Option Format - - 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. - - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Type | Length | Authentication-Protocol | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Algorithm | - +-+-+-+-+-+-+-+-+ - - Type - - 3 - - Length - - 5 - - Authentication-Protocol - - c223 (hex) for Challenge-Handshake Authentication Protocol. - - Algorithm - - The Algorithm field is one octet and indicates the authentication - method to be used. Up-to-date values are specified in the most - recent "Assigned Numbers" [2]. One value is required to be - implemented: - - 5 CHAP with MD5 [3] - - - - - - - - - - - - - - - - - - - -Simpson [Page 5] - -RFC 1994 PPP CHAP August 1996 - - -4. Packet Format - - 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. - - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Code | Identifier | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Data ... - +-+-+-+-+ - - Code - - The Code field is one octet and identifies the type of CHAP - packet. CHAP Codes are assigned as follows: - - 1 Challenge - 2 Response - 3 Success - 4 Failure - - Identifier - - The Identifier field is one octet and aids in matching challenges, - responses and replies. - - Length - - 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. - - Data - - The Data field is zero or more octets. The format of the Data - field is determined by the Code field. - - - - - - - - - - -Simpson [Page 6] - -RFC 1994 PPP CHAP August 1996 - - -4.1. Challenge and Response - - Description - - 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. - - 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. - - 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). - - Whenever a Response packet is received, the authenticator compares - 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). - - Implementation Notes: Because the Success might be lost, the - authenticator MUST allow repeated Response packets during the - Network-Layer Protocol phase 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 - previously returned for that specific Challenge (the message - portion MAY be different). Any Response packets received - during any other phase MUST be silently discarded. - - 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. - - - - - - - - - - - - - - -Simpson [Page 7] - -RFC 1994 PPP CHAP August 1996 - - - A summary of the Challenge and Response packet format is shown below. - The fields are transmitted from left to right. - - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Code | Identifier | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Value-Size | Value ... - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Name ... - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - - Code - - 1 for Challenge; - - 2 for Response. - - Identifier - - The Identifier field is one octet. The Identifier field MUST be - changed each time a Challenge is sent. - - The Response Identifier MUST be copied from the Identifier field - of the Challenge which caused the Response. - - Value-Size - - This field is one octet and indicates the length of the Value - field. - - Value - - The Value field is one or more octets. The most significant octet - is transmitted first. - - 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. - - 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). - - - - -Simpson [Page 8] - -RFC 1994 PPP CHAP August 1996 - - - Name - - 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. - - -4.2. Success and Failure - - Description - - 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). - - 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. - - A summary of the Success and Failure packet format is shown below. - The fields are transmitted from left to right. - - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Code | Identifier | Length | - +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ - | Message ... - +-+-+-+-+-+-+-+-+-+-+-+-+- - - Code - - 3 for Success; - - 4 for Failure. - - Identifier - - 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. - - - - - - - - -Simpson [Page 9] - -RFC 1994 PPP CHAP August 1996 - - - Message - - 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. - - - -Security Considerations - - Security issues are the primary topic of this RFC. - - The interaction of the authentication protocols within PPP are highly - implementation dependent. This is indicated by the use of SHOULD - throughout the document. - - 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. - - 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 recommended - that any counters used for authentication failure not be reset until - after successful authentication, or subsequent termination of the - failed link. - - 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. - - The secret SHOULD NOT be the same in both directions. This allows an - attacker to replay the peer's challenge, accept the computed - response, and use that response to authenticate. - - 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). If the same - - - -Simpson [Page 10] - -RFC 1994 PPP CHAP August 1996 - - - secret was used, PAP would reveal the secret to be used later with - CHAP. - - Instead, for each user name 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 methods under different - circumstances, then distinct user names SHOULD be employed, each of - which identifies exactly one authentication method. - - 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. Such a mechanism is outside the scope of this - specification. - - -Acknowledgements - - David Kaufman, Frank Heinrich, and Karl Auerbach used a challenge - handshake at SDC when designing one of the protocols for a "secure" - network in the mid-1970s. Tom Bearson built a prototype Sytek - product ("Poloneous"?) on the challenge-response notion in the 1982- - 83 timeframe. Another variant is documented in the various IBM SNA - manuals. Yet another variant was implemented by Karl Auerbach in the - Telebit NetBlazer circa 1991. - - Kim Toms and Barney Wolff provided useful critiques of earlier - versions of this document. - - 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. - - - - - - - - - - - - - - -Simpson [Page 11] - -RFC 1994 PPP CHAP August 1996 - - -References - - [1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD - 51, RFC 1661, DayDreamer, July 1994. - - [2] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC - 1700, USC/Information Sciences Institute, October 1994. - - [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. - - - -Contacts - - Comments should be submitted to the ietf-ppp@merit.edu mailing list. - - This document was reviewed by the Point-to-Point Protocol Working - Group of the Internet Engineering Task Force (IETF). The working - group can be contacted via the current chair: - - Karl Fox - Ascend Communications - 3518 Riverside Drive, Suite 101 - Columbus, Ohio 43221 - - karl@MorningStar.com - karl@Ascend.com - - - Questions about this memo can also be directed to: - - William Allen Simpson - DayDreamer - Computer Systems Consulting Services - 1384 Fontaine - Madison Heights, Michigan 48071 - - wsimpson@UMich.edu - wsimpson@GreenDragon.com (preferred) - - - - - - - - - - -Simpson [Page 12] - - |