diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
| commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
| tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5421.txt | |
| parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) | |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5421.txt')
| -rw-r--r-- | doc/rfc/rfc5421.txt | 563 | 
1 files changed, 563 insertions, 0 deletions
| diff --git a/doc/rfc/rfc5421.txt b/doc/rfc/rfc5421.txt new file mode 100644 index 0000000..dc51938 --- /dev/null +++ b/doc/rfc/rfc5421.txt @@ -0,0 +1,563 @@ + + + + + + +Network Working Group                                      N. Cam-Winget +Request for Comments: 5421                                       H. Zhou +Category: Informational                                    Cisco Systems +                                                              March 2009 + + +       Basic Password Exchange within the Flexible Authentication +   via Secure Tunneling Extensible Authentication Protocol (EAP-FAST) + +Status of This Memo + +   This memo provides information for the Internet community.  It does +   not specify an Internet standard of any kind.  Distribution of this +   memo is unlimited. + +Copyright Notice + +   Copyright (c) 2009 IETF Trust and the persons identified as the +   document authors.  All rights reserved. + +   This document is subject to BCP 78 and the IETF Trust's Legal +   Provisions Relating to IETF Documents in effect on the date of +   publication of this document (http://trustee.ietf.org/license-info). +   Please review these documents carefully, as they describe your rights +   and restrictions with respect to this document. + +   This document may contain material from IETF Documents or IETF +   Contributions published or made publicly available before November +   10, 2008.  The person(s) controlling the copyright in some of this +   material may not have granted the IETF Trust the right to allow +   modifications of such material outside the IETF Standards Process. +   Without obtaining an adequate license from the person(s) controlling +   the copyright in such materials, this document may not be modified +   outside the IETF Standards Process, and derivative works of it may +   not be created outside the IETF Standards Process, except to format +   it for publication as an RFC or to translate it into languages other +   than English. + +IESG Note + +   EAP-FAST has been implemented by many vendors and it is used in the +   Internet.  Publication of this specification is intended to promote +   interoperability by documenting current use of existing EAP methods +   within EAP-FAST. + +   The EAP method EAP-FAST-GTC reuses the EAP type code assigned to EAP- +   GTC (6).  The reuse of previously assigned EAP Type Codes is +   incompatible with EAP method negotiation as defined in RFC 3748. + + + +Cam-Winget & Zhou            Informational                      [Page 1] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   Since EAP-GTC does not support method-specific version negotiation, +   the use of EAP-FAST-GTC is implied when used inside the EAP-FAST +   tunnel during authentication.  This behavior may cause problems in +   implementations where the use of another vendor's EAP-GTC is +   required.  Since such support requires special case execution of a +   method within a tunnel, it also complicates implementations that use +   the same method code both within and outside of the tunnel method. +   If EAP-FAST were to be designed today, these difficulties could be +   avoided by utilization of unique EAP Type codes.  Given these issues, +   assigned method types must not be re-used with different meaning +   inside tunneled methods in the future. + +Abstract + +   The Flexible Authentication via Secure Tunneling Extensible +   Authentication Protocol (EAP-FAST) method enables secure +   communication between a peer and a server by using Transport Layer +   Security (TLS) to establish a mutually authenticated tunnel.  Within +   this tunnel, a basic password exchange, based on the Generic Token +   Card method (EAP-GTC), may be executed to authenticate the peer. + +Table of Contents + +   1. Introduction ....................................................2 +      1.1. Specification Requirements .................................3 +   2. EAP-FAST GTC Authentication .....................................3 +   3. Security Considerations .........................................7 +      3.1. Security Claims ............................................7 +   4. IANA Considerations .............................................8 +   5. Acknowledgments .................................................9 +   6. References ......................................................9 +      6.1. Normative References .......................................9 +      6.2. Informative References .....................................9 + +1.  Introduction + +   EAP-FAST [RFC4851] is an EAP method that can be used to mutually +   authenticate a peer and server.  This document describes the EAP-FAST +   inner EAP method, EAP-FAST-GTC, which is used to authenticate the +   peer through a basic password exchange.  EAP-FAST-GTC was developed +   to support using cleartext passwords to authenticate to legacy user +   databases, to facilitate password change, and to support one time +   password features such as new pin mode.  Message exchanges, including +   user credentials, are cleartext strings transferred within the +   encrypted TLS tunnel and thus are considered secure.  For historical +   reasons, EAP-FAST-GTC uses EAP Type 6, originally allocated to EAP- +   GTC [RFC3748].  Note that EAP-FAST-GTC payloads used in EAP-FAST +   require specific formatting and therefore will not necessarily be + + + +Cam-Winget & Zhou            Informational                      [Page 2] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   compatible with EAP-GTC mechanisms used outside of EAP-FAST.  To +   avoid interference between these two methods, EAP-FAST-GTC MUST NOT +   be used outside an EAP-FAST tunnel, and EAP-GTC MUST NOT be used +   inside an EAP-FAST tunnel.  All EAP-FAST-GTC packets sent within the +   TLS tunnel must be encapsulated in EAP Payload TLVs, described in +   [RFC4851]. + +   It is assumed that a reader of this document is familiar with EAP- +   FAST [RFC4851]. + +1.1.  Specification Requirements + +   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", +   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this +   document are to be interpreted as described in [RFC2119]. + +2.  EAP-FAST GTC Authentication + +   All EAP-FAST-GTC packets inside EAP-FAST other than the empty +   acknowledgment packet MUST follow the "LABEL=Value" format.  All +   Labels are in ASCII text and SHALL NOT contain the space character. +   Currently, three Labels are defined: + +   o  "CHALLENGE", the server request packet MUST be in the form of +      "CHALLENGE=Value", where Value is the server challenge, such as +      "please enter your password". + +   o  "RESPONSE", the peer response packet MUST be in the form of +      "RESPONSE=Value", where Value is the peer response. + +   o  "E", the server failure packet MUST be in the form of "E=Value", +      where Value is the error message generated by the server. + +   If the peer or the server receives an EAP-FAST-GTC request or +   response that is not in the format specified above, it SHOULD fail +   the authentication by sending a Result TLV with a failure. + +   After the TLS encryption tunnel is established and EAP-FAST +   Authentication phase 2 starts, the EAP server sends an EAP-FAST-GTC +   Request, which contains a server challenge.  The server challenge is +   a displayable message for use by the peer to prompt the user. + +   A peer MAY prompt the user for the user credentials, or decide to use +   the user credentials gained through some other means without +   prompting the user.  The peer sends the user credentials back in the +   EAP-FAST-GTC Response using the following format: + +      "RESPONSE=user@example.com\0secret" + + + +Cam-Winget & Zhou            Informational                      [Page 3] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   where "user@example.com" is the actual username and "secret" is the +   actual password.  The NULL character "\0" is used to separate the +   username and password. + +   The username and password are included in a single message in the +   first response packet as an optimization by eliminating the inner +   method EAP-Identity exchange to save an extra round trip. + +   Once the EAP-FAST server receives the user credentials, it SHOULD +   first validate the user identity with the Initiator ID (I-ID) +   [RFC5422] in the PAC-Opaque (Protected Access Credential) and if it +   matches, it will continue to authenticate the user with internal or +   external user databases. + +   Additional exchanges MAY occur between the EAP-FAST server and peer +   to facilitate various user authentications.  The EAP-FAST server +   might send additional challenges to prompt the peer for additional +   information, such as a request for the next token or a new pin in the +   one time password case, or a server failure packet to indicate an +   error.  The peer displays the prompt to the user again and sends back +   the needed information in an EAP-FAST-GTC Response.  The exchange +   ends when a Result TLV is received. + +   An EAP-FAST-GTC server implementation within EAP-FAST uses the +   following format to indicate an error if an authentication fails: + +       "E=eeeeeeeeee R=r M=<msg>" + +   where: + +   The "eeeeeeeeee" is the ASCII representation of a decimal error code +   corresponding to one of those listed below, though peer +   implementations SHOULD deal with codes not on this list gracefully. + +   The error code need not be 10 digits long. + +   Below is a complete list of predefined error codes: + +   o  646 ERROR_RESTRICTED_LOGON_HOURS + +      Indicates that access is attempted outside the allowed hours. +      Peer implementations SHOULD display the error message to the user +      and ask the user to try at a later time. + + + + + + + + +Cam-Winget & Zhou            Informational                      [Page 4] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   o  647 ERROR_ACCT_DISABLED + +      Indicates that the requested account is disabled.  Peer +      implementations SHOULD display the error message to the user, +      which helps the user to resolve the issue with the administrator. + +   o  648 ERROR_PASSWD_EXPIRED + +      Indicates that the password has expired and a password change is +      required.  Peer implementations SHOULD prompt the user for a new +      password and send back the new password in the peer response +      packet. + +   o  649 ERROR_NO_DIALIN_PERMISSION + +      Indicates that access has been denied due to lack of dial-in +      permission.  Peer implementations SHOULD display the error message +      to the user, which helps the user to resolve the issue with the +      administrator. + +   o  691 ERROR_AUTHENTICATION_FAILURE + +      Indicates that there was authentication failure due to an +      incorrect username or password.  Based on the retry flag described +      below, peer implementations MAY prompt the user again for a new +      set of username and password or simply send back an empty +      acknowledgment packet to acknowledge the failure and go into the +      termination phase of the authentication session. + +   o  709 ERROR_CHANGING_PASSWORD + +      Indicates that the password change failed, most likely because the +      new password fails to meet the password complexity policy.  Peer +      implementations SHOULD display the error message and prompt the +      user again for the new password. + +   o  755 ERROR_PAC_I-ID_NO_MATCH + +      Indicates that the PAC used to establish the EAP-FAST session +      cannot be used to authenticate to this user account.  Based on the +      retry flag described below, peer implementations MAY prompt the +      user again for a new set of username and password or simply send +      back an empty acknowledgment packet to acknowledge the failure and +      go into the termination phase of the authentication session. + +   The "r" is a single character ASCII flag set to '1' if a retry is +   allowed, and '0' if not.  When the server sets this flag to '1', it +   disables short timeouts, expecting the peer to prompt the user for + + + +Cam-Winget & Zhou            Informational                      [Page 5] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   new credentials and to resubmit the response.  When the server sets +   this flag to '0', the peer SHOULD NOT prompt the user for new +   credentials to try again without restarting the EAP-FAST +   authentication from the beginning. + +   The <msg> is human-readable ASCII text.  Current implementations only +   support ASCII text. + +   The server failure packet can be broken into Label/Value pairs using +   the space character as the separator.  The only value that may +   contain the space character is the <msg> value, which is always the +   last value pair in the failure packet.  The peer SHOULD ignore any +   unknown label/value pair in the failure packet. + +   The error format described above is similar to what is defined in the +   Microsoft Challenge Handshake Authentication Protocol version 2 +   (MSCHAPv2) [RFC2759], except for the omission of a server challenge. +   So if the EAP-FAST server is distributing MSCHAPv2 exchanges to the +   backend inner method server, it can simply return what the backend +   inner method server returns less the server challenge.  In the case +   of connecting to a one time password or Lightweight Directory Access +   Protocol (LDAP) [RFC4511] server, the EAP-FAST server can translate +   the error message into this format.  With the addition of the retry +   count, the peer can potentially prompt the user for new credentials +   to try again without restarting the EAP-FAST authentication from the +   beginning.  The peer will respond to the error code with another EAP- +   FAST-GTC Response packet with both the new username and password, or +   in case of other unrecoverable failures, an empty EAP-FAST-GTC packet +   for acknowledgement.  The peer uses empty EAP-FAST-GTC payload as an +   acknowledgment of the unrecoverable failure. + +   If the EAP-FAST server finishes authentication for the EAP-FAST-GTC +   inner method, it will proceed to Protected Termination as described +   in [RFC4851].  In the case of an unrecoverable EAP-FAST-GTC +   authentication failure, the EAP server can send an EAP-FAST-GTC error +   code as described above, along with the Result TLV for protected +   termination.  This way, no extra round trips will occur.  The peer +   can acknowledge the EAP-FAST-GTC failure as well as the Result TLV +   within the same EAP-FAST packet.  Once the server receives the +   acknowledgement, the TLS tunnel will be torn down and a clear text +   EAP-Failure will be sent. + +   The username and password, as well as server challenges, MAY support +   non-ASCII characters.  In this case, international username, +   password, and messages are based on the use of Unicode characters, +   encoded as UTF-8 [RFC3629] and processed with a certain algorithm to + + + + + +Cam-Winget & Zhou            Informational                      [Page 6] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   ensure a canonical representation.  The username and password input +   SHOULD be processed according to Section 2.4 of [RFC4282], and the +   server challenges SHOULD be processed according to [RFC5198]. + +   Since EAP-FAST-GTC does not generate session keys, the MSKi (Master +   Session Key) used for crypto-binding for EAP-FAST will be filled with +   all zeros. + +3.  Security Considerations + +   The EAP-FAST-GTC method sends password information in the clear and +   MUST NOT be used outside of a protected tunnel providing strong +   protection, such as the one provided by EAP-FAST.  Weak encryption, +   such as 40-bit encryption or NULL cipher, MUST NOT be used.  In +   addition, the peer MUST authenticate the server before disclosing its +   credentials.  Since EAP-FAST Server-Unauthenticated Provisioning Mode +   does not authenticate the server, EAP-FAST-GTC MUST NOT be used as +   the inner method in this mode.  EAP-FAST-GTC MAY be used in EAP-FAST +   authentication and Server-Authenticated Provisioning Mode [RFC5422], +   where the server is authenticated.  Since EAP-FAST-GTC requires the +   server to have access to the actual authentication secret, it is +   RECOMMENDED to vary the stored authentication validation data by +   domain so that a compromise of a server at one location does not +   compromise others. + +3.1.  Security Claims + +   This section provides the needed security claim requirement for EAP +   [RFC3748]. + +   Auth. mechanism:         Password based. +   Ciphersuite negotiation: No.  However, such negotiation is provided +                            by EAP-FAST for the outer authentication. +   Mutual authentication:   No.  However, EAP-FAST provides server-side +                            authentication. +   Integrity protection:    No.  However, any method executed within the +                            EAP-FAST tunnel is protected. +   Replay protection:       See above. +   Confidentiality:         See above. +   Key derivation:          Keys are not generated, see Section 2. +                            However, when used inside EAP-FAST, the +                            outer method will provide keys.  See +                            [RFC4851] for the properties of those keys. +   Key strength:            See above. +   Dictionary attack prot.: No.  However, when used inside the EAP-FAST +                            tunnel, the protection provided by the TLS +                            tunnel prevents an off-line dictionary +                            attack. + + + +Cam-Winget & Zhou            Informational                      [Page 7] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   Fast reconnect:          No.  However, EAP-FAST provides a fast +                            reconnect capability that allows the reuse +                            of an earlier session authenticated by EAP- +                            FAST-GTC. +   Cryptographic binding:   No.  Given that no keys are generated, EAP- +                            FAST-GTC or its use within EAP-FAST cannot +                            provide a cryptographic assurance that no +                            binding attack has occurred.  EAP-FAST-GTC +                            is required only to run within a protected +                            tunnel, but even the use of the same +                            credentials in some other, unprotected +                            context might lead to a vulnerability.  As a +                            result, credentials used in EAP-FAST-GTC +                            SHOULD NOT be used in other unprotected +                            authentication mechanisms. +   Session independence:    No.  However, EAP-FAST provides session +                            independence. +   Fragmentation:           No.  However, EAP-FAST provides support for +                            this. +   Key Hierarchy:           Not applicable. +   Channel binding:         No, though EAP-FAST can be extended for +                            this. + +4.  IANA Considerations + +   EAP-FAST-GTC uses the assigned value of 6 (EAP-GTC) for the EAP Type +   in [RFC3748]. + +   This document defines a registry for EAP-FAST-GTC error codes when +   running inside EAP-FAST, named "EAP-FAST GTC Error Codes".  It may be +   assigned by Specification Required as defined in [RFC5226].  A +   summary of the error codes defined so far is given below: + +   o  646 ERROR_RESTRICTED_LOGON_HOURS + +   o  647 ERROR_ACCT_DISABLED + +   o  648 ERROR_PASSWD_EXPIRED + +   o  649 ERROR_NO_DIALIN_PERMISSION + +   o  691 ERROR_AUTHENTICATION_FAILURE + +   o  709 ERROR_CHANGING_PASSWORD + +   o  755 ERROR_PAC_I-ID_NO_MATCH + + + + + +Cam-Winget & Zhou            Informational                      [Page 8] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   No IANA registry will be created for Labels, as current +   implementations only support the Labels defined in this document and +   new Labels are not expected; if necessary, new Labels can be defined +   in documents updating this document. + +5.  Acknowledgments + +   The authors would like thank Joe Salowey and Amir Naftali for their +   contributions of the problem space, and Jouni Malinen, Pasi Eronen, +   Jari Arkko, and Chris Newman for reviewing this document. + +6.  References + +6.1.  Normative References + +   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate +              Requirement Levels", BCP 14, RFC 2119, March 1997. + +   [RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO +              10646", STD 63, RFC 3629, November 2003. + +   [RFC3748]  Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. +              Levkowetz, "Extensible Authentication Protocol (EAP)", +              RFC 3748, June 2004. + +   [RFC4282]  Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The +              Network Access Identifier", RFC 4282, December 2005. + +   [RFC4851]  Cam-Winget, N., McGrew, D., Salowey, J., and H. Zhou, "The +              Flexible Authentication via Secure Tunneling Extensible +              Authentication Protocol Method (EAP-FAST)", RFC 4851, +              May 2007. + +   [RFC5198]  Klensin, J. and M. Padlipsky, "Unicode Format for Network +              Interchange", RFC 5198, March 2008. + +   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an +              IANA Considerations Section in RFCs", BCP 26, RFC 5226, +              May 2008. + +6.2.  Informative References + +   [RFC2759]  Zorn, G., "Microsoft PPP CHAP Extensions, Version 2", +              RFC 2759, January 2000. + +   [RFC4511]  Sermersheim, J., "Lightweight Directory Access Protocol +              (LDAP): The Protocol", RFC 4511, June 2006. + + + + +Cam-Winget & Zhou            Informational                      [Page 9] + +RFC 5421                   EAP-FAST with GTC                  March 2009 + + +   [RFC5422]  Cam-Winget, N., McGrew, D., Salowey, J., and H. Zhou, +              "Dynamic Provisioning Using Flexible Authentication via +              Secure Tunneling Extensible Authentication Protocol (EAP- +              FAST)", RFC 5422, March 2009. + +Authors' Addresses + +   Nancy Cam-Winget +   Cisco Systems +   3625 Cisco Way +   San Jose, CA  95134 +   US + +   EMail: ncamwing@cisco.com + + +   Hao Zhou +   Cisco Systems +   4125 Highlander Parkway +   Richfield, OH  44286 +   US + +   EMail: hzhou@cisco.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Cam-Winget & Zhou            Informational                     [Page 10] + |