| rfc9048.original | rfc9048.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Internet Engineering Task Force (IETF) J. Arkko | |||
| Internet-Draft V. Lehtovirta | Request for Comments: 9048 V. Lehtovirta | |||
| Updates: 5448,4187 (if approved) V. Torvinen | Updates: 4187, 5448 V. Torvinen | |||
| Intended status: Informational Ericsson | Category: Informational Ericsson | |||
| Expires: November 11, 2021 P. Eronen | ISSN: 2070-1721 P. Eronen | |||
| Independent | Independent | |||
| May 10, 2021 | October 2021 | |||
| Improved Extensible Authentication Protocol Method for 3GPP Mobile | Improved Extensible Authentication Protocol Method for 3GPP Mobile | |||
| Network Authentication and Key Agreement (EAP-AKA') | Network Authentication and Key Agreement (EAP-AKA') | |||
| draft-ietf-emu-rfc5448bis-10 | ||||
| Abstract | Abstract | |||
| The 3GPP Mobile Network Authentication and Key Agreement (AKA) is an | The 3GPP mobile network Authentication and Key Agreement (AKA) is an | |||
| authentication mechanism for devices wishing to access mobile | authentication mechanism for devices wishing to access mobile | |||
| networks. RFC 4187 (EAP-AKA) made the use of this mechanism possible | networks. RFC 4187 (EAP-AKA) made the use of this mechanism possible | |||
| within the Extensible Authentication Protocol (EAP) framework. RFC | within the Extensible Authentication Protocol (EAP) framework. RFC | |||
| 5448 (EAP-AKA') was an improved version of EAP-AKA. | 5448 (EAP-AKA') was an improved version of EAP-AKA. | |||
| This document is the most recent specification of EAP-AKA', | This document is the most recent specification of EAP-AKA', | |||
| including, for instance, details and references about related to | including, for instance, details about and references related to | |||
| operating EAP-AKA' in 5G networks. | operating EAP-AKA' in 5G networks. | |||
| EAP-AKA' differs from EAP-AKA by providing a key derivation function | EAP-AKA' differs from EAP-AKA by providing a key derivation function | |||
| that binds the keys derived within the method to the name of the | that binds the keys derived within the method to the name of the | |||
| access network. The key derivation function has been defined in the | access network. The key derivation function has been defined in the | |||
| 3rd Generation Partnership Project (3GPP). EAP-AKA' allows its use | 3rd Generation Partnership Project (3GPP). EAP-AKA' allows its use | |||
| in EAP in an interoperable manner. EAP-AKA' also updates the | in EAP in an interoperable manner. EAP-AKA' also updates the | |||
| algorithm used in hash functions, as it employs SHA-256 / HMAC- | algorithm used in hash functions, as it employs SHA-256 / HMAC- | |||
| SHA-256 instead of SHA-1 / HMAC-SHA-1 as in EAP-AKA. | SHA-256 instead of SHA-1 / HMAC-SHA-1, which is used in EAP-AKA. | |||
| This version of EAP-AKA' specification specifies the protocol | This version of the EAP-AKA' specification defines the protocol | |||
| behaviour for both 4G and 5G deployments, whereas the previous | behavior for both 4G and 5G deployments, whereas the previous version | |||
| version only did this for 4G. | defined protocol behavior for 4G deployments only. While EAP-AKA' as | |||
| defined in RFC 5448 is not obsolete, this document defines the most | ||||
| recent and fully backwards-compatible specification of EAP-AKA'. | ||||
| This document updates both RFCs 4187 and 5448. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This document is not an Internet Standards Track specification; it is | |||
| provisions of BCP 78 and BCP 79. | published for informational purposes. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Not all documents | |||
| approved by the IESG are candidates for any level of Internet | ||||
| Standard; see Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on November 11, 2021. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9048. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements Language | |||
| 3. EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. EAP-AKA' | |||
| 3.1. AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . 8 | 3.1. AT_KDF_INPUT | |||
| 3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 3.2. AT_KDF | |||
| 3.3. Key Derivation . . . . . . . . . . . . . . . . . . . . . 13 | 3.3. Key Derivation | |||
| 3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 15 | 3.4. Hash Functions | |||
| 3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 15 | 3.4.1. PRF' | |||
| 3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 15 | 3.4.2. AT_MAC | |||
| 3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 15 | 3.4.3. AT_CHECKCODE | |||
| 3.5. Summary of Attributes for EAP-AKA' . . . . . . . . . . . 16 | 3.5. Summary of Attributes for EAP-AKA' | |||
| 4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 18 | 4. Bidding Down Prevention for EAP-AKA | |||
| 4.1. Summary of Attributes for EAP-AKA . . . . . . . . . . . . 20 | 4.1. Summary of Attributes for EAP-AKA | |||
| 5. Peer Identities . . . . . . . . . . . . . . . . . . . . . . . 20 | 5. Peer Identities | |||
| 5.1. Username Types in EAP-AKA' Identities . . . . . . . . . . 20 | 5.1. Username Types in EAP-AKA' Identities | |||
| 5.2. Generating Pseudonyms and Fast Re-Authentication | 5.2. Generating Pseudonyms and Fast Re-Authentication Identities | |||
| Identities . . . . . . . . . . . . . . . . . . . . . . . 21 | 5.3. Identifier Usage in 5G | |||
| 5.3. Identifier Usage in 5G . . . . . . . . . . . . . . . . . 22 | 5.3.1. Key Derivation | |||
| 5.3.1. Key Derivation . . . . . . . . . . . . . . . . . . . 23 | ||||
| 5.3.2. EAP Identity Response and EAP-AKA' AT_IDENTITY | 5.3.2. EAP Identity Response and EAP-AKA' AT_IDENTITY | |||
| Attribute . . . . . . . . . . . . . . . . . . . . . . 24 | Attribute | |||
| 6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 24 | 6. Exported Parameters | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 7. Security Considerations | |||
| 7.1. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 7.1. Privacy | |||
| 7.2. Discovered Vulnerabilities . . . . . . . . . . . . . . . 30 | 7.2. Discovered Vulnerabilities | |||
| 7.3. Pervasive Monitoring . . . . . . . . . . . . . . . . . . 32 | 7.3. Pervasive Monitoring | |||
| 7.4. Security Properties of Binding Network Names . . . . . . 33 | 7.4. Security Properties of Binding Network Names | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 34 | 8. IANA Considerations | |||
| 8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 34 | 8.1. Type Value | |||
| 8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 34 | 8.2. Attribute Type Values | |||
| 8.3. Key Derivation Function Namespace . . . . . . . . . . . . 34 | 8.3. Key Derivation Function Namespace | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 | 9. References | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 35 | 9.1. Normative References | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 37 | 9.2. Informative References | |||
| Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 40 | Appendix A. Changes from RFC 5448 | |||
| Appendix B. Changes to RFC 4187 . . . . . . . . . . . . . . . . 41 | Appendix B. Changes to RFC 4187 | |||
| Appendix C. Changes from Previous Version of This Draft . . . . 41 | Appendix C. Importance of Explicit Negotiation | |||
| Appendix D. Importance of Explicit Negotiation . . . . . . . . . 45 | Appendix D. Test Vectors | |||
| Appendix E. Test Vectors . . . . . . . . . . . . . . . . . . . . 46 | Acknowledgments | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 50 | Contributors | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 51 | Authors' Addresses | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 51 | ||||
| 1. Introduction | 1. Introduction | |||
| The 3GPP Mobile Network Authentication and Key Agreement (AKA) is an | The 3GPP mobile network Authentication and Key Agreement (AKA) is an | |||
| authentication mechanism for devices wishing to access mobile | authentication mechanism for devices wishing to access mobile | |||
| networks. [RFC4187] (EAP-AKA) made the use of this mechanism | networks. [RFC4187] (EAP-AKA) made the use of this mechanism | |||
| possible within the Extensible Authentication Protocol (EAP) | possible within the Extensible Authentication Protocol (EAP) | |||
| framework [RFC3748]. | framework [RFC3748]. | |||
| [RFC5448] (EAP-AKA') was an improved version of EAP-AKA. EAP-AKA' | EAP-AKA' is an improved version of EAP-AKA. EAP-AKA' was defined in | |||
| was defined in RFC 5448 and updated EAP-AKA RFC 4187. | RFC 5448 [RFC5448], and it updated EAP-AKA [RFC4187]. | |||
| This document is the most recent specification of EAP-AKA', | This document is the most recent specification of EAP-AKA', | |||
| including, for instance, details and references about related to | including, for instance, details about and references related to | |||
| operating EAP-AKA' in 5G networks. RFC 5448 is not obsole, but the | operating EAP-AKA' in 5G networks. This document does not obsolete | |||
| most recent and fully backwards compatible specification is in this | RFC 5448; however, this document is the most recent and fully | |||
| document. | backwards-compatible specification. | |||
| EAP-AKA' is commonly implemented in mobile phones and network | EAP-AKA' is commonly implemented in mobile phones and network | |||
| equipment. It can be used for authentication to gain network access | equipment. It can be used for authentication to gain network access | |||
| via Wireless LAN networks and, with 5G, also directly to mobile | via Wireless LAN networks and, with 5G, also directly to mobile | |||
| networks. | networks. | |||
| EAP-AKA' differs from EAP-AKA by providing a different key derivation | EAP-AKA' differs from EAP-AKA by providing a different key derivation | |||
| function. This function binds the keys derived within the method to | function. This function binds the keys derived within the method to | |||
| the name of the access network. This limits the effects of | the name of the access network. This limits the effects of | |||
| compromised access network nodes and keys. EAP-AKA' also updates the | compromised access network nodes and keys. EAP-AKA' also updates the | |||
| algorithm used for hash functions. | algorithm used for hash functions. | |||
| The EAP-AKA' method employs the derived keys CK' and IK' from the | The EAP-AKA' method employs the derived keys CK' and IK' from the | |||
| 3GPP specification [TS-3GPP.33.402] and updates the used hash | 3GPP specification [TS-3GPP.33.402] and updates the hash function | |||
| function to SHA-256 [FIPS.180-4] and HMAC to HMAC-SHA-256. | that is used to SHA-256 [FIPS.180-4] and HMAC to HMAC-SHA-256. | |||
| Otherwise, EAP-AKA' is equivalent to EAP-AKA. Given that a different | Otherwise, EAP-AKA' is equivalent to EAP-AKA. Given that a different | |||
| EAP method type value is used for EAP-AKA and EAP-AKA', a mutually | EAP method Type value is used for EAP-AKA and EAP-AKA', a mutually | |||
| supported method may be negotiated using the standard mechanisms in | supported method may be negotiated using the standard mechanisms in | |||
| EAP [RFC3748]. | EAP [RFC3748]. | |||
| Note that any change of the key derivation must be unambiguous to | Note that any change of the key derivation must be unambiguous | |||
| both sides in the protocol. That is, it must not be possible to | to both sides in the protocol. That is, it must not be | |||
| accidentally connect old equipment to new equipment and get the | possible to accidentally connect old equipment to new equipment | |||
| key derivation wrong or attempt to use wrong keys without getting | and get the key derivation wrong or to attempt to use incorrect | |||
| a proper error message. See Appendix D for further information. | keys without getting a proper error message. See Appendix C | |||
| for further information. | ||||
| Note also that choices in authentication protocols should be | Note also that choices in authentication protocols should be | |||
| secure against bidding down attacks that attempt to force the | secure against bidding down attacks that attempt to force the | |||
| participants to use the least secure function. See Section 4 for | participants to use the least secure function. See Section 4 | |||
| further information. | for further information. | |||
| The changes from RFC 5448 to this specification are as follows: | This specification makes the following changes from RFC 5448: | |||
| o Update the reference on how the Network Name field is constructed | * Updates the reference that specifies how the Network Name field is | |||
| in the protocol. This update ensures that EAP-AKA' is compatible | constructed in the protocol. This update ensures that EAP-AKA' is | |||
| with 5G deployments. RFC 5448 referred to the Release 8 version | compatible with 5G deployments. RFC 5448 referred to the Release | |||
| of [TS-3GPP.24.302] and this update points to the first 5G | 8 version of [TS-3GPP.24.302]. This document points to the first | |||
| version, Release 15. | 5G version, Release 16. | |||
| o Specify how EAP and EAP-AKA' use identifiers in 5G. Additional | * Specifies how EAP and EAP-AKA' use identifiers in 5G. Additional | |||
| identifiers are introduced in 5G, and for interoperability, it is | identifiers are introduced in 5G, and for interoperability, it is | |||
| necessary that the right identifiers are used as inputs in the key | necessary that the right identifiers are used as inputs in the key | |||
| derivation. In addition, for identity privacy it is important | derivation. In addition, for identity privacy it is important | |||
| that when privacy-friendly identifiers in 5G are used, no | that when privacy-friendly identifiers in 5G are used, no | |||
| trackable, permanent identifiers are passed in EAP-AKA' either. | trackable, permanent identifiers are passed in EAP-AKA', either. | |||
| o Specify session identifiers and other exported parameters, as | * Specifies session identifiers and other exported parameters, as | |||
| those were not specified in [RFC5448] despite requirements set | those were not specified in [RFC5448] despite requirements set | |||
| forward in [RFC5247] to do so. Also, while [RFC5247] specified | forward in [RFC5247] to do so. Also, while [RFC5247] specified | |||
| session identifiers for EAP-AKA, it only did so for the full | session identifiers for EAP-AKA, it only did so for the full | |||
| authentication case, not for the case of fast re-authentication. | authentication case, not for the case of fast re-authentication. | |||
| o Update the requirements on generating pseudonym usernames and fast | * Updates the requirements on generating pseudonym usernames and | |||
| re-authentication identities to ensure identity privacy. | fast re-authentication identities to ensure identity privacy. | |||
| o Describe what has been learned about any vulnerabilities in AKA or | * Describes what has been learned about any vulnerabilities in AKA | |||
| EAP-AKA'. | or EAP-AKA'. | |||
| o Describe the privacy and pervasive monitoring considerations | * Describes the privacy and pervasive monitoring considerations | |||
| related to EAP-AKA'. | related to EAP-AKA'. | |||
| o Summaries of the attributes have been added. | * Adds summaries of the attributes. | |||
| Some of the updates are small. For instance, for the first update, | Some of the updates are small. For instance, the reference update to | |||
| the reference update does not change the 3GPP specification number, | [TS-3GPP.24.302] does not change the 3GPP specification number, only | |||
| only the version. But this reference is crucial in correct | the version. But this reference is crucial for the correct | |||
| calculation of the keys resulting from running the EAP-AKA' method, | calculation of the keys that result from running the EAP-AKA' method, | |||
| so an update of the RFC with the newest version pointer may be | so an RFC update pointing to the newest version was warranted. | |||
| warranted. | ||||
| Note: Any further updates in 3GPP specifications that affect, for | Note: Any further updates in 3GPP specifications that affect, | |||
| instance, key derivation is something that EAP-AKA' | for instance, key derivation is something that EAP-AKA' | |||
| implementations need to take into account. Upon such updates | implementations need to take into account. Upon such updates, | |||
| there will be a need to both update this specification and the | there will be a need to update both this specification and the | |||
| implementations. | implementations. | |||
| It is an explicit non-goal of this draft to include any other | It is an explicit non-goal of this specification to include any other | |||
| technical modifications, addition of new features or other changes. | technical modifications, addition of new features, or other changes. | |||
| The EAP-AKA' base protocol is stable and needs to stay that way. If | The EAP-AKA' base protocol is stable and needs to stay that way. If | |||
| there are any extensions or variants, those need to be proposed as | there are any extensions or variants, those need to be proposed as | |||
| standalone extensions or even as different authentication methods. | standalone extensions or even as different authentication methods. | |||
| The rest of this specification is structured as follows. Section 3 | The rest of this specification is structured as follows. Section 3 | |||
| defines the EAP-AKA' method. Section 4 adds support to EAP-AKA to | defines the EAP-AKA' method. Section 4 adds support to EAP-AKA to | |||
| prevent bidding down attacks from EAP-AKA'. Section 5 specifies | prevent bidding down attacks from EAP-AKA'. Section 5 specifies | |||
| requirements regarding the use of peer identities, including how 5G | requirements regarding the use of peer identities, including how 5G | |||
| identifiers are used in the EAP-AKA' context. Section 6 specifies | identifiers are used in the EAP-AKA' context. Section 6 specifies | |||
| what parameters EAP-AKA' exports out of the method. Section 7 | which parameters EAP-AKA' exports out of the method. Section 7 | |||
| explains the security differences between EAP-AKA and EAP-AKA'. | explains the security differences between EAP-AKA and EAP-AKA'. | |||
| Section 8 describes the IANA considerations and Appendix A and | Section 8 describes the IANA considerations, and Appendix A and | |||
| Appendix B explains what updates to RFC 5448 EAP-AKA' and RFC 4187 | Appendix B explain the updates to RFC 5448 (EAP-AKA') and RFC 4187 | |||
| EAP-AKA have been made in this specification. Appendix D explains | (EAP-AKA) that have been made in this specification. Appendix C | |||
| some of the design rationale for creating EAP-AKA'. Finally, | explains some of the design rationale for creating EAP-AKA'. | |||
| Appendix E provides test vectors. | Finally, Appendix D provides test vectors. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. EAP-AKA' | 3. EAP-AKA' | |||
| EAP-AKA' is an EAP method that follows the EAP-AKA specification | EAP-AKA' is an EAP method that follows the EAP-AKA specification | |||
| [RFC4187] in all respects except the following: | [RFC4187] in all respects except the following: | |||
| o It uses the Type code 0x32, not 0x17 (which is used by EAP-AKA). | * It uses the Type code 0x32, not 0x17 (which is used by EAP-AKA). | |||
| o It carries the AT_KDF_INPUT attribute, as defined in Section 3.1, | * It carries the AT_KDF_INPUT attribute, as defined in Section 3.1, | |||
| to ensure that both the peer and server know the name of the | to ensure that both the peer and server know the name of the | |||
| access network. | access network. | |||
| o It supports key derivation function negotiation via the AT_KDF | * It supports key derivation function negotiation via the AT_KDF | |||
| attribute (Section 3.2) to allow for future extensions. | attribute (Section 3.2) to allow for future extensions. | |||
| o It calculates keys as defined in Section 3.3, not as defined in | * It calculates keys as defined in Section 3.3, not as defined in | |||
| EAP-AKA. | EAP-AKA. | |||
| o It employs SHA-256 / HMAC-SHA-256, not SHA-1 / HMAC-SHA-1 | * It employs SHA-256 / HMAC-SHA-256 [FIPS.180-4], not SHA-1 / HMAC- | |||
| [FIPS.180-4] (Section 3.4 [RFC2104]). | SHA-1 [RFC2104] (see Section 3.4). | |||
| Figure 1 shows an example of the authentication process. Each | Figure 1 shows an example of the authentication process. Each | |||
| message AKA'-Challenge and so on represents the corresponding message | message AKA'-Challenge and so on represents the corresponding message | |||
| from EAP-AKA, but with EAP-AKA' Type code. The definition of these | from EAP-AKA, but with the EAP-AKA' Type code. The definition of | |||
| messages, along with the definition of attributes AT_RAND, AT_AUTN, | these messages, along with the definition of attributes AT_RAND, | |||
| AT_MAC, and AT_RES can be found in [RFC4187]. | AT_AUTN, AT_MAC, and AT_RES can be found in [RFC4187]. | |||
| Peer Server | Peer Server | |||
| | EAP-Request/Identity | | | EAP-Request/Identity | | |||
| |<-------------------------------------------------------| | |<-------------------------------------------------------| | |||
| | | | | | | |||
| | EAP-Response/Identity | | | EAP-Response/Identity | | |||
| | (Includes user's Network Access Identifier, NAI) | | | (Includes user's Network Access Identifier, NAI) | | |||
| |------------------------------------------------------->| | |------------------------------------------------------->| | |||
| | +--------------------------------------------------+ | | +--------------------------------------------------+ | |||
| | | Server determines the network name and ensures | | | | Server determines the network name and ensures | | |||
| skipping to change at page 7, line 52 ¶ | skipping to change at line 306 ¶ | |||
| | (AT_RES, AT_MAC) | | | (AT_RES, AT_MAC) | | |||
| |------------------------------------------------------->| | |------------------------------------------------------->| | |||
| | +--------------------------------------------------+ | | +--------------------------------------------------+ | |||
| | | Server checks the RES and MAC values received | | | | Server checks the RES and MAC values received | | |||
| | | in AT_RES and AT_MAC, respectively. Success | | | | in AT_RES and AT_MAC, respectively. Success | | |||
| | | requires both to be found correct. | | | | requires both to be found correct. | | |||
| | +--------------------------------------------------+ | | +--------------------------------------------------+ | |||
| | EAP-Success | | | EAP-Success | | |||
| |<-------------------------------------------------------| | |<-------------------------------------------------------| | |||
| Figure 1: EAP-AKA' Authentication Process | Figure 1: EAP-AKA' Authentication Process | |||
| EAP-AKA' can operate on the same credentials as EAP-AKA and employ | EAP-AKA' can operate on the same credentials as EAP-AKA and employ | |||
| the same identities. However, EAP-AKA' employs different leading | the same identities. However, EAP-AKA' employs different leading | |||
| characters than EAP-AKA for the conventions given in Section 4.1.1 of | characters than EAP-AKA for the conventions given in Section 4.1.1 of | |||
| [RFC4187] for International Mobile Subscriber Identifier (IMSI) based | [RFC4187] for usernames based on International Mobile Subscriber | |||
| usernames. For 4G networks, EAP-AKA' MUST use the leading character | Identifier (IMSI). For 4G networks, EAP-AKA' MUST use the leading | |||
| "6" (ASCII 36 hexadecimal) instead of "0" for IMSI-based permanent | character "6" (ASCII 36 hexadecimal) instead of "0" for IMSI-based | |||
| usernames. For 5G networks, leading character "6" is not used for | permanent usernames. For 5G networks, the leading character "6" is | |||
| IMSI-based permanent user names. Identifier usage in 5G is specified | not used for IMSI-based permanent usernames. Identifier usage in 5G | |||
| in Section 5.3. All other usage and processing of the leading | is specified in Section 5.3. All other usage and processing of the | |||
| characters, usernames, and identities is as defined by EAP-AKA | leading characters, usernames, and identities is as defined by EAP- | |||
| [RFC4187]. For instance, the pseudonym and fast re-authentication | AKA [RFC4187]. For instance, the pseudonym and fast re- | |||
| usernames need to be constructed so that the server can recognize | authentication usernames need to be constructed so that the server | |||
| them. As an example, a pseudonym could begin with a leading "7" | can recognize them. As an example, a pseudonym could begin with a | |||
| character (ASCII 37 hexadecimal) and a fast re-authentication | leading "7" character (ASCII 37 hexadecimal) and a fast re- | |||
| username could begin with "8" (ASCII 38 hexadecimal). Note that a | authentication username could begin with "8" (ASCII 38 hexadecimal). | |||
| server that implements only EAP-AKA may not recognize these leading | Note that a server that implements only EAP-AKA may not recognize | |||
| characters. According to Section 4.1.4 of [RFC4187], such a server | these leading characters. According to Section 4.1.4 of [RFC4187], | |||
| will re-request the identity via the EAP- Request/AKA-Identity | such a server will re-request the identity via the EAP-Request/AKA- | |||
| message, making obvious to the peer that EAP-AKA and associated | Identity message, making obvious to the peer that EAP-AKA and | |||
| identity are expected. | associated identity are expected. | |||
| 3.1. AT_KDF_INPUT | 3.1. AT_KDF_INPUT | |||
| The format of the AT_KDF_INPUT attribute is shown below. | The format of the AT_KDF_INPUT attribute is shown below. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | AT_KDF_INPUT | Length | Actual Network Name Length | | | AT_KDF_INPUT | Length | Actual Network Name Length | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 8, line 44 ¶ | skipping to change at line 347 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| . Network Name . | . Network Name . | |||
| . . | . . | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The fields are as follows: | The fields are as follows: | |||
| AT_KDF_INPUT | AT_KDF_INPUT | |||
| This is set to 23. | This is set to 23. | |||
| Length | Length | |||
| The length of the attribute, calculated as defined in [RFC4187], | The length of the attribute, calculated as defined in [RFC4187], | |||
| Section 8.1. | Section 8.1. | |||
| Actual Network Name Length | Actual Network Name Length | |||
| This is a 2-byte actual length field, needed due to the | ||||
| This is a 2 byte actual length field, needed due to the | ||||
| requirement that the previous field is expressed in multiples of 4 | requirement that the previous field is expressed in multiples of 4 | |||
| bytes per the usual EAP-AKA rules. The Actual Network Name Length | bytes per the usual EAP-AKA rules. The Actual Network Name Length | |||
| field provides the length of the network name in bytes. | field provides the length of the network name in bytes. | |||
| Network Name | Network Name | |||
| This field contains the network name of the access network for | This field contains the network name of the access network for | |||
| which the authentication is being performed. The name does not | which the authentication is being performed. The name does not | |||
| include any terminating null characters. Because the length of | include any terminating null characters. Because the length of | |||
| the entire attribute must be a multiple of 4 bytes, the sender | the entire attribute must be a multiple of 4 bytes, the sender | |||
| pads the name with 1, 2, or 3 bytes of all zero bits when | pads the name with 1, 2, or 3 bytes of all zero bits when | |||
| necessary. | necessary. | |||
| Only the server sends the AT_KDF_INPUT attribute. The value is sent | Only the server sends the AT_KDF_INPUT attribute. The value is sent | |||
| as specified in [TS-3GPP.24.302] for both non-3GPP access networks | as specified in [TS-3GPP.24.302] for both non-3GPP access networks | |||
| and for 5G access networks. Per [TS-3GPP.33.402], the server always | and for 5G access networks. Per [TS-3GPP.33.402], the server always | |||
| verifies the authorization of a given access network to use a | verifies the authorization of a given access network to use a | |||
| particular name before sending it to the peer over EAP-AKA'. The | particular name before sending it to the peer over EAP-AKA'. The | |||
| value of the AT_KDF_INPUT attribute from the server MUST be non- | value of the AT_KDF_INPUT attribute from the server MUST be non- | |||
| empty, with a greater than zero length in the Actual Network Name | empty, with a greater than zero length in the Actual Network Name | |||
| Length field. If AT_KDF_INPUT attribute is empty, the peer behaves | Length field. If the AT_KDF_INPUT attribute is empty, the peer | |||
| as if AUTN had been incorrect and authentication fails. See | behaves as if AUTN had been incorrect and authentication fails. See | |||
| Section 3 and Figure 3 of [RFC4187] for an overview of how | Section 3 and Figure 3 of [RFC4187] for an overview of how | |||
| authentication failures are handled. | authentication failures are handled. | |||
| In addition, the peer MAY check the received value against its own | In addition, the peer MAY check the received value against its own | |||
| understanding of the network name. Upon detecting a discrepancy, the | understanding of the network name. Upon detecting a discrepancy, the | |||
| peer either warns the user and continues, or fails the authentication | peer either warns the user and continues, or fails the authentication | |||
| process. More specifically, the peer SHOULD have a configurable | process. More specifically, the peer SHOULD have a configurable | |||
| policy that it can follow under these circumstances. If the policy | policy that it can follow under these circumstances. If the policy | |||
| indicates that it can continue, the peer SHOULD log a warning message | indicates that it can continue, the peer SHOULD log a warning message | |||
| or display it to the user. If the peer chooses to proceed, it MUST | or display it to the user. If the peer chooses to proceed, it MUST | |||
| skipping to change at page 10, line 8 ¶ | skipping to change at line 403 ¶ | |||
| (:). The algorithms and mechanisms to construct the identity string | (:). The algorithms and mechanisms to construct the identity string | |||
| depend on the used access technology. | depend on the used access technology. | |||
| On the network side, the network name construction is a configuration | On the network side, the network name construction is a configuration | |||
| issue in an access network and an authorization check in the | issue in an access network and an authorization check in the | |||
| authentication server. On the peer, the network name is constructed | authentication server. On the peer, the network name is constructed | |||
| based on the local observations. For instance, the peer knows which | based on the local observations. For instance, the peer knows which | |||
| access technology it is using on the link, it can see information in | access technology it is using on the link, it can see information in | |||
| a link-layer beacon, and so on. The construction rules specify how | a link-layer beacon, and so on. The construction rules specify how | |||
| this information maps to an access network name. Typically, the | this information maps to an access network name. Typically, the | |||
| network name consists of the name of the access technology, or the | network name consists of the name of the access technology or the | |||
| name of the access technology followed by some operator identifier | name of the access technology followed by some operator identifier | |||
| that was advertised in a link-layer beacon. In all cases, | that was advertised in a link-layer beacon. In all cases, | |||
| [TS-3GPP.24.302] is the normative specification for the construction | [TS-3GPP.24.302] is the normative specification for the construction | |||
| in both the network and peer side. If the peer policy allows running | in both the network and peer side. If the peer policy allows running | |||
| EAP-AKA' over an access technology for which that specification does | EAP-AKA' over an access technology for which that specification does | |||
| not provide network name construction rules, the peer SHOULD rely | not provide network name construction rules, the peer SHOULD rely | |||
| only on the information from the AT_KDF_INPUT attribute and not | only on the information from the AT_KDF_INPUT attribute and not | |||
| perform a comparison. | perform a comparison. | |||
| If a comparison of the locally determined network name and the one | If a comparison of the locally determined network name and the one | |||
| skipping to change at page 12, line 39 ¶ | skipping to change at line 522 ¶ | |||
| processing the received EAP-Request/AKA'-Challenge as specified in | processing the received EAP-Request/AKA'-Challenge as specified in | |||
| [RFC4187] and Section 3.1 of this document. If not, it behaves as if | [RFC4187] and Section 3.1 of this document. If not, it behaves as if | |||
| AT_MAC had been incorrect and fails the authentication. If the peer | AT_MAC had been incorrect and fails the authentication. If the peer | |||
| receives multiple EAP-Request/AKA'-Challenge messages with differing | receives multiple EAP-Request/AKA'-Challenge messages with differing | |||
| AT_KDF attributes without having requested negotiation, the peer MUST | AT_KDF attributes without having requested negotiation, the peer MUST | |||
| behave as if AT_MAC had been incorrect and fail the authentication. | behave as if AT_MAC had been incorrect and fail the authentication. | |||
| Note that the peer may also request sequence number resynchronization | Note that the peer may also request sequence number resynchronization | |||
| [RFC4187]. This happens after AT_KDF negotiation has already | [RFC4187]. This happens after AT_KDF negotiation has already | |||
| completed. That is, the EAP-Request/AKA'-Challenge and, possibly, | completed. That is, the EAP-Request/AKA'-Challenge and, possibly, | |||
| the EAP-Response/AKA'-Challenge message are exchanged first to come | the EAP-Response/AKA'-Challenge messages are exchanged first to | |||
| up with a mutually acceptable key derivation function, and only then | determine a mutually acceptable key derivation function, and only | |||
| the possible AKA'-Synchronization-Failure message is sent. The AKA'- | then is the possible AKA'-Synchronization-Failure message sent. The | |||
| Synchronization-Failure message is sent as a response to the newly | AKA'-Synchronization-Failure message is sent as a response to the | |||
| received EAP-Request/AKA'-Challenge which is the last message of the | newly received EAP-Request/AKA'-Challenge, which is the last message | |||
| AT_KDF negotiation. Note that if the first proposed KDF is | of the AT_KDF negotiation. Note that if the first proposed KDF is | |||
| acceptable, then last message is at the same time the first EAP- | acceptable, then the first EAP-Request/AKA'-Challenge message is also | |||
| Request/AKA'-Challenge message. The AKA'-Synchronization-Failure | the last message. The AKA'-Synchronization-Failure message MUST | |||
| message MUST contain the AUTS parameter as specified in [RFC4187] and | contain the AUTS parameter as specified in [RFC4187] and a copy the | |||
| a copy the AT_KDF attributes as they appeared in the last message of | AT_KDF attributes as they appeared in the last message of the AT_KDF | |||
| the AT_KDF negotiation. If the AT_KDF attributes are found to differ | negotiation. If the AT_KDF attributes are found to differ from their | |||
| from their earlier values, the peer and server MUST behave as if | earlier values, the peer and server MUST behave as if AT_MAC had been | |||
| AT_MAC had been incorrect and fail the authentication. | incorrect and fail the authentication. | |||
| 3.3. Key Derivation | 3.3. Key Derivation | |||
| Both the peer and server MUST derive the keys as follows. | Both the peer and server MUST derive the keys as follows. | |||
| AT_KDF parameter has the value 1 | AT_KDF parameter has the value 1 | |||
| In this case, MK is derived and used as follows: | In this case, MK is derived and used as follows: | |||
| MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | |||
| K_encr = MK[0..127] | K_encr = MK[0..127] | |||
| K_aut = MK[128..383] | K_aut = MK[128..383] | |||
| K_re = MK[384..639] | K_re = MK[384..639] | |||
| MSK = MK[640..1151] | MSK = MK[640..1151] | |||
| EMSK = MK[1152..1663] | EMSK = MK[1152..1663] | |||
| Here [n..m] denotes the substring from bit n to m, including bits | Here [n..m] denotes the substring from bit n to m, including bits | |||
| n and m. PRF' is a new pseudo-random function specified in | n and m. PRF' is a new pseudorandom function specified in | |||
| Section 3.4. The first 1664 bits from its output are used for | Section 3.4. The first 1664 bits from its output are used for | |||
| K_encr (encryption key, 128 bits), K_aut (authentication key, 256 | K_encr (encryption key, 128 bits), K_aut (authentication key, 256 | |||
| bits), K_re (re-authentication key, 256 bits), MSK (Master Session | bits), K_re (re-authentication key, 256 bits), MSK (Master Session | |||
| Key, 512 bits), and EMSK (Extended Master Session Key, 512 bits). | Key, 512 bits), and EMSK (Extended Master Session Key, 512 bits). | |||
| These keys are used by the subsequent EAP-AKA' process. K_encr is | These keys are used by the subsequent EAP-AKA' process. K_encr is | |||
| used by the AT_ENCR_DATA attribute, and K_aut by the AT_MAC | used by the AT_ENCR_DATA attribute, and K_aut by the AT_MAC | |||
| attribute. K_re is used later in this section. MSK and EMSK are | attribute. K_re is used later in this section. MSK and EMSK are | |||
| outputs from a successful EAP method run [RFC3748]. | outputs from a successful EAP method run [RFC3748]. | |||
| IK' and CK' are derived as specified in [TS-3GPP.33.402]. The | IK' and CK' are derived as specified in [TS-3GPP.33.402]. The | |||
| functions that derive IK' and CK' take the following parameters: | functions that derive IK' and CK' take the following parameters: | |||
| CK and IK produced by the AKA algorithm, and value of the Network | CK and IK produced by the AKA algorithm, and value of the Network | |||
| Name field comes from the AT_KDF_INPUT attribute (without length | Name field comes from the AT_KDF_INPUT attribute (without length | |||
| or padding). | or padding). | |||
| The value "EAP-AKA'" is an eight-characters-long ASCII string. It | The value "EAP-AKA'" is an eight-characters-long ASCII string. It | |||
| is used as is, without any trailing NUL characters. | is used as is, without any trailing NUL characters. | |||
| Identity is the peer identity as specified in Section 7 of | Identity is the peer identity as specified in Section 7 of | |||
| [RFC4187], and Section 5.3.2 in this document for the 5G cases. | [RFC4187] and in Section 5.3.2 of in this document for the 5G | |||
| cases. | ||||
| When the server creates an AKA challenge and corresponding AUTN, | When the server creates an AKA challenge and corresponding AUTN, | |||
| CK, CK', IK, and IK' values, it MUST set the Authentication | CK, CK', IK, and IK' values, it MUST set the Authentication | |||
| Management Field (AMF) separation bit to 1 in the AKA algorithm | Management Field (AMF) separation bit to 1 in the AKA algorithm | |||
| [TS-3GPP.33.102]. Similarly, the peer MUST check that the AMF | [TS-3GPP.33.102]. Similarly, the peer MUST check that the AMF | |||
| separation bit is set to 1. If the bit is not set to 1, the peer | separation bit is set to 1. If the bit is not set to 1, the peer | |||
| behaves as if the AUTN had been incorrect and fails the | behaves as if the AUTN had been incorrect and fails the | |||
| authentication. | authentication. | |||
| On fast re-authentication, the following keys are calculated: | On fast re-authentication, the following keys are calculated: | |||
| MK = PRF'(K_re,"EAP-AKA' re-auth"|Identity|counter|NONCE_S) | MK = PRF'(K_re,"EAP-AKA' re-auth"|Identity|counter|NONCE_S) | |||
| MSK = MK[0..511] | MSK = MK[0..511] | |||
| EMSK = MK[512..1023] | EMSK = MK[512..1023] | |||
| MSK and EMSK are the resulting 512-bit keys, taking the first 1024 | MSK and EMSK are the resulting 512-bit keys, taking the first 1024 | |||
| bits from the result of PRF'. Note that K_encr and K_aut are not | bits from the result of PRF'. Note that K_encr and K_aut are not | |||
| re-derived on fast re-authentication. K_re is the re- | re-derived on fast re-authentication. K_re is the re- | |||
| authentication key from the preceding full authentication and | authentication key from the preceding full authentication and | |||
| stays unchanged over any fast re-authentication(s) that may happen | stays unchanged over any fast re-authentication(s) that may happen | |||
| based on it. The value "EAP-AKA' re-auth" is a sixteen- | based on it. The value "EAP-AKA' re-auth" is a sixteen- | |||
| characters-long ASCII string, again represented without any | characters-long ASCII string, again represented without any | |||
| trailing NUL characters. Identity is the fast re-authentication | trailing NUL characters. Identity is the fast re-authentication | |||
| identity, counter is the value from the AT_COUNTER attribute, | identity, counter is the value from the AT_COUNTER attribute, | |||
| skipping to change at page 14, line 37 ¶ | skipping to change at line 614 ¶ | |||
| authentication. Upon seeing a re-authentication request with a | authentication. Upon seeing a re-authentication request with a | |||
| changed network name, the server SHOULD behave as if the re- | changed network name, the server SHOULD behave as if the re- | |||
| authentication identifier had been unrecognized, and fall back to | authentication identifier had been unrecognized, and fall back to | |||
| full authentication. The server observes the change in the name | full authentication. The server observes the change in the name | |||
| by comparing where the fast re-authentication and full | by comparing where the fast re-authentication and full | |||
| authentication EAP transactions were received at the | authentication EAP transactions were received at the | |||
| Authentication, Authorization, and Accounting (AAA) protocol | Authentication, Authorization, and Accounting (AAA) protocol | |||
| level. | level. | |||
| AT_KDF has any other value | AT_KDF has any other value | |||
| Future variations of key derivation functions may be defined, and | Future variations of key derivation functions may be defined, and | |||
| they will be represented by new values of AT_KDF. If the peer | they will be represented by new values of AT_KDF. If the peer | |||
| does not recognize the value, it cannot calculate the keys and | does not recognize the value, it cannot calculate the keys and | |||
| behaves as explained in Section 3.2. | behaves as explained in Section 3.2. | |||
| AT_KDF is missing | AT_KDF is missing | |||
| The peer behaves as if the AUTN had been incorrect and MUST fail | The peer behaves as if the AUTN had been incorrect and MUST fail | |||
| the authentication. | the authentication. | |||
| If the peer supports a given key derivation function but is unwilling | If the peer supports a given key derivation function but is unwilling | |||
| to perform it for policy reasons, it refuses to calculate the keys | to perform it for policy reasons, it refuses to calculate the keys | |||
| and behaves as explained in Section 3.2. | and behaves as explained in Section 3.2. | |||
| 3.4. Hash Functions | 3.4. Hash Functions | |||
| EAP-AKA' uses SHA-256 / HMAC-SHA-256, not SHA-1 / HMAC-SHA-1 (see | EAP-AKA' uses SHA-256 / HMAC-SHA-256, not SHA-1 / HMAC-SHA-1 (see | |||
| [FIPS.180-4] [RFC2104]) as in EAP-AKA. This requires a change to the | [FIPS.180-4] and [RFC2104]) as in EAP-AKA. This requires a change to | |||
| pseudo-random function (PRF) as well as the AT_MAC and AT_CHECKCODE | the pseudorandom function (PRF) as well as the AT_MAC and | |||
| attributes. | AT_CHECKCODE attributes. | |||
| 3.4.1. PRF' | 3.4.1. PRF' | |||
| The PRF' construction is the same one IKEv2 uses (see Section 2.13 of | The PRF' construction is the same one IKEv2 uses (see Section 2.13 of | |||
| [RFC7296]; this is the same function as was defined [RFC4306] that | [RFC7296]; the definition of this function has not changed since | |||
| RFC 5448 referred to). The function takes two arguments. K is a | [RFC4306], which was referenced by [RFC5448]). The function takes | |||
| 256-bit value and S is a byte string of arbitrary length. PRF' is | two arguments. K is a 256-bit value and S is a byte string of | |||
| defined as follows: | arbitrary length. PRF' is defined as follows: | |||
| PRF'(K,S) = T1 | T2 | T3 | T4 | ... | PRF'(K,S) = T1 | T2 | T3 | T4 | ... | |||
| where: | where: | |||
| T1 = HMAC-SHA-256 (K, S | 0x01) | T1 = HMAC-SHA-256 (K, S | 0x01) | |||
| T2 = HMAC-SHA-256 (K, T1 | S | 0x02) | T2 = HMAC-SHA-256 (K, T1 | S | 0x02) | |||
| T3 = HMAC-SHA-256 (K, T2 | S | 0x03) | T3 = HMAC-SHA-256 (K, T2 | S | 0x03) | |||
| T4 = HMAC-SHA-256 (K, T3 | S | 0x04) | T4 = HMAC-SHA-256 (K, T3 | S | 0x04) | |||
| ... | ... | |||
| skipping to change at page 16, line 22 ¶ | skipping to change at line 688 ¶ | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Second, the checkcode is a hash value, calculated with SHA-256 | Second, the checkcode is a hash value, calculated with SHA-256 | |||
| [FIPS.180-4], over the data specified in Section 10.13 of [RFC4187]. | [FIPS.180-4], over the data specified in Section 10.13 of [RFC4187]. | |||
| 3.5. Summary of Attributes for EAP-AKA' | 3.5. Summary of Attributes for EAP-AKA' | |||
| Table 1 provides a guide to which attributes may be found in which | Table 1 identifies which attributes may be found in which kinds of | |||
| kinds of messages, and in what quantity. | messages, and in what quantity. | |||
| Messages are denoted with numbers in parentheses as follows: | Messages are denoted with numbers as follows: | |||
| (1) EAP-Request/AKA-Identity, | 1 EAP-Request/AKA-Identity | |||
| (2) EAP-Response/AKA-Identity, | 2 EAP-Response/AKA-Identity | |||
| (3) EAP-Request/AKA-Challenge, | 3 EAP-Request/AKA-Challenge | |||
| (4) EAP-Response/AKA-Challenge, | 4 EAP-Response/AKA-Challenge | |||
| (5) EAP-Request/AKA-Notification, | 5 EAP-Request/AKA-Notification | |||
| (6) EAP-Response/AKA-Notification, | 6 EAP-Response/AKA-Notification | |||
| (7) EAP-Response/AKA-Client-Error | 7 EAP-Response/AKA-Client-Error | |||
| (8) EAP-Request/AKA-Reauthentication, | 8 EAP-Request/AKA-Reauthentication | |||
| (9) EAP-Response/AKA-Reauthentication, | 9 EAP-Response/AKA-Reauthentication | |||
| (10) EAP-Response/AKA-Authentication-Reject, and | 10 EAP-Response/AKA-Authentication-Reject | |||
| (11) EAP-Response/AKA-Synchronization-Failure. | 11 EAP-Response/AKA-Synchronization-Failure | |||
| The column denoted with "E" indicates whether the attribute is a | The column denoted with "E" indicates whether the attribute is a | |||
| nested attribute that MUST be included within AT_ENCR_DATA. | nested attribute that MUST be included within AT_ENCR_DATA. | |||
| In addition,the numbered columns indicate the quantity of the | In addition, the numbered columns indicate the quantity of the | |||
| attribute within the message as follows: | attribute within the message as follows: | |||
| "0" indicates that the attribute MUST NOT be included in the | "0" Indicates that the attribute MUST NOT be included in the | |||
| message, | message. | |||
| "1" indicates that the attribute MUST be included in the message, | "1" Indicates that the attribute MUST be included in the message. | |||
| "0-1" indicates that the attribute is sometimes included in the | "0-1" Indicates that the attribute is sometimes included in the | |||
| message, | message | |||
| "0+" indicates that zero or more copies of the attribute MAY be | "0+" Indicates that zero or more copies of the attribute MAY be | |||
| included in the message, | included in the message. | |||
| "1+" indicates that there MUST be at least one attribute in the | "1+" Indicates that there MUST be at least one attribute in the | |||
| message but more than one MAY be included in the message, and | message but more than one MAY be included in the message. | |||
| "0*" indicates that the attribute is not included in the message | "0*" Indicates that the attribute is not included in the message | |||
| in cases specified in this document, but MAY be included in the | in cases specified in this document, but MAY be included in | |||
| future versions of the protocol. | the future versions of the protocol. | |||
| The attribute table is shown below. The table is largely the same as | The attribute table is shown below. The table is largely the same as | |||
| in the EAP-AKA attribute table ([RFC4187] Section 10.1), but changes | in the EAP-AKA attribute table ([RFC4187], Section 10.1), but changes | |||
| how many times AT_MAC may appear in EAP-Response/AKA'-Challenge | how many times AT_MAC may appear in an EAP-Response/AKA'-Challenge | |||
| message as it does not appear there when AT_KDF has to be sent from | message as it does not appear there when AT_KDF has to be sent from | |||
| the peer to the server. The table also adds the AT_KDF and | the peer to the server. The table also adds the AT_KDF and | |||
| AT_KDF_INPUT attributes. | AT_KDF_INPUT attributes. | |||
| Attribute (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)(11) E | +======================+===+===+===+===+===+===+=+====+=====+==+==+=+ | |||
| AT_PERMANENT_ID_REQ 0-1 0 0 0 0 0 0 0 0 0 0 N | | Attribute |1 |2 |3 |4 |5 |6 |7|8 | 9 |10|11|E| | |||
| AT_ANY_ID_REQ 0-1 0 0 0 0 0 0 0 0 0 0 N | +======================+===+===+===+===+===+===+=+====+=====+==+==+=+ | |||
| AT_FULLAUTH_ID_REQ 0-1 0 0 0 0 0 0 0 0 0 0 N | | AT_PERMANENT_ID_REQ |0-1|0 |0 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_IDENTITY 0 0-1 0 0 0 0 0 0 0 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_RAND 0 0 1 0 0 0 0 0 0 0 0 N | | AT_ANY_ID_REQ |0-1|0 |0 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_AUTN 0 0 1 0 0 0 0 0 0 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_RES 0 0 0 1 0 0 0 0 0 0 0 N | | AT_FULLAUTH_ID_REQ |0-1|0 |0 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_AUTS 0 0 0 0 0 0 0 0 0 0 1 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_NEXT_PSEUDONYM 0 0 0-1 0 0 0 0 0 0 0 0 Y | | AT_IDENTITY |0 |0-1|0 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_NEXT_REAUTH_ID 0 0 0-1 0 0 0 0 0-1 0 0 0 Y | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_IV 0 0 0-1 0* 0-1 0-1 0 1 1 0 0 N | | AT_RAND |0 |0 |1 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_ENCR_DATA 0 0 0-1 0* 0-1 0-1 0 1 1 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_PADDING 0 0 0-1 0* 0-1 0-1 0 0-1 0-1 0 0 Y | | AT_AUTN |0 |0 |1 |0 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_CHECKCODE 0 0 0-1 0-1 0 0 0 0-1 0-1 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_RESULT_IND 0 0 0-1 0-1 0 0 0 0-1 0-1 0 0 N | | AT_RES |0 |0 |0 |1 |0 |0 |0|0 | 0 |0 |0 |N| | |||
| AT_MAC 0 0 1 0-1 0-1 0-1 0 1 1 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_COUNTER 0 0 0 0 0-1 0-1 0 1 1 0 0 Y | | AT_AUTS |0 |0 |0 |0 |0 |0 |0|0 | 0 |0 |1 |N| | |||
| AT_COUNTER_TOO_SMALL 0 0 0 0 0 0 0 0 0-1 0 0 Y | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_NONCE_S 0 0 0 0 0 0 0 1 0 0 0 Y | | AT_NEXT_PSEUDONYM |0 |0 |0-1|0 |0 |0 |0|0 | 0 |0 |0 |Y| | |||
| AT_NOTIFICATION 0 0 0 0 1 0 0 0 0 0 0 N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_CLIENT_ERROR_CODE 0 0 0 0 0 0 1 0 0 0 0 N | | AT_NEXT_REAUTH_ID |0 |0 |0-1|0 |0 |0 |0|0-1 | 0 |0 |0 |Y| | |||
| AT_KDF 0 0 1+ 0+ 0 0 0 0 0 0 1+ N | +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | |||
| AT_KDF_INPUT 0 0 1 0 0 0 0 0 0 0 0 N | | AT_IV |0 |0 |0-1|0* |0-1|0-1|0|1 | 1 |0 |0 |N| | |||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_ENCR_DATA |0 |0 |0-1|0* |0-1|0-1|0|1 | 1 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_PADDING |0 |0 |0-1|0* |0-1|0-1|0|0-1 | 0-1 |0 |0 |Y| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_CHECKCODE |0 |0 |0-1|0-1|0 |0 |0|0-1 | 0-1 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_RESULT_IND |0 |0 |0-1|0-1|0 |0 |0|0-1 | 0-1 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_MAC |0 |0 |1 |0-1|0-1|0-1|0|1 | 1 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_COUNTER |0 |0 |0 |0 |0-1|0-1|0|1 | 1 |0 |0 |Y| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_COUNTER_TOO_SMALL |0 |0 |0 |0 |0 |0 |0|0 | 0-1 |0 |0 |Y| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_NONCE_S |0 |0 |0 |0 |0 |0 |0|1 | 0 |0 |0 |Y| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_NOTIFICATION |0 |0 |0 |0 |1 |0 |0|0 | 0 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_CLIENT_ERROR_CODE |0 |0 |0 |0 |0 |0 |1|0 | 0 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_KDF |0 |0 |1+ |0+ |0 |0 |0|0 | 0 |0 |1+|N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| | AT_KDF_INPUT |0 |0 |1 |0 |0 |0 |0|0 | 0 |0 |0 |N| | ||||
| +----------------------+---+---+---+---+---+---+-+----+-----+--+--+-+ | ||||
| Table 1: The attribute table | Table 1: The Attribute Table | |||
| 4. Bidding Down Prevention for EAP-AKA | 4. Bidding Down Prevention for EAP-AKA | |||
| As discussed in [RFC3748], negotiation of methods within EAP is | As discussed in [RFC3748], negotiation of methods within EAP is | |||
| insecure. That is, a man-in-the-middle attacker may force the | insecure. That is, a man-in-the-middle attacker may force the | |||
| endpoints to use a method that is not the strongest that they both | endpoints to use a method that is not the strongest that they both | |||
| support. This is a problem, as we expect EAP-AKA and EAP-AKA' to be | support. This is a problem, as we expect EAP-AKA and EAP-AKA' to be | |||
| negotiated via EAP. | negotiated via EAP. | |||
| In order to prevent such attacks, this RFC specifies a new mechanism | In order to prevent such attacks, this RFC specifies a mechanism for | |||
| for EAP-AKA that allows the endpoints to securely discover the | EAP-AKA that allows the endpoints to securely discover the | |||
| capabilities of each other. This mechanism comes in the form of the | capabilities of each other. This mechanism comes in the form of the | |||
| AT_BIDDING attribute. This allows both endpoints to communicate | AT_BIDDING attribute. This allows both endpoints to communicate | |||
| their desire and support for EAP-AKA' when exchanging EAP-AKA | their desire and support for EAP-AKA' when exchanging EAP-AKA | |||
| messages. This attribute is not included in EAP-AKA' messages. It | messages. This attribute is not included in EAP-AKA' messages. It | |||
| is only included in EAP-AKA messages. (Those messages are protected | is only included in EAP-AKA messages, which are protected with the | |||
| with the AT_MAC attribute.) This approach is based on the assumption | AT_MAC attribute. This approach is based on the assumption that EAP- | |||
| that EAP-AKA' is always preferable (see Section 7). If during the | AKA' is always preferable (see Section 7). If during the EAP-AKA | |||
| EAP-AKA authentication process it is discovered that both endpoints | authentication process it is discovered that both endpoints would | |||
| would have been able to use EAP-AKA', the authentication process | have been able to use EAP-AKA', the authentication process SHOULD be | |||
| SHOULD be aborted, as a bidding down attack may have happened. | aborted, as a bidding down attack may have happened. | |||
| The format of the AT_BIDDING attribute is shown below. | The format of the AT_BIDDING attribute is shown below. | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | AT_BIDDING | Length |D| Reserved | | | AT_BIDDING | Length |D| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The fields are as follows: | The fields are as follows: | |||
| skipping to change at page 20, line 10 ¶ | skipping to change at line 864 ¶ | |||
| Note that we assume (Section 7) that EAP-AKA' is always stronger than | Note that we assume (Section 7) that EAP-AKA' is always stronger than | |||
| EAP-AKA. As a result, this specification does not provide protection | EAP-AKA. As a result, this specification does not provide protection | |||
| against bidding "down" attacks in the other direction, i.e., | against bidding "down" attacks in the other direction, i.e., | |||
| attackers forcing the endpoints to use EAP-AKA'. | attackers forcing the endpoints to use EAP-AKA'. | |||
| 4.1. Summary of Attributes for EAP-AKA | 4.1. Summary of Attributes for EAP-AKA | |||
| The appearance of the AT_BIDDING attribute in EAP-AKA exchanges is | The appearance of the AT_BIDDING attribute in EAP-AKA exchanges is | |||
| shown below, using the notation from Section 3.5: | shown below, using the notation from Section 3.5: | |||
| Attribute (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)(11) E | +============+===+===+===+===+===+===+===+===+===+====+====+===+ | |||
| AT_BIDDING 0 0 1 0 0 0 0 0 0 0 0 N | | Attribute | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | E | | |||
| +============+===+===+===+===+===+===+===+===+===+====+====+===+ | ||||
| | AT_BIDDING | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | N | | ||||
| +------------+---+---+---+---+---+---+---+---+---+----+----+---+ | ||||
| Table 2: AT_BIDDING Attribute Appearance | ||||
| 5. Peer Identities | 5. Peer Identities | |||
| EAP-AKA' peer identities are as specified in [RFC4187] Section 4.1, | EAP-AKA' peer identities are as specified in [RFC4187], Section 4.1, | |||
| with the addition of some requirements specified in this section. | with the addition of some requirements specified in this section. | |||
| EAP-AKA' includes optional identity privacy support that can be used | EAP-AKA' includes optional identity privacy support that can be used | |||
| to hide the cleartext permanent identity and thereby make the | to hide the cleartext permanent identity and thereby make the | |||
| subscriber's EAP exchanges untraceable to eavesdroppers. EAP-AKA' | subscriber's EAP exchanges untraceable to eavesdroppers. EAP-AKA' | |||
| can also use the privacy friendly identifiers specified for 5G | can also use the privacy-friendly identifiers specified for 5G | |||
| networks. | networks. | |||
| The permanent identity is usually based on the IMSI. Exposing the | The permanent identity is usually based on the IMSI. Exposing the | |||
| IMSI is undesirable, because as a permanent identity it is easily | IMSI is undesirable because, as a permanent identity, it is easily | |||
| trackable. In addition, since IMSIs may be used in other contexts as | trackable. In addition, since IMSIs may be used in other contexts as | |||
| well, there would be additional opportunities for such tracking. | well, there would be additional opportunities for such tracking. | |||
| In EAP-AKA', identity privacy is based on temporary usernames, or | In EAP-AKA', identity privacy is based on temporary usernames or | |||
| pseudonym usernames. These are similar to but separate from the | pseudonym usernames. These are similar to, but separate from, the | |||
| Temporary Mobile Subscriber Identities (TMSI) that are used on | Temporary Mobile Subscriber Identities (TMSI) that are used on | |||
| cellular networks. | cellular networks. | |||
| 5.1. Username Types in EAP-AKA' Identities | 5.1. Username Types in EAP-AKA' Identities | |||
| Section 4.1.1.3 of [RFC4187] specified that there are three types of | Section 4.1.1.3 of [RFC4187] specifies that there are three types of | |||
| usernames: permanent, pseudonym, and fast re-authentication | usernames: permanent, pseudonym, and fast re-authentication | |||
| usernames. This specification extends this definition as follows. | usernames. This specification extends this definition as follows. | |||
| There are four types of usernames: | There are four types of usernames: | |||
| (1) Regular usernames. These are external names given to EAP-AKA' | (1) Regular usernames. These are external names given to EAP-AKA' | |||
| peers. The regular usernames are further subdivided into to | peers. The regular usernames are further subdivided into to | |||
| categories: | categories: | |||
| (a) Permanent usernames, for instance IMSI-based usernames. | (a) Permanent usernames, for instance, IMSI-based usernames. | |||
| (b) Privacy-friendly temporary usernames, for instance 5G GUTI | (b) Privacy-friendly temporary usernames, for instance, 5G GUTI | |||
| (5G Globally Unique Temporary Identifier) or 5G privacy | (5G Globally Unique Temporary Identifier) or 5G privacy | |||
| identifiers (see Section 5.3.2), for instance SUCI | identifiers (see Section 5.3.2) such as SUCI (Subscription | |||
| (Subscription Concealed Identifier). | Concealed Identifier). | |||
| (2) EAP-AKA' pseudonym usernames. For example, | (2) EAP-AKA' pseudonym usernames. For example, | |||
| 2s7ah6n9q@example.com might be a valid pseudonym identity. In | 2s7ah6n9q@example.com might be a valid pseudonym identity. In | |||
| this example, 2s7ah6n9q is the pseudonym username. | this example, 2s7ah6n9q is the pseudonym username. | |||
| (3) EAP-AKA' fast re-authentication usernames. For example, | (3) EAP-AKA' fast re-authentication usernames. For example, | |||
| 43953754@example.com might be a valid fast re-authentication | 43953754@example.com might be a valid fast re-authentication | |||
| identity and 43953754 the fast re-authentication username. | identity and 43953754 the fast re-authentication username. | |||
| The permanent, privacy-friendly temporary, and pseudonym usernames | The permanent, privacy-friendly temporary, and pseudonym usernames | |||
| are only used on full authentication, and fast re-authentication | are only used with full authentication, and fast re-authentication | |||
| usernames only on fast re-authentication. Unlike permanent usernames | usernames only with fast re-authentication. Unlike permanent | |||
| and pseudonym usernames, privacy friendly temporary usernames and | usernames and pseudonym usernames, privacy-friendly temporary | |||
| fast re-authentication usernames are one-time identifiers, which are | usernames and fast re-authentication usernames are one-time | |||
| not re-used across EAP exchanges. | identifiers, which are not reused across EAP exchanges. | |||
| 5.2. Generating Pseudonyms and Fast Re-Authentication Identities | 5.2. Generating Pseudonyms and Fast Re-Authentication Identities | |||
| This section provides some additional guidance for implementations | This section provides some additional guidance to implementations for | |||
| for producing secure pseudonyms and fast re-authentication | producing secure pseudonyms and fast re-authentication identities. | |||
| identities. It does not impact backwards compatibility, because each | It does not impact backwards compatibility because each server | |||
| server consumes only the identities it itself generates. However, | consumes only the identities that it generates itself. However, | |||
| adherence to the guidance will provide better security. | adherence to the guidance will provide better security. | |||
| As specified by [RFC4187] Section 4.1.1.7, pseudonym usernames and | As specified by [RFC4187], Section 4.1.1.7, pseudonym usernames and | |||
| fast re-authentication identities are generated by the EAP server, in | fast re-authentication identities are generated by the EAP server in | |||
| an implementation-dependent manner. RFC 4187 provides some general | an implementation-dependent manner. RFC 4187 provides some general | |||
| requirements on how these identities are transported, how they map to | requirements on how these identities are transported, how they map to | |||
| the NAI syntax, how they are distinguished from each other, and so | the NAI syntax, how they are distinguished from each other, and so | |||
| on. | on. | |||
| However, to enhance privacy some additional requirements need to be | However, to enhance privacy, some additional requirements need to be | |||
| applied. | applied. | |||
| The pseudonym usernames and fast re-authentication identities MUST be | The pseudonym usernames and fast re-authentication identities MUST be | |||
| generated in a cryptographically secure way so that that it is | generated in a cryptographically secure way so that it is | |||
| computationally infeasible for an attacker to differentiate two | computationally infeasible for an attacker to differentiate two | |||
| identities belonging to the same user from two identities belonging | identities belonging to the same user from two identities belonging | |||
| to different users. This can be achieved, for instance, by using | to different users. This can be achieved, for instance, by using | |||
| random or pseudo-random identifiers such as random byte strings or | random or pseudorandom identifiers such as random byte strings or | |||
| ciphertexts. See also [RFC4086] for guidance on random number | ciphertexts. See also [RFC4086] for guidance on random number | |||
| generation. | generation. | |||
| Note that the pseudonym and fast re-authentication usernames also | Note that the pseudonym and fast re-authentication usernames also | |||
| MUST NOT include substrings that can be used to relate the username | MUST NOT include substrings that can be used to relate the username | |||
| to a particular entity or a particular permanent identity. For | to a particular entity or a particular permanent identity. For | |||
| instance, the usernames can not include any subscriber-identifying | instance, the usernames cannot include any subscriber-identifying | |||
| part of an IMSI or other permanent identifier. Similarly, no part of | part of an IMSI or other permanent identifier. Similarly, no part of | |||
| the username can be formed by a fixed mapping that stays the same | the username can be formed by a fixed mapping that stays the same | |||
| across multiple different pseudonyms or fast re-authentication | across multiple different pseudonyms or fast re-authentication | |||
| identities for the same subscriber. | identities for the same subscriber. | |||
| When the identifier used to identify a subscriber in an EAP-AKA' | When the identifier used to identify a subscriber in an EAP-AKA' | |||
| authentication exchange is a privacy-friendly identifier that is used | authentication exchange is a privacy-friendly identifier that is used | |||
| only once, the EAP-AKA' peer MUST NOT use a pseudonym provided in | only once, the EAP-AKA' peer MUST NOT use a pseudonym provided in | |||
| that authentication exchange in subsequent exchanges more than once. | that authentication exchange in subsequent exchanges more than once. | |||
| To ensure that this does not happen, EAP-AKA' server MAY decline to | To ensure that this does not happen, the EAP-AKA' server MAY decline | |||
| provide a pseudonym in such authentication exchanges. An important | to provide a pseudonym in such authentication exchanges. An | |||
| case where such privacy-friendly identifiers are used is in 5G | important case where such privacy-friendly identifiers are used is in | |||
| networks (see Section 5.3). | 5G networks (see Section 5.3). | |||
| 5.3. Identifier Usage in 5G | 5.3. Identifier Usage in 5G | |||
| In EAP-AKA', the peer identity may be communicated to the server in | In EAP-AKA', the peer identity may be communicated to the server in | |||
| one of three ways: | one of three ways: | |||
| o As a part of link layer establishment procedures, externally to | * As a part of link-layer establishment procedures, externally to | |||
| EAP. | EAP. | |||
| o With the EAP-Response/Identity message in the beginning of the EAP | * With the EAP-Response/Identity message in the beginning of the EAP | |||
| exchange, but before the selection of EAP-AKA'. | exchange, but before the selection of EAP-AKA'. | |||
| o Transmitted from the peer to the server using EAP-AKA' messages | * Transmitted from the peer to the server using EAP-AKA' messages | |||
| instead of EAP-Response/Identity. In this case, the server | instead of EAP-Response/Identity. In this case, the server | |||
| includes an identity requesting attribute (AT_ANY_ID_REQ, | includes an identity-requesting attribute (AT_ANY_ID_REQ, | |||
| AT_FULLAUTH_ID_REQ or AT_PERMANENT_ID_REQ) in the EAP-Request/AKA- | AT_FULLAUTH_ID_REQ, or AT_PERMANENT_ID_REQ) in the EAP-Request/ | |||
| Identity message; and the peer includes the AT_IDENTITY attribute, | AKA-Identity message, and the peer includes the AT_IDENTITY | |||
| which contains the peer's identity, in the EAP-Response/AKA- | attribute, which contains the peer's identity, in the EAP- | |||
| Identity message. | Response/AKA-Identity message. | |||
| The identity carried above may be a permanent identity, privacy | The identity carried above may be a permanent identity, privacy- | |||
| friendly identity, pseudonym identity, or fast re-authentication | friendly identity, pseudonym identity, or fast re-authentication | |||
| identity as defined in Section 5.1. | identity as defined in Section 5.1. | |||
| 5G supports the concept of privacy identifiers, and it is important | 5G supports the concept of privacy identifiers, and it is important | |||
| for interoperability that the right type of identifier is used. | for interoperability that the right type of identifier is used. | |||
| 5G defines the SUbscription Permanent Identifier (SUPI) and | 5G defines the SUbscription Permanent Identifier (SUPI) and | |||
| SUbscription Concealed Identifier (SUCI) [TS-3GPP.23.501] | SUbscription Concealed Identifier (SUCI) [TS-3GPP.23.501] | |||
| [TS-3GPP.33.501] [TS-3GPP.23.003]. SUPI is globally unique and | [TS-3GPP.33.501] [TS-3GPP.23.003]. SUPI is globally unique and | |||
| allocated to each subscriber. However, it is only used internally in | allocated to each subscriber. However, it is only used internally in | |||
| the 5G network, and is privacy sensitive. The SUCI is a privacy | the 5G network and is privacy sensitive. The SUCI is a privacy- | |||
| preserving identifier containing the concealed SUPI, using public key | preserving identifier containing the concealed SUPI, using public key | |||
| cryptography to encrypt the SUPI. | cryptography to encrypt the SUPI. | |||
| Given the choice between these two types of identifiers, EAP-AKA' | Given the choice between these two types of identifiers, EAP-AKA' | |||
| ensures interoperability as follows: | ensures interoperability as follows: | |||
| o Where identifiers are used within EAP-AKA' -- such as key | * Where identifiers are used within EAP-AKA' (such as key | |||
| derivation -- specify what values exactly should be used, to avoid | derivation) determine the exact values of the identity to be used, | |||
| ambiguity (see Section 5.3.1). | to avoid ambiguity (see Section 5.3.1). | |||
| o Where identifiers are carried within EAP-AKA' packets -- such as | * Where identifiers are carried within EAP-AKA' packets (such as in | |||
| in the AT_IDENTITY attribute -- specify which identifiers should | the AT_IDENTITY attribute) determine which identifiers should be | |||
| be filled in (see Section 5.3.2). | filled in (see Section 5.3.2). | |||
| In 5G, the normal mode of operation is that identifiers are only | In 5G, the normal mode of operation is that identifiers are only | |||
| transmitted outside EAP. However, in a system involving terminals | transmitted outside EAP. However, in a system involving terminals | |||
| from many generations and several connectivity options via 5G and | from many generations and several connectivity options via 5G and | |||
| other mechanisms, implementations and the EAP-AKA' specification need | other mechanisms, implementations and the EAP-AKA' specification need | |||
| to prepare for many different situations, including sometimes having | to prepare for many different situations, including sometimes having | |||
| to communicate identities within EAP. | to communicate identities within EAP. | |||
| The following sections clarify which identifiers are used and how. | The following sections clarify which identifiers are used and how. | |||
| 5.3.1. Key Derivation | 5.3.1. Key Derivation | |||
| In EAP-AKA', the peer identity is used in the Section 3.3 key | In EAP-AKA', the peer identity is used in the key derivation formula | |||
| derivation formula. | found in Section 3.3. | |||
| The identity needs to be represented in exact correct format for the | The identity needs to be represented in exactly the correct format | |||
| key derivation formula to produce correct results. | for the key derivation formula to produce correct results. | |||
| If the AT_KDF_INPUT parameter contains the prefix "5G:", the AT_KDF | If the AT_KDF_INPUT parameter contains the prefix "5G:", the AT_KDF | |||
| parameter has the value 1, and this authentication is not a fast re- | parameter has the value 1, and this authentication is not a fast re- | |||
| authentication, then the peer identity used in the key derivation | authentication, then the peer identity used in the key derivation | |||
| MUST be as specified in Annex F.3 of [TS-3GPP.33.501] and Clause 2.2 | MUST be as specified in Annex F.3 of [TS-3GPP.33.501] and Clause 2.2 | |||
| of [TS-3GPP.23.003]. This is in contrast to [RFC5448], which used | of [TS-3GPP.23.003]. This is in contrast to [RFC5448], which uses | |||
| the identity as communicated in EAP and represented as a NAI. Also, | the identity as communicated in EAP and represented as a NAI. Also, | |||
| in contrast to [RFC5448], in 5G EAP-AKA' does not use the "0" or "6" | in contrast to [RFC5448], in 5G EAP-AKA' does not use the "0" nor the | |||
| prefix in front of the identifier. | "6" prefix in front of the identifier. | |||
| For an example of the format of the identity, see Clause 2.2 of | For an example of the format of the identity, see Clause 2.2 of | |||
| [TS-3GPP.23.003]. | [TS-3GPP.23.003]. | |||
| In all other cases, the following applies: | In all other cases, the following applies: | |||
| The identity used in the key derivation formula MUST be exactly | The identity used in the key derivation formula MUST be exactly | |||
| the one sent in EAP-AKA' AT_IDENTITY attribute, if one was sent, | the one sent in the EAP-AKA' AT_IDENTITY attribute, if one was | |||
| regardless of the kind of identity that it may have been. If no | sent, regardless of the kind of identity that it may have been. | |||
| AT_IDENTITY was sent, the identity MUST be the exactly the one | If no AT_IDENTITY was sent, the identity MUST be exactly the | |||
| sent in the generic EAP Identity exchange, if one was made. | one sent in the generic EAP Identity exchange, if one was made. | |||
| If no identity was communicated inside EAP, then the identity is | If no identity was communicated inside EAP, then the identity | |||
| the one communicated outside EAP in link layer messaging. | is the one communicated outside EAP in link-layer messaging. | |||
| In this case, the used identity MUST be the identity most recently | In this case, the used identity MUST be the identity most | |||
| communicated by the peer to the network, again regardless of what | recently communicated by the peer to the network, again | |||
| type of identity it may have been. | regardless of what type of identity it may have been. | |||
| 5.3.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute | 5.3.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute | |||
| The EAP authentication option is only available in 5G when the new 5G | The EAP authentication option is only available in 5G when the new 5G | |||
| core network is also in use. However, in other networks an EAP-AKA' | core network is also in use. However, in other networks, an EAP-AKA' | |||
| peer may be connecting to other types of networks and existing | peer may be connecting to other types of networks and existing | |||
| equipment. | equipment. | |||
| When the EAP server is in a 5G network, the 5G procedures for EAP- | When the EAP server is in a 5G network, the 5G procedures for EAP- | |||
| AKA' apply. When EAP server is defined to be in a 5G network is | AKA' apply. [TS-3GPP.33.501] specifies when the EAP server is in a | |||
| specified in [TS-3GPP.33.501]. | 5G network. | |||
| Note: Currently, the following conditions are specified: when the | Note: Currently, the following conditions are specified: when | |||
| EAP peer uses the 5G Non-Access Stratum (NAS) protocol | the EAP peer uses the 5G Non-Access Stratum (NAS) protocol | |||
| [TS-3GPP.24.501] or when the EAP peer attaches to a network that | [TS-3GPP.24.501] or when the EAP peer attaches to a network | |||
| advertises 5G connectivity without NAS [TS-3GPP.23.501]. Possible | that advertises 5G connectivity without NAS [TS-3GPP.23.501]. | |||
| future conditions may also be specified by 3GPP. | Possible future conditions may also be specified by 3GPP. | |||
| When the 5G procedures for EAP-AKA' apply, EAP identity exchanges are | When the 5G procedures for EAP-AKA' apply, EAP identity exchanges are | |||
| generally not used as the identity is already made available on | generally not used as the identity is already made available on | |||
| previous link layer exchanges. | previous link-layer exchanges. | |||
| In this situation, the EAP Identity Response and EAP-AKA' AT_IDENTITY | In this situation, the EAP Identity Response and EAP-AKA' AT_IDENTITY | |||
| attribute are handled as specified in Annex F.2 of [TS-3GPP.33.501]. | attribute are handled as specified in Annex F.2 of [TS-3GPP.33.501]. | |||
| When used in EAP-AKA', the format of the SUCI MUST be as specified in | When used in EAP-AKA', the format of the SUCI MUST be as specified in | |||
| [TS-3GPP.23.003] Section 28.7.3, with the semantics defined in | [TS-3GPP.23.003], Section 28.7.3, with the semantics defined in | |||
| [TS-3GPP.23.003] Section 2.2B. Also, in contrast to [RFC5448], in 5G | [TS-3GPP.23.003], Section 2.2B. Also, in contrast to [RFC5448], in | |||
| EAP-AKA' does not use the "0" or "6" prefix in front of the | 5G EAP-AKA' does not use the "0" nor the "6" prefix in front of the | |||
| identifier. | identifier. | |||
| For an example of an IMSI in NAI format, see [TS-3GPP.23.003] | For an example of an IMSI in NAI format, see [TS-3GPP.23.003], | |||
| Section 28.7.3. | Section 28.7.3. | |||
| Otherwise, the peer SHOULD employ IMSI, SUPI, or a NAI as it is | Otherwise, the peer SHOULD employ an IMSI, SUPI, or NAI [RFC7542] as | |||
| configured to use. | it is configured to use. | |||
| 6. Exported Parameters | 6. Exported Parameters | |||
| When not using fast re-authentication, the EAP-AKA' Session-Id is the | When not using fast re-authentication, the EAP-AKA' Session-Id is the | |||
| concatenation of the EAP Type Code (0x32, one byte) with the contents | concatenation of the EAP-AKA' Type value (0x32, one byte) with the | |||
| of the RAND field from the AT_RAND attribute, followed by the | contents of the RAND field from the AT_RAND attribute followed by the | |||
| contents of the AUTN field in the AT_AUTN attribute : | contents of the AUTN field in the AT_AUTN attribute: | |||
| Session-Id = 0x32 || RAND || AUTN | Session-Id = 0x32 || RAND || AUTN | |||
| When using fast re-authentication, the EAP-AKA' Session-Id is the | When using fast re-authentication, the EAP-AKA' Session-Id is the | |||
| concatenation of the EAP Type Code (0x32) with the contents of the | concatenation of the EAP-AKA' Type value (0x32) with the contents of | |||
| NONCE_S field from the AT_NONCE_S attribute, followed by the contents | the NONCE_S field from the AT_NONCE_S attribute followed by the | |||
| of the MAC field from the AT_MAC attribute from EAP-Request/AKA- | contents of the MAC field from the AT_MAC attribute from the EAP- | |||
| Reauthentication: | Request/AKA-Reauthentication: | |||
| Session-Id = 0x32 || NONCE_S || MAC | Session-Id = 0x32 || NONCE_S || MAC | |||
| The Peer-Id is the contents of the Identity field from the | The Peer-Id is the contents of the Identity field from the | |||
| AT_IDENTITY attribute, using only the Actual Identity Length bytes | AT_IDENTITY attribute, using only the Actual Identity Length bytes | |||
| from the beginning. Note that the contents are used as they are | from the beginning. Note that the contents are used as they are | |||
| transmitted, regardless of whether the transmitted identity was a | transmitted, regardless of whether the transmitted identity was a | |||
| permanent, pseudonym, or fast EAP re-authentication identity. If no | permanent, pseudonym, or fast EAP re-authentication identity. If no | |||
| AT_IDENTITY attribute was exchanged, the exported Peer-Id is the | AT_IDENTITY attribute was exchanged, the exported Peer-Id is the | |||
| identity provided from the EAP Identity Response packet. If no EAP | identity provided from the EAP Identity Response packet. If no EAP | |||
| Identity Response was provided either, the exported Peer-Id is the | Identity Response was provided either, the exported Peer-Id is the | |||
| null string (zero length). | null string (zero length). | |||
| The Server-Id is the null string (zero length). | The Server-Id is the null string (zero length). | |||
| 7. Security Considerations | 7. Security Considerations | |||
| A summary of the security properties of EAP-AKA' follows. These | A summary of the security properties of EAP-AKA' follows. These | |||
| properties are very similar to those in EAP-AKA. We assume that HMAC | properties are very similar to those in EAP-AKA. We assume that HMAC | |||
| SHA-256 is at least as secure as HMAC SHA-1 (see also [RFC6194]. | SHA-256 is at least as secure as HMAC SHA-1 (see also [RFC6194]). | |||
| This is called the SHA-256 assumption in the remainder of this | This is called the SHA-256 assumption in the remainder of this | |||
| section. Under this assumption, EAP-AKA' is at least as secure as | section. Under this assumption, EAP-AKA' is at least as secure as | |||
| EAP-AKA. | EAP-AKA. | |||
| If the AT_KDF attribute has value 1, then the security properties of | If the AT_KDF attribute has value 1, then the security properties of | |||
| EAP-AKA' are as follows: | EAP-AKA' are as follows: | |||
| Protected ciphersuite negotiation | Protected ciphersuite negotiation | |||
| EAP-AKA' has no ciphersuite negotiation mechanisms. It does have | EAP-AKA' has no ciphersuite negotiation mechanisms. It does have | |||
| a negotiation mechanism for selecting the key derivation | a negotiation mechanism for selecting the key derivation | |||
| functions. This mechanism is secure against bidding down attacks | functions. This mechanism is secure against bidding down attacks | |||
| from EAP-AKA' to EAP-AKA. The negotiation mechanism allows | from EAP-AKA' to EAP-AKA. The negotiation mechanism allows | |||
| changing the offered key derivation function, but the change is | changing the offered key derivation function, but the change is | |||
| visible in the final EAP-Request/AKA'-Challenge message that the | visible in the final EAP-Request/AKA'-Challenge message that the | |||
| server sends to the peer. This message is authenticated via the | server sends to the peer. This message is authenticated via the | |||
| AT_MAC attribute, and carries both the chosen alternative and the | AT_MAC attribute, and carries both the chosen alternative and the | |||
| initially offered list. The peer refuses to accept a change it | initially offered list. The peer refuses to accept a change it | |||
| did not initiate. As a result, both parties are aware that a | did not initiate. As a result, both parties are aware that a | |||
| change is being made and what the original offer was. | change is being made and what the original offer was. | |||
| Per assumptions in Section 4, there is no protection against | Per assumptions in Section 4, there is no protection against | |||
| bidding down attacks from EAP-AKA to EAP-AKA', should EAP-AKA' | bidding down attacks from EAP-AKA to EAP-AKA' should EAP-AKA' | |||
| somehow be considered less secure some day than EAP-AKA. Such | somehow be considered less secure some day than EAP-AKA. Such | |||
| protection was not provided in RFC 5448 implementations and | protection was not provided in RFC 5448 implementations and | |||
| consequently neither does this specification provide it. If such | consequently neither does this specification provide it. If such | |||
| support is needed, it would have to be added as a separate new | support is needed, it would have to be added as a separate new | |||
| feature. | feature. | |||
| In general, it is expected that the current negotiation | In general, it is expected that the current negotiation | |||
| capabilities in EAP-AKA' are sufficient for some types of | capabilities in EAP-AKA' are sufficient for some types of | |||
| extensions, including adding Perfect Forward Secrecy | extensions, including adding Perfect Forward Secrecy [EMU-AKA-PFS] | |||
| ([I-D.ietf-emu-aka-pfs]) and perhaps others. But as with how EAP- | and perhaps others. However, some larger changes may require a | |||
| AKA' itself came about, some larger changes may require a new EAP | new EAP method type, which is how EAP-AKA' itself happened. One | |||
| method type. One example of such change would be the introduction | example of such change would be the introduction of new | |||
| of new algorithms. | algorithms. | |||
| Mutual authentication | Mutual authentication | |||
| Under the SHA-256 assumption, the properties of EAP-AKA' are at | Under the SHA-256 assumption, the properties of EAP-AKA' are at | |||
| least as good as those of EAP-AKA in this respect. Refer to | least as good as those of EAP-AKA in this respect. Refer to | |||
| [RFC4187], Section 12 for further details. | [RFC4187], Section 12, for further details. | |||
| Integrity protection | Integrity protection | |||
| Under the SHA-256 assumption, the properties of EAP-AKA' are at | Under the SHA-256 assumption, the properties of EAP-AKA' are at | |||
| least as good (most likely better) as those of EAP-AKA in this | least as good (most likely better) as those of EAP-AKA in this | |||
| respect. Refer to [RFC4187], Section 12 for further details. The | respect. Refer to [RFC4187], Section 12, for further details. | |||
| only difference is that a stronger hash algorithm and keyed MAC, | The only difference is that a stronger hash algorithm and keyed | |||
| SHA-256 / HMAC-SHA-256, is used instead of SHA-1 / HMAC-SHA-1. | MAC, SHA-256 / HMAC-SHA-256, is used instead of SHA-1 / HMAC-SHA- | |||
| 1. | ||||
| Replay protection | Replay protection | |||
| Under the SHA-256 assumption, the properties of EAP-AKA' are at | Under the SHA-256 assumption, the properties of EAP-AKA' are at | |||
| least as good as those of EAP-AKA in this respect. Refer to | least as good as those of EAP-AKA in this respect. Refer to | |||
| [RFC4187], Section 12 for further details. | [RFC4187], Section 12, for further details. | |||
| Confidentiality | Confidentiality | |||
| The properties of EAP-AKA' are exactly the same as those of EAP- | The properties of EAP-AKA' are exactly the same as those of EAP- | |||
| AKA in this respect. Refer to [RFC4187], Section 12 for further | AKA in this respect. Refer to [RFC4187], Section 12, for further | |||
| details. | details. | |||
| Key derivation | Key derivation | |||
| EAP-AKA' supports key derivation with an effective key strength | EAP-AKA' supports key derivation with an effective key strength | |||
| against brute force attacks equal to the minimum of the length of | against brute-force attacks equal to the minimum of the length of | |||
| the derived keys and the length of the AKA base key, i.e., 128 | the derived keys and the length of the AKA base key, i.e., 128 | |||
| bits or more. The key hierarchy is specified in Section 3.3. | bits or more. The key hierarchy is specified in Section 3.3. | |||
| The Transient EAP Keys used to protect EAP-AKA packets (K_encr, | The Transient EAP Keys used to protect EAP-AKA packets (K_encr, | |||
| K_aut, K_re), the MSK, and the EMSK are cryptographically | K_aut, K_re), the MSK, and the EMSK are cryptographically | |||
| separate. If we make the assumption that SHA-256 behaves as a | separate. If we make the assumption that SHA-256 behaves as a | |||
| pseudo-random function, an attacker is incapable of deriving any | pseudorandom function, an attacker is incapable of deriving any | |||
| non-trivial information about any of these keys based on the other | non-trivial information about any of these keys based on the other | |||
| keys. An attacker also cannot calculate the pre-shared secret | keys. An attacker also cannot calculate the pre-shared secret | |||
| from IK, CK, IK', CK', K_encr, K_aut, K_re, MSK, or EMSK by any | from IK, CK, IK', CK', K_encr, K_aut, K_re, MSK, or EMSK by any | |||
| practically feasible means. | practically feasible means. | |||
| EAP-AKA' adds an additional layer of key derivation functions | EAP-AKA' adds an additional layer of key derivation functions | |||
| within itself to protect against the use of compromised keys. | within itself to protect against the use of compromised keys. | |||
| This is discussed further in Section 7.4. | This is discussed further in Section 7.4. | |||
| EAP-AKA' uses a pseudo-random function modeled after the one used | EAP-AKA' uses a pseudorandom function modeled after the one used | |||
| in IKEv2 [RFC7296] together with SHA-256. | in IKEv2 [RFC7296] together with SHA-256. | |||
| Key strength | Key strength | |||
| See above. | See above. | |||
| Dictionary attack resistance | Dictionary attack resistance | |||
| Under the SHA-256 assumption, the properties of EAP-AKA' are at | Under the SHA-256 assumption, the properties of EAP-AKA' are at | |||
| least as good as those of EAP-AKA in this respect. Refer to | least as good as those of EAP-AKA in this respect. Refer to | |||
| [RFC4187], Section 12 for further details. | [RFC4187], Section 12, for further details. | |||
| Fast reconnect | Fast reconnect | |||
| Under the SHA-256 assumption, the properties of EAP-AKA' are at | Under the SHA-256 assumption, the properties of EAP-AKA' are at | |||
| least as good as those of EAP-AKA in this respect. Refer to | least as good as those of EAP-AKA in this respect. Refer to | |||
| [RFC4187], Section 12 for further details. Note that | [RFC4187], Section 12, for further details. Note that | |||
| implementations MUST prevent performing a fast reconnect across | implementations MUST prevent performing a fast reconnect across | |||
| method types. | method types. | |||
| Cryptographic binding | Cryptographic binding | |||
| Note that this term refers to a very specific form of binding, | Note that this term refers to a very specific form of binding, | |||
| something that is performed between two layers of authentication. | something that is performed between two layers of authentication. | |||
| It is not the same as the binding to a particular network name. | It is not the same as the binding to a particular network name. | |||
| The properties of EAP-AKA' are exactly the same as those of EAP- | The properties of EAP-AKA' are exactly the same as those of EAP- | |||
| AKA in this respect, i.e., as it is not a tunnel method, this | AKA in this respect, i.e., as it is not a tunnel method, this | |||
| property is not applicable to it. Refer to [RFC4187], Section 12 | property is not applicable to it. Refer to [RFC4187], Section 12, | |||
| for further details. | for further details. | |||
| Session independence | Session independence | |||
| The properties of EAP-AKA' are exactly the same as those of EAP- | The properties of EAP-AKA' are exactly the same as those of EAP- | |||
| AKA in this respect. Refer to [RFC4187], Section 12 for further | AKA in this respect. Refer to [RFC4187], Section 12, for further | |||
| details. | details. | |||
| Fragmentation | Fragmentation | |||
| The properties of EAP-AKA' are exactly the same as those of EAP- | The properties of EAP-AKA' are exactly the same as those of EAP- | |||
| AKA in this respect. Refer to [RFC4187], Section 12 for further | AKA in this respect. Refer to [RFC4187], Section 12, for further | |||
| details. | details. | |||
| Channel binding | Channel binding | |||
| EAP-AKA', like EAP-AKA, does not provide channel bindings as | EAP-AKA', like EAP-AKA, does not provide channel bindings as | |||
| they're defined in [RFC3748] and [RFC5247]. New skippable | they're defined in [RFC3748] and [RFC5247]. New skippable | |||
| attributes can be used to add channel binding support in the | attributes can be used to add channel binding support in the | |||
| future, if required. | future, if required. | |||
| However, including the Network Name field in the AKA' algorithms | However, including the Network Name field in the AKA' algorithms | |||
| (which are also used for other purposes than EAP-AKA') provides a | (which are also used for other purposes than EAP-AKA') provides a | |||
| form of cryptographic separation between different network names, | form of cryptographic separation between different network names, | |||
| which resembles channel bindings. However, the network name does | which resembles channel bindings. However, the network name does | |||
| not typically identify the EAP (pass-through) authenticator. See | not typically identify the EAP (pass-through) authenticator. See | |||
| Section 7.4 for more discussion. | Section 7.4 for more discussion. | |||
| 7.1. Privacy | 7.1. Privacy | |||
| [RFC6973] suggests that the privacy considerations of IETF protocols | [RFC6973] suggests that the privacy considerations of IETF protocols | |||
| be documented. | be documented. | |||
| The confidentiality properties of EAP-AKA' itself have been discussed | The confidentiality properties of EAP-AKA' itself have been discussed | |||
| above under "Confidentiality". | above under "Confidentiality" (Section 7). | |||
| EAP-AKA' uses several different types of identifiers to identify the | EAP-AKA' uses several different types of identifiers to identify the | |||
| authenticating peer. It is strongly RECOMMENDED to use the privacy- | authenticating peer. It is strongly RECOMMENDED to use the privacy- | |||
| friendly temporary or hidden identifiers, i.e., the 5G GUTI or SUCI, | friendly temporary or hidden identifiers, i.e., the 5G GUTI or SUCI, | |||
| pseudonym usernames, and fast re-authentication usernames. The use | pseudonym usernames, and fast re-authentication usernames. The use | |||
| of permanent identifiers such as the IMSI or SUPI may lead to an | of permanent identifiers such as the IMSI or SUPI may lead to an | |||
| ability to track the peer and/or user associated with the peer. The | ability to track the peer and/or user associated with the peer. The | |||
| use of permanent identifiers such as the IMSI or SUPI is strongly NOT | use of permanent identifiers such as the IMSI or SUPI is strongly NOT | |||
| RECOMMENDED. | RECOMMENDED. | |||
| As discussed in Section 5.3, when authenticating to a 5G network, | As discussed in Section 5.3, when authenticating to a 5G network, | |||
| only the SUCI identifier is normally used. The use of EAP-AKA' | only the SUCI identifier is normally used. The use of EAP-AKA' | |||
| pseudonyms in this situation is at best limited, because the SUCI | pseudonyms in this situation is at best limited because the SUCI | |||
| already provides a stronger mechanism. In fact, the re-use of the | already provides a stronger mechanism. In fact, reusing the same | |||
| same pseudonym multiple times will result in a tracking opportunity | pseudonym multiple times will result in a tracking opportunity for | |||
| for observers that see the pseudonym pass by. To avoid this, the | observers that see the pseudonym pass by. To avoid this, the peer | |||
| peer and server need to follow the guidelines given in Section 5.2. | and server need to follow the guidelines given in Section 5.2. | |||
| When authenticating to a 5G network, per Section 5.3.1, both the EAP- | When authenticating to a 5G network, per Section 5.3.1, both the EAP- | |||
| AKA' peer and server need to employ the permanent identifier, SUPI, | AKA' peer and server need to employ the permanent identifier SUPI as | |||
| as an input to key derivation. However, this use of the SUPI is only | an input to key derivation. However, this use of the SUPI is only | |||
| internal. As such, the SUPI need not be communicated in EAP | internal. As such, the SUPI need not be communicated in EAP | |||
| messages. Therefore, SUPI MUST NOT be communicated in EAP-AKA' when | messages. Therefore, SUPI MUST NOT be communicated in EAP-AKA' when | |||
| authenticating to a 5G network. | authenticating to a 5G network. | |||
| While the use of SUCI in 5G networks generally provides identity | While the use of SUCI in 5G networks generally provides identity | |||
| privacy, this is not true if the null-scheme encryption is used to | privacy, this is not true if the null-scheme encryption is used to | |||
| construct the SUCI (see [TS-3GPP.33.501] Annex C). The use of this | construct the SUCI (see [TS-3GPP.33.501], Annex C). The use of this | |||
| scheme turns the use of SUCI equivalent to the use of SUPI or IMSI. | scheme makes the use of SUCI equivalent to the use of SUPI or IMSI. | |||
| The use of the null scheme is NOT RECOMMENDED where identity privacy | The use of the null scheme is NOT RECOMMENDED where identity privacy | |||
| is important. | is important. | |||
| The use of fast re-authentication identities when authenticating to a | The use of fast re-authentication identities when authenticating to a | |||
| 5G network does not have the same problems as the use of pseudonyms, | 5G network does not have the same problems as the use of pseudonyms, | |||
| as long as the 5G authentication server generates the fast re- | as long as the 5G authentication server generates the fast re- | |||
| authentication identifiers in a proper manner specified in | authentication identifiers in a proper manner specified in | |||
| Section 5.2. | Section 5.2. | |||
| Outside 5G, the peer can freely choose between the use of permanent, | Outside 5G, the peer can freely choose between the use of permanent, | |||
| pseudonym, or fast re-authentication identifiers: | pseudonym, or fast re-authentication identifiers: | |||
| o A peer that has not yet performed any EAP-AKA' exchanges does not | * A peer that has not yet performed any EAP-AKA' exchanges does not | |||
| typically have a pseudonym available. If the peer does not have a | typically have a pseudonym available. If the peer does not have a | |||
| pseudonym available, then the privacy mechanism cannot be used, | pseudonym available, then the privacy mechanism cannot be used, | |||
| and the permanent identity will have to be sent in the clear. | and the permanent identity will have to be sent in the clear. | |||
| The terminal SHOULD store the pseudonym in non-volatile memory so | The terminal SHOULD store the pseudonym in nonvolatile memory so | |||
| that it can be maintained across reboots. An active attacker that | that it can be maintained across reboots. An active attacker that | |||
| impersonates the network may use the AT_PERMANENT_ID_REQ attribute | impersonates the network may use the AT_PERMANENT_ID_REQ attribute | |||
| ([RFC4187] Section 4.1.2) to learn the subscriber's IMSI. | ([RFC4187], Section 4.1.2) to learn the subscriber's IMSI. | |||
| However, as discussed in [RFC4187] Section 4.1.2, the terminal can | However, as discussed in [RFC4187], Section 4.1.2, the terminal | |||
| refuse to send the cleartext permanent identity if it believes | can refuse to send the cleartext permanent identity if it believes | |||
| that the network should be able to recognize the pseudonym. | that the network should be able to recognize the pseudonym. | |||
| o When pseudonyms and fast re-authentication identities are used, | * When pseudonyms and fast re-authentication identities are used, | |||
| the peer relies on the properly created identifiers by the server. | the peer relies on the properly created identifiers by the server. | |||
| It is essential that an attacker cannot link a privacy-friendly | It is essential that an attacker cannot link a privacy-friendly | |||
| identifier to the user in any way or determine that two | identifier to the user in any way or determine that two | |||
| identifiers belong to the same user as outlined in Section 5.2. | identifiers belong to the same user as outlined in Section 5.2. | |||
| The pseudonym usernames and fast re-authentication identities MUST | The pseudonym usernames and fast re-authentication identities MUST | |||
| NOT be used for other purposes (e.g., in other protocols). | NOT be used for other purposes (e.g., in other protocols). | |||
| If the peer and server cannot guarantee that SUCI can be used or | If the peer and server cannot guarantee that SUCI can be used or that | |||
| pseudonyms will be available, generated properly, and maintained | pseudonyms will be available, generated properly, and maintained | |||
| reliably, and identity privacy is required then additional protection | reliably, and identity privacy is required, then additional | |||
| from an external security mechanism such as tunneled EAP methods such | protection from an external security mechanism such as tunneled EAP | |||
| as TTLS [RFC5281] or TEAP [RFC7170] may be used. The benefits and | methods like Tunneled Transport Layer Security (TTLS) [RFC5281] or | |||
| the security considerations of using an external security mechanism | Tunnel Extensible Authentication Protocol (TEAP) [RFC7170] may be | |||
| with EAP-AKA are beyond the scope of this document. | used. The benefits and the security considerations of using an | |||
| external security mechanism with EAP-AKA are beyond the scope of this | ||||
| document. | ||||
| Finally, as with other EAP methods, even when privacy-friendly | Finally, as with other EAP methods, even when privacy-friendly | |||
| identifiers or EAP tunneling is used, typically the domain part of an | identifiers or EAP tunneling is used, typically the domain part of an | |||
| identifier (e.g., the home operator) is visible to external parties. | identifier (e.g., the home operator) is visible to external parties. | |||
| 7.2. Discovered Vulnerabilities | 7.2. Discovered Vulnerabilities | |||
| There have been no published attacks that violate the primary secrecy | There have been no published attacks that violate the primary secrecy | |||
| or authentication properties defined for Authentication and Key | or authentication properties defined for Authentication and Key | |||
| Agreement (AKA) under the originally assumed trust model. The same | Agreement (AKA) under the originally assumed trust model. The same | |||
| is true of EAP-AKA'. | is true of EAP-AKA'. | |||
| However, there have been attacks when a different trust model is in | However, there have been attacks when a different trust model is in | |||
| use, with characteristics not originally provided by the design, or | use, with characteristics not originally provided by the design, or | |||
| when participants in the protocol leak information to outsiders on | when participants in the protocol leak information to outsiders on | |||
| purpose, and there have been some privacy-related attacks. | purpose, and there have been some privacy-related attacks. | |||
| For instance, the original AKA protocol does not prevent supplying | For instance, the original AKA protocol does not prevent an insider | |||
| keys by an insider to a third party as done in, e.g., by Mjolsnes and | supplying keys to a third party, e.g., as described by Mjølsnes and | |||
| Tsay in [MT2012] where a serving network lets an authentication run | Tsay in [MT2012] where a serving network lets an authentication run | |||
| succeed, but then misuses the session keys to send traffic on the | succeed, but then it misuses the session keys to send traffic on the | |||
| authenticated user's behalf. This particular attack is not different | authenticated user's behalf. This particular attack is not different | |||
| from any on-path entity (such as a router) pretending to send | from any on-path entity (such as a router) pretending to send | |||
| traffic, but the general issue of insider attacks can be a problem, | traffic, but the general issue of insider attacks can be a problem, | |||
| particularly in a large group of collaborating operators. | particularly in a large group of collaborating operators. | |||
| Another class of attacks is the use of tunneling of traffic from one | Another class of attacks is the use of tunneling of traffic from one | |||
| place to another, e.g., as done by Zhang and Fang in [ZF2005] to | place to another, e.g., as done by Zhang and Fang in [ZF2005] to | |||
| leverage security policy differences between different operator | leverage security policy differences between different operator | |||
| networks, for instance. To gain something in such an attack, the | networks, for instance. To gain something in such an attack, the | |||
| attacker needs to trick the user into believing it is in another | attacker needs to trick the user into believing it is in another | |||
| location. If policies between different locations differ, for | location. If policies between locations differ, for instance, if | |||
| instance, in some location it is not required to encrypt all payload | payload traffic is not required to be encrypted in some location, the | |||
| traffic, the attacker may trick the user into opening a | attacker may trick the user into opening a vulnerability. As an | |||
| vulnerability. As an authentication mechanism, EAP-AKA' is not | authentication mechanism, EAP-AKA' is not directly affected by most | |||
| directly affected by most such attacks. EAP-AKA' network name | of these attacks. EAP-AKA' network name binding can also help | |||
| binding can also help alleviate some of the attacks. In any case, it | alleviate some of the attacks. In any case, it is recommended that | |||
| is recommended that EAP-AKA' configuration not be dependent on the | EAP-AKA' configuration not be dependent on the location of request | |||
| location of where a request comes from, unless the location | origin, unless the location information can be cryptographically | |||
| information can be cryptographically confirmed, e.g., with the | confirmed, e.g., with the network name binding. | |||
| network name binding. | ||||
| Zhang and Fang also looked at Denial-of-Service attacks [ZF2005]. A | Zhang and Fang also looked at denial-of-service attacks [ZF2005]. A | |||
| serving network may request large numbers of authentication runs for | serving network may request large numbers of authentication runs for | |||
| a particular subscriber from a home network. While resynchronization | a particular subscriber from a home network. While the | |||
| process can help recover from this, eventually it is possible to | resynchronization process can help recover from this, eventually it | |||
| exhaust the sequence number space and render the subscriber's card | is possible to exhaust the sequence number space and render the | |||
| unusable. This attack is possible for both native AKA and EAP-AKA'. | subscriber's card unusable. This attack is possible for both | |||
| However, it requires the collaboration of a serving network in an | original AKA and EAP-AKA'. However, it requires the collaboration of | |||
| attack. It is recommended that EAP-AKA' implementations provide | a serving network in an attack. It is recommended that EAP-AKA' | |||
| means to track, detect, and limit excessive authentication attempts | implementations provide the means to track, detect, and limit | |||
| to combat this problem. | excessive authentication attempts to combat this problem. | |||
| There have also been attacks related to the use of AKA without the | There have also been attacks related to the use of AKA without the | |||
| generated session keys (e.g., [BT2013]). Some of those attacks | generated session keys (e.g., [BT2013]). Some of those attacks | |||
| relate to the use of originally man-in-the-middle vulnerable HTTP | relate to the use of HTTP Digest AKAv1 [RFC3310], which was | |||
| Digest AKAv1 [RFC3310]. This has since then been corrected in | originally vulnerable to man-in-the-middle attacks. This has since | |||
| [RFC4169]. The EAP-AKA' protocol uses session keys and provides | been corrected in [RFC4169]. The EAP-AKA' protocol uses session keys | |||
| channel binding, and as such, is resistant to the above attacks | and provides channel binding, and as such, it is resistant to the | |||
| except where the protocol participants leak information to outsiders. | above attacks except where the protocol participants leak information | |||
| to outsiders. | ||||
| Basin et al [Basin2018] have performed formal analysis and concluded | Basin, et al. [Basin2018] have performed formal analysis and | |||
| that the AKA protocol would have benefited from additional security | concluded that the AKA protocol would have benefited from additional | |||
| requirements, such as key confirmation. | security requirements such as key confirmation. | |||
| In the context of pervasive monitoring revelations, there were also | In the context of pervasive monitoring revelations, there were also | |||
| reports of compromised long term pre-shared keys used in SIM and AKA | reports of compromised long-term pre-shared keys used in SIM and AKA | |||
| [Heist2015]. While no protocol can survive the theft of key material | [Heist2015]. While no protocol can survive the theft of key material | |||
| associated with its credentials, there are some things that alleviate | associated with its credentials, there are some things that alleviate | |||
| the impacts in such situations. These are discussed further in | the impacts in such situations. These are discussed further in | |||
| Section 7.3. | Section 7.3. | |||
| Arapinis et al ([Arapinis2012]) describe an attack that uses the AKA | Arapinis, et al. [Arapinis2012] describe an attack that uses the AKA | |||
| resynchronization protocol to attempt to detect whether a particular | resynchronization protocol to attempt to detect whether a particular | |||
| subscriber is on a given area. This attack depends on the ability of | subscriber is in a given area. This attack depends on the attacker | |||
| the attacker to have a false base station on the given area, and the | setting up a false base station in the given area and on the | |||
| subscriber performing at least one authentication between the time | subscriber performing at least one authentication between the time | |||
| the attack is set up and run. | the attack is set up and run. | |||
| Borgaonkar et al discovered that the AKA resynchronization protocol | Borgaonkar, et al. discovered that the AKA resynchronization protocol | |||
| may also be used to predict the authentication frequency of a | may also be used to predict the authentication frequency of a | |||
| subscribers if non-time-based SQN generation scheme is used | subscriber if a non-time-based sequence number (SQN) generation | |||
| [Borgaonkar2018]. The attacker can force the re-use of the keystream | scheme is used [Borgaonkar2018]. The attacker can force the reuse of | |||
| that is used to protect the SQN in the AKA resynchronization | the keystream that is used to protect the SQN in the AKA | |||
| protocol. The attacker then guesses the authentication frequency | resynchronization protocol. The attacker then guesses the | |||
| based on the lowest bits of two XORed SQNs. The researchers' concern | authentication frequency based on the lowest bits of two XORed SQNs. | |||
| was that the authentication frequency would reveal some information | The researchers' concern was that the authentication frequency would | |||
| about the phone usage behavior, e.g., number of phone calls made or | reveal some information about the phone usage behavior, e.g., number | |||
| number of SMS messages sent. There are a number of possible triggers | of phone calls made or number of SMS messages sent. There are a | |||
| for authentication, so such information leak is not direct, but can | number of possible triggers for authentication, so such an | |||
| be a concern. The impact of the attack is also different depending | information leak is not direct, but it can be a concern. The impact | |||
| on whether time or non-time-based SQN generation scheme is used. | of the attack differs depending on whether the SQN generation scheme | |||
| that is used is time-based or not. | ||||
| Similar attacks are possible outside AKA in the cellular paging | Similar attacks are possible outside AKA in the cellular paging | |||
| protocols where the attacker can simply send application layer data, | protocols where the attacker can simply send application-layer data, | |||
| short messages or make phone calls to the intended victim and observe | send short messages, or make phone calls to the intended victim and | |||
| the air-interface (e.g., [Kune2012] and [Shaik2016]). Hussain et. | observe the air interface (e.g., [Kune2012] and [Shaik2016]). | |||
| al. demonstrated a slightly more sophisticated version of the attack | Hussain, et al. demonstrated a slightly more sophisticated version of | |||
| that exploits the fact that 4G paging protocol uses the IMSI to | the attack that exploits the fact that the 4G paging protocol uses | |||
| calculate the paging timeslot [Hussain2019]. As this attack is | the IMSI to calculate the paging timeslot [Hussain2019]. As this | |||
| outside AKA, it does not impact EAP-AKA'. | attack is outside AKA, it does not impact EAP-AKA'. | |||
| Finally, bad implementations of EAP-AKA' may not produce pseudonym | Finally, bad implementations of EAP-AKA' may not produce pseudonym | |||
| usernames or fast re-authentication identities in a manner that is | usernames or fast re-authentication identities in a manner that is | |||
| sufficiently secure. While it is not a problem with the protocol | sufficiently secure. While it is not a problem with the protocol | |||
| itself, following the recommendations in Section 5.2 mitigate this | itself, following the recommendations in Section 5.2 can mitigate | |||
| concern. | this concern. | |||
| 7.3. Pervasive Monitoring | 7.3. Pervasive Monitoring | |||
| As required by [RFC7258], work on IETF protocols needs to consider | As required by [RFC7258], work on IETF protocols needs to consider | |||
| the effects of pervasive monitoring and mitigate them when possible. | the effects of pervasive monitoring and mitigate them when possible. | |||
| As described in Section 7.2, after the publication of RFC 5448, new | As described in Section 7.2, after the publication of RFC 5448, new | |||
| information has come to light regarding the use of pervasive | information has come to light regarding the use of pervasive | |||
| monitoring techniques against many security technologies, including | monitoring techniques against many security technologies, including | |||
| AKA-based authentication. | AKA-based authentication. | |||
| For AKA, these attacks relate to theft of the long-term shared secret | For AKA, these attacks relate to theft of the long-term, shared- | |||
| key material stored on the cards. Such attacks are conceivable, for | secret key material stored on the cards. Such attacks are | |||
| instance, during the manufacturing process of cards, through coercion | conceivable, for instance, during the manufacturing process of cards, | |||
| of the card manufacturers, or during the transfer of cards and | through coercion of the card manufacturers, or during the transfer of | |||
| associated information to an operator. Since the publication of | cards and associated information to an operator. Since the | |||
| reports about such attacks, manufacturing and provisioning processes | publication of reports about such attacks, manufacturing and | |||
| have gained much scrutiny and have improved. | provisioning processes have gained much scrutiny and have improved. | |||
| In particular, it is crucial that manufacturers limit access to the | In particular, it is crucial that manufacturers limit access to the | |||
| secret information and the cards only to necessary systems and | secret information and the cards only to necessary systems and | |||
| personnel. It is also crucial that secure mechanisms be used to | personnel. It is also crucial that secure mechanisms be used to | |||
| store and communicate the secrets between the manufacturer and the | store and communicate the secrets between the manufacturer and the | |||
| operator that adopts those cards for their customers. | operator that adopts those cards for their customers. | |||
| Beyond these operational considerations, there are also technical | Beyond these operational considerations, there are also technical | |||
| means to improve resistance to these attacks. One approach is to | means to improve resistance to these attacks. One approach is to | |||
| provide Perfect Forward Secrecy (PFS). This would prevent any | provide Perfect Forward Secrecy (PFS). This would prevent any | |||
| passive attacks merely based on the long-term secrets and observation | passive attacks merely based on the long-term secrets and observation | |||
| of traffic. Such a mechanism can be defined as a backwards- | of traffic. Such a mechanism can be defined as a backwards- | |||
| compatible extension of EAP-AKA', and is pursued separately from this | compatible extension of EAP-AKA' and is pursued separately from this | |||
| specification [I-D.ietf-emu-aka-pfs]. Alternatively, EAP-AKA' | specification [EMU-AKA-PFS]. Alternatively, EAP-AKA' authentication | |||
| authentication can be run inside a PFS-capable tunneled | can be run inside a PFS-capable, tunneled authentication method. In | |||
| authentication method. In any case, the use of some PFS-capable | any case, the use of some PFS-capable mechanism is recommended. | |||
| mechanism is recommended. | ||||
| 7.4. Security Properties of Binding Network Names | 7.4. Security Properties of Binding Network Names | |||
| The ability of EAP-AKA' to bind the network name into the used keys | The ability of EAP-AKA' to bind the network name into the used keys | |||
| provides some additional protection against key leakage to | provides some additional protection against key leakage to | |||
| inappropriate parties. The keys used in the protocol are specific to | inappropriate parties. The keys used in the protocol are specific to | |||
| a particular network name. If key leakage occurs due to an accident, | a particular network name. If key leakage occurs due to an accident, | |||
| access node compromise, or another attack, the leaked keys are only | access node compromise, or another attack, the leaked keys are only | |||
| useful when providing access with that name. For instance, a | useful when providing access with that name. For instance, a | |||
| malicious access point cannot claim to be network Y if it has stolen | malicious access point cannot claim to be network Y if it has stolen | |||
| skipping to change at page 33, line 29 ¶ | skipping to change at line 1502 ¶ | |||
| attacks; however, the binding to a particular name limits the | attacks; however, the binding to a particular name limits the | |||
| attacker's choices, allows better tracking of attacks, makes it | attacker's choices, allows better tracking of attacks, makes it | |||
| possible to identify compromised networks, and applies good | possible to identify compromised networks, and applies good | |||
| cryptographic hygiene. | cryptographic hygiene. | |||
| The server receives the EAP transaction from a given access network, | The server receives the EAP transaction from a given access network, | |||
| and verifies that the claim from the access network corresponds to | and verifies that the claim from the access network corresponds to | |||
| the name that this access network should be using. It becomes | the name that this access network should be using. It becomes | |||
| impossible for an access network to claim over AAA that it is another | impossible for an access network to claim over AAA that it is another | |||
| access network. In addition, if the peer checks that the information | access network. In addition, if the peer checks that the information | |||
| it has received locally over the network-access link layer matches | it has received locally over the network-access link-layer matches | |||
| with the information the server has given it via EAP-AKA', it becomes | with the information the server has given it via EAP-AKA', it becomes | |||
| impossible for the access network to tell one story to the AAA | impossible for the access network to tell one story to the AAA | |||
| network and another one to the peer. These checks prevent some | network and another one to the peer. These checks prevent some | |||
| "lying NAS" (Network Access Server) attacks. For instance, a roaming | "lying NAS" (Network Access Server) attacks. For instance, a roaming | |||
| partner, R, might claim that it is the home network H in an effort to | partner, R, might claim that it is the home network H in an effort to | |||
| lure peers to connect to itself. Such an attack would be beneficial | lure peers to connect to itself. Such an attack would be beneficial | |||
| for the roaming partner if it can attract more users, and damaging | for the roaming partner if it can attract more users, and damaging | |||
| for the users if their access costs in R are higher than those in | for the users if their access costs in R are higher than those in | |||
| other alternative networks, such as H. | other alternative networks, such as H. | |||
| skipping to change at page 34, line 18 ¶ | skipping to change at line 1537 ¶ | |||
| Ideally, the names allow separating each different access technology, | Ideally, the names allow separating each different access technology, | |||
| each different access network, and each different NAS within a | each different access network, and each different NAS within a | |||
| domain. If this is not possible, the full benefits may not be | domain. If this is not possible, the full benefits may not be | |||
| achieved. For instance, if the names identify just an access | achieved. For instance, if the names identify just an access | |||
| technology, use of compromised keys in a different technology can be | technology, use of compromised keys in a different technology can be | |||
| prevented, but it is not possible to prevent their use by other | prevented, but it is not possible to prevent their use by other | |||
| domains or devices using the same technology. | domains or devices using the same technology. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| IANA should update the Extensible Authentication Protocol (EAP) | IANA has updated the "Extensible Authentication Protocol (EAP) | |||
| Registry and the EAP-AKA and EAP-SIM Parameters so that entries | Registry" and the "EAP-AKA and EAP-SIM Parameters" registry so that | |||
| pointing to RFC 5448 will point to this RFC instead. | entries that pointed to RFC 5448 now point to this RFC instead. | |||
| 8.1. Type Value | 8.1. Type Value | |||
| EAP-AKA' has the EAP Type value 0x32 in the Extensible Authentication | IANA has updated the reference for EAP-AKA' (0x32) in the "Method | |||
| Protocol (EAP) Registry under Method Types. Per Section 6.2 of | Types" subregistry under the "Extensible Authentication Protocol | |||
| [RFC3748], this allocation can be made with Designated Expert and | (EAP) Registry" to point to this document. Per Section 6.2 of | |||
| Specification Required. | [RFC3748], this allocation can be made with Specification Required | |||
| [RFC8126]. | ||||
| 8.2. Attribute Type Values | 8.2. Attribute Type Values | |||
| EAP-AKA' shares its attribute space and subtypes with EAP-SIM | EAP-AKA' shares its attribute space and subtypes with EAP-SIM | |||
| [RFC4186] and EAP-AKA [RFC4187]. No new registries are needed. | [RFC4186] and EAP-AKA [RFC4187]. No new registries are needed. | |||
| However, a new Attribute Type value (23) in the non-skippable range | IANA has updated the reference for AT_KDF_INPUT (23) and AT_KDF (24) | |||
| has been assigned for AT_KDF_INPUT (Section 3.1) in the EAP-AKA and | in the "Attribute Types (Non-Skippable Attributes 0-127)" subregistry | |||
| EAP-SIM Parameters registry under Attribute Types. | under the "EAP-AKA and EAP-SIM Parameters" registry to point to this | |||
| document. AT_KDF_INPUT and AT_KDF are defined in Sections 3.1 and | ||||
| Also, a new Attribute Type value (24) in the non-skippable range has | 3.2, respectively, of this document. | |||
| been assigned for AT_KDF (Section 3.2). | ||||
| Finally, a new Attribute Type value (136) in the skippable range has | IANA has also updated the reference for AT_BIDDING (136) in the | |||
| been assigned for AT_BIDDING (Section 4). | "Attribute Types (Skippable Attributes 128-255)" subregistry of the | |||
| "EAP-AKA and EAP-SIM Parameters" registry to point to this document. | ||||
| AT_BIDDING is defined in Section 4. | ||||
| 8.3. Key Derivation Function Namespace | 8.3. Key Derivation Function Namespace | |||
| IANA has also created a new namespace for EAP-AKA' AT_KDF Key | IANA has updated the reference for the "EAP-AKA' AT_KDF Key | |||
| Derivation Function Values. This namespace exists under the EAP-AKA | Derivation Function Values" subregistry to point to this document. | |||
| and EAP-SIM Parameters registry. The initial contents of this | This subregistry appears under the "EAP-AKA and EAP-SIM Parameters" | |||
| namespace are given below; new values can be created through the | registry. The references for following entries have also been | |||
| Specification Required policy [RFC8126]. | updated to point to this document. New values can be created through | |||
| the Specification Required policy [RFC8126]. | ||||
| Value Description Reference | +=======+=======================+===========+ | |||
| --------- ---------------------- ------------------------------- | | Value | Description | Reference | | |||
| 0 Reserved [RFC Editor: Refer to this RFC] | +=======+=======================+===========+ | |||
| 1 EAP-AKA' with CK'/IK' [RFC Editor: Refer to this RFC] | | 0 | Reserved | RFC 9048 | | |||
| 2-65535 Unassigned | +-------+-----------------------+-----------+ | |||
| | 1 | EAP-AKA' with CK'/IK' | RFC 9048 | | ||||
| +-------+-----------------------+-----------+ | ||||
| Table 3: EAP-AKA' AT_KDF Key Derivation | ||||
| Function Values | ||||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [TS-3GPP.23.003] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Numbering, | ||||
| addressing and identification (Release 16)", | ||||
| 3GPP Technical Specification 23.003 version 16.5.0, | ||||
| December 2020. | ||||
| [TS-3GPP.23.501] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Services and System Aspects; 3G | ||||
| Security; Security architecture and procedures for 5G | ||||
| System; (Release 16)", 3GPP Technical Specification 23.501 | ||||
| version 16.7.0, December 2020. | ||||
| [TS-3GPP.24.302] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Access to | ||||
| the 3GPP Evolved Packet Core (EPC) via non-3GPP access | ||||
| networks; Stage 3; (Release 16)", 3GPP Technical | ||||
| Specification 24.302 version 16.4.0, July 2020. | ||||
| [TS-3GPP.24.501] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Access to | ||||
| the 3GPP Evolved Packet Core (EPC) via non-3GPP access | ||||
| networks; Stage 3; (Release 16)", 3GPP Draft Technical | ||||
| Specification 24.501 version 16.7.0, December 2020. | ||||
| [TS-3GPP.33.102] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Services and System Aspects; 3G | ||||
| Security; Security architecture (Release 16)", | ||||
| 3GPP Technical Specification 33.102 version 16.0.0, July | ||||
| 2020. | ||||
| [TS-3GPP.33.402] | ||||
| 3GPP, "3GPP System Architecture Evolution (SAE); Security | ||||
| aspects of non-3GPP accesses (Release 16)", 3GPP Technical | ||||
| Specification 33.402 version 16.0.0, July 2020. | ||||
| [TS-3GPP.33.501] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Services and System Aspects; 3G | ||||
| Security; Security architecture and procedures for 5G | ||||
| System (Release 16)", 3GPP Technical Specification 33.501 | ||||
| version 16.5.0, December 2020. | ||||
| [FIPS.180-4] | [FIPS.180-4] | |||
| National Institute of Standards and Technology, "Secure | National Institute of Standards and Technology, "Secure | |||
| Hash Standard", FIPS PUB 180-4, August 2015, | Hash Standard", FIPS PUB 180-4, | |||
| DOI 10.6028/NIST.FIPS.180-4, August 2015, | ||||
| <https://nvlpubs.nist.gov/nistpubs/FIPS/ | <https://nvlpubs.nist.gov/nistpubs/FIPS/ | |||
| NIST.FIPS.180-4.pdf>. | NIST.FIPS.180-4.pdf>. | |||
| [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | |||
| Hashing for Message Authentication", RFC 2104, | Hashing for Message Authentication", RFC 2104, | |||
| DOI 10.17487/RFC2104, February 1997, <https://www.rfc- | DOI 10.17487/RFC2104, February 1997, | |||
| editor.org/info/rfc2104>. | <https://www.rfc-editor.org/info/rfc2104>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, | |||
| editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. | |||
| Levkowetz, Ed., "Extensible Authentication Protocol | Levkowetz, Ed., "Extensible Authentication Protocol | |||
| (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, | (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, | |||
| <https://www.rfc-editor.org/info/rfc3748>. | <https://www.rfc-editor.org/info/rfc3748>. | |||
| [RFC4187] Arkko, J. and H. Haverinen, "Extensible Authentication | [RFC4187] Arkko, J. and H. Haverinen, "Extensible Authentication | |||
| Protocol Method for 3rd Generation Authentication and Key | Protocol Method for 3rd Generation Authentication and Key | |||
| Agreement (EAP-AKA)", RFC 4187, DOI 10.17487/RFC4187, | Agreement (EAP-AKA)", RFC 4187, DOI 10.17487/RFC4187, | |||
| January 2006, <https://www.rfc-editor.org/info/rfc4187>. | January 2006, <https://www.rfc-editor.org/info/rfc4187>. | |||
| [RFC7542] DeKok, A., "The Network Access Identifier", RFC 7542, | [RFC7542] DeKok, A., "The Network Access Identifier", RFC 7542, | |||
| DOI 10.17487/RFC7542, May 2015, <https://www.rfc- | DOI 10.17487/RFC7542, May 2015, | |||
| editor.org/info/rfc7542>. | <https://www.rfc-editor.org/info/rfc7542>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| 9.2. Informative References | [TS-3GPP.23.003] | |||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Numbering, | ||||
| addressing and identification (Release 16)", Version | ||||
| 16.7.0, 3GPP Technical Specification 23.003, June 2021. | ||||
| [TS-3GPP.35.208] | [TS-3GPP.23.501] | |||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Services and System Aspects; System | ||||
| architecture for the 5G System (5GS); (Release 16)", | ||||
| Version 16.9.0, 3GPP Technical Specification 23.501, June | ||||
| 2021. | ||||
| [TS-3GPP.24.302] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Access to | ||||
| the 3GPP Evolved Packet Core (EPC) via non-3GPP access | ||||
| networks; Stage 3; (Release 16)", Version 16.4.0, 3GPP | ||||
| Technical Specification 24.302, July 2020. | ||||
| [TS-3GPP.24.501] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Core Network and Terminals; Non- | ||||
| Access-Stratum (NAS) protocol for 5G System (5GS); Stage | ||||
| 3; (Release 16)", Version 16.9.0, 3GPP Draft Technical | ||||
| Specification 24.501, June 2021. | ||||
| [TS-3GPP.33.102] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | 3GPP, "3rd Generation Partnership Project; Technical | |||
| Specification Group Services and System Aspects; 3G | Specification Group Services and System Aspects; 3G | |||
| Security; Specification of the MILENAGE Algorithm Set: An | Security; Security architecture (Release 16)", Version | |||
| example algorithm set for the 3GPP authentication and key | 16.0.0, 3GPP Technical Specification 33.102, July 2020. | |||
| generation functions f1, f1*, f2, f3, f4, f5 and f5*; | ||||
| Document 4: Design Conformance Test Data (Release 14)", | [TS-3GPP.33.402] | |||
| 3GPP Technical Specification 35.208 version 15.0.0, | 3GPP, "3GPP System Architecture Evolution (SAE); Security | |||
| October 2018. | aspects of non-3GPP accesses (Release 16)", Version | |||
| 16.0.0, 3GPP Technical Specification 33.402, July 2020. | ||||
| [TS-3GPP.33.501] | ||||
| 3GPP, "3rd Generation Partnership Project; Technical | ||||
| Specification Group Services and System Aspects; 3G | ||||
| Security; Security architecture and procedures for 5G | ||||
| System (Release 16)", Version 16.7.1, 3GPP Technical | ||||
| Specification 33.501, July 2021. | ||||
| 9.2. Informative References | ||||
| [Arapinis2012] | ||||
| Arapinis, M., Mancini, L., Ritter, E., Ryan, M., Golde, | ||||
| N., Redon, R., and R. Borgaonkar, "New Privacy Issues in | ||||
| Mobile Telephony: Fix and Verification", in CCS '12: | ||||
| Proceedings of the 2012 ACM Conference on Computer and | ||||
| Communications Security, Raleigh, North Carolina, USA, | ||||
| DOI 10.1145/2382196.2382221, October 2012, | ||||
| <https://doi.org/10.1145/2382196.2382221>. | ||||
| [Basin2018] | ||||
| Basin, D., Dreier, J., Hirschi, L., Radomirović, S., | ||||
| Sasse, R., and V. Stettler, "A Formal Analysis of 5G | ||||
| Authentication", arXiv:1806.10360, | ||||
| DOI 10.1145/3243734.3243846, August 2018, | ||||
| <https://doi.org/10.1145/3243734.3243846>. | ||||
| [Borgaonkar2018] | ||||
| Borgaonkar, R., Hirschi, L., Park, S., and A. Shaik, "New | ||||
| Privacy Threat on 3G, 4G, and Upcoming 5G AKA Protocols", | ||||
| in IACR Cryptology ePrint Archive, 2018. | ||||
| [BT2013] Beekman, J. G. and C. Thompson, "Breaking Cell Phone | ||||
| Authentication: Vulnerabilities in AKA, IMS and Android", | ||||
| in 7th USENIX Workshop on Offensive Technologies, WOOT | ||||
| '13, August 2013. | ||||
| [EMU-AKA-PFS] | ||||
| Arkko, J., Norrman, K., and V. Torvinen, "Perfect-Forward | ||||
| Secrecy for the Extensible Authentication Protocol Method | ||||
| for Authentication and Key Agreement (EAP-AKA' PFS)", Work | ||||
| in Progress, Internet-Draft, draft-ietf-emu-aka-pfs-05, 30 | ||||
| October 2020, <https://datatracker.ietf.org/doc/html/ | ||||
| draft-ietf-emu-aka-pfs-05>. | ||||
| [FIPS.180-1] | [FIPS.180-1] | |||
| National Institute of Standards and Technology, "Secure | National Institute of Standards and Technology, "Secure | |||
| Hash Standard", FIPS PUB 180-1, April 1995, | Hash Standard", FIPS PUB 180-1, | |||
| <http://www.itl.nist.gov/fipspubs/fip180-1.htm>. | DOI 10.6028/NIST.FIPS.180-1, April 1995, | |||
| <https://csrc.nist.gov/publications/detail/fips/180/1/ | ||||
| archive/1995-04-17>. | ||||
| [FIPS.180-2] | [FIPS.180-2] | |||
| National Institute of Standards and Technology, "Secure | National Institute of Standards and Technology, "Secure | |||
| Hash Standard", FIPS PUB 180-2, August 2002, | Hash Standard", FIPS PUB 180-2, August 2002, | |||
| <http://csrc.nist.gov/publications/fips/fips180-2/ | <https://csrc.nist.gov/publications/detail/fips/180/2/ | |||
| fips180-2.pdf>. | archive/2002-08-01>. | |||
| [Heist2015] | ||||
| Scahill, J. and J. Begley, "How Spies Stole the Keys to | ||||
| the Encryption Castle", February 2015, | ||||
| <https://firstlook.org/theintercept/2015/02/19/great-sim- | ||||
| heist/>. | ||||
| [Hussain2019] | ||||
| Hussain, S., Echeverria, M., Chowdhury, O., Li, N., and E. | ||||
| Bertino, "Privacy Attacks to the 4G and 5G Cellular Paging | ||||
| Protocols Using Side Channel Information", in the | ||||
| proceedings of NDSS '19, held 24-27 February, 2019, San | ||||
| Diego, California, 2019. | ||||
| [Kune2012] Kune, D., Koelndorfer, J., Hopper, N., and Y. Kim, | ||||
| "Location Leaks on the GSM Air Interface", in the | ||||
| proceedings of NDSS '12, held 5-8 February, 2012, San | ||||
| Diego, California, 2012. | ||||
| [MT2012] Mjølsnes, S. F. and J-K. Tsay, "A Vulnerability in the | ||||
| UMTS and LTE Authentication and Key Agreement Protocols", | ||||
| in Computer Network Security, Proceedings of the 6th | ||||
| International Conference on Mathematical Methods, Models | ||||
| and Architectures for Computer Network Security, Lecture | ||||
| Notes in Computer Science, Vol. 7531, pp. 65-76, | ||||
| DOI 10.1007/978-3-642-33704-8_6, October 2012, | ||||
| <https://doi.org/10.1007/978-3-642-33704-8_6>. | ||||
| [RFC3310] Niemi, A., Arkko, J., and V. Torvinen, "Hypertext Transfer | [RFC3310] Niemi, A., Arkko, J., and V. Torvinen, "Hypertext Transfer | |||
| Protocol (HTTP) Digest Authentication Using Authentication | Protocol (HTTP) Digest Authentication Using Authentication | |||
| and Key Agreement (AKA)", RFC 3310, DOI 10.17487/RFC3310, | and Key Agreement (AKA)", RFC 3310, DOI 10.17487/RFC3310, | |||
| September 2002, <https://www.rfc-editor.org/info/rfc3310>. | September 2002, <https://www.rfc-editor.org/info/rfc3310>. | |||
| [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, | |||
| "Randomness Requirements for Security", BCP 106, RFC 4086, | "Randomness Requirements for Security", BCP 106, RFC 4086, | |||
| DOI 10.17487/RFC4086, June 2005, <https://www.rfc- | DOI 10.17487/RFC4086, June 2005, | |||
| editor.org/info/rfc4086>. | <https://www.rfc-editor.org/info/rfc4086>. | |||
| [RFC4169] Torvinen, V., Arkko, J., and M. Naslund, "Hypertext | [RFC4169] Torvinen, V., Arkko, J., and M. Naslund, "Hypertext | |||
| Transfer Protocol (HTTP) Digest Authentication Using | Transfer Protocol (HTTP) Digest Authentication Using | |||
| Authentication and Key Agreement (AKA) Version-2", | Authentication and Key Agreement (AKA) Version-2", | |||
| RFC 4169, DOI 10.17487/RFC4169, November 2005, | RFC 4169, DOI 10.17487/RFC4169, November 2005, | |||
| <https://www.rfc-editor.org/info/rfc4169>. | <https://www.rfc-editor.org/info/rfc4169>. | |||
| [RFC4186] Haverinen, H., Ed. and J. Salowey, Ed., "Extensible | [RFC4186] Haverinen, H., Ed. and J. Salowey, Ed., "Extensible | |||
| Authentication Protocol Method for Global System for | Authentication Protocol Method for Global System for | |||
| Mobile Communications (GSM) Subscriber Identity Modules | Mobile Communications (GSM) Subscriber Identity Modules | |||
| skipping to change at page 38, line 16 ¶ | skipping to change at line 1783 ¶ | |||
| Selection Hints for the Extensible Authentication Protocol | Selection Hints for the Extensible Authentication Protocol | |||
| (EAP)", RFC 4284, DOI 10.17487/RFC4284, January 2006, | (EAP)", RFC 4284, DOI 10.17487/RFC4284, January 2006, | |||
| <https://www.rfc-editor.org/info/rfc4284>. | <https://www.rfc-editor.org/info/rfc4284>. | |||
| [RFC4306] Kaufman, C., Ed., "Internet Key Exchange (IKEv2) | [RFC4306] Kaufman, C., Ed., "Internet Key Exchange (IKEv2) | |||
| Protocol", RFC 4306, DOI 10.17487/RFC4306, December 2005, | Protocol", RFC 4306, DOI 10.17487/RFC4306, December 2005, | |||
| <https://www.rfc-editor.org/info/rfc4306>. | <https://www.rfc-editor.org/info/rfc4306>. | |||
| [RFC5113] Arkko, J., Aboba, B., Korhonen, J., Ed., and F. Bari, | [RFC5113] Arkko, J., Aboba, B., Korhonen, J., Ed., and F. Bari, | |||
| "Network Discovery and Selection Problem", RFC 5113, | "Network Discovery and Selection Problem", RFC 5113, | |||
| DOI 10.17487/RFC5113, January 2008, <https://www.rfc- | DOI 10.17487/RFC5113, January 2008, | |||
| editor.org/info/rfc5113>. | <https://www.rfc-editor.org/info/rfc5113>. | |||
| [RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible | [RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible | |||
| Authentication Protocol (EAP) Key Management Framework", | Authentication Protocol (EAP) Key Management Framework", | |||
| RFC 5247, DOI 10.17487/RFC5247, August 2008, | RFC 5247, DOI 10.17487/RFC5247, August 2008, | |||
| <https://www.rfc-editor.org/info/rfc5247>. | <https://www.rfc-editor.org/info/rfc5247>. | |||
| [RFC5281] Funk, P. and S. Blake-Wilson, "Extensible Authentication | [RFC5281] Funk, P. and S. Blake-Wilson, "Extensible Authentication | |||
| Protocol Tunneled Transport Layer Security Authenticated | Protocol Tunneled Transport Layer Security Authenticated | |||
| Protocol Version 0 (EAP-TTLSv0)", RFC 5281, | Protocol Version 0 (EAP-TTLSv0)", RFC 5281, | |||
| DOI 10.17487/RFC5281, August 2008, <https://www.rfc- | DOI 10.17487/RFC5281, August 2008, | |||
| editor.org/info/rfc5281>. | <https://www.rfc-editor.org/info/rfc5281>. | |||
| [RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved | [RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved | |||
| Extensible Authentication Protocol Method for 3rd | Extensible Authentication Protocol Method for 3rd | |||
| Generation Authentication and Key Agreement (EAP-AKA')", | Generation Authentication and Key Agreement (EAP-AKA')", | |||
| RFC 5448, DOI 10.17487/RFC5448, May 2009, | RFC 5448, DOI 10.17487/RFC5448, May 2009, | |||
| <https://www.rfc-editor.org/info/rfc5448>. | <https://www.rfc-editor.org/info/rfc5448>. | |||
| [RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security | [RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security | |||
| Considerations for the SHA-0 and SHA-1 Message-Digest | Considerations for the SHA-0 and SHA-1 Message-Digest | |||
| Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011, | Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011, | |||
| <https://www.rfc-editor.org/info/rfc6194>. | <https://www.rfc-editor.org/info/rfc6194>. | |||
| [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | |||
| Morris, J., Hansen, M., and R. Smith, "Privacy | Morris, J., Hansen, M., and R. Smith, "Privacy | |||
| Considerations for Internet Protocols", RFC 6973, | Considerations for Internet Protocols", RFC 6973, | |||
| DOI 10.17487/RFC6973, July 2013, <https://www.rfc- | DOI 10.17487/RFC6973, July 2013, | |||
| editor.org/info/rfc6973>. | <https://www.rfc-editor.org/info/rfc6973>. | |||
| [RFC7170] Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | [RFC7170] Zhou, H., Cam-Winget, N., Salowey, J., and S. Hanna, | |||
| "Tunnel Extensible Authentication Protocol (TEAP) Version | "Tunnel Extensible Authentication Protocol (TEAP) Version | |||
| 1", RFC 7170, DOI 10.17487/RFC7170, May 2014, | 1", RFC 7170, DOI 10.17487/RFC7170, May 2014, | |||
| <https://www.rfc-editor.org/info/rfc7170>. | <https://www.rfc-editor.org/info/rfc7170>. | |||
| [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
| Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
| 2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
| [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | |||
| Kivinen, "Internet Key Exchange Protocol Version 2 | Kivinen, "Internet Key Exchange Protocol Version 2 | |||
| (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | |||
| 2014, <https://www.rfc-editor.org/info/rfc7296>. | 2014, <https://www.rfc-editor.org/info/rfc7296>. | |||
| [I-D.ietf-emu-aka-pfs] | ||||
| Arkko, J., Norrman, K., and V. Torvinen,"Perfect-Forward Secrecy | ||||
| for the Extensible Authentication Protocol Method for | ||||
| Authentication and Key Agreement (EAP-AKA' PFS)", draft- | ||||
| ietf-emu-aka-pfs-05 (work in progress), October 2020. | ||||
| [Heist2015] | ||||
| Scahill, J. and J. Begley, "The great SIM heist", February | ||||
| 2015, in https://firstlook.org/theintercept/2015/02/19/ | ||||
| great-sim-heist/ . | ||||
| [MT2012] Mjolsnes, S. and J-K. Tsay, "A vulnerability in the UMTS | ||||
| and LTE authentication and key agreement protocols", | ||||
| October 2012, in Proceedings of the 6th international | ||||
| conference on Mathematical Methods, Models and | ||||
| Architectures for Computer Network Security: computer | ||||
| network security. | ||||
| [BT2013] Beekman, J. and C. Thompson, "Breaking Cell Phone | ||||
| Authentication: Vulnerabilities in AKA, IMS and Android", | ||||
| August 2013, in 7th USENIX Workshop on Offensive | ||||
| Technologies, WOOT '13. | ||||
| [ZF2005] Zhang, M. and Y. Fang, "Breaking Cell Phone | ||||
| Authentication: Vulnerabilities in AKA, IMS and Android", | ||||
| March 2005, IEEE Transactions on Wireless Communications, | ||||
| Vol. 4, No. 2. | ||||
| [Basin2018] | ||||
| Basin, D., Dreier, J., Hirsch, L., Radomirovic, S., Sasse, | ||||
| R., and V. Stettle, "A Formal Analysis of 5G | ||||
| Authentication", August 2018, arXiv:1806.10360. | ||||
| [Arapinis2012] | ||||
| Arapinis, M., Mancini, L., Ritter, E., Ryan, M., Golde, | ||||
| N., and R. Borgaonkar, "New Privacy Issues in Mobile | ||||
| Telephony: Fix and Verification", October 2012, CCS'12, | ||||
| Raleigh, North Carolina, USA. | ||||
| [Borgaonkar2018] | ||||
| Borgaonkar, R., Hirschi, L., Park, S., and A. Shaik, "New | ||||
| Privacy Threat on 3G, 4G, and Upcoming 5G AKA Protocols", | ||||
| 2018 in IACR Cryptology ePrint Archive. | ||||
| [Kune2012] | ||||
| Kune, D., Koelndorfer, J., and Y. Kim, "Location leaks on | ||||
| the GSM air interface", 2012 in the proceedings of NDSS | ||||
| '12 held 5-8 February, 2012 in San Diego, California. | ||||
| [Shaik2016] | [Shaik2016] | |||
| Shaik, A., Seifert, J., Borgaonkar, R., Asokan, N., and V. | Shaik, A., Seifert, J., Borgaonkar, R., Asokan, N., and V. | |||
| Niemi, "Practical attacks against privacy and availability | Niemi, "Practical attacks against Privacy and Availability | |||
| in 4G/LTE mobile communication systems", 2012 in the | in 4G/LTE Mobile Communication Systems", in the | |||
| proceedings of NDSS '16 held 21-24 February, 2016 in San | proceedings of NDSS '16 held 21-24 February, 2016, San | |||
| Diego, California. | Diego, California, 2012. | |||
| [Hussain2019] | [TS-3GPP.35.208] | |||
| Hussain, S., Echeverria, M., Chowdhury, O., Li, N., and E. | 3GPP, "3rd Generation Partnership Project; Technical | |||
| Bertino, "Privacy Attacks to the 4G and 5G Cellular Paging | Specification Group Services and System Aspects; 3G | |||
| Protocols Using Side Channel Information", in the | Security; Specification of the MILENAGE Algorithm Set: An | |||
| Proceedings of NDSS '19, held 24-27 February, 2019, in San | example algorithm set for the 3GPP authentication and key | |||
| Diego, California. | generation functions f1, f1*, f2, f3, f4, f5 and f5*; | |||
| Document 4: Design Conformance Test Data (Release 14)", | ||||
| Version 16.0.0, 3GPP Technical Specification 35.208, July | ||||
| 2020. | ||||
| [ZF2005] Zhang, M. and Y. Fang, "Security analysis and enhancements | ||||
| of 3GPP authentication and key agreement protocol", IEEE | ||||
| Transactions on Wireless Communications, Vol. 4, No. 2, | ||||
| DOI 10.1109/TWC.2004.842941, March 2005, | ||||
| <https://doi.org/10.1109/TWC.2004.842941>. | ||||
| Appendix A. Changes from RFC 5448 | Appendix A. Changes from RFC 5448 | |||
| The changes consist first of all, referring to a newer version of | The change from RFC 5448 was to refer to a newer version of | |||
| [TS-3GPP.24.302]. The new version includes an updated definition of | [TS-3GPP.24.302]. This RFC includes an updated definition of the | |||
| the Network Name field, to include 5G. | Network Name field to include 5G. | |||
| Secondly, identifier usage for 5G has been specified in Section 5.3. | Identifier usage for 5G has been specified in Section 5.3. Also, the | |||
| Also, the requirements on generating pseudonym usernames and fast re- | requirements for generating pseudonym usernames and fast re- | |||
| authentication identities have been updated from the original | authentication identities have been updated from the original | |||
| definition in RFC 5448, which referenced RFC 4187. See Section 5. | definition in RFC 5448, which referenced RFC 4187. See Section 5. | |||
| Thirdly, exported parameters for EAP-AKA' have been defined in | Exported parameters for EAP-AKA' have been defined in Section 6, as | |||
| Section 6, as required by [RFC5247], including the definition of | required by [RFC5247], including the definition of those parameters | |||
| those parameters for both full authentication and fast re- | for both full authentication and fast re-authentication. | |||
| authentication. | ||||
| The security, privacy, and pervasive monitoring considerations have | The security, privacy, and pervasive monitoring considerations have | |||
| been updated or added. See Section 7. | been updated or added. See Section 7. | |||
| The references to [RFC2119], [RFC7542], [RFC7296], [RFC8126], | The references to [RFC2119], [RFC4306], [RFC7296], [FIPS.180-1] and | |||
| [FIPS.180-1] and [FIPS.180-2] have been updated to their most recent | [FIPS.180-2] have been updated to their most recent versions, and | |||
| versions and language in this document changed accordingly. However, | language in this document has been changed accordingly. However, | |||
| this is merely an update to a newer RFC but the actual protocol | these are merely reference updates to newer specifications; the | |||
| functions are the same as defined in the earlier RFCs. | actual protocol functions are the same as defined in the earlier | |||
| RFCs. | ||||
| Similarly, references to all 3GPP technical specifications have been | Similarly, references to all 3GPP technical specifications have been | |||
| updated to their 5G (Release 16) versions or otherwise most recent | updated to their 5G versions (Release 16) or otherwise most recent | |||
| version when there has not been a 5G-related update. | version when there has not been a 5G-related update. | |||
| Finally, a number of clarifications have been made, including a | Finally, a number of clarifications have been made, including a | |||
| summary of where attributes may appear. | summary of where attributes may appear. | |||
| Appendix B. Changes to RFC 4187 | Appendix B. Changes to RFC 4187 | |||
| In addition to specifying EAP-AKA', this document mandates also a | In addition to specifying EAP-AKA', this document also mandates a | |||
| change to another EAP method, EAP-AKA that was defined in RFC 4187. | change to another EAP method -- EAP-AKA that was defined in RFC 4187. | |||
| This change was mandated already in RFC 5448 but repeated here to | This change was already mandated in RFC 5448 but repeated here to | |||
| ensure that the latest EAP-AKA' specification contains the | ensure that the latest EAP-AKA' specification contains the | |||
| instructions about the necessary bidding down feature in EAP-AKA as | instructions about the necessary bidding down prevention feature in | |||
| well. | EAP-AKA as well. | |||
| The changes to RFC 4187 relate only to the bidding down prevention | The changes to RFC 4187 relate only to the bidding down prevention | |||
| support defined in Section 4. In particular, this document does not | support defined in Section 4. In particular, this document does not | |||
| change how the Master Key (MK) is calculated or any other aspect of | change how the Master Key (MK) is calculated or any other aspect of | |||
| EAP-AKA. The provisions in this specification for EAP-AKA' do not | EAP-AKA. The provisions in this specification for EAP-AKA' do not | |||
| apply to EAP-AKA, outside Section 4. | apply to EAP-AKA, outside of Section 4. | |||
| Appendix C. Changes from Previous Version of This Draft | ||||
| RFC Editor: Please delete this section at the time of publication. | ||||
| The -00 version of the working group draft is merely a republication | ||||
| of an earlier individual draft. | ||||
| The -01 version of the working group draft clarifies updates | ||||
| relationship to RFC 4187, clarifies language relating to obsoleting | ||||
| RFC 5448, clarifies when the 3GPP references are expected to be | ||||
| stable, updates several past references to their more recently | ||||
| published versions, specifies what identifiers should be used in key | ||||
| derivation formula for 5G, specifies how to construct the network | ||||
| name in manner that is compatible with both 5G and previous versions, | ||||
| and has some minor editorial changes. | ||||
| The -02 version of the working group draft added specification of | ||||
| peer identity usage in EAP-AKA', added requirements on the generation | ||||
| of pseudonym and fast re-authentication identifiers, specified the | ||||
| format of 5G-identifiers when they are used within EAP-AKA', defined | ||||
| privacy and pervasive surveillance considerations, clarified when 5G- | ||||
| related procedures apply, specified what Peer-Id value is exported | ||||
| when no AT_IDENTITY is exchanged within EAP-AKA', and made a number | ||||
| of other clarifications and editorial improvements. The security | ||||
| considerations section also includes a summary of vulnerabilities | ||||
| brought up in the context of AKA or EAP-AKA', and discusses their | ||||
| applicability and impacts in EAP-AKA'. | ||||
| The -03 version of the working group draft corrected some typos, | ||||
| referred to the 3GPP specifications for the SUPI and SUCI formats, | ||||
| updated some of the references to newer versions, and reduced the | ||||
| strength of some of the recommendations in the security | ||||
| considerations section from keyword level to normal language (as they | ||||
| are just deployment recommendations). | ||||
| The -04 version of the working group draft rewrote the abstract and | ||||
| some of the introduction, corrected some typos, added sentence to the | ||||
| abstract about obsoleting RFC 5448, clarified the use of the language | ||||
| when referring to AT_KDF values vs. AT_KDF attribute number, provided | ||||
| guidance on random number generation, clarified the dangers relating | ||||
| to the use of permanent user identities such as IMSIs, aligned the | ||||
| key derivation function/mechanism terminology, aligned the key | ||||
| derivation/generation terminology, aligned the octet/byte | ||||
| terminology, clarified the text regarding strength of SHA-256, added | ||||
| some cross references between sections, instructed IANA to change | ||||
| registries to point to this RFC rather than RFC 5448, and changed | ||||
| Pasi's listed affiliation. | ||||
| The -05 version of the draft corrected the Section 7.1 statement that | ||||
| SUCI must not be communicated in EAP-AKA'; this statement was meant | ||||
| to say SUPI must not be communicated. That was a major bug, but | ||||
| hopefully one that previous readers understood was a mistake! | ||||
| The -05 version also changed keyword strengths for identifier | ||||
| requests in different cases in a 5G network, to match the 3GPP | ||||
| specifications (see Section 5.3.2. | ||||
| Tables of where attributes may appear has been added to the -05 | ||||
| version of the document, see Section 3.5 and Section 4.1. The tables | ||||
| are based on the original table in RFC 4187. | ||||
| Other changes in the -05 version included the following: | ||||
| o The attribute appearance table entry for AT_MAC in EAP-Response/ | ||||
| AKA-Challenge has been specified to be 0-1 because it does not | ||||
| appear when AT_KDF has to be sent; this was based on implementor | ||||
| feedback. | ||||
| o Added information about attacks against the re-synchronization | ||||
| protocol and other attacks recently discussed in academic | ||||
| conferences. | ||||
| o Clarified length field calculations and the AT_KDF negotiation | ||||
| procedure. | ||||
| o The treatment of AT_KDF attribute copy in the EAP-Response/AKA'- | ||||
| Synchronization-Failure message was clarified in Section 3.2. | ||||
| o Updated and added several references | ||||
| o Switched to use of hexadecimal for EAP Type Values for consistency | ||||
| with other documents. | ||||
| o Made editorial clarifications to a number places in the document. | ||||
| The version -06 included changes to updates of references to newer | ||||
| versions on IANA considerations guidelines, NAIs, and IKEv2. | ||||
| The version -07 includes the following changes, per AD and last call | ||||
| review comments: | ||||
| o The use of pseudonyms has been clarified in Section 7.1. | ||||
| o The document now clarifies that it specifies behaviour both for 4G | ||||
| and 5G. | ||||
| o The implications of collisions between "Access Network ID" (4G) | ||||
| and "Serving Network Name" (5G) have been explained in | ||||
| Section 3.1. | ||||
| o The ability of the bidding down protection to protect bidding down | ||||
| only in the direction from EAP-AKA' to EAP-AKA but the other way | ||||
| around has been noted in Section 7. | ||||
| o The implications of the attack described by [Borgaonkar2018] have | ||||
| been updated. | ||||
| o Section 3.1 now specifies more clearly that zero-length network | ||||
| name is not allowed. | ||||
| o Section 3.1 refers to the network name that is today specified in | ||||
| [TS-3GPP.24.302] for both 4G (non-3GPP access) and 5G. | ||||
| o Section 7 now discusses cryptographic agility. | ||||
| o The document now is clear that any change to key aspects of 3GPP | ||||
| specifications, such as key derivation for AKA, would affect this | ||||
| specification and implementations. | ||||
| o References have been updated to the latest Release 15 versions, | ||||
| that are now stable. | ||||
| o Tables have been numbered. | ||||
| o Adopted a number of other editorial corrections. | ||||
| The version -08 includes the following changes: | ||||
| o Alignment of the 3GPP TS Annex and this draft, so that each | ||||
| individual part of the specification is stated in only one place. | ||||
| This has lead to this draft referring to bigger parts of the 3GPP | ||||
| specification, instead of spelling out the details within this | ||||
| document. Note that this alignment change is a proposal at this | ||||
| stage, and will be discussed in the upcoming 3GPP meeting. | ||||
| o Relaxed the language on using only SUCI in 5G. While that is the | ||||
| mode of operation expected to be used, [TS-3GPP.33.501] does not | ||||
| prohibit other types of identifiers. | ||||
| The version -09 includes the following changes: | ||||
| o Updated the language relating to obsoleting/updating RFC 5448; | ||||
| there was an interest to ensure that RFC 5448 stays a valid | ||||
| specification also in the future, owing to existing | ||||
| implementations. | ||||
| o Clarified that the leading digit "6" is not used in 5G networks. | ||||
| o Updated the language relating to when 5G-specific procedures are | ||||
| in effect, to support new use cases 3GPP has defined. | ||||
| o Updated the reference in Section 3.3, as the identities are | ||||
| different in the 5G case. | ||||
| o Clarified that the use of the newer reference to IKEv2 RFC did not | ||||
| change the actual PRF' function from RFC 5448. | ||||
| o Clarified that the Section 5.2 text does not impact backwards | ||||
| compatibility. | ||||
| o Corrected the characterization of the attack from [ZF2005]. | ||||
| o Mentioned 5G GUTIs as one possible 5G-identifier in Section 5.1. | ||||
| o Updated the references to Release 16. These specifications are | ||||
| stable in 3GPP. | ||||
| Version -10 is the final version and made changes per IESG and | ||||
| directorate review comments. These changes were editorial. One | ||||
| duplicate requirement in Section 5.3.1 was removed, and some | ||||
| references were added for tunnel methods discussion in Section 7.1. | ||||
| The language about exported parameters was clarified in Section 6. | ||||
| Appendix D. Importance of Explicit Negotiation | Appendix C. Importance of Explicit Negotiation | |||
| Choosing between the traditional and revised AKA key derivation | Choosing between the traditional and revised AKA key derivation | |||
| functions is easy when their use is unambiguously tied to a | functions is easy when their use is unambiguously tied to a | |||
| particular radio access network, e.g., Long Term Evolution (LTE) as | particular radio access network, e.g., Long Term Evolution (LTE) as | |||
| defined by 3GPP or evolved High Rate Packet Data (eHRPD) as defined | defined by 3GPP or evolved High Rate Packet Data (eHRPD) as defined | |||
| by 3GPP2. There is no possibility for interoperability problems if | by 3GPP2. There is no possibility for interoperability problems if | |||
| this radio access network is always used in conjunction with new | this radio access network is always used in conjunction with new | |||
| protocols that cannot be mixed with the old ones; clients will always | protocols that cannot be mixed with the old ones; clients will always | |||
| know whether they are connecting to the old or new system. | know whether they are connecting to the old or new system. | |||
| skipping to change at page 46, line 5 ¶ | skipping to change at line 1938 ¶ | |||
| requests, or server configuration does not match expectations. It | requests, or server configuration does not match expectations. It | |||
| also does not help to assume that the EAP client and server are | also does not help to assume that the EAP client and server are | |||
| running a particular release of 3GPP network specifications. Network | running a particular release of 3GPP network specifications. Network | |||
| vendors often provide features from future releases early or do not | vendors often provide features from future releases early or do not | |||
| provide all features of the current release. And obviously, there | provide all features of the current release. And obviously, there | |||
| are many EAP and even some EAP-AKA implementations that are not | are many EAP and even some EAP-AKA implementations that are not | |||
| bundled with the 3GPP network offerings. In general, these | bundled with the 3GPP network offerings. In general, these | |||
| approaches are expected to lead to hard-to-diagnose problems and | approaches are expected to lead to hard-to-diagnose problems and | |||
| increased support calls. | increased support calls. | |||
| Appendix E. Test Vectors | Appendix D. Test Vectors | |||
| Test vectors are provided below for four different cases. The test | Test vectors are provided below for four different cases. The test | |||
| vectors may be useful for testing implementations. In the first two | vectors may be useful for testing implementations. In the first two | |||
| cases, we employ the MILENAGE algorithm and the algorithm | cases, we employ the MILENAGE algorithm and the algorithm | |||
| configuration parameters (the subscriber key K and operator algorithm | configuration parameters (the subscriber key K and operator algorithm | |||
| variant configuration value OP) from test set 19 in [TS-3GPP.35.208]. | variant configuration value OP) from test set 19 in [TS-3GPP.35.208]. | |||
| The last two cases use artificial values as the output of AKA, and is | The last two cases use artificial values as the output of AKA, which | |||
| useful only for testing the computation of values within EAP-AKA', | are useful only for testing the computation of values within EAP- | |||
| not AKA itself. | AKA', not AKA itself. | |||
| Case 1 | Case 1 | |||
| The parameters for the AKA run are as follows: | The parameters for the AKA run are as follows: | |||
| Identity: "0555444333222111" | Identity: "0555444333222111" | |||
| Network name: "WLAN" | Network name: "WLAN" | |||
| RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5 | RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5 | |||
| skipping to change at page 50, line 47 ¶ | skipping to change at line 2118 ¶ | |||
| MSK: c6d3 a6e0 ceea 951e b20d 74f3 2c30 61d0 | MSK: c6d3 a6e0 ceea 951e b20d 74f3 2c30 61d0 | |||
| 680a 04b0 b086 ee87 00ac e3e0 b95f a026 | 680a 04b0 b086 ee87 00ac e3e0 b95f a026 | |||
| 83c2 87be ee44 4322 94ff 98af 26d2 cc78 | 83c2 87be ee44 4322 94ff 98af 26d2 cc78 | |||
| 3bac e75c 4b0a f7fd feb5 511b a8e4 cbd0 | 3bac e75c 4b0a f7fd feb5 511b a8e4 cbd0 | |||
| EMSK: 7fb5 6813 838a dafa 99d1 40c2 f198 f6da | EMSK: 7fb5 6813 838a dafa 99d1 40c2 f198 f6da | |||
| cebf b6af ee44 4961 1054 02b5 08c7 f363 | cebf b6af ee44 4961 1054 02b5 08c7 f363 | |||
| 352c b291 9644 b504 63e6 a693 5415 0147 | 352c b291 9644 b504 63e6 a693 5415 0147 | |||
| ae09 cbc5 4b8a 651d 8787 a689 3ed8 536d | ae09 cbc5 4b8a 651d 8787 a689 3ed8 536d | |||
| Contributors | ||||
| The test vectors in Appendix C were provided by Yogendra Pal and | ||||
| Jouni Malinen, based on two independent implementations of this | ||||
| specification. | ||||
| Jouni Malinen provided suggested text for Section 6. John Mattsson | ||||
| provided much of the text for Section 7.1. Karl Norrman was the | ||||
| source of much of the information in Section 7.2. | ||||
| Acknowledgments | Acknowledgments | |||
| The authors would like to thank Guenther Horn, Joe Salowey, Mats | The authors would like to thank Guenther Horn, Joe Salowey, Mats | |||
| Naslund, Adrian Escott, Brian Rosenberg, Laksminath Dondeti, Ahmad | Naslund, Adrian Escott, Brian Rosenberg, Laksminath Dondeti, Ahmad | |||
| Muhanna, Stefan Rommer, Miguel Garcia, Jan Kall, Ankur Agarwal, Jouni | Muhanna, Stefan Rommer, Miguel Garcia, Jan Kall, Ankur Agarwal, Jouni | |||
| Malinen, John Mattsson, Jesus De Gregorio, Brian Weis, Russ Housley, | Malinen, John Mattsson, Jesus De Gregorio, Brian Weis, Russ Housley, | |||
| Alfred Hoenes, Anand Palanigounder, Michael Richardsson, Roman | Alfred Hoenes, Anand Palanigounder, Michael Richardson, Roman | |||
| Danyliw, Dan Romascanu, Kyle Rose, Benjamin Kaduk, Alissa Cooper, | Danyliw, Dan Romascanu, Kyle Rose, Benjamin Kaduk, Alissa Cooper, | |||
| Erik Kline, Murray Kucherawy, Robert Wilton, Warren Kumari, Andreas | Erik Kline, Murray Kucherawy, Robert Wilton, Warren Kumari, Andreas | |||
| Kunz, Marcus Wong, Kalle Jarvinen, Daniel Migault, and Mohit Sethi | Kunz, Marcus Wong, Kalle Jarvinen, Daniel Migault, and Mohit Sethi | |||
| for their in-depth reviews and interesting discussions in this | for their in-depth reviews and interesting discussions in this | |||
| problem space. | problem space. | |||
| Contributors | ||||
| The test vectors in Appendix D were provided by Yogendra Pal and | ||||
| Jouni Malinen, based on two independent implementations of this | ||||
| specification. | ||||
| Jouni Malinen provided suggested text for Section 6. John Mattsson | ||||
| provided much of the text for Section 7.1. Karl Norrman was the | ||||
| source of much of the information in Section 7.2. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Jari Arkko | Jari Arkko | |||
| Ericsson | Ericsson | |||
| Jorvas 02420 | FI-02420 Jorvas | |||
| Finland | Finland | |||
| Email: jari.arkko@piuha.net | Email: jari.arkko@piuha.net | |||
| Vesa Lehtovirta | Vesa Lehtovirta | |||
| Ericsson | Ericsson | |||
| Jorvas 02420 | FI-02420 Jorvas | |||
| Finland | Finland | |||
| Email: vesa.lehtovirta@ericsson.com | Email: vesa.lehtovirta@ericsson.com | |||
| Vesa Torvinen | Vesa Torvinen | |||
| Ericsson | Ericsson | |||
| Jorvas 02420 | FI-02420 Jorvas | |||
| Finland | Finland | |||
| Email: vesa.torvinen@ericsson.com | Email: vesa.torvinen@ericsson.com | |||
| Pasi Eronen | Pasi Eronen | |||
| Independent | Independent | |||
| Finland | Finland | |||
| Email: pe@iki.fi | Email: pe@iki.fi | |||
| End of changes. 221 change blocks. | ||||
| 843 lines changed or deleted | 704 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||