| draft-arkko-eap-aka-pfs-02.txt | draft-arkko-eap-aka-pfs.txt | |||
|---|---|---|---|---|
| Network Working Group J. Arkko | Network Working Group J. Arkko | |||
| Internet-Draft K. Norrman | Internet-Draft K. Norrman | |||
| Updates: 5448 (if approved) V. Torvinen | Intended status: Informational V. Torvinen | |||
| Intended status: Informational Ericsson | Expires: April 26, 2019 Ericsson | |||
| Expires: January 3, 2019 July 2, 2018 | October 23, 2018 | |||
| Perfect-Forward Secrecy for the Extensible Authentication Protocol | Perfect-Forward Secrecy for the Extensible Authentication Protocol | |||
| Method for Authentication and Key Agreement (EAP-AKA' PFS) | Method for Authentication and Key Agreement (EAP-AKA' PFS) | |||
| draft-arkko-eap-aka-pfs-02 | draft-arkko-eap-aka-pfs-03 | |||
| Abstract | Abstract | |||
| Many different attacks have been reported as part of revelations | Many different attacks have been reported as part of revelations | |||
| associated with pervasive surveillance. Some of the reported attacks | associated with pervasive surveillance. Some of the reported attacks | |||
| involved compromising smart cards, such as attacking SIM card | involved compromising smart cards, such as attacking SIM card | |||
| manufacturers and operators in an effort to compromise shared secrets | manufacturers and operators in an effort to compromise shared secrets | |||
| stored on these cards. Since the publication of those reports, | stored on these cards. Since the publication of those reports, | |||
| manufacturing and provisioning processes have gained much scrutiny | manufacturing and provisioning processes have gained much scrutiny | |||
| and have improved. However, the danger of resourceful attackers for | and have improved. However, the danger of resourceful attackers for | |||
| these systems is still a concern. | these systems is still a concern. | |||
| This specification is an optional extension to the EAP-AKA' | This specification is an optional extension to the EAP-AKA' | |||
| authentication method which was defined in RFC 5448. The extension | authentication method which was defined in RFC 5448 (to be superseded | |||
| by draft-ietf-emu-rfc5448bis). The extension, when negotiated, | ||||
| provides Perfect Forward Secrecy for the session key generated as a | provides Perfect Forward Secrecy for the session key generated as a | |||
| part of the authentication run in EAP-AKA'. This prevents an | part of the authentication run in EAP-AKA'. This prevents an | |||
| attacker who has gained access to the long-term pre-shared secret in | attacker who has gained access to the long-term pre-shared secret in | |||
| a SIM card from merely passively eavesdropping the EAP-AKA' exchanges | a SIM card from being able to decrypt all past communications. In | |||
| and deriving associated session keys, forcing attackers to use active | addition, if the attacker stays merely a passive eavesdropper, the | |||
| attacks instead. | extension prevents attacks against future sessions. This forces | |||
| attackers to use active attacks instead. | ||||
| 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 April 26, 2019. | ||||
| This Internet-Draft will expire on January 3, 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 31 | skipping to change at page 2, line 32 | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Protocol Design and Deployment Objectives . . . . . . . . . . 4 | 2. Protocol Design and Deployment Objectives . . . . . . . . . . 4 | |||
| 3. Background . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Background . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.1. AKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3.1. AKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3.2. EAP-AKA' Protocol . . . . . . . . . . . . . . . . . . . . 6 | 3.2. EAP-AKA' Protocol . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Attacks Against Long-Term Shared Secrets in Smart Cards . 8 | 3.3. Attacks Against Long-Term Shared Secrets in Smart Cards . 8 | |||
| 4. Requirements Language . . . . . . . . . . . . . . . . . . . . 8 | 4. Requirements Language . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. Extensions to EAP-AKA' . . . . . . . . . . . . . . . . . . . 11 | 6. Extensions to EAP-AKA' . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.1. AT_PUB_DH . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6.1. AT_PUB_ECDHE . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.2. AT_KDF_DH . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6.2. AT_KDF_PFS . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 6.3. New Key Derivation Function . . . . . . . . . . . . . . . 13 | 6.3. New Key Derivation Function . . . . . . . . . . . . . . . 14 | |||
| 6.4. Diffie-Hellman Groups . . . . . . . . . . . . . . . . . . 14 | 6.4. ECDHE Groups . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.5. Message Processing . . . . . . . . . . . . . . . . . . . 14 | 6.5. Message Processing . . . . . . . . . . . . . . . . . . . 15 | |||
| 6.5.1. EAP-Request/AKA'-Identity . . . . . . . . . . . . . . 15 | 6.5.1. EAP-Request/AKA'-Identity . . . . . . . . . . . . . . 15 | |||
| 6.5.2. EAP-Response/AKA'-Identity . . . . . . . . . . . . . 15 | 6.5.2. EAP-Response/AKA'-Identity . . . . . . . . . . . . . 16 | |||
| 6.5.3. EAP-Request/AKA'-Challenge . . . . . . . . . . . . . 15 | 6.5.3. EAP-Request/AKA'-Challenge . . . . . . . . . . . . . 16 | |||
| 6.5.4. EAP-Response/AKA'-Challenge . . . . . . . . . . . . . 16 | 6.5.4. EAP-Response/AKA'-Challenge . . . . . . . . . . . . . 16 | |||
| 6.5.5. EAP-Request/AKA'-Reauthentication . . . . . . . . . . 16 | 6.5.5. EAP-Request/AKA'-Reauthentication . . . . . . . . . . 17 | |||
| 6.5.6. EAP-Response/AKA'-Reauthentication . . . . . . . . . 16 | 6.5.6. EAP-Response/AKA'-Reauthentication . . . . . . . . . 17 | |||
| 6.5.7. EAP-Response/AKA'-Synchronization-Failure . . . . . . 16 | 6.5.7. EAP-Response/AKA'-Synchronization-Failure . . . . . . 17 | |||
| 6.5.8. EAP-Response/AKA'-Authentication-Reject . . . . . . . 16 | 6.5.8. EAP-Response/AKA'-Authentication-Reject . . . . . . . 17 | |||
| 6.5.9. EAP-Response/AKA'-Client-Error . . . . . . . . . . . 17 | 6.5.9. EAP-Response/AKA'-Client-Error . . . . . . . . . . . 18 | |||
| 6.5.10. EAP-Request/AKA'-Notification . . . . . . . . . . . . 17 | 6.5.10. EAP-Request/AKA'-Notification . . . . . . . . . . . . 18 | |||
| 6.5.11. EAP-Response/AKA'-Notification . . . . . . . . . . . 17 | 6.5.11. EAP-Response/AKA'-Notification . . . . . . . . . . . 18 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 22 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 20 | 9.2. Informative References . . . . . . . . . . . . . . . . . 23 | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 22 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 24 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Appendix B. Acknowledgments . . . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | ||||
| 1. Introduction | 1. Introduction | |||
| Many different attacks have been reported as part of revelations | Many different attacks have been reported as part of revelations | |||
| associated with pervasive surveillance. Some of the reported attacks | associated with pervasive surveillance. Some of the reported attacks | |||
| involved compromising smart cards, such as attacking SIM card | involved compromising smart cards, such as attacking SIM card | |||
| manufacturers and operators in an effort to compromise shared secrets | manufacturers and operators in an effort to compromise shared secrets | |||
| stored on these cards. Such attacks are conceivable, for instance, | stored on these cards. Such attacks are conceivable, for instance, | |||
| during the manufacturing process of cards, or during the transfer of | during the manufacturing process of cards, or during the transfer of | |||
| cards and associated information to the operator. Since the | cards and associated information to the operator. Since the | |||
| skipping to change at page 3, line 26 | skipping to change at page 3, line 29 | |||
| provisioning processes have gained much scrutiny and have improved. | provisioning processes have gained much scrutiny and have improved. | |||
| However, the danger of resourceful attackers attempting to gain | However, the danger of resourceful attackers attempting to gain | |||
| information about SIM cards is still a concern. They are a high- | information about SIM cards is still a concern. They are a high- | |||
| value target and concern a large number of people. Note that the | value target and concern a large number of people. Note that the | |||
| attacks are largely independent of the used authentication | attacks are largely independent of the used authentication | |||
| technology; the issue is not vulnerabilities in algorithms or | technology; the issue is not vulnerabilities in algorithms or | |||
| protocols, but rather the possibility of someone gaining unlawful | protocols, but rather the possibility of someone gaining unlawful | |||
| access to key material. While the better protection of manufacturing | access to key material. While the better protection of manufacturing | |||
| and other processes is essential in protecting against this, there is | and other processes is essential in protecting against this, there is | |||
| one question that we as protocol designs can ask. Is there something | one question that we as protocol designers can ask. Is there | |||
| that we can do to limit the consequences of attacks, should they | something that we can do to limit the consequences of attacks, should | |||
| occur? | they occur? | |||
| The authors want to provide a public specification of an extension | The authors want to provide a public specification of an extension | |||
| that helps defend against one aspect of pervasive surveillance. This | that helps defend against one aspect of pervasive surveillance. This | |||
| important, given the large number of users such practices may affect. | important, given the large number of users such practices may affect. | |||
| It is also a stated goal of the IETF to ensure that we understand the | It is also a stated goal of the IETF to ensure that we understand the | |||
| surveillance concerns related to IETF protocols and take appropriate | surveillance concerns related to IETF protocols and take appropriate | |||
| countermeasures [RFC7258]. This document does that for EAP-AKA'. | countermeasures [RFC7258]. This document does that for EAP-AKA'. | |||
| This specification is an optional extension to the EAP-AKA' | This specification is an optional extension to the EAP-AKA' | |||
| authentication method [RFC5448]. The extension provides Perfect | authentication method [RFC5448] (to be superseded by | |||
| Forward Secrecy for the session key generated as a part of the | [I-D.ietf-emu-rfc5448bis]). The extension, when negotiated, provides | |||
| authentication run in EAP-AKA'. This prevents an attacker who has | Perfect Forward Secrecy for the session key generated as a part of | |||
| gained access to the long-term pre-shared secret in a SIM card from | the authentication run in EAP-AKA'. This prevents an attacker who | |||
| merely passively eavesdropping the EAP-AKA' exchanges and deriving | has gained access to the long-term pre-shared secret in a SIM card | |||
| associated session keys, forcing attackers to use active attacks | from being able to decrypt all past communications. In addition, if | |||
| instead. | the attacker stays merely a passive eavesdropper, the extension | |||
| prevents attacks against future sessions. This forces attackers to | ||||
| use active attacks instead. As with other protocols, an active | ||||
| attacker with access to the long-term key material will of course be | ||||
| able to attack all future communications, but risks detection, | ||||
| particularly if done at scale. | ||||
| Attacks against AKA authentication via compromising the long-term | Attacks against AKA authentication via compromising the long-term | |||
| secrets in the SIM cards have been an active discussion topic in many | secrets in the SIM cards have been an active discussion topic in many | |||
| contexts. Perfect forward secrecy is on the list of features for the | contexts. Perfect forward secrecy is on the list of features for the | |||
| next release of 3GPP (5G Phase 2), and this document provides a basis | next release of 3GPP (5G Phase 2), and this document provides a basis | |||
| for providing this feature in a particular fashion. | for providing this feature in a particular fashion. | |||
| It should also be noted that 5G network architecture includes the use | It should also be noted that 5G network architecture includes the use | |||
| of the EAP framework for authentication. While any methods can be | of the EAP framework for authentication. While any methods can be | |||
| run, the default authentication method within that context will be | run, the default authentication method within that context will be | |||
| EAP-AKA. As a result, improvements in EAP-AKA' security have a | EAP-AKA'. As a result, improvements in EAP-AKA' security have a | |||
| potential to improve security for large number of users. | potential to improve security for large number of users. | |||
| 2. Protocol Design and Deployment Objectives | 2. Protocol Design and Deployment Objectives | |||
| This extension specified here re-uses large portions of the current | This extension specified here re-uses large portions of the current | |||
| structure of 3GPP interfaces and functions, with the rationale that | structure of 3GPP interfaces and functions, with the rationale that | |||
| this will make the construction more easily adopted. In particular, | this will make the construction more easily adopted. In particular, | |||
| the construction maintains the interface between the Universal | the construction maintains the interface between the Universal | |||
| Subscriber Identification Module (USIM) and the mobile terminal | Subscriber Identification Module (USIM) and the mobile terminal | |||
| intact. As a consequence, there is no need to roll out new | intact. As a consequence, there is no need to roll out new | |||
| credentials to existing subscribers. The work is based on an earlier | credentials to existing subscribers. The work is based on an earlier | |||
| paper [TrustCom2015], and uses much of the same material, but applied | paper [TrustCom2015], and uses much of the same material, but applied | |||
| to EAP rather than the underlying AKA method. This specification is | to EAP rather than the underlying AKA method. | |||
| an initial proposal for ensuring SIM-based authentication in EAP | ||||
| makes attacks difficult. Comments and suggestions are much | ||||
| appreciated, including design improvements. | ||||
| It has been a goal to implement this change as an extension of the | It has been a goal to implement this change as an extension of the | |||
| widely supported EAP-AKA' method, rather than a completely new | widely supported EAP-AKA' method, rather than a completely new | |||
| authentication method. The extension is implemented as a set of new, | authentication method. The extension is implemented as a set of new, | |||
| optional attributes, that are provided alongside the base attributes | optional attributes, that are provided alongside the base attributes | |||
| in EAP-AKA'. Old implementations can ignore these attributes, but | in EAP-AKA'. Old implementations can ignore these attributes, but | |||
| their presence will nevertheless be verified as part of base EAP-AKA' | their presence will nevertheless be verified as part of base EAP-AKA' | |||
| integrity verification process, helping protect against bidding down | integrity verification process, helping protect against bidding down | |||
| attacks. This extension does not increase the number of rounds | attacks. This extension does not increase the number of rounds | |||
| necessary to complete the protocol. | necessary to complete the protocol. | |||
| skipping to change at page 6, line 15 | skipping to change at page 6, line 21 | |||
| home environment. | home environment. | |||
| 3.2. EAP-AKA' Protocol | 3.2. EAP-AKA' Protocol | |||
| When AKA (and AKA') are embedded into EAP, the authentication on the | When AKA (and AKA') are embedded into EAP, the authentication on the | |||
| network side is moved to the home environment; the serving network | network side is moved to the home environment; the serving network | |||
| performs the role of a pass-through authenticator. Figure 1 | performs the role of a pass-through authenticator. Figure 1 | |||
| describes the basic flow in the EAP-AKA' authentication process. The | describes the basic flow in the EAP-AKA' authentication process. The | |||
| definition of the full protocol behaviour, along with the definition | definition of the full protocol behaviour, along with the definition | |||
| of attributes AT_RAND, AT_AUTN, AT_MAC, and AT_RES can be found in | of attributes AT_RAND, AT_AUTN, AT_MAC, and AT_RES can be found in | |||
| [RFC5448] and [RFC4187]. | [I-D.ietf-emu-rfc5448bis] and [RFC4187]. | |||
| Peer Server | Peer Server | |||
| | EAP-Request/Identity | | | EAP-Request/Identity | | |||
| |<------------------------------------------------------| | |<------------------------------------------------------| | |||
| | | | | | | |||
| | EAP-Response/Identity | | | EAP-Response/Identity | | |||
| | (Includes user's Network Access Identifier, NAI) | | | (Includes user's Network Access Identifier, NAI) | | |||
| |------------------------------------------------------>| | |------------------------------------------------------>| | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | Server determines the network name and ensures | | | | Server determines the network name and ensures | | |||
| skipping to change at page 8, line 7 | skipping to change at page 8, line 7 | |||
| | | 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 | |||
| 3.3. Attacks Against Long-Term Shared Secrets in Smart Cards | 3.3. Attacks Against Long-Term Shared Secrets in Smart Cards | |||
| Current 3GPP systems use (U)SIM pre-shared key based protocols to | Current 3GPP systems use (U)SIM pre-shared key based protocols and | |||
| authenticate subscribers. Since the addition of replay protection | Authentication and Key Agreement (AKA) to authenticate subscribers. | |||
| and mutual authentication in the third generation 3GPP systems, there | The general security properties and potential vulnerabilities of AKA | |||
| have been no published attacks that violate the security properties | and EAP-AKA' are discussed in [I-D.ietf-emu-rfc5448bis]. | |||
| defined for the Authentication and Key Agreement (AKA) in, at least | ||||
| not within the assumed trust model. (However, there have been | ||||
| attacks using a different trust model [CB2014] [MT2012]; the protocol | ||||
| was not designed to counter those situations. There have also been | ||||
| attacks against systems where AKA is used in a different setting than | ||||
| initially intended, e.g. [BT2013].) | ||||
| Recent reports of compromised long term pre-shared keys used in AKA | An important vulnerability in that discussion relates to the recent | |||
| [Heist2015] indicate a need to look into solutions that allow a | reports of compromised long term pre-shared keys used in AKA | |||
| weaker trust model, in particular for future 5G systems. It is also | [Heist2015]. These attacks are not specific to AKA or EAP-AKA', as | |||
| noted in [Heist2015] that, even if the current trust model is kept, | all security systems fail at least to some extent if key material is | |||
| some security can be retained in this situation by providing Perfect | stolen. However, the reports indicate a need to look into solutions | |||
| Forward Security (PFS) [DOW1992] for the session key. If AKA would | that can operate at least to an extent under these types of attacks. | |||
| have provided PFS, compromising the pre-shared key would not be | It is noted in [Heist2015] that some security can be retained even in | |||
| sufficient to perform passive attacks; the attacker is, in addition, | the face of the attacks by providing Perfect Forward Security (PFS) | |||
| forced to be a Man-In-The-Middle (MITM) during the AKA run. | [DOW1992] for the session key. If AKA would have provided PFS, | |||
| Introducing PFS for authentication in 3GPP systems can be achieved by | compromising the pre-shared key would not be sufficient to perform | |||
| adding a Diffie-Hellman (DH) exchange. | passive attacks; the attacker is, in addition, forced to be a Man-In- | |||
| The-Middle (MITM) during the AKA run. | ||||
| 4. Requirements Language | 4. 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. | ||||
| 5. Protocol Overview | 5. Protocol Overview | |||
| The enhancements in the protocol specified here are compatible with | Introducing PFS for EAP-AKA' can be achieved by using an Elliptic | |||
| the signaling flow and other basic structures of both AKA and EAP- | Curve Diffie-Hellman (ECDH) exchange [RFC7748]. In EAP-AKA' PFS this | |||
| AKA'. The intent is to implement the enhancement as optional | exchange is run in an ephemeral manner, i.e., using temporary keys as | |||
| attributes that legacy implementations can ignore. | specified in [RFC8031] Section 2. This method is referred to as | |||
| ECDHE, where the last 'E' stands for Ephemeral. | ||||
| The enhancements in the EAP-AKA' PFS protocol are compatible with the | ||||
| signaling flow and other basic structures of both AKA and EAP-AKA'. | ||||
| The intent is to implement the enhancement as optional attributes | ||||
| that legacy implementations can ignore. | ||||
| The purpose of the protocol is to achieve mutual authentication | The purpose of the protocol is to achieve mutual authentication | |||
| between the EAP server and peer, and to establish keying material for | between the EAP server and peer, and to establish keying material for | |||
| secure communication between the two. The enhancements brought in | secure communication between the two. This document specifies the | |||
| this document change the calculation of key material, providing new | calculation of key material, providing new properties that are not | |||
| properties that are not present in key material provided by EAP-AKA' | present in key material provided by EAP-AKA' in its original form. | |||
| in its original form. | ||||
| Figure 2 below describes the overall process. Since our goal has | Figure 2 below describes the overall process. Since our goal has | |||
| been to not require new infrastructure or credentials, the flow | been to not require new infrastructure or credentials, the flow | |||
| diagrams also show the conceptual interaction with the USIM card and | diagrams also show the conceptual interaction with the USIM card and | |||
| the 3GPP authentication server (HSS). The details of those | the 3GPP authentication server (HSS). The details of those | |||
| interactions are outside the scope of this document, however, and the | interactions are outside the scope of this document, however, and the | |||
| reader is referred to the 3GPP specifications . | reader is referred to the 3GPP specifications . | |||
| USIM Peer Server HSS | USIM Peer Server HSS | |||
| | | | | | | | | | | |||
| skipping to change at page 9, line 39 | skipping to change at page 9, line 43 | |||
| | | | network name| | | | | network name| | |||
| | | |------------>| | | | |------------>| | |||
| | | | | | | | | | | |||
| | | | RAND, AUTN, | | | | | RAND, AUTN, | | |||
| | | | XRES, CK', | | | | | XRES, CK', | | |||
| | | | IK' | | | | | IK' | | |||
| | | |<------------| | | | |<------------| | |||
| | | | | | | | | | | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | Server now has the needed authentication vector.| | | | Server now has the needed authentication vector.| | |||
| | | It generates an ephemeral DH-parameter G^x | | | | It generates an ephemeral key pair, sends the | | |||
| | | and sends the first EAP method message. In the | | | | public key of that key pair and the first EAP | | |||
| | | message AT_PUB_DH represents sender's generated | | | | method message to the peer. In the message the | | |||
| | | parameter and AT_KDF_DH carries other DH- | | | | AT_PUB_ECDHE attribute carries the public key | | |||
| | | related parameters. All these are skippable | | | | and the AT_KDF_PFS attribute carries other PFS- | | |||
| | | related parameters. Both of these are skippable | | ||||
| | | attributes that can be ignored if the peer does | | | | attributes that can be ignored if the peer does | | |||
| | | not support this extension. | | | | not support this extension. | | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | | | | | | | | | |||
| | | EAP-Req/AKA'-Challenge | | | | | EAP-Req/AKA'-Challenge | | | |||
| | | AT_RAND, AT_AUTN, AT_KDF,| | | | | AT_RAND, AT_AUTN, AT_KDF,| | | |||
| | | AT_KDF_DH, AT_KDF_INPUT, | | | | | AT_KDF_PFS, AT_KDF_INPUT,| | | |||
| | | AT_PUB_DH, AT_MAC | | | | | AT_PUB_ECDHE, AT_MAC | | | |||
| | |<-------------------------| | | | |<-------------------------| | | |||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | The peer checks if it wants to do the PFS extension.| | | | The peer checks if it wants to do the PFS extension.| | | |||
| | If yes, it will eventually respond with AT_PUB_DH | | | | If yes, it will eventually respond with AT_PUB_ECDHE| | | |||
| | and AT_MAC. If not, it will ignore AT_PUB_DH and | | | | and AT_MAC. If not, it will ignore AT_PUB_ECDHE and | | | |||
| | AT_KDF_DH and base all calculations on basic | | | | AT_KDF_PFS and base all calculations on basic | | | |||
| | EAP-AKA' attributes, continuing just as in EAP-AKA' | | | | EAP-AKA' attributes, continuing just as in EAP-AKA' | | | |||
| | per RFC 5448 rules. In any case, the peer needs to | | | | per RFC 5448 (draft-ietf-emu-rfc5448bis) rules. | | | |||
| | query the auth parameters from the USIM card. | | | | In any case, the peer needs to query the auth | | | |||
| | parameters from the USIM card. | | | ||||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | | | | | | | | | | |||
| | RAND, AUTN | | | | | RAND, AUTN | | | | |||
| |<---------------| | | | |<---------------| | | | |||
| | | | | | | | | | | |||
| | CK, IK, RES | | | | | CK, IK, RES | | | | |||
| |-------------->| | | | |-------------->| | | | |||
| | | | | | | | | | | |||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | The peer now has everything to respond. If it wants | | | | The peer now has everything to respond. If it wants | | | |||
| | to participate in the PFS extension, it will then | | | | to participate in the PFS extension, it will then | | | |||
| | generate G^y, calculate G^xy and derive all keys | | | | generate its key pair, calculate a shared key based | | | |||
| | and construct a full response. | | | | on its key pair the server's public key. Finally, | | | |||
| | it proceeds to derive all EAP-AKA' key values and | | | ||||
| | and constructs a full response. | | | ||||
| +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | |||
| | | | | | | | | | | |||
| | | EAP-Resp/AKA'-Challenge | | | | | EAP-Resp/AKA'-Challenge | | | |||
| | | AT_RES, AT_PUB_DH, AT_MAC| | | | | AT_RES, AT_PUB_ECDHE, | | | |||
| | | AT_MAC | | | ||||
| | |------------------------->| | | | |------------------------->| | | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | The server now has all the necessary values. | | | | The server now has all the necessary values. | | |||
| | | It generates the Diffie-Hellman value G^xy | | | | It generates the ECDHE shared secret | | |||
| | | and checks the RES and MAC values received | | | | and 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. Note that | | | | requires both to be found correct. Note that | | |||
| | | keys in this extension are generated based on | | | | when this specification is used, the keys | | |||
| | | both CK/IK as well as the Diffie-Hellman value. | | | | generated from EAP-AKA' are based on both | | |||
| | | This implies that only an active attacker can | | | | CK/IK as well as the ECDHE value. Even if there | | |||
| | | determine the used session keys; in basic | | | | was an attacker who held the long-term secret | | |||
| | | keys, only an active attacker could have | | ||||
| | | determined the generated session keys; in basic | | ||||
| | | EAP-AKA' the keys are only based on CK and IK. | | | | EAP-AKA' the keys are only based on CK and IK. | | |||
| | +-------------------------------------------------+ | | +-------------------------------------------------+ | |||
| | | | | | | | | | | |||
| | | EAP-Success | | | | | EAP-Success | | | |||
| | |<-------------------------| | | | |<-------------------------| | | |||
| Figure 2: EAP-AKA' PFS Authentication Process | Figure 2: EAP-AKA' PFS Authentication Process | |||
| 6. Extensions to EAP-AKA' | 6. Extensions to EAP-AKA' | |||
| 6.1. AT_PUB_DH | 6.1. AT_PUB_ECDHE | |||
| The AT_PUB_DH carries a Diffie-Hellman value. | The AT_PUB_ECDHE carries an ECDHE value. | |||
| The format of the AT_PUB_DH attribute is shown below. | The format of the AT_PUB_ECDHE attribute is shown below. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | AT_PUB_DH | Length | Value ... | | | AT_PUB_ECDHE | Length | Value ... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The fields are as follows: | The fields are as follows: | |||
| AT_PUB_DH | AT_PUB_ECDHE | |||
| This is set to TBA1 BY IANA. | This is set to TBA1 BY IANA. | |||
| Length | Length | |||
| The length of the attribute, set as other attributes in EAP-AKA | The length of the attribute, set as other attributes in EAP-AKA | |||
| [RFC4187]. | [RFC4187]. | |||
| Value | Value | |||
| This value is the sender's Diffie-Hellman public value. For | This value is the sender's ECDHE public value. For Curve25519, | |||
| Curve25519, the length of this value is 32 bytes, represented as | the length of this value is 32 bytes, encoded in binary as | |||
| specified in [RFC8031] and [RFC7748]. | specified [RFC7748] Section 6.1. | |||
| To retain the security of the keys, the sender SHALL generate a | To retain the security of the keys, the sender SHALL generate a | |||
| fresh value for each run of the protocol. | fresh value for each run of the protocol. | |||
| 6.2. AT_KDF_DH | 6.2. AT_KDF_PFS | |||
| The AT_KDF_DH indicates the used or desired key generation function, | The AT_KDF_PFS indicates the used or desired key generation function, | |||
| if the Perfect Forward Secrecy extension is taken into use. It will | if the Perfect Forward Secrecy extension is taken into use. It will | |||
| also at the same time indicate the used or desired Diffie-Hellman | also at the same time indicate the used or desired ECDHE group. A | |||
| group. A new attribute is needed to carry this information, as | new attribute is needed to carry this information, as AT_KDF carries | |||
| AT_KDF carries the legacy KDF value for those EAP peers that cannot | the legacy KDF value for those EAP peers that cannot or do not want | |||
| or do not want to use this extension. | to use this extension. | |||
| The format of the AT_KDF_DH attribute is shown below. | The format of the AT_KDF_PFS attribute is shown below. | |||
| 0 1 2 3 | 0 1 2 3 | |||
| 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | AT_KDF_DH | Length | Key Derivation Function | | | AT_KDF_PFS | Length | Key Derivation Function | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| The fields are as follows: | The fields are as follows: | |||
| AT_KDF_DH | AT_KDF_PFS | |||
| This is set to TBA2 BY IANA. | This is set to TBA2 BY IANA. | |||
| Length | Length | |||
| The length of the attribute, MUST be set to 1. | The length of the attribute, MUST be set to 1. | |||
| Key Derivation Function | Key Derivation Function | |||
| An enumerated value representing the key derivation function that | An enumerated value representing the key derivation function that | |||
| the server (or peer) wishes to use. See Section 6.3 for the | the server (or peer) wishes to use. See Section 6.3 for the | |||
| functions specified in this document. Note: This field has a | functions specified in this document. Note: This field has a | |||
| different name space than the similar field in the AT_KDF | different name space than the similar field in the AT_KDF | |||
| attribute Key Derivation Function defined in [RFC5448]. | attribute Key Derivation Function defined in | |||
| [I-D.ietf-emu-rfc5448bis]. | ||||
| Servers MUST send one or more AT_KDF_DH attributes in the EAP- | Servers MUST send one or more AT_KDF_PFS attributes in the EAP- | |||
| Request/AKA'-Challenge message. These attributes represent the | Request/AKA'-Challenge message. These attributes represent the | |||
| desired functions ordered by preference, the most preferred function | desired functions ordered by preference, the most preferred function | |||
| being the first attribute. | being the first attribute. The most preferred function is the only | |||
| one that the server includes a public key value for, however. So for | ||||
| a set of AT_KDF_PFS attributes, there is always only one AT_PUB_ECDHE | ||||
| attribute. | ||||
| Upon receiving a set of these attributes, if the peer supports and is | Upon receiving a set of these attributes: | |||
| willing to use the key derivation function indicated by the first | ||||
| attribute, and is willing and able to use the extension defined in | ||||
| this specification, the function is taken into use without any | ||||
| further negotiation. However, if the peer does not support this | ||||
| function or is unwilling to use it, it responds to the server with an | ||||
| indication that a different function is needed. Similarly with the | ||||
| negotiation process defined in [RFC5448] for AT_KDF, the peer sends | ||||
| EAP-Response/AKA'-Challenge message that contains only one attribute, | ||||
| AT_KDF_DH with the value set to the desired alternative function from | ||||
| among the ones suggested by the server earlier. If there is no | ||||
| suitable alternative, the peer has a choice of either falling back to | ||||
| EAP-AKA' or behaving as if AUTN had been incorrect and failing | ||||
| authentication (see Figure 3 of [RFC4187]). The peer MUST fail the | ||||
| authentication if there are any duplicate values within the list of | ||||
| AT_KDF_DH attributes (except where the duplication is due to a | ||||
| request to change the key derivation function; see below for further | ||||
| information). | ||||
| If the peer does not recognize the extension defined in this | o If the peer supports and is willing to use the key derivation | |||
| specification or is unwilling to use it, it ignores the AT_KDF_DH | function indicated by the first AT_KDF_PFS attribute, and is | |||
| attribute. | willing and able to use the extension defined in this | |||
| specification, the function is taken into use without any further | ||||
| negotiation. | ||||
| Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF_DH from the | o If the peer does not support this function or is unwilling to use | |||
| peer, the server checks that the suggested AT_KDF_DH value was one of | it, it responds to the server with an indication that a different | |||
| the alternatives in its offer. The first AT_KDF_DH value in the | function is needed. Similarly with the negotiation process | |||
| message from the server is not a valid alternative. If the peer has | defined in [I-D.ietf-emu-rfc5448bis] for AT_KDF, the peer sends | |||
| replied with the first AT_KDF_DH value, the server behaves as if | EAP-Response/AKA'-Challenge message that contains only one | |||
| attribute, AT_KDF_PFS with the value set to the desired | ||||
| alternative function from among the ones suggested by the server | ||||
| earlier. If there is no suitable alternative, the peer has a | ||||
| choice of either falling back to EAP-AKA' or behaving as if AUTN | ||||
| had been incorrect and failing authentication (see Figure 3 of | ||||
| [RFC4187]). The peer MUST fail the authentication if there are | ||||
| any duplicate values within the list of AT_KDF_PFS attributes | ||||
| (except where the duplication is due to a request to change the | ||||
| key derivation function; see below for further information). | ||||
| o If the peer does not recognize the extension defined in this | ||||
| specification or is unwilling to use it, it ignores the AT_KDF_PFS | ||||
| attribute. | ||||
| Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF_PFS from | ||||
| the peer, the server checks that the suggested AT_KDF_PFS value was | ||||
| one of the alternatives in its offer. The first AT_KDF_PFS value in | ||||
| the message from the server is not a valid alternative. If the peer | ||||
| has replied with the first AT_KDF_PFS value, the server behaves as if | ||||
| AT_MAC of the response had been incorrect and fails the | AT_MAC of the response had been incorrect and fails the | |||
| authentication. For an overview of the failed authentication process | authentication. For an overview of the failed authentication process | |||
| in the server side, see Section 3 and Figure 2 in [RFC4187]. | in the server side, see Section 3 and Figure 2 in [RFC4187]. | |||
| Otherwise, the server re-sends the EAP-Response/AKA'-Challenge | Otherwise, the server re-sends the EAP-Response/AKA'-Challenge | |||
| message, but adds the selected alternative to the beginning of the | message, but adds the selected alternative to the beginning of the | |||
| list of AT_KDF_DH attributes, and retains the entire list following | list of AT_KDF_PFS attributes, and retains the entire list following | |||
| it. Note that this means that the selected alternative appears twice | it. Note that this means that the selected alternative appears twice | |||
| in the set of AT_KDF values. Responding to the peer's request to | in the set of AT_KDF values. Responding to the peer's request to | |||
| change the key derivation function is the only legal situation where | change the key derivation function is the only legal situation where | |||
| such duplication may occur. | such duplication may occur. | |||
| When the peer receives the new EAP-Request/AKA'-Challenge message, it | When the peer receives the new EAP-Request/AKA'-Challenge message, it | |||
| MUST check that the requested change, and only the requested change | MUST check that the requested change, and only the requested change | |||
| occurred in the list of AT_KDF_DH attributes. If yes, it continues. | occurred in the list of AT_KDF_PFS attributes. If yes, it continues. | |||
| If not, it behaves as if AT_MAC had been incorrect and fails the | If not, it behaves as if AT_MAC had been incorrect and fails the | |||
| authentication. If the peer receives multiple EAP-Request/AKA'- | authentication. If the peer receives multiple EAP-Request/AKA'- | |||
| Challenge messages with differing AT_KDF_DH attributes without having | Challenge messages with differing AT_KDF_PFS attributes without | |||
| requested negotiation, the peer MUST behave as if AT_MAC had been | having requested negotiation, the peer MUST behave as if AT_MAC had | |||
| incorrect and fail the authentication. | been incorrect and fail the authentication. | |||
| 6.3. New Key Derivation Function | 6.3. New Key Derivation Function | |||
| A new Key Derivation Function type is defined for "EAP-AKA' with DH | A new Key Derivation Function type is defined for "EAP-AKA' with | |||
| and Curve25519", represented by value 1. It represents a particular | ECDHE and Curve25519", represented by value 1. It represents a | |||
| choice of key derivation function and at the same time selects a | particular choice of key derivation function and at the same time | |||
| Diffie-Hellman group to be used. | selects an ECDHE group to be used. | |||
| The Key Derivation Function type value is only used in the AT_KDF_DH | The Key Derivation Function type value is only used in the AT_KDF_PFS | |||
| attribute, and should not be confused with the different range of key | attribute, and should not be confused with the different range of key | |||
| derivation functions that can be represented in the AT_KDF attribute | derivation functions that can be represented in the AT_KDF attribute | |||
| as defined in [RFC5448]. | as defined in [I-D.ietf-emu-rfc5448bis]. | |||
| Key derivation in this extension produces exactly the same keys for | Key derivation in this extension produces exactly the same keys for | |||
| internal use within one authentication run as RFC 5448 EAP-AKA' did. | internal use within one authentication run as | |||
| For instance, K_aut that is used in AT_MAC is still exactly as it was | [I-D.ietf-emu-rfc5448bis] EAP-AKA' does. For instance, K_aut that is | |||
| in EAP-AKA'. The only change to key derivation is in re- | used in AT_MAC is still exactly as it was in EAP-AKA'. The only | |||
| authentication keys and keys exported out of the EAP method, MSK and | change to key derivation is in re-authentication keys and keys | |||
| EMSK. As a result, EAP-AKA' attributes such as AT_MAC continue to be | exported out of the EAP method, MSK and EMSK. As a result, EAP-AKA' | |||
| usable even when this extension is in use. | attributes such as AT_MAC continue to be usable even when this | |||
| extension is in use. | ||||
| When the Key Derivation Function field in the AT_KDF_DH attribute is | When the Key Derivation Function field in the AT_KDF_PFS attribute is | |||
| set to 1 and the Key Derivation Function field in the AT_KDF | set to 1 and the Key Derivation Function field in the AT_KDF | |||
| attribute is also set to 1, the Master Key (MK) is derived and as | attribute is also set to 1, the Master Key (MK) is derived and as | |||
| follows below. | follows below. | |||
| MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | |||
| MK_DH = PRF'(IK'|CK'|G^xy,"EAP-AKA' PFS"|Identity) | MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' PFS"|Identity) | |||
| K_encr = MK[0..127] | K_encr = MK[0..127] | |||
| K_aut = MK[128..383] | K_aut = MK[128..383] | |||
| K_re = MK_DH[0..255] | K_re = MK_ECDHE[0..255] | |||
| MSK = MK_DH[256..767] | MSK = MK_ECDHE[256..767] | |||
| EMSK = MK_DH[768..1279] | EMSK = MK_ECDHE[768..1279] | |||
| Where SHARED_SECRET is the shared secret computed via ECDHE, as | ||||
| specified in Section 2 of [RFC8031] and Section 6.1 of [RFC7748]. | ||||
| Both the peer and the server MAY check for zero-value shared secret | ||||
| as specified in Section 6.1 of [RFC7748]. If such checking is | ||||
| performed and the SHARED_SECRET has a zero value, both parties MUST | ||||
| behave as if the current EAP-AKA' authentication process starts again | ||||
| from the beginning. | ||||
| Note: The way that shared secret is tested for zero can, if | ||||
| performed inappropriately, provide an ability for attackers to | ||||
| listen to CPU power usage side channels. Refer to [RFC7748] for a | ||||
| description of how to perform this check in a way that it does not | ||||
| become a problem. | ||||
| The rest of computation proceeds as defined in Section 3.3 of | The rest of computation proceeds as defined in Section 3.3 of | |||
| [RFC5448]. | [I-D.ietf-emu-rfc5448bis]. | |||
| For readability, an explanation of the notation used above is copied | For readability, an explanation of the notation used above is copied | |||
| 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 [RFC5448]. K_encr is the | pseudo-random function specified in [I-D.ietf-emu-rfc5448bis]. | |||
| encryption key, 128 bits, K_aut is the authentication key, 256 bits, | K_encr is the encryption key, 128 bits, K_aut is the authentication | |||
| K_re is the re-authentication key, 256 bits, MSK is the Master | key, 256 bits, K_re is the re-authentication key, 256 bits, MSK is | |||
| Session Key, 512 bits, and EMSK is the Extended Master Session Key, | the Master Session Key, 512 bits, and EMSK is the Extended Master | |||
| 512 bits. MSK and EMSK are outputs from a successful EAP method run | Session Key, 512 bits. MSK and EMSK are outputs from a successful | |||
| [RFC3748]. | EAP method run [RFC3748]. | |||
| CK and IK are produced by the AKA algorithm. IK' and CK' are derived | CK and IK are produced by the AKA algorithm. IK' and CK' are derived | |||
| as specified in [RFC5448] from IK and CK. | as specified in [I-D.ietf-emu-rfc5448bis] from IK and CK. | |||
| The value "EAP-AKA'" is an eight-characters-long ASCII string. It is | The value "EAP-AKA'" is an eight-characters-long ASCII string. It is | |||
| used as is, without any trailing NUL characters. Similarly, "EAP- | used as is, without any trailing NUL characters. Similarly, "EAP- | |||
| AKA' PFS" is a twelve-characters-long ASCII string, also used as is. | AKA' PFS" is a twelve-characters-long ASCII string, also used as is. | |||
| Identity is the peer identity as specified in Section 7 of [RFC4187]. | Identity is the peer identity as specified in Section 7 of [RFC4187]. | |||
| 6.4. Diffie-Hellman Groups | 6.4. ECDHE Groups | |||
| The selection of suitable groups for the Diffie-Hellman computation | The selection of suitable groups for the elliptic curve computation | |||
| is necessary. The choice of a group is made at the same time as | is necessary. The choice of a group is made at the same time as | |||
| deciding to use of particular key derivation function in AT_KDF_DH. | deciding to use of particular key derivation function in AT_KDF_PFS. | |||
| For "EAP-AKA' with DH and Curve25519" the Diffie-Hellman group is the | For "EAP-AKA' with ECDHE and Curve25519" the group is the Curve25519 | |||
| Curve25519 group specified in [RFC8031]. | group specified in [RFC8031]. | |||
| 6.5. Message Processing | 6.5. Message Processing | |||
| This section specifies the changes related to message processing when | This section specifies the changes related to message processing when | |||
| this extension is used in EAP-AKA'. It specifies when a message may | this extension is used in EAP-AKA'. It specifies when a message may | |||
| be transmitted or accepted, which attributes are allowed in a | be transmitted or accepted, which attributes are allowed in a | |||
| message, which attributes are required in a message, and other | message, which attributes are required in a message, and other | |||
| message-specific details, where those details are different for this | message-specific details, where those details are different for this | |||
| extension than the base EAP-AKA' or EAP-AKA protocol. Unless | extension than the base EAP-AKA' or EAP-AKA protocol. Unless | |||
| otherwise specified here, the rules from [RFC5448] or [RFC4187] | otherwise specified here, the rules from [I-D.ietf-emu-rfc5448bis] or | |||
| apply. | [RFC4187] apply. | |||
| 6.5.1. EAP-Request/AKA'-Identity | 6.5.1. EAP-Request/AKA'-Identity | |||
| No changes, except that the AT_KDF_DH or AT_PUB_DH attributes MUST | No changes, except that the AT_KDF_PFS or AT_PUB_ECDHE attributes | |||
| NOT be added to this message. The appearance of these messages in a | MUST NOT be added to this message. The appearance of these messages | |||
| received message MUST be ignored. | in a received message MUST be ignored. | |||
| 6.5.2. EAP-Response/AKA'-Identity | 6.5.2. EAP-Response/AKA'-Identity | |||
| No changes, except that the AT_KDF_DH or AT_PUB_DH attributes MUST | No changes, except that the AT_KDF_PFS or AT_PUB_ECDHE attributes | |||
| NOT be added to this message. The appearance of these messages in a | MUST NOT be added to this message. The appearance of these messages | |||
| received message MUST be ignored. | in a received message MUST be ignored. | |||
| 6.5.3. EAP-Request/AKA'-Challenge | 6.5.3. EAP-Request/AKA'-Challenge | |||
| The server sends the EAP-Request/AKA'-Challenge on full | The server sends the EAP-Request/AKA'-Challenge on full | |||
| authentication as specified by [RFC4187] and [RFC5448]. The | authentication as specified by [RFC4187] and | |||
| attributes AT_RAND, AT_AUTN, and AT_MAC MUST be included and checked | [I-D.ietf-emu-rfc5448bis]. The attributes AT_RAND, AT_AUTN, and | |||
| on reception as specified in in [RFC4187]. They are also necessary | AT_MAC MUST be included and checked on reception as specified in | |||
| for backwards compatibility. | [RFC4187]. They are also necessary for backwards compatibility. | |||
| In EAP-Request/AKA'-Challenge, there is no message-specific data | In EAP-Request/AKA'-Challenge, there is no message-specific data | |||
| covered by the MAC for the AT_MAC attribute. The AT_KDF_DH and | covered by the MAC for the AT_MAC attribute. The AT_KDF_PFS and | |||
| AT_PUB_DH attributes MUST be included. The AT_PUB_DH attribute | AT_PUB_ECDHE attributes MUST be included. The AT_PUB_ECDHE attribute | |||
| carries the server's public Diffie-Hellman key. If either AT_KDF_DH | carries the server's public Diffie-Hellman key. If either AT_KDF_PFS | |||
| or AT_PUB_DH is missing on reception, the peer MUST treat them as if | or AT_PUB_ECDHE is missing on reception, the peer MUST treat them as | |||
| neither one was sent, and the assume that the extension defined in | if neither one was sent, and the assume that the extension defined in | |||
| this specification is not in use. | this specification is not in use. | |||
| The AT_RESULT_IND, AT_CHECKCODE, AT_IV, AT_ENCR_DATA, AT_PADDING, | The AT_RESULT_IND, AT_CHECKCODE, AT_IV, AT_ENCR_DATA, AT_PADDING, | |||
| AT_NEXT_PSEUDONYM, AT_NEXT_REAUTH_ID and other attributes may be | AT_NEXT_PSEUDONYM, AT_NEXT_REAUTH_ID and other attributes may be | |||
| included as specified in Section 9.3 of [RFC4187]. | included as specified in Section 9.3 of [RFC4187]. | |||
| When processing this message, the peer MUST process AT_RAND, AT_AUTN, | When processing this message, the peer MUST process AT_RAND, AT_AUTN, | |||
| AT_KDF_DH, AT_PUB_DH before processing other attributes. Only if | AT_KDF_PFS, AT_PUB_ECDHE before processing other attributes. Only if | |||
| these attributes are verified to be valid, the peer derives keys and | these attributes are verified to be valid, the peer derives keys and | |||
| verifies AT_MAC. If the peer is unable or unwilling to perform the | verifies AT_MAC. If the peer is unable or unwilling to perform the | |||
| extension specified in this document, it proceeds as defined in | extension specified in this document, it proceeds as defined in | |||
| [RFC5448]. Finally, the operation in case an error occurs is | [I-D.ietf-emu-rfc5448bis]. Finally, the operation in case an error | |||
| specified in Section 6.3.1. of [RFC4187]. | occurs is specified in Section 6.3.1. of [RFC4187]. | |||
| 6.5.4. EAP-Response/AKA'-Challenge | 6.5.4. EAP-Response/AKA'-Challenge | |||
| The peer sends EAP-Response/AKA'-Challenge in response to a valid | The peer sends EAP-Response/AKA'-Challenge in response to a valid | |||
| EAP-Request/AKA'-Challenge message, as specified by [RFC4187] and | EAP-Request/AKA'-Challenge message, as specified by [RFC4187] and | |||
| [RFC5448]. If the peer supports and is willing to perform the | [I-D.ietf-emu-rfc5448bis]. If the peer supports and is willing to | |||
| extension specified in this protocol, and the server had made a valid | perform the extension specified in this protocol, and the server had | |||
| request involving the attributes specified in Section 6.5.3, the peer | made a valid request involving the attributes specified in | |||
| responds per the rules specified below. Otherwise, the peer responds | Section 6.5.3, the peer responds per the rules specified below. | |||
| as specified in [RFC4187] and [RFC5448] and ignores the attributes | Otherwise, the peer responds as specified in [RFC4187] and | |||
| related to this extension. | [I-D.ietf-emu-rfc5448bis] and ignores the attributes related to this | |||
| extension. If the peer has not received attributes related to this | ||||
| extension from the Server, and has a policy that requires it to | ||||
| always use this extension, it behaves as if AUTN had been incorrect | ||||
| and fails the authentication. | ||||
| The AT_MAC attribute MUST be included and checked as specified in | The AT_MAC attribute MUST be included and checked as specified in | |||
| [RFC5448]. In EAP-Response/AKA'-Challenge, there is no message- | [I-D.ietf-emu-rfc5448bis]. In EAP-Response/AKA'-Challenge, there is | |||
| specific data covered by the MAC. The AT_PUB_DH attribute MUST be | no message-specific data covered by the MAC. The AT_PUB_ECDHE | |||
| included, and carries the peer's public Diffie-Hellman key. | attribute MUST be included, and carries the peer's public Diffie- | |||
| Hellman key. | ||||
| The AT_RES attribute MUST be included and checked as specified in | The AT_RES attribute MUST be included and checked as specified in | |||
| [RFC4187]. | [RFC4187]. When processing this message, the Server MUST process | |||
| AT_RES before processing other attributes. Only if these attribute | ||||
| is verified to be valid, the Server derives keys and verifies AT_MAC. | ||||
| If the Server has proposed the use of the extension specified in this | ||||
| protocol, but the peer ignores and continues the basic EAP-AKA' | ||||
| authentication, the Server makes policy decision of whether this is | ||||
| allowed. If this is allowed, it continues the EAP-AKA' | ||||
| authentication to completion. If it is not allowed, the Server MUST | ||||
| behave as if authentication failed. | ||||
| The AT_CHECKCODE, AT_RESULT_IND, AT_IV, AT_ENCR_DATA and other | The AT_CHECKCODE, AT_RESULT_IND, AT_IV, AT_ENCR_DATA and other | |||
| attributes may be included as specified in Section 9.4 of [RFC4187]. | attributes may be included as specified in Section 9.4 of [RFC4187]. | |||
| 6.5.5. EAP-Request/AKA'-Reauthentication | 6.5.5. EAP-Request/AKA'-Reauthentication | |||
| No changes, but note that the re-authentication process uses the keys | No changes, but note that the re-authentication process uses the keys | |||
| generated in the original EAP-AKA' authentication, which, if the | generated in the original EAP-AKA' authentication, which, if the | |||
| extension specified in this documents is in use, employs key material | extension specified in this documents is in use, employs key material | |||
| from the Diffie-Hellman procedure. | from the Diffie-Hellman procedure. | |||
| 6.5.6. EAP-Response/AKA'-Reauthentication | 6.5.6. EAP-Response/AKA'-Reauthentication | |||
| No changes, but as discussed in Section 6.5.5, re-authentication is | No changes, but as discussed in Section 6.5.5, re-authentication is | |||
| based on the key material generated by EAP-AKA' and the extension | based on the key material generated by EAP-AKA' and the extension | |||
| defined in this document. | defined in this document. | |||
| 6.5.7. EAP-Response/AKA'-Synchronization-Failure | 6.5.7. EAP-Response/AKA'-Synchronization-Failure | |||
| No changes, except that the AT_KDF_DH or AT_PUB_DH attributes MUST | No changes, except that the AT_KDF_PFS or AT_PUB_ECDHE attributes | |||
| NOT be added to this message. The appearance of these messages in a | MUST NOT be added to this message. The appearance of these messages | |||
| received message MUST be ignored. | in a received message MUST be ignored. | |||
| 6.5.8. EAP-Response/AKA'-Authentication-Reject | 6.5.8. EAP-Response/AKA'-Authentication-Reject | |||
| No changes, except that the AT_KDF_DH or AT_PUB_DH attributes MUST | No changes, except that the AT_KDF_PFS or AT_PUB_ECDHE attributes | |||
| NOT be added to this message. The appearance of these messages in a | MUST NOT be added to this message. The appearance of these messages | |||
| received message MUST be ignored. | in a received message MUST be ignored. | |||
| 6.5.9. EAP-Response/AKA'-Client-Error | 6.5.9. EAP-Response/AKA'-Client-Error | |||
| No changes, except that the AT_KDF_DH or AT_PUB_DH attributes MUST | No changes, except that the AT_KDF_PFS or AT_PUB_ECDHE attributes | |||
| NOT be added to this message. The appearance of these messages in a | MUST NOT be added to this message. The appearance of these messages | |||
| received message MUST be ignored. | in a received message MUST be ignored. | |||
| 6.5.10. EAP-Request/AKA'-Notification | 6.5.10. EAP-Request/AKA'-Notification | |||
| No changes. | No changes. | |||
| 6.5.11. EAP-Response/AKA'-Notification | 6.5.11. EAP-Response/AKA'-Notification | |||
| No changes. | No changes. | |||
| 7. Security Considerations | 7. Security Considerations | |||
| This section deals only with the changes to security considerations | This section deals only with the changes to security considerations | |||
| as they differ from EAP-AKA', or as new information has been gathered | as they differ from EAP-AKA', or as new information has been gathered | |||
| since the publication of [RFC5448]. | since the publication of [I-D.ietf-emu-rfc5448bis]. | |||
| The possibility of attacks against key storage offered in SIM or | The possibility of attacks against key storage offered in SIM or | |||
| other smart cards has been a known threat. But as the discussion in | other smart cards has been a known threat. But as the discussion in | |||
| Section 3.3 shows, the likelihood of practically feasible attacks has | Section 3.3 shows, the likelihood of practically feasible attacks has | |||
| increased. Many of these attacks can be best dealt with improved | increased. Many of these attacks can be best dealt with improved | |||
| processes, e.g., limiting the access to the key material within the | processes, e.g., limiting the access to the key material within the | |||
| factory or personnel, etc. But not all attacks can be entirely ruled | factory or personnel, etc. But not all attacks can be entirely ruled | |||
| out for well-resourced adversaries, irrespective of what the | out for well-resourced adversaries, irrespective of what the | |||
| technical algorithms and protection measures are. | technical algorithms and protection measures are. | |||
| This extension can provide assistance in situations where there is a | This extension can provide assistance in situations where there is a | |||
| danger of attacks against the key material on SIM cards by | danger of attacks against the key material on SIM cards by | |||
| adversaries that can not or who are unwilling to mount active attacks | adversaries that can not or who are unwilling to mount active attacks | |||
| against large number of sessions. This extension is most useful when | against large number of sessions. This extension is most useful when | |||
| used in a context where EAP keys are used without further mixing that | used in a context where EAP keys are used without further mixing that | |||
| can provide Perfect Forward Secrecy. For instance, when used with | can provide Perfect Forward Secrecy. For instance, when used with | |||
| IKEv2, the session keys produced by IKEv2 have this property, so | IKEv2 [RFC7296], the session keys produced by IKEv2 have this | |||
| better characteristics of EAP keys is not that useful. However, | property, so better characteristics of EAP keys is not that useful. | |||
| typical link layer usage of EAP does not involve running Diffie- | However, typical link layer usage of EAP does not involve running | |||
| Hellman, so using EAP to authenticate access to a network is one | Diffie-Hellman, so using EAP to authenticate access to a network is | |||
| situation where the extension defined in this document can be | one situation where the extension defined in this document can be | |||
| helpful. | helpful. | |||
| This extension generates keying material using the ECDHE exchange in | ||||
| order to gain the PFS property. This means that once an EAP-AKA' | ||||
| authentication run ends, the session that it was used to protect is | ||||
| closed, and the corresponding keys are forgotten, even someone who | ||||
| has recorded all of the data from the authentication run and session | ||||
| and gets access to all of the AKA long-term keys cannot reconstruct | ||||
| the keys used to protect the session or any previous session, without | ||||
| doing a brute force search of the session key space. | ||||
| Even if a compromise of the long-term keys has occurred, PFS is still | ||||
| provided for all future sessions, as long as the attacker does not | ||||
| become an active attacker. Of course, as with other protocols, if | ||||
| the attacker has learned the keys and does become an active attacker, | ||||
| there is no protection that that can be provided for future sessions. | ||||
| Among other things, such an active attacker can impersonate any | ||||
| legitimate endpoint in EAP-AKA', become a MITM in EAP-AKA' or the | ||||
| extension defined in this document, retrieve all keys, or turn off | ||||
| PFS. Still, past sessions where PFS was in use remain protected. | ||||
| Achieving PFS requires that when a connection is closed, each | ||||
| endpoint MUST forget not only the ephemeral keys used by the | ||||
| connection but also any information that could be used to recompute | ||||
| those keys. | ||||
| The following security properties of EAP-AKA' are impacted through | The following security properties of EAP-AKA' are impacted through | |||
| this extension: | this extension: | |||
| Protected ciphersuite negotiation | Protected ciphersuite negotiation | |||
| EAP-AKA' has a negotiation mechanism for selecting the key | EAP-AKA' has a negotiation mechanism for selecting the key | |||
| derivation functions, and this mechanism has been extended by the | derivation functions, and this mechanism has been extended by the | |||
| extension specified in this document. The resulting mechanism | extension specified in this document. The resulting mechanism | |||
| continues to be secure against bidding down attacks. | continues to be secure against bidding down attacks. | |||
| There are two specific needs in the negotiation mechanism: | There are two specific needs in the negotiation mechanism: | |||
| Negotiating key derivation function within the extension | Negotiating key derivation function within the extension | |||
| The negotiation mechanism allows changing the offered key | The negotiation mechanism allows changing the offered key | |||
| skipping to change at page 18, line 25 | skipping to change at page 19, line 48 | |||
| EAP- Request/AKA'-Challenge message that the server sends to | EAP- Request/AKA'-Challenge message that the server sends to | |||
| the peer. This message is authenticated via the AT_MAC | the peer. This message is authenticated via the AT_MAC | |||
| attribute, and carries both the chosen alternative and the | attribute, and carries both the chosen alternative and the | |||
| initially offered list. The peer refuses to accept a change it | initially offered list. The peer refuses to accept a change it | |||
| did not initiate. As a result, both parties are aware that a | did not initiate. As a result, both parties are aware that a | |||
| change is being made and what the original offer was. | change is being made and what the original offer was. | |||
| Negotiating the use of this extension | Negotiating the use of this extension | |||
| This extension is offered by the server through presenting the | This extension is offered by the server through presenting the | |||
| AT_KDF_DH and AT_PUB_DH attributes in the EAP-Request/AKA'- | AT_KDF_PFS and AT_PUB_ECDHE attributes in the EAP-Request/AKA'- | |||
| Challenge message. These attributes are protected by AT_MAC, | Challenge message. These attributes are protected by AT_MAC, | |||
| so attempts to change or omit them by an adversary will be | so attempts to change or omit them by an adversary will be | |||
| detected. (Except of course, if the adversary holds the long- | detected. | |||
| term shared secret and is willing to engage in an active | ||||
| attack, but that is a case that cannot be solved by a technical | Except of course, if the adversary holds the long-term shared | |||
| change in this protocol.) However, as discussed in the | secret and is willing to engage in an active attack. Such an | |||
| introduction, even an attacker with access to the long-term | attack can, for instance, forge the negotiation process so that | |||
| keys is required to be MITM on each AKA run, which makes mass | no PFS will be provided. However, as noted above, an attacker | |||
| survailance slightly more laborous. | with these capabilities will in any case be able to impersonate | |||
| any party in the protocol and perform MITM attacks. That is | ||||
| not a situation that can be improved by a technical solution. | ||||
| However, as discussed in the introduction, even an attacker | ||||
| with access to the long-term keys is required to be a MITM on | ||||
| each AKA run, which makes mass surveillance more laborous. | ||||
| The security properties of the extension also depend on a | ||||
| policy choice. As discussed in Section 6.5.4, both the peer | ||||
| and the server make a policy decision of what to do when it was | ||||
| willing to peform the extension specified in this protocol, but | ||||
| the other side does not wish to use the extension. Allowing | ||||
| this has the benefit of allowing backwards compatibility to | ||||
| equipment that did not yet support the extension. When the | ||||
| extension is not supported or negotiated by the parties, no PFS | ||||
| can obviously provided. | ||||
| If turning off the extension specified in this protocol is not | ||||
| allowed by policy, the use of legacy equipment that does not | ||||
| support this protocol is no longer possible. This may be | ||||
| appropriate when, for instance, support for the extension is | ||||
| sufficiently widespread, or required in a particular version of | ||||
| a mobile network. | ||||
| Key derivation | Key derivation | |||
| This extension provides key material that is based on the Diffie- | This extension provides key material that is based on the Diffie- | |||
| Hellman keys, yet bound to the authentication through the (U)SIM | Hellman keys, yet bound to the authentication through the (U)SIM | |||
| card. This means that subsequent payload communications between | card. This means that subsequent payload communications between | |||
| the parties are protected with keys that are not solely based on | the parties are protected with keys that are not solely based on | |||
| information in the clear (such as the RAND) and information | information in the clear (such as the RAND) and information | |||
| derivable from the long-term shared secrets on the (U)SIM card. | derivable from the long-term shared secrets on the (U)SIM card. | |||
| As a result, if anyone successfully recovers shared secret | As a result, if anyone successfully recovers shared secret | |||
| skipping to change at page 19, line 20 | skipping to change at page 21, line 18 | |||
| This extension does not change the properties of related to re- | This extension does not change the properties of related to re- | |||
| authentication. No new Diffie-Hellman run is performed during the | authentication. No new Diffie-Hellman run is performed during the | |||
| re-authentication allowed by EAP-AKA'. However, if this extension | re-authentication allowed by EAP-AKA'. However, if this extension | |||
| was in use when the original EAP-AKA' authentication was | was in use when the original EAP-AKA' authentication was | |||
| performed, the keys used for re-authentication (K_re) are based on | performed, the keys used for re-authentication (K_re) are based on | |||
| the Diffie-Hellman keys, and hence continue to be equally safe | the Diffie-Hellman keys, and hence continue to be equally safe | |||
| against expose of the long-term secrets as the original | against expose of the long-term secrets as the original | |||
| authentication. | authentication. | |||
| In addition, it is worthwhile to discuss Denial-of-Service attacks | ||||
| and their impact on this protocol. The calculations involved in | ||||
| public key cryptography require computing power, which could be used | ||||
| in an attack to overpower either the peer or the server. While some | ||||
| forms of Denial-of-Service attacks are always possible, the following | ||||
| factors help mitigate the concerns relating to public key | ||||
| cryptography and EAP-AKA' PFS. | ||||
| o In 5G context, other parts of the connection setup involve public | ||||
| key cryptography, so while performing additional operations in | ||||
| EAP-AKA' is an additional concern, it does not change the overall | ||||
| situation. As a result, the relevant system components need to be | ||||
| dimensioned appropriately, and detection and management mechanisms | ||||
| to reduce the effect of attacks need to be in place. | ||||
| o This specification is constructed so that a separation between the | ||||
| USIM and Peer on client side and the Server and HSS on network | ||||
| side is possible. This ensures that the most sensitive (or | ||||
| legacy) system components can not be the target of the attack. | ||||
| For instance, EAP-AKA' and public key cryptography takes place in | ||||
| the phone and not the low-power SIM card. | ||||
| o EAP-AKA' has been designed so that the first actual message in the | ||||
| authentication process comes from the Server, and that this | ||||
| message will not be sent unless the user has been identified as an | ||||
| active subscriber of the operator in question. While the initial | ||||
| identity can be spoofed before authentication has succeeded, this | ||||
| reduces the efficiency of an attack. | ||||
| o Finally, this memo specifies an order in which computations and | ||||
| checks must occur. When processing the EAP-Request/AKA'-Challenge | ||||
| message, for instance, the AKA authentication must be checked and | ||||
| succeed before the peer proceeds to calculating or processing the | ||||
| PFS related parameters (see Section 6.5.4). The same is true of | ||||
| EAP-Response/AKA'-Challenge (see Section 6.5.4. This ensures that | ||||
| the parties need to show possession of the long-term secret in | ||||
| some way, and only then will the PFS calculations become active. | ||||
| This limits the Denial-of-Service to specific, identified | ||||
| subscribers. While botnets and other forms of malicious parties | ||||
| could take advantage of actual subscribers and their key material, | ||||
| at least such attacks are (a) limited in terms of subscribers they | ||||
| control, and (b) identifiable for the purposes of blocking the | ||||
| affected subscribers. | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This extension of EAP-AKA' shares its attribute space and subtypes | This extension of EAP-AKA' shares its attribute space and subtypes | |||
| with EAP-SIM [RFC4186], EAP-AKA [RFC4186], and EAP-AKA' [RFC5448]. | with EAP-SIM [RFC4186], EAP-AKA [RFC4186], and EAP-AKA' | |||
| [I-D.ietf-emu-rfc5448bis]. | ||||
| Two new Attribute Type value (TBA1, TBA2) in the skippable range need | Two new Attribute Type value (TBA1, TBA2) in the skippable range need | |||
| to be assigned for AT_PUB_DH (Section 6.1) and AT_KDF_DH (Section 6.2 | to be assigned for AT_PUB_ECDHE (Section 6.1) and AT_KDF_PFS | |||
| in the EAP-AKA and EAP-SIM Parameters registry under Attribute Types. | (Section 6.2 in the EAP-AKA and EAP-SIM Parameters registry under | |||
| Attribute Types. | ||||
| Also, a new registry should be created to represent Diffie-Hellman | Also, a new registry should be created to represent Diffie-Hellman | |||
| Key Derivation Function types. The "EAP-AKA' with DH and Curve25519" | Key Derivation Function types. The "EAP-AKA' with ECDHE and | |||
| type (1, see Section 6.3) needs to be assigned, along with one | Curve25519" type (1, see Section 6.3) needs to be assigned, along | |||
| reserved value. The initial contents of this namespace are therefore | with one reserved value. The initial contents of this namespace are | |||
| as below; new values can be created through the Specification | therefore as below; new values can be created through the | |||
| Required policy [RFC8126]. | Specification Required policy [RFC8126]. | |||
| Value Description Reference | Value Description Reference | |||
| -------- --------------------------------- --------------- | -------- --------------------------------- --------------- | |||
| 0 Reserved [TBD BY IANA: THIS RFC] | 0 Reserved [TBD BY IANA: THIS RFC] | |||
| 1 EAP-AKA' with DH and Curve25519 [TBD BY IANA: THIS RFC] | 1 EAP-AKA' with ECDHE and Curve25519 [TBD BY IANA: THIS RFC] | |||
| 2-65535 Unassigned | 2-65535 Unassigned | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- | ||||
| Hashing for Message Authentication", RFC 2104, | ||||
| DOI 10.17487/RFC2104, February 1997, <https://www.rfc- | ||||
| editor.org/info/rfc2104>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
| editor.org/info/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, | (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>. | |||
| [RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved | ||||
| Extensible Authentication Protocol Method for 3rd | ||||
| Generation Authentication and Key Agreement (EAP-AKA')", | ||||
| RFC 5448, DOI 10.17487/RFC5448, May 2009, | ||||
| <https://www.rfc-editor.org/info/rfc5448>. | ||||
| [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | ||||
| Kivinen, "Internet Key Exchange Protocol Version 2 | ||||
| (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7296>. | ||||
| [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | |||
| for Security", RFC 7748, DOI 10.17487/RFC7748, January | for Security", RFC 7748, DOI 10.17487/RFC7748, January | |||
| 2016, <https://www.rfc-editor.org/info/rfc7748>. | 2016, <https://www.rfc-editor.org/info/rfc7748>. | |||
| [RFC8031] Nir, Y. and S. Josefsson, "Curve25519 and Curve448 for the | [RFC8031] Nir, Y. and S. Josefsson, "Curve25519 and Curve448 for the | |||
| Internet Key Exchange Protocol Version 2 (IKEv2) Key | Internet Key Exchange Protocol Version 2 (IKEv2) Key | |||
| Agreement", RFC 8031, DOI 10.17487/RFC8031, December 2016, | Agreement", RFC 8031, DOI 10.17487/RFC8031, December 2016, | |||
| <https://www.rfc-editor.org/info/rfc8031>. | <https://www.rfc-editor.org/info/rfc8031>. | |||
| [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 | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| [I-D.ietf-emu-rfc5448bis] | ||||
| Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | ||||
| "Improved Extensible Authentication Protocol Method for | ||||
| 3rd Generation Authentication and Key Agreement (EAP- | ||||
| AKA')", draft-ietf-emu-rfc5448bis-03 (work in progress), | ||||
| October 2018. | ||||
| 9.2. Informative References | 9.2. Informative References | |||
| [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>. | |||
| [RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS | [RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS | |||
| Authentication Protocol", RFC 5216, DOI 10.17487/RFC5216, | Authentication Protocol", RFC 5216, DOI 10.17487/RFC5216, | |||
| March 2008, <https://www.rfc-editor.org/info/rfc5216>. | March 2008, <https://www.rfc-editor.org/info/rfc5216>. | |||
| [RFC5448] Arkko, J., Lehtovirta, V., and P. Eronen, "Improved | ||||
| Extensible Authentication Protocol Method for 3rd | ||||
| Generation Authentication and Key Agreement (EAP-AKA')", | ||||
| RFC 5448, DOI 10.17487/RFC5448, May 2009, | ||||
| <https://www.rfc-editor.org/info/rfc5448>. | ||||
| [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an | |||
| Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May | |||
| 2014, <https://www.rfc-editor.org/info/rfc7258>. | 2014, <https://www.rfc-editor.org/info/rfc7258>. | |||
| [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T. | ||||
| Kivinen, "Internet Key Exchange Protocol Version 2 | ||||
| (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7296>. | ||||
| [I-D.mattsson-eap-tls13] | [I-D.mattsson-eap-tls13] | |||
| Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | Mattsson, J. and M. Sethi, "Using EAP-TLS with TLS 1.3", | |||
| draft-mattsson-eap-tls13-02 (work in progress), March | draft-mattsson-eap-tls13-02 (work in progress), March | |||
| 2018. | 2018. | |||
| [TrustCom2015] | [TrustCom2015] | |||
| Arkko, J., Norrman, K., Naslund, M., and B. Sahlin, "A | Arkko, J., Norrman, K., Naslund, M., and B. Sahlin, "A | |||
| USIM compatible 5G AKA protocol with perfect forward | USIM compatible 5G AKA protocol with perfect forward | |||
| secrecy", August 2015 in Proceedings of the TrustCom 2015, | secrecy", August 2015 in Proceedings of the TrustCom 2015, | |||
| IEEE. | IEEE. | |||
| [CB2014] Choudhary, A. and R. Bhandari, "3GPP AKA Protocol: | ||||
| Simplified Authentication Process", December 2014, | ||||
| International Journal of Advanced Research in Computer | ||||
| Science and Software Engineering, Volume 4, Issue 12. | ||||
| [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. | ||||
| [Heist2015] | [Heist2015] | |||
| Scahill, J. and J. Begley, "The great SIM heist", February | Scahill, J. and J. Begley, "The great SIM heist", February | |||
| 2015, in https://firstlook.org/theintercept/2015/02/19/ | 2015, in https://firstlook.org/theintercept/2015/02/19/ | |||
| great-sim-heist/ . | great-sim-heist/ . | |||
| [DOW1992] Diffie, W., vanOorschot, P., and M. Wiener, | [DOW1992] Diffie, W., vanOorschot, P., and M. Wiener, | |||
| "Authentication and Authenticated Key Exchanges", June | "Authentication and Authenticated Key Exchanges", June | |||
| 1992, in Designs, Codes and Cryptography 2 (2): pp. | 1992, in Designs, Codes and Cryptography 2 (2): pp. | |||
| 107-125. | 107-125. | |||
| Appendix A. Acknowledgments | Appendix A. Change Log | |||
| The -03 version of this draft changed the naming of various protocol | ||||
| components, values, and notation to match with the use of ECDH in | ||||
| ephemeral mode. The AT_KDF_PFS engotiation process was clarified in | ||||
| that exactly one key is ever sent in AT_KDF_ECDHE. The option of | ||||
| checking for zero key values IN ECDHE was added. The format of the | ||||
| actual key in AT_PUB_ECDHE was specified. Denial-of-service | ||||
| considerations for the PFS process have been updated. Bidding down | ||||
| attacks against this extension itself are discussed extensively. | ||||
| This version also addressed comments from reviewers, including the | ||||
| August review from Mohit Sethi, and comments made during IETF-102 | ||||
| discussion. | ||||
| Appendix B. Acknowledgments | ||||
| The authors would like to note that the technical solution in this | The authors would like to note that the technical solution in this | |||
| document came out of the TrustCom paper [TrustCom2015], whose authors | document came out of the TrustCom paper [TrustCom2015], whose authors | |||
| were J. Arkko, K. Norrman, M. Naslund, and B. Sahlin. This | were J. Arkko, K. Norrman, M. Naslund, and B. Sahlin. This | |||
| document uses also a lot of material from [RFC4187] by J. Arkko and | document uses also a lot of material from [RFC4187] by J. Arkko and | |||
| H. Haverinen as well as [RFC5448] by J. Arkko, V. Lehtovirta, and | H. Haverinen as well as [RFC5448] by J. Arkko, V. Lehtovirta, and | |||
| P. Eronen. | P. Eronen. | |||
| The authors would also like to thank Tero Kivinen, John Mattson, | The authors would also like to thank Tero Kivinen, John Mattson, | |||
| Mohit Sethi, Vesa Lehtovirta, Joseph Salowey, Kathleen Moriarty, | Mohit Sethi, Vesa Lehtovirta, Joseph Salowey, Kathleen Moriarty, | |||
| End of changes. 90 change blocks. | ||||
| 278 lines changed or deleted | 425 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/ | ||||