| rfc3748.txt | draft-arkko-emu-rfc3748bis.txt | |||
|---|---|---|---|---|
| Network Working Group B. Aboba | Network Working Group B. Aboba | |||
| Request for Comments: 3748 Microsoft | Internet-Draft Microsoft Corporation | |||
| Obsoletes: 2284 L. Blunk | Obsoletes: 3748 (if approved) L. Blunk | |||
| Category: Standards Track Merit Network, Inc | Intended status: Standards Track Merit Network, Inc | |||
| J. Vollbrecht | Expires: August 26, 2021 J. Vollbrecht | |||
| Vollbrecht Consulting LLC | Vollbrecht Consulting LLC | |||
| J. Carlson | J. Carlson | |||
| Sun | Sun Microsystems, Inc | |||
| H. Levkowetz, Ed. | H. Levkowetz | |||
| ipUnplugged | ipUnplugged AB | |||
| June 2004 | J. Arkko (Ed.) | |||
| J. Mattsson (Ed.) | ||||
| Ericsson | ||||
| February 22, 2021 | ||||
| Extensible Authentication Protocol (EAP) | Extensible Authentication Protocol (EAP) | |||
| draft-arkko-emu-rfc3748bis-00 | ||||
| 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. | ||||
| Copyright Notice | ||||
| Copyright (C) The Internet Society (2004). | ||||
| Abstract | Abstract | |||
| This document defines the Extensible Authentication Protocol (EAP), | This document defines the Extensible Authentication Protocol (EAP), | |||
| an authentication framework which supports multiple authentication | an authentication framework which supports multiple authentication | |||
| methods. EAP typically runs directly over data link layers such as | methods. EAP typically runs directly over data link layers such as | |||
| Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP | Point-to-Point Protocol (PPP), IEEE 802, or 3GPP 5G without requiring | |||
| provides its own support for duplicate elimination and | IP. EAP provides its own support for duplicate elimination and | |||
| retransmission, but is reliant on lower layer ordering guarantees. | retransmission, but is reliant on lower layer ordering guarantees. | |||
| Fragmentation is not supported within EAP itself; however, individual | Fragmentation is not supported within EAP itself; however, individual | |||
| EAP methods may support this. | EAP methods may support this. | |||
| This document obsoletes RFC 2284. A summary of the changes between | This document obsoletes RFC 3748, which in turn obsoleted RFC 2284. | |||
| this document and RFC 2284 is available in Appendix A. | This document updates some of the security considerations, terms, | |||
| references, the IANA considerations, and few other minor updates. A | ||||
| summary of the changes between this document and RFC 3748 is in | ||||
| Appendix A, and the changes from RFC 2284 were listed in RFC 3748. | ||||
| Status of This Memo | ||||
| This Internet-Draft is submitted in full conformance with the | ||||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | ||||
| 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." | ||||
| This Internet-Draft will expire on August 26, 2021. | ||||
| Copyright Notice | ||||
| Copyright (c) 2021 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 | ||||
| (http://trustee.ietf.org/license-info) in effect on the date of | ||||
| publication of this document. Please review these documents | ||||
| carefully, as they describe your rights and restrictions with respect | ||||
| to this document. Code Components extracted from this document must | ||||
| include Simplified BSD License text as described in Section 4.e of | ||||
| the Trust Legal Provisions and are provided without warranty as | ||||
| described in the Simplified BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Specification of Requirements . . . . . . . . . . . . . 4 | 1.1. Specification of Requirements . . . . . . . . . . . . . . 5 | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 1.3. Applicability . . . . . . . . . . . . . . . . . . . . . 6 | 1.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2. Extensible Authentication Protocol (EAP). . . . . . . . . . . 7 | 2. Extensible Authentication Protocol (EAP) . . . . . . . . . . 8 | |||
| 2.1. Support for Sequences . . . . . . . . . . . . . . . . . 9 | 2.1. Support for Sequences . . . . . . . . . . . . . . . . . . 10 | |||
| 2.2. EAP Multiplexing Model. . . . . . . . . . . . . . . . . 10 | 2.2. EAP Multiplexing Model . . . . . . . . . . . . . . . . . 11 | |||
| 2.3. Pass-Through Behavior . . . . . . . . . . . . . . . . . 12 | 2.3. Pass-Through Behavior . . . . . . . . . . . . . . . . . . 13 | |||
| 2.4. Peer-to-Peer Operation. . . . . . . . . . . . . . . . . 14 | 2.4. Peer-to-Peer Operation . . . . . . . . . . . . . . . . . 15 | |||
| 3. Lower Layer Behavior. . . . . . . . . . . . . . . . . . . . . 15 | 3. Lower Layer Behavior . . . . . . . . . . . . . . . . . . . . 16 | |||
| 3.1. Lower Layer Requirements. . . . . . . . . . . . . . . . 15 | 3.1. Lower Layer Requirements . . . . . . . . . . . . . . . . 16 | |||
| 3.2. EAP Usage Within PPP. . . . . . . . . . . . . . . . . . 18 | 3.2. EAP Usage Within PPP . . . . . . . . . . . . . . . . . . 19 | |||
| 3.2.1. PPP Configuration Option Format. . . . . . . . . 18 | 3.2.1. PPP Configuration Option Format . . . . . . . . . . . 19 | |||
| 3.3. EAP Usage Within IEEE 802 . . . . . . . . . . . . . . . 19 | 3.3. EAP Usage Within IEEE 802 . . . . . . . . . . . . . . . . 20 | |||
| 3.4. Lower Layer Indications . . . . . . . . . . . . . . . . 19 | 3.4. Lower Layer Indications . . . . . . . . . . . . . . . . . 20 | |||
| 4. EAP Packet Format . . . . . . . . . . . . . . . . . . . . . . 20 | 4. EAP Packet Format . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 4.1. Request and Response. . . . . . . . . . . . . . . . . . 21 | 4.1. Request and Response . . . . . . . . . . . . . . . . . . 22 | |||
| 4.2. Success and Failure . . . . . . . . . . . . . . . . . . 23 | 4.2. Success and Failure . . . . . . . . . . . . . . . . . . . 24 | |||
| 4.3. Retransmission Behavior . . . . . . . . . . . . . . . . 26 | 4.3. Retransmission Behavior . . . . . . . . . . . . . . . . . 27 | |||
| 5. Initial EAP Request/Response Types. . . . . . . . . . . . . . 27 | 5. Initial EAP Request/Response Types . . . . . . . . . . . . . 28 | |||
| 5.1. Identity. . . . . . . . . . . . . . . . . . . . . . . . 28 | 5.1. Identity . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
| 5.2. Notification. . . . . . . . . . . . . . . . . . . . . . 29 | 5.2. Notification . . . . . . . . . . . . . . . . . . . . . . 30 | |||
| 5.3. Nak . . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 5.3. Nak . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.3.1. Legacy Nak . . . . . . . . . . . . . . . . . . . 31 | 5.3.1. Legacy Nak . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 5.3.2. Expanded Nak . . . . . . . . . . . . . . . . . . 32 | 5.3.2. Expanded Nak . . . . . . . . . . . . . . . . . . . . 33 | |||
| 5.4. MD5-Challenge . . . . . . . . . . . . . . . . . . . . . 35 | 5.4. MD5-Challenge . . . . . . . . . . . . . . . . . . . . . . 36 | |||
| 5.5. One-Time Password (OTP) . . . . . . . . . . . . . . . . 36 | 5.5. One-Time Password (OTP) . . . . . . . . . . . . . . . . . 38 | |||
| 5.6. Generic Token Card (GTC). . . . . . . . . . . . . . . . 37 | 5.6. Generic Token Card (GTC) . . . . . . . . . . . . . . . . 39 | |||
| 5.7. Expanded Types. . . . . . . . . . . . . . . . . . . . . 38 | 5.7. Expanded Types . . . . . . . . . . . . . . . . . . . . . 40 | |||
| 5.8. Experimental. . . . . . . . . . . . . . . . . . . . . . 40 | 5.8. Experimental . . . . . . . . . . . . . . . . . . . . . . 42 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 | |||
| 6.1. Packet Codes. . . . . . . . . . . . . . . . . . . . . . 41 | 6.1. Packet Codes . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 6.2. Method Types. . . . . . . . . . . . . . . . . . . . . . 41 | 6.2. Method Types . . . . . . . . . . . . . . . . . . . . . . 43 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 42 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 43 | |||
| 7.1. Threat Model. . . . . . . . . . . . . . . . . . . . . . 42 | 7.1. Threat Model . . . . . . . . . . . . . . . . . . . . . . 44 | |||
| 7.2. Security Claims . . . . . . . . . . . . . . . . . . . . 43 | 7.2. Security Claims . . . . . . . . . . . . . . . . . . . . . 45 | |||
| 7.2.1. Security Claims Terminology for EAP Methods. . . 44 | 7.2.1. Security Claims Terminology for EAP Methods . . . . . 46 | |||
| 7.3. Identity Protection . . . . . . . . . . . . . . . . . . 46 | 7.3. Identity Protection . . . . . . . . . . . . . . . . . . . 48 | |||
| 7.4. Man-in-the-Middle Attacks . . . . . . . . . . . . . . . 47 | 7.4. Man-in-the-Middle Attacks . . . . . . . . . . . . . . . . 49 | |||
| 7.5. Packet Modification Attacks . . . . . . . . . . . . . . 48 | 7.5. Packet Modification Attacks . . . . . . . . . . . . . . . 50 | |||
| 7.6. Dictionary Attacks. . . . . . . . . . . . . . . . . . . 49 | 7.6. Dictionary Attacks . . . . . . . . . . . . . . . . . . . 51 | |||
| 7.7. Connection to an Untrusted Network. . . . . . . . . . . 49 | 7.7. Connection to an Untrusted Network . . . . . . . . . . . 51 | |||
| 7.8. Negotiation Attacks . . . . . . . . . . . . . . . . . . 50 | 7.8. Negotiation Attacks . . . . . . . . . . . . . . . . . . . 52 | |||
| 7.9. Implementation Idiosyncrasies . . . . . . . . . . . . . 50 | 7.9. Implementation Idiosyncrasies . . . . . . . . . . . . . . 52 | |||
| 7.10. Key Derivation. . . . . . . . . . . . . . . . . . . . . 51 | 7.10. Key Derivation . . . . . . . . . . . . . . . . . . . . . 53 | |||
| 7.11. Weak Ciphersuites . . . . . . . . . . . . . . . . . . . 53 | 7.11. Weak Ciphersuites . . . . . . . . . . . . . . . . . . . . 55 | |||
| 7.12. Link Layer. . . . . . . . . . . . . . . . . . . . . . . 53 | 7.11.1. Legacy Authentication Methods . . . . . . . . . . . 55 | |||
| 7.13. Separation of Authenticator and Backend Authentication | 7.12. Link Layer . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| Server. . . . . . . . . . . . . . . . . . . . . . . . . 54 | 7.13. Separation of Authenticator and Backend Authentication | |||
| 7.14. Cleartext Passwords . . . . . . . . . . . . . . . . . . 55 | Server . . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 7.15. Channel Binding . . . . . . . . . . . . . . . . . . . . 55 | 7.14. Cleartext Passwords . . . . . . . . . . . . . . . . . . . 57 | |||
| 7.16. Protected Result Indications. . . . . . . . . . . . . . 56 | 7.15. Channel Binding . . . . . . . . . . . . . . . . . . . . . 58 | |||
| 8. Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . 58 | 7.16. Protected Result Indications . . . . . . . . . . . . . . 58 | |||
| 9. References. . . . . . . . . . . . . . . . . . . . . . . . . . 59 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 61 | |||
| 9.1. Normative References. . . . . . . . . . . . . . . . . . 59 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 61 | |||
| 9.2. Informative References. . . . . . . . . . . . . . . . . 60 | 8.2. Informative References . . . . . . . . . . . . . . . . . 62 | |||
| Appendix A. Changes from RFC 2284. . . . . . . . . . . . . . . . . 64 | Appendix A. Changes from RFC 3748 . . . . . . . . . . . . . . . 68 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 66 | Appendix B. Rationale . . . . . . . . . . . . . . . . . . . . . 69 | |||
| Full Copyright Statement . . . . . . . . . . . . . . . . . . . . . 67 | Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 70 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 71 | ||||
| 1. Introduction | 1. Introduction | |||
| This document defines the Extensible Authentication Protocol (EAP), | This document defines the Extensible Authentication Protocol (EAP), | |||
| an authentication framework which supports multiple authentication | an authentication framework which supports multiple authentication | |||
| methods. EAP typically runs directly over data link layers such as | methods. EAP typically runs directly over data link layers such as | |||
| Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP. EAP | Point-to-Point Protocol (PPP),IEEE 802, or 3GPP 5G without requiring | |||
| provides its own support for duplicate elimination and | IP. EAP provides its own support for duplicate elimination and | |||
| retransmission, but is reliant on lower layer ordering guarantees. | retransmission, but is reliant on lower layer ordering guarantees. | |||
| Fragmentation is not supported within EAP itself; however, individual | Fragmentation is not supported within EAP itself; however, individual | |||
| EAP methods may support this. | EAP methods may support this. | |||
| EAP may be used on dedicated links, as well as switched circuits, and | EAP may be used on dedicated links, as well as switched circuits, and | |||
| wired as well as wireless links. To date, EAP has been implemented | wired as well as wireless links. To date, EAP has been implemented | |||
| with hosts and routers that connect via switched circuits or dial-up | with hosts and routers that connect via switched circuits or dial-up | |||
| lines using PPP [RFC1661]. It has also been implemented with | lines using PPP [RFC1661]. It has also been implemented with | |||
| switches and access points using IEEE 802 [IEEE-802]. EAP | switches and access points using IEEE 802 [IEEE-802]. EAP | |||
| encapsulation on IEEE 802 wired media is described in [IEEE-802.1X], | encapsulation on IEEE 802 wired media is described in [IEEE-802.1X], | |||
| and encapsulation on IEEE wireless LANs in [IEEE-802.11i]. | and encapsulation on IEEE wireless LANs in [IEEE-802.11i]. EAP can | |||
| be used for authentication in all types of accesses in 3GPP 5G | ||||
| [TS.33.501]. | ||||
| One of the advantages of the EAP architecture is its flexibility. | One of the advantages of the EAP architecture is its flexibility. | |||
| EAP is used to select a specific authentication mechanism, typically | EAP is used to select a specific authentication mechanism, typically | |||
| after the authenticator requests more information in order to | after the authenticator requests more information in order to | |||
| determine the specific authentication method to be used. Rather than | determine the specific authentication method to be used. Rather than | |||
| requiring the authenticator to be updated to support each new | requiring the authenticator to be updated to support each new | |||
| authentication method, EAP permits the use of a backend | authentication method, EAP permits the use of a backend | |||
| authentication server, which may implement some or all authentication | authentication server, which may implement some or all authentication | |||
| methods, with the authenticator acting as a pass-through for some or | methods, with the authenticator acting as a pass-through for some or | |||
| all methods and peers. | all methods and peers. | |||
| Within this document, authenticator requirements apply regardless of | Within this document, authenticator requirements apply regardless of | |||
| whether the authenticator is operating as a pass-through or not. | whether the authenticator is operating as a pass-through or not. | |||
| Where the requirement is meant to apply to either the authenticator | Where the requirement is meant to apply to either the authenticator | |||
| or backend authentication server, depending on where the EAP | or backend authentication server, depending on where the EAP | |||
| authentication is terminated, the term "EAP server" will be used. | authentication is terminated, the term "EAP server" will be used. | |||
| Other aspects of the EAP framework are discussed in companion | ||||
| documents, [RFC4137] discusses a possible state machine, [RFC5113] | ||||
| defines the network discovery and selection problem, [RFC5247] | ||||
| specifies the EAP key hierarchy, [RFC6677] and [RFC7029] explores | ||||
| man-in-the-middle attacks as well as defining how to implement | ||||
| channel bindings. | ||||
| While the authors believe that the update from RFC 3748 is useful, it | ||||
| is by no means something that absolute has to be done, but has been | ||||
| provided for the community's consideration as part of an overall | ||||
| interest in maintaining the technology and its documentation. If we | ||||
| care about a technology we should keep it up to date. The authors | ||||
| believe that it is preferable to have ongoing maintenance that | ||||
| addresses issues when they are identified, rather than waiting for a | ||||
| larger but more infrequent update. The specific changes are | ||||
| discussed in Appendix A, and the rationale for the terminology- | ||||
| related parts of the change is discussed in more detail in | ||||
| Appendix B. | ||||
| This update proposal is brought forward for discussion. Discussion | ||||
| may find that the update is considered useful or unnecessary, or | ||||
| perhaps even a distracton or flawed in some of its definitions. All | ||||
| feedback is welcome! | ||||
| 1.1. Specification of Requirements | 1.1. Specification of Requirements | |||
| In this document, several words are used to signify the requirements | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| of the specification. The key words "MUST", "MUST NOT", "REQUIRED", | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| and "OPTIONAL" in this document are to be interpreted as described in | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| [RFC2119]. | capitals, as shown here. | |||
| 1.2. Terminology | 1.2. Terminology | |||
| This document frequently uses the following terms: | This document frequently uses the following terms: | |||
| authenticator | authenticator | |||
| The end of the link initiating EAP authentication. The term | The end of the link initiating EAP authentication. The term | |||
| authenticator is used in [IEEE-802.1X], and has the same meaning | authenticator is used in [IEEE-802.1X], and has the same meaning | |||
| in this document. | in this document. | |||
| peer | peer | |||
| The end of the link that responds to the authenticator. In | The end of the link that responds to the authenticator. In | |||
| [IEEE-802.1X], this end is known as the Supplicant. | [IEEE-802.1X], this end is known as the Supplicant. | |||
| Supplicant | Supplicant | |||
| The end of the link that responds to the authenticator in [IEEE- | ||||
| 802.1X]. In this document, this end of the link is called the | The end of the link that responds to the authenticator in | |||
| peer. | [IEEE-802.1X]. In this document, this end of the link is called | |||
| the peer. | ||||
| backend authentication server | backend authentication server | |||
| A backend authentication server is an entity that provides an | A backend authentication server is an entity that provides an | |||
| authentication service to an authenticator. When used, this | authentication service to an authenticator. When used, this | |||
| server typically executes EAP methods for the authenticator. This | server typically executes EAP methods for the authenticator. This | |||
| terminology is also used in [IEEE-802.1X]. | terminology is also used in [IEEE-802.1X]. | |||
| AAA | AAA | |||
| Authentication, Authorization, and Accounting. AAA protocols with | Authentication, Authorization, and Accounting. AAA protocols with | |||
| EAP support include RADIUS [RFC3579] and Diameter [DIAM-EAP]. In | EAP support include RADIUS [RFC3579] and Diameter [RFC4072]. In | |||
| this document, the terms "AAA server" and "backend authentication | this document, the terms "AAA server" and "backend authentication | |||
| server" are used interchangeably. | server" are used interchangeably. | |||
| Displayable Message | Displayable Message | |||
| This is interpreted to be a human readable string of characters. | This is interpreted to be a human readable string of characters. | |||
| The message encoding MUST follow the UTF-8 transformation format | The message encoding MUST follow the UTF-8 transformation format | |||
| [RFC2279]. | [RFC3629]. | |||
| EAP server | EAP server | |||
| The entity that terminates the EAP authentication method with the | The entity that terminates the EAP authentication method with the | |||
| peer. In the case where no backend authentication server is used, | peer. In the case where no backend authentication server is used, | |||
| the EAP server is part of the authenticator. In the case where | the EAP server is part of the authenticator. In the case where | |||
| the authenticator operates in pass-through mode, the EAP server is | the authenticator operates in pass-through mode, the EAP server is | |||
| located on the backend authentication server. | located on the backend authentication server. | |||
| Silently Discard | Silently Discard | |||
| This means the implementation discards the packet without further | This means the implementation discards the packet without further | |||
| processing. The implementation SHOULD provide the capability of | processing. The implementation SHOULD provide the capability of | |||
| logging the event, including the contents of the silently | logging the event, including the contents of the silently | |||
| discarded packet, and SHOULD record the event in a statistics | discarded packet, and SHOULD record the event in a statistics | |||
| counter. | counter. | |||
| Successful Authentication | Successful Authentication | |||
| In the context of this document, "successful authentication" is an | In the context of this document, "successful authentication" is an | |||
| exchange of EAP messages, as a result of which the authenticator | exchange of EAP messages, as a result of which the authenticator | |||
| decides to allow access by the peer, and the peer decides to use | decides to allow access by the peer, and the peer decides to use | |||
| this access. The authenticator's decision typically involves both | this access. The authenticator's decision typically involves both | |||
| authentication and authorization aspects; the peer may | authentication and authorization aspects; the peer may | |||
| successfully authenticate to the authenticator, but access may be | successfully authenticate to the authenticator, but access may be | |||
| denied by the authenticator due to policy reasons. | denied by the authenticator due to policy reasons. | |||
| Message Integrity Check (MIC) | Message Integrity Check (MIC) | |||
| A keyed hash function used for authentication and integrity | A keyed hash function used for authentication and integrity | |||
| protection of data. This is usually called a Message | protection of data. This is usually called a Message | |||
| Authentication Code (MAC), but IEEE 802 specifications (and this | Authentication Code (MAC), but IEEE 802 specifications (and this | |||
| document) use the acronym MIC to avoid confusion with Medium | document) use the acronym MIC to avoid confusion with Medium | |||
| Access Control. | Access Control. | |||
| Cryptographic Separation | Cryptographic Separation | |||
| Two keys (x and y) are "cryptographically separate" if an | Two keys (x and y) are "cryptographically separate" if an | |||
| adversary that knows all messages exchanged in the protocol cannot | adversary that knows all messages exchanged in the protocol cannot | |||
| compute x from y or y from x without "breaking" some cryptographic | compute x from y or y from x without "breaking" some cryptographic | |||
| assumption. In particular, this definition allows that the | assumption. In particular, this definition allows that the | |||
| adversary has the knowledge of all nonces sent in cleartext, as | adversary has the knowledge of all nonces sent in cleartext, as | |||
| well as all predictable counter values used in the protocol. | well as all predictable counter values used in the protocol. | |||
| Breaking a cryptographic assumption would typically require | Breaking a cryptographic assumption would typically require | |||
| inverting a one-way function or predicting the outcome of a | inverting a one-way function or predicting the outcome of a | |||
| cryptographic pseudo-random number generator without knowledge of | cryptographic pseudo-random number generator without knowledge of | |||
| the secret state. In other words, if the keys are | the secret state. In other words, if the keys are | |||
| skipping to change at page 6, line 5 | skipping to change at page 7, line 7 | |||
| well as all predictable counter values used in the protocol. | well as all predictable counter values used in the protocol. | |||
| Breaking a cryptographic assumption would typically require | Breaking a cryptographic assumption would typically require | |||
| inverting a one-way function or predicting the outcome of a | inverting a one-way function or predicting the outcome of a | |||
| cryptographic pseudo-random number generator without knowledge of | cryptographic pseudo-random number generator without knowledge of | |||
| the secret state. In other words, if the keys are | the secret state. In other words, if the keys are | |||
| cryptographically separate, there is no shortcut to compute x from | cryptographically separate, there is no shortcut to compute x from | |||
| y or y from x, but the work an adversary must do to perform this | y or y from x, but the work an adversary must do to perform this | |||
| computation is equivalent to performing an exhaustive search for | computation is equivalent to performing an exhaustive search for | |||
| the secret state value. | the secret state value. | |||
| Master Session Key (MSK) | Main Session Key (MSK) | |||
| Keying material that is derived between the EAP peer and server | Keying material that is derived between the EAP peer and server | |||
| and exported by the EAP method. The MSK is at least 64 octets in | and exported by the EAP method. The MSK is at least 64 octets in | |||
| length. In existing implementations, a AAA server acting as an | length. In existing implementations, a AAA server acting as an | |||
| EAP server transports the MSK to the authenticator. | EAP server transports the MSK to the authenticator. | |||
| Extended Master Session Key (EMSK) | Extended Main Session Key (EMSK) | |||
| Additional keying material derived between the EAP client and | Additional keying material derived between the EAP client and | |||
| server that is exported by the EAP method. The EMSK is at least | server that is exported by the EAP method. The EMSK is at least | |||
| 64 octets in length. The EMSK is not shared with the | 64 octets in length. The EMSK is not shared with the | |||
| authenticator or any other third party. The EMSK is reserved for | authenticator or any other third party. The EMSK is reserved for | |||
| future uses that are not defined yet. | future uses that are not defined yet. | |||
| Result indications | Result indications | |||
| A method provides result indications if after the method's last | A method provides result indications if after the method's last | |||
| message is sent and received: | message is sent and received: | |||
| 1) The peer is aware of whether it has authenticated the server, | 1. The peer is aware of whether it has authenticated the server, | |||
| as well as whether the server has authenticated it. | as well as whether the server has authenticated it. | |||
| 2) The server is aware of whether it has authenticated the peer, | 2. The server is aware of whether it has authenticated the peer, | |||
| as well as whether the peer has authenticated it. | as well as whether the peer has authenticated it. | |||
| In the case where successful authentication is sufficient to | In the case where successful authentication is sufficient to | |||
| authorize access, then the peer and authenticator will also know if | authorize access, then the peer and authenticator will also know if | |||
| the other party is willing to provide or accept access. This may not | the other party is willing to provide or accept access. This may not | |||
| always be the case. An authenticated peer may be denied access due | always be the case. An authenticated peer may be denied access due | |||
| to lack of authorization (e.g., session limit) or other reasons. | to lack of authorization (e.g., session limit) or other reasons. | |||
| Since the EAP exchange is run between the peer and the server, other | Since the EAP exchange is run between the peer and the server, other | |||
| nodes (such as AAA proxies) may also affect the authorization | nodes (such as AAA proxies) may also affect the authorization | |||
| decision. This is discussed in more detail in Section 7.16. | decision. This is discussed in more detail in Section 7.16. | |||
| skipping to change at page 6, line 49 | skipping to change at page 8, line 7 | |||
| EAP was designed for use in network access authentication, where IP | EAP was designed for use in network access authentication, where IP | |||
| layer connectivity may not be available. Use of EAP for other | layer connectivity may not be available. Use of EAP for other | |||
| purposes, such as bulk data transport, is NOT RECOMMENDED. | purposes, such as bulk data transport, is NOT RECOMMENDED. | |||
| Since EAP does not require IP connectivity, it provides just enough | Since EAP does not require IP connectivity, it provides just enough | |||
| support for the reliable transport of authentication protocols, and | support for the reliable transport of authentication protocols, and | |||
| no more. | no more. | |||
| EAP is a lock-step protocol which only supports a single packet in | EAP is a lock-step protocol which only supports a single packet in | |||
| flight. As a result, EAP cannot efficiently transport bulk data, | flight. As a result, EAP cannot efficiently transport bulk data, | |||
| unlike transport protocols such as TCP [RFC793] or SCTP [RFC2960]. | unlike transport protocols such as TCP [RFC0793] or SCTP [RFC4960]. | |||
| While EAP provides support for retransmission, it assumes ordering | While EAP provides support for retransmission, it assumes ordering | |||
| guarantees provided by the lower layer, so out of order reception is | guarantees provided by the lower layer, so out of order reception is | |||
| not supported. | not supported. | |||
| Since EAP does not support fragmentation and reassembly, EAP | Since EAP does not support fragmentation and reassembly, EAP | |||
| authentication methods generating payloads larger than the minimum | authentication methods generating payloads larger than the minimum | |||
| EAP MTU need to provide fragmentation support. | EAP MTU need to provide fragmentation support. | |||
| While authentication methods such as EAP-TLS [RFC2716] provide | While authentication methods such as EAP-TLS | |||
| support for fragmentation and reassembly, the EAP methods defined in | [RFC5216][I-D.ietf-emu-eap-tls13] provide support for fragmentation | |||
| this document do not. As a result, if the EAP packet size exceeds | and reassembly, the EAP methods defined in this document do not. As | |||
| the EAP MTU of the link, these methods will encounter difficulties. | a result, if the EAP packet size exceeds the EAP MTU of the link, | |||
| these methods will encounter difficulties. | ||||
| EAP authentication is initiated by the server (authenticator), | EAP authentication is initiated by the server (authenticator), | |||
| whereas many authentication protocols are initiated by the client | whereas many authentication protocols are initiated by the client | |||
| (peer). As a result, it may be necessary for an authentication | (peer). As a result, it may be necessary for an authentication | |||
| algorithm to add one or two additional messages (at most one | algorithm to add one or two additional messages (at most one | |||
| roundtrip) in order to run over EAP. | roundtrip) in order to run over EAP. | |||
| Where certificate-based authentication is supported, the number of | Where certificate-based authentication is supported, the number of | |||
| additional roundtrips may be much larger due to fragmentation of | additional roundtrips may be much larger due to fragmentation of | |||
| certificate chains. In general, a fragmented EAP packet will require | certificate chains. In general, a fragmented EAP packet will require | |||
| skipping to change at page 7, line 42 | skipping to change at page 8, line 47 | |||
| experienced, or where the connection between the authenticator and | experienced, or where the connection between the authenticator and | |||
| authentication server experiences significant packet loss, EAP | authentication server experiences significant packet loss, EAP | |||
| methods requiring many round-trips can experience difficulties. In | methods requiring many round-trips can experience difficulties. In | |||
| these situations, use of EAP methods with fewer roundtrips is | these situations, use of EAP methods with fewer roundtrips is | |||
| advisable. | advisable. | |||
| 2. Extensible Authentication Protocol (EAP) | 2. Extensible Authentication Protocol (EAP) | |||
| The EAP authentication exchange proceeds as follows: | The EAP authentication exchange proceeds as follows: | |||
| [1] The authenticator sends a Request to authenticate the peer. The | 1. The authenticator sends a Request to authenticate the peer. The | |||
| Request has a Type field to indicate what is being requested. | Request has a Type field to indicate what is being requested. | |||
| Examples of Request Types include Identity, MD5-challenge, etc. | Examples of Request Types include Identity, MD5-challenge, etc. | |||
| The MD5-challenge Type corresponds closely to the CHAP | The MD5-challenge Type corresponds closely to the CHAP | |||
| authentication protocol [RFC1994]. Typically, the authenticator | authentication protocol [RFC1994]. Typically, the authenticator | |||
| will send an initial Identity Request; however, an initial | will send an initial Identity Request; however, an initial | |||
| Identity Request is not required, and MAY be bypassed. For | Identity Request is not required, and MAY be bypassed. For | |||
| example, the identity may not be required where it is determined | example, the identity may not be required where it is determined | |||
| by the port to which the peer has connected (leased lines, | by the port to which the peer has connected (leased lines, | |||
| dedicated switch or dial-up ports), or where the identity is | dedicated switch or dial-up ports), or where the identity is | |||
| obtained in another fashion (via calling station identity or MAC | obtained in another fashion (via calling station identity or MAC | |||
| address, in the Name field of the MD5-Challenge Response, etc.). | address, in the Name field of the MD5-Challenge Response, etc.). | |||
| [2] The peer sends a Response packet in reply to a valid Request. As | 2. The peer sends a Response packet in reply to a valid Request. As | |||
| with the Request packet, the Response packet contains a Type | with the Request packet, the Response packet contains a Type | |||
| field, which corresponds to the Type field of the Request. | field, which corresponds to the Type field of the Request. | |||
| [3] The authenticator sends an additional Request packet, and the | 3. The authenticator sends an additional Request packet, and the | |||
| peer replies with a Response. The sequence of Requests and | peer replies with a Response. The sequence of Requests and | |||
| Responses continues as long as needed. EAP is a 'lock step' | Responses continues as long as needed. EAP is a 'lock step' | |||
| protocol, so that other than the initial Request, a new Request | protocol, so that other than the initial Request, a new Request | |||
| cannot be sent prior to receiving a valid Response. The | cannot be sent prior to receiving a valid Response. The | |||
| authenticator is responsible for retransmitting requests as | authenticator is responsible for retransmitting requests as | |||
| described in Section 4.1. After a suitable number of | described in Section 4.1. After a suitable number of | |||
| retransmissions, the authenticator SHOULD end the EAP | retransmissions, the authenticator SHOULD end the EAP | |||
| conversation. The authenticator MUST NOT send a Success or | conversation. The authenticator MUST NOT send a Success or | |||
| Failure packet when retransmitting or when it fails to get a | Failure packet when retransmitting or when it fails to get a | |||
| response from the peer. | response from the peer. | |||
| [4] The conversation continues until the authenticator cannot | 4. The conversation continues until the authenticator cannot | |||
| authenticate the peer (unacceptable Responses to one or more | authenticate the peer (unacceptable Responses to one or more | |||
| Requests), in which case the authenticator implementation MUST | Requests), in which case the authenticator implementation MUST | |||
| transmit an EAP Failure (Code 4). Alternatively, the | transmit an EAP Failure (Code 4). Alternatively, the | |||
| authentication conversation can continue until the authenticator | authentication conversation can continue until the authenticator | |||
| determines that successful authentication has occurred, in which | determines that successful authentication has occurred, in which | |||
| case the authenticator MUST transmit an EAP Success (Code 3). | case the authenticator MUST transmit an EAP Success (Code 3). | |||
| Advantages: | Advantages: | |||
| o The EAP protocol can support multiple authentication mechanisms | o The EAP protocol can support multiple authentication mechanisms | |||
| skipping to change at page 10, line 13 | skipping to change at page 11, line 12 | |||
| "tunneled" method can reply to the initial EAP-Request with a Nak | "tunneled" method can reply to the initial EAP-Request with a Nak | |||
| (legacy or expanded). To address security vulnerabilities, | (legacy or expanded). To address security vulnerabilities, | |||
| "tunneled" methods MUST support protection against man-in-the-middle | "tunneled" methods MUST support protection against man-in-the-middle | |||
| attacks. | attacks. | |||
| 2.2. EAP Multiplexing Model | 2.2. EAP Multiplexing Model | |||
| Conceptually, EAP implementations consist of the following | Conceptually, EAP implementations consist of the following | |||
| components: | components: | |||
| [a] Lower layer. The lower layer is responsible for transmitting and | 1. Lower layer. The lower layer is responsible for transmitting and | |||
| receiving EAP frames between the peer and authenticator. EAP has | receiving EAP frames between the peer and authenticator. EAP has | |||
| been run over a variety of lower layers including PPP, wired IEEE | been run over a variety of lower layers including PPP, wired IEEE | |||
| 802 LANs [IEEE-802.1X], IEEE 802.11 wireless LANs [IEEE-802.11], | 802 LANs [IEEE-802.1X], IEEE 802.11 wireless LANs [IEEE-802.11], | |||
| UDP (L2TP [RFC2661] and IKEv2 [IKEv2]), and TCP [PIC]. Lower | UDP (L2TP [RFC2661] and IKEv2 [RFC7296]), TCP | |||
| layer behavior is discussed in Section 3. | [I-D.ietf-ipsra-pic], and 3GPP 5G [TS.33.501]. Lower layer | |||
| behavior is discussed in Section 3. | ||||
| [b] EAP layer. The EAP layer receives and transmits EAP packets via | 2. EAP layer. The EAP layer receives and transmits EAP packets via | |||
| the lower layer, implements duplicate detection and | the lower layer, implements duplicate detection and | |||
| retransmission, and delivers and receives EAP messages to and | retransmission, and delivers and receives EAP messages to and | |||
| from the EAP peer and authenticator layers. | from the EAP peer and authenticator layers. | |||
| [c] EAP peer and authenticator layers. Based on the Code field, the | 3. EAP peer and authenticator layers. Based on the Code field, the | |||
| EAP layer demultiplexes incoming EAP packets to the EAP peer and | EAP layer demultiplexes incoming EAP packets to the EAP peer and | |||
| authenticator layers. Typically, an EAP implementation on a | authenticator layers. Typically, an EAP implementation on a | |||
| given host will support either peer or authenticator | given host will support either peer or authenticator | |||
| functionality, but it is possible for a host to act as both an | functionality, but it is possible for a host to act as both an | |||
| EAP peer and authenticator. In such an implementation both EAP | EAP peer and authenticator. In such an implementation both EAP | |||
| peer and authenticator layers will be present. | peer and authenticator layers will be present. | |||
| [d] EAP method layers. EAP methods implement the authentication | 4. EAP method layers. EAP methods implement the authentication | |||
| algorithms and receive and transmit EAP messages via the EAP peer | algorithms and receive and transmit EAP messages via the EAP peer | |||
| and authenticator layers. Since fragmentation support is not | and authenticator layers. Since fragmentation support is not | |||
| provided by EAP itself, this is the responsibility of EAP | provided by EAP itself, this is the responsibility of EAP | |||
| methods, which are discussed in Section 5. | methods, which are discussed in Section 5. | |||
| The EAP multiplexing model is illustrated in Figure 1 below. Note | The EAP multiplexing model is illustrated in Figure 1 below. Note | |||
| that there is no requirement that an implementation conform to this | that there is no requirement that an implementation conform to this | |||
| model, as long as the on-the-wire behavior is consistent with it. | model, as long as the on-the-wire behavior is consistent with it. | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 11, line 27 | skipping to change at page 12, line 27 | |||
| | ! | | ! | | | ! | | ! | | |||
| +-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+ | +-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+ | |||
| | ! | | ! | | | ! | | ! | | |||
| | Lower ! layer | | Lower ! layer | | | Lower ! layer | | Lower ! layer | | |||
| | ! | | ! | | | ! | | ! | | |||
| +-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+ | +-+-+-+-!-+-+-+-+-+-+-+-+ +-+-+-+-!-+-+-+-+-+-+-+-+ | |||
| ! ! | ! ! | |||
| ! Peer ! Authenticator | ! Peer ! Authenticator | |||
| +------------>-------------+ | +------------>-------------+ | |||
| Figure 1: EAP Multiplexing Model | Figure 1: EAP Multiplexing Model | |||
| Within EAP, the Code field functions much like a protocol number in | Within EAP, the Code field functions much like a protocol number in | |||
| IP. It is assumed that the EAP layer demultiplexes incoming EAP | IP. It is assumed that the EAP layer demultiplexes incoming EAP | |||
| packets according to the Code field. Received EAP packets with | packets according to the Code field. Received EAP packets with | |||
| Code=1 (Request), 3 (Success), and 4 (Failure) are delivered by the | Code=1 (Request), 3 (Success), and 4 (Failure) are delivered by the | |||
| EAP layer to the EAP peer layer, if implemented. EAP packets with | EAP layer to the EAP peer layer, if implemented. EAP packets with | |||
| Code=2 (Response) are delivered to the EAP authenticator layer, if | Code=2 (Response) are delivered to the EAP authenticator layer, if | |||
| implemented. | implemented. | |||
| Within EAP, the Type field functions much like a port number in UDP | Within EAP, the Type field functions much like a port number in UDP | |||
| skipping to change at page 12, line 40 | skipping to change at page 13, line 37 | |||
| described in Section 4.1. It forwards EAP packets received from the | described in Section 4.1. It forwards EAP packets received from the | |||
| peer and destined to its authenticator layer to the backend | peer and destined to its authenticator layer to the backend | |||
| authentication server; packets received from the backend | authentication server; packets received from the backend | |||
| authentication server destined to the peer are forwarded to it. | authentication server destined to the peer are forwarded to it. | |||
| A host receiving an EAP packet may only do one of three things with | A host receiving an EAP packet may only do one of three things with | |||
| it: act on it, drop it, or forward it. The forwarding decision is | it: act on it, drop it, or forward it. The forwarding decision is | |||
| typically based only on examination of the Code, Identifier, and | typically based only on examination of the Code, Identifier, and | |||
| Length fields. A pass-through authenticator implementation MUST be | Length fields. A pass-through authenticator implementation MUST be | |||
| capable of forwarding EAP packets received from the peer with Code=2 | capable of forwarding EAP packets received from the peer with Code=2 | |||
| (Response) to the backend authentication server. It also MUST be | (Response) to the backend authentication server. It also MUST be | |||
| capable of receiving EAP packets from the backend authentication | capable of receiving EAP packets from the backend authentication | |||
| server and forwarding EAP packets of Code=1 (Request), Code=3 | server and forwarding EAP packets of Code=1 (Request), Code=3 | |||
| (Success), and Code=4 (Failure) to the peer. | (Success), and Code=4 (Failure) to the peer. | |||
| Unless the authenticator implements one or more authentication | Unless the authenticator implements one or more authentication | |||
| methods locally which support the authenticator role, the EAP method | methods locally which support the authenticator role, the EAP method | |||
| layer header fields (Type, Type-Data) are not examined as part of the | layer header fields (Type, Type-Data) are not examined as part of the | |||
| forwarding decision. Where the authenticator supports local | forwarding decision. Where the authenticator supports local | |||
| authentication methods, it MAY examine the Type field to determine | authentication methods, it MAY examine the Type field to determine | |||
| whether to act on the packet itself or forward it. Compliant pass- | whether to act on the packet itself or forward it. Compliant pass- | |||
| skipping to change at page 13, line 14 | skipping to change at page 14, line 14 | |||
| EAP packets received with Code=1 (Request), Code=3 (Success), and | EAP packets received with Code=1 (Request), Code=3 (Success), and | |||
| Code=4 (Failure) are demultiplexed by the EAP layer and delivered to | Code=4 (Failure) are demultiplexed by the EAP layer and delivered to | |||
| the peer layer. Therefore, unless a host implements an EAP peer | the peer layer. Therefore, unless a host implements an EAP peer | |||
| layer, these packets will be silently discarded. Similarly, EAP | layer, these packets will be silently discarded. Similarly, EAP | |||
| packets received with Code=2 (Response) are demultiplexed by the EAP | packets received with Code=2 (Response) are demultiplexed by the EAP | |||
| layer and delivered to the authenticator layer. Therefore, unless a | layer and delivered to the authenticator layer. Therefore, unless a | |||
| host implements an EAP authenticator layer, these packets will be | host implements an EAP authenticator layer, these packets will be | |||
| silently discarded. The behavior of a "pass-through peer" is | silently discarded. The behavior of a "pass-through peer" is | |||
| undefined within this specification, and is unsupported by AAA | undefined within this specification, and is unsupported by AAA | |||
| protocols such as RADIUS [RFC3579] and Diameter [DIAM-EAP]. | protocols such as RADIUS [RFC3579] and Diameter [RFC4072]. | |||
| The forwarding model is illustrated in Figure 2. | The forwarding model is illustrated in Figure 2. | |||
| Peer Pass-through Authenticator Authentication | Peer Pass-through Authenticator Authentication | |||
| Server | Server | |||
| +-+-+-+-+-+-+ +-+-+-+-+-+-+ | +-+-+-+-+-+-+ +-+-+-+-+-+-+ | |||
| | | | | | | | | | | |||
| |EAP method | |EAP method | | |EAP method | |EAP method | | |||
| | V | | ^ | | | V | | ^ | | |||
| skipping to change at page 14, line 23 | skipping to change at page 15, line 23 | |||
| must support both authenticator and peer functionality. | must support both authenticator and peer functionality. | |||
| Although EAP supports peer-to-peer operation, some EAP | Although EAP supports peer-to-peer operation, some EAP | |||
| implementations, methods, AAA protocols, and link layers may not | implementations, methods, AAA protocols, and link layers may not | |||
| support this. Some EAP methods may support asymmetric | support this. Some EAP methods may support asymmetric | |||
| authentication, with one type of credential being required for the | authentication, with one type of credential being required for the | |||
| peer and another type for the authenticator. Hosts supporting peer- | peer and another type for the authenticator. Hosts supporting peer- | |||
| to-peer operation with such a method would need to be provisioned | to-peer operation with such a method would need to be provisioned | |||
| with both types of credentials. | with both types of credentials. | |||
| For example, EAP-TLS [RFC2716] is a client-server protocol in which | For example, EAP-TLS [RFC5216][I-D.ietf-emu-eap-tls13] is a client- | |||
| distinct certificate profiles are typically utilized for the client | server protocol in which distinct certificate profiles are typically | |||
| and server. This implies that a host supporting peer-to-peer | utilized for the client and server. This implies that a host | |||
| authentication with EAP-TLS would need to implement both the EAP peer | supporting peer-to-peer authentication with EAP-TLS would need to | |||
| and authenticator layers, support both peer and authenticator roles | implement both the EAP peer and authenticator layers, support both | |||
| in the EAP-TLS implementation, and provision certificates appropriate | peer and authenticator roles in the EAP-TLS implementation, and | |||
| for each role. | provision certificates appropriate for each role. | |||
| AAA protocols such as RADIUS/EAP [RFC3579] and Diameter EAP [DIAM- | AAA protocols such as RADIUS/EAP [RFC3579] and Diameter EAP [RFC4072] | |||
| EAP] only support "pass-through authenticator" operation. As noted | only support "pass-through authenticator" operation. As noted in | |||
| in [RFC3579] Section 2.6.2, a RADIUS server responds to an Access- | [RFC3579] Section 2.6.2, a RADIUS server responds to an Access- | |||
| Request encapsulating an EAP-Request, Success, or Failure packet with | Request encapsulating an EAP-Request, Success, or Failure packet with | |||
| an Access-Reject. There is therefore no support for "pass-through | an Access-Reject. There is therefore no support for "pass-through | |||
| peer" operation. | peer" operation. | |||
| Even where a method is used which supports mutual authentication and | Even where a method is used which supports mutual authentication and | |||
| result indications, several considerations may dictate that two EAP | result indications, several considerations may dictate that two EAP | |||
| authentications (one in each direction) are required. These include: | authentications (one in each direction) are required. These include: | |||
| [1] Support for bi-directional session key derivation in the lower | 1. Support for bi-directional session key derivation in the lower | |||
| layer. Lower layers such as IEEE 802.11 may only support uni- | layer. Lower layers such as IEEE 802.11 may only support uni- | |||
| directional derivation and transport of transient session keys. | directional derivation and transport of transient session keys. | |||
| For example, the group-key handshake defined in [IEEE-802.11i] is | For example, the group-key handshake defined in [IEEE-802.11i] is | |||
| uni-directional, since in IEEE 802.11 infrastructure mode, only | uni-directional, since in IEEE 802.11 infrastructure mode, only | |||
| the Access Point (AP) sends multicast/broadcast traffic. In IEEE | the Access Point (AP) sends multicast/broadcast traffic. In IEEE | |||
| 802.11 ad hoc mode, where either peer may send | 802.11 ad hoc mode, where either peer may send multicast/ | |||
| multicast/broadcast traffic, two uni-directional group-key | broadcast traffic, two uni-directional group-key exchanges are | |||
| exchanges are required. Due to limitations of the design, this | required. Due to limitations of the design, this also implies | |||
| also implies the need for unicast key derivations and EAP method | the need for unicast key derivations and EAP method exchanges to | |||
| exchanges to occur in each direction. | occur in each direction. | |||
| [2] Support for tie-breaking in the lower layer. Lower layers such | 2. Support for tie-breaking in the lower layer. Lower layers such | |||
| as IEEE 802.11 ad hoc do not support "tie breaking" wherein two | as IEEE 802.11 ad hoc do not support "tie breaking" wherein two | |||
| hosts initiating authentication with each other will only go | hosts initiating authentication with each other will only go | |||
| forward with a single authentication. This implies that even if | forward with a single authentication. This implies that even if | |||
| 802.11 were to support a bi-directional group-key handshake, then | 802.11 were to support a bi-directional group-key handshake, then | |||
| two authentications, one in each direction, might still occur. | two authentications, one in each direction, might still occur. | |||
| [3] Peer policy satisfaction. EAP methods may support result | 3. Peer policy satisfaction. EAP methods may support result | |||
| indications, enabling the peer to indicate to the EAP server | indications, enabling the peer to indicate to the EAP server | |||
| within the method that it successfully authenticated the EAP | within the method that it successfully authenticated the EAP | |||
| server, as well as for the server to indicate that it has | server, as well as for the server to indicate that it has | |||
| authenticated the peer. However, a pass-through authenticator | authenticated the peer. However, a pass-through authenticator | |||
| will not be aware that the peer has accepted the credentials | will not be aware that the peer has accepted the credentials | |||
| offered by the EAP server, unless this information is provided to | offered by the EAP server, unless this information is provided to | |||
| the authenticator via the AAA protocol. The authenticator SHOULD | the authenticator via the AAA protocol. The authenticator SHOULD | |||
| interpret the receipt of a key attribute within an Accept packet | interpret the receipt of a key attribute within an Accept packet | |||
| as an indication that the peer has successfully authenticated the | as an indication that the peer has successfully authenticated the | |||
| server. | server. | |||
| skipping to change at page 15, line 41 | skipping to change at page 16, line 38 | |||
| roles. As a result, the peer may require an additional | roles. As a result, the peer may require an additional | |||
| authentication in the reverse direction, even if the peer provided an | authentication in the reverse direction, even if the peer provided an | |||
| indication that the EAP server had successfully authenticated to it. | indication that the EAP server had successfully authenticated to it. | |||
| 3. Lower Layer Behavior | 3. Lower Layer Behavior | |||
| 3.1. Lower Layer Requirements | 3.1. Lower Layer Requirements | |||
| EAP makes the following assumptions about lower layers: | EAP makes the following assumptions about lower layers: | |||
| [1] Unreliable transport. In EAP, the authenticator retransmits | 1. Unreliable transport. In EAP, the authenticator retransmits | |||
| Requests that have not yet received Responses so that EAP does | Requests that have not yet received Responses so that EAP does | |||
| not assume that lower layers are reliable. Since EAP defines its | not assume that lower layers are reliable. Since EAP defines its | |||
| own retransmission behavior, it is possible (though undesirable) | own retransmission behavior, it is possible (though undesirable) | |||
| for retransmission to occur both in the lower layer and the EAP | for retransmission to occur both in the lower layer and the EAP | |||
| layer when EAP is run over a reliable lower layer. | layer when EAP is run over a reliable lower layer. | |||
| Note that EAP Success and Failure packets are not retransmitted. | Note that EAP Success and Failure packets are not retransmitted. | |||
| Without a reliable lower layer, and with a non-negligible error rate, | Without a reliable lower layer, and with a non-negligible error | |||
| these packets can be lost, resulting in timeouts. It is therefore | rate, these packets can be lost, resulting in timeouts. It is | |||
| desirable for implementations to improve their resilience to loss of | therefore desirable for implementations to improve their | |||
| EAP Success or Failure packets, as described in Section 4.2. | resilience to loss of EAP Success or Failure packets, as | |||
| described in Section 4.2. | ||||
| [2] Lower layer error detection. While EAP does not assume that the | 2. Lower layer error detection. While EAP does not assume that the | |||
| lower layer is reliable, it does rely on lower layer error | lower layer is reliable, it does rely on lower layer error | |||
| detection (e.g., CRC, Checksum, MIC, etc.). EAP methods may not | detection (e.g., CRC, Checksum, MIC, etc.). EAP methods may not | |||
| include a MIC, or if they do, it may not be computed over all the | include a MIC, or if they do, it may not be computed over all the | |||
| fields in the EAP packet, such as the Code, Identifier, Length, | fields in the EAP packet, such as the Code, Identifier, Length, | |||
| or Type fields. As a result, without lower layer error | or Type fields. As a result, without lower layer error | |||
| detection, undetected errors could creep into the EAP layer or | detection, undetected errors could creep into the EAP layer or | |||
| EAP method layer header fields, resulting in authentication | EAP method layer header fields, resulting in authentication | |||
| failures. | failures. | |||
| For example, EAP TLS [RFC2716], which computes its MIC over the | For example, EAP TLS [RFC5216][I-D.ietf-emu-eap-tls13], which | |||
| Type-Data field only, regards MIC validation failures as a fatal | computes its MIC over the Type-Data field only, regards MIC | |||
| error. Without lower layer error detection, this method, and | validation failures as a fatal error. Without lower layer error | |||
| others like it, will not perform reliably. | detection, this method, and others like it, will not perform | |||
| reliably. | ||||
| [3] Lower layer security. EAP does not require lower layers to | 3. Lower layer security. EAP does not require lower layers to | |||
| provide security services such as per-packet confidentiality, | provide security services such as per-packet confidentiality, | |||
| authentication, integrity, and replay protection. However, where | authentication, integrity, and replay protection. However, where | |||
| these security services are available, EAP methods supporting Key | these security services are available, EAP methods supporting Key | |||
| Derivation (see Section 7.2.1) can be used to provide dynamic | Derivation (see Section 7.2.1) can be used to provide dynamic | |||
| keying material. This makes it possible to bind the EAP | keying material. This makes it possible to bind the EAP | |||
| authentication to subsequent data and protect against data | authentication to subsequent data and protect against data | |||
| modification, spoofing, or replay. See Section 7.1 for details. | modification, spoofing, or replay. See Section 7.1 for details. | |||
| [4] Minimum MTU. EAP is capable of functioning on lower layers that | 4. Minimum MTU. EAP is capable of functioning on lower layers that | |||
| provide an EAP MTU size of 1020 octets or greater. | provide an EAP MTU size of 1020 octets or greater. | |||
| EAP does not support path MTU discovery, and fragmentation and | EAP does not support path MTU discovery, and fragmentation and | |||
| reassembly is not supported by EAP, nor by the methods defined in | reassembly is not supported by EAP, nor by the methods defined in | |||
| this specification: Identity (1), Notification (2), Nak Response | this specification: Identity (1), Notification (2), Nak Response | |||
| (3), MD5-Challenge (4), One Time Password (5), Generic Token Card | (3), MD5-Challenge (4), One Time Password (5), Generic Token Card | |||
| (6), and expanded Nak Response (254) Types. | (6), and expanded Nak Response (254) Types. | |||
| Typically, the EAP peer obtains information on the EAP MTU from | Typically, the EAP peer obtains information on the EAP MTU from | |||
| the lower layers and sets the EAP frame size to an appropriate | the lower layers and sets the EAP frame size to an appropriate | |||
| value. Where the authenticator operates in pass-through mode, | value. Where the authenticator operates in pass-through mode, | |||
| the authentication server does not have a direct way of | the authentication server does not have a direct way of | |||
| determining the EAP MTU, and therefore relies on the | determining the EAP MTU, and therefore relies on the | |||
| authenticator to provide it with this information, such as via | authenticator to provide it with this information, such as via | |||
| the Framed-MTU attribute, as described in [RFC3579], Section 2.4. | the Framed-MTU attribute, as described in [RFC3579], Section 2.4. | |||
| While methods such as EAP-TLS [RFC2716] support fragmentation and | While methods such as EAP-TLS [RFC5216][I-D.ietf-emu-eap-tls13] | |||
| reassembly, EAP methods originally designed for use within PPP | support fragmentation and reassembly, EAP methods originally | |||
| where a 1500 octet MTU is guaranteed for control frames (see | designed for use within PPP where a 1500 octet MTU is guaranteed | |||
| [RFC1661], Section 6.1) may lack fragmentation and reassembly | for control frames (see [RFC1661], Section 6.1) may lack | |||
| features. | fragmentation and reassembly features. | |||
| EAP methods can assume a minimum EAP MTU of 1020 octets in the | EAP methods can assume a minimum EAP MTU of 1020 octets in the | |||
| absence of other information. EAP methods SHOULD include support | absence of other information. EAP methods SHOULD include support | |||
| for fragmentation and reassembly if their payloads can be larger | for fragmentation and reassembly if their payloads can be larger | |||
| than this minimum EAP MTU. | than this minimum EAP MTU. | |||
| EAP is a lock-step protocol, which implies a certain inefficiency | EAP is a lock-step protocol, which implies a certain inefficiency | |||
| when handling fragmentation and reassembly. Therefore, if the | when handling fragmentation and reassembly. Therefore, if the | |||
| lower layer supports fragmentation and reassembly (such as where | lower layer supports fragmentation and reassembly (such as where | |||
| EAP is transported over IP), it may be preferable for | EAP is transported over IP), it may be preferable for | |||
| fragmentation and reassembly to occur in the lower layer rather | fragmentation and reassembly to occur in the lower layer rather | |||
| than in EAP. This can be accomplished by providing an | than in EAP. This can be accomplished by providing an | |||
| artificially large EAP MTU to EAP, causing fragmentation and | artificially large EAP MTU to EAP, causing fragmentation and | |||
| reassembly to be handled within the lower layer. | reassembly to be handled within the lower layer. | |||
| [5] Possible duplication. Where the lower layer is reliable, it will | 5. Possible duplication. Where the lower layer is reliable, it will | |||
| provide the EAP layer with a non-duplicated stream of packets. | provide the EAP layer with a non-duplicated stream of packets. | |||
| However, while it is desirable that lower layers provide for | However, while it is desirable that lower layers provide for non- | |||
| non-duplication, this is not a requirement. The Identifier field | duplication, this is not a requirement. The Identifier field | |||
| provides both the peer and authenticator with the ability to | provides both the peer and authenticator with the ability to | |||
| detect duplicates. | detect duplicates. | |||
| [6] Ordering guarantees. EAP does not require the Identifier to be | 6. Ordering guarantees. EAP does not require the Identifier to be | |||
| monotonically increasing, and so is reliant on lower layer | monotonically increasing, and so is reliant on lower layer | |||
| ordering guarantees for correct operation. EAP was originally | ordering guarantees for correct operation. EAP was originally | |||
| defined to run on PPP, and [RFC1661] Section 1 has an ordering | defined to run on PPP, and [RFC1661] Section 1 has an ordering | |||
| requirement: | requirement: | |||
| "The Point-to-Point Protocol is designed for simple links | "The Point-to-Point Protocol is designed for simple links which | |||
| which transport packets between two peers. These links | transport packets between two peers. These links provide full- | |||
| provide full-duplex simultaneous bi-directional operation, | duplex simultaneous bi-directional operation, and are assumed to | |||
| and are assumed to deliver packets in order." | deliver packets in order." | |||
| Lower layer transports for EAP MUST preserve ordering between a | Lower layer transports for EAP MUST preserve ordering between a | |||
| source and destination at a given priority level (the ordering | source and destination at a given priority level (the ordering | |||
| guarantee provided by [IEEE-802]). | guarantee provided by [IEEE-802]). | |||
| Reordering, if it occurs, will typically result in an EAP | Reordering, if it occurs, will typically result in an EAP | |||
| authentication failure, causing EAP authentication to be re-run. | authentication failure, causing EAP authentication to be re-run. | |||
| In an environment in which reordering is likely, it is therefore | In an environment in which reordering is likely, it is therefore | |||
| expected that EAP authentication failures will be common. It is | expected that EAP authentication failures will be common. It is | |||
| RECOMMENDED that EAP only be run over lower layers that provide | RECOMMENDED that EAP only be run over lower layers that provide | |||
| skipping to change at page 19, line 40 | skipping to change at page 20, line 30 | |||
| [RFC1994]. | [RFC1994]. | |||
| 3.4. Lower Layer Indications | 3.4. Lower Layer Indications | |||
| The reliability and security of lower layer indications is dependent | The reliability and security of lower layer indications is dependent | |||
| on the lower layer. Since EAP is media independent, the presence or | on the lower layer. Since EAP is media independent, the presence or | |||
| absence of lower layer security is not taken into account in the | absence of lower layer security is not taken into account in the | |||
| processing of EAP messages. | processing of EAP messages. | |||
| To improve reliability, if a peer receives a lower layer success | To improve reliability, if a peer receives a lower layer success | |||
| indication as defined in Section 7.2, it MAY conclude that a Success | indication as defined in Section 7.12, it MAY conclude that a Success | |||
| packet has been lost, and behave as if it had actually received a | packet has been lost, and behave as if it had actually received a | |||
| Success packet. This includes choosing to ignore the Success in some | Success packet. This includes choosing to ignore the Success in some | |||
| circumstances as described in Section 4.2. | circumstances as described in Section 4.2. See also protected result | |||
| indications in Section 7.16. | ||||
| A discussion of some reliability and security issues with lower layer | A discussion of some reliability and security issues with lower layer | |||
| indications in PPP, IEEE 802 wired networks, and IEEE 802.11 wireless | indications in PPP, IEEE 802 wired networks, and IEEE 802.11 wireless | |||
| LANs can be found in the Security Considerations, Section 7.12. | LANs can be found in the Security Considerations, Section 7.12. | |||
| After EAP authentication is complete, the peer will typically | After EAP authentication is complete, the peer will typically | |||
| transmit and receive data via the authenticator. It is desirable to | transmit and receive data via the authenticator. It is desirable to | |||
| provide assurance that the entities transmitting data are the same | provide assurance that the entities transmitting data are the same | |||
| ones that successfully completed EAP authentication. To accomplish | ones that successfully completed EAP authentication. To accomplish | |||
| this, it is necessary for the lower layer to provide per-packet | this, it is necessary for the lower layer to provide per-packet | |||
| skipping to change at page 22, line 45 | skipping to change at page 23, line 45 | |||
| new Request. Initializing the first Identifier with a random | new Request. Initializing the first Identifier with a random | |||
| number rather than starting from zero is recommended, since it | number rather than starting from zero is recommended, since it | |||
| makes sequence attacks somewhat more difficult. | makes sequence attacks somewhat more difficult. | |||
| Since the Identifier space is unique to each session, | Since the Identifier space is unique to each session, | |||
| authenticators are not restricted to only 256 simultaneous | authenticators are not restricted to only 256 simultaneous | |||
| authentication conversations. Similarly, with re-authentication, | authentication conversations. Similarly, with re-authentication, | |||
| an EAP conversation might continue over a long period of time, and | an EAP conversation might continue over a long period of time, and | |||
| is not limited to only 256 roundtrips. | is not limited to only 256 roundtrips. | |||
| Implementation Note: The authenticator is responsible for | Implementation Note: The authenticator is responsible for | |||
| retransmitting Request messages. If the Request message is obtained | retransmitting Request messages. If the Request message is | |||
| from elsewhere (such as from a backend authentication server), then | obtained from elsewhere (such as from a backend authentication | |||
| the authenticator will need to save a copy of the Request in order to | server), then the authenticator will need to save a copy of the | |||
| accomplish this. The peer is responsible for detecting and handling | Request in order to accomplish this. The peer is responsible for | |||
| duplicate Request messages before processing them in any way, | detecting and handling duplicate Request messages before | |||
| including passing them on to an outside party. The authenticator is | processing them in any way, including passing them on to an | |||
| also responsible for discarding Response messages with a non-matching | outside party. The authenticator is also responsible for | |||
| Identifier value before acting on them in any way, including passing | discarding Response messages with a non-matching Identifier value | |||
| them on to the backend authentication server for verification. Since | before acting on them in any way, including passing them on to the | |||
| the authenticator can retransmit before receiving a Response from the | backend authentication server for verification. Since the | |||
| peer, the authenticator can receive multiple Responses, each with a | authenticator can retransmit before receiving a Response from the | |||
| matching Identifier. Until a new Request is received by the | peer, the authenticator can receive multiple Responses, each with | |||
| authenticator, the Identifier value is not updated, so that the | a matching Identifier. Until a new Request is received by the | |||
| authenticator forwards Responses to the backend authentication | authenticator, the Identifier value is not updated, so that the | |||
| server, one at a time. | authenticator forwards Responses to the backend authentication | |||
| server, one at a time. | ||||
| Length | Length | |||
| The Length field is two octets and indicates the length of the EAP | The Length field is two octets and indicates the length of the EAP | |||
| packet including the Code, Identifier, Length, Type, and Type-Data | packet including the Code, Identifier, Length, Type, and Type-Data | |||
| fields. Octets outside the range of the Length field should be | fields. Octets outside the range of the Length field should be | |||
| treated as Data Link Layer padding and MUST be ignored upon | treated as Data Link Layer padding and MUST be ignored upon | |||
| reception. A message with the Length field set to a value larger | reception. A message with the Length field set to a value larger | |||
| than the number of received octets MUST be silently discarded. | than the number of received octets MUST be silently discarded. | |||
| Type | Type | |||
| The Type field is one octet. This field indicates the Type of | The Type field is one octet. This field indicates the Type of | |||
| Request or Response. A single Type MUST be specified for each EAP | Request or Response. A single Type MUST be specified for each EAP | |||
| Request or Response. An initial specification of Types follows in | Request or Response. An initial specification of Types follows in | |||
| Section 5 of this document. | Section 5 of this document. | |||
| The Type field of a Response MUST either match that of the | The Type field of a Response MUST either match that of the | |||
| Request, or correspond to a legacy or Expanded Nak (see Section | Request, or correspond to a legacy or Expanded Nak (see | |||
| 5.3) indicating that a Request Type is unacceptable to the peer. | Section 5.3) indicating that a Request Type is unacceptable to the | |||
| A peer MUST NOT send a Nak (legacy or expanded) in response to a | peer. A peer MUST NOT send a Nak (legacy or expanded) in response | |||
| Request, after an initial non-Nak Response has been sent. An EAP | to a Request, after an initial non-Nak Response has been sent. An | |||
| server receiving a Response not meeting these requirements MUST | EAP server receiving a Response not meeting these requirements | |||
| silently discard it. | MUST silently discard it. | |||
| Type-Data | Type-Data | |||
| The Type-Data field varies with the Type of Request and the | The Type-Data field varies with the Type of Request and the | |||
| associated Response. | associated Response. | |||
| 4.2. Success and Failure | 4.2. Success and Failure | |||
| The Success packet is sent by the authenticator to the peer after | The Success packet is sent by the authenticator to the peer after | |||
| completion of an EAP authentication method (Type 4 or greater) to | completion of an EAP authentication method (Type 4 or greater) to | |||
| skipping to change at page 26, line 15 | skipping to change at page 27, line 16 | |||
| 4.3. Retransmission Behavior | 4.3. Retransmission Behavior | |||
| Because the authentication process will often involve user input, | Because the authentication process will often involve user input, | |||
| some care must be taken when deciding upon retransmission strategies | some care must be taken when deciding upon retransmission strategies | |||
| and authentication timeouts. By default, where EAP is run over an | and authentication timeouts. By default, where EAP is run over an | |||
| unreliable lower layer, the EAP retransmission timer SHOULD be | unreliable lower layer, the EAP retransmission timer SHOULD be | |||
| dynamically estimated. A maximum of 3-5 retransmissions is | dynamically estimated. A maximum of 3-5 retransmissions is | |||
| suggested. | suggested. | |||
| When run over a reliable lower layer (e.g., EAP over ISAKMP/TCP, as | When run over a reliable lower layer (e.g., EAP over ISAKMP/TCP, as | |||
| within [PIC]), the authenticator retransmission timer SHOULD be set | within [I-D.ietf-ipsra-pic]), the authenticator retransmission timer | |||
| to an infinite value, so that retransmissions do not occur at the EAP | SHOULD be set to an infinite value, so that retransmissions do not | |||
| layer. The peer may still maintain a timeout value so as to avoid | occur at the EAP layer. The peer may still maintain a timeout value | |||
| waiting indefinitely for a Request. | so as to avoid waiting indefinitely for a Request. | |||
| Where the authentication process requires user input, the measured | Where the authentication process requires user input, the measured | |||
| round trip times may be determined by user responsiveness rather than | round trip times may be determined by user responsiveness rather than | |||
| network characteristics, so that dynamic RTO estimation may not be | network characteristics, so that dynamic RTO estimation may not be | |||
| helpful. Instead, the retransmission timer SHOULD be set so as to | helpful. Instead, the retransmission timer SHOULD be set so as to | |||
| provide sufficient time for the user to respond, with longer timeouts | provide sufficient time for the user to respond, with longer timeouts | |||
| required in certain cases, such as where Token Cards (see Section | required in certain cases, such as where Token Cards (see | |||
| 5.6) are involved. | Section 5.6) are involved. | |||
| In order to provide the EAP authenticator with guidance as to the | In order to provide the EAP authenticator with guidance as to the | |||
| appropriate timeout value, a hint can be communicated to the | appropriate timeout value, a hint can be communicated to the | |||
| authenticator by the backend authentication server (such as via the | authenticator by the backend authentication server (such as via the | |||
| RADIUS Session-Timeout attribute). | RADIUS Session-Timeout attribute). | |||
| In order to dynamically estimate the EAP retransmission timer, the | In order to dynamically estimate the EAP retransmission timer, the | |||
| algorithms for the estimation of SRTT, RTTVAR, and RTO described in | algorithms for the estimation of SRTT, RTTVAR, and RTO described in | |||
| [RFC2988] are RECOMMENDED, including use of Karn's algorithm, with | [RFC6298] are RECOMMENDED, including use of Karn's algorithm, with | |||
| the following potential modifications: | the following potential modifications: | |||
| [a] In order to avoid synchronization behaviors that can occur with | o In order to avoid synchronization behaviors that can occur with | |||
| fixed timers among distributed systems, the retransmission timer | fixed timers among distributed systems, the retransmission timer | |||
| is calculated with a jitter by using the RTO value and randomly | is calculated with a jitter by using the RTO value and randomly | |||
| adding a value drawn between -RTOmin/2 and RTOmin/2. Alternative | adding a value drawn between -RTOmin/2 and RTOmin/2. Alternative | |||
| calculations to create jitter MAY be used. These MUST be | calculations to create jitter MAY be used. These MUST be pseudo- | |||
| pseudo-random. For a discussion of pseudo-random number | random. For a discussion of pseudo-random number generation, see | |||
| generation, see [RFC1750]. | [RFC1750]. | |||
| [b] When EAP is transported over a single link (as opposed to over | o When EAP is transported over a single link (as opposed to over the | |||
| the Internet), smaller values of RTOinitial, RTOmin, and RTOmax | Internet), smaller values of RTOinitial, RTOmin, and RTOmax MAY be | |||
| MAY be used. Recommended values are RTOinitial=1 second, | used. Recommended values are RTOinitial=1 second, RTOmin=200ms, | |||
| RTOmin=200ms, and RTOmax=20 seconds. | and RTOmax=20 seconds. | |||
| [c] When EAP is transported over a single link (as opposed to over | o When EAP is transported over a single link (as opposed to over the | |||
| the Internet), estimates MAY be done on a per-authenticator | Internet), estimates MAY be done on a per-authenticator basis, | |||
| basis, rather than a per-session basis. This enables the | rather than a per-session basis. This enables the retransmission | |||
| retransmission estimate to make the most use of information on | estimate to make the most use of information on link-layer | |||
| link-layer behavior. | behavior. | |||
| [d] An EAP implementation MAY clear SRTT and RTTVAR after backing off | o An EAP implementation MAY clear SRTT and RTTVAR after backing off | |||
| the timer multiple times, as it is likely that the current SRTT | the timer multiple times, as it is likely that the current SRTT | |||
| and RTTVAR are bogus in this situation. Once SRTT and RTTVAR are | and RTTVAR are bogus in this situation. Once SRTT and RTTVAR are | |||
| cleared, they should be initialized with the next RTT sample | cleared, they should be initialized with the next RTT sample taken | |||
| taken as described in [RFC2988] equation 2.2. | as described in [RFC6298] equation 2.2. | |||
| 5. Initial EAP Request/Response Types | 5. Initial EAP Request/Response Types | |||
| This section defines the initial set of EAP Types used in Request/ | This section defines the initial set of EAP Types used in Request/ | |||
| Response exchanges. More Types may be defined in future documents. | Response exchanges. More Types may be defined in future documents. | |||
| The Type field is one octet and identifies the structure of an EAP | The Type field is one octet and identifies the structure of an EAP | |||
| Request or Response packet. The first 3 Types are considered special | Request or Response packet. The first 3 Types are considered special | |||
| case Types. | case Types. | |||
| The remaining Types define authentication exchanges. Nak (Type 3) or | The remaining Types define authentication exchanges. Nak (Type 3) or | |||
| skipping to change at page 27, line 47 | skipping to change at page 28, line 47 | |||
| 5 One Time Password (OTP) | 5 One Time Password (OTP) | |||
| 6 Generic Token Card (GTC) | 6 Generic Token Card (GTC) | |||
| 254 Expanded Types | 254 Expanded Types | |||
| 255 Experimental use | 255 Experimental use | |||
| EAP methods MAY support authentication based on shared secrets. If | EAP methods MAY support authentication based on shared secrets. If | |||
| the shared secret is a passphrase entered by the user, | the shared secret is a passphrase entered by the user, | |||
| implementations MAY support entering passphrases with non-ASCII | implementations MAY support entering passphrases with non-ASCII | |||
| characters. In this case, the input should be processed using an | characters. In this case, the input should be processed using an | |||
| appropriate stringprep [RFC3454] profile, and encoded in octets using | appropriate stringprep [RFC3454] profile, and encoded in octets using | |||
| UTF-8 encoding [RFC2279]. A preliminary version of a possible | UTF-8 encoding [RFC3629]. A preliminary version of a possible | |||
| stringprep profile is described in [SASLPREP]. | stringprep profile is described in [RFC8265]. | |||
| 5.1. Identity | 5.1. Identity | |||
| Description | Description | |||
| The Identity Type is used to query the identity of the peer. | The Identity Type is used to query the identity of the peer. | |||
| Generally, the authenticator will issue this as the initial | Generally, the authenticator will issue this as the initial | |||
| Request. An optional displayable message MAY be included to | Request. An optional displayable message MAY be included to | |||
| prompt the peer in the case where there is an expectation of | prompt the peer in the case where there is an expectation of | |||
| interaction with a user. A Response of Type 1 (Identity) SHOULD | interaction with a user. A Response of Type 1 (Identity) SHOULD | |||
| skipping to change at page 28, line 39 | skipping to change at page 29, line 39 | |||
| per-packet authentication, integrity and replay protection, and | per-packet authentication, integrity and replay protection, and | |||
| confidentiality. The Identity Response may not be the appropriate | confidentiality. The Identity Response may not be the appropriate | |||
| identity for the method; it may have been truncated or obfuscated | identity for the method; it may have been truncated or obfuscated | |||
| so as to provide privacy, or it may have been decorated for | so as to provide privacy, or it may have been decorated for | |||
| routing purposes. Where the peer is configured to only accept | routing purposes. Where the peer is configured to only accept | |||
| authentication methods supporting protected identity exchanges, | authentication methods supporting protected identity exchanges, | |||
| the peer MAY provide an abbreviated Identity Response (such as | the peer MAY provide an abbreviated Identity Response (such as | |||
| omitting the peer-name portion of the NAI [RFC2486]). For further | omitting the peer-name portion of the NAI [RFC2486]). For further | |||
| discussion of identity protection, see Section 7.3. | discussion of identity protection, see Section 7.3. | |||
| Implementation Note: The peer MAY obtain the Identity via user input. | Implementation Note: The peer MAY obtain the Identity via user | |||
| It is suggested that the authenticator retry the Identity Request in | input. It is suggested that the authenticator retry the Identity | |||
| the case of an invalid Identity or authentication failure to allow | Request in the case of an invalid Identity or authentication | |||
| for potential typos on the part of the user. It is suggested that | failure to allow for potential typos on the part of the user. It | |||
| the Identity Request be retried a minimum of 3 times before | is suggested that the Identity Request be retried a minimum of 3 | |||
| terminating the authentication. The Notification Request MAY be used | times before terminating the authentication. The Notification | |||
| to indicate an invalid authentication attempt prior to transmitting a | Request MAY be used to indicate an invalid authentication attempt | |||
| new Identity Request (optionally, the failure MAY be indicated within | prior to transmitting a new Identity Request (optionally, the | |||
| the message of the new Identity Request itself). | failure MAY be indicated within the message of the new Identity | |||
| Request itself). | ||||
| Type | Type | |||
| 1 | 1 | |||
| Type-Data | Type-Data | |||
| This field MAY contain a displayable message in the Request, | This field MAY contain a displayable message in the Request, | |||
| containing UTF-8 encoded ISO 10646 characters [RFC2279]. Where | containing UTF-8 encoded ISO 10646 characters [RFC3629]. Where | |||
| the Request contains a null, only the portion of the field prior | the Request contains a null, only the portion of the field prior | |||
| to the null is displayed. If the Identity is unknown, the | to the null is displayed. If the Identity is unknown, the | |||
| Identity Response field should be zero bytes in length. The | Identity Response field should be zero bytes in length. The | |||
| Identity Response field MUST NOT be null terminated. In all | Identity Response field MUST NOT be null terminated. In all | |||
| cases, the length of the Type-Data field is derived from the | cases, the length of the Type-Data field is derived from the | |||
| Length field of the Request/Response packet. | Length field of the Request/Response packet. | |||
| Security Claims (see Section 7.2): | Security Claims (see Section 7.2): | |||
| Auth. mechanism: None | Auth. mechanism: None | |||
| skipping to change at page 29, line 36 | skipping to change at page 30, line 33 | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: N/A | Dictionary attack prot.: N/A | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.2. Notification | 5.2. Notification | |||
| Description | Description | |||
| The Notification Type is optionally used to convey a displayable | The Notification Type is optionally used to convey a displayable | |||
| message from the authenticator to the peer. An authenticator MAY | message from the authenticator to the peer. An authenticator MAY | |||
| send a Notification Request to the peer at any time when there is | send a Notification Request to the peer at any time when there is | |||
| no outstanding Request, prior to completion of an EAP | no outstanding Request, prior to completion of an EAP | |||
| authentication method. The peer MUST respond to a Notification | authentication method. The peer MUST respond to a Notification | |||
| skipping to change at page 30, line 28 | skipping to change at page 31, line 28 | |||
| Notification should not be required. | Notification should not be required. | |||
| Type | Type | |||
| 2 | 2 | |||
| Type-Data | Type-Data | |||
| The Type-Data field in the Request contains a displayable message | The Type-Data field in the Request contains a displayable message | |||
| greater than zero octets in length, containing UTF-8 encoded ISO | greater than zero octets in length, containing UTF-8 encoded ISO | |||
| 10646 characters [RFC2279]. The length of the message is | 10646 characters [RFC3629]. The length of the message is | |||
| determined by the Length field of the Request packet. The message | determined by the Length field of the Request packet. The message | |||
| MUST NOT be null terminated. A Response MUST be sent in reply to | MUST NOT be null terminated. A Response MUST be sent in reply to | |||
| the Request with a Type field of 2 (Notification). The Type-Data | the Request with a Type field of 2 (Notification). The Type-Data | |||
| field of the Response is zero octets in length. The Response | field of the Response is zero octets in length. The Response | |||
| should be sent immediately (independent of how the message is | should be sent immediately (independent of how the message is | |||
| displayed or logged). | displayed or logged). | |||
| Security Claims (see Section 7.2): | Security Claims (see Section 7.2): | |||
| Auth. mechanism: None | Auth. mechanism: None | |||
| skipping to change at page 31, line 4 | skipping to change at page 32, line 19 | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: N/A | Dictionary attack prot.: N/A | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.3. Nak | 5.3. Nak | |||
| 5.3.1. Legacy Nak | 5.3.1. Legacy Nak | |||
| Description | Description | |||
| The legacy Nak Type is valid only in Response messages. It is | The legacy Nak Type is valid only in Response messages. It is | |||
| sent in reply to a Request where the desired authentication Type | sent in reply to a Request where the desired authentication Type | |||
| is unacceptable. Authentication Types are numbered 4 and above. | is unacceptable. Authentication Types are numbered 4 and above. | |||
| skipping to change at page 32, line 6 | skipping to change at page 33, line 21 | |||
| Where a peer receives a Request for an unacceptable authentication | Where a peer receives a Request for an unacceptable authentication | |||
| Type (4-253,255), or a peer lacking support for Expanded Types | Type (4-253,255), or a peer lacking support for Expanded Types | |||
| receives a Request for Type 254, a Nak Response (Type 3) MUST be | receives a Request for Type 254, a Nak Response (Type 3) MUST be | |||
| sent. The Type-Data field of the Nak Response (Type 3) MUST | sent. The Type-Data field of the Nak Response (Type 3) MUST | |||
| contain one or more octets indicating the desired authentication | contain one or more octets indicating the desired authentication | |||
| Type(s), one octet per Type, or the value zero (0) to indicate no | Type(s), one octet per Type, or the value zero (0) to indicate no | |||
| proposed alternative. A peer supporting Expanded Types that | proposed alternative. A peer supporting Expanded Types that | |||
| receives a Request for an unacceptable authentication Type (4-253, | receives a Request for an unacceptable authentication Type (4-253, | |||
| 255) MAY include the value 254 in the Nak Response (Type 3) to | 255) MAY include the value 254 in the Nak Response (Type 3) to | |||
| indicate the desire for an Expanded authentication Type. If the | indicate the desire for an Expanded authentication Type. If the | |||
| authenticator can accommodate this preference, it will respond | authenticator can accommodate this preference, it will respond | |||
| with an Expanded Type Request (Type 254). | with an Expanded Type Request (Type 254). | |||
| Security Claims (see Section 7.2): | Security Claims (see Section 7.2): | |||
| Auth. mechanism: None | Auth. mechanism: None | |||
| Ciphersuite negotiation: No | Ciphersuite negotiation: No | |||
| Mutual authentication: No | Mutual authentication: No | |||
| Integrity protection: No | Integrity protection: No | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: N/A | Dictionary attack prot.: N/A | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.3.2. Expanded Nak | 5.3.2. Expanded Nak | |||
| Description | Description | |||
| The Expanded Nak Type is valid only in Response messages. It MUST | The Expanded Nak Type is valid only in Response messages. It MUST | |||
| be sent only in reply to a Request of Type 254 (Expanded Type) | be sent only in reply to a Request of Type 254 (Expanded Type) | |||
| where the authentication Type is unacceptable. The Expanded Nak | where the authentication Type is unacceptable. The Expanded Nak | |||
| Type uses the Expanded Type format itself, and the Response | Type uses the Expanded Type format itself, and the Response | |||
| contains one or more authentication Types desired by the peer, all | contains one or more authentication Types desired by the peer, all | |||
| skipping to change at page 34, line 23 | skipping to change at page 35, line 26 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=254 | 0 (IETF) | | | Type=254 | 0 (IETF) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 5 (OTP) | | | 5 (OTP) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=254 | 20 (MIT) | | | Type=254 | 20 (MIT) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 6 | | | 6 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| An Expanded Nak Response indicating a no desired alternative would | An Expanded Nak Response indicating a no desired alternative would | |||
| appear as follows: | appear as follows: | |||
| 0 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 2 | Identifier | Length=20 | | | 2 | Identifier | Length=20 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Type=254 | 0 (IETF) | | | Type=254 | 0 (IETF) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | 3 (Nak) | | | 3 (Nak) | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 35, line 7 | skipping to change at page 36, line 19 | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: N/A | Dictionary attack prot.: N/A | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.4. MD5-Challenge | 5.4. MD5-Challenge | |||
| Description | Description | |||
| The MD5-Challenge Type is analogous to the PPP CHAP protocol | The MD5-Challenge Type is analogous to the PPP CHAP protocol | |||
| [RFC1994] (with MD5 as the specified algorithm). The Request | [RFC1994] (with MD5 as the specified algorithm). The Request | |||
| contains a "challenge" message to the peer. A Response MUST be | contains a "challenge" message to the peer. A Response MUST be | |||
| sent in reply to the Request. The Response MAY be either of Type | sent in reply to the Request. The Response MAY be either of Type | |||
| 4 (MD5-Challenge), Nak (Type 3), or Expanded Nak (Type 254). The | 4 (MD5-Challenge), Nak (Type 3), or Expanded Nak (Type 254). The | |||
| skipping to change at page 35, line 35 | skipping to change at page 36, line 48 | |||
| then the requirement for support of the MD5-Challenge mechanism | then the requirement for support of the MD5-Challenge mechanism | |||
| applies. | applies. | |||
| Note that the use of the Identifier field in the MD5-Challenge | Note that the use of the Identifier field in the MD5-Challenge | |||
| Type is different from that described in [RFC1994]. EAP allows | Type is different from that described in [RFC1994]. EAP allows | |||
| for retransmission of MD5-Challenge Request packets, while | for retransmission of MD5-Challenge Request packets, while | |||
| [RFC1994] states that both the Identifier and Challenge fields | [RFC1994] states that both the Identifier and Challenge fields | |||
| MUST change each time a Challenge (the CHAP equivalent of the | MUST change each time a Challenge (the CHAP equivalent of the | |||
| MD5-Challenge Request packet) is sent. | MD5-Challenge Request packet) is sent. | |||
| Note: [RFC1994] treats the shared secret as an octet string, and | Note 1. MD5 algorithm has severe issues, particularly when used | |||
| without HMAC (which is not used by CHAP or EAP-MD5). For more | ||||
| information, refer to Section 7.11.1. | ||||
| Note 2: [RFC1994] treats the shared secret as an octet string, and | ||||
| does not specify how it is entered into the system (or if it is | does not specify how it is entered into the system (or if it is | |||
| handled by the user at all). EAP MD5-Challenge implementations | handled by the user at all). EAP MD5-Challenge implementations | |||
| MAY support entering passphrases with non-ASCII characters. See | MAY support entering passphrases with non-ASCII characters. See | |||
| Section 5 for instructions how the input should be processed and | Section 5 for instructions how the input should be processed and | |||
| encoded into octets. | encoded into octets. | |||
| Type | Type | |||
| 4 | 4 | |||
| skipping to change at page 36, line 29 | skipping to change at page 37, line 46 | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: No | Dictionary attack prot.: No | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.5. One-Time Password (OTP) | 5.5. One-Time Password (OTP) | |||
| Description | Description | |||
| The One-Time Password system is defined in "A One-Time Password | The One-Time Password system is defined in "A One-Time Password | |||
| System" [RFC2289] and "OTP Extended Responses" [RFC2243]. The | System" [RFC2289] and "OTP Extended Responses" [RFC2243]. The | |||
| Request contains an OTP challenge in the format described in | Request contains an OTP challenge in the format described in | |||
| [RFC2289]. A Response MUST be sent in reply to the Request. The | [RFC2289]. A Response MUST be sent in reply to the Request. The | |||
| Response MUST be of Type 5 (OTP), Nak (Type 3), or Expanded Nak | Response MUST be of Type 5 (OTP), Nak (Type 3), or Expanded Nak | |||
| skipping to change at page 37, line 35 | skipping to change at page 39, line 19 | |||
| Replay protection: Yes | Replay protection: Yes | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: No | Dictionary attack prot.: No | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.6. Generic Token Card (GTC) | 5.6. Generic Token Card (GTC) | |||
| Description | Description | |||
| The Generic Token Card Type is defined for use with various Token | The Generic Token Card Type is defined for use with various Token | |||
| Card implementations which require user input. The Request | Card implementations which require user input. The Request | |||
| contains a displayable message and the Response contains the Token | contains a displayable message and the Response contains the Token | |||
| Card information necessary for authentication. Typically, this | Card information necessary for authentication. Typically, this | |||
| would be information read by a user from the Token card device and | would be information read by a user from the Token card device and | |||
| skipping to change at page 38, line 43 | skipping to change at page 40, line 27 | |||
| Replay protection: No | Replay protection: No | |||
| Confidentiality: No | Confidentiality: No | |||
| Key derivation: No | Key derivation: No | |||
| Key strength: N/A | Key strength: N/A | |||
| Dictionary attack prot.: No | Dictionary attack prot.: No | |||
| Fast reconnect: No | Fast reconnect: No | |||
| Crypt. binding: N/A | Crypt. binding: N/A | |||
| Session independence: N/A | Session independence: N/A | |||
| Fragmentation: No | Fragmentation: No | |||
| Channel binding: No | Channel binding: No | |||
| Perfect Forward Secrecy: N/A | ||||
| 5.7. Expanded Types | 5.7. Expanded Types | |||
| Description | Description | |||
| Since many of the existing uses of EAP are vendor-specific, the | Since many of the existing uses of EAP are vendor-specific, the | |||
| Expanded method Type is available to allow vendors to support | Expanded method Type is available to allow vendors to support | |||
| their own Expanded Types not suitable for general usage. | their own Expanded Types not suitable for general usage. | |||
| The Expanded Type is also used to expand the global Method Type | The Expanded Type is also used to expand the global Method Type | |||
| skipping to change at page 40, line 38 | skipping to change at page 42, line 27 | |||
| 255 | 255 | |||
| Type-Data | Type-Data | |||
| Undefined | Undefined | |||
| 6. IANA Considerations | 6. IANA Considerations | |||
| This section provides guidance to the Internet Assigned Numbers | This section provides guidance to the Internet Assigned Numbers | |||
| Authority (IANA) regarding registration of values related to the EAP | Authority (IANA) regarding registration of values related to the EAP | |||
| protocol, in accordance with BCP 26, [RFC2434]. | protocol, in accordance with BCP 26, [RFC8126]. | |||
| There are two name spaces in EAP that require registration: Packet | There are two name spaces in EAP that require registration: Packet | |||
| Codes and method Types. | Codes and method Types. | |||
| EAP is not intended as a general-purpose protocol, and allocations | EAP is not intended as a general-purpose protocol, and allocations | |||
| SHOULD NOT be made for purposes unrelated to authentication. | SHOULD NOT be made for purposes unrelated to authentication. | |||
| The following terms are used here with the meanings defined in BCP | The following terms are used here with the meanings defined in BCP | |||
| 26: "name space", "assigned value", "registration". | 26: "name space", "assigned value", "registration". | |||
| The following policies are used here with the meanings defined in BCP | The following policies are used here with the meanings defined in BCP | |||
| 26: "Private Use", "First Come First Served", "Expert Review", | 26: "Private Use", "First Come First Served", "Expert Review", | |||
| "Specification Required", "IETF Consensus", "Standards Action". | "Specification Required", "IETF Review", "Standards Action". | |||
| For registration requests where a Designated Expert should be | For registration requests where a Designated Expert should be | |||
| consulted, the responsible IESG area director should appoint the | consulted, the responsible IESG area director should appoint the | |||
| Designated Expert. The intention is that any allocation will be | Designated Expert. The intention is that any allocation will be | |||
| accompanied by a published RFC. But in order to allow for the | accompanied by a published RFC. But in order to allow for the | |||
| allocation of values prior to the RFC being approved for publication, | allocation of values prior to the RFC being approved for publication, | |||
| the Designated Expert can approve allocations once it seems clear | the Designated Expert can approve allocations once it seems clear | |||
| that an RFC will be published. The Designated expert will post a | that an RFC will be published. The Designated expert will post a | |||
| request to the EAP WG mailing list (or a successor designated by the | request to the EAP WG mailing list (or a successor designated by the | |||
| Area Director) for comment and review, including an Internet-Draft. | Area Director) for comment and review, including an Internet-Draft. | |||
| skipping to change at page 41, line 25 | skipping to change at page 43, line 17 | |||
| either approve or deny the registration request and publish a notice | either approve or deny the registration request and publish a notice | |||
| of the decision to the EAP WG mailing list or its successor, as well | of the decision to the EAP WG mailing list or its successor, as well | |||
| as informing IANA. A denial notice must be justified by an | as informing IANA. A denial notice must be justified by an | |||
| explanation, and in the cases where it is possible, concrete | explanation, and in the cases where it is possible, concrete | |||
| suggestions on how the request can be modified so as to become | suggestions on how the request can be modified so as to become | |||
| acceptable should be provided. | acceptable should be provided. | |||
| 6.1. Packet Codes | 6.1. Packet Codes | |||
| Packet Codes have a range from 1 to 255, of which 1-4 have been | Packet Codes have a range from 1 to 255, of which 1-4 have been | |||
| allocated. Because a new Packet Code has considerable impact on | allocated by this document and 5-6 by [RFC6696]. Because a new | |||
| interoperability, a new Packet Code requires Standards Action, and | Packet Code has considerable impact on interoperability, a new Packet | |||
| should be allocated starting at 5. | Code requires Standards Action, and should be allocated starting at | |||
| 5. | ||||
| 6.2. Method Types | 6.2. Method Types | |||
| The original EAP method Type space has a range from 1 to 255, and is | The original EAP method Type space has a range from 1 to 255, and is | |||
| the scarcest resource in EAP, and thus must be allocated with care. | the scarcest resource in EAP, and thus must be allocated with care. | |||
| Method Types 1-45 have been allocated, with 20 available for re-use. | Method Type 0 is reserved. Method Types 1-55 have been allocated, | |||
| Method Types 20 and 46-191 may be allocated on the advice of a | with 20 available for re-use. Method Types 20 and 56-191 may be | |||
| Designated Expert, with Specification Required. | allocated through Expert Review, on the advice of a Designated | |||
| Expert, with Specification Required. | ||||
| Allocation of blocks of method Types (more than one for a given | Allocation of blocks of method Types (more than one for a given | |||
| purpose) should require IETF Consensus. EAP Type Values 192-253 are | purpose) should require IETF Review. EAP Type Values 192-253 are | |||
| reserved and allocation requires Standards Action. | reserved and allocation requires Standards Action. | |||
| Method Type 254 is allocated for the Expanded Type. Where the | Method Type 254 is allocated for the Expanded Type. Where the | |||
| Vendor-Id field is non-zero, the Expanded Type is used for functions | Vendor-Id field is non-zero, the Expanded Type is used for functions | |||
| specific only to one vendor's implementation of EAP, where no | specific only to one vendor's implementation of EAP, where no | |||
| interoperability is deemed useful. When used with a Vendor-Id of | interoperability is deemed useful. When used with a Vendor-Id of | |||
| zero, method Type 254 can also be used to provide for an expanded | zero, method Type 254 can also be used to provide for an expanded | |||
| IETF method Type space. Method Type values 256-4294967295 may be | IETF method Type space. Method Type values 256-4294967295 may be | |||
| allocated after Type values 1-191 have been allocated, on the advice | allocated after Type values 1-191 have been allocated, on the advice | |||
| of a Designated Expert, with Specification Required. | of a Designated Expert, with Specification Required. | |||
| skipping to change at page 42, line 20 | skipping to change at page 44, line 15 | |||
| It is expected that the generic threat model and corresponding | It is expected that the generic threat model and corresponding | |||
| security claims will used to define EAP method requirements for use | security claims will used to define EAP method requirements for use | |||
| in specific environments. An example of such a requirements analysis | in specific environments. An example of such a requirements analysis | |||
| is provided in [IEEE-802.11i-req]. A security claims section is | is provided in [IEEE-802.11i-req]. A security claims section is | |||
| required in EAP method specifications, so that EAP methods can be | required in EAP method specifications, so that EAP methods can be | |||
| evaluated against the requirements. | evaluated against the requirements. | |||
| 7.1. Threat Model | 7.1. Threat Model | |||
| EAP was developed for use with PPP [RFC1661] and was later adapted | EAP was developed for use with PPP [RFC1661] and was later adapted | |||
| for use in wired IEEE 802 networks [IEEE-802] in [IEEE-802.1X]. | for use in wired IEEE 802 networks [IEEE-802] in [IEEE-802.1X] and | |||
| Subsequently, EAP has been proposed for use on wireless LAN networks | 3GPP 5G [TS.33.501]. Subsequently, EAP has been proposed for use on | |||
| and over the Internet. In all these situations, it is possible for | wireless LAN networks and over the Internet. In all these | |||
| an attacker to gain access to links over which EAP packets are | situations, it is possible for an attacker to gain access to links | |||
| transmitted. For example, attacks on telephone infrastructure are | over which EAP packets are transmitted. For example, attacks on | |||
| documented in [DECEPTION]. | telephone infrastructure are documented in [DECEPTION]. | |||
| An attacker with access to the link may carry out a number of | An attacker with access to the link may carry out a number of | |||
| attacks, including: | attacks, including: | |||
| [1] An attacker may try to discover user identities by snooping | 1. An attacker may try to discover user identities by snooping | |||
| authentication traffic. | authentication traffic. | |||
| [2] An attacker may try to modify or spoof EAP packets. | 2. An attacker may try to modify or spoof EAP packets. | |||
| [3] An attacker may launch denial of service attacks by spoofing | 3. An attacker may launch denial of service attacks by spoofing | |||
| lower layer indications or Success/Failure packets, by replaying | lower layer indications or Success/Failure packets, by replaying | |||
| EAP packets, or by generating packets with overlapping | EAP packets, or by generating packets with overlapping | |||
| Identifiers. | Identifiers. | |||
| [4] An attacker may attempt to recover the pass-phrase by mounting | 4. An attacker may attempt to recover the pass-phrase by mounting | |||
| an offline dictionary attack. | an offline dictionary attack. | |||
| [5] An attacker may attempt to convince the peer to connect to an | 5. An attacker may attempt to convince the peer to connect to an | |||
| untrusted network by mounting a man-in-the-middle attack. | untrusted network by mounting a man-in-the-middle attack. | |||
| [6] An attacker may attempt to disrupt the EAP negotiation in order | 6. An attacker may attempt to disrupt the EAP negotiation in order | |||
| cause a weak authentication method to be selected. | cause a weak authentication method to be selected. | |||
| [7] An attacker may attempt to recover keys by taking advantage of | 7. An attacker may attempt to recover keys by taking advantage of | |||
| weak key derivation techniques used within EAP methods. | weak key derivation techniques used within EAP methods. | |||
| [8] An attacker may attempt to take advantage of weak ciphersuites | 8. An attacker may attempt to take advantage of weak ciphersuites | |||
| subsequently used after the EAP conversation is complete. | subsequently used after the EAP conversation is complete. | |||
| [9] An attacker may attempt to perform downgrading attacks on lower | 9. An attacker may attempt to perform downgrading attacks on lower | |||
| layer ciphersuite negotiation in order to ensure that a weaker | layer ciphersuite negotiation in order to ensure that a weaker | |||
| ciphersuite is used subsequently to EAP authentication. | ciphersuite is used subsequently to EAP authentication. | |||
| [10] An attacker acting as an authenticator may provide incorrect | 10. An attacker acting as an authenticator may provide incorrect | |||
| information to the EAP peer and/or server via out-of-band | information to the EAP peer and/or server via out-of-band | |||
| mechanisms (such as via a AAA or lower layer protocol). This | mechanisms (such as via a AAA or lower layer protocol). This | |||
| includes impersonating another authenticator, or providing | includes impersonating another authenticator, or providing | |||
| inconsistent information to the peer and EAP server. | inconsistent information to the peer and EAP server. | |||
| Depending on the lower layer, these attacks may be carried out | Depending on the lower layer, these attacks may be carried out | |||
| without requiring physical proximity. Where EAP is used over | without requiring physical proximity. Where EAP is used over | |||
| wireless networks, EAP packets may be forwarded by authenticators | wireless networks, EAP packets may be forwarded by authenticators | |||
| (e.g., pre-authentication) so that the attacker need not be within | (e.g., pre-authentication) so that the attacker need not be within | |||
| the coverage area of an authenticator in order to carry out an attack | the coverage area of an authenticator in order to carry out an attack | |||
| on it or its peers. Where EAP is used over the Internet, attacks may | on it or its peers. Where EAP is used over the Internet, attacks may | |||
| be carried out at an even greater distance. | be carried out at an even greater distance. | |||
| 7.2. Security Claims | 7.2. Security Claims | |||
| In order to clearly articulate the security provided by an EAP | In order to clearly articulate the security provided by an EAP | |||
| method, EAP method specifications MUST include a Security Claims | method, EAP method specifications MUST include a Security Claims | |||
| section, including the following declarations: | section, including the following declarations: | |||
| [a] Mechanism. This is a statement of the authentication technology: | o Mechanism. This is a statement of the authentication technology: | |||
| certificates, pre-shared keys, passwords, token cards, etc. | certificates, pre-shared keys, passwords, token cards, etc. | |||
| [b] Security claims. This is a statement of the claimed security | o Security claims. This is a statement of the claimed security | |||
| properties of the method, using terms defined in Section 7.2.1: | properties of the method, using terms defined in Section 7.2.1: | |||
| mutual authentication, integrity protection, replay protection, | mutual authentication, integrity protection, replay protection, | |||
| confidentiality, key derivation, dictionary attack resistance, | confidentiality, key derivation, key strength, dictionary attack | |||
| fast reconnect, cryptographic binding. The Security Claims | resistance, fast reconnect, cryptographic binding, session | |||
| section of an EAP method specification SHOULD provide | independance, fragmentation, channel binding, perfect forward | |||
| justification for the claims that are made. This can be | secrecy. The Security Claims section of an EAP method | |||
| accomplished by including a proof in an Appendix, or including a | specification SHOULD provide justification for the claims that are | |||
| reference to a proof. | made. This can be accomplished by including a proof in an | |||
| Appendix, or including a reference to a proof. | ||||
| [c] Key strength. If the method derives keys, then the effective key | o Key strength. If the method derives keys, then the effective key | |||
| strength MUST be estimated. This estimate is meant for potential | strength MUST be estimated. This estimate is meant for potential | |||
| users of the method to determine if the keys produced are strong | users of the method to determine if the keys produced are strong | |||
| enough for the intended application. | enough for the intended application. | |||
| The effective key strength SHOULD be stated as a number of bits, | The effective key strength SHOULD be stated as a number of bits, | |||
| defined as follows: If the effective key strength is N bits, the | defined as follows: If the effective key strength is N bits, the | |||
| best currently known methods to recover the key (with non- | best currently known methods to recover the key (with non- | |||
| negligible probability) require, on average, an effort comparable | negligible probability) require, on average, an effort comparable | |||
| to 2^(N-1) operations of a typical block cipher. The statement | to 2^(N-1) operations of a typical block cipher. The statement | |||
| SHOULD be accompanied by a short rationale, explaining how this | SHOULD be accompanied by a short rationale, explaining how this | |||
| number was derived. This explanation SHOULD include the | number was derived. This explanation SHOULD include the | |||
| parameters required to achieve the stated key strength based on | parameters required to achieve the stated key strength based on | |||
| current knowledge of the algorithms. | current knowledge of the algorithms. | |||
| (Note: Although it is difficult to define what "comparable | (Note: Although it is difficult to define what "comparable effort" | |||
| effort" and "typical block cipher" exactly mean, reasonable | and "typical block cipher" exactly mean, reasonable approximations | |||
| approximations are sufficient here. Refer to e.g. [SILVERMAN] | are sufficient here. Refer to e.g. [SILVERMAN] for more | |||
| for more discussion.) | discussion.) | |||
| The key strength depends on the methods used to derive the keys. | The key strength depends on the methods used to derive the keys. | |||
| For instance, if keys are derived from a shared secret (such as a | For instance, if keys are derived from a shared secret (such as a | |||
| password or a long-term secret), and possibly some public | password or a long-term secret), and possibly some public | |||
| information such as nonces, the effective key strength is limited | information such as nonces, the effective key strength is limited | |||
| by the strength of the long-term secret (assuming that the | by the strength of the long-term secret (assuming that the | |||
| derivation procedure is computationally simple). To take another | derivation procedure is computationally simple). To take another | |||
| example, when using public key algorithms, the strength of the | example, when using public key algorithms, the strength of the | |||
| symmetric key depends on the strength of the public keys used. | symmetric key depends on the strength of the public keys used. | |||
| [d] Description of key hierarchy. EAP methods deriving keys MUST | o Description of key hierarchy. EAP methods deriving keys MUST | |||
| either provide a reference to a key hierarchy specification, or | either provide a reference to a key hierarchy specification, or | |||
| describe how Master Session Keys (MSKs) and Extended Master | describe how Master Session Keys (MSKs) and Extended Master | |||
| Session Keys (EMSKs) are to be derived. | Session Keys (EMSKs) are to be derived. | |||
| [e] Indication of vulnerabilities. In addition to the security | o Indication of vulnerabilities. In addition to the security claims | |||
| claims that are made, the specification MUST indicate which of | that are made, the specification MUST indicate which of the | |||
| the security claims detailed in Section 7.2.1 are NOT being made. | security claims detailed in Section 7.2.1 are NOT being made. | |||
| 7.2.1. Security Claims Terminology for EAP Methods | 7.2.1. Security Claims Terminology for EAP Methods | |||
| These terms are used to describe the security properties of EAP | These terms are used to describe the security properties of EAP | |||
| methods: | methods: | |||
| Protected ciphersuite negotiation | Protected ciphersuite negotiation | |||
| This refers to the ability of an EAP method to negotiate the | This refers to the ability of an EAP method to negotiate the | |||
| ciphersuite used to protect the EAP conversation, as well as to | ciphersuite used to protect the EAP conversation, as well as to | |||
| integrity protect the negotiation. It does not refer to the | integrity protect the negotiation. It does not refer to the | |||
| ability to negotiate the ciphersuite used to protect data. | ability to negotiate the ciphersuite used to protect data. | |||
| Mutual authentication | Mutual authentication | |||
| This refers to an EAP method in which, within an interlocked | This refers to an EAP method in which, within an interlocked | |||
| exchange, the authenticator authenticates the peer and the peer | exchange, the authenticator authenticates the peer and the peer | |||
| authenticates the authenticator. Two independent one-way methods, | authenticates the authenticator. Two independent one-way methods, | |||
| running in opposite directions do not provide mutual | running in opposite directions do not provide mutual | |||
| authentication as defined here. | authentication as defined here. | |||
| Integrity protection | Integrity protection | |||
| This refers to providing data origin authentication and protection | This refers to providing data origin authentication and protection | |||
| against unauthorized modification of information for EAP packets | against unauthorized modification of information for EAP packets | |||
| (including EAP Requests and Responses). When making this claim, a | (including EAP Requests and Responses). When making this claim, a | |||
| method specification MUST describe the EAP packets and fields | method specification MUST describe the EAP packets and fields | |||
| within the EAP packet that are protected. | within the EAP packet that are protected. | |||
| Replay protection | Replay protection | |||
| This refers to protection against replay of an EAP method or its | This refers to protection against replay of an EAP method or its | |||
| messages, including success and failure result indications. | messages, including success and failure result indications. | |||
| Confidentiality | Confidentiality | |||
| This refers to encryption of EAP messages, including EAP Requests | This refers to encryption of EAP messages, including EAP Requests | |||
| and Responses, and success and failure result indications. A | and Responses, and success and failure result indications. A | |||
| method making this claim MUST support identity protection (see | method making this claim MUST support identity protection (see | |||
| Section 7.3). | Section 7.3). | |||
| Key derivation | Key derivation | |||
| This refers to the ability of the EAP method to derive exportable | This refers to the ability of the EAP method to derive exportable | |||
| keying material, such as the Master Session Key (MSK), and | keying material, such as the Master Session Key (MSK), and | |||
| Extended Master Session Key (EMSK). The MSK is used only for | Extended Master Session Key (EMSK). The MSK is used only for | |||
| further key derivation, not directly for protection of the EAP | further key derivation, not directly for protection of the EAP | |||
| conversation or subsequent data. Use of the EMSK is reserved. | conversation or subsequent data. Use of the EMSK is reserved. | |||
| Key strength | Key strength | |||
| If the effective key strength is N bits, the best currently known | If the effective key strength is N bits, the best currently known | |||
| methods to recover the key (with non-negligible probability) | methods to recover the key (with non-negligible probability) | |||
| require, on average, an effort comparable to 2^(N-1) operations of | require, on average, an effort comparable to 2^(N-1) operations of | |||
| a typical block cipher. | a typical block cipher. | |||
| Dictionary attack resistance | Dictionary attack resistance | |||
| Where password authentication is used, passwords are commonly | Where password authentication is used, passwords are commonly | |||
| selected from a small set (as compared to a set of N-bit keys), | selected from a small set (as compared to a set of N-bit keys), | |||
| which raises a concern about dictionary attacks. A method may be | which raises a concern about dictionary attacks. A method may be | |||
| said to provide protection against dictionary attacks if, when it | said to provide protection against dictionary attacks if, when it | |||
| uses a password as a secret, the method does not allow an offline | uses a password as a secret, the method does not allow an offline | |||
| attack that has a work factor based on the number of passwords in | attack that has a work factor based on the number of passwords in | |||
| an attacker's dictionary. | an attacker's dictionary. | |||
| Fast reconnect | Fast reconnect | |||
| The ability, in the case where a security association has been | The ability, in the case where a security association has been | |||
| previously established, to create a new or refreshed security | previously established, to create a new or refreshed security | |||
| association more efficiently or in a smaller number of round- | association more efficiently or in a smaller number of round- | |||
| trips. | trips. | |||
| Cryptographic binding | Cryptographic binding | |||
| The demonstration of the EAP peer to the EAP server that a single | The demonstration of the EAP peer to the EAP server that a single | |||
| entity has acted as the EAP peer for all methods executed within a | entity has acted as the EAP peer for all methods executed within a | |||
| tunnel method. Binding MAY also imply that the EAP server | tunnel method. Binding MAY also imply that the EAP server | |||
| demonstrates to the peer that a single entity has acted as the EAP | demonstrates to the peer that a single entity has acted as the EAP | |||
| skipping to change at page 46, line 21 | skipping to change at page 48, line 13 | |||
| Cryptographic binding | Cryptographic binding | |||
| The demonstration of the EAP peer to the EAP server that a single | The demonstration of the EAP peer to the EAP server that a single | |||
| entity has acted as the EAP peer for all methods executed within a | entity has acted as the EAP peer for all methods executed within a | |||
| tunnel method. Binding MAY also imply that the EAP server | tunnel method. Binding MAY also imply that the EAP server | |||
| demonstrates to the peer that a single entity has acted as the EAP | demonstrates to the peer that a single entity has acted as the EAP | |||
| server for all methods executed within a tunnel method. If | server for all methods executed within a tunnel method. If | |||
| executed correctly, binding serves to mitigate man-in-the-middle | executed correctly, binding serves to mitigate man-in-the-middle | |||
| vulnerabilities. | vulnerabilities. | |||
| Session independence | Session independence | |||
| The demonstration that passive attacks (such as capture of the EAP | The demonstration that passive attacks (such as capture of the EAP | |||
| conversation) or active attacks (including compromise of the MSK | conversation) or active attacks (including compromise of the MSK | |||
| or EMSK) does not enable compromise of subsequent or prior MSKs or | or EMSK) does not enable compromise of subsequent or prior MSKs or | |||
| EMSKs. | EMSKs. | |||
| Fragmentation | Fragmentation | |||
| This refers to whether an EAP method supports fragmentation and | This refers to whether an EAP method supports fragmentation and | |||
| reassembly. As noted in Section 3.1, EAP methods should support | reassembly. As noted in Section 3.1, EAP methods should support | |||
| fragmentation and reassembly if EAP packets can exceed the minimum | fragmentation and reassembly if EAP packets can exceed the minimum | |||
| MTU of 1020 octets. | MTU of 1020 octets. | |||
| Channel binding | Channel binding | |||
| The communication within an EAP method of integrity-protected | The communication within an EAP method of integrity-protected | |||
| channel properties such as endpoint identifiers which can be | channel properties such as endpoint identifiers which can be | |||
| compared to values communicated via out of band mechanisms (such | compared to values communicated via out of band mechanisms (such | |||
| as via a AAA or lower layer protocol). | as via a AAA or lower layer protocol). | |||
| Perfect Forward Secrecy | ||||
| The demonstration that the derived keying material, such as the | ||||
| MSK and EMSK will not be compromised even if long-term secrets | ||||
| used in EAP conversation are compromised. | ||||
| Note: This list of security claims is not exhaustive. Additional | Note: This list of security claims is not exhaustive. Additional | |||
| properties, such as additional denial-of-service protection, may be | properties, such as additional denial-of-service protection, may be | |||
| relevant as well. | relevant as well. | |||
| 7.3. Identity Protection | 7.3. Identity Protection | |||
| An Identity exchange is optional within the EAP conversation. | An Identity exchange is optional within the EAP conversation. | |||
| Therefore, it is possible to omit the Identity exchange entirely, or | Therefore, it is possible to omit the Identity exchange entirely, or | |||
| to use a method-specific identity exchange once a protected channel | to use a method-specific identity exchange once a protected channel | |||
| has been established. | has been established. | |||
| However, where roaming is supported as described in [RFC2607], it may | However, where roaming is supported as described in [RFC2607], it may | |||
| be necessary to locate the appropriate backend authentication server | be necessary to locate the appropriate backend authentication server | |||
| before the authentication conversation can proceed. The realm | before the authentication conversation can proceed. The realm | |||
| portion of the Network Access Identifier (NAI) [RFC2486] is typically | portion of the Network Access Identifier (NAI) [RFC2486] is typically | |||
| included within the EAP-Response/Identity in order to enable the | included within the EAP-Response/Identity in order to enable the | |||
| authentication exchange to be routed to the appropriate backend | authentication exchange to be routed to the appropriate backend | |||
| authentication server. Therefore, while the peer-name portion of the | authentication server. Therefore, while the peer-name portion of the | |||
| NAI may be omitted in the EAP-Response/Identity where proxies or | NAI SHOULD be omitted in the EAP-Response/Identity where proxies or | |||
| relays are present, the realm portion may be required. | relays are present, the realm portion may be required. | |||
| It is possible for the identity in the identity response to be | It is possible for the identity in the identity response to be | |||
| different from the identity authenticated by the EAP method. This | different from the identity authenticated by the EAP method. This | |||
| may be intentional in the case of identity privacy. An EAP method | may be intentional in the case of identity privacy. An EAP method | |||
| SHOULD use the authenticated identity when making access control | SHOULD use the authenticated identity when making access control | |||
| decisions. | decisions. | |||
| 7.4. Man-in-the-Middle Attacks | 7.4. Man-in-the-Middle Attacks | |||
| Where EAP is tunneled within another protocol that omits peer | Where EAP is tunneled within another protocol that omits peer | |||
| authentication, there exists a potential vulnerability to a man-in- | authentication, there exists a potential vulnerability to a man-in- | |||
| the-middle attack. For details, see [BINDING] and [MITM]. | the-middle attack. For details, see [I-D.puthenkulam-eap-binding] | |||
| and [MITM]. | ||||
| As noted in Section 2.1, EAP does not permit untunneled sequences of | As noted in Section 2.1, EAP does not permit untunneled sequences of | |||
| authentication methods. Were a sequence of EAP authentication | authentication methods. Were a sequence of EAP authentication | |||
| methods to be permitted, the peer might not have proof that a single | methods to be permitted, the peer might not have proof that a single | |||
| entity has acted as the authenticator for all EAP methods within the | entity has acted as the authenticator for all EAP methods within the | |||
| sequence. For example, an authenticator might terminate one EAP | sequence. For example, an authenticator might terminate one EAP | |||
| method, then forward the next method in the sequence to another party | method, then forward the next method in the sequence to another party | |||
| without the peer's knowledge or consent. Similarly, the | without the peer's knowledge or consent. Similarly, the | |||
| authenticator might not have proof that a single entity has acted as | authenticator might not have proof that a single entity has acted as | |||
| the peer for all EAP methods within the sequence. | the peer for all EAP methods within the sequence. | |||
| skipping to change at page 47, line 44 | skipping to change at page 49, line 47 | |||
| tunneling protocol is used for key establishment but does not require | tunneling protocol is used for key establishment but does not require | |||
| peer authentication, an attacker convincing a legitimate peer to | peer authentication, an attacker convincing a legitimate peer to | |||
| connect to it will be able to tunnel EAP packets to a legitimate | connect to it will be able to tunnel EAP packets to a legitimate | |||
| server, successfully authenticating and obtaining the key. This | server, successfully authenticating and obtaining the key. This | |||
| allows the attacker to successfully establish itself as a man-in- | allows the attacker to successfully establish itself as a man-in- | |||
| the-middle, gaining access to the network, as well as the ability to | the-middle, gaining access to the network, as well as the ability to | |||
| decrypt data traffic between the legitimate peer and server. | decrypt data traffic between the legitimate peer and server. | |||
| This attack may be mitigated by the following measures: | This attack may be mitigated by the following measures: | |||
| [a] Requiring mutual authentication within EAP tunneling mechanisms. | 1. Requiring mutual authentication within EAP tunneling mechanisms. | |||
| [b] Requiring cryptographic binding between the EAP tunneling | 2. Requiring cryptographic binding between the EAP tunneling | |||
| protocol and the tunneled EAP methods. Where cryptographic | protocol and the tunneled EAP methods. Where cryptographic | |||
| binding is supported, a mechanism is also needed to protect | binding is supported, a mechanism is also needed to protect | |||
| against downgrade attacks that would bypass it. For further | against downgrade attacks that would bypass it. For further | |||
| details on cryptographic binding, see [BINDING]. | details on cryptographic binding, see | |||
| [I-D.puthenkulam-eap-binding]. | ||||
| [c] Limiting the EAP methods authorized for use without protection, | 3. Limiting the EAP methods authorized for use without protection, | |||
| based on peer and authenticator policy. | based on peer and authenticator policy. | |||
| [d] Avoiding the use of tunnels when a single, strong method is | 4. Avoiding the use of tunnels when a single, strong method is | |||
| available. | available. | |||
| 7.5. Packet Modification Attacks | 7.5. Packet Modification Attacks | |||
| While EAP methods may support per-packet data origin authentication, | While EAP methods may support per-packet data origin authentication, | |||
| integrity, and replay protection, support is not provided within the | integrity, and replay protection, support is not provided within the | |||
| EAP layer. | EAP layer. | |||
| Since the Identifier is only a single octet, it is easy to guess, | Since the Identifier is only a single octet, it is easy to guess, | |||
| allowing an attacker to successfully inject or replay EAP packets. | allowing an attacker to successfully inject or replay EAP packets. | |||
| skipping to change at page 48, line 47 | skipping to change at page 50, line 50 | |||
| packets include coverage of all the EAP header fields, including the | packets include coverage of all the EAP header fields, including the | |||
| Code, Identifier, Length, Type, and Type-Data fields. | Code, Identifier, Length, Type, and Type-Data fields. | |||
| Since EAP messages of Types Identity, Notification, and Nak do not | Since EAP messages of Types Identity, Notification, and Nak do not | |||
| include their own MIC, it may be desirable for the EAP method MIC to | include their own MIC, it may be desirable for the EAP method MIC to | |||
| cover information contained within these messages, as well as the | cover information contained within these messages, as well as the | |||
| header of each EAP message. | header of each EAP message. | |||
| To provide protection, EAP also may be encapsulated within a | To provide protection, EAP also may be encapsulated within a | |||
| protected channel created by protocols such as ISAKMP [RFC2408], as | protected channel created by protocols such as ISAKMP [RFC2408], as | |||
| is done in [IKEv2] or within TLS [RFC2246]. However, as noted in | is done in [RFC7296] or within TLS [RFC2246]. However, as noted in | |||
| Section 7.4, EAP tunneling may result in a man-in-the-middle | Section 7.4, EAP tunneling may result in a man-in-the-middle | |||
| vulnerability. | vulnerability. | |||
| Existing EAP methods define message integrity checks (MICs) that | Existing EAP methods define message integrity checks (MICs) that | |||
| cover more than one EAP packet. For example, EAP-TLS [RFC2716] | cover more than one EAP packet. For example, EAP-TLS | |||
| defines a MIC over a TLS record that could be split into multiple | [RFC5216][I-D.ietf-emu-eap-tls13] defines a MIC over a TLS record | |||
| fragments; within the FINISHED message, the MIC is computed over | that could be split into multiple fragments; within the FINISHED | |||
| previous messages. Where the MIC covers more than one EAP packet, a | message, the MIC is computed over previous messages. Where the MIC | |||
| MIC validation failure is typically considered a fatal error. | covers more than one EAP packet, a MIC validation failure is | |||
| typically considered a fatal error. | ||||
| Within EAP-TLS [RFC2716], a MIC validation failure is treated as a | Within EAP-TLS [RFC5216][I-D.ietf-emu-eap-tls13], a MIC validation | |||
| fatal error, since that is what is specified in TLS [RFC2246]. | failure is treated as a fatal error, since that is what is specified | |||
| However, it is also possible to develop EAP methods that support | in TLS [RFC2246]. However, it is also possible to develop EAP | |||
| per-packet MICs, and respond to verification failures by silently | methods that support per-packet MICs, and respond to verification | |||
| discarding the offending packet. | failures by silently discarding the offending packet. | |||
| In this document, descriptions of EAP message handling assume that | In this document, descriptions of EAP message handling assume that | |||
| per-packet MIC validation, where it occurs, is effectively performed | per-packet MIC validation, where it occurs, is effectively performed | |||
| as though it occurs before sending any responses or changing the | as though it occurs before sending any responses or changing the | |||
| state of the host which received the packet. | state of the host which received the packet. | |||
| 7.6. Dictionary Attacks | 7.6. Dictionary Attacks | |||
| Password authentication algorithms such as EAP-MD5, MS-CHAPv1 | Password authentication algorithms such as EAP-MD5, MS-CHAPv1 | |||
| [RFC2433], and Kerberos V [RFC1510] are known to be vulnerable to | [RFC2433], and Kerberos V [RFC1510] are known to be vulnerable to | |||
| skipping to change at page 51, line 25 | skipping to change at page 53, line 30 | |||
| The MSK and EMSK MUST NOT be used directly to protect data; however, | The MSK and EMSK MUST NOT be used directly to protect data; however, | |||
| they are of sufficient size to enable derivation of a AAA-Key | they are of sufficient size to enable derivation of a AAA-Key | |||
| subsequently used to derive Transient Session Keys (TSKs) for use | subsequently used to derive Transient Session Keys (TSKs) for use | |||
| with the selected ciphersuite. Each ciphersuite is responsible for | with the selected ciphersuite. Each ciphersuite is responsible for | |||
| specifying how to derive the TSKs from the AAA-Key. | specifying how to derive the TSKs from the AAA-Key. | |||
| The AAA-Key is derived from the keying material exported by the EAP | The AAA-Key is derived from the keying material exported by the EAP | |||
| method (MSK and EMSK). This derivation occurs on the AAA server. In | method (MSK and EMSK). This derivation occurs on the AAA server. In | |||
| many existing protocols that use EAP, the AAA-Key and MSK are | many existing protocols that use EAP, the AAA-Key and MSK are | |||
| equivalent, but more complicated mechanisms are possible (see | equivalent, but more complicated mechanisms are possible (see | |||
| [KEYFRAME] for details). | [RFC5247] for details). | |||
| EAP methods SHOULD ensure the freshness of the MSK and EMSK, even in | EAP methods SHOULD ensure the freshness of the MSK and EMSK, even in | |||
| cases where one party may not have a high quality random number | cases where one party may not have a high quality random number | |||
| generator. A RECOMMENDED method is for each party to provide a nonce | generator. A RECOMMENDED method is for each party to provide a nonce | |||
| of at least 128 bits, used in the derivation of the MSK and EMSK. | of at least 128 bits, used in the derivation of the MSK and EMSK. | |||
| EAP methods export the MSK and EMSK, but not Transient Session Keys | EAP methods export the MSK and EMSK, but not Transient Session Keys | |||
| so as to allow EAP methods to be ciphersuite and media independent. | so as to allow EAP methods to be ciphersuite and media independent. | |||
| Keying material exported by EAP methods MUST be independent of the | Keying material exported by EAP methods MUST be independent of the | |||
| ciphersuite negotiated to protect data. | ciphersuite negotiated to protect data. | |||
| skipping to change at page 52, line 44 | skipping to change at page 54, line 51 | |||
| which remains valid on another party. | which remains valid on another party. | |||
| This specification does not provide detailed guidance on how EAP | This specification does not provide detailed guidance on how EAP | |||
| methods derive the MSK and EMSK, how the AAA-Key is derived from the | methods derive the MSK and EMSK, how the AAA-Key is derived from the | |||
| MSK and/or EMSK, or how the TSKs are derived from the AAA-Key. | MSK and/or EMSK, or how the TSKs are derived from the AAA-Key. | |||
| The development and validation of key derivation algorithms is | The development and validation of key derivation algorithms is | |||
| difficult, and as a result, EAP methods SHOULD re-use well | difficult, and as a result, EAP methods SHOULD re-use well | |||
| established and analyzed mechanisms for key derivation (such as those | established and analyzed mechanisms for key derivation (such as those | |||
| specified in IKE [RFC2409] or TLS [RFC2246]), rather than inventing | specified in IKE [RFC2409] or TLS [RFC2246]), rather than inventing | |||
| new ones. EAP methods SHOULD also utilize well established and | new ones. EAP methods SHOULD also utilize well established and | |||
| analyzed mechanisms for MSK and EMSK derivation. Further details on | analyzed mechanisms for MSK and EMSK derivation. Further details on | |||
| EAP Key Derivation are provided within [KEYFRAME]. | EAP Key Derivation are provided within [RFC5247]. | |||
| 7.11. Weak Ciphersuites | 7.11. Weak Ciphersuites | |||
| If after the initial EAP authentication, data packets are sent | If after the initial EAP authentication, data packets are sent | |||
| without per-packet authentication, integrity, and replay protection, | without per-packet authentication, integrity, and replay protection, | |||
| an attacker with access to the media can inject packets, "flip bits" | an attacker with access to the media can inject packets, "flip bits" | |||
| within existing packets, replay packets, or even hijack the session | within existing packets, replay packets, or even hijack the session | |||
| completely. Without per-packet confidentiality, it is possible to | completely. Without per-packet confidentiality, it is possible to | |||
| snoop data packets. | snoop data packets. | |||
| skipping to change at page 53, line 33 | skipping to change at page 55, line 35 | |||
| downgrading attacks which would lead to weaker ciphersuites being | downgrading attacks which would lead to weaker ciphersuites being | |||
| used, clients implementing lower layer ciphersuite negotiation SHOULD | used, clients implementing lower layer ciphersuite negotiation SHOULD | |||
| protect against negotiation downgrading. | protect against negotiation downgrading. | |||
| This can be done by enabling users to configure which ciphersuites | This can be done by enabling users to configure which ciphersuites | |||
| are acceptable as a matter of security policy, or the ciphersuite | are acceptable as a matter of security policy, or the ciphersuite | |||
| negotiation MAY be authenticated using keying material derived from | negotiation MAY be authenticated using keying material derived from | |||
| the EAP authentication and a MIC algorithm agreed upon in advance by | the EAP authentication and a MIC algorithm agreed upon in advance by | |||
| lower-layer peers. | lower-layer peers. | |||
| 7.11.1. Legacy Authentication Methods | ||||
| EAP has a long history, and the early authentication methods have | ||||
| severe issues. For instance, the MD5-Challenge method uses an | ||||
| algorithm that has problems described in [RFC6151]. These problems | ||||
| are particularly pressing, given that MD5-Challenge does not employ a | ||||
| HMAC construction. The use of MD5-Challenge is NOT RECOMMENDED, at | ||||
| least not outside an external, tunneled authentication method. | ||||
| Users and network administrators must be aware of the security issues | ||||
| in the authentication methods they choose to allow and use. Modern | ||||
| use of EAP employes typically newer authentication methods such as | ||||
| Transport Layer Security (EAP-TLS) [I-D.ietf-emu-eap-tls13], Tunnel | ||||
| Extensible Authentication Protocol (TEAP) [RFC7170], or 3rd | ||||
| Generation Authentication and Key Agreement (EAP-AKA') | ||||
| [I-D.ietf-emu-rfc5448bis]. | ||||
| 7.12. Link Layer | 7.12. Link Layer | |||
| There are reliability and security issues with link layer indications | There are reliability and security issues with link layer indications | |||
| in PPP, IEEE 802 LANs, and IEEE 802.11 wireless LANs: | in PPP, IEEE 802 LANs, and IEEE 802.11 wireless LANs: | |||
| [a] PPP. In PPP, link layer indications such as LCP-Terminate (a | 1. PPP. In PPP, link layer indications such as LCP-Terminate (a | |||
| link failure indication) and NCP (a link success indication) are | link failure indication) and NCP (a link success indication) are | |||
| not authenticated or integrity protected. They can therefore be | not authenticated or integrity protected. They can therefore be | |||
| spoofed by an attacker with access to the link. | spoofed by an attacker with access to the link. | |||
| [b] IEEE 802. IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames are | 2. IEEE 802. IEEE 802.1X EAPOL-Start and EAPOL-Logoff frames are | |||
| not authenticated or integrity protected. They can therefore be | not authenticated or integrity protected. They can therefore be | |||
| spoofed by an attacker with access to the link. | spoofed by an attacker with access to the link. | |||
| [c] IEEE 802.11. In IEEE 802.11, link layer indications include | 3. IEEE 802.11. In IEEE 802.11, link layer indications include | |||
| Disassociate and Deauthenticate frames (link failure | Disassociate and Deauthenticate frames (link failure | |||
| indications), and the first message of the 4-way handshake (link | indications), and the first message of the 4-way handshake (link | |||
| success indication). These messages are not authenticated or | success indication). These messages are not authenticated or | |||
| integrity protected, and although they are not forwardable, they | integrity protected, and although they are not forwardable, they | |||
| are spoofable by an attacker within range. | are spoofable by an attacker within range. | |||
| In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3 | In IEEE 802.11, IEEE 802.1X data frames may be sent as Class 3 | |||
| unicast data frames, and are therefore forwardable. This implies | unicast data frames, and are therefore forwardable. This implies | |||
| that while EAPOL-Start and EAPOL-Logoff messages may be authenticated | that while EAPOL-Start and EAPOL-Logoff messages may be authenticated | |||
| and integrity protected, they can be spoofed by an authenticated | and integrity protected, they can be spoofed by an authenticated | |||
| skipping to change at page 54, line 33 | skipping to change at page 57, line 5 | |||
| subsequent data traffic. This does not present an issue on the peer, | subsequent data traffic. This does not present an issue on the peer, | |||
| since the peer and EAP client reside on the same machine; all that is | since the peer and EAP client reside on the same machine; all that is | |||
| required is for the client to derive the AAA-Key from the MSK and | required is for the client to derive the AAA-Key from the MSK and | |||
| EMSK exported by the EAP method, and to subsequently pass a Transient | EMSK exported by the EAP method, and to subsequently pass a Transient | |||
| Session Key (TSK) to the ciphersuite module. | Session Key (TSK) to the ciphersuite module. | |||
| However, in the case where the authenticator and authentication | However, in the case where the authenticator and authentication | |||
| server reside on different machines, there are several implications | server reside on different machines, there are several implications | |||
| for security. | for security. | |||
| [a] Authentication will occur between the peer and the authentication | 1. Authentication will occur between the peer and the authentication | |||
| server, not between the peer and the authenticator. This means | server, not between the peer and the authenticator. This means | |||
| that it is not possible for the peer to validate the identity of | that it is not possible for the peer to validate the identity of | |||
| the authenticator that it is speaking to, using EAP alone. | the authenticator that it is speaking to, using EAP alone. | |||
| [b] As discussed in [RFC3579], the authenticator is dependent on the | 2. As discussed in [RFC3579], the authenticator is dependent on the | |||
| AAA protocol in order to know the outcome of an authentication | AAA protocol in order to know the outcome of an authentication | |||
| conversation, and does not look at the encapsulated EAP packet | conversation, and does not look at the encapsulated EAP packet | |||
| (if one is present) to determine the outcome. In practice, this | (if one is present) to determine the outcome. In practice, this | |||
| implies that the AAA protocol spoken between the authenticator | implies that the AAA protocol spoken between the authenticator | |||
| and authentication server MUST support per-packet authentication, | and authentication server MUST support per-packet authentication, | |||
| integrity, and replay protection. | integrity, and replay protection. | |||
| [c] After completion of the EAP conversation, where lower layer | 3. After completion of the EAP conversation, where lower layer | |||
| security services such as per-packet confidentiality, | security services such as per-packet confidentiality, | |||
| authentication, integrity, and replay protection will be enabled, | authentication, integrity, and replay protection will be enabled, | |||
| a secure association protocol SHOULD be run between the peer and | a secure association protocol SHOULD be run between the peer and | |||
| authenticator in order to provide mutual authentication between | authenticator in order to provide mutual authentication between | |||
| the peer and authenticator, guarantee liveness of transient | the peer and authenticator, guarantee liveness of transient | |||
| session keys, provide protected ciphersuite and capabilities | session keys, provide protected ciphersuite and capabilities | |||
| negotiation for subsequent data, and synchronize key usage. | negotiation for subsequent data, and synchronize key usage. | |||
| [d] A AAA-Key derived from the MSK and/or EMSK negotiated between the | 4. A AAA-Key derived from the MSK and/or EMSK negotiated between the | |||
| peer and authentication server MAY be transmitted to the | peer and authentication server MAY be transmitted to the | |||
| authenticator. Therefore, a mechanism needs to be provided to | authenticator. Therefore, a mechanism needs to be provided to | |||
| transmit the AAA-Key from the authentication server to the | transmit the AAA-Key from the authentication server to the | |||
| authenticator that needs it. The specification of the AAA-key | authenticator that needs it. The specification of the AAA-key | |||
| derivation, transport, and wrapping mechanisms is outside the | derivation, transport, and wrapping mechanisms is outside the | |||
| scope of this document. Further details on AAA-Key Derivation | scope of this document. Further details on AAA-Key Derivation | |||
| are provided within [KEYFRAME]. | are provided within [RFC5247]. | |||
| 7.14. Cleartext Passwords | 7.14. Cleartext Passwords | |||
| This specification does not define a mechanism for cleartext password | This specification does not define a mechanism for cleartext password | |||
| authentication. The omission is intentional. Use of cleartext | authentication. The omission is intentional. Use of cleartext | |||
| passwords would allow the password to be captured by an attacker with | passwords would allow the password to be captured by an attacker with | |||
| access to a link over which EAP packets are transmitted. | access to a link over which EAP packets are transmitted. | |||
| Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not | Since protocols encapsulating EAP, such as RADIUS [RFC3579], may not | |||
| provide confidentiality, EAP packets may be subsequently encapsulated | provide confidentiality, EAP packets may be subsequently encapsulated | |||
| skipping to change at page 58, line 24 | skipping to change at page 60, line 43 | |||
| Protected result indications address some denial-of-service | Protected result indications address some denial-of-service | |||
| vulnerabilities due to spoofing of Success and Failure packets, | vulnerabilities due to spoofing of Success and Failure packets, | |||
| though not all. EAP methods can typically provide protected result | though not all. EAP methods can typically provide protected result | |||
| indications only in some circumstances. For example, errors can | indications only in some circumstances. For example, errors can | |||
| occur prior to key derivation, and so it may not be possible to | occur prior to key derivation, and so it may not be possible to | |||
| protect all failure indications. It is also possible that result | protect all failure indications. It is also possible that result | |||
| indications may not be supported in both directions or that | indications may not be supported in both directions or that | |||
| synchronization may not be achieved in all modes of operation. | synchronization may not be achieved in all modes of operation. | |||
| For example, within EAP-TLS [RFC2716], in the client authentication | For example, within EAP-TLS [RFC5216][I-D.ietf-emu-eap-tls13], in the | |||
| handshake, the server authenticates the peer, but does not receive a | client authentication handshake, the server authenticates the peer, | |||
| protected indication of whether the peer has authenticated it. In | but does not receive a protected indication of whether the peer has | |||
| contrast, the peer authenticates the server and is aware of whether | authenticated it. In contrast, the peer authenticates the server and | |||
| the server has authenticated it. In the session resumption | is aware of whether the server has authenticated it. In the session | |||
| handshake, the peer authenticates the server, but does not receive a | resumption handshake, the peer authenticates the server, but does not | |||
| protected indication of whether the server has authenticated it. In | receive a protected indication of whether the server has | |||
| this mode, the server authenticates the peer and is aware of whether | authenticated it. In this mode, the server authenticates the peer | |||
| the peer has authenticated it. | and is aware of whether the peer has authenticated it. | |||
| 8. Acknowledgements | 8. References | |||
| This protocol derives much of its inspiration from Dave Carrel's AHA | 8.1. Normative References | |||
| document, as well as the PPP CHAP protocol [RFC1994]. Valuable | ||||
| feedback was provided by Yoshihiro Ohba of Toshiba America Research, | ||||
| Jari Arkko of Ericsson, Sachin Seth of Microsoft, Glen Zorn of Cisco | ||||
| Systems, Jesse Walker of Intel, Bill Arbaugh, Nick Petroni and Bryan | ||||
| Payne of the University of Maryland, Steve Bellovin of AT&T Research, | ||||
| Paul Funk of Funk Software, Pasi Eronen of Nokia, Joseph Salowey of | ||||
| Cisco, Paul Congdon of HP, and members of the EAP working group. | ||||
| The use of Security Claims sections for EAP methods, as required by | [RFC1661] Simpson, W., Ed., "The Point-to-Point Protocol (PPP)", | |||
| Section 7.2 and specified for each EAP method described in this | STD 51, RFC 1661, DOI 10.17487/RFC1661, July 1994, | |||
| document, was inspired by Glen Zorn through [EAP-EVAL]. | <https://www.rfc-editor.org/info/rfc1661>. | |||
| 9. References | [RFC1994] Simpson, W., "PPP Challenge Handshake Authentication | |||
| Protocol (CHAP)", RFC 1994, DOI 10.17487/RFC1994, August | ||||
| 1996, <https://www.rfc-editor.org/info/rfc1994>. | ||||
| 9.1. Normative References | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | ||||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | ||||
| editor.org/info/rfc2119>. | ||||
| [RFC1661] Simpson, W., "The Point-to-Point Protocol (PPP)", | [RFC2243] Metz, C., "OTP Extended Responses", RFC 2243, | |||
| STD 51, RFC 1661, July 1994. | DOI 10.17487/RFC2243, November 1997, <https://www.rfc- | |||
| editor.org/info/rfc2243>. | ||||
| [RFC1994] Simpson, W., "PPP Challenge Handshake | [RFC2289] Haller, N., Metz, C., Nesser, P., and M. Straw, "A One- | |||
| Authentication Protocol (CHAP)", RFC 1994, August | Time Password System", STD 61, RFC 2289, | |||
| 1996. | DOI 10.17487/RFC2289, February 1998, <https://www.rfc- | |||
| editor.org/info/rfc2289>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to | [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO | |||
| Indicate Requirement Levels", BCP 14, RFC 2119, | 10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November | |||
| March 1997. | 2003, <https://www.rfc-editor.org/info/rfc3629>. | |||
| [RFC2243] Metz, C., "OTP Extended Responses", RFC 2243, | [RFC6298] Paxson, V., Allman, M., Chu, J., and M. Sargent, | |||
| November 1997. | "Computing TCP's Retransmission Timer", RFC 6298, | |||
| DOI 10.17487/RFC6298, June 2011, <https://www.rfc- | ||||
| editor.org/info/rfc6298>. | ||||
| [RFC2279] Yergeau, F., "UTF-8, a transformation format of | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| ISO 10646", RFC 2279, January 1998. | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [RFC2289] Haller, N., Metz, C., Nesser, P. and M. Straw, "A | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| One-Time Password System", RFC 2289, February | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| 1998. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for | [IEEE-802] | |||
| Writing an IANA Considerations Section in RFCs", | Institute of Electrical and Electronics Engineers, "Local | |||
| BCP 26, RFC 2434, October 1998. | and Metropolitan Area Networks: Overview and | |||
| Architecture", IEEE Standard 802, 1990. | ||||
| [RFC2988] Paxson, V. and M. Allman, "Computing TCP's | [IEEE-802.1X] | |||
| Retransmission Timer", RFC 2988, November 2000. | Institute of Electrical and Electronics Engineers, "Local | |||
| and Metropolitan Area Networks: Port-Based Network Access | ||||
| Control", IEEE Standard 802.1X, January 2020. | ||||
| [IEEE-802] Institute of Electrical and Electronics Engineers, | [TS.33.501] | |||
| "Local and Metropolitan Area Networks: Overview | 3GPP, "Security architecture and procedures for 5G | |||
| and Architecture", IEEE Standard 802, 1990. | System", 3GPP TS 33.501 17.0.0, December 2020. | |||
| [IEEE-802.1X] Institute of Electrical and Electronics Engineers, | 8.2. Informative References | |||
| "Local and Metropolitan Area Networks: Port-Based | ||||
| Network Access Control", IEEE Standard 802.1X, | ||||
| September 2001. | ||||
| 9.2. Informative References | [RFC0793] Postel, J., "Transmission Control Protocol", STD 7, | |||
| RFC 793, DOI 10.17487/RFC0793, September 1981, | ||||
| <https://www.rfc-editor.org/info/rfc793>. | ||||
| [RFC793] Postel, J., "Transmission Control Protocol", STD | [RFC1510] Kohl, J. and C. Neuman, "The Kerberos Network | |||
| 7, RFC 793, September 1981. | Authentication Service (V5)", RFC 1510, | |||
| DOI 10.17487/RFC1510, September 1993, <https://www.rfc- | ||||
| editor.org/info/rfc1510>. | ||||
| [RFC1510] Kohl, J. and B. Neuman, "The Kerberos Network | [RFC1750] Eastlake 3rd, D., Crocker, S., and J. Schiller, | |||
| Authentication Service (V5)", RFC 1510, September | "Randomness Recommendations for Security", RFC 1750, | |||
| 1993. | DOI 10.17487/RFC1750, December 1994, <https://www.rfc- | |||
| editor.org/info/rfc1750>. | ||||
| [RFC1750] Eastlake, D., Crocker, S. and J. Schiller, | [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", | |||
| "Randomness Recommendations for Security", RFC | RFC 2246, DOI 10.17487/RFC2246, January 1999, | |||
| 1750, December 1994. | <https://www.rfc-editor.org/info/rfc2246>. | |||
| [RFC2246] Dierks, T., Allen, C., Treese, W., Karlton, P., | [RFC2284] Blunk, L. and J. Vollbrecht, "PPP Extensible | |||
| Freier, A. and P. Kocher, "The TLS Protocol | Authentication Protocol (EAP)", RFC 2284, | |||
| Version 1.0", RFC 2246, January 1999. | DOI 10.17487/RFC2284, March 1998, <https://www.rfc- | |||
| editor.org/info/rfc2284>. | ||||
| [RFC2284] Blunk, L. and J. Vollbrecht, "PPP Extensible | [RFC2408] Maughan, D., Schertler, M., Schneider, M., and J. Turner, | |||
| Authentication Protocol (EAP)", RFC 2284, March | "Internet Security Association and Key Management Protocol | |||
| 1998. | (ISAKMP)", RFC 2408, DOI 10.17487/RFC2408, November 1998, | |||
| <https://www.rfc-editor.org/info/rfc2408>. | ||||
| [RFC2486] Aboba, B. and M. Beadles, "The Network Access | [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange | |||
| Identifier", RFC 2486, January 1999. | (IKE)", RFC 2409, DOI 10.17487/RFC2409, November 1998, | |||
| <https://www.rfc-editor.org/info/rfc2409>. | ||||
| [RFC2408] Maughan, D., Schneider, M. and M. Schertler, | [RFC2433] Zorn, G. and S. Cobb, "Microsoft PPP CHAP Extensions", | |||
| "Internet Security Association and Key Management | RFC 2433, DOI 10.17487/RFC2433, October 1998, | |||
| Protocol (ISAKMP)", RFC 2408, November 1998. | <https://www.rfc-editor.org/info/rfc2433>. | |||
| [RFC2409] Harkins, D. and D. Carrel, "The Internet Key | [RFC2486] Aboba, B. and M. Beadles, "The Network Access Identifier", | |||
| Exchange (IKE)", RFC 2409, November 1998. | RFC 2486, DOI 10.17487/RFC2486, January 1999, | |||
| <https://www.rfc-editor.org/info/rfc2486>. | ||||
| [RFC2433] Zorn, G. and S. Cobb, "Microsoft PPP CHAP | [RFC2607] Aboba, B. and J. Vollbrecht, "Proxy Chaining and Policy | |||
| Extensions", RFC 2433, October 1998. | Implementation in Roaming", RFC 2607, | |||
| DOI 10.17487/RFC2607, June 1999, <https://www.rfc- | ||||
| editor.org/info/rfc2607>. | ||||
| [RFC2607] Aboba, B. and J. Vollbrecht, "Proxy Chaining and | [RFC2661] Townsley, W., Valencia, A., Rubens, A., Pall, G., Zorn, | |||
| Policy Implementation in Roaming", RFC 2607, June | G., and B. Palter, "Layer Two Tunneling Protocol "L2TP"", | |||
| 1999. | RFC 2661, DOI 10.17487/RFC2661, August 1999, | |||
| <https://www.rfc-editor.org/info/rfc2661>. | ||||
| [RFC2661] Townsley, W., Valencia, A., Rubens, A., Pall, G., | [RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson, | |||
| Zorn, G. and B. Palter, "Layer Two Tunneling | "Remote Authentication Dial In User Service (RADIUS)", | |||
| Protocol "L2TP"", RFC 2661, August 1999. | RFC 2865, DOI 10.17487/RFC2865, June 2000, | |||
| <https://www.rfc-editor.org/info/rfc2865>. | ||||
| [RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS | [RFC3162] Aboba, B., Zorn, G., and D. Mitton, "RADIUS and IPv6", | |||
| Authentication Protocol", RFC 2716, October 1999. | RFC 3162, DOI 10.17487/RFC3162, August 2001, | |||
| <https://www.rfc-editor.org/info/rfc3162>. | ||||
| [RFC2865] Rigney, C., Willens, S., Rubens, A. and W. | [RFC3454] Hoffman, P. and M. Blanchet, "Preparation of | |||
| Simpson, "Remote Authentication Dial In User | Internationalized Strings ("stringprep")", RFC 3454, | |||
| Service (RADIUS)", RFC 2865, June 2000. | DOI 10.17487/RFC3454, December 2002, <https://www.rfc- | |||
| editor.org/info/rfc3454>. | ||||
| [RFC2960] Stewart, R., Xie, Q., Morneault, K., Sharp, C., | [RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication | |||
| Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, | Dial In User Service) Support For Extensible | |||
| M., Zhang, L. and V. Paxson, "Stream Control | Authentication Protocol (EAP)", RFC 3579, | |||
| Transmission Protocol", RFC 2960, October 2000. | DOI 10.17487/RFC3579, September 2003, <https://www.rfc- | |||
| editor.org/info/rfc3579>. | ||||
| [RFC3162] Aboba, B., Zorn, G. and D. Mitton, "RADIUS and | [RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G., and J. Roese, | |||
| IPv6", RFC 3162, August 2001. | "IEEE 802.1X Remote Authentication Dial In User Service | |||
| (RADIUS) Usage Guidelines", RFC 3580, | ||||
| DOI 10.17487/RFC3580, September 2003, <https://www.rfc- | ||||
| editor.org/info/rfc3580>. | ||||
| [RFC3454] Hoffman, P. and M. Blanchet, "Preparation of | [RFC3692] Narten, T., "Assigning Experimental and Testing Numbers | |||
| Internationalized Strings ("stringprep")", RFC | Considered Useful", BCP 82, RFC 3692, | |||
| 3454, December 2002. | DOI 10.17487/RFC3692, January 2004, <https://www.rfc- | |||
| editor.org/info/rfc3692>. | ||||
| [RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | |||
| Authentication Dial In User Service) Support For | Levkowetz, Ed., "Extensible Authentication Protocol | |||
| Extensible Authentication Protocol (EAP)", RFC | (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, | |||
| 3579, September 2003. | <https://www.rfc-editor.org/info/rfc3748>. | |||
| [RFC3580] Congdon, P., Aboba, B., Smith, A., Zorn, G. and J. | [RFC4072] Eronen, P., Ed., Hiller, T., and G. Zorn, "Diameter | |||
| Roese, "IEEE 802.1X Remote Authentication Dial In | Extensible Authentication Protocol (EAP) Application", | |||
| User Service (RADIUS) Usage Guidelines", RFC 3580, | RFC 4072, DOI 10.17487/RFC4072, August 2005, | |||
| September 2003. | <https://www.rfc-editor.org/info/rfc4072>. | |||
| [RFC3692] Narten, T., "Assigning Experimental and Testing | [RFC4137] Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, | |||
| Numbers Considered Useful", BCP 82, RFC 3692, | "State Machines for Extensible Authentication Protocol | |||
| January 2004. | (EAP) Peer and Authenticator", RFC 4137, | |||
| DOI 10.17487/RFC4137, August 2005, <https://www.rfc- | ||||
| editor.org/info/rfc4137>. | ||||
| [DECEPTION] Slatalla, M. and J. Quittner, "Masters of | [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", | |||
| Deception", Harper-Collins, New York, 1995. | RFC 4960, DOI 10.17487/RFC4960, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4960>. | ||||
| [KRBATTACK] Wu, T., "A Real-World Analysis of Kerberos | [RFC5113] Arkko, J., Aboba, B., Korhonen, J., Ed., and F. Bari, | |||
| Password Security", Proceedings of the 1999 ISOC | "Network Discovery and Selection Problem", RFC 5113, | |||
| Network and Distributed System Security Symposium, | DOI 10.17487/RFC5113, January 2008, <https://www.rfc- | |||
| http://www.isoc.org/isoc/conferences/ndss/99/ | editor.org/info/rfc5113>. | |||
| proceedings/papers/wu.pdf. | ||||
| [KRBLIM] Bellovin, S. and M. Merrit, "Limitations of the | [RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS | |||
| Kerberos authentication system", Proceedings of | Authentication Protocol", RFC 5216, DOI 10.17487/RFC5216, | |||
| the 1991 Winter USENIX Conference, pp. 253-267, | March 2008, <https://www.rfc-editor.org/info/rfc5216>. | |||
| 1991. | ||||
| [KERB4WEAK] Dole, B., Lodin, S. and E. Spafford, "Misplaced | [RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible | |||
| trust: Kerberos 4 session keys", Proceedings of | Authentication Protocol (EAP) Key Management Framework", | |||
| the Internet Society Network and Distributed | RFC 5247, DOI 10.17487/RFC5247, August 2008, | |||
| System Security Symposium, pp. 60-70, March 1997. | <https://www.rfc-editor.org/info/rfc5247>. | |||
| [PIC] Aboba, B., Krawczyk, H. and Y. Sheffer, "PIC, A | [RFC4013] Zeilenga, K., "SASLprep: Stringprep Profile for User Names | |||
| Pre-IKE Credential Provisioning Protocol", Work in | and Passwords", RFC 4013, DOI 10.17487/RFC4013, February | |||
| Progress, October 2002. | 2005, <https://www.rfc-editor.org/info/rfc4013>. | |||
| [IKEv2] Kaufman, C., "Internet Key Exchange (IKEv2) | [RFC6151] Turner, S. and L. Chen, "Updated Security Considerations | |||
| Protocol", Work in Progress, January 2004. | for the MD5 Message-Digest and the HMAC-MD5 Algorithms", | |||
| RFC 6151, DOI 10.17487/RFC6151, March 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6151>. | ||||
| [PPTPv1] Schneier, B. and Mudge, "Cryptanalysis of | [RFC6677] Hartman, S., Ed., Clancy, T., and K. Hoeper, "Channel- | |||
| Microsoft's Point-to- Point Tunneling Protocol", | Binding Support for Extensible Authentication Protocol | |||
| Proceedings of the 5th ACM Conference on | (EAP) Methods", RFC 6677, DOI 10.17487/RFC6677, July 2012, | |||
| Communications and Computer Security, ACM Press, | <https://www.rfc-editor.org/info/rfc6677>. | |||
| November 1998. | ||||
| [IEEE-802.11] Institute of Electrical and Electronics Engineers, | [RFC6696] Cao, Z., He, B., Shi, Y., Wu, Q., Ed., and G. Zorn, Ed., | |||
| "Wireless LAN Medium Access Control (MAC) and | "EAP Extensions for the EAP Re-authentication Protocol | |||
| Physical Layer (PHY) Specifications", IEEE | (ERP)", RFC 6696, DOI 10.17487/RFC6696, July 2012, | |||
| Standard 802.11, 1999. | <https://www.rfc-editor.org/info/rfc6696>. | |||
| [SILVERMAN] Silverman, Robert D., "A Cost-Based Security | [RFC7029] Hartman, S., Wasserman, M., and D. Zhang, "Extensible | |||
| Analysis of Symmetric and Asymmetric Key Lengths", | Authentication Protocol (EAP) Mutual Cryptographic | |||
| RSA Laboratories Bulletin 13, April 2000 (Revised | Binding", RFC 7029, DOI 10.17487/RFC7029, October 2013, | |||
| November 2001), | <https://www.rfc-editor.org/info/rfc7029>. | |||
| http://www.rsasecurity.com/rsalabs/bulletins/ | ||||
| bulletin13.html. | ||||
| [KEYFRAME] Aboba, B., "EAP Key Management Framework", Work in | [RFC7170] Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | |||
| Progress, October 2003. | "Tunnel Extensible Authentication Protocol (TEAP) Version | |||
| 1", RFC 7170, DOI 10.17487/RFC7170, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7170>. | ||||
| [SASLPREP] Zeilenga, K., "SASLprep: Stringprep profile for | [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | |||
| user names and passwords", Work in Progress, March | Kivinen, "Internet Key Exchange Protocol Version 2 | |||
| 2004. | (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | |||
| 2014, <https://www.rfc-editor.org/info/rfc7296>. | ||||
| [IEEE-802.11i] Institute of Electrical and Electronics Engineers, | [RFC7613] Saint-Andre, P. and A. Melnikov, "Preparation, | |||
| "Unapproved Draft Supplement to Standard for | Enforcement, and Comparison of Internationalized Strings | |||
| Telecommunications and Information Exchange | Representing Usernames and Passwords", RFC 7613, | |||
| Between Systems - LAN/MAN Specific Requirements - | DOI 10.17487/RFC7613, August 2015, <https://www.rfc- | |||
| Part 11: Wireless LAN Medium Access Control (MAC) | editor.org/info/rfc7613>. | |||
| and Physical Layer (PHY) Specifications: | ||||
| Specification for Enhanced Security", IEEE Draft | ||||
| 802.11i (work in progress), 2003. | ||||
| [DIAM-EAP] Eronen, P., Hiller, T. and G. Zorn, "Diameter | [RFC8265] Saint-Andre, P. and A. Melnikov, "Preparation, | |||
| Extensible Authentication Protocol (EAP) | Enforcement, and Comparison of Internationalized Strings | |||
| Application", Work in Progress, February 2004. | Representing Usernames and Passwords", RFC 8265, | |||
| DOI 10.17487/RFC8265, October 2017, <https://www.rfc- | ||||
| editor.org/info/rfc8265>. | ||||
| [EAP-EVAL] Zorn, G., "Specifying Security Claims for EAP | [DECEPTION] | |||
| Authentication Types", Work in Progress, October | Slatalla, M. and J. Quittner, "Masters of Deception", | |||
| 2002. | Harper-Collins New York, 1995. | |||
| [BINDING] Puthenkulam, J., "The Compound Authentication | [KRBATTACK] | |||
| Binding Problem", Work in Progress, October 2003. | Wu, T., "A Real-World Analysis of Kerberos Password | |||
| Security", Proceedings of the 1999 ISOC Network and | ||||
| Distributed System Security Symposium | ||||
| http://www.isoc.org/isoc/conferences/ndss/99/proceedings/ | ||||
| papers/wu.pdf. | ||||
| [MITM] Asokan, N., Niemi, V. and K. Nyberg, "Man-in-the- | [KRBLIM] Bellovin, S. and M. Merrit, "Limitations of the Kerberos | |||
| Middle in Tunneled Authentication Protocols", IACR | authentication system", Proceedings of the 1991 Winter | |||
| ePrint Archive Report 2002/163, October 2002, | USENIX Conference pp. 253-267, 1991. | |||
| <http://eprint.iacr.org/2002/163>. | ||||
| [IEEE-802.11i-req] Stanley, D., "EAP Method Requirements for Wireless | [KERB4WEAK] | |||
| LANs", Work in Progress, February 2004. | Dole, B., Lodin, S., and E. Spafford, "Misplaced trust: | |||
| Kerberos 4 session keys", Proceedings of the Internet | ||||
| Society Network and Distributed System Security | ||||
| Symposium pp. 60-70, March 1997. | ||||
| [PPTPv2] Schneier, B. and Mudge, "Cryptanalysis of | [I-D.ietf-ipsra-pic] | |||
| Microsoft's PPTP Authentication Extensions (MS- | Sheffer, Y., Krawczyk, H., and B. Aboba, "PIC, A Pre-IKE | |||
| CHAPv2)", CQRE 99, Springer-Verlag, 1999, pp. | Credential Provisioning Protocol", draft-ietf-ipsra-pic-05 | |||
| 192-203. | (work in progress), February 2002. | |||
| Appendix A. Changes from RFC 2284 | [PPTPv1] Schneier, B. and Mudge, "Cryptanalysis of Microsoft's | |||
| Point-to- Point Tunneling Protocol", Proceedings of the | ||||
| 5th ACM Conference on Communications and Computer | ||||
| Security ACM Press, November 1998. | ||||
| This section lists the major changes between [RFC2284] and this | [IEEE-802.11] | |||
| document. Minor changes, including style, grammar, spelling, and | Institute of Electrical and Electronics Engineers, | |||
| editorial changes are not mentioned here. | "Wireless LAN Medium Access Control (MAC) and Physical | |||
| Layer (PHY) Specifications", IEEE Standard 802.11, 1999. | ||||
| o The Terminology section (Section 1.2) has been expanded, defining | [SILVERMAN] | |||
| more concepts and giving more exact definitions. | Silverman, R., "A Cost-Based Security Analysis of | |||
| Symmetric and Asymmetric Key Lengths", RSA Laboratories | ||||
| Bulletin 13 (Revised November 2001) | ||||
| http://www.rsasecurity.com/rsalabs/bulletins/ | ||||
| bulletin13.html, April 2000. | ||||
| o The concepts of Mutual Authentication, Key Derivation, and Result | [IEEE-802.11i] | |||
| Indications are introduced and discussed throughout the document | Institute of Electrical and Electronics Engineers, | |||
| where appropriate. | "Unapproved Draft Supplement to Standard for | |||
| Telecommunications and Information Exchange Between | ||||
| Systems - LAN/MAN Specific Requirements - Part 11: | ||||
| Wireless LAN Medium Access Control (MAC) and Physical | ||||
| Layer (PHY) Specifications: Specification for Enhanced | ||||
| Security", IEEE Draft 802.11i (work in progress), 2003. | ||||
| o In Section 2, it is explicitly specified that more than one | [I-D.zorn-eap-eval] | |||
| exchange of Request and Response packets may occur as part of the | Zorn, G., "Specifying Security Claims for EAP | |||
| EAP authentication exchange. How this may be used and how it may | Authentication Types", draft-zorn-eap-eval-00 (work in | |||
| not be used is specified in detail in Section 2.1. | progress), October 2002. | |||
| o Also in Section 2, some requirements have been made explicit for | [I-D.puthenkulam-eap-binding] | |||
| the authenticator when acting in pass-through mode. | Puthenkulam, J., "The Compound Authentication Binding | |||
| Problem", draft-puthenkulam-eap-binding-04 (work in | ||||
| progress), October 2003. | ||||
| o An EAP multiplexing model (Section 2.2) has been added to | [MITM] Asokan, N., Niemi, V., and K. Nyberg, "Man-in-the-Middle | |||
| illustrate a typical implementation of EAP. There is no | in Tunneled Authentication Protocols", IACR ePrint Archive | |||
| requirement that an implementation conform to this model, as long | Report 2002/163 http://eprint.iacr.org/2002/163, October | |||
| as the on-the-wire behavior is consistent with it. | 2002. | |||
| o As EAP is now in use with a variety of lower layers, not just PPP | [IEEE-802.11i-req] | |||
| for which it was first designed, Section 3 on lower layer behavior | Stanley, D., "EAP Method Requirements for Wireless LANs", | |||
| has been added. | February 2004. | |||
| o In the description of the EAP Request and Response interaction | [PPTPv2] Schneier, B. and Mudge, "Cryptanalysis of Microsoft's PPTP | |||
| (Section 4.1), both the behavior on receiving duplicate requests, | Authentication Extensions (MS-CHAPv2)", CQRE 99, Springer- | |||
| and when packets should be silently discarded has been more | Verlag pp. 192-203, 1999. | |||
| exactly specified. The implementation notes in this section have | ||||
| been substantially expanded. | ||||
| o In Section 4.2, it has been clarified that Success and Failure | [Terminology] | |||
| packets must not contain additional data, and the implementation | Alissa Cooper et al., , "Inclusive terminology in IETF | |||
| note has been expanded. A subsection giving requirements on | Documents", Contribution under the IETF | |||
| processing of success and failure packets has been added. | GitHub https://github.com/ietf/terminology, October 2020. | |||
| o Section 5 on EAP Request/Response Types lists two new Type values: | [W3C] Le Hegaret, P. and C. Mercier, "W3C Manual of Style", W3C | |||
| the Expanded Type (Section 5.7), which is used to expand the Type | Document https://w3c.github.io/manual-of-style/, January | |||
| value number space, and the Experimental Type. In the Expanded | 2021. | |||
| Type number space, the new Expanded Nak (Section 5.3.2) Type has | ||||
| been added. Clarifications have been made in the description of | ||||
| most of the existing Types. Security claims summaries have been | ||||
| added for authentication methods. | ||||
| o In Sections 5, 5.1, and 5.2, a requirement has been added such | [RedHat] Wright, C., "Making open source more inclusive by | |||
| that fields with displayable messages should contain UTF-8 encoded | eradicating problematic language", RedHat Blog | |||
| ISO 10646 characters. | https://www.redhat.com/en/blog/making-open-source-more- | |||
| inclusive-eradicating-problematic-language, January 2021. | ||||
| o It is now required in Section 5.1 that if the Type-Data field of | [GitLab] Ramsay, J., "Change the default initial branch name for | |||
| an Identity Request contains a NUL-character, only the part before | new projects on GitLab", GitLab issue 221164 | |||
| the null is displayed. RFC 2284 prohibits the null termination of | https://gitlab.com/gitlab-org/gitlab/-/issues/221164, June | |||
| the Type-Data field of Identity messages. This rule has been | 2020. | |||
| relaxed for Identity Request messages and the Identity Request | ||||
| Type-Data field may now be null terminated. | ||||
| o In Section 5.5, support for OTP Extended Responses [RFC2243] has | [Mozilla] Davidson, J., "Replace all user-facing instances that | |||
| been added to EAP OTP. | refer to "master" password", Mozilla Bug 1644807 | |||
| https://bugzilla.mozilla.org/show_bug.cgi?id=1644807, | ||||
| November 2016. | ||||
| o An IANA Considerations section (Section 6) has been added, giving | [IESG] IESG, , "IESG Statement On Oppressive or Exclusionary | |||
| registration policies for the numbering spaces defined for EAP. | Language", IESG Statement | |||
| https://www.ietf.org/about/groups/iesg/statements/ | ||||
| statement-on-oppressive-exclusionary-language/, July 2020. | ||||
| o The Security Considerations (Section 7) have been greatly | [I-D.ietf-emu-eap-tls13] | |||
| expanded, giving a much more comprehensive coverage of possible | Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | |||
| threats and other security considerations. | draft-ietf-emu-eap-tls13-13 (work in progress), November | |||
| 2020. | ||||
| o In Section 7.5, text has been added on method-specific behavior, | [I-D.ietf-emu-rfc5448bis] | |||
| providing guidance on how EAP method-specific integrity checks | Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | |||
| should be processed. Where possible, it is desirable for a | "Improved Extensible Authentication Protocol Method for | |||
| method-specific MIC to be computed over the entire EAP packet, | 3GPP Mobile Network Authentication and Key Agreement (EAP- | |||
| including the EAP layer header (Code, Identifier, Length) and EAP | AKA')", draft-ietf-emu-rfc5448bis-09 (work in progress), | |||
| method layer header (Type, Type-Data). | January 2021. | |||
| o In Section 7.14 the security risks involved in use of cleartext | Appendix A. Changes from RFC 3748 | |||
| passwords with EAP are described. | ||||
| o In Section 7.15 text has been added relating to detection of rogue | There are no changes with related to interoperability. Minor | |||
| NAS behavior. | changes, including style, grammar, spelling, and editorial changes | |||
| are not mentioned here. The only changes are the following: | ||||
| o The names of the MSK and EMSK terms used to discuss and specify | ||||
| the protocol have been changed. | ||||
| o The security considerations note the deficiencies in legacy EAP | ||||
| methods such as MD5-Challenge in Section 7.11.1, and recommend the | ||||
| use of more modern authentication methods. | ||||
| o Ivo Sedlacek's errata on a reference to Section 7.12 rather than | ||||
| Section 7.2 from Section 3.4 has been adopted. | ||||
| o IANA rules have been updated to comply with RFC 8126 and current | ||||
| allocations. | ||||
| o References have been updated to their most recent versions. | ||||
| o The security claim perfect forward secrecy has been added. | ||||
| o References to 3GPP 5G has been added. | ||||
| o The peer-name portion of the NAI SHOULD be omitted in the EAP- | ||||
| Response/Identity. | ||||
| o Since the publication of RFC3748, several documents related to the | ||||
| core EAP document have been published: [RFC4137] offers a proposed | ||||
| state machine [RFC5113] defines the network discovery and | ||||
| selection problem, [RFC5247] specifies the EAP key hierarchy, | ||||
| [RFC6677] [RFC7029] explores man-in-the-middle attacks and defines | ||||
| how to implement channel bindings. References to RFC 4137, RFC | ||||
| 5113, RFC 5247, RFC 6677, and RFC 7029 3GPP have been added. | ||||
| There are still some open questions, however: | ||||
| o RFC 3748 referred to an early version of the SASLPREP document, | ||||
| which turned into [RFC4013], then [RFC7613], and is currently | ||||
| [RFC8265]. Does this still apply? Has something been learned in | ||||
| the meanwhile about internationalization and passwords? | ||||
| o Is there a need to update security considerations beyond what was | ||||
| done already? The is likly more to say about privacy, identity | ||||
| protection, pervasive monitoring and perfect forward secrecy. | ||||
| o IEEE references need to be updated to newer ones. Some aspects of | ||||
| IEEE have changed since 2004 | ||||
| o IEEE links are discussed a lot in the document, and some of 3GPP | ||||
| link technologies and related EAP methods. Should the document | ||||
| say something more about 3GPP and 5G? | ||||
| o Could some sections be replaced by links to RFC 4137, RFC 5113, | ||||
| RFC 5247, RFC 6677, and RFC 7029? Should the document say more | ||||
| about RFC 4137, RFC 5113, RFC 5247, RFC 6677, and RFC 7029? | ||||
| o What other issues have been discussed since since 2004, but not | ||||
| recorded in errata? | ||||
| A summary of the changes between RFC 3748 and RFC 2284 were listed in | ||||
| Appendix A of RFC 3748 [RFC3748] [RFC2284]. | ||||
| Appendix B. Rationale | ||||
| In 2020, the Internet Engineering Steering Group (IESG) noted that | ||||
| terminology used in IETF documents is important [IESG]. When the | ||||
| objective of an organization is to be inclusive and respectful, | ||||
| terminology can also have an effect. There are obvious challenges | ||||
| for creating good terminology for the parts of Internet technology | ||||
| currently under development, both in a technical sense and in our | ||||
| ability to agree what terms are inclusive. There are also difficult | ||||
| tradeoffs related to changing terminology for existing technology, or | ||||
| for spending valuable effort on terminology vs. other things. | ||||
| This update is both a refresh of the RFC in general, bringing in the | ||||
| noted errata, updates to referred documents, but also an update of | ||||
| the terminology. | ||||
| With regards to terminology, the authors have worked for a long time | ||||
| with EAP technology, and continue to make contributions in this | ||||
| space. In the authors' view, while there is no need for a change, | ||||
| some of the terms that are used when referring to various parts of | ||||
| the overall EAP technology could be improved. As a result, the | ||||
| authors wanted to make a modest proposal for a change that would | ||||
| improve the terms without changing the associated acronyms, and | ||||
| enable better use of the terms in future documents. | ||||
| It should be noted that the issues with EAP terms are minor, compared | ||||
| many other terminology or other problems with Internet technology. | ||||
| The authors do not wish to start a big debate; if the WG finds this | ||||
| useful, we can perhaps make an update and move on. If not, we can | ||||
| simply move on without making a change. | ||||
| The specific change that is suggested in this document relates to the | ||||
| use of the word "master" in various EAP terms. This word is rather | ||||
| benign when compared to the use of master/slave or black/whitelists, | ||||
| and other similar terms. Indeed, "master" is commonly used in a | ||||
| large number of everyday terms. Given this, some authors and | ||||
| organizations have chosen to make updates only with the most | ||||
| egregious terms, such as master/slave. | ||||
| Nevertheless, at least the authors of this document feel that he | ||||
| would use another word if a different word or term was available. It | ||||
| should be noted that: | ||||
| o The slavery-related meaning comes up in any dictionary search for | ||||
| the word "master". | ||||
| o The word "master" and some suggested alternatives (such as "main") | ||||
| are listed in [Terminology]. | ||||
| o Several organisations have recommended changing the word "master" | ||||
| in various aspects of their documentation or software. Others are | ||||
| considering changes. See, for instance, [W3C] [RedHat] [GitLab] | ||||
| [Mozilla]. | ||||
| In any case, as noted, this proposal is for the working group to | ||||
| discuss. Discussion may find that the proposal is considered useful, | ||||
| unnecessary, or flawed in some fashion. | ||||
| Appendix C. Acknowledgements | ||||
| This version of the document is a minor update with respect to RFC | ||||
| 3748. The acknowledgements from RFC 3748 apply: | ||||
| This protocol derives much of its inspiration from Dave Carrel's | ||||
| AHA document, as well as the PPP CHAP protocol [RFC1994]. | ||||
| Valuable feedback was provided by Yoshihiro Ohba of Toshiba | ||||
| America Research, Jari Arkko of Ericsson, Sachin Seth of | ||||
| Microsoft, Glen Zorn of Cisco Systems, Jesse Walker of Intel, Bill | ||||
| Arbaugh, Nick Petroni and Bryan Payne of the University of | ||||
| Maryland, Steve Bellovin of AT&T Research, Paul Funk of Funk | ||||
| Software, Pasi Eronen of Nokia, Joseph Salowey of Cisco, Paul | ||||
| Congdon of HP, and members of the EAP working group. | ||||
| The use of Security Claims sections for EAP methods, as required | ||||
| by Section 7.2 and specified for each EAP method described in this | ||||
| document, was inspired by Glen Zorn through [I-D.zorn-eap-eval]. | ||||
| The authors of the most recent version of this document would like to | ||||
| thank Stephen Hayes, Lars Eggert, Mohit Sethi, Alissa Cooper, and Ivo | ||||
| Sedlacek for englightening discussions and general contributions in | ||||
| this area. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Bernard Aboba | Bernard Aboba | |||
| Microsoft Corporation | Microsoft Corporation | |||
| One Microsoft Way | ||||
| Redmond, WA 98052 | ||||
| USA | USA | |||
| Phone: +1 425 706 6605 | Email: bernarda@microsoft.com | |||
| Fax: +1 425 936 6605 | ||||
| EMail: bernarda@microsoft.com | ||||
| Larry J. Blunk | Larry J. Blunk | |||
| Merit Network, Inc | Merit Network, Inc | |||
| 4251 Plymouth Rd., Suite 2000 | ||||
| Ann Arbor, MI 48105-2785 | ||||
| USA | USA | |||
| Phone: +1 734-647-9563 | Email: ljb@merit.edu | |||
| Fax: +1 734-647-3185 | ||||
| EMail: ljb@merit.edu | ||||
| John R. Vollbrecht | John R. Vollbrecht | |||
| Vollbrecht Consulting LLC | Vollbrecht Consulting LLC | |||
| 9682 Alice Hill Drive | ||||
| Dexter, MI 48130 | ||||
| USA | USA | |||
| EMail: jrv@umich.edu | Email: jrv@umich.edu | |||
| James Carlson | James Carlson | |||
| Sun Microsystems, Inc | Sun Microsystems, Inc | |||
| 1 Network Drive | ||||
| Burlington, MA 01803-2757 | ||||
| USA | USA | |||
| Phone: +1 781 442 2084 | Email: james.d.carlson@sun.com | |||
| Fax: +1 781 442 1677 | ||||
| EMail: james.d.carlson@sun.com | ||||
| Henrik Levkowetz | Henrik Levkowetz | |||
| ipUnplugged AB | ipUnplugged AB | |||
| Arenavagen 33 | Sweden | |||
| Stockholm S-121 28 | ||||
| SWEDEN | ||||
| Phone: +46 708 32 16 08 | ||||
| EMail: henrik@levkowetz.com | ||||
| Full Copyright Statement | ||||
| Copyright (C) The Internet Society (2004). This document is subject | ||||
| to the rights, licenses and restrictions contained in BCP 78, and | ||||
| except as set forth therein, the authors retain all their rights. | ||||
| This document and the information contained herein are provided on an | ||||
| "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
| OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
| ENGINEERING TASK FORCE DISCLAIM 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. | ||||
| Intellectual Property | ||||
| The IETF takes no position regarding the validity or scope of any | ||||
| Intellectual Property Rights or other rights that might be claimed to | ||||
| pertain to the implementation or use of the technology described in | ||||
| this document or the extent to which any license under such rights | ||||
| might or might not be available; nor does it represent that it has | ||||
| made any independent effort to identify any such rights. Information | ||||
| on the procedures with respect to rights in RFC documents can be | ||||
| found in BCP 78 and BCP 79. | ||||
| Copies of IPR disclosures made to the IETF Secretariat and any | Email: henrik@levkowetz.com | |||
| assurances of licenses to be made available, or the result of an | Jari Arkko (Editor) | |||
| attempt made to obtain a general license or permission for the use of | Ericsson | |||
| such proprietary rights by implementers or users of this | Jorvas 02420 | |||
| specification can be obtained from the IETF on-line IPR repository at | Finland | |||
| http://www.ietf.org/ipr. | ||||
| The IETF invites any interested party to bring to its attention any | Email: jari.arkko@piuha.net | |||
| copyrights, patents or patent applications, or other proprietary | ||||
| rights that may cover technology that may be required to implement | ||||
| this standard. Please address the information to the IETF at ietf- | ||||
| ipr@ietf.org. | ||||
| Acknowledgement | John Mattsson (Editor) | |||
| Ericsson | ||||
| Stockholm | ||||
| Sweden | ||||
| Funding for the RFC Editor function is currently provided by the | Email: john.mattsson@ericsson.com | |||
| Internet Society. | ||||
| End of changes. 230 change blocks. | ||||
| 627 lines changed or deleted | 893 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||