| draft-arkko-eap-rfc5448bis-00.txt | draft-arkko-eap-rfc5448bis.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Network Working Group J. Arkko | |||
| Internet-Draft V. Lehtovirta | Internet-Draft V. Lehtovirta | |||
| Obsoletes: 5448 (if approved) Ericsson | Obsoletes: 5448 (if approved) V. Torvinen | |||
| Intended status: Informational P. Eronen | Intended status: Informational Ericsson | |||
| Expires: May 3, 2018 Nokia | Expires: September 6, 2018 P. Eronen | |||
| October 30, 2017 | Nokia | |||
| March 5, 2018 | ||||
| Improved Extensible Authentication Protocol Method for 3rd Generation | Improved Extensible Authentication Protocol Method for 3rd Generation | |||
| Authentication and Key Agreement (EAP-AKA') | Authentication and Key Agreement (EAP-AKA') | |||
| draft-arkko-eap-rfc5448bis-00 | draft-arkko-eap-rfc5448bis-01 | |||
| Abstract | Abstract | |||
| This specification defines a new EAP method, EAP-AKA', a small | This specification defines a new EAP method, EAP-AKA', a small | |||
| revision of the EAP-AKA method. The change is a new key derivation | revision of the EAP-AKA method. The change is a new key derivation | |||
| function that binds the keys derived within the method to the name of | function that binds the keys derived within the method to the name of | |||
| the access network. The new key derivation mechanism has been | the access network. The new key derivation mechanism has been | |||
| defined in the 3rd Generation Partnership Project (3GPP). This | defined in the 3rd Generation Partnership Project (3GPP). This | |||
| specification allows its use in EAP in an interoperable manner. In | specification allows its use in EAP in an interoperable manner. In | |||
| addition, EAP-AKA' employs SHA-256 instead of SHA-1. | addition, EAP-AKA' employs SHA-256 instead of SHA-1. | |||
| skipping to change at page 1, line 46 ¶ | skipping to change at page 1, line 47 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on May 3, 2018. | This Internet-Draft will expire on September 6, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | ||||
| Copyright (c) 2018 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 | (http://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 . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . 6 | 3.1. AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 11 | 3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 13 | 3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 13 | 3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 13 | 3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 13 | 3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 14 | |||
| 4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 14 | 4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 14 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 5. Identifier Usage in 5G . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.1. Security Properties of Binding Network Names . . . . . . 18 | 5.1. Key Derivation . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute 17 | |||
| 6.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 19 | 6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 19 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 6.3. Key Derivation Function Namespace . . . . . . . . . . . . 20 | 7.1. Security Properties of Binding Network Names . . . . . . 21 | |||
| 7. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 20 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 | 8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 22 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 8.3. Key Derivation Function Namespace . . . . . . . . . . . . 23 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 22 | 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 23 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 23 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| Appendix C. Importance of Explicit Negotiation . . . . . . . . . 23 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 23 | |||
| Appendix D. Test Vectors . . . . . . . . . . . . . . . . . . . . 24 | 11.2. Informative References . . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 | Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 26 | |||
| Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 26 | ||||
| Appendix C. Importance of Explicit Negotiation . . . . . . . . . 26 | ||||
| Appendix D. Test Vectors . . . . . . . . . . . . . . . . . . . . 27 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | ||||
| 1. Introduction | 1. Introduction | |||
| This specification defines a new Extensible Authentication Protocol | This specification defines a new Extensible Authentication Protocol | |||
| (EAP)[RFC3748] method, EAP-AKA', a small revision of the EAP-AKA | (EAP)[RFC3748] method, EAP-AKA', a small revision of the EAP-AKA | |||
| method originally defined in [RFC4187]. What is new in EAP-AKA' is | method originally defined in [RFC4187]. What is new in EAP-AKA' is | |||
| that it has a new key derivation function, specified in | that it has a new key derivation function, specified in | |||
| [TS-3GPP.33.402]. This function binds the keys derived within the | [TS-3GPP.33.402]. This function binds the keys derived within the | |||
| method to the name of the access network. This limits the effects of | method to the name of the access network. This limits the effects of | |||
| compromised access network nodes and keys. This specification | compromised access network nodes and keys. This specification | |||
| skipping to change at page 3, line 45 ¶ | skipping to change at page 3, line 45 ¶ | |||
| function to SHA-256 [FIPS.180-2.2002]. But it is otherwise | function to SHA-256 [FIPS.180-2.2002]. But it is otherwise | |||
| equivalent to RFC 4187. Given that a different EAP method type value | equivalent to RFC 4187. Given that a different EAP method type value | |||
| is used for EAP-AKA and EAP-AKA', a mutually supported method may be | is used for EAP-AKA and EAP-AKA', a mutually supported method may be | |||
| negotiated using the standard mechanisms in EAP [RFC3748]. | negotiated using the standard mechanisms in EAP [RFC3748]. | |||
| Note: Appendix C explains why it is important to be explicit about | Note: Appendix C explains why it is important to be explicit about | |||
| the change of semantics for the keys, and why other approaches | the change of semantics for the keys, and why other approaches | |||
| would lead to severe interoperability problems. | would lead to severe interoperability problems. | |||
| This version of the EAP-AKA' specification is an update to RFC 5448. | This version of the EAP-AKA' specification is an update to RFC 5448. | |||
| The update is to the reference on how the Network Name field is | The update consists of three things: | |||
| constructed in the protocol. The update helps ensure that EAP-AKA' | ||||
| becomes compatible with 5G deployments as well. RFC 5448 referred to | ||||
| the 2008 version of that reference ([TS-3GPP.24.302]) and this update | ||||
| points to the 5G version of that reference. | ||||
| Arguably, the update is small, as the 3GPP specification number for | o Update the reference on how the Network Name field is constructed | |||
| the updated calculation has not changed, only the version. But this | in the protocol. The update helps ensure that EAP-AKA' becomes | |||
| reference is crucial in correct calculation of the keys resulting | compatible with 5G deployments as well. RFC 5448 referred to the | |||
| from running the EAP-AKA' method, so an update of the RFC with the | 2008 version of that reference ([TS-3GPP.24.302]) and this update | |||
| newest version pointer may be warranted. As always, feedback is | points to the 5G version of that reference. | |||
| welcome on that point as well as on any other topic within this | ||||
| document. | o Specify how EAP and EAP-AKA' use identifiers in 5G, as additional | |||
| identifiers are introduced, and for interoperability, it is | ||||
| important that implementations use the right ones. | ||||
| o Specify session identifiers and other exported parameters, as | ||||
| those were not specified in [RFC5448] despite requirements set | ||||
| forward in [RFC5247] to do so. Also, while [RFC5247] specified | ||||
| session identifiers for EAP-AKA, it only did so for the full | ||||
| authentication case, not for the case of fast re-authentication. | ||||
| Arguably, the updates are small. For the first update, the 3GPP | ||||
| specification number for the updated calculation has not changed, | ||||
| only the version. But this reference is crucial in correct | ||||
| calculation of the keys resulting from running the EAP-AKA' method, | ||||
| so an update of the RFC with the newest version pointer may be | ||||
| warranted. As always, feedback is welcome on that point as well as | ||||
| on any other topic within this document. | ||||
| Note: It is an open issue whether this update should refer to only | Note: It is an open issue whether this update should refer to only | |||
| the 5G version of the definition, or be explicit that any further | the 5G version of the definition, or be explicit that any further | |||
| update of that specification is something that EAP-AKA' | update of that specification is something that EAP-AKA' | |||
| implementations should take into account. Note that one should | implementations should take into account. Note that one should | |||
| keep in mind that specification being automatically updated is | keep in mind that specification being automatically updated is | |||
| different from implementations taking notice of new things. | different from implementations taking notice of new things. | |||
| The second update is needed to ensure that implementations use the | ||||
| correct identifiers in the context of 5G, as it introduces additional | ||||
| privacy-protected identifiers, and it is no longer clear which | ||||
| identifiers are used in EAP-AKA'. | ||||
| The third update is necessary in order to fix a problem in previous | ||||
| RFCs. | ||||
| It is an explicit non-goal of this draft to include any other | It is an explicit non-goal of this draft 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 explains the | prevent bidding down attacks from EAP-AKA'. Section 7 explains the | |||
| security differences between EAP-AKA and EAP-AKA'. Section 6 | security differences between EAP-AKA and EAP-AKA'. Section 8 | |||
| describes the IANA considerations and Appendix A and Appendix B | describes the IANA considerations and Appendix A and Appendix B | |||
| explains what updates to RFC 5448 AKA' and RFC 4187 EAP-AKA have been | explains what updates to RFC 5448 AKA' and RFC 4187 EAP-AKA have been | |||
| made in this specification. Appendix C explains some of the design | made in this specification. Appendix C explains some of the design | |||
| rationale for creating EAP-AKA' Finally, Appendix D provides test | rationale for creating EAP-AKA' Finally, Appendix D provides test | |||
| vectors. | vectors. | |||
| Editor's Note: The publication of this RFC depends on its | Editor's Note: The publication of this RFC depends on its | |||
| normative references [TS-3GPP.24.302] and [TS-3GPP.33.501] from | normative references [TS-3GPP.24.302] and [TS-3GPP.33.501] from | |||
| 3GPP reaching their final Release 15 status at 3GPP. This is | 3GPP reaching their final Release 15 status at 3GPP. This is | |||
| expected to happen shortly. The RFC Editor should check with the | expected to happen shortly. The RFC Editor should check with the | |||
| skipping to change at page 14, line 35 ¶ | skipping to change at page 14, line 51 ¶ | |||
| 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 new mechanism | |||
| for EAP-AKA that allows the endpoints to securely discover the | for 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 as | messages. This attribute is not included in EAP-AKA' messages as | |||
| defined in this RFC. It is only included in EAP-AKA messages. This | defined in this RFC. It is only included in EAP-AKA messages. This | |||
| is based on the assumption that EAP-AKA' is always preferable (see | is based on the assumption that EAP-AKA' is always preferable (see | |||
| Section 5). If during the EAP-AKA authentication process it is | Section 7). If during the EAP-AKA authentication process it is | |||
| discovered that both endpoints would have been able to use EAP-AKA', | discovered that both endpoints would have been able to use EAP-AKA', | |||
| the authentication process SHOULD be aborted, as a bidding down | the authentication process SHOULD be aborted, as a bidding down | |||
| attack may have happened. | 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 | | |||
| skipping to change at page 15, line 30 ¶ | skipping to change at page 15, line 46 ¶ | |||
| The server sends this attribute in the EAP-Request/AKA-Challenge | The server sends this attribute in the EAP-Request/AKA-Challenge | |||
| message. If the peer supports EAP-AKA', it compares the received | message. If the peer supports EAP-AKA', it compares the received | |||
| value to its own capabilities. If it turns out that both the server | value to its own capabilities. If it turns out that both the server | |||
| and peer would have been able to use EAP-AKA' and preferred it over | and peer would have been able to use EAP-AKA' and preferred it over | |||
| EAP-AKA, the peer behaves as if AUTN had been incorrect and fails the | EAP-AKA, the peer behaves as if AUTN had been incorrect and fails the | |||
| authentication (see Figure 3 of [RFC4187]). A peer not supporting | authentication (see Figure 3 of [RFC4187]). A peer not supporting | |||
| EAP-AKA' will simply ignore this attribute. In all cases, the | EAP-AKA' will simply ignore this attribute. In all cases, the | |||
| attribute is protected by the integrity mechanisms of EAP-AKA, so it | attribute is protected by the integrity mechanisms of EAP-AKA, so it | |||
| cannot be removed by a man-in-the-middle attacker. | cannot be removed by a man-in-the-middle attacker. | |||
| Note that we assume (Section 5) 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, there is no need to prevent bidding "down" | EAP-AKA. As a result, there is no need to prevent bidding "down" | |||
| attacks in the other direction, i.e., attackers forcing the endpoints | attacks in the other direction, i.e., attackers forcing the endpoints | |||
| to use EAP-AKA'. | to use EAP-AKA'. | |||
| 5. Security Considerations | 5. Identifier Usage in 5G | |||
| In EAP-AKA', the peer identity may be communicated to the server in | ||||
| one of three ways: | ||||
| o As a part of link layer establishment procedures, externally to | ||||
| EAP. | ||||
| o With the EAP-Response/Identity message in the beginning of the EAP | ||||
| exchange, but before the selection of EAP-AKA'. | ||||
| o Transmitted from the peer to the server using EAP-AKA messages | ||||
| instead of EAP-Response/Identity. In this case, the server | ||||
| includes an identity requesting attribute (AT_ANY_ID_REQ, | ||||
| AT_FULLAUTH_ID_REQ or AT_PERMANENT_ID_REQ) in the EAP-Request/AKA- | ||||
| Identity message; and the peer includes the AT_IDENTITY attribute, | ||||
| which contains the peer's identity, in the EAP-Response/AKA- | ||||
| Identity message. | ||||
| The identity carried above may be a permanent identity or a pseudonym | ||||
| identity or fast re-authentication identity as defined in this RFC. | ||||
| In networks where EAP is the only part handling such pseudonym or | ||||
| fast re-authentication identities, this usage is clear. However, 5G | ||||
| supports the concept of pseudonym or privacy identifiers, and it is | ||||
| important for interoperability that the right type of identifiers are | ||||
| used in the right place. | ||||
| 5G defines the SUbscription Permanent Identifier (SUPI) and | ||||
| SUbscription Concealed Identifier (SUCI) [TS-3GPP.23.501] | ||||
| [TS-3GPP.33.501]. SUPI is globally unique and allocated to each | ||||
| subscriber. However, it is only used internally in the 5G network, | ||||
| and is privacy sensitive. The SUCI is a privacy preserving | ||||
| identifier containing the concealed SUPI, using public key | ||||
| cryptography to encrypt the SUPI. | ||||
| Given the choice between these two types of identifiers, two areas | ||||
| need further specification in EAP-AKA' to ensure that different | ||||
| implementations understand each other and stay interoperable: | ||||
| o Where identifiers are used within EAP-AKA' -- such as key | ||||
| derivation -- specify what values exactly should be used, to avoid | ||||
| ambiguity. | ||||
| o Where identifiers are carried within EAP-AKA' packets -- such as | ||||
| in the AT_IDENTITY attribute -- specify which identifiers should | ||||
| be filled in. | ||||
| In 5G, the normal mode of operation is that identifiers are only | ||||
| transmitted outside EAP. However, in a system involving terminals | ||||
| from many generations and several connectivity options via 5G and | ||||
| other mechanisms, implementations and the EAP-AKA' specification need | ||||
| to prepare for many different situations, including sometimes having | ||||
| to communicate identities within EAP. | ||||
| The following sections propose one way of clarifying which | ||||
| identifiers are used and how. However, other answers are also | ||||
| possible (e.g., always use the permanent identity). Further | ||||
| discussion on this point is welcome! | ||||
| 5.1. Key Derivation | ||||
| In EAP-AKA', the peer identity is used in the Section 3.3 key | ||||
| derivation formula. The identity used in this formula MUST be | ||||
| exactly the one sent in EAP-AKA' AT_IDENTITY attribute, if one was | ||||
| sent, regardless of the kind of identity that it may have been. If | ||||
| no AT_IDENTITY was sent, the identity MUST be the exactly the one | ||||
| sent in the generic EAP Identity exchange, if one was made. Again, | ||||
| the identity MUST be used exactly as sent. | ||||
| Alternative specification: This could also require that the SUPI | ||||
| identity be always used, regardless of what identity was sent. | ||||
| If no identity was communicated inside EAP, then the identity is the | ||||
| one communicated outside EAP in link layer messaging. | ||||
| In this case, the used identity MUST be the identity most recently | ||||
| communicated by the peer to the network, again regardless of what | ||||
| type of identity it may have been. | ||||
| 5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute | ||||
| 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' | ||||
| peer may be connecting to other types of networks and existing | ||||
| equipment. | ||||
| When the EAP peer is connecting to a 5G access network and uses the | ||||
| 5G core network signalling mechanisms, it MUST assume that the EAP | ||||
| server is in a 5G network. In that situation, the EAP peer SHOULD | ||||
| employ only the privacy preserving SUCI identifier within EAP (either | ||||
| in EAP Identity Response or EAP-AKA' AT_IDENTITY attribute). | ||||
| Similarly, if the peer is explicitly communicating through mechanisms | ||||
| developed for 5G to connect to 5G networks over WLAN, it MUST assume | ||||
| that the EAP server is in a 5G network, and again employ the SUCI | ||||
| within EAP. | ||||
| Otherwise, the peer SHOULD employ IMSI or SUPI as it is configured to | ||||
| use. | ||||
| The use of fast re-authentication and pseudonym identifiers in 5G or | ||||
| other networks is for further discussion. Discussion of this topic | ||||
| is again welcome! | ||||
| 6. Exported Parameters | ||||
| The EAP-AKA' Session-Id is the concatenation of the EAP Type Code | ||||
| (50, one octet) with the contents of the RAND field from the AT_RAND | ||||
| attribute, followed by the contents of the AUTN field in the AT_AUTN | ||||
| attribute: | ||||
| Session-Id = 50 || RAND || AUTN | ||||
| When using fast re-authentication, the EAP-AKA' Session-Id is the | ||||
| concatenation of the EAP Type Code (50) with the contents of the | ||||
| NONCE_S field from the AT_NONCE_S attribute, followed by the contents | ||||
| of the MAC field from the AT_MAC attribute from EAP-Request/AKA- | ||||
| Reauthentication: | ||||
| Session-Id = 50 || NONCE_S || MAC | ||||
| The Peer-Id is the contents of the Identity field from the | ||||
| AT_IDENTITY attribute, using only the Actual Identity Length octets | ||||
| from the beginning. Note that the contents are used as they are | ||||
| transmitted, regardless of whether the transmitted identity was a | ||||
| permanent, pseudonym, or fast EAP re-authentication identity. The | ||||
| Server-Id is the null string (zero length). | ||||
| 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 | properties are very similar to those in EAP-AKA. We assume that | |||
| SHA-256 is at least as secure as SHA-1. This is called the SHA-256 | SHA-256 is at least as secure as SHA-1. This is called the SHA-256 | |||
| assumption in the remainder of this section. Under this assumption, | assumption in the remainder of this section. Under this assumption, | |||
| EAP-AKA' is at least as secure as EAP-AKA. | EAP-AKA' is at least as secure as 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: | |||
| skipping to change at page 17, line 16 ¶ | skipping to change at page 20, line 12 ¶ | |||
| 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 | pseudo-random 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 5.1. | This is discussed further in Section 7.1. | |||
| EAP-AKA' uses a pseudo-random function modeled after the one used | EAP-AKA' uses a pseudo-random function modeled after the one used | |||
| in IKEv2 [RFC4306] together with SHA-256. | in IKEv2 [RFC4306] together with SHA-256. | |||
| Key strength | Key strength | |||
| See above. | See above. | |||
| Dictionary attack resistance | Dictionary attack resistance | |||
| skipping to change at page 18, line 28 ¶ | skipping to change at page 21, line 22 ¶ | |||
| 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 | |||
| the following section for more discussion. | the following section for more discussion. | |||
| 5.1. Security Properties of Binding Network Names | 7.1. 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 | |||
| keys from network X. Obviously, if an access point is compromised, | keys from network X. Obviously, if an access point is compromised, | |||
| the malicious node can still represent the compromised node. As a | the malicious node can still represent the compromised node. As a | |||
| skipping to change at page 19, line 35 ¶ | skipping to change at page 22, line 29 ¶ | |||
| obviously on the way names are assigned to different access networks. | obviously on the way names are assigned to different access networks. | |||
| This is specified in [TS-3GPP.24.302]. See also [TS-3GPP.23.003]. | This is specified in [TS-3GPP.24.302]. See also [TS-3GPP.23.003]. | |||
| 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. | |||
| 6. IANA Considerations | 8. IANA Considerations | |||
| 6.1. Type Value | 8.1. Type Value | |||
| EAP-AKA' has the EAP Type value 50 in the Extensible Authentication | EAP-AKA' has the EAP Type value 50 in the Extensible Authentication | |||
| Protocol (EAP) Registry under Method Types. Per Section 6.2 of | Protocol (EAP) Registry under Method Types. Per Section 6.2 of | |||
| [RFC3748], this allocation can be made with Designated Expert and | [RFC3748], this allocation can be made with Designated Expert and | |||
| Specification Required. | Specification Required. | |||
| 6.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 | However, a new Attribute Type value (23) in the non-skippable range | |||
| has been assigned for AT_KDF_INPUT (Section 3.1) in the EAP-AKA and | has been assigned for AT_KDF_INPUT (Section 3.1) in the EAP-AKA and | |||
| EAP-SIM Parameters registry under Attribute Types. | EAP-SIM Parameters registry under Attribute Types. | |||
| Also, a new Attribute Type value (24) in the non-skippable range has | Also, a new Attribute Type value (24) in the non-skippable range has | |||
| been assigned for AT_KDF (Section 3.2). | been assigned for AT_KDF (Section 3.2). | |||
| Finally, a new Attribute Type value (136) in the skippable range has | Finally, a new Attribute Type value (136) in the skippable range has | |||
| been assigned for AT_BIDDING (Section 4). | been assigned for AT_BIDDING (Section 4). | |||
| 6.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 also created a new namespace for EAP-AKA' AT_KDF Key | |||
| Derivation Function Values. This namespace exists under the EAP-AKA | Derivation Function Values. This namespace exists under the EAP-AKA | |||
| and EAP-SIM Parameters registry. The initial contents of this | and EAP-SIM Parameters registry. The initial contents of this | |||
| namespace are given below; new values can be created through the | namespace are given below; new values can be created through the | |||
| Specification Required policy [RFC5226]. | Specification Required policy [RFC5226]. | |||
| Value Description Reference | Value Description Reference | |||
| --------- ---------------------- --------------- | --------- ---------------------- --------------- | |||
| 0 Reserved [RFC 5448] | 0 Reserved [RFC 5448] | |||
| 1 EAP-AKA' with CK'/IK' [RFC 5448] | 1 EAP-AKA' with CK'/IK' [RFC 5448] | |||
| 2-65535 Unassigned | 2-65535 Unassigned | |||
| 7. Contributors | 9. Contributors | |||
| The test vectors in Appendix C were provided by Yogendra Pal and | The test vectors in Appendix C were provided by Yogendra Pal and | |||
| Jouni Malinen, based on two independent implementations of this | Jouni Malinen, based on two independent implementations of this | |||
| specification. | specification. | |||
| 8. Acknowledgments | Jouni Malinen provided suggested text for Section 6. | |||
| 10. 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, Brian Weis, Russ Housley, Alfred Hoenes, Vesa Torvinen, and | Malinen, Brian Weis, Russ Housley, Alfred Hoenes, Vesa Torvinen, | |||
| Mohit Sethi for their in-depth reviews and interesting discussions in | Anand Palanigounder, and Mohit Sethi for their in-depth reviews and | |||
| this problem space. | interesting discussions in this problem space. | |||
| 9. References | 11. References | |||
| 9.1. Normative References | 11.1. Normative References | |||
| [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 15)", 3GPP Technical Specification | ||||
| 23.501, December 2017. | ||||
| [TS-3GPP.24.302] | [TS-3GPP.24.302] | |||
| 3GPP, "3rd Generation Partnership Project; Technical | 3GPP, "3rd Generation Partnership Project; Technical | |||
| Specification Group Core Network and Terminals; Access to | Specification Group Core Network and Terminals; Access to | |||
| the 3GPP Evolved Packet Core (EPC) via non-3GPP access | the 3GPP Evolved Packet Core (EPC) via non-3GPP access | |||
| networks; Stage 3; (Release 15)", 3GPP Draft Technical | networks; Stage 3; (Release 15)", 3GPP Draft Technical | |||
| Specification 24.302, September 2017. | Specification 24.302, September 2017. | |||
| [TS-3GPP.33.102] | [TS-3GPP.33.102] | |||
| 3GPP, "3rd Generation Partnership Project; Technical | 3GPP, "3rd Generation Partnership Project; Technical | |||
| skipping to change at page 22, line 5 ¶ | skipping to change at page 25, line 5 ¶ | |||
| [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>. | |||
| [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
| IANA Considerations Section in RFCs", RFC 5226, DOI | IANA Considerations Section in RFCs", RFC 5226, DOI | |||
| 10.17487/RFC5226, May 2008, <https://www.rfc-editor.org/ | 10.17487/RFC5226, May 2008, <https://www.rfc-editor.org/ | |||
| info/rfc5226>. | info/rfc5226>. | |||
| 9.2. Informative References | 11.2. Informative References | |||
| [TS-3GPP.23.003] | [TS-3GPP.23.003] | |||
| 3GPP, "3rd Generation Partnership Project; Technical | 3GPP, "3rd Generation Partnership Project; Technical | |||
| Specification Group Core Network and Terminals; Numbering, | Specification Group Core Network and Terminals; Numbering, | |||
| addressing and identification (Release 8)", 3GPP Technical | addressing and identification (Release 8)", 3GPP Technical | |||
| Specification 23.003, December 2008. | Specification 23.003, December 2008. | |||
| [TS-3GPP.35.208] | [TS-3GPP.35.208] | |||
| 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 | |||
| skipping to change at page 23, line 5 ¶ | skipping to change at page 26, line 5 ¶ | |||
| [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, DOI | "Network Discovery and Selection Problem", RFC 5113, DOI | |||
| 10.17487/RFC5113, January 2008, <https://www.rfc- | 10.17487/RFC5113, January 2008, <https://www.rfc- | |||
| editor.org/info/rfc5113>. | 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, <https://www | RFC 5247, DOI 10.17487/RFC5247, August 2008, <https://www | |||
| .rfc-editor.org/info/rfc5247>. | .rfc-editor.org/info/rfc5247>. | |||
| [RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved | ||||
| Extensible Authentication Protocol Method for 3rd | ||||
| Generation Authentication and Key Agreement (EAP-AKA')", | ||||
| RFC 5448, DOI 10.17487/RFC5448, May 2009, <https://www | ||||
| .rfc-editor.org/info/rfc5448>. | ||||
| Appendix A. Changes from RFC 5448 | Appendix A. Changes from RFC 5448 | |||
| The changes consist solely of referring to a newer version of | The changes consist first of all, referring to a newer version of | |||
| [TS-3GPP.24.302]. The new version includes an updated definition of | [TS-3GPP.24.302]. The new version includes an updated definition of | |||
| the Network Name field, to include 5G. | the Network Name field, to include 5G. | |||
| Secondly, identifier usage for 5G has been specified in Section 5. | ||||
| Thirdly, exported parameters for EAP-AKA' have been defined in | ||||
| Section 6, as required by [RFC5247], including the definition of | ||||
| those parameters for both full authentication and fast re- | ||||
| authentication. | ||||
| Appendix B. Changes from RFC 4187 to RFC 5448 | Appendix B. Changes from RFC 4187 to RFC 5448 | |||
| 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 in RFC 4187 (it uses CK | change how the Master Key (MK) is calculated in RFC 4187 (it uses CK | |||
| and IK, not CK' and IK'); neither is any processing of the AMF bit | and IK, not CK' and IK'); neither is any processing of the AMF bit | |||
| added to RFC 4187. | added to RFC 4187. | |||
| Appendix C. Importance of Explicit Negotiation | Appendix C. Importance of Explicit Negotiation | |||
| skipping to change at page 28, line 18 ¶ | skipping to change at page 31, line 26 ¶ | |||
| Email: jari.arkko@piuha.net | Email: jari.arkko@piuha.net | |||
| Vesa Lehtovirta | Vesa Lehtovirta | |||
| Ericsson | Ericsson | |||
| Jorvas 02420 | Jorvas 02420 | |||
| Finland | Finland | |||
| Email: vesa.lehtovirta@ericsson.com | Email: vesa.lehtovirta@ericsson.com | |||
| Vesa Torvinen | ||||
| Ericsson | ||||
| Jorvas 02420 | ||||
| Finland | ||||
| Email: vesa.torvinen@ericsson.com | ||||
| Pasi Eronen | Pasi Eronen | |||
| Nokia Research Center | Nokia Research Center | |||
| P.O. Box 407 | P.O. Box 407 | |||
| FIN-00045 Nokia Group | FIN-00045 Nokia Group | |||
| Finland | Finland | |||
| Email: pasi.eronen@nokia.com | Email: pasi.eronen@nokia.com | |||
| End of changes. 30 change blocks. | ||||
| 59 lines changed or deleted | 243 lines changed or added | |||
This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||