draft-ietf-emu-rfc5448bis-01.txt | draft-ietf-emu-rfc5448bis-02.txt | |||
---|---|---|---|---|
Network Working Group J. Arkko | Network Working Group J. Arkko | |||
Internet-Draft V. Lehtovirta | Internet-Draft V. Lehtovirta | |||
Obsoletes: 5448 (if approved) V. Torvinen | Obsoletes: 5448 (if approved) V. Torvinen | |||
Updates: 4187 (if approved) Ericsson | Updates: 4187 (if approved) Ericsson | |||
Intended status: Informational P. Eronen | Intended status: Informational P. Eronen | |||
Expires: January 3, 2019 Nokia | Expires: March 21, 2019 Nokia | |||
July 2, 2018 | September 17, 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-ietf-emu-rfc5448bis-01 | draft-ietf-emu-rfc5448bis-02 | |||
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. | |||
This specification also updates RFC 4187 EAP-AKA to prevent bidding | This specification also updates RFC 4187 EAP-AKA to prevent bidding | |||
down attacks from EAP-AKA'. | down attacks from EAP-AKA'. | |||
This version of the EAP-AKA' specification updates a reference to | This version of the EAP-AKA' specification provides updates to | |||
constructing one field in the protocol, so that EAP-AKA' becomes | specify the protocol behaviour for 5G deployments as well. | |||
compatible with 5G deployments as well. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
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 January 3, 2019. | This Internet-Draft will expire on March 21, 2019. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2018 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 | |||
skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
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 . . . . . . . . . . . . . . . . . . . . 5 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 5 | |||
3. EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. EAP-AKA' . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . 7 | 3.1. AT_KDF_INPUT . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 12 | 3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 13 | |||
3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 14 | 3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 14 | 3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 14 | 3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 14 | 3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 15 | |||
4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 15 | 4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 16 | |||
5. Identifier Usage in 5G . . . . . . . . . . . . . . . . . . . 16 | 5. Peer Identities . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
5.1. Key Derivation . . . . . . . . . . . . . . . . . . . . . 17 | 5.1. Username Types in EAP-AKA' Identities . . . . . . . . . . 18 | |||
5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute 18 | 5.2. Generating Pseudonyms and Fast Re-Authentication | |||
6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 19 | Identities . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 5.3. Identifier Usage in 5G . . . . . . . . . . . . . . . . . 19 | |||
7.1. Security Properties of Binding Network Names . . . . . . 22 | 5.3.1. Key Derivation . . . . . . . . . . . . . . . . . . . 20 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | 5.3.2. EAP Identity Response and EAP-AKA' AT_IDENTITY | |||
8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 23 | Attribute . . . . . . . . . . . . . . . . . . . . . . 21 | |||
8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 23 | 6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 23 | |||
8.3. Key Derivation Function Namespace . . . . . . . . . . . . 23 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.1. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.2. Discovered Vulnerabilities . . . . . . . . . . . . . . . 28 | |||
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 7.3. Pervasive Monitoring . . . . . . . . . . . . . . . . . . 30 | |||
11.1. Normative References . . . . . . . . . . . . . . . . . . 24 | 7.4. Security Properties of Binding Network Names . . . . . . 31 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 26 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 | |||
Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 27 | 8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 27 | 8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 32 | |||
Appendix C. Changes from Previous Version of This Draft . . . . 28 | 8.3. Key Derivation Function Namespace . . . . . . . . . . . . 32 | |||
Appendix D. Importance of Explicit Negotiation . . . . . . . . . 28 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 33 | |||
Appendix E. Test Vectors . . . . . . . . . . . . . . . . . . . . 29 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 33 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | 9.2. Informative References . . . . . . . . . . . . . . . . . 34 | |||
Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 37 | ||||
Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 38 | ||||
Appendix C. Changes from Previous Version of This Draft . . . . 38 | ||||
Appendix D. Importance of Explicit Negotiation . . . . . . . . . 38 | ||||
Appendix E. Test Vectors . . . . . . . . . . . . . . . . . . . . 39 | ||||
Appendix F. Contributors . . . . . . . . . . . . . . . . . . . . 43 | ||||
Appendix G. Acknowledgments . . . . . . . . . . . . . . . . . . 44 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 44 | ||||
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 46 ¶ | skipping to change at page 4, line 6 ¶ | |||
function to SHA-256 [FIPS.180-4]. But it is otherwise equivalent to | function to SHA-256 [FIPS.180-4]. But it is otherwise equivalent to | |||
RFC 4187. Given that a different EAP method type value is used for | RFC 4187. Given that a different EAP method type value is used for | |||
EAP-AKA and EAP-AKA', a mutually supported method may be negotiated | EAP-AKA and EAP-AKA', a mutually supported method may be negotiated | |||
using the standard mechanisms in EAP [RFC3748]. | using the standard mechanisms in EAP [RFC3748]. | |||
Note: Appendix D explains why it is important to be explicit about | Note: Appendix D 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 obsoletes RFC 5448. The | This version of the EAP-AKA' specification obsoletes RFC 5448. The | |||
changes consist of three things: | changes are as follows: | |||
o Update the reference on how the Network Name field is constructed | o Update the reference on how the Network Name field is constructed | |||
in the protocol. The update helps ensure that EAP-AKA' becomes | in the protocol. The update ensures that EAP-AKA' is compatible | |||
compatible with 5G deployments as well. RFC 5448 referred to the | with 5G deployments. RFC 5448 referred to the Release 8 version | |||
Release 8 version of [TS-3GPP.24.302] and this update points to | of [TS-3GPP.24.302] and this update points to the first 5G | |||
the first 5G version, Release 15. | version, Release 15. | |||
o Specify how EAP and EAP-AKA' use identifiers in 5G, as additional | o Specify how EAP and EAP-AKA' use identifiers in 5G. Additional | |||
identifiers are introduced, and for interoperability, it is | identifiers are introduced in 5G, and for interoperability, it is | |||
important that implementations use the right ones. | necessary that the right identifiers are used as inputs in the key | |||
generation. In addition, for identity privacy it is important | ||||
that when privacy-friendly identifiers in 5G are used, no | ||||
trackable, permanent identifiers are passed in EAP-AKA' either. | ||||
o Specify session identifiers and other exported parameters, as | o Specify 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. | |||
Arguably, the updates are small. For the first update, the 3GPP | o Update the requirements on generating pseudonym usernames and fast | |||
specification number for the updated calculation has not changed, | re-authentication identities to ensure identity privacy. | |||
o Describe what has been learned about any vulnerabilities in AKA or | ||||
EAP-AKA'. | ||||
o Describe the privacy and pervasive monitoring considerations | ||||
related to EAP-AKA'. | ||||
Some of the updates are small. For instance, for the first update, | ||||
the reference update does not change the 3GPP specification number, | ||||
only the version. But this reference is crucial in correct | only the version. But this reference is crucial in correct | |||
calculation of the keys resulting from running the EAP-AKA' method, | calculation of the keys resulting from running the EAP-AKA' method, | |||
so an update of the RFC with the newest version pointer may be | 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 | warranted. | |||
on any other topic within this document. | ||||
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 | ||||
update of that specification is something that EAP-AKA' | ||||
implementations should take into account. Note that one should | ||||
keep in mind that specification being automatically updated is | ||||
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 | Note: This specification refers only to the 5G specifications. | |||
RFCs. | Any further update that affects, for instance, key generation is | |||
something that EAP-AKA' implementations should take into account. | ||||
Upon such updates there will be a need to both update the | ||||
specification and the implementations. | ||||
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 7 explains the | prevent bidding down attacks from EAP-AKA'. Section 5 specifies | |||
security differences between EAP-AKA and EAP-AKA'. Section 8 | requirements regarding the use of peer identities, including how how | |||
describes the IANA considerations and Appendix A and Appendix B | EAP-AKA' identifiers are used in 5G context. Section 6 specifies | |||
explains what updates to RFC 5448 AKA' and RFC 4187 EAP-AKA have been | what parameters EAP-AKA' exports out of the method. Section 7 | |||
made in this specification. Appendix D explains some of the design | explains the security differences between EAP-AKA and EAP-AKA'. | |||
rationale for creating EAP-AKA' Finally, Appendix E provides test | Section 8 describes the IANA considerations and Appendix A and | |||
vectors. | Appendix B explains what updates to RFC 5448 EAP-AKA' and RFC 4187 | |||
EAP-AKA have been made in this specification. Appendix D explains | ||||
some of the design rationale for creating EAP-AKA' Finally, | ||||
Appendix E provides test 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] | normative references [TS-3GPP.24.302] and [TS-3GPP.33.501] | |||
reaching a stable status for Release 15, as indicated by 3GPP. | reaching a stable status for Release 15, as indicated by 3GPP. | |||
This is expected to happen shortly. The RFC Editor should check | This is expected to happen shortly. The RFC Editor should check | |||
with the 3GPP liaisons that this has happened. RFC Editor: Please | with the 3GPP liaisons that this has happened. RFC Editor: Please | |||
delete this note upon publication of this specification as an RFC. | delete this note upon publication of this specification as an RFC. | |||
2. Requirements Language | 2. Requirements Language | |||
skipping to change at page 6, line 44 ¶ | skipping to change at page 7, line 44 ¶ | |||
| the network name from AT_KDF_INPUT attribute is | | | | the network name from AT_KDF_INPUT attribute is | | | |||
| used in running the AKA' algorithms, verifying AUTN | | | | used in running the AKA' algorithms, verifying AUTN | | | |||
| from AT_AUTN and MAC from AT_MAC attributes. The | | | | from AT_AUTN and MAC from AT_MAC attributes. The | | | |||
| peer then generates RES. The peer also derives | | | | peer then generates RES. The peer also derives | | | |||
| session keys from CK'/IK'. The AT_RES and AT_MAC | | | | session keys from CK'/IK'. The AT_RES and AT_MAC | | | |||
| attributes are constructed. | | | | attributes are constructed. | | | |||
+------------------------------------------------------+ | | +------------------------------------------------------+ | | |||
| EAP-Response/AKA'-Challenge | | | EAP-Response/AKA'-Challenge | | |||
| (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 International Mobile Subscriber Identifier (IMSI) based | |||
usernames. EAP-AKA' MUST use the leading character "6" (ASCII 36 | usernames. EAP-AKA' MUST use the leading character "6" (ASCII 36 | |||
skipping to change at page 8, line 33 ¶ | skipping to change at page 9, line 33 ¶ | |||
the peer over EAP-AKA'. The value of the AT_KDF_INPUT attribute from | the peer over EAP-AKA'. The value of the AT_KDF_INPUT attribute from | |||
the server MUST be non-empty. If it is empty, the peer behaves as if | the server MUST be non-empty. If it is empty, the peer behaves as if | |||
AUTN had been incorrect and authentication fails. See Section 3 and | AUTN had been incorrect and authentication fails. See Section 3 and | |||
Figure 3 of [RFC4187] for an overview of how authentication failures | Figure 3 of [RFC4187] for an overview of how authentication failures | |||
are handled. | are handled. | |||
Note: Currently, [TS-3GPP.24.302] or [TS-3GPP.33.501] specify | Note: Currently, [TS-3GPP.24.302] or [TS-3GPP.33.501] specify | |||
separate values. The former specifies what is called "Access | separate values. The former specifies what is called "Access | |||
Network ID" and the latter specifies what is called "Serving | Network ID" and the latter specifies what is called "Serving | |||
Network Name". However, from an EAP-AKA' perspective both occupy | Network Name". However, from an EAP-AKA' perspective both occupy | |||
the same field, and need to be distinghuishable from each other. | the same field, and need to be distinguishable from each other. | |||
Currently specified values are distinguishable, but it would be | Currently specified values are distinguishable, but it would be | |||
useful that this be specified explicitly in the 3GPP | useful that this be specified explicitly in the 3GPP | |||
specifications. | specifications. | |||
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 | |||
skipping to change at page 16, line 35 ¶ | skipping to change at page 17, line 35 ¶ | |||
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 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, 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. Identifier Usage in 5G | 5. Peer Identities | |||
EAP-AKA' peer identities are as specified in [RFC4187] Section 4.1, | ||||
with the addition of some requirements specified in this section. | ||||
EAP-AKA' includes optional identity privacy support that can be used | ||||
to hide the cleartext permanent identity and thereby make the | ||||
subscriber's EAP exchanges untraceable to eavesdroppers. EAP-AKA' | ||||
can also use the privacy friendly identifiers specified for 5G | ||||
networks. | ||||
The permanent identity is usually based on the IMSI, which may | ||||
further help the tracking, because the same identifier may be used in | ||||
other contexts as well. Identity privacy is based on temporary | ||||
usernames, or pseudonym usernames. These are similar to but separate | ||||
from the Temporary Mobile Subscriber Identities (TMSI) that are used | ||||
on cellular networks. | ||||
5.1. Username Types in EAP-AKA' Identities | ||||
Section 4.1.1.3 of [RFC4187] specified that there are three types of | ||||
usernames: permanent, pseudonym, and fast re-authentication | ||||
usernames. This specification extends this definition as follows. | ||||
There are four types of usernames: | ||||
(1) Regular usernames. These are external names given to EAP- | ||||
AKA'. The regular usernames are further subdivided into to | ||||
categories: | ||||
(a) Permanent usernames, for instance IMSI-based usernames. | ||||
(b) Privacy-friendly temporary usernames, for instance 5G | ||||
privacy identifiers (see Section 5.3.2 and Section 5.3.2.1. | ||||
(2) EAP-AKA' pseudonym usernames. For example, | ||||
2s7ah6n9q@example.com might be a valid pseudonym identity. In | ||||
this example, 2s7ah6n9q is the pseudonym username. | ||||
(3) EAP-AKA' fast re-authentication usernames. For example, | ||||
43953754@example.com might be a valid fast re-authentication | ||||
identity and 43953754 the fast re-authentication username. | ||||
The permanent, privacy-friendly temporary, and pseudonym usernames | ||||
are only used on full authentication, and fast re-authentication | ||||
usernames only on fast re-authentication. Unlike permanent usernames | ||||
and pseudonym usernames, privacy friendly temporary usernames and | ||||
fast re-authentication usernames are one-time identifiers, which are | ||||
not re-used across EAP exchanges. | ||||
5.2. Generating Pseudonyms and Fast Re-Authentication Identities | ||||
As specified by [RFC4187] Section 4.1.1.7, pseudonym usernames and | ||||
fast re-authentication identities are generated by the EAP server, in | ||||
an implementation-dependent manner. RFC 4187 provides some general | ||||
requirements on how these identities are transported, how they map to | ||||
the NAI syntax, how they are distinguished from each other, and so | ||||
on. | ||||
However, to ensure privacy some additional requirements need to be | ||||
applied. | ||||
The pseudonym usernames and fast re-authentication identities MUST be | ||||
generated in a cryptographically secure way so that that it is | ||||
computationally infeasible for at attacker to differentiate two | ||||
identities belonging to the same user from two identities belonging | ||||
to different users. This can be achieved, for instance, by using | ||||
random or pseudo-random identifiers such as random byte strings or | ||||
ciphertexts. | ||||
Note that the pseudonym and fast re-authentication usernames also | ||||
MUST NOT include substrings that can be used to relate the username | ||||
to a particular entity or a particular permanent identity. For | ||||
instance, the usernames can not include any subscriber-identifying | ||||
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 | ||||
across multiple different pseudonyms or fast re-authentication | ||||
identities for the same subscriber. | ||||
When the identifier used to identify a subscriber in an EAP-AKA' | ||||
authentication exchange is a privacy-friendly identifier that is used | ||||
only once, the EAP-AKA' peer MUST NOT use a pseudonym provided in | ||||
that authentication exchange in subsequent exchanges more than once. | ||||
To ensure that this does not happen, EAP-AKA' server MAY decline to | ||||
provide a pseudonym in such authentication exchanges. An important | ||||
case where such privacy-friendly identifiers are used is in 5G | ||||
networks (see Section 5.3) | ||||
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 | o 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 | o 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 | o 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/AKA- | |||
Identity message; and the peer includes the AT_IDENTITY attribute, | Identity message; and the peer includes the AT_IDENTITY attribute, | |||
which contains the peer's identity, in the EAP-Response/AKA- | which contains the peer's identity, in the EAP-Response/AKA- | |||
Identity message. | Identity message. | |||
The identity carried above may be a permanent identity or a pseudonym | The identity carried above may be a permanent identity, privacy | |||
identity or fast re-authentication identity as defined in this RFC. | friendly identity, pseudonym identity, or fast re-authentication | |||
identity as defined in this RFC. | ||||
In networks where EAP is the only part handling such pseudonym or | 5G supports the concept of privacy identifiers, and it is important | |||
fast re-authentication identities, this usage is clear. However, 5G | for interoperability that the right type of identifier is used. | |||
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 | 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]. SUPI is globally unique and allocated to each | [TS-3GPP.33.501] [TS-3GPP.23.003]. SUPI is globally unique and | |||
subscriber. However, it is only used internally in the 5G network, | allocated to each subscriber. However, it is only used internally in | |||
and is privacy sensitive. The SUCI is a privacy preserving | the 5G network, and is privacy sensitive. The SUCI is a privacy | |||
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, two areas | Given the choice between these two types of identifiers, two areas | |||
need further specification in EAP-AKA' to ensure that different | need further specification in EAP-AKA' to ensure that different | |||
implementations understand each other and stay interoperable: | implementations understand each other and stay interoperable: | |||
o Where identifiers are used within EAP-AKA' -- such as key | o Where identifiers are used within EAP-AKA' -- such as key | |||
derivation -- specify what values exactly should be used, to avoid | derivation -- specify what values exactly should be used, to avoid | |||
ambiguity. | ambiguity. | |||
skipping to change at page 17, line 45 ¶ | skipping to change at page 20, line 34 ¶ | |||
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.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 Section 3.3 key | |||
derivation formula. | derivation formula. | |||
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 the 5G SUPI for the peer. This rule applies to all full EAP- | MUST be the 5G SUPI for the peer. This rule applies to all full EAP- | |||
AKA' authentication processes, even if the peer sent some other | AKA' authentication processes, even if the peer sent some other | |||
identifier at a lower layer or as a response to an EAP Identity | identifier at a lower layer or as a response to an EAP Identity | |||
Request or if no identity was sent. | Request or if no identity was sent. | |||
The identity MUST also be represented in the exact correct format for | ||||
the key derivation formula to produce correct results. For the SUPI, | ||||
this format is as defined Section 5.3.1.1. | ||||
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 EAP-AKA' AT_IDENTITY attribute, if one was sent, | |||
regardless of the kind of identity that it may have been. If no | 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 | AT_IDENTITY was sent, the identity MUST be the exactly the one | |||
sent in the generic EAP Identity exchange, if one was made. | sent in the generic EAP Identity exchange, if one was made. | |||
Again, the identity MUST be used exactly as sent. | Again, the identity MUST be used exactly as sent. | |||
If no identity was communicated inside EAP, then the identity is | If no identity was communicated inside EAP, then the identity is | |||
the one communicated outside EAP in link layer messaging. | 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 recently | |||
communicated by the peer to the network, again regardless of what | communicated by the peer to the network, again regardless of what | |||
type of identity it may have been. | type of identity it may have been. | |||
5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute | 5.3.1.1. Format of the SUPI | |||
A SUPI is either an IMSI or a Network Access Identifier [RFC4282]. | ||||
The NAI string MUST be directly used in key derivation, and for IMSI, | ||||
the following string MUST be used: | ||||
o Three ASCII digits to represent the Mobile Country Code (MCC). | ||||
o Three ASCII digits to represent the Mobile Network Code (MNC). If | ||||
there are only 2 significant digits in the MNC, one "0" digit | ||||
shall be inserted at the left side to fill the 3 digits coding of | ||||
MNC. | ||||
o ASCII digits to represent the rest of the IMSI. | ||||
The component values are specified in more detail in | ||||
[TS-3GPP.23.003]. Note that no prefix ("0" or "6") in front of the | ||||
entire IMSI is used in the IMSI when used in the key derivation | ||||
function in 5G. | ||||
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 peer is connecting to a 5G access network and uses the | When the EAP peer is connecting to a 5G access network and uses the | |||
5G core network signalling mechanisms, it can assume that the EAP | 5G Non-Access Stratum (NAS) protocol [TS-3GPP.24.501], the EAP server | |||
server is in a 5G network. The EAP level identity exchanges are not | is in a 5G network. The EAP identity exchanges are generally not | |||
generally used in this case, but if there is, the EAP peer SHOULD | used in this case, as the identity is already made available on | |||
employ only the privacy preserving SUCI identifier within EAP (either | previous link layer exchanges. | |||
in EAP Identity Response or EAP-AKA' AT_IDENTITY attribute). | ||||
Similarly, if the peer is explicitly communicating through mechanisms | In this situation, the EAP server SHOULD NOT request an additional | |||
developed for 5G to connect to 5G networks over WLAN, it MUST assume | identity from the peer. If the peer for some reason receives EAP- | |||
that the EAP server is in a 5G network, and again employ the SUCI | Request/Identity or EAP-Request/AKA-Identity messages, the peer | |||
within EAP. | should behave as follows. | |||
Receive EAP-Request/Identity | ||||
In this case, the peer SHOULD respond with a EAP-Response/Identity | ||||
containing the privacy-friendly 5G identifier, the SUCI. The SUCI | ||||
SHOULD be represented as specified in Section 5.3.2.1. | ||||
EAP-Request/AKA-Identity with AT_PERMANENT_REQ | ||||
For privacy reasons, the peer should follow a "conservative" | ||||
policy and terminate the authentication exchange rather than risk | ||||
revaling its permanent identity. | ||||
The peer SHOULD respond with EAP-Response/AKA-Client-Error with | ||||
the client error code 0, "unable to process packet". | ||||
EAP-Request/AKA-Identity with AT_FULLAUTH_REQ | ||||
In this case, the peer SHOULD respond with a EAP-Response/AKA- | ||||
Identity containing the SUCI. The SUCI SHOULD be represented as | ||||
specified in Section 5.3.2.1. | ||||
EAP-Request/AKA-Identity with AT_ANY_ID_REQ | ||||
If the peer supports fast re-authentication and has a fast re- | ||||
authentication identity available, the peer SHOULD respond with | ||||
EAP-Response/AKA-Identity containing the fast re-authentication | ||||
identity. Otherwise the peer SHOULD respond with a EAP-Response/ | ||||
AKA-Identity containing the SUCI, and SHOULD represent the SUCI as | ||||
specified in Section 5.3.2.1. | ||||
Similarly, if the peer is communicating over a non-3GPP network but | ||||
carrying EAP inside 5G NAS protocol, 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, SUPI, or a NAI as it is | Otherwise, the peer SHOULD employ IMSI, SUPI, or a NAI as it is | |||
configured to use. | configured to use. | |||
5.3.2.1. Format of the SUCI | ||||
The SUCI format extends the format specified in [RFC4187] | ||||
Section 4.1.1.6 for IMSIs. | ||||
A SUCI SHOULD be represented by an ASCII string containing the | ||||
following components in sequence: | ||||
o A leading "6" | ||||
o Three ASCII digits to represent the Mobile Country Code (MCC). | ||||
o Three ASCII digits to represent the Mobile Network Code (MNC). If | ||||
there are only 2 significant digits in the MNC, one "0" digit | ||||
shall be inserted at the left side to fill the 3 digits coding of | ||||
MNC. | ||||
o Four ASCII digits to represent a routing indicator. | ||||
o One hex character ("0" through "9" and "a" through "f") to | ||||
represent the protection profile. | ||||
o Hex characters representing Home Network Public Key Identifier | ||||
(HNPKI). The number of hex characters needed for this depends on | ||||
the protection profile. | ||||
o Hex characters representing the encrypted identity. The number of | ||||
hex characters depends on the protection profile and identity | ||||
being encrypted. | ||||
The component values are specified in more detail in | ||||
[TS-3GPP.23.003]. | ||||
6. Exported Parameters | 6. Exported Parameters | |||
The EAP-AKA' Session-Id is the concatenation of the EAP Type Code | 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 | (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, followed by the contents of the AUTN field in the AT_AUTN | |||
attribute: | attribute: | |||
Session-Id = 50 || RAND || AUTN | Session-Id = 50 || 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 | |||
skipping to change at page 19, line 26 ¶ | skipping to change at page 24, line 5 ¶ | |||
NONCE_S field from the AT_NONCE_S attribute, followed by the contents | 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- | of the MAC field from the AT_MAC attribute from EAP-Request/AKA- | |||
Reauthentication: | Reauthentication: | |||
Session-Id = 50 || NONCE_S || MAC | Session-Id = 50 || 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 octets | AT_IDENTITY attribute, using only the Actual Identity Length octets | |||
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. The | permanent, pseudonym, or fast EAP re-authentication identity. If no | |||
Server-Id is the null string (zero length). | AT_IDENTITY attribute was exchanged, the exported Peer-Id is the | |||
identity provided from the EAP Identity Response packet. If no EAP | ||||
Identity Response was provided either, the exported Peer-Id is 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 | 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 | |||
skipping to change at page 20, line 49 ¶ | skipping to change at page 25, line 35 ¶ | |||
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 7.1. | This is discussed further in Section 7.4. | |||
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 22, line 10 ¶ | skipping to change at page 26, line 44 ¶ | |||
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 | |||
the following section for more discussion. | Section 7.4 for more discussion. | |||
7.1. Security Properties of Binding Network Names | 7.1. Privacy | |||
[RFC6973] suggests that the privacy considerations of IETF protocols | ||||
be documented. | ||||
The confidentiality properties of EAP-AKA' itself have been discussed | ||||
above under "Confidentiality". | ||||
EAP-AKA' uses several different types of identifiers to identify the | ||||
authenticating peer. It is strongly RECOMMENDED to use the privacy- | ||||
friendly temporary or hidden identifiers, i.e., the 5G SUCI, | ||||
pseudonym usernames, and fast re-authentication usernames. The use | ||||
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 | ||||
use of permanent identifiers such as the IMSI or SUPI is strongly NOT | ||||
RECOMMENDED. | ||||
As discussed in Section 5.3, when authenticating to a 5G network, | ||||
only the 5G SUCI identifier should be used. The use of pseudonyms in | ||||
this situation is at best limited. In fact, the re-use of the same | ||||
pseudonym multiple times will result in a tracking opportunity for | ||||
observers that see the pseudonym pass by. To avoid this, the peer | ||||
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- | ||||
AKA' peer and server need employ permanent identifier, SUPI, as an | ||||
input to key generation. However, this use of the SUPI is only | ||||
internal and the SUPI need not be communicated in EAP messages. SUCI | ||||
MUST NOT be communicated in EAP-AKA' when authenticating to a 5G | ||||
network. | ||||
While the use of SUCI in 5G networks generally provides identity | ||||
privacy, this is not true if the null-scheme encryption is used to | ||||
construct the SUCI (see [TS-3GPP.23.501] Annex C). The use of this | ||||
scheme turns the use of SUCI equivalent to the use of SUPI or IMSI. | ||||
The use of the null scheme is NOT RECOMMENDED where identity privacy | ||||
is important. | ||||
The use of fast re-authentication identities when authenticating to a | ||||
5G network does not have the same problems as the use of pseudonyms, | ||||
as long as the 5G authentication server generates the fast re- | ||||
authentication identifiers in a proper manner specified in | ||||
Section 5.2. | ||||
Outside 5G, there is a full choice to use permanent, pseudonym, or | ||||
fast re-authentication identifiers: | ||||
o 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 | ||||
pseudonym available, then the privacy mechanism cannot be used, | ||||
and the permanent identity will have to be sent in the clear. | ||||
The terminal SHOULD store the pseudonym in non-volatile memory so | ||||
that it can be maintained across reboots. An active attacker that | ||||
impersonates the network may use the AT_PERMANENT_ID_REQ attribute | ||||
([RFC4187] Section 4.1.2) to learn the subscriber's IMSI. | ||||
However, as discussed in [RFC4187] Section 4.1.2, the terminal can | ||||
refuse to send the cleartext permanent identity if it believes | ||||
that the network should be able to recognize the pseudonym. | ||||
o When pseudonyms and fast re-authentication identities are used, | ||||
the peer relies on the properly created identifiers by the server. | ||||
It is essential that an attacker cannot link a privacy-friendly | ||||
identifier to the user in any way or determine that two | ||||
identifiers belong to the same user as outlined in Section 5.2. | ||||
The pseudonym usernames and fast re-authentication identities MUST | ||||
also not be used for other purposes (e.g. in other protocols). | ||||
If the peer and server cannot guarantee that 5G SUCI can be used or | ||||
pseudonyms will available, generated properly, and maintained | ||||
reliably, and identity privacy is required then additional protection | ||||
from an external security mechanism such as tunneled EAP methods may | ||||
be 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 | ||||
identifiers or EAP tunneling is used, typically the domain part of an | ||||
identifier (e.g., the home operator) is visible to external parties. | ||||
7.2. Discovered Vulnerabilities | ||||
There have been no published attacks that violate the primary secrecy | ||||
or authentication properties defined for the anticipated | ||||
Authentication and Key Agreement (AKA) under the originally assumed | ||||
trust model. The same is true of EAP-AKA'. | ||||
However, there have been attacks when a different trust model is in | ||||
use, with characteristics not originally provided by the design, or | ||||
when participants in the protocol leak information to outsiders on | ||||
purpose, and there has been some privacy-related attacks. | ||||
For instance, the original AKA protocol does not prevent supplying | ||||
keys by an insider to a third party as done in, e.g., by Mjolsnes and | ||||
Tsay in [MT2012] where a serving network lets an authentication run | ||||
succeed, but then misuses the session keys to send traffic on the | ||||
authenticated user's behalf. This particular attack is not different | ||||
from any on-path entity (such as a router) pretending to send | ||||
traffic, but the general issue of insider attacks can be a problem, | ||||
particularly in a large group of collaborating operators. | ||||
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 | ||||
leverage security policy differences between different operator | ||||
networks, for instance. To gain something in such an attack, the | ||||
attacker needs to trick the user into believing it is in another | ||||
location where, for instance, it is not required to encrypt all | ||||
payload traffic after encryption. As an authentication mechanism, | ||||
EAP-AKA' is not directly affected by most such attacks. EAP-AKA' | ||||
network name binding can also help alleviate some of the attacks. In | ||||
any case, it is RECOMMENDED that EAP-AKA' configuration not be | ||||
dependent on the location of where a request comes from. | ||||
Zhang and Fang also looked at Denial-of-Service attacks [ZF2005]. A | ||||
serving network may request large numbers of authentication runs for | ||||
a particular subscriber from a home network. While resynchronization | ||||
process can help recover from this, eventually it is possible to | ||||
exhaust the sequence number space and render the subscriber's card | ||||
unusable. This attack is possible for both native AKA and EAP-AKA'. | ||||
However, it requires the collaboration of a serving network in an | ||||
attack. It is recommended that EAP-AKA' implementations provide | ||||
means to track, detect, and limit excessive authentication attempts | ||||
to combat this problem. | ||||
There has also been attacks related to the use of AKA without the | ||||
generated session keys (e.g., [BT2013]). Some of those attacks | ||||
relate to the use of originally man-in-the-middle vulnerable HTTP | ||||
Digest AKAv1 [RFC3310]. This has since then been corrected in | ||||
[RFC4169]. The EAP-AKA' protocol uses session keys and provides | ||||
channel binding, and as such, is resistant to the above attacks | ||||
except where the protocol participants leak information to outsiders. | ||||
Basin et al [Basin2018] have performed formal analysis and concluded | ||||
that the AKA protocol would have benefited from additional security | ||||
requirements, such as key confirmation. | ||||
In the context of pervasive monitoring revelations, there were also | ||||
reports of compromised long term pre-shared keys used in SIM and AKA | ||||
[Heist2015]. While no protocol can survive the theft of key material | ||||
associated with its credentials, there are some things that alleviate | ||||
the impacts in such situations. These are discussed further in | ||||
Section 7.3. | ||||
Arapinis et al ([Arapinis2012]) describe an attack that uses the AKA | ||||
resynchronization protocol to attempt to detect whether a particular | ||||
subscriber is on a given area. This attack depends on the ability of | ||||
the attacker to have a false base station on the given area, and the | ||||
subscriber performing at least one authentication between the time | ||||
the attack is set up and run. | ||||
Finally, while this is not a problem with the protocol itself, bad | ||||
implementations may not produce pseudonym usernames or fast re- | ||||
authentication identities in a manner that is sufficiently secure. | ||||
Recommendations from Section 5.2 need to be followed to avoid this. | ||||
7.3. Pervasive Monitoring | ||||
As required by [RFC7258], work on IETF protocols needs to consider | ||||
the effects of pervasive monitoring and mitigate them when possible. | ||||
As described Section 7.2, after the publication of RFC 5448, new | ||||
information has come to light regarding the use of pervasive | ||||
monitoring techniques against many security technologies, including | ||||
AKA-based authentication. | ||||
For AKA, these attacks relate to theft of the long-term shared secret | ||||
key material stored on the cards. Such attacks are conceivable, for | ||||
instance, during the manufacturing process of cards, through coercion | ||||
of the card manufacturers, or during the transfer of cards and | ||||
associated information to an operator. Since the publication of | ||||
reports about such attacks, manufacturing and provisioning processes | ||||
have gained much scrutiny and have improved. | ||||
In particular, it is crucial that manufacturers limit access to the | ||||
secret information and the cards only to necessary systems and | ||||
personnel. It is also crucial that secure mechanisms be used to | ||||
communicate the secrets between the manufacturer and the operator | ||||
that adopts those cards for their customers. | ||||
Beyond these operational considerations, there are also technical | ||||
means to improve resistance to these attacks. One approach is to | ||||
provide Perfect Forwards Secrecy (PFS). This would prevent any | ||||
passive attacks merely based on the long-term secrets and observation | ||||
of traffic. Such a mechanism can be defined as an backwards- | ||||
compatible extension of EAP-AKA', and is pursued separately from this | ||||
specification [I-D.arkko-eap-aka-pfs]. Alternatively, EAP-AKA' | ||||
authentication can be run inside a PFS-capable tunneled | ||||
authentication method. In any case, the use of some PFS-capable | ||||
mechanism is RECOMMENDED. | ||||
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 | |||
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 24, line 6 ¶ | skipping to change at page 32, line 44 ¶ | |||
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 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 [RFC8126]. | Specification Required policy [RFC8126]. | |||
Value Description Reference | Value Description Reference | |||
--------- ---------------------- --------------- | --------- ---------------------- ------------------------------- | |||
0 Reserved [RFC 5448] | 0 Reserved [RFC Editor: Refer to this RFC] | |||
1 EAP-AKA' with CK'/IK' [RFC 5448] | 1 EAP-AKA' with CK'/IK' [RFC Editor: Refer to this RFC] | |||
2-65535 Unassigned | 2-65535 Unassigned | |||
9. Contributors | 9. References | |||
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. | ||||
10. Acknowledgments | ||||
The authors would like to thank Guenther Horn, Joe Salowey, Mats | ||||
Naslund, Adrian Escott, Brian Rosenberg, Laksminath Dondeti, Ahmad | ||||
Muhanna, Stefan Rommer, Miguel Garcia, Jan Kall, Ankur Agarwal, Jouni | ||||
Malinen, Brian Weis, Russ Housley, Alfred Hoenes, Vesa Torvinen, | ||||
Anand Palanigounder, and Mohit Sethi for their in-depth reviews and | ||||
interesting discussions in this problem space. | ||||
11. References | 9.1. Normative References | |||
11.1. Normative References | [TS-3GPP.23.003] | |||
3GPP, "3rd Generation Partnership Project; Technical | ||||
Specification Group Core Network and Terminals; Numbering, | ||||
addressing and identification (Release 15)", 3GPP Draft | ||||
Technical Specification 23.003, June 2018. | ||||
[TS-3GPP.23.501] | [TS-3GPP.23.501] | |||
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; Security architecture and procedures for 5G | Security; Security architecture and procedures for 5G | |||
System; (Release 15)", 3GPP Technical Specification | System; (Release 15)", 3GPP Technical Specification | |||
23.501, December 2017. | 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, June 2018. | Specification 24.302, June 2018. | |||
[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 15)", 3GPP Draft Technical | ||||
Specification 24.501, June 2018. | ||||
[TS-3GPP.33.102] | [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; Security architecture (Release 15)", 3GPP Draft | Security; Security architecture (Release 15)", 3GPP Draft | |||
Technical Specification 33.102, June 2018. | Technical Specification 33.102, June 2018. | |||
[TS-3GPP.33.402] | [TS-3GPP.33.402] | |||
3GPP, "3GPP System Architecture Evolution (SAE); Security | 3GPP, "3GPP System Architecture Evolution (SAE); Security | |||
aspects of non-3GPP accesses (Release 15)", 3GPP Draft | aspects of non-3GPP accesses (Release 15)", 3GPP Draft | |||
Technical Specification 33.402, June 2018. | Technical Specification 33.402, June 2018. | |||
skipping to change at page 25, line 43 ¶ | skipping to change at page 34, line 31 ¶ | |||
[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>. | |||
[RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The | ||||
Network Access Identifier", RFC 4282, | ||||
DOI 10.17487/RFC4282, December 2005, <https://www.rfc- | ||||
editor.org/info/rfc4282>. | ||||
[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>. | |||
11.2. Informative References | 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 15)", 3GPP Draft | ||||
Technical Specification 23.003, June 2018. | ||||
[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 | |||
Security; Specification of the MILENAGE Algorithm Set: An | Security; Specification of the MILENAGE Algorithm Set: An | |||
example algorithm set for the 3GPP authentication and key | example algorithm set for the 3GPP authentication and key | |||
generation functions f1, f1*, f2, f3, f4, f5 and f5*; | generation functions f1, f1*, f2, f3, f4, f5 and f5*; | |||
Document 4: Design Conformance Test Data (Release 14)", | Document 4: Design Conformance Test Data (Release 14)", | |||
3GPP Technical Specification 35.208, March 2017. | 3GPP Technical Specification 35.208, March 2017. | |||
skipping to change at page 26, line 33 ¶ | skipping to change at page 35, line 25 ¶ | |||
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, April 1995, | |||
<http://www.itl.nist.gov/fipspubs/fip180-1.htm>. | <http://www.itl.nist.gov/fipspubs/fip180-1.htm>. | |||
[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/ | <http://csrc.nist.gov/publications/fips/fips180-2/ | |||
fips180-2.pdf>. | fips180-2.pdf>. | |||
[RFC3310] Niemi, A., Arkko, J., and V. Torvinen, "Hypertext Transfer | ||||
Protocol (HTTP) Digest Authentication Using Authentication | ||||
and Key Agreement (AKA)", RFC 3310, DOI 10.17487/RFC3310, | ||||
September 2002, <https://www.rfc-editor.org/info/rfc3310>. | ||||
[RFC4169] Torvinen, V., Arkko, J., and M. Naslund, "Hypertext | ||||
Transfer Protocol (HTTP) Digest Authentication Using | ||||
Authentication and Key Agreement (AKA) Version-2", | ||||
RFC 4169, DOI 10.17487/RFC4169, November 2005, | ||||
<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 | |||
(EAP-SIM)", RFC 4186, DOI 10.17487/RFC4186, January 2006, | (EAP-SIM)", RFC 4186, DOI 10.17487/RFC4186, January 2006, | |||
<https://www.rfc-editor.org/info/rfc4186>. | <https://www.rfc-editor.org/info/rfc4186>. | |||
[RFC4284] Adrangi, F., Lortz, V., Bari, F., and P. Eronen, "Identity | [RFC4284] Adrangi, F., Lortz, V., Bari, F., and P. Eronen, "Identity | |||
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>. | |||
skipping to change at page 27, line 21 ¶ | skipping to change at page 36, line 26 ¶ | |||
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>. | |||
[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>. | |||
[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., | ||||
Morris, J., Hansen, M., and R. Smith, "Privacy | ||||
Considerations for Internet Protocols", RFC 6973, | ||||
DOI 10.17487/RFC6973, July 2013, <https://www.rfc- | ||||
editor.org/info/rfc6973>. | ||||
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | ||||
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | ||||
2014, <https://www.rfc-editor.org/info/rfc7258>. | ||||
[I-D.arkko-eap-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-arkko-eap-aka-pfs-02 (work in progress), July 2018. | ||||
[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. | ||||
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 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. | Secondly, identifier usage for 5G has been specified in Section 5.3. | |||
Also, the requirements on generating pseudonym usernames and fast re- | ||||
authentication identities have been updated from the original | ||||
definition in RFC 5448, which referenced RFC 4187. See Section 5. | ||||
Thirdly, exported parameters for EAP-AKA' have been defined in | Thirdly, exported parameters for EAP-AKA' have been defined in | |||
Section 6, as required by [RFC5247], including the definition of | Section 6, as required by [RFC5247], including the definition of | |||
those parameters for both full authentication and fast re- | those parameters for both full authentication and fast re- | |||
authentication. | authentication. | |||
The security, privacy, and pervasive monitoring considerations have | ||||
been updated or added. See Section 7. | ||||
Finally, the references to [RFC2119], [RFC5226], [FIPS.180-1] and | Finally, the references to [RFC2119], [RFC5226], [FIPS.180-1] and | |||
[FIPS.180-2] have been updated to their most recent versions and | [FIPS.180-2] have been updated to their most recent versions and | |||
language in this document changed accordingly. Similarly, references | language in this document changed accordingly. Similarly, references | |||
to all 3GPP technical specifications have been updated to their 5G | to all 3GPP technical specifications have been updated to their 5G | |||
(Release 15) versions or otherwise most recent version when there has | (Release 15) versions or otherwise most recent version when there has | |||
not been a 5G-related update. | not been a 5G-related update. | |||
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 | |||
skipping to change at page 28, line 12 ¶ | skipping to change at page 38, line 20 ¶ | |||
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. Changes from Previous Version of This Draft | Appendix C. Changes from Previous Version of This Draft | |||
RFC Editor: Please delete this section at the time of publication. | RFC Editor: Please delete this section at the time of publication. | |||
The -00 version of the working group draft is merely a republication | The -00 version of the working group draft is merely a republication | |||
of an earlier individual draft. | of an earlier individual draft. | |||
The -01 version of the working group clarifies updates relationship | The -01 version of the working group draft clarifies updates | |||
to RFC 4187, clarifies language relating to obsoleting RFC 5448, | relationship to RFC 4187, clarifies language relating to obsoleting | |||
clarifies when the 3GPP references are expected to be stable, updates | RFC 5448, clarifies when the 3GPP references are expected to be | |||
several past references to their more recently published versions, | stable, updates several past references to their more recently | |||
specifies what identifiers should be used in key derivation formula | published versions, specifies what identifiers should be used in key | |||
for 5G, specifies how to construct the network name in manner that is | derivation formula for 5G, specifies how to construct the network | |||
compatible with both 5G and previous versions, and has some minor | name in manner that is compatible with both 5G and previous versions, | |||
editorial changes. | 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'. | ||||
Appendix D. Importance of Explicit Negotiation | Appendix D. 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 | |||
skipping to change at page 29, line 16 ¶ | skipping to change at page 39, line 38 ¶ | |||
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 E. 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, and is | |||
useful only for testing the computation of values within EAP-AKA', | useful only for testing the computation of values within EAP-AKA', | |||
not AKA itself. | 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 | |||
AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5 | AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5 | |||
IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a | IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a | |||
CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f | CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f | |||
RES: 28d7 b0f2 a2ec 3de5 | RES: 28d7 b0f2 a2ec 3de5 | |||
Then the derived keys are generated as follows: | Then the derived keys are generated as follows: | |||
CK': 0093 962d 0dd8 4aa5 684b 045c 9edf fa04 | CK': 0093 962d 0dd8 4aa5 684b 045c 9edf fa04 | |||
IK': ccfc 230c a74f cc96 c0a5 d611 64f5 a76c | IK': ccfc 230c a74f cc96 c0a5 d611 64f5 a76c | |||
K_encr: 766f a0a6 c317 174b 812d 52fb cd11 a179 | K_encr: 766f a0a6 c317 174b 812d 52fb cd11 a179 | |||
K_aut: 0842 ea72 2ff6 835b fa20 3249 9fc3 ec23 | K_aut: 0842 ea72 2ff6 835b fa20 3249 9fc3 ec23 | |||
c2f0 e388 b4f0 7543 ffc6 77f1 696d 71ea | c2f0 e388 b4f0 7543 ffc6 77f1 696d 71ea | |||
K_re: cf83 aa8b c7e0 aced 892a cc98 e76a 9b20 | K_re: cf83 aa8b c7e0 aced 892a cc98 e76a 9b20 | |||
95b5 58c7 795c 7094 715c b339 3aa7 d17a | 95b5 58c7 795c 7094 715c b339 3aa7 d17a | |||
MSK: 67c4 2d9a a56c 1b79 e295 e345 9fc3 d187 | MSK: 67c4 2d9a a56c 1b79 e295 e345 9fc3 d187 | |||
d42b e0bf 818d 3070 e362 c5e9 67a4 d544 | d42b e0bf 818d 3070 e362 c5e9 67a4 d544 | |||
e8ec fe19 358a b303 9aff 03b7 c930 588c | e8ec fe19 358a b303 9aff 03b7 c930 588c | |||
055b abee 58a0 2650 b067 ec4e 9347 c75a | 055b abee 58a0 2650 b067 ec4e 9347 c75a | |||
EMSK: f861 703c d775 590e 16c7 679e a387 4ada | EMSK: f861 703c d775 590e 16c7 679e a387 4ada | |||
8663 11de 2907 64d7 60cf 76df 647e a01c | 8663 11de 2907 64d7 60cf 76df 647e a01c | |||
313f 6992 4bdd 7650 ca9b ac14 1ea0 75c4 | 313f 6992 4bdd 7650 ca9b ac14 1ea0 75c4 | |||
ef9e 8029 c0e2 90cd bad5 638b 63bc 23fb | ef9e 8029 c0e2 90cd bad5 638b 63bc 23fb | |||
Case 2 | Case 2 | |||
The parameters for the AKA run are as follows: | The parameters for the AKA run are as follows: | |||
Identity: "0555444333222111" | Identity: "0555444333222111" | |||
Network name: "HRPD" | Network name: "HRPD" | |||
RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5 | RAND: 81e9 2b6c 0ee0 e12e bceb a8d9 2a99 dfa5 | |||
AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5 | AUTN: bb52 e91c 747a c3ab 2a5c 23d1 5ee3 51d5 | |||
IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a | IK: 9744 871a d32b f9bb d1dd 5ce5 4e3e 2e5a | |||
CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f | CK: 5349 fbe0 9864 9f94 8f5d 2e97 3a81 c00f | |||
RES: 28d7 b0f2 a2ec 3de5 | RES: 28d7 b0f2 a2ec 3de5 | |||
Then the derived keys are generated as follows: | Then the derived keys are generated as follows: | |||
CK': 3820 f027 7fa5 f777 32b1 fb1d 90c1 a0da | CK': 3820 f027 7fa5 f777 32b1 fb1d 90c1 a0da | |||
IK': db94 a0ab 557e f6c9 ab48 619c a05b 9a9f | IK': db94 a0ab 557e f6c9 ab48 619c a05b 9a9f | |||
K_encr: 05ad 73ac 915f ce89 ac77 e152 0d82 187b | K_encr: 05ad 73ac 915f ce89 ac77 e152 0d82 187b | |||
K_aut: 5b4a caef 62c6 ebb8 882b 2f3d 534c 4b35 | K_aut: 5b4a caef 62c6 ebb8 882b 2f3d 534c 4b35 | |||
2773 37a0 0184 f20f f25d 224c 04be 2afd | 2773 37a0 0184 f20f f25d 224c 04be 2afd | |||
K_re: 3f90 bf5c 6e5e f325 ff04 eb5e f653 9fa8 | K_re: 3f90 bf5c 6e5e f325 ff04 eb5e f653 9fa8 | |||
cca8 3981 94fb d00b e425 b3f4 0dba 10ac | cca8 3981 94fb d00b e425 b3f4 0dba 10ac | |||
MSK: 87b3 2157 0117 cd6c 95ab 6c43 6fb5 073f | MSK: 87b3 2157 0117 cd6c 95ab 6c43 6fb5 073f | |||
f15c f855 05d2 bc5b b735 5fc2 1ea8 a757 | f15c f855 05d2 bc5b b735 5fc2 1ea8 a757 | |||
57e8 f86a 2b13 8002 e057 5291 3bb4 3b82 | 57e8 f86a 2b13 8002 e057 5291 3bb4 3b82 | |||
f868 a961 17e9 1a2d 95f5 2667 7d57 2900 | f868 a961 17e9 1a2d 95f5 2667 7d57 2900 | |||
EMSK: c891 d5f2 0f14 8a10 0755 3e2d ea55 5c9c | EMSK: c891 d5f2 0f14 8a10 0755 3e2d ea55 5c9c | |||
b672 e967 5f4a 66b4 bafa 0273 79f9 3aee | b672 e967 5f4a 66b4 bafa 0273 79f9 3aee | |||
539a 5979 d0a0 042b 9d2a e28b ed3b 17a3 | 539a 5979 d0a0 042b 9d2a e28b ed3b 17a3 | |||
1dc8 ab75 072b 80bd 0c1d a612 466e 402c | 1dc8 ab75 072b 80bd 0c1d a612 466e 402c | |||
Case 3 | Case 3 | |||
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: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 | RAND: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 | |||
AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 | AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 | |||
IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 | IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 | |||
CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 | CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 | |||
RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 | RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 | |||
Then the derived keys are generated as follows: | Then the derived keys are generated as follows: | |||
CK': cd4c 8e5c 68f5 7dd1 d7d7 dfd0 c538 e577 | CK': cd4c 8e5c 68f5 7dd1 d7d7 dfd0 c538 e577 | |||
IK': 3ece 6b70 5dbb f7df c459 a112 80c6 5524 | IK': 3ece 6b70 5dbb f7df c459 a112 80c6 5524 | |||
K_encr: 897d 302f a284 7416 488c 28e2 0dcb 7be4 | K_encr: 897d 302f a284 7416 488c 28e2 0dcb 7be4 | |||
K_aut: c407 00e7 7224 83ae 3dc7 139e b0b8 8bb5 | K_aut: c407 00e7 7224 83ae 3dc7 139e b0b8 8bb5 | |||
58cb 3081 eccd 057f 9207 d128 6ee7 dd53 | 58cb 3081 eccd 057f 9207 d128 6ee7 dd53 | |||
K_re: 0a59 1a22 dd8b 5b1c f29e 3d50 8c91 dbbd | K_re: 0a59 1a22 dd8b 5b1c f29e 3d50 8c91 dbbd | |||
b4ae e230 5189 2c42 b6a2 de66 ea50 4473 | b4ae e230 5189 2c42 b6a2 de66 ea50 4473 | |||
MSK: 9f7d ca9e 37bb 2202 9ed9 86e7 cd09 d4a7 | MSK: 9f7d ca9e 37bb 2202 9ed9 86e7 cd09 d4a7 | |||
0d1a c76d 9553 5c5c ac40 a750 4699 bb89 | 0d1a c76d 9553 5c5c ac40 a750 4699 bb89 | |||
61a2 9ef6 f3e9 0f18 3de5 861a d1be dc81 | 61a2 9ef6 f3e9 0f18 3de5 861a d1be dc81 | |||
ce99 1639 1b40 1aa0 06c9 8785 a575 6df7 | ce99 1639 1b40 1aa0 06c9 8785 a575 6df7 | |||
EMSK: 724d e00b db9e 5681 87be 3fe7 4611 4557 | EMSK: 724d e00b db9e 5681 87be 3fe7 4611 4557 | |||
d501 8779 537e e37f 4d3c 6c73 8cb9 7b9d | d501 8779 537e e37f 4d3c 6c73 8cb9 7b9d | |||
c651 bc19 bfad c344 ffe2 b52c a78b d831 | c651 bc19 bfad c344 ffe2 b52c a78b d831 | |||
6b51 dacc 5f2b 1440 cb95 1552 1cc7 ba23 | 6b51 dacc 5f2b 1440 cb95 1552 1cc7 ba23 | |||
Case 4 | Case 4 | |||
The parameters for the AKA run are as follows: | The parameters for the AKA run are as follows: | |||
Identity: "0555444333222111" | Identity: "0555444333222111" | |||
Network name: "HRPD" | Network name: "HRPD" | |||
RAND: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 | RAND: e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 e0e0 | |||
AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 | AUTN: a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 a0a0 | |||
IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 | IK: b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 b0b0 | |||
CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 | CK: c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 c0c0 | |||
RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 | RES: d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 d0d0 | |||
Then the derived keys are generated as follows: | Then the derived keys are generated as follows: | |||
CK': 8310 a71c e6f7 5488 9613 da8f 64d5 fb46 | CK': 8310 a71c e6f7 5488 9613 da8f 64d5 fb46 | |||
IK': 5adf 1436 0ae8 3819 2db2 3f6f cb7f 8c76 | IK': 5adf 1436 0ae8 3819 2db2 3f6f cb7f 8c76 | |||
K_encr: 745e 7439 ba23 8f50 fcac 4d15 d47c d1d9 | K_encr: 745e 7439 ba23 8f50 fcac 4d15 d47c d1d9 | |||
K_aut: 3e1d 2aa4 e677 025c fd86 2a4b e183 61a1 | K_aut: 3e1d 2aa4 e677 025c fd86 2a4b e183 61a1 | |||
3a64 5765 5714 63df 833a 9759 e809 9879 | 3a64 5765 5714 63df 833a 9759 e809 9879 | |||
K_re: 99da 835e 2ae8 2462 576f e651 6fad 1f80 | K_re: 99da 835e 2ae8 2462 576f e651 6fad 1f80 | |||
2f0f a119 1655 dd0a 273d a96d 04e0 fcd3 | 2f0f a119 1655 dd0a 273d a96d 04e0 fcd3 | |||
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 | |||
Appendix F. 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. | ||||
Appendix G. Acknowledgments | ||||
The authors would like to thank Guenther Horn, Joe Salowey, Mats | ||||
Naslund, Adrian Escott, Brian Rosenberg, Laksminath Dondeti, Ahmad | ||||
Muhanna, Stefan Rommer, Miguel Garcia, Jan Kall, Ankur Agarwal, Jouni | ||||
Malinen, John Mattsson, Brian Weis, Russ Housley, Alfred Hoenes, | ||||
Anand Palanigounder, and Mohit Sethi for their in-depth reviews and | ||||
interesting discussions in this problem space. | ||||
Authors' Addresses | Authors' Addresses | |||
Jari Arkko | Jari Arkko | |||
Ericsson | Ericsson | |||
Jorvas 02420 | Jorvas 02420 | |||
Finland | Finland | |||
Email: jari.arkko@piuha.net | Email: jari.arkko@piuha.net | |||
Vesa Lehtovirta | Vesa Lehtovirta | |||
Ericsson | Ericsson | |||
Jorvas 02420 | Jorvas 02420 | |||
End of changes. 99 change blocks. | ||||
226 lines changed or deleted | 703 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |