draft-arkko-eap-rfc5448bis-01.txt   draft-arkko-eap-rfc5448bis.txt 
Network Working Group J. Arkko Network Working Group J. Arkko
Internet-Draft V. Lehtovirta Internet-Draft V. Lehtovirta
Obsoletes: 5448 (if approved) V. Torvinen Obsoletes: 5448 (if approved) V. Torvinen
Intended status: Informational Ericsson Updates: 4187 (if approved) Ericsson
Expires: September 6, 2018 P. Eronen Intended status: Informational P. Eronen
Nokia Expires: December 3, 2018 Nokia
March 5, 2018 June 2018
Improved Extensible Authentication Protocol Method for 3rd Generation Improved Extensible Authentication Protocol Method for 3rd Generation
Authentication and Key Agreement (EAP-AKA') Authentication and Key Agreement (EAP-AKA')
draft-arkko-eap-rfc5448bis-01 draft-ietf-emu-rfc5448bis-01
Abstract Abstract
This specification defines a new EAP method, EAP-AKA', a small This specification defines a new EAP method, EAP-AKA', a small
revision of the EAP-AKA method. The change is a new key derivation revision of the EAP-AKA method. The change is a new key derivation
function that binds the keys derived within the method to the name of function that binds the keys derived within the method to the name of
the access network. The new key derivation mechanism has been the access network. The new key derivation mechanism has been
defined in the 3rd Generation Partnership Project (3GPP). This defined in the 3rd Generation Partnership Project (3GPP). This
specification allows its use in EAP in an interoperable manner. In specification allows its use in EAP in an interoperable manner. In
addition, EAP-AKA' employs SHA-256 instead of SHA-1. addition, EAP-AKA' employs SHA-256 instead of SHA-1.
skipping to change at page 1, line 47 skipping to change at page 1, line 47
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 6, 2018. This Internet-Draft will expire on December 3, 2018.
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 29 skipping to change at page 2, line 29
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 . . . . . . . . . . . . . . . . . . . . . . 7
3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2. AT_KDF . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 11 3.3. Key Generation . . . . . . . . . . . . . . . . . . . . . 11
3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 13 3.4. Hash Functions . . . . . . . . . . . . . . . . . . . . . 13
3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4.1. PRF' . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 13 3.4.2. AT_MAC . . . . . . . . . . . . . . . . . . . . . . . 14
3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 14 3.4.3. AT_CHECKCODE . . . . . . . . . . . . . . . . . . . . 14
4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 14 4. Bidding Down Prevention for EAP-AKA . . . . . . . . . . . . . 15
5. Identifier Usage in 5G . . . . . . . . . . . . . . . . . . . 16 5. Identifier Usage in 5G . . . . . . . . . . . . . . . . . . . 16
5.1. Key Derivation . . . . . . . . . . . . . . . . . . . . . 17 5.1. Key Derivation . . . . . . . . . . . . . . . . . . . . . 17
5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute 17 5.2. EAP Identity Response and EAP-AKA' AT_IDENTITY Attribute 18
6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 18 6. Exported Parameters . . . . . . . . . . . . . . . . . . . . . 18
7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 7. Security Considerations . . . . . . . . . . . . . . . . . . . 19
7.1. Security Properties of Binding Network Names . . . . . . 21 7.1. Security Properties of Binding Network Names . . . . . . 21
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23
8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 22 8.1. Type Value . . . . . . . . . . . . . . . . . . . . . . . 23
8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 22 8.2. Attribute Type Values . . . . . . . . . . . . . . . . . . 23
8.3. Key Derivation Function Namespace . . . . . . . . . . . . 23 8.3. Key Derivation Function Namespace . . . . . . . . . . . . 23
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 23
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 23 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 24
11.1. Normative References . . . . . . . . . . . . . . . . . . 23 11.1. Normative References . . . . . . . . . . . . . . . . . . 24
11.2. Informative References . . . . . . . . . . . . . . . . . 25 11.2. Informative References . . . . . . . . . . . . . . . . . 25
Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 26 Appendix A. Changes from RFC 5448 . . . . . . . . . . . . . . . 27
Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 26 Appendix B. Changes from RFC 4187 to RFC 5448 . . . . . . . . . 27
Appendix C. Importance of Explicit Negotiation . . . . . . . . . 26 Appendix C. Changes from Previous Version of This Draft . . . . 27
Appendix D. Test Vectors . . . . . . . . . . . . . . . . . . . . 27 Appendix D. Importance of Explicit Negotiation . . . . . . . . . 28
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 Appendix E. Test Vectors . . . . . . . . . . . . . . . . . . . . 29
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33
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 35 skipping to change at page 3, line 36
change of the key derivation must be unambiguous to both sides in the change of the key derivation must be unambiguous to both sides in the
protocol. That is, it must not be possible to accidentally connect protocol. That is, it must not be possible to accidentally connect
old equipment to new equipment and get the key derivation wrong or old equipment to new equipment and get the key derivation wrong or
attempt to use wrong keys without getting a proper error message. attempt to use wrong keys without getting a proper error message.
The change must also be secure against bidding down attacks that The change must also be secure against bidding down attacks that
attempt to force the participants to use the least secure mechanism. attempt to force the participants to use the least secure mechanism.
This specification therefore introduces a variant of the EAP-AKA This specification therefore introduces a variant of the EAP-AKA
method, called EAP-AKA'. This method can employ the derived keys CK' method, called EAP-AKA'. This method can employ the derived keys CK'
and IK' from the 3GPP specification and updates the used hash and IK' from the 3GPP specification and updates the used hash
function to SHA-256 [FIPS.180-2.2002]. But it is otherwise function to SHA-256 [FIPS.180-4]. But it is otherwise equivalent to
equivalent to RFC 4187. Given that a different EAP method type value RFC 4187. Given that a different EAP method type value is used for
is used for EAP-AKA and EAP-AKA', a mutually supported method may be EAP-AKA and EAP-AKA', a mutually supported method may be negotiated
negotiated using the standard mechanisms in EAP [RFC3748]. using the standard mechanisms in EAP [RFC3748].
Note: Appendix C 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 is an update to RFC 5448. This version of the EAP-AKA' specification is obsoletes RFC 5448.
The update consists of three things: The changes consist of three things:
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 helps ensure that EAP-AKA' becomes
compatible with 5G deployments as well. RFC 5448 referred to the compatible with 5G deployments as well. RFC 5448 referred to the
2008 version of that reference ([TS-3GPP.24.302]) and this update Release 8 version of [TS-3GPP.24.302] and this update points to
points to the 5G version of that reference. the first 5G 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, as additional
identifiers are introduced, and for interoperability, it is identifiers are introduced, and for interoperability, it is
important that implementations use the right ones. important that implementations use the right ones.
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.
skipping to change at page 4, line 50 skipping to change at page 5, line 4
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 7 explains the
security differences between EAP-AKA and EAP-AKA'. Section 8 security differences between EAP-AKA and EAP-AKA'. Section 8
describes the IANA considerations and Appendix A and Appendix B describes the IANA considerations and Appendix A and Appendix B
explains what updates to RFC 5448 AKA' and RFC 4187 EAP-AKA have been explains what updates to RFC 5448 AKA' and RFC 4187 EAP-AKA have been
made in this specification. Appendix C explains some of the design made in this specification. Appendix D explains some of the design
rationale for creating EAP-AKA' Finally, Appendix D provides test rationale for creating EAP-AKA' Finally, Appendix E provides test
vectors. vectors.
Editor's Note: The publication of this RFC depends on its Editor's Note: The publication of this RFC depends on its
normative references [TS-3GPP.24.302] and [TS-3GPP.33.501] from normative references [TS-3GPP.24.302] and [TS-3GPP.33.501]
3GPP reaching their final Release 15 status at 3GPP. This is reaching a stable status for Release 15, as indicated by 3GPP.
expected to happen shortly. The RFC Editor should check with the This is expected to happen shortly. The RFC Editor should check
3GPP liaisons that this has happened. RFC Editor: Please delete with the 3GPP liaisons that this has happened. RFC Editor: Please
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
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
document are to be interpreted as described in [RFC2119]. "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
3. EAP-AKA' 3. EAP-AKA'
EAP-AKA' is a new EAP method that follows the EAP-AKA specification EAP-AKA' is a new EAP method that follows the EAP-AKA specification
[RFC4187] in all respects except the following: [RFC4187] in all respects except the following:
o It uses the Type code 50, not 23 (which is used by EAP-AKA). o It uses the Type code 50, not 23 (which is used by EAP-AKA).
o It carries the AT_KDF_INPUT attribute, as defined in Section 3.1, o It carries the AT_KDF_INPUT attribute, as defined in Section 3.1,
to ensure that both the peer and server know the name of the to ensure that both the peer and server know the name of the
access network. access network.
o It supports key derivation function negotiation via the AT_KDF o It supports key derivation function negotiation via the AT_KDF
attribute (Section 3.2) to allow for future extensions. attribute (Section 3.2) to allow for future extensions.
o It calculates keys as defined in Section 3.3, not as defined in o It calculates keys as defined in Section 3.3, not as defined in
EAP-AKA. EAP-AKA.
o It employs SHA-256 [FIPS.180-2.2002], not SHA-1 [FIPS.180-1.1995] o It employs SHA-256, not SHA-1 [FIPS.180-4] (Section 3.4).
(Section 3.4).
Figure 1 shows an example of the authentication process. Each Figure 1 shows an example of the authentication process. Each
message AKA'-Challenge and so on represents the corresponding message message AKA'-Challenge and so on represents the corresponding message
from EAP-AKA, but with EAP-AKA' Type code. The definition of these from EAP-AKA, but with EAP-AKA' Type code. The definition of these
messages, along with the definition of attributes AT_RAND, AT_AUTN, messages, along with the definition of attributes AT_RAND, AT_AUTN,
AT_MAC, and AT_RES can be found in [RFC4187]. AT_MAC, and AT_RES can be found in [RFC4187].
Peer Server Peer Server
| EAP-Request/Identity | | EAP-Request/Identity |
|<-------------------------------------------------------| |<-------------------------------------------------------|
skipping to change at page 11, line 34 skipping to change at page 12, line 5
AT_MAC had been incorrect and fail the authentication. AT_MAC had been incorrect and fail the authentication.
3.3. Key Generation 3.3. Key Generation
Both the peer and server MUST derive the keys as follows. Both the peer and server MUST derive the keys as follows.
AT_KDF set to 1 AT_KDF set to 1
In this case, MK is derived and used as follows: In this case, MK is derived and used as follows:
MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) MK = PRF'(IK'|CK',"EAP-AKA'"|Identity)
K_encr = MK[0..127] K_encr = MK[0..127]
K_aut = MK[128..383] K_aut = MK[128..383]
K_re = MK[384..639] K_re = MK[384..639]
MSK = MK[640..1151] MSK = MK[640..1151]
EMSK = MK[1152..1663] EMSK = MK[1152..1663]
Here [n..m] denotes the substring from bit n to m. PRF' is a new Here [n..m] denotes the substring from bit n to m. PRF' is a new
pseudo-random function specified in Section 3.4. The first 1664 pseudo-random function specified in Section 3.4. The first 1664
bits from its output are used for K_encr (encryption key, 128 bits from its output are used for K_encr (encryption key, 128
bits), K_aut (authentication key, 256 bits), K_re (re- bits), K_aut (authentication key, 256 bits), K_re (re-
authentication key, 256 bits), MSK (Master Session Key, 512 bits), authentication key, 256 bits), MSK (Master Session Key, 512 bits),
and EMSK (Extended Master Session Key, 512 bits). These keys are and EMSK (Extended Master Session Key, 512 bits). These keys are
used by the subsequent EAP-AKA' process. K_encr is used by the used by the subsequent EAP-AKA' process. K_encr is used by the
AT_ENCR_DATA attribute, and K_aut by the AT_MAC attribute. K_re AT_ENCR_DATA attribute, and K_aut by the AT_MAC attribute. K_re
is used later in this section. MSK and EMSK are outputs from a is used later in this section. MSK and EMSK are outputs from a
skipping to change at page 12, line 27 skipping to change at page 12, line 45
When the server creates an AKA challenge and corresponding AUTN, When the server creates an AKA challenge and corresponding AUTN,
CK, CK', IK, and IK' values, it MUST set the Authentication CK, CK', IK, and IK' values, it MUST set the Authentication
Management Field (AMF) separation bit to 1 in the AKA algorithm Management Field (AMF) separation bit to 1 in the AKA algorithm
[TS-3GPP.33.102]. Similarly, the peer MUST check that the AMF [TS-3GPP.33.102]. Similarly, the peer MUST check that the AMF
separation bit is set to 1. If the bit is not set to 1, the peer separation bit is set to 1. If the bit is not set to 1, the peer
behaves as if the AUTN had been incorrect and fails the behaves as if the AUTN had been incorrect and fails the
authentication. authentication.
On fast re-authentication, the following keys are calculated: On fast re-authentication, the following keys are calculated:
MK = PRF'(K_re,"EAP-AKA' re-auth"|Identity|counter|NONCE_S) MK = PRF'(K_re,"EAP-AKA' re-auth"|Identity|counter|NONCE_S)
MSK = MK[0..511] MSK = MK[0..511]
EMSK = MK[512..1023] EMSK = MK[512..1023]
MSK and EMSK are the resulting 512-bit keys, taking the first 1024 MSK and EMSK are the resulting 512-bit keys, taking the first 1024
bits from the result of PRF'. Note that K_encr and K_aut are not bits from the result of PRF'. Note that K_encr and K_aut are not
re-derived on fast re-authentication. K_re is the re- re-derived on fast re-authentication. K_re is the re-
authentication key from the preceding full authentication and authentication key from the preceding full authentication and
stays unchanged over any fast re-authentication(s) that may happen stays unchanged over any fast re-authentication(s) that may happen
based on it. The value "EAP-AKA' re-auth" is a sixteen- based on it. The value "EAP-AKA' re-auth" is a sixteen-
characters-long ASCII string, again represented without any characters-long ASCII string, again represented without any
trailing NUL characters. Identity is the fast re-authentication trailing NUL characters. Identity is the fast re-authentication
identity, counter is the value from the AT_COUNTER attribute, identity, counter is the value from the AT_COUNTER attribute,
skipping to change at page 13, line 26 skipping to change at page 13, line 45
The peer behaves as if the AUTN had been incorrect and MUST fail The peer behaves as if the AUTN had been incorrect and MUST fail
the authentication. the authentication.
If the peer supports a given key derivation function but is unwilling If the peer supports a given key derivation function but is unwilling
to perform it for policy reasons, it refuses to calculate the keys to perform it for policy reasons, it refuses to calculate the keys
and behaves as explained in Section 3.2. and behaves as explained in Section 3.2.
3.4. Hash Functions 3.4. Hash Functions
EAP-AKA' uses SHA-256 [FIPS.180-2.2002], not SHA-1 [FIPS.180-1.1995] EAP-AKA' uses SHA-256, not SHA-1 (see [FIPS.180-4]) as in EAP-AKA.
as in EAP-AKA. This requires a change to the pseudo-random function This requires a change to the pseudo-random function (PRF) as well as
(PRF) as well as the AT_MAC and AT_CHECKCODE attributes. the AT_MAC and AT_CHECKCODE attributes.
3.4.1. PRF' 3.4.1. PRF'
The PRF' construction is the same one IKEv2 uses (see Section 2.13 of The PRF' construction is the same one IKEv2 uses (see Section 2.13 of
[RFC4306]). The function takes two arguments. K is a 256-bit value [RFC4306]). The function takes two arguments. K is a 256-bit value
and S is an octet string of arbitrary length. PRF' is defined as and S is an octet string of arbitrary length. PRF' is defined as
follows: follows:
PRF'(K,S) = T1 | T2 | T3 | T4 | ... PRF'(K,S) = T1 | T2 | T3 | T4 | ...
skipping to change at page 14, line 30 skipping to change at page 15, line 4
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AT_CHECKCODE | Length | Reserved | | AT_CHECKCODE | Length | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| Checkcode (0 or 32 bytes) | | Checkcode (0 or 32 bytes) |
| | | |
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Second, the checkcode is a hash value, calculated with SHA-256 Second, the checkcode is a hash value, calculated with SHA-256
[FIPS.180-2.2002], over the data specified in Section 10.13 of [FIPS.180-4], over the data specified in Section 10.13 of [RFC4187].
[RFC4187].
4. Bidding Down Prevention for EAP-AKA 4. Bidding Down Prevention for EAP-AKA
As discussed in [RFC3748], negotiation of methods within EAP is As discussed in [RFC3748], negotiation of methods within EAP is
insecure. That is, a man-in-the-middle attacker may force the insecure. That is, a man-in-the-middle attacker may force the
endpoints to use a method that is not the strongest that they both endpoints to use a method that is not the strongest that they both
support. This is a problem, as we expect EAP-AKA and EAP-AKA' to be support. This is a problem, as we expect EAP-AKA and EAP-AKA' to be
negotiated via EAP. negotiated via EAP.
In order to prevent such attacks, this RFC specifies a new mechanism In order to prevent such attacks, this RFC specifies a new mechanism
skipping to change at page 17, line 17 skipping to change at page 17, line 37
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 propose one way of clarifying which The following sections propose one way of clarifying which
identifiers are used and how. However, other answers are also identifiers are used and how. However, other answers are also
possible (e.g., always use the permanent identity). Further possible (e.g., always use the permanent identity). Further
discussion on this point is welcome! discussion on this point is welcome!
TBD... needs an update per newest 3GPP TSes...
5.1. Key Derivation 5.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. The identity used in this formula MUST be derivation formula. The identity used in this formula MUST be
exactly the one sent in EAP-AKA' AT_IDENTITY attribute, if one was exactly the one sent in EAP-AKA' AT_IDENTITY attribute, if one was
sent, regardless of the kind of identity that it may have been. If sent, regardless of the kind of identity that it may have been. If
no AT_IDENTITY was sent, the identity MUST be the exactly the one no AT_IDENTITY was sent, the identity MUST be the exactly the one
sent in the generic EAP Identity exchange, if one was made. Again, sent in the generic EAP Identity exchange, if one was made. Again,
the identity MUST be used exactly as sent. the identity MUST be used exactly as sent.
skipping to change at page 18, line 24 skipping to change at page 18, line 44
other networks is for further discussion. Discussion of this topic other networks is for further discussion. Discussion of this topic
is again welcome! is again welcome!
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
concatenation of the EAP Type Code (50) with the contents of the concatenation of the EAP Type Code (50) with the contents of the
NONCE_S field from the AT_NONCE_S attribute, followed by the contents 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. The
Server-Id is the null string (zero length). Server-Id is the null string (zero length).
7. Security Considerations 7. Security Considerations
skipping to change at page 23, line 11 skipping to change at page 23, line 35
Finally, a new Attribute Type value (136) in the skippable range has Finally, a new Attribute Type value (136) in the skippable range has
been assigned for AT_BIDDING (Section 4). been assigned for AT_BIDDING (Section 4).
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 [RFC5226]. Specification Required policy [RFC8126].
Value Description Reference Value Description Reference
--------- ---------------------- --------------- --------- ---------------------- ---------------
0 Reserved [RFC 5448] 0 Reserved [RFC 5448]
1 EAP-AKA' with CK'/IK' [RFC 5448] 1 EAP-AKA' with CK'/IK' [RFC 5448]
2-65535 Unassigned 2-65535 Unassigned
9. Contributors 9. Contributors
The test vectors in Appendix C were provided by Yogendra Pal and The test vectors in Appendix C were provided by Yogendra Pal and
Jouni Malinen, based on two independent implementations of this Jouni Malinen, based on two independent implementations of this
specification. specification.
Jouni Malinen provided suggested text for Section 6. Jouni Malinen provided suggested text for Section 6.
skipping to change at page 23, line 52 skipping to change at page 24, line 30
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, September 2017. Specification 24.302, 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 8)", 3GPP Security; Security architecture (Release 15)", 3GPP Draft
Technical Specification 33.102, December 2008. 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 8", 3GPP Technical aspects of non-3GPP accesses (Release 15)", 3GPP Draft
Specification 33.402, December 2008. Technical Specification 33.402, June 2018.
[TS-3GPP.33.501] [TS-3GPP.33.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 33.501, System (Release 15)", 3GPP Draft Technical Specification
August 2017. 33.501, June 2018.
[FIPS.180-2.2002] [FIPS.180-4]
National Institute of Standards and Technology, "Secure National Institute of Standards and Technology, "Secure
Hash Standard", FIPS PUB 180-2, August 2002, <http:// Hash Standard", FIPS PUB 180-4, August 2015,
csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf>. <https://nvlpubs.nist.gov/nistpubs/FIPS/
NIST.FIPS.180-4.pdf>.
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
Hashing for Message Authentication", RFC 2104, DOI Hashing for Message Authentication", RFC 2104,
10.17487/RFC2104, February 1997, <https://www.rfc- DOI 10.17487/RFC2104, February 1997, <https://www.rfc-
editor.org/info/rfc2104>. editor.org/info/rfc2104>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/ Requirement Levels", BCP 14, RFC 2119,
RFC2119, March 1997, <https://www.rfc-editor.org/info/ DOI 10.17487/RFC2119, March 1997, <https://www.rfc-
rfc2119>. editor.org/info/rfc2119>.
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H. [RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
Levkowetz, Ed., "Extensible Authentication Protocol Levkowetz, Ed., "Extensible Authentication Protocol
(EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004, <https: (EAP)", RFC 3748, DOI 10.17487/RFC3748, June 2004,
//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>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
IANA Considerations Section in RFCs", RFC 5226, DOI Writing an IANA Considerations Section in RFCs", BCP 26,
10.17487/RFC5226, May 2008, <https://www.rfc-editor.org/ RFC 8126, DOI 10.17487/RFC8126, June 2017,
info/rfc5226>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
11.2. Informative References 11.2. Informative References
[TS-3GPP.23.003] [TS-3GPP.23.003]
3GPP, "3rd Generation Partnership Project; Technical 3GPP, "3rd Generation Partnership Project; Technical
Specification Group Core Network and Terminals; Numbering, Specification Group Core Network and Terminals; Numbering,
addressing and identification (Release 8)", 3GPP Technical addressing and identification (Release 15)", 3GPP Draft
Specification 23.003, December 2008. 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 8)", Document 4: Design Conformance Test Data (Release 14)",
3GPP Technical Specification 35.208, December 2008. 3GPP Technical Specification 35.208, March 2017.
[FIPS.180-1.1995] [FIPS.180-1]
National Institute of Standards and Technology, "Secure National Institute of Standards and Technology, "Secure
Hash Standard", FIPS PUB 180-1, April 1995, Hash Standard", FIPS PUB 180-1, April 1995,
<http://www.itl.nist.gov/fipspubs/fip180-1.htm>. <http://www.itl.nist.gov/fipspubs/fip180-1.htm>.
[FIPS.180-2]
National Institute of Standards and Technology, "Secure
Hash Standard", FIPS PUB 180-2, August 2002,
<http://csrc.nist.gov/publications/fips/fips180-2/
fips180-2.pdf>.
[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>.
[RFC4306] Kaufman, C., Ed., "Internet Key Exchange (IKEv2) [RFC4306] Kaufman, C., Ed., "Internet Key Exchange (IKEv2)
Protocol", RFC 4306, DOI 10.17487/RFC4306, December 2005, Protocol", RFC 4306, DOI 10.17487/RFC4306, December 2005,
<https://www.rfc-editor.org/info/rfc4306>. <https://www.rfc-editor.org/info/rfc4306>.
[RFC5113] Arkko, J., Aboba, B., Korhonen, J., Ed., and F. Bari, [RFC5113] Arkko, J., Aboba, B., Korhonen, J., Ed., and F. Bari,
"Network Discovery and Selection Problem", RFC 5113, DOI "Network Discovery and Selection Problem", RFC 5113,
10.17487/RFC5113, January 2008, <https://www.rfc- DOI 10.17487/RFC5113, January 2008, <https://www.rfc-
editor.org/info/rfc5113>. editor.org/info/rfc5113>.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", RFC 5226,
DOI 10.17487/RFC5226, May 2008, <https://www.rfc-
editor.org/info/rfc5226>.
[RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible [RFC5247] Aboba, B., Simon, D., and P. Eronen, "Extensible
Authentication Protocol (EAP) Key Management Framework", Authentication Protocol (EAP) Key Management Framework",
RFC 5247, DOI 10.17487/RFC5247, August 2008, <https://www RFC 5247, DOI 10.17487/RFC5247, August 2008,
.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, <https://www RFC 5448, DOI 10.17487/RFC5448, May 2009,
.rfc-editor.org/info/rfc5448>. <https://www.rfc-editor.org/info/rfc5448>.
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.
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.
Finally, the references to [RFC2119], [RFC5226], [FIPS.180-1] and
[FIPS.180-2] have been updated to their most recent versions and
language in this document changed accordingly. Similarly, references
to all 3GPP technical specifications have been updated to their 5G
(Release 15) versions or otherwise most recent version when there has
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
support defined in Section 4. In particular, this document does not support defined in Section 4. In particular, this document does not
change how the Master Key (MK) is calculated in RFC 4187 (it uses CK change how the Master Key (MK) is calculated in RFC 4187 (it uses CK
and IK, not CK' and IK'); neither is any processing of the AMF bit and IK, not CK' and IK'); neither is any processing of the AMF bit
added to RFC 4187. added to RFC 4187.
Appendix C. Importance of Explicit Negotiation Appendix C. Changes from Previous Version of This Draft
RFC Editor: Please delete this section at the time of publication.
The -00 version of the working group draft is merely a republication
of an earlier individual draft.
The -01 version of the working group clarifies updates relationship
to RFC 4187, clarifies language relating to obsoleting RFC 5448,
clarifies when the 3GPP references are expected to be stable, updates
several past references to their more recently published versions,
and some minor editorial changes.
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
know whether they are connecting to the old or new system. know whether they are connecting to the old or new system.
skipping to change at page 27, line 23 skipping to change at page 29, line 5
requests, or server configuration does not match expectations. It requests, or server configuration does not match expectations. It
also does not help to assume that the EAP client and server are also does not help to assume that the EAP client and server are
running a particular release of 3GPP network specifications. Network running a particular release of 3GPP network specifications. Network
vendors often provide features from future releases early or do not vendors often provide features from future releases early or do not
provide all features of the current release. And obviously, there provide all features of the current release. And obviously, there
are many EAP and even some EAP-AKA implementations that are not are many EAP and even some EAP-AKA implementations that are not
bundled with the 3GPP network offerings. In general, these bundled with the 3GPP network offerings. In general, these
approaches are expected to lead to hard-to-diagnose problems and approaches are expected to lead to hard-to-diagnose problems and
increased support calls. increased support calls.
Appendix D. 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.
 End of changes. 49 change blocks. 
95 lines changed or deleted 133 lines changed or added

This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/