RFC 8940
Extensible Authentication Protocol (EAP) Session-Id Derivation for EAP Subscriber Identity Module (EAP-SIM), EAP Authentication and Key Agreement (EAP-AKA), and Protected EAP (PEAP)
Abstract β¨
okay bestie, RFC 8940 is the update that cleans up EAP Session-Id π
Quick facts first π: this is an IETF document (the Internet Engineering Task Force, the crew that writes the Internet's rulebook πΈ), written by A. DeKok at FreeRADIUS, dated October 2020. It's a Standards Track document with ISSN 2070-1721, and it updates RFC 5247. That's the only thing it updates. It's titled Extensible Authentication Protocol (EAP) Session-Id Derivation for EAP Subscriber Identity Module (EAP-SIM), EAP Authentication and Key Agreement (EAP-AKA), and Protected EAP (PEAP) π¦
So the abstract basically says: RFC 5247 gets an update to define and clarify how the EAP Session-Id is derived for several EAP methods π₯. Right now the Session-Id derivation is missing for EAP-SIM and EAP-AKA when they use fast reconnect instead of full authentication π. The full authentication derivation is also clarified for both of them. And the PEAP derivation finally gets written down, following the same pattern as the other TLS-based EAP methods β¨
Status of This Memo π
This is an Internet Standards Track document, no cap π
It's a product of the IETF and represents the consensus of the IETF community π«Ά It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) β¨ If you want more on Internet Standards, check Section 2 of RFC 7841 π
Info about its current status, any errata, and how to send feedback lives at https://www.rfc-editor.org/info/rfc8940 π
Copyright Notice βοΈ
Copyright (c) 2020 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 (https://trustee.ietf.org/license-info) as they're in effect on the date this document was published πΈ Please read these carefully, because they spell out your rights and restrictions for 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 they come without warranty, as described in the Simplified BSD License π
Table of Contents π
1. Introduction
2. Updates to RFC 5247, Appendix A
2.1. EAP-AKA
2.2. EAP-SIM
2.3. Rationale for EAP-AKA and EAP-SIM Updates
3. Session-Id for PEAP
4. Security Considerations
5. IANA Considerations
6. References
6.1. Normative References
6.2. Informative References
Acknowledgments
Author's Address
1. Introduction β¨
Okay so the big picture π§ The EAP [RFC3748] Session-Id derivation was never defined for EAP-SIM and EAP-AKA when they use fast reconnect instead of full authentication π [RFC5247] does define Session-Id for these methods, but that definition only works for the full authentication case.
The Session-Id derivation wasn't defined for EAP-AKA' either, but [AKAP] now defines it, along with some other updates π¦ So the EAP-AKA' definition isn't included here.
The full authentication derivation also gets clarified, because the text in [RFC5247] is ambiguous π
Here's why this matters. The IEEE's Fast Initial Link Setup (FILS) authentication [FILS] needs the EAP Session-Id so that the EAP Re-authentication Protocol (ERP) [RFC6696] can work π₯ That makes fixing these deficiencies in the EAP Session-Id definition super important π
Last but not least, [RFC5247] never defined a Session-Id for PEAP [MS-PEAP] [PEAP] π So this document fixes all of it. It updates [RFC5247] with the Session-Id derivation during fast reconnect for EAP-SIM and EAP-AKA, clarifies the Session-Id derivation during full authentication for both, and defines the Session-Id derivation for PEAP. The PEAP one is the same for full authentication and fast reconnect π
2. Updates to RFC 5247, Appendix A π
In this section, we update [RFC5247], Appendix A so that it defines Session-Id for the fast reconnect exchange for EAP-AKA and EAP-SIM π
2.1. EAP-AKA πΈ
So for EAP-AKA, [RFC5247], Appendix A currently says this:
| EAP-AKA
| EAP-AKA is defined in [RFC4187]. The EAP-AKA Session-Id is the
| concatenation of the EAP Type Code (0x17) with the contents of
| the RAND field from the AT_RAND attribute, followed by the
| contents of the AUTN field in the AT_AUTN attribute:
|
| Session-Id = 0x17 || RAND || AUTN
And it should say this instead π¦
| EAP-AKA
| EAP-AKA is defined in [RFC4187]. When using full
| authentication, the EAP-AKA Session-Id is the concatenation of
| the EAP Type Code (0x17) with the contents of the RAND field
| from the AT_RAND attribute, followed by the contents of the
| AUTN field in the AT_AUTN attribute:
|
| Session-Id = 0x17 || RAND || AUTN
|
| When using fast reconnect, the EAP-AKA Session-Id is the
| concatenation of the EAP Type Code (0x17) with the contents of
| the NONCE_S field from the AT_NONCE_S attribute, followed by
| the contents of the MAC field from the AT_MAC attribute from
| EAP-Request/AKA-Reauthentication:
|
| Session-Id = 0x17 || NONCE_S || MAC
So the new version splits things into two cases π«Ά Full authentication keeps the RAND and AUTN version, and fast reconnect uses NONCE_S and MAC π
2.2. EAP-SIM π·
EAP-SIM is pretty much the same story π [RFC5247], Appendix A currently says:
| EAP-SIM
| EAP-SIM is defined in [RFC4186]. The EAP-SIM Session-Id is the
| concatenation of the EAP Type Code (0x12) with the contents of
| the RAND field from the AT_RAND attribute, followed by the
| contents of the NONCE_MT field in the AT_NONCE_MT attribute:
|
| Session-Id = 0x12 || RAND || NONCE_MT
And it should say this π
| EAP-SIM
| EAP-SIM is defined in [RFC4186]. When using full
| authentication, the EAP-SIM Session-Id is the concatenation of
| the EAP Type Code (0x12) with the contents of the RAND field
| from the AT_RAND attribute, followed by the contents of the
| NONCE_MT field in the AT_NONCE_MT attribute. RFC 4186 says
| that the EAP server should obtain "n" GSM triplets where "n=2"
| or "n=3".
|
| For "n=2", the Session-Id is therefore defined as
|
| Session-Id = 0x12 || RAND1 || RAND2 || NONCE_MT
|
| which is 49 octets in length.
|
| For "n=3", the Session-Id is therefore defined as
|
| Session-Id = 0x12 || RAND1 || RAND2 || RAND3 || NONCE_MT
|
| which is 65 octets in length.
|
| RAND1, RAND2, and RAND3 correspond to the RAND value from the
| first, second, and third GSM triplet, respectively.
|
| When using fast reconnect, the EAP-SIM Session-Id is the
| concatenation of the EAP Type Code (0x12) with the contents of
| the NONCE_S field from the AT_NONCE_S attribute, followed by
| the contents of the MAC field from the AT_MAC attribute from
| EAP-Request/SIM/Reauthentication:
|
| Session-Id = 0x12 || NONCE_S || MAC
|
| which is 33 octets in length.
So for full auth, the spec now walks through both "n=2" (49 octets) and "n=3" (65 octets) cases π₯ And fast reconnect gets its own 33-octet version using NONCE_S and MAC π
2.3. Rationale for EAP-AKA and EAP-SIM Updates π§
Okay, the why π Appendix A of [RFC5247] was supposed to define exported parameters for existing EAP methods. But the way Session-Id was defined for EAP-AKA and EAP-SIM only works for full authentication. It can't be used when the optional fast reconnect case is in play, because the parameters it relies on (RAND, AUTN, NONCE_MT) aren't used in fast reconnect at all π
Looking at [RFC4187], Section 5.2 and the similar text in [RFC4186], Section 5.2, NONCE_S lines up with RAND and MAC in EAP-Request/AKA-Reauthentication, and EAP-Request/SIM/Reauthentication lines up with AUTN. So it seems like the Session-Id could be defined using NONCE_S and MAC instead of RAND and AUTN/NONCE_MT π
This derivation runs off a random value created by the server, plus a secret key and the peer's identity π We believe it's secure, though no formal analysis has been done yet π
(continued in part 2 π¦ β Section 3, Session-Id for PEAP, is up next π)
6.2. Informative References π
okay bestie, these are the extra reading picks ππ they're informative, so they add context rather than set rules π§
- [AKAP] Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, "Improved Extensible Authentication Protocol Method for 3GPP Mobile Network Authentication and Key Agreement (EAP-AKA')", Work in Progress, Internet-Draft, draft-ietf-emu-rfc5448bis-07, 9 March 2020, <https://tools.ietf.org/html/draft-ietf-emu-rfc5448bis-07>.
- [Err5011] RFC Errata, Erratum ID 5011, RFC 5247, <https://www.rfc-editor.org/errata/eid5011>.
- [MS-PEAP] Microsoft, "[MS-PEAP]: Protected Extensible Authentication Protocol (PEAP)", <https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-peap/5308642b-90c9-4cc4-beec-fb367325c0f9>.
- [PEAP] Palekar, A., Josefsson, S., Simon, D., and G. Zorn, "Protected EAP Protocol (PEAP) Version 2", Work in Progress, Internet-Draft, draft-josefsson-pppext-eap-tls-eap-10, 21 October 2004, <https://tools.ietf.org/html/draft-josefsson-pppext-eap-tls-eap-10>.
- [RFC4186] Haverinen, H., Ed. and J. Salowey, Ed., "Extensible Authentication Protocol Method for Global System for Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM)", RFC 4186, DOI 10.17487/RFC4186, January 2006, <https://www.rfc-editor.org/info/rfc4186>.
- [RFC4187] Arkko, J. and H. Haverinen, "Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP-AKA)", RFC 4187, DOI 10.17487/RFC4187, January 2006, <https://www.rfc-editor.org/info/rfc4187>.
- [RFC6696] Cao, Z., He, B., Shi, Y., Wu, Q., Ed., and G. Zorn, Ed., "EAP Extensions for the EAP Re-authentication Protocol (ERP)", RFC 6696, DOI 10.17487/RFC6696, July 2012, <https://www.rfc-editor.org/info/rfc6696>.
- [TLS-EAP-TYPES] DeKok, A., "TLS-based EAP types and TLS 1.3", Work in Progress, Internet-Draft, draft-ietf-emu-tls-eap-types-01, 29 July 2020, <https://tools.ietf.org/html/draft-ietf-emu-tls-eap-types-01>.
Acknowledgments β¨
the bug squashed in this spec was first spotted by Jouni Malinen, who reported it as a technical erratum for RFC 5247 [Err5011] π
the wording in this document follows Jouni's suggestions π
Author's Address πΈ
Alan DeKok
The FreeRADIUS Server Project
Email: aland@freeradius.org
π¦ where this page comes from
- ietf: rfc8940 2020-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms