draft-ietf-emu-aka-pfs-10.txt | draft-ietf-emu-aka-pfs-latest.txt | |||
---|---|---|---|---|
Network Working Group J. Arkko | Network Working Group J. Arkko | |||
Internet-Draft K. Norrman | Internet-Draft K. Norrman | |||
Updates: 5448, 9048 (if approved) V. Torvinen | Updates: 5448, 9048 (if approved) J. Preuß Mattsson | |||
Intended status: Informational J. Preuß Mattsson | Intended status: Informational Ericsson | |||
Expires: 30 July 2023 Ericsson | Expires: 11 January 2024 10 July 2023 | |||
26 January 2023 | ||||
Forward Secrecy for the Extensible Authentication Protocol Method for | Forward Secrecy for the Extensible Authentication Protocol Method for | |||
Authentication and Key Agreement (EAP-AKA' FS) | Authentication and Key Agreement (EAP-AKA' FS) | |||
draft-ietf-emu-aka-pfs-10 | draft-ietf-emu-aka-pfs-latest | |||
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 the smart card supply chain, such as attacking | involved compromising the smart card supply chain, such as attacking | |||
SIM card manufacturers and operators in an effort to compromise | Universal Subscriber Identity Module (USIM) card manufacturers and | |||
shared secrets stored on these cards. Since the publication of those | operators in an effort to compromise long-term keys stored on these | |||
reports, manufacturing and provisioning processes have gained much | cards. Since the publication of those reports, manufacturing and | |||
scrutiny and have improved. However, the danger of resourceful | provisioning processes have received much scrutiny and have improved. | |||
attackers for these systems is still a concern. Always assuming | However, resourceful attackers are always a cause for concern. | |||
breach such as key compromise and minimizing the impact of breach are | Always assuming a breach, such as long-term key compromise, and | |||
essential zero-trust principles. | minimizing the impact of breach are essential zero trust principles. | |||
This specification updates RFC 9048, the improved Extensible | This document updates RFC 9048, the improved Extensible | |||
Authentication Protocol Method for 3GPP Mobile Network Authentication | Authentication Protocol Method for 3GPP Mobile Network Authentication | |||
and Key Agreement (EAP-AKA'), with an optional extension. Similarly, | and Key Agreement (EAP-AKA'), with an optional extension providing | |||
this specification also updates the earlier version of the EAP-AKA' | ephemeral key exchange. Similarly, this document also updates the | |||
specification in RFC 5448. The extension, when negotiated, provides | earlier version of the EAP-AKA' specification in RFC 5448. The | |||
Forward Secrecy for the session key generated as a part of the | extension EAP-AKA' Forward Secrecy (EAP-AKA' FS), when negotiated, | |||
authentication run in EAP-AKA'. This prevents an attacker who has | provides forward secrecy for the session keys generated as a part of | |||
gained access to the long-term pre-shared secret in a Subscriber | the authentication run in EAP-AKA'. This prevents an attacker who | |||
Identity Module (SIM) card from being able to decrypt any past | has gained access to the long-term key from obtaining session keys | |||
communications. In addition, if the attacker stays merely a passive | established in the past, assuming these have been properly deleted. | |||
eavesdropper, the extension prevents attacks against future sessions. | In addition, EAP-AKA' FS mitigates passive attacks (e.g., large scale | |||
This forces attackers to use active attacks instead. | pervasive monitoring) 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 30 July 2023. | This Internet-Draft will expire on 11 January 2024. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Protocol Design and Deployment Objectives . . . . . . . . . . 4 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Background . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Protocol Design and Deployment Objectives . . . . . . . . . . 5 | |||
3.1. AKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. Background . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.2. EAP-AKA' Protocol . . . . . . . . . . . . . . . . . . . . 7 | 4.1. AKA . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.3. Attacks Against Long-Term Shared Secrets in Smart | 4.2. EAP-AKA' Protocol . . . . . . . . . . . . . . . . . . . . 7 | |||
Cards . . . . . . . . . . . . . . . . . . . . . . . . . . 8 | 4.3. Attacks Against Long-Term Keys in Smart Cards . . . . . . 8 | |||
4. Requirements Language . . . . . . . . . . . . . . . . . . . . 8 | ||||
5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 9 | |||
6. Extensions to EAP-AKA' . . . . . . . . . . . . . . . . . . . 11 | 6. Extensions to EAP-AKA' . . . . . . . . . . . . . . . . . . . 11 | |||
6.1. AT_PUB_ECDHE . . . . . . . . . . . . . . . . . . . . . . 11 | 6.1. AT_PUB_ECDHE . . . . . . . . . . . . . . . . . . . . . . 11 | |||
6.2. AT_KDF_FS . . . . . . . . . . . . . . . . . . . . . . . . 12 | 6.2. AT_KDF_FS . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
6.3. Forward Secrecy Key Derivation Functions . . . . . . . . 14 | 6.3. Forward Secrecy Key Derivation Functions . . . . . . . . 14 | |||
6.4. ECDHE Groups . . . . . . . . . . . . . . . . . . . . . . 16 | 6.4. ECDHE Groups . . . . . . . . . . . . . . . . . . . . . . 16 | |||
6.5. Message Processing . . . . . . . . . . . . . . . . . . . 16 | 6.5. Message Processing . . . . . . . . . . . . . . . . . . . 16 | |||
6.5.1. EAP-Request/AKA'-Identity . . . . . . . . . . . . . . 16 | 6.5.1. EAP-Request/AKA'-Identity . . . . . . . . . . . . . . 17 | |||
6.5.2. EAP-Response/AKA'-Identity . . . . . . . . . . . . . 16 | 6.5.2. EAP-Response/AKA'-Identity . . . . . . . . . . . . . 17 | |||
6.5.3. EAP-Request/AKA'-Challenge . . . . . . . . . . . . . 17 | 6.5.3. EAP-Request/AKA'-Challenge . . . . . . . . . . . . . 17 | |||
6.5.4. EAP-Response/AKA'-Challenge . . . . . . . . . . . . . 17 | 6.5.4. EAP-Response/AKA'-Challenge . . . . . . . . . . . . . 18 | |||
6.5.5. EAP-Request/AKA'-Reauthentication . . . . . . . . . . 18 | 6.5.5. EAP-Request/AKA'-Reauthentication . . . . . . . . . . 18 | |||
6.5.6. EAP-Response/AKA'-Reauthentication . . . . . . . . . 18 | 6.5.6. EAP-Response/AKA'-Reauthentication . . . . . . . . . 18 | |||
6.5.7. EAP-Response/AKA'-Synchronization-Failure . . . . . . 18 | 6.5.7. EAP-Response/AKA'-Synchronization-Failure . . . . . . 19 | |||
6.5.8. EAP-Response/AKA'-Authentication-Reject . . . . . . . 18 | 6.5.8. EAP-Response/AKA'-Authentication-Reject . . . . . . . 19 | |||
6.5.9. EAP-Response/AKA'-Client-Error . . . . . . . . . . . 18 | 6.5.9. EAP-Response/AKA'-Client-Error . . . . . . . . . . . 19 | |||
6.5.10. EAP-Request/AKA'-Notification . . . . . . . . . . . . 19 | 6.5.10. EAP-Request/AKA'-Notification . . . . . . . . . . . . 19 | |||
6.5.11. EAP-Response/AKA'-Notification . . . . . . . . . . . 19 | 6.5.11. EAP-Response/AKA'-Notification . . . . . . . . . . . 19 | |||
7. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | |||
7.1. Security Properties . . . . . . . . . . . . . . . . . . . 21 | 7.1. Deployment Considerations . . . . . . . . . . . . . . . . 21 | |||
7.2. Denial-of-Service . . . . . . . . . . . . . . . . . . . . 23 | 7.2. Security Properties . . . . . . . . . . . . . . . . . . . 21 | |||
7.3. Identity Privacy . . . . . . . . . . . . . . . . . . . . 24 | 7.3. Denial-of-Service . . . . . . . . . . . . . . . . . . . . 23 | |||
7.4. Unprotected Data and Privacy . . . . . . . . . . . . . . 24 | 7.4. Identity Privacy . . . . . . . . . . . . . . . . . . . . 24 | |||
7.5. Post-Quantum Considerations . . . . . . . . . . . . . . . 24 | 7.5. Unprotected Data and Privacy . . . . . . . . . . . . . . 24 | |||
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | 7.6. Forward Secrecy within AT_ENCR . . . . . . . . . . . . . 24 | |||
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 7.7. Post-Quantum Considerations . . . . . . . . . . . . . . . 25 | |||
9.1. Normative References . . . . . . . . . . . . . . . . . . 26 | 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | |||
9.2. Informative References . . . . . . . . . . . . . . . . . 27 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 28 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 27 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 31 | 9.2. Informative References . . . . . . . . . . . . . . . . . 28 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 29 | |||
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 | ||||
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 the smart card supply chain, such as attacking | involved compromising the Universal Subscriber Identity Module (USIM) | |||
SIM card manufacturers and operators in an effort to compromise | card supply chain. Attacks revealing the AKA long-term key may occur | |||
shared secrets stored on these cards. Such attacks are conceivable, | for instance, during the manufacturing process of USIM cards, during | |||
for instance, during the manufacturing process of cards, or during | the transfer of the cards and associated information to the operator, | |||
the transfer of cards and associated information to the operator. | and when a system is running. Since the publication of reports about | |||
Since the publication of reports about such attacks, manufacturing | such attacks [Heist2015], manufacturing and provisioning processes | |||
and provisioning processes have gained much scrutiny and have | have gained much scrutiny and have improved. | |||
improved. | ||||
However, the danger of resourceful attackers attempting to gain | However, the danger of resourceful attackers attempting to gain | |||
information about Subscriber Identity Module (SIM) cards is still a | information about long-term keys is still a concern because many | |||
concern. They are a high-value target and concern a large number of | people use the service and these keys are high-value targets. Note | |||
people. Note that the attacks are largely independent of the used | that the attacks are largely independent of the used authentication | |||
authentication technology; the issue is not vulnerabilities in | technology; the issue is not vulnerabilities in algorithms or | |||
algorithms or protocols, but rather the possibility of someone | protocols, but rather the possibility of someone gaining unauthorized | |||
gaining unlawful access to key material. While the better protection | access to key material. Furthermore, an explicit goal of the IETF is | |||
of manufacturing and other processes is essential in protecting | to ensure that we understand the surveillance concerns related to | |||
against this, there is one question that we as protocol designers can | IETF protocols and take appropriate countermeasures [RFC7258]. | |||
ask. Is there something that we can do to limit the consequences of | ||||
attacks, should they occur? | ||||
The authors want to provide a public specification of an extension | While strong protection of manufacturing and other processes is | |||
that helps defend against one aspect of pervasive surveillance. This | essential in mitigating the risks, there is one question that we as | |||
is important, given the large number of users such practices may | protocol designers can ask. Is there something that we can do to | |||
affect. It is also a stated goal of the IETF to ensure that we | limit the consequences of attacks, should they occur? | |||
understand the surveillance concerns related to IETF protocols and | ||||
take appropriate countermeasures [RFC7258]. This document does that | ||||
for the improved Extensible Authentication Protocol Method for 3GPP | ||||
Mobile Network Authentication and Key Agreement (EAP-AKA'). | ||||
This specification updates [RFC9048], the EAP-AKA' authentication | This document specifies an extension that helps defend against one | |||
method, with an optional extension and strengthens the identity | aspect of pervasive surveillance. This is important, given the large | |||
privacy requirements. While optional, the use of this extension is | number of users such practices may affect. It is also a stated goal | |||
strongly RECOMMENDED. | of the IETF to ensure that we understand the surveillance concerns | |||
related to IETF protocols and take appropriate countermeasures | ||||
[RFC7258]. This document does that for the improved Extensible | ||||
Authentication Protocol Method for 3GPP Mobile Network Authentication | ||||
and Key Agreement (EAP-AKA'). | ||||
This document updates [RFC9048], the 3GPP Mobile Network | ||||
Authentication and Key Agreement (EAP-AKA') method, with an optional | ||||
extension providing ephemeral key exchange minimizing the impact of | ||||
long-term key compromise and strengthens the identity privacy | ||||
requirements. While optional, the use of this extension is strongly | ||||
recommended. | ||||
The extension, when negotiated, provides Forward Secrecy (FS) for the | The extension, when negotiated, provides Forward Secrecy (FS) for the | |||
session key generated as a part of the authentication run in EAP- | session key generated as a part of the authentication run in EAP- | |||
AKA'. This prevents an attacker who has gained access to the long- | AKA'. This prevents an attacker who has gained access to the long- | |||
term pre-shared secret in a SIM card from being able to decrypt any | term key in a USIM card from getting access to past session keys. In | |||
past communications. In addition, if the attacker stays merely a | addition to FS, the included Diffie-Hellman exchange, forces | |||
passive eavesdropper, the extension prevents attacks against future | attackers to be active if they want access to future session keys | |||
sessions. This forces attackers to use active attacks instead. This | even if they have access to the long-term key. This is beneficial, | |||
is beneficial, because active attacks demand much more resources to | because active attacks demand much more resources to launch, and are | |||
launch, and can generally be detected much easier. As with other | easier to detect. As with other protocols, an active attacker with | |||
protocols, an active attacker with access to the long-term key | access to the long-term key material will of course be able to attack | |||
material will of course be able to attack all future communications, | all future communications, but risks detection, particularly if done | |||
but risks detection, particularly if done at scale. The attacker is | at scale. | |||
forced to attempt to exfiltrate key material, if it can, on a | ||||
continuous basis, as opposed to learning it once [RFC7624]. | ||||
Attacks against Authentication and Key Agreement (AKA) authentication | Attacks against Authentication and Key Agreement (AKA) authentication | |||
via compromising the long-term secrets in the SIM cards have been an | via compromising the long-term keys have been an active discussion | |||
active discussion topic in many contexts. Forward secrecy is on the | topic in many contexts. Forward secrecy [DOW1992] is on the list of | |||
list of features for the next release of 3GPP (5G Phase 2), and this | features for the next release of 3GPP (5G Phase 2), and this document | |||
document provides a basis for providing this feature in a particular | provides a basis for providing this feature. | |||
fashion. | ||||
It should also be noted that 5G network architecture [TS.33.501] | It should also be noted that 5G network architecture [TS.33.501] | |||
includes the use of the EAP framework for authentication. While any | includes the use of the EAP framework for authentication. While any | |||
methods can be run, the default authentication method within that | methods can be run, the default authentication method within that | |||
context will be EAP-AKA'. As a result, improvements in EAP-AKA' | context will be EAP-AKA'. As a result, improvements in EAP-AKA' | |||
security have a potential to improve security for large number of | security have a potential to improve security for many users. | |||
users. | ||||
2. Protocol Design and Deployment Objectives | 2. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"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. Protocol Design and Deployment Objectives | ||||
The extension specified here re-uses large portions of the current | The 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 keeps the interface between the USIM and the mobile | |||
Subscriber Identification Module (USIM) and the mobile terminal | 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. | to EAP rather than the underlying AKA method. | |||
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. | |||
The use of this extension is at the discretion of the authenticating | The use of this extension is at the discretion of the authenticating | |||
parties. It should be noted that FS and defenses against passive | parties. It should be noted that FS and defenses against passive | |||
attacks are by no means a panacea, but they can provide a partial | attacks do not solve all problems, but they can provide a partial | |||
defense that increases the cost and risk associated with pervasive | defense that increases the cost and risk associated with pervasive | |||
surveillance. | surveillance. | |||
While adding forward secrecy to the existing mobile network | While adding forward secrecy to the existing mobile network | |||
infrastructure can be done in multiple different ways, the authors | infrastructure can be done in multiple different ways, this document | |||
believe that the approach chosen here is relatively easily | specifies a solution that is relatively easily deployable. In | |||
deployable. In particular: | particular: | |||
* As noted above, no new credentials are needed; there is no change | * As noted above, no new credentials are needed; there is no change | |||
to SIM cards. | to USIM cards. | |||
* FS property can be incorporated into any current or future system | * FS property can be incorporated into any current or future system | |||
that supports EAP, without changing any network functions beyond | that supports EAP, without changing any network functions beyond | |||
the EAP endpoints. | the EAP endpoints. | |||
* Key generation happens at the endpoints, enabling highest grade | * Key generation happens at the endpoints, enabling highest grade | |||
key material to be used both by the endpoints and the intermediate | key material to be used both by the endpoints and the intermediate | |||
systems (such as access points that are given access to specific | systems (such as access points that are given access to specific | |||
keys). | keys). | |||
* While EAP-AKA' is just one EAP method, for practical purposes | * While EAP-AKA' is just one EAP method, for practical purposes | |||
forward secrecy being available for both EAP-TLS [RFC5216] | forward secrecy being available for both EAP-TLS [RFC5216] | |||
[RFC9190] and EAP-AKA' ensures that for many practical systems | [RFC9190] and EAP-AKA' ensures that for many practical systems | |||
forward secrecy can be enabled for either all or significant | forward secrecy can be enabled for either all or significant | |||
fraction of users. | fraction of users. | |||
3. Background | 4. Background | |||
3.1. AKA | ||||
Authentication and Key Agreement (AKA) is based on challenge-response | The reader is assumed to have basic understanding of the EAP | |||
mechanisms and symmetric cryptography. In contrast with its earlier | framework [RFC3748]. | |||
GSM counterparts, AKA provides long key lengths and mutual | ||||
authentication. AKA typically runs in a Universal Subscriber | 4.1. AKA | |||
Identity Module (USIM). USIM is technically just an application that | ||||
can reside on a removable UICC, an embedded UICC, or integrated in a | We use the term Authentication and Key Agreement (AKA) for the main | |||
Trusted Execution Environment (TEE). In this document we use the | authentication and key agreement protocol used by 3GPP mobile | |||
term "SIM card" to refer to any Subscriber Identity Module capable of | networks from the third generation (3G) and onward. Later | |||
running AKA. | generations adds new features to AKA, but the core remains the same. | |||
It is based on challenge-response mechanisms and symmetric | ||||
cryptography. In contrast to its earlier GSM counterparts, AKA | ||||
provides long key lengths and mutual authentication. The phone | ||||
typically executes AKA in a USIM. USIM is technically just an | ||||
application that can reside on a removable UICC, an embedded UICC, or | ||||
integrated in a Trusted Execution Environment (TEE). In this | ||||
document we use the term "USIM card" to refer to any Subscriber | ||||
Identity Module capable of running AKA. | ||||
The goal of AKA is to mutually authenticate the USIM and the so- | ||||
called home environment, which is the authentication server in the | ||||
subscribers home operator's network. | ||||
AKA works in the following manner: | AKA works in the following manner: | |||
* The identity module and the home environment have agreed on a | * The USIM and the home environment have agreed on a long-term | |||
secret key beforehand. | symmetric key beforehand. | |||
* The actual authentication process starts by having the home | * The actual authentication process starts by having the home | |||
environment produce an authentication vector, based on the secret | environment produce an authentication vector, based on the long- | |||
key and a sequence number. The authentication vector contains a | term key and a sequence number. The authentication vector | |||
random part RAND, an authenticator part AUTN used for | contains a random part RAND, an authenticator part AUTN used for | |||
authenticating the network to the identity module, an expected | authenticating the network to the USIM, an expected result part | |||
result part XRES, a 128-bit session key for integrity check IK, | XRES, a 128-bit session key for integrity check IK, and a 128-bit | |||
and a 128-bit session key for encryption CK. | session key for encryption CK. | |||
* The authentication vector is passed to the serving network, which | * The authentication vector is passed to the serving network, which | |||
uses it to authenticate the device. | uses it to authenticate the device. | |||
* The RAND and the AUTN are delivered to the identity module. | * The RAND and the AUTN are delivered to the USIM. | |||
* The identity module verifies the AUTN, again based on the secret | * The USIM verifies the AUTN, again based on the long-term key and | |||
key and the sequence number. If this process is successful (the | the sequence number. If this process is successful (the AUTN is | |||
AUTN is valid and the sequence number used to generate AUTN is | valid and the sequence number used to generate AUTN is within the | |||
within the correct range), the identity module produces an | correct range), the USIM produces an authentication result RES and | |||
authentication result RES and sends it to the serving network. | sends it to the serving network. | |||
* The serving network verifies the correct result from the identity | * The serving network verifies that the result from the USIM matches | |||
module. If the result is correct, IK and CK can be used to | the expected value in the authentication vector. If it does, the | |||
protect further communications between the identity module and the | USIM is considered authenticated, and IK and CK can be used to | |||
home environment. | protect further communications between the USIM and the home | |||
environment. | ||||
3.2. EAP-AKA' Protocol | 4.2. EAP-AKA' Protocol | |||
When AKA is embedded into EAP, the authentication on the network side | When AKA is embedded into EAP, the authentication processing on the | |||
is moved to the home environment; the serving network performs the | network side is moved to the home environment. The 3GPP | |||
role of a pass-through authenticator. Figure 1 describes the basic | authentication database (AD) generates authentication vectors. The | |||
flow in the EAP-AKA' authentication process. The definition of the | 3GPP authentication server takes the role of EAP server. The USIM | |||
full protocol behavior, along with the definition of attributes | combined with the mobile phone takes the role of the client. The | |||
AT_RAND, AT_AUTN, AT_MAC, and AT_RES can be found in [RFC9048] and | difference between EAP-AKA [RFC4187] and EAP-AKA' [RFC9048] is that | |||
[RFC4187]. | EAP-AKA' binds the derived keys to the name of access network. | |||
Figure 1 describes the basic flow in the EAP-AKA' authentication | ||||
process. The definition of the full protocol behavior, along with | ||||
the definition of attributes AT_RAND, AT_AUTN, AT_MAC, and AT_RES can | ||||
be found in [RFC9048] and [RFC4187]. Note the use of EAP-terminology | ||||
from hereon. That is, the 3GPP serving network takes on the role of | ||||
an EAP access network. | ||||
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 that | | | | Server determines the network name and ensures that | | |||
| | the given access network is authorized to use the | | | | the given access network is authorized to use the | | |||
| | claimed name. The server then runs the AKA' algorithms | | | | claimed name. The server then runs the AKA' algorithms | | |||
| | generating RAND and AUTN, derives session keys from | | | | generating RAND and AUTN, derives session keys from | | |||
| | CK' and IK'. RAND and AUTN are sent as AT_RAND and | | | | CK' and IK'. RAND and AUTN are sent as AT_RAND and | | |||
| | AT_AUTN attributes, whereas the network name is | | | | AT_AUTN attributes, whereas the network name is | | |||
| | transported in the AT_KDF_INPUT attribute. AT_KDF | | | | transported in the AT_KDF_INPUT attribute. AT_KDF | | |||
| | signals the used key derivation function. The session | | | | signals the used key derivation function. The session | | |||
| | keys are used in creating the AT_MAC attribute. | | | | keys are used to create the AT_MAC attribute. | | |||
| +-----------------------------------------------------+--+ | | +-----------------------------------------------------+--+ | |||
| | | | | | |||
| EAP-Request/AKA'-Challenge | | | EAP-Request/AKA'-Challenge | | |||
| (AT_RAND, AT_AUTN, AT_KDF, AT_KDF_INPUT, AT_MAC) | | | (AT_RAND, AT_AUTN, AT_KDF, AT_KDF_INPUT, AT_MAC) | | |||
|<-----------------------------------------------------------+ | |<-----------------------------------------------------------+ | |||
+--+-----------------------------------------------------+ | | +--+-----------------------------------------------------+ | | |||
| The peer determines what the network name should be, | | | | The peer determines what the network name should be, | | | |||
| based on, e.g., what access technology it is using. | | | | based on, e.g., what access technology it is using. | | | |||
| The peer also retrieves the network name sent by the | | | | The peer also retrieves the network name sent by the | | | |||
| network from the AT_KDF_INPUT attribute. The two names | | | | network from the AT_KDF_INPUT attribute. The two names | | | |||
| are compared for discrepancies, and if necessary, the | | | | are compared for discrepancies, and if they do not | | | |||
| authentication is aborted. Otherwise, the network name | | | | match, the authentication is aborted. Otherwise, the | | | |||
| from AT_KDF_INPUT attribute is used in running the | | | | network name from AT_KDF_INPUT attribute is used in | | | |||
| AKA' algorithms, verifying AUTN from AT_AUTN and MAC | | | | running the AKA' algorithms, verifying AUTN from | | | |||
| from AT_MAC attributes. The peer then generates RES. | | | | AT_AUTN and MAC from AT_MAC attributes. The peer then | | | |||
| The peer also derives session keys from CK'/IK'. The | | | | generates RES. The peer also derives session keys from | | | |||
| AT_RES and AT_MAC attributes are constructed. | | | | CK'/IK'. The AT_RES and AT_MAC attributes are | | | |||
| constructed. | | | ||||
+--+-----------------------------------------------------+ | | +--+-----------------------------------------------------+ | | |||
| | | | | | |||
| EAP-Response/AKA'-Challenge | | | EAP-Response/AKA'-Challenge | | |||
| (AT_RES, AT_MAC) | | | (AT_RES, AT_MAC) | | |||
+----------------------------------------------------------->| | +----------------------------------------------------------->| | |||
| +-----------------------------------------------------+--+ | | +-----------------------------------------------------+--+ | |||
| | Server checks the RES and MAC values received in | | | | Server checks the RES and MAC values received in | | |||
| | AT_RES and AT_MAC, respectively. Success requires both | | | | AT_RES and AT_MAC, respectively. Success requires both | | |||
| | to be found correct. | | | | compared values match, respectively. | | |||
| +-----------------------------------------------------+--+ | | +-----------------------------------------------------+--+ | |||
| | | | | | |||
| 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 | 4.3. Attacks Against Long-Term Keys in Smart Cards | |||
Current 3GPP systems use SIM pre-shared key-based protocols and | ||||
Authentication and Key Agreement (AKA) to authenticate subscribers. | ||||
The general security properties and potential vulnerabilities of AKA | The general security properties and potential vulnerabilities of AKA | |||
and EAP-AKA' are discussed in [RFC9048]. | and EAP-AKA' are discussed in [RFC9048]. | |||
An important vulnerability in that discussion relates to the recent | An important question in that discussion relates to the potential | |||
reports of compromised long term pre-shared keys used in AKA | compromise of long-term keys, as discussed earlier. Attacks on long- | |||
[Heist2015]. These attacks are not specific to AKA or EAP-AKA', as | term keys are not specific to AKA or EAP-AKA', and all security | |||
all security systems fail at least to some extent if key material is | systems fail at least to some extent if key material is stolen. | |||
stolen. However, the reports indicate a need to look into solutions | However, it would be preferable to retain some security even in the | |||
that can operate at least to an extent under these types of attacks. | face of such attacks. This document specifies a mechanism that | |||
It is noted in [Heist2015] that some security can be retained even in | reduces risks to compromise of key material belonging to previous | |||
the face of the attacks by providing Forward Secrecy (FS) [DOW1992] | sessions, before the long-term keys were compromised. It also forces | |||
for the session key. If AKA would have provided FS, compromising the | attackers to be active even after the compromise. | |||
pre-shared key would not be sufficient to perform passive attacks; | ||||
the attacker is, in addition, forced to be a Man-In-The-Middle (MITM) | ||||
during the AKA run and subsequent communication between the parties. | ||||
4. Requirements Language | ||||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ||||
"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 | |||
Forward Secrecy for EAP-AKA' is achieved by using an Elliptic Curve | Forward secrecy for EAP-AKA' is achieved by using an Elliptic Curve | |||
Diffie-Hellman (ECDH) exchange [RFC7748]. To provide FS, the | Diffie-Hellman (ECDH) exchange [RFC7748]. To provide FS, the | |||
exchange must be run in an ephemeral manner, i.e., both sides | exchange must be run in an ephemeral manner, i.e., both sides | |||
generate temporary keys according to the negotiated ciphersuite, | generate temporary keys according to the negotiated ciphersuite, | |||
e.g., for X25519 this is done as specified in [RFC7748]. This method | e.g., for X25519 this is done as specified in [RFC7748]. This method | |||
is referred to as ECDHE, where the last 'E' stands for Ephemeral. | is referred to as ECDHE, where the last 'E' stands for Ephemeral. | |||
The two initially registered elliptic curves and their wire format is | The two initially registered elliptic curves and their wire formats | |||
chosen to align with the elliptic curves and formats specified for | are chosen to align with the elliptic curves and formats specified | |||
Subscription Concealed Identifier (SUCI) encryption in Appendix C.3.4 | for Subscription Concealed Identifier (SUCI) encryption in | |||
of 3GPP TS 33.501 [TS.33.501]. | Appendix C.3.4 of 3GPP TS 33.501 [TS.33.501]. | |||
The enhancements in the EAP-AKA' FS protocol are compatible with the | The enhancements in the EAP-AKA' FS protocol are compatible with the | |||
signaling flow and other basic structures of both AKA and EAP-AKA'. | signaling flow and other basic structures of both AKA and EAP-AKA'. | |||
The intent is to implement the enhancement as optional attributes | The intent is to implement the enhancement as optional attributes | |||
that legacy implementations can ignore. | that legacy implementations 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. This document specifies the | secure communication between the two. This document specifies the | |||
calculation of key material, providing new properties that are not | calculation of key material, providing new properties that are not | |||
present in key material provided by EAP-AKA' in its original form. | present in key material provided by EAP-AKA' in its original form. | |||
Figure 2 below describes the overall process. Since our goal has | Figure 2 below describes the overall process. Since the 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 home environment. Recall that the home environment represent the | |||
3GPP Authentication Database (AD) and server. 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. For 5G this is | |||
specified in 3GPP TS 33.501 [TS.33.501] | ||||
USIM Peer Server HSS | USIM Peer Server AD | |||
| | | | | | | | | | |||
| | EAP-Req/Identity | | | | | EAP-Req/Identity | | | |||
| |<---------------------------+ | | | |<---------------------------+ | | |||
| | | | | | | | | | |||
| | EAP-Resp/Identity | | | | | EAP-Resp/Identity | | | |||
| | (Privacy-Friendly) | | | | | (Privacy-Friendly) | | | |||
| +--------------------------->| | | | +--------------------------->| | | |||
| +-------+----------------------------+----------------+--+ | | +-------+----------------------------+----------------+--+ | |||
| | Server now has an identity for the peer. The server | | | | Server now has an identity for the peer. The server | | |||
| | then asks the help of HSS to run AKA algorithms, | | | | then asks the help of AD to run AKA algorithms, | | |||
| | generating RAND, AUTN, XRES, CK, IK. Typically, the | | | | generating RAND, AUTN, XRES, CK, IK. Typically, the | | |||
| | HSS performs the first part of key derivations so that | | | | AD performs the first part of key derivations so that | | |||
| | the authentication server gets the CK' and IK' keys | | | | the authentication server gets the CK' and IK' keys | | |||
| | already tied to a particular network name. | | | | already tied to a particular network name. | | |||
| +-------+----------------------------+----------------+--+ | | +-------+----------------------------+----------------+--+ | |||
| | | | | | | | | | |||
| | | ID, key deriv. | | | | | ID, key deriv. | | |||
| | | function, | | | | | function, | | |||
| | | network name | | | | | network name | | |||
| | +--------------->| | | | +--------------->| | |||
| | | | | | | | | | |||
| | | RAND, AUTN, | | | | | RAND, AUTN, | | |||
skipping to change at page 11, line 13 ¶ | skipping to change at page 11, line 15 ¶ | |||
| | | | | | | | | | |||
| | EAP-Resp/AKA'-Challenge | | | | | EAP-Resp/AKA'-Challenge | | | |||
| | AT_RES, AT_PUB_ECDHE, | | | | | AT_RES, AT_PUB_ECDHE, | | | |||
| | AT_MAC | | | | | AT_MAC | | | |||
| +--------------------------->| | | | +--------------------------->| | | |||
| +-------+----------------------------+----------------+--+ | | +-------+----------------------------+----------------+--+ | |||
| | The server now has all the necessary values. It | | | | The server now has all the necessary values. It | | |||
| | generates the ECDHE shared secret and checks the RES | | | | generates the ECDHE shared secret and checks the RES | | |||
| | and MAC values received in AT_RES and AT_MAC, | | | | and MAC values received in AT_RES and AT_MAC, | | |||
| | respectively. Success requires both to be found | | | | respectively. Success requires both to be found | | |||
| | correct. Note that when this specification is used, | | | | correct. Note that when this document is used, | | |||
| | the keys generated from EAP-AKA' are based on both | | | | the keys generated from EAP-AKA' are based on CK, IK, | | |||
| | CK/IK as well as the ECDHE value. Even if there was an | | | | and the ECDHE value. Even if there was an attacker who | | |||
| | attacker who held the long-term secret keys, only an | | | | held the long-term key, only an active attacker could | | |||
| | active attacker could have determined the generated | | | | have determined the generated session keys; in basic | | |||
| | session keys; in basic EAP-AKA' the generated keys are | | | | EAP-AKA' the generated keys are only based on CK and | | |||
| | only based on CK and IK. | | | | IK. | | |||
| +-------+----------------------------+----------------+--+ | | +-------+----------------------------+----------------+--+ | |||
| | | | | | | | | | |||
| | EAP-Success | | | | | EAP-Success | | | |||
| |<---------------------------+ | | | |<---------------------------+ | | |||
| | | | | | | | | | |||
Figure 2: EAP-AKA' FS Authentication Process | Figure 2: EAP-AKA' FS Authentication Process | |||
6. Extensions to EAP-AKA' | 6. Extensions to EAP-AKA' | |||
skipping to change at page 12, line 7 ¶ | skipping to change at page 12, line 9 ¶ | |||
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 ECDHE public key. The value depends on | This value is the sender's ECDHE public key. The value depends on | |||
AT_KDF_FS and is calculated as follows: | AT_KDF_FS and is calculated as follows: | |||
* For X25519/Curve25519, the length of this value is 32 bytes, | * For X25519, the length of this value is 32 bytes, encoded as | |||
encoded as specified in [RFC7748] Section 5. | specified in [RFC7748] Section 5. | |||
* For P-256, the length of this value is 33 bytes, encoded using | * For P-256, the length of this value is 33 bytes, encoded using | |||
the compressed form specified in Section 2.3.3 of [SEC1]. | the compressed form specified in Section 2.3.3 of [SEC1]. | |||
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_FS | 6.2. AT_KDF_FS | |||
The AT_KDF_FS indicates the used or desired forward secrecy key | The AT_KDF_FS indicates the used or desired forward secrecy key | |||
generation function, if the Forward Secrecy extension is taken into | generation function, if the Forward Secrecy (FS) extension is used. | |||
use. It will also at the same time indicate the used or desired | It will also indicate the used or desired ECDHE group. A new | |||
ECDHE group. A new attribute is needed to carry this information, as | attribute is needed to carry this information, as AT_KDF carries the | |||
AT_KDF carries the basic KDF value which is still used together with | basic KDF value which is still used together with the forward secrecy | |||
the forward secrecy KDF value. The basic KDF value is also used by | KDF value. The basic KDF value is also used by those EAP peers that | |||
those EAP peers that cannot or do not want to use this extension. | cannot or do not want to use this extension. | |||
This specification only specifies the behavior relating to the | This document only specifies the behavior relating to the following | |||
following combinations of basic KDF values and forward secrecy KDF | combinations of basic KDF values and forward secrecy KDF values: The | |||
values: The basic KDF value in AT_KDF is 1, as specified in [RFC5448] | basic KDF value in AT_KDF is 1, as specified in [RFC5448] and | |||
and [RFC9048], and the forward secrecy KDF values in AT_KDF_FS are 1 | [RFC9048], and the forward secrecy KDF values in AT_KDF_FS are 1 or | |||
or 2, as specified below and in Section 6.3. | 2, as specified below and in Section 6.3. | |||
Any future specifications that add either new basic KDF or new | Any future specifications that add either new basic KDF or new | |||
forward secrecy KDF values need to specify how they are treated and | forward secrecy KDF values need to specify how they are treated and | |||
what combinations are allowed. This requirement is an update to how | what combinations are allowed. This requirement is an update to how | |||
[RFC5448] and [RFC9048] may be extended in the future. | [RFC5448] and [RFC9048] may be extended in the future. | |||
The format of the AT_KDF_FS attribute is shown below. | The format of the AT_KDF_FS 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 | |||
skipping to change at page 13, line 24 ¶ | skipping to change at page 13, line 27 ¶ | |||
desired functions ordered by preference, the most preferred function | desired functions ordered by preference, the most preferred function | |||
being the first attribute. The most preferred function is the only | being the first attribute. The most preferred function is the only | |||
one that the server includes a public key value for, however. So for | one that the server includes a public key value for, however. So for | |||
a set of AT_KDF_FS attributes, there is always only one AT_PUB_ECDHE | a set of AT_KDF_FS attributes, there is always only one AT_PUB_ECDHE | |||
attribute. | attribute. | |||
Upon receiving a set of these attributes: | Upon receiving a set of these attributes: | |||
* If the peer supports and is willing to use the FS Key Derivation | * If the peer supports and is willing to use the FS Key Derivation | |||
Function indicated by the first AT_KDF_FS attribute, and is | Function indicated by the first AT_KDF_FS attribute, and is | |||
willing and able to use the extension defined in this | willing and able to use the extension defined in this document, | |||
specification, the function is taken into use without any further | the function is taken into use without any further negotiation. | |||
negotiation. | ||||
* If the peer does not support this function or is unwilling to use | * 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 | it, it responds to the server with an indication that a different | |||
function is needed. Similarly with the negotiation process | function is needed. Similarly with the negotiation process | |||
defined in [RFC9048] for AT_KDF, the peer sends EAP-Response/AKA'- | defined in [RFC9048] for AT_KDF, the peer sends EAP-Response/AKA'- | |||
Challenge message that contains only one attribute, AT_KDF_FS with | Challenge message that contains only one attribute, AT_KDF_FS with | |||
the value set to the desired alternative function from among the | the value set to the desired alternative function from among the | |||
ones suggested by the server earlier. If there is no suitable | ones suggested by the server earlier. If there is no suitable | |||
alternative, the peer has a choice of either falling back to EAP- | alternative, the peer has a choice of either falling back to EAP- | |||
AKA' or behaving as if AUTN had been incorrect and failing | AKA' or behaving as if AUTN had been incorrect and failing | |||
authentication (see Figure 3 of [RFC4187]). The peer MUST fail | authentication (see Figure 3 of [RFC4187]). The peer MUST fail | |||
the authentication if there are any duplicate values within the | the authentication if there are any duplicate values within the | |||
list of AT_KDF_FS attributes (except where the duplication is due | list of AT_KDF_FS attributes (except where the duplication is due | |||
to a request to change the key derivation function; see below for | to a request to change the key derivation function; see below for | |||
further information). | further information). | |||
* If the peer does not recognize the extension defined in this | * If the peer does not recognize the extension defined in this | |||
specification or is unwilling to use it, it ignores the AT_KDF_FS | document or is unwilling to use it, it ignores the AT_KDF_FS | |||
attribute. | attribute. | |||
Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF_FS from the | Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF_FS from the | |||
peer, the server checks that the suggested AT_KDF_FS value was one of | peer, the server checks that the suggested AT_KDF_FS value was one of | |||
the alternatives in its offer. The first AT_KDF_FS value in the | the alternatives in its offer. The first AT_KDF_FS value in the | |||
message from the server is not a valid alternative. If the peer has | message from the server is not a valid alternative. If the peer has | |||
replied with the first AT_KDF_FS value, the server behaves as if | replied with the first AT_KDF_FS 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]. | |||
skipping to change at page 14, line 41 ¶ | skipping to change at page 14, line 43 ¶ | |||
The FS Key Derivation Function type value is only used in the | The FS Key Derivation Function type value is only used in the | |||
AT_KDF_FS attribute. When the forward secrecy extension is used, the | AT_KDF_FS attribute. When the forward secrecy extension is used, the | |||
AT_KDF_FS attribute determines how to derive the keys MK_ECDHE, K_re, | AT_KDF_FS attribute determines how to derive the keys MK_ECDHE, K_re, | |||
MSK, and EMSK. The AT_KDF_FS attribute should not be confused with | MSK, and EMSK. The AT_KDF_FS attribute should not be confused with | |||
the different range of key derivation functions that can be | the different range of key derivation functions that can be | |||
represented in the AT_KDF attribute as defined in [RFC9048]. When | represented in the AT_KDF attribute as defined in [RFC9048]. When | |||
the forward secrecy extension is used, the AT_KDF attribute only | the forward secrecy extension is used, the AT_KDF attribute only | |||
specifies how to derive the keys MK, K_encr, and K_aut. | specifies how to derive the keys MK, K_encr, and K_aut. | |||
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 [RFC9048] EAP-AKA' | internal use within one authentication run as EAP-AKA' [RFC9048] | |||
does. For instance, K_aut that is used in AT_MAC is still exactly as | does. For instance, K_aut that is used in AT_MAC is still exactly as | |||
it was in EAP-AKA'. The only change to key derivation is in re- | it was in EAP-AKA'. The only change to key derivation is in re- | |||
authentication keys and keys exported out of the EAP method, MSK and | authentication keys and keys exported out of the EAP method, MSK and | |||
EMSK. As a result, EAP-AKA' attributes such as AT_MAC continue to be | EMSK. As a result, EAP-AKA' attributes such as AT_MAC continue to be | |||
usable even when this extension is in use. | usable even when this extension is in use. | |||
When the FS Key Derivation Function field in the AT_KDF_FS attribute | When the FS Key Derivation Function field in the AT_KDF_FS attribute | |||
is set to 1 or 2 and the Key Derivation Function field in the AT_KDF | is set to 1 or 2 and the Key Derivation Function field in the AT_KDF | |||
attribute is set to 1, the Master Key (MK) is derived as follows | attribute is set to 1, the Master Key (MK) and accompanying keys are | |||
below. | derived as follows. | |||
MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | MK = PRF'(IK'|CK',"EAP-AKA'"|Identity) | |||
MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' FS"|Identity) | MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' FS"|Identity) | |||
K_encr = MK[0..127] | K_encr = MK[0..127] | |||
K_aut = MK[128..383] | K_aut = MK[128..383] | |||
K_re = MK_ECDHE[0..255] | K_re = MK_ECDHE[0..255] | |||
MSK = MK_ECDHE[256..767] | MSK = MK_ECDHE[256..767] | |||
EMSK = MK_ECDHE[768..1279] | EMSK = MK_ECDHE[768..1279] | |||
Requirements for how to securely generate, validate, and process the | Requirements for how to securely generate, validate, and process the | |||
ephemeral public keys depend on the elliptic curve. | ephemeral public keys depend on the elliptic curve. | |||
For P-256 the SHARED_SECRET is the shared secret computed as | For P-256 the SHARED_SECRET is the shared secret computed as | |||
specified in Section 5.7.1.2 of [SP-800-56A]. Public key validation | specified in Section 5.7.1.2 of [SP-800-56A]. Public key validation | |||
requirements are defined in Section 5 of [SP-800-56A]. At least | requirements are defined in Section 5 of [SP-800-56A]. At least | |||
partial public-key validation MUST be done. The uncompressed | partial public-key validation MUST be done for the ephemeral public | |||
y-coordinate can be computed as described in Section 2.3.4 of [SEC1]. | keys. The uncompressed y-coordinate can be computed as described in | |||
Section 2.3.4 of [SEC1]. | ||||
For X25519 the SHARED_SECRET is the shared secret computed as | For X25519 the SHARED_SECRET is the shared secret computed as | |||
specified in Section 6.1 of [RFC7748]. Both the peer and the server | specified in 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 | MAY check for zero-value shared secret as specified in Section 6.1 of | |||
[RFC7748]. | [RFC7748]. | |||
Note: The way that shared secret is tested for zero can, if | Note: The way that shared secret is tested for zero can, if | |||
performed inappropriately, provide an ability for attackers to | performed inappropriately, provide an ability for attackers to | |||
listen to CPU power usage side channels. Refer to [RFC7748] for a | 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 | description of how to perform this check in a way that it does not | |||
become a problem. | become a problem. | |||
If validation of the public key or the shared secret fails, both | If validation of the other party's ephemeral public key or the shared | |||
parties MUST behave as if the current EAP-AKA' authentication process | secret fails, a party MUST behave as if the current EAP-AKA' | |||
starts again from the beginning. | authentication process starts again from the beginning. | |||
The rest of computation proceeds as defined in Section 3.3 of | The rest of computation proceeds as defined in Section 3.3 of | |||
[RFC9048]. | [RFC9048]. | |||
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 [RFC9048]. K_encr is the | pseudo-random function specified in [RFC9048]. K_encr is the | |||
encryption key, 128 bits, K_aut is the authentication key, 256 bits, | encryption key, 128 bits, K_aut is the authentication key, 256 bits, | |||
K_re is the re-authentication key, 256 bits, MSK is the Master | K_re is the re-authentication key, 256 bits, MSK is the Master | |||
Session Key, 512 bits, and EMSK is the Extended Master Session Key, | Session Key, 512 bits, and EMSK is the Extended Master Session Key, | |||
skipping to change at page 16, line 10 ¶ | skipping to change at page 16, line 22 ¶ | |||
[RFC3748]. | [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 [RFC9048] from IK and CK. | as specified in [RFC9048] 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' FS" is an eleven-characters-long ASCII string, also used as is. | AKA' FS" is an eleven-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]. | |||
A privacy-friendly identifier SHALL be used. | A privacy-friendly identifier [RFC9048] SHALL be used. | |||
6.4. ECDHE Groups | 6.4. ECDHE Groups | |||
The selection of suitable groups for the elliptic curve 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_FS. | deciding to use of particular key derivation function in AT_KDF_FS. | |||
For "EAP-AKA' with ECDHE and X25519" the group is the Curve25519 | For "EAP-AKA' with ECDHE and X25519" the group is the Curve25519 | |||
group specified in [RFC7748]. The support for this group is | group specified in [RFC7748]. The support for this group is | |||
REQUIRED. | REQUIRED. | |||
For "EAP-AKA' with ECDHE and P-256" the group is the NIST P-256 group | For "EAP-AKA' with ECDHE and P-256" the group is the NIST P-256 group | |||
(SEC group secp256r1), specified in Appendix D.1.2.3 of [FIPS186-4] | (SEC group secp256r1), specified in Section 3.2.1.3 of [SP-800-186] | |||
or alternatively Section 2.4.2 of [SEC2]. The support for this group | or alternatively Section 2.4.2 of [SEC2]. The support for this group | |||
is REQUIRED. | is REQUIRED. | |||
The term "support" here means that the group MUST be implemented and | ||||
MUST be possible to use during a protocol run. | ||||
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 [RFC9048] or [RFC4187] | otherwise specified here, the rules from [RFC9048] or [RFC4187] | |||
apply. | apply. | |||
6.5.1. EAP-Request/AKA'-Identity | 6.5.1. EAP-Request/AKA'-Identity | |||
No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes MUST | No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes MUST | |||
NOT be added to this message. The appearance of these attributes in | NOT be added to this message. The appearance of these attributes in | |||
a received message MUST be ignored. | 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_FS or AT_PUB_ECDHE attributes MUST | No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes MUST | |||
NOT be added to this message and that a privacy-friendly identifier | NOT be added to this message. The appearance of these attributes in | |||
MUST be used. The appearance of these attributes in a received | a received message MUST be ignored. The peer identifier SHALL comply | |||
message MUST be ignored. | with the privacy-friendly requirements of [RFC9190]. An example of a | |||
compliant way of constructing a privacy-friendly peer identifier is | ||||
using a non-NULL SUCI [TS.33.501]. | ||||
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 [RFC9048]. The | authentication as specified by [RFC4187] and [RFC9048]. The | |||
attributes AT_RAND, AT_AUTN, and AT_MAC MUST be included and checked | attributes AT_RAND, AT_AUTN, and AT_MAC MUST be included and checked | |||
on reception as specified in [RFC4187]. They are also necessary for | on reception as specified in [RFC4187]. They are also necessary for | |||
backwards compatibility. | 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_FS and | covered by the MAC for the AT_MAC attribute. The AT_KDF_FS and | |||
AT_PUB_ECDHE attributes MUST be included. The AT_PUB_ECDHE 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_FS | carries the server's public Diffie-Hellman key. If either AT_KDF_FS | |||
or AT_PUB_ECDHE is missing on reception, the peer MUST treat them as | or AT_PUB_ECDHE is missing on reception, the peer MUST treat it as if | |||
if neither one was sent, and the assume that the extension defined in | neither one was sent, and the assume that the extension defined in | |||
this specification is not in use. | this document 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_FS, AT_PUB_ECDHE before processing other attributes. Only if | AT_KDF_FS, 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 | |||
[RFC9048]. Finally, the operation in case an error occurs is | [RFC9048]. Finally, if there is an error error, see Section 6.3.1. | |||
specified in Section 6.3.1. of [RFC4187]. | 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 | |||
[RFC9048]. If the peer supports and is willing to perform the | [RFC9048]. If the peer supports and is willing to perform the | |||
extension specified in this protocol, and the server had made a valid | extension specified in this protocol, and the server had made a valid | |||
request involving the attributes specified in Section 6.5.3, the peer | request involving the attributes specified in Section 6.5.3, the peer | |||
responds per the rules specified below. Otherwise, the peer responds | responds per the rules specified below. Otherwise, the peer responds | |||
as specified in [RFC4187] and [RFC9048] and ignores the attributes | as specified in [RFC4187] and [RFC9048] and ignores the attributes | |||
skipping to change at page 18, line 7 ¶ | skipping to change at page 18, line 26 ¶ | |||
requires it to always use this extension, it behaves as if AUTN had | requires it to always use this extension, it behaves as if AUTN had | |||
been incorrect and fails the authentication. | 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 | |||
[RFC9048]. In EAP-Response/AKA'-Challenge, there is no message- | [RFC9048]. In EAP-Response/AKA'-Challenge, there is no message- | |||
specific data covered by the MAC. The AT_PUB_ECDHE attribute MUST be | specific data covered by the MAC. The AT_PUB_ECDHE attribute MUST be | |||
included, and carries the peer's public Diffie-Hellman key. | 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]. When processing this message, the Server MUST process | [RFC4187]. When processing this message, the Server MUST process | |||
AT_RES before processing other attributes. Only if these attribute | AT_RES before processing other attributes. The Server derives keys | |||
is verified to be valid, the Server derives keys and verifies AT_MAC. | and verifies AT_MAC only when this attribute is verified to be valid. | |||
If the Server has proposed the use of the extension specified in this | If the Server has proposed the use of the extension specified in this | |||
protocol, but the peer ignores and continues the basic EAP-AKA' | protocol, but the peer ignores and continues the basic EAP-AKA' | |||
authentication, the Server makes policy decision of whether this is | authentication, the Server makes policy decision of whether this is | |||
allowed. If this is allowed, it continues the EAP-AKA' | allowed. If this is allowed, it continues the EAP-AKA' | |||
authentication to completion. If it is not allowed, the Server MUST | authentication to completion. If it is not allowed, the Server MUST | |||
behave as if authentication failed. | 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]. | |||
skipping to change at page 19, line 19 ¶ | skipping to change at page 19, line 37 ¶ | |||
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 [RFC9048]. | since the publication of [RFC9048]. | |||
The possibility of attacks against key storage offered in SIM or | As discussed earlier (see Section 1 and Section 4.3, forward secrecy | |||
other smart cards has been a known threat. But as the discussion in | is an important countermeasure against well-resourced adversaries | |||
Section 3.3 shows, the likelihood of practically feasible attacks | that who may get access to the long-term keys, see Section 1. Many | |||
such as breaches in the smart card supply chain has increased. Many | of the attacks against these keys can be best dealt with improved | |||
of these attacks can be best dealt with improved processes, e.g., | processes, e.g., limiting the access to the key material within the | |||
limiting the access to the key material within the factory or | factory or personnel, etc. But not all attacks can be entirely ruled | |||
personnel, etc. But not all attacks can be entirely ruled out for | out for well-resourced adversaries, irrespective of what the | |||
well-resourced adversaries, irrespective of what the technical | technical algorithms and protection measures are. And the likelihood | |||
algorithms and protection measures are. Always assuming breach such | of practically feasible attacks has increased. To assume that a | |||
as key compromise and minimizing the impact of breach are essential | breach is inevitable or has likely already occurred [NSA-ZT], and to | |||
zero-trust principles. | minimize impact when breaches occur [NIST-ZT] are essential zero | |||
trust principles. One type of breach is key compromise or key | ||||
exfiltration. | ||||
If a mechanism without forward secrecy such as (5G-AKA, EAP-AKA') is | If a mechanism without ephemeral key exchange such as (5G-AKA, EAP- | |||
used the effects of key compromise are devastating. The serious | AKA') is used the effects of key compromise are devastating. There | |||
consequences of breach somewhere in the supply chain or after | are serious consequences of not properly providing forward secrecy | |||
delivery that are possible when 5G-AKA or EAP-AKA' is used but not | for the key establishment. For both control and user plane, and both | |||
when something with forward secrecy like EAP-AKA-FS is used are: | directions: | |||
1. A passive attacker can eavesdrop (decrypt) all future 5G | 1. An attacker can decrypt 5G communication that they previously | |||
communication (control and user plane both directions), | recorded. | |||
2. A passive attacker can decrypt 5G communication that they | 2. A passive attacker can eavesdrop (decrypt) all future 5G | |||
previously recorded in the past (control and user plane both | communication. | |||
directions), and | ||||
3. An active attacker can impersonate UE and Network and inject | 3. An active attacker can impersonate the UE or the Network and | |||
messages in an ongoing 5G connection between the real UE and the | inject messages in an ongoing 5G connection between the real UE | |||
real network (control and user plane both directions). | and the real network. | |||
Best practice security today is to mandate forward secrecy (as is | Best practice security today is to mandate forward secrecy (as is | |||
done in WPA3, EAP-TLS 1.3, EAP-TTLS 1.3, IKEv2, SSH, QUIC, WireGuard, | done in WPA3, EAP-TLS 1.3, EAP-TTLS 1.3, IKEv2, SSH, QUIC, WireGuard, | |||
Signal, etc.). It is RECOMMENDED to long term completely phase out | Signal, etc.). It is RECOMMENDED that EAP-AKA methods without | |||
AKA without forward secrecy. | forward secrecy be phased out in the long term. | |||
This extension can provide assistance in situations where there is a | This extension provide assistance against passive attacks from | |||
danger of attacks against the key material on SIM cards by | attackers that have comprimised the key material on USIM cards. | |||
adversaries that cannot or who are unwilling to mount active attacks | Passive attacks are attractive for attackers performing large scale | |||
against a large number of sessions. The extension also provides | pervasive monitoring as they require much less resources and are much | |||
protection against active attacks as they are forced to be a Man-In- | harder to detect. The extension also provides protection against | |||
The-Middle (MITM) during the AKA run and subsequent communication | active attacks as they are forced to be a Man-In-The-Middle (MITM) | |||
between the parties. Without forward secrecy an active attacker that | during the AKA run and subsequent communication between the parties. | |||
has compromised the long-term key can inject messages in an | Without forward secrecy an active attacker that has compromised the | |||
connection between the real Peer and the real server without being a | long-term key can inject messages in an connection between the real | |||
man-in-the-middle. This extension is most useful when used in a | Peer and the real server without being a man-in-the-middle. This | |||
context where EAP keys are used without further mixing that can | extension is most useful when used in a context where the MSK/EMSK | |||
provide Forward Secrecy. For instance, when used with IKEv2 | are used in protocols not providing forward secrecy. For instance, | |||
[RFC7296], the session keys produced by IKEv2 have this property, so | if used with IKEv2 [RFC7296], the session keys produced by IKEv2 have | |||
better characteristics of EAP keys is not that useful. However, | this property, so better characteristics of the MSK and EMSK is not | |||
typical link layer usage of EAP does not involve running Diffie- | that useful. However, typical link layer usage of EAP does not | |||
Hellman, so using EAP to authenticate access to a network is one | involve running another, forward secure, key exchange. Therefore, | |||
situation where the extension defined in this document can be | using EAP to authenticate access to a network is one situation where | |||
helpful. | the extension defined in this document can be helpful. | |||
This extension generates keying material using the ECDHE exchange in | This extension generates keying material using the ECDHE exchange in | |||
order to gain the FS property. This means that once an EAP-AKA' | order to gain the FS property. This means that once an EAP-AKA' | |||
authentication run ends, the session that it was used to protect is | authentication run ends, the session that it was used to protect is | |||
closed, and the corresponding keys are forgotten, even someone who | closed, and the corresponding keys are forgotten, even someone who | |||
has recorded all of the data from the authentication run and session | 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 | 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 | the keys used to protect the session or any previous session, without | |||
doing a brute force search of the session key space. | doing a brute force search of the session key space. | |||
Even if a compromise of the long-term keys has occurred, FS is still | Even if a compromise of the long-term keys has occurred, FS is still | |||
provided for all future sessions, as long as the attacker does not | provided for all future sessions, as long as the attacker does not | |||
become an active attacker. Of course, as with other protocols, if | become an active attacker. | |||
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 | ||||
FS. Still, past sessions where FS was in use remain protected. | ||||
Achieving FS requires that when a connection is closed, each endpoint | The extension does not provide protection against active attackers | |||
MUST forget not only the ephemeral keys used by the connection but | with access to the long-term key that mount a MITM attack on future | |||
also any information that could be used to recompute those keys. | EAP-AKA' runs will be able to eavesdrop on the traffic protected by | |||
the resulting session key(s). Still, past sessions where FS was in | ||||
use remain protected. | ||||
Using EAP-AKA' FS once provides forward secrecy. Forward secrecy | Using EAP-AKA' FS once provides forward secrecy. Forward secrecy | |||
limits the effect of key leakage in one direction (compromise of a | limits the effect of key leakage in one direction (compromise of a | |||
key at time T2 does not compromise some key at time T1 where T1 < | key at time T2 does not compromise some key at time T1 where T1 < | |||
T2). Protection in the other direction (compromise at time T1 does | T2). Protection in the other direction (compromise at time T1 does | |||
not compromise keys at time T2) can be achieved by rerunning ECDHE | not compromise keys at time T2) can be achieved by rerunning ECDHE | |||
frequently. If a long-term authentication key has been compromised, | frequently. If a long-term authentication key has been compromised, | |||
rerunning EAP-AKA' FS gives protection against passive attackers. | rerunning EAP-AKA' FS gives protection against passive attackers. | |||
Using the terms in [RFC7624], forward secrecy without rerunning ECDHE | Using the terms in [RFC7624], forward secrecy without rerunning ECDHE | |||
does not stop an attacker from doing static key exfiltration. | does not stop an attacker from doing static key exfiltration. | |||
Frequently rerunning EC(DHE) forces an attacker to do dynamic key | Frequently rerunning EC(DHE) forces an attacker to do dynamic key | |||
exfiltration (or content exfiltration). | exfiltration (or content exfiltration). | |||
7.1. Security Properties | 7.1. Deployment Considerations | |||
Achieving FS 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. | ||||
Similarly, other parts of the system matter. For instance, when the | ||||
keys generated by EAP are transported to a pass-through | ||||
authenticator, such transport must also provide forward secure | ||||
encryption with respect to the long-term keys used to establish its | ||||
security. Otherwise, an adversary may attack the transport | ||||
connection used to carry keys from EAP, and use this method to gain | ||||
access to current and past keys from EAP, which in turn would lead to | ||||
the compromise of anything protected by those EAP keys. | ||||
Of course, these considerations apply to any EAP method, not only | ||||
this one. | ||||
7.2. Security Properties | ||||
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. | |||
skipping to change at page 21, line 40 ¶ | skipping to change at page 22, line 28 ¶ | |||
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_FS and AT_PUB_ECDHE attributes in the EAP-Request/AKA'- | AT_KDF_FS 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. | detected. | |||
Except of course, if the adversary holds the long-term shared | Except of course, if the adversary holds the long-term key and | |||
secret and is willing to engage in an active attack. Such an | is willing to engage in an active attack. Such an attack can, | |||
attack can, for instance, forge the negotiation process so that | for instance, forge the negotiation process so that no FS will | |||
no FS will be provided. However, as noted above, an attacker | be provided. However, as noted above, an attacker with these | |||
with these capabilities will in any case be able to impersonate | capabilities will in any case be able to impersonate any party | |||
any party in the protocol and perform MITM attacks. That is | in the protocol and perform MITM attacks. That is not a | |||
not a situation that can be improved by a technical solution. | situation that can be improved by a technical solution. | |||
However, as discussed in the introduction, even an attacker | However, as discussed in the introduction, even an attacker | |||
with access to the long-term keys is required to be a MITM on | with access to the long-term keys is required to be a MITM on | |||
each AKA run and subsequent communication, which makes mass | each AKA run and subsequent communication, which makes mass | |||
surveillance more laborious. | surveillance more laborious. | |||
The security properties of the extension also depend on a | The security properties of the extension also depend on a | |||
policy choice. As discussed in Section 6.5.4, both the peer | 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 | and the server make a policy decision of what to do when it was | |||
willing to perform the extension specified in this protocol, | willing to perform the extension specified in this protocol, | |||
but the other side does not wish to use the extension. | but the other side does not wish to use the extension. | |||
skipping to change at page 22, line 23 ¶ | skipping to change at page 23, line 13 ¶ | |||
by the parties, no FS can obviously be provided. | by the parties, no FS can obviously be provided. | |||
If turning off the extension specified in this protocol is not | If turning off the extension specified in this protocol is not | |||
allowed by policy, the use of legacy equipment that does not | allowed by policy, the use of legacy equipment that does not | |||
support this protocol is no longer possible. This may be | support this protocol is no longer possible. This may be | |||
appropriate when, for instance, support for the extension is | appropriate when, for instance, support for the extension is | |||
sufficiently widespread, or required in a particular version of | sufficiently widespread, or required in a particular version of | |||
a mobile network. | a mobile network. | |||
Key derivation | Key derivation | |||
This extension provides key material that is based on the Diffie- | This extension provides forward secrecy. As described in several | |||
Hellman keys, yet bound to the authentication through the SIM | places in this specification, this can be roughly summarized as | |||
card. This means that subsequent payload communications between | that an attacker with access to long-term keys is unable to obtain | |||
the parties are protected with keys that are not solely based on | session keys of ended past sessions, assuming these sessions | |||
information in the clear (such as the RAND) and information | deleted all relevant session key material. This extension does | |||
derivable from the long-term shared secrets on the SIM card. As a | not change the properties related to re-authentication. No new | |||
result, if anyone successfully recovers shared secret information, | Diffie-Hellman run is performed during the re-authentication | |||
they are unable to decrypt communications protected by the keys | allowed by EAP-AKA'. However, if this extension was in use when | |||
generated through this extension. Note that the recovery of | the original EAP-AKA' authentication was performed, the keys used | |||
shared secret information could occur either before or after the | for re-authentication (K_re) are based on the Diffie-Hellman keys, | |||
time that the protected communications are used. When this | and hence continue to be equally safe against expose of the long- | |||
extension is used, communications at time t0 can be protected if | term key as the original authentication. | |||
at some later time t1 an adversary learns of long-term shared | ||||
secret and has access to a recording of the encrypted | ||||
communications. | ||||
Obviously, this extension is still vulnerable to attackers that | ||||
are willing to perform an active attack and who at the time of the | ||||
attack have access to the long-term shared secret. | ||||
This extension does not change the properties related to re- | ||||
authentication. No new Diffie-Hellman run is performed during the | ||||
re-authentication allowed by EAP-AKA'. However, if this extension | ||||
was in use when the original EAP-AKA' authentication was | ||||
performed, the keys used for re-authentication (K_re) are based on | ||||
the Diffie-Hellman keys, and hence continue to be equally safe | ||||
against expose of the long-term secrets as the original | ||||
authentication. | ||||
7.2. Denial-of-Service | 7.3. Denial-of-Service | |||
In addition, it is worthwhile to discuss Denial-of-Service attacks | In addition, it is worthwhile to discuss Denial-of-Service attacks | |||
and their impact on this protocol. The calculations involved in | and their impact on this protocol. The calculations involved in | |||
public key cryptography require computing power, which could be used | public key cryptography require computing power, which could be used | |||
in an attack to overpower either the peer or the server. While some | in an attack to overpower either the peer or the server. While some | |||
forms of Denial-of-Service attacks are always possible, the following | forms of Denial-of-Service attacks are always possible, the following | |||
factors help mitigate the concerns relating to public key | factors help mitigate the concerns relating to public key | |||
cryptography and EAP-AKA' FS. | cryptography and EAP-AKA' FS. | |||
* In 5G context, other parts of the connection setup involve public | * In 5G context, other parts of the connection setup involve public | |||
key cryptography, so while performing additional operations in | key cryptography, so while performing additional operations in | |||
EAP-AKA' is an additional concern, it does not change the overall | EAP-AKA' is an additional concern, it does not change the overall | |||
situation. As a result, the relevant system components need to be | situation. As a result, the relevant system components need to be | |||
dimensioned appropriately, and detection and management mechanisms | dimensioned appropriately, and detection and management mechanisms | |||
to reduce the effect of attacks need to be in place. | to reduce the effect of attacks need to be in place. | |||
* This specification is constructed so that a separation between the | * This specification is constructed so that a separation between the | |||
USIM and Peer on client side and the Server and HSS on network | USIM and Peer on client side and the Server and AD on network side | |||
side is possible. This ensures that the most sensitive (or | is possible. This ensures that the most sensitive (or legacy) | |||
legacy) system components cannot be the target of the attack. For | system components cannot be the target of the attack. For | |||
instance, EAP-AKA' and public key cryptography takes place in the | instance, EAP-AKA' and public key cryptography takes place in the | |||
phone and not the low-power SIM card. | phone and not the low-power USIM card. | |||
* EAP-AKA' has been designed so that the first actual message in the | * EAP-AKA' has been designed so that the first actual message in the | |||
authentication process comes from the Server, and that this | authentication process comes from the Server, and that this | |||
message will not be sent unless the user has been identified as an | message will not be sent unless the user has been identified as an | |||
active subscriber of the operator in question. While the initial | active subscriber of the operator in question. While the initial | |||
identity can be spoofed before authentication has succeeded, this | identity can be spoofed before authentication has succeeded, this | |||
reduces the efficiency of an attack. | reduces the efficiency of an attack. | |||
* Finally, this memo specifies an order in which computations and | * Finally, this memo specifies an order in which computations and | |||
checks must occur. When processing the EAP-Request/AKA'-Challenge | checks must occur. When processing the EAP-Request/AKA'-Challenge | |||
message, for instance, the AKA authentication must be checked and | message, for instance, the AKA authentication must be checked and | |||
succeed before the peer proceeds to calculating or processing the | succeed before the peer proceeds to calculating or processing the | |||
FS related parameters (see Section 6.5.4). The same is true of | FS related parameters (see Section 6.5.4). The same is true of | |||
EAP-Response/AKA'-Challenge (see Section 6.5.4). This ensures | EAP-Response/AKA'-Challenge (see Section 6.5.4). This ensures | |||
that the parties need to show possession of the long-term secret | that the parties need to show possession of the long-term key in | |||
in some way, and only then will the FS calculations become active. | some way, and only then will the FS calculations become active. | |||
This limits the Denial-of-Service to specific, identified | This limits the Denial-of-Service to specific, identified | |||
subscribers. While botnets and other forms of malicious parties | subscribers. While botnets and other forms of malicious parties | |||
could take advantage of actual subscribers and their key material, | could take advantage of actual subscribers and their key material, | |||
at least such attacks are (a) limited in terms of subscribers they | at least such attacks are (a) limited in terms of subscribers they | |||
control, and (b) identifiable for the purposes of blocking the | control, and (b) identifiable for the purposes of blocking the | |||
affected subscribers. | affected subscribers. | |||
7.3. Identity Privacy | 7.4. Identity Privacy | |||
Best practice privacy today is to mandate client identity protection | As specified in Section 6.5, the peer identity sent in the Identity | |||
as is done in EAP-TLS 1.3, EAP-TTLS 1.3, etc. A client supporting | Response message needs to follow the privacy-friendly requirements in | |||
EAP-AKA' FS MUST NOT send its username (or any other permanent | [RFC9190]. | |||
identifiers) in cleartext in the Identity Response (or any message | ||||
used instead of the Identity Response). | ||||
7.4. Unprotected Data and Privacy | 7.5. Unprotected Data and Privacy | |||
Unprotected data and metadata can reveal sensitive information and | Unprotected data and metadata can reveal sensitive information and | |||
need to be selected with care. In particular, this applies to | need to be selected with care. In particular, this applies to | |||
AT_KDF, AT_KDF_FS, AT_PUB_ECDHE, and AT_KDF_INPUT. AT_KDF, | AT_KDF, AT_KDF_FS, AT_PUB_ECDHE, and AT_KDF_INPUT. AT_KDF, | |||
AT_KDF_FS, and AT_PUB_ECDHE reveal the used cryptographic algorithms, | AT_KDF_FS, and AT_PUB_ECDHE reveal the used cryptographic algorithms, | |||
if these depend on the peer identity they leak information about the | if these depend on the peer identity they leak information about the | |||
peer. AT_KDF_INPUT reveals the network name, although that is done | peer. AT_KDF_INPUT reveals the network name, although that is done | |||
on purpose to bind the authentication to a particular context. | on purpose to bind the authentication to a particular context. | |||
An attacker observing network traffic may use the above types of | An attacker observing network traffic may use the above types of | |||
information for traffic flow analysis or to track an endpoint. | information for traffic flow analysis or to track an endpoint. | |||
7.5. Post-Quantum Considerations | 7.6. Forward Secrecy within AT_ENCR | |||
As of the publication of this specification, it is unclear when or | They keys K_encr and K_aut are calculated and used before the shared | |||
even if a quantum computer of sufficient size and power to exploit | secret from the ephemeral key exchange is available. | |||
elliptic curve cryptography will exist. Deployments that need to | ||||
consider risks decades into the future should transition to Post- | K_encr and K_aut are used to encrypt and MAC data in the EAP-Req/ | |||
Quantum Cryptography (PQC) in the not-too-distant future. Other | AKA'-Challenge message, especially the DH g^x ephemeral pub key. At | |||
systems may employ PQC when the quantum threat is more imminent. | that point the server does not yet have the corresponding g^y from | |||
Current PQC algorithms have limitations compared to Elliptic Curve | the peer and cannot compute the shared secret. K_aut is then used as | |||
Cryptography (ECC) and the data sizes could be problematic for some | the authentication key for the shared secret. | |||
constrained systems. If a Cryptographically Relevant Quantum | ||||
Computer (CRQC) is built it could recover the SHARED_SECRET from the | For K_encr though, none of the encrypted data sent in the EAP-Req/ | |||
ECDHE public keys. | AKA'-Challenge message in the AT_ENCR attribute will be forward | |||
secret. That data may include re-authentication pseudonyms, so an | ||||
adversary compromising the long-term key would be able to link re- | ||||
authentication protocol-runs when pseudonyms are used, within a | ||||
sequence of runs followed after a full EAP-AKA' authentication. No | ||||
such linking would be possible across different full authentaction | ||||
runs. If the pseudonum linkage risk is not acceptable, one way to | ||||
avoid the linkage is to always require full EAP-AKA' authentication. | ||||
7.7. Post-Quantum Considerations | ||||
As of the publication of this document, it is unclear when or even if | ||||
a quantum computer of sufficient size and power to exploit elliptic | ||||
curve cryptography will exist. Deployments that need to consider | ||||
risks decades into the future should transition to Post- Quantum | ||||
Cryptography (PQC) in the not-too-distant future. Other systems may | ||||
employ PQC when the quantum threat is more imminent. Current PQC | ||||
algorithms have limitations compared to Elliptic Curve Cryptography | ||||
(ECC) and the data sizes could be problematic for some constrained | ||||
systems. If a Cryptographically Relevant Quantum Computer (CRQC) is | ||||
built it could recover the SHARED_SECRET from the ECDHE public keys. | ||||
This would not affect the ability of EAP-AKA' - with or without this | This would not affect the ability of EAP-AKA' - with or without this | |||
extension - to authenticate properly, however. As symmetric key | extension - to authenticate properly, however. As symmetric key | |||
cryptography is safe even if CRQCs are built, an adversary still will | cryptography is safe even if CRQCs are built, an adversary still will | |||
not be able to disrupt authentication as it requires computing a | not be able to disrupt authentication as it requires computing a | |||
correct AT_MAC value. This computation requires the K_aut key which | correct AT_MAC value. This computation requires the K_aut key which | |||
is based on MK and, ultimately, CK' and IK', but not SHARED_SECRET. | is based on MK and, ultimately, CK' and IK', but not SHARED_SECRET. | |||
Other output keys do include SHARED_SECRET via MK_ECDHE, but still | Other output keys do include SHARED_SECRET via MK_ECDHE, but still | |||
include also CK' and IK' which are entirely based on symmetric | include also CK' and IK' which are entirely based on symmetric | |||
cryptography. As a result, an adversary with a quantum computer | cryptography. As a result, an adversary with a quantum computer | |||
still cannot compute the other output keys either. | still cannot compute the other output keys either. | |||
However, if the adversary has also obtained knowledge of the secrets | However, if the adversary has also obtained knowledge of the long- | |||
associated with the SIM card, they could then compute CK', IK', and | term key, they could then compute CK', IK', and SHARED_SECRET, and | |||
SHARED_SECRET, and any derived output keys. This means that the | any derived output keys. This means that the introduction of a | |||
introduction of a powerful enough quantum computer would disable this | powerful enough quantum computer would disable this protocol | |||
protocol extension's ability to provide the forward security | extension's ability to provide the forward security capability. This | |||
capability. This would make it necessary to update the current ECC | would make it necessary to update the current ECC algorithms in this | |||
algorithms in this specification to PQC algorithms. This | document to PQC algorithms. This document does not add such | |||
specification does not add such algorithms, but a future update can | algorithms, but a future update can do that. | |||
do that. | ||||
Symmetric algorithms used in EAP-AKA' FS such as HMAC-SHA-256 and the | Symmetric algorithms used in EAP-AKA' FS such as HMAC-SHA-256 and the | |||
algorithms use to generate AT_AUTN and AT_RES are practically secure | algorithms use to generate AT_AUTN and AT_RES are practically secure | |||
against even large robust quantum computers. EAP-AKA' FS is | against even large robust quantum computers. EAP-AKA' FS is | |||
currently only specified for use with ECDHE key exchange algorithms, | currently only specified for use with ECDHE key exchange algorithms, | |||
but use of any Key Encapsulation Method (KEM), including Post-Quantum | but use of any Key Encapsulation Method (KEM), including Post-Quantum | |||
Cryptography (PQC) KEMs, can be specified in the future. While the | Cryptography (PQC) KEMs, can be specified in the future. While the | |||
key exchange is specified with terms of the Diffie-Hellman protocol, | key exchange is specified with terms of the Diffie-Hellman protocol, | |||
the key exchange adheres to a KEM interface. AT_PUB_ECDHE would then | the key exchange adheres to a KEM interface. AT_PUB_ECDHE would then | |||
contain either the ephemeral public key of the server or the | contain either the ephemeral public key of the server or the | |||
SHARED_SECRET encapsulated with the server's public key. | SHARED_SECRET encapsulated with the server's public key. Note that | |||
the use of a KEM might require other changes such as including the | ||||
ephemeral public key of the server in the key derivation to retain | ||||
the property that both parties contribute randomness to the session | ||||
key. | ||||
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 Extensible Authentication Protocol Method for Global System for | with Extensible Authentication Protocol Method for Global System for | |||
Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM) | Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM) | |||
[RFC4186], EAP-AKA [RFC4186], and EAP-AKA' [RFC9048]. | [RFC4186], EAP-AKA [RFC4186], and EAP-AKA' [RFC9048]. | |||
Two new values (TBA1, TBA2) in the skippable range need to be | Two new values (TBA1, TBA2) in the skippable range need to be | |||
assigned for AT_PUB_ECDHE (Section 6.1) and AT_KDF_FS (Section 6.2 in | assigned for AT_PUB_ECDHE (Section 6.1) and AT_KDF_FS (Section 6.2) | |||
the "Attribute Types" registry under the "EAP-AKA and EAP-SIM | in the "Attribute Types" registry under the "EAP-AKA and EAP-SIM | |||
Parameters" group. | Parameters" group. | |||
Also, a new registry "EAP-AKA' AT_KDF_FS Key Derivation Function | Also, IANA is requested to create a new registry "EAP-AKA' AT_KDF_FS | |||
Values" should be created to represent FS Key Derivation Function | Key Derivation Function Values" to represent FS Key Derivation | |||
types. The "EAP-AKA' with ECDHE and X25519" and "EAP-AKA' with ECDHE | Function types. The "EAP-AKA' with ECDHE and X25519" and "EAP-AKA' | |||
and P-256" types (1 and 2, see Section 6.3) need to be assigned, | with ECDHE and P-256" types (1 and 2, see Section 6.3) need to be | |||
along with one reserved value. The initial contents of this registry | assigned, along with one reserved value. The initial contents of | |||
is illustrated in Table 1; new values can be created through the | this registry is illustrated in Table 1; new values can be created | |||
Specification Required policy [RFC8126]. | through the 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 | [TBD BY IANA: THIS RFC] | | | 1 | EAP-AKA' with | [TBD BY IANA: THIS RFC] | | |||
| | ECDHE and X25519 | | | | | ECDHE and X25519 | | | |||
+---------+------------------+-------------------------+ | +---------+------------------+-------------------------+ | |||
| 2 | EAP-AKA' with | [TBD BY IANA: THIS RFC] | | | 2 | EAP-AKA' with | [TBD BY IANA: THIS RFC] | | |||
skipping to change at page 27, line 24 ¶ | skipping to change at page 28, line 11 ¶ | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC9048] Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | [RFC9048] Arkko, J., Lehtovirta, V., Torvinen, V., and P. Eronen, | |||
"Improved Extensible Authentication Protocol Method for | "Improved Extensible Authentication Protocol Method for | |||
3GPP Mobile Network Authentication and Key Agreement (EAP- | 3GPP Mobile Network Authentication and Key Agreement (EAP- | |||
AKA')", RFC 9048, DOI 10.17487/RFC9048, October 2021, | AKA')", RFC 9048, DOI 10.17487/RFC9048, October 2021, | |||
<https://www.rfc-editor.org/info/rfc9048>. | <https://www.rfc-editor.org/info/rfc9048>. | |||
[FIPS186-4] | [SP-800-186] | |||
NIST, "Digital Signature Standard (DSS)", FIPS 186-4, July | NIST, "Recommendations for Discrete Logarithm-based | |||
2013, <https://doi.org/10.6028/NIST.FIPS.186-4>. | Cryptography: Elliptic Curve Domain Parameters", | |||
NIST Special Publication 800-186, February 2023, | ||||
<https://doi.org/10.6028/NIST.SP.800-186>. | ||||
[SEC1] Certicom Research, "SEC 1: Elliptic Curve Cryptography", | [SEC1] Certicom Research, "SEC 1: Elliptic Curve Cryptography", | |||
Standards for Efficient Cryptography 1 (SEC 1) Version | Standards for Efficient Cryptography 1 (SEC 1) Version | |||
2.0, May 2009, <https://www.secg.org/sec1-v2.pdf>. | 2.0, May 2009, <https://www.secg.org/sec1-v2.pdf>. | |||
[SEC2] Certicom Research, "SEC 2: Recommended Elliptic Curve | [SEC2] Certicom Research, "SEC 2: Recommended Elliptic Curve | |||
Domain Parameters", Standards for Efficient Cryptography 2 | Domain Parameters", Standards for Efficient Cryptography 2 | |||
(SEC 2) Version 2.0, January 2010, | (SEC 2) Version 2.0, January 2010, | |||
<https://www.secg.org/sec2-v2.pdf>. | <https://www.secg.org/sec2-v2.pdf>. | |||
skipping to change at page 28, line 43 ¶ | skipping to change at page 29, line 30 ¶ | |||
2015, | 2015, | |||
<https://theintercept.com/2015/02/19/great-sim-heist/>. | <https://theintercept.com/2015/02/19/great-sim-heist/>. | |||
[DOW1992] Diffie, W., Van Oorschot, P., and M. Wiener, | [DOW1992] Diffie, W., Van Oorschot, P., and M. Wiener, | |||
"Authentication and Authenticated Key Exchanges", Designs, | "Authentication and Authenticated Key Exchanges", Designs, | |||
Codes and Cryptography 2 pp. 107-125, June 1992, | Codes and Cryptography 2 pp. 107-125, June 1992, | |||
<https://doi.org/10.1007/BF00124891>. | <https://doi.org/10.1007/BF00124891>. | |||
[TS.33.501] | [TS.33.501] | |||
3GPP, "Security architecture and procedures for 5G | 3GPP, "Security architecture and procedures for 5G | |||
System", 3GPP TS 33.501 18.0.0, December 2022. | System", 3GPP TS 33.501 18.1.0, March 2023. | |||
[NIST-ZT] National Institute of Standards and Technology, | ||||
"Implementing a Zero Trust Architecture", December 2022, | ||||
<https://www.nccoe.nist.gov/sites/default/files/2022-12/ | ||||
zta-nist-sp-1800-35b-preliminary-draft-2.pdf>. | ||||
[NSA-ZT] National Security Agency, "Embracing a Zero Trust Security | ||||
Model", February 2021, <https://media.defense.gov/2021/ | ||||
Feb/25/2002588479/-1/-1/0/ | ||||
CSI_EMBRACING_ZT_SECURITY_MODEL_UOO115131-21.PDF>. | ||||
Appendix A. Change Log | Appendix A. Change Log | |||
RFC Editor: Please remove this appendix. | RFC Editor: Please remove this appendix. | |||
The -11 version of the WG draft has the following changes: | ||||
* Addressed IETF Last Call comments from directorates, Security AD, | ||||
Meiling Cheng, and a detailed review from the author Karl. In | ||||
particular: | ||||
* Replaced the reference to the deprecated FIPS 186-4 with SP | ||||
800-186. | ||||
* Changed HSS to Authentication Database (AD) as HSS is a 4G term. | ||||
* Explained difference between EAP-AKA and EAP-AKA' | ||||
* Explained that the emphemeral key exhange provide more that | ||||
forward secrecy and how this is important to mitigate pervasive | ||||
monitoring. | ||||
* Included links for the zero trust principles. | ||||
* Explained why K_encr and K_auth not being protected by the ECDHE | ||||
addition. | ||||
* Added that a future introduction of KEM might require additional | ||||
changes. | ||||
* Explained how ephemeral key exchange is linked to pervasive | ||||
monitoring. | ||||
* Changed SIM to USIM everywhere. A USIM is required for AKA. | ||||
* Changed to long-term key instead of long-term secret or long-term | ||||
shared secret. | ||||
* Reference updates. | ||||
* Various editorial improvements. | ||||
The -10 version of the WG draft has the following changes: | The -10 version of the WG draft has the following changes: | |||
* Various nits found by Peter Yee. | * Various nits found by Peter Yee. | |||
The -09 version of the WG draft has the following changes: | The -09 version of the WG draft has the following changes: | |||
* Scalable Vector Graphics (SVG) versions for all figures has been | * Scalable Vector Graphics (SVG) versions for all figures has been | |||
added and the figures has been slightly modified to render nicely | added and the figures has been slightly modified to render nicely | |||
with aasvg. | with aasvg. | |||
skipping to change at page 29, line 41 ¶ | skipping to change at page 31, line 29 ¶ | |||
encryption requirements. | encryption requirements. | |||
* The interaction between AT_KDF and AT_KDF_FS has been specified | * The interaction between AT_KDF and AT_KDF_FS has been specified | |||
more clearly, including specifying how future specifications need | more clearly, including specifying how future specifications need | |||
to specify the treatment of new combinations. | to specify the treatment of new combinations. | |||
* Addition of a discussion about the impacts of potential future | * Addition of a discussion about the impacts of potential future | |||
quantum computing attacks with specific impacts to this extension. | quantum computing attacks with specific impacts to this extension. | |||
* Addition of a discussion about metadata/unprotected data in | * Addition of a discussion about metadata/unprotected data in | |||
Section 7.4. | Section 7.5. | |||
* Reference updates. | * Reference updates. | |||
* Various editorial improvements. | * Various editorial improvements. | |||
The -07 version of the WG draft has the following changes: | The -07 version of the WG draft has the following changes: | |||
* The impact of forward secrecy explanation has been improved in the | * The impact of forward secrecy explanation has been improved in the | |||
abstract and security considerations. | abstract and security considerations. | |||
skipping to change at page 30, line 38 ¶ | skipping to change at page 32, line 25 ¶ | |||
The -05 version of the WG draft takes into account feedback from the | The -05 version of the WG draft takes into account feedback from the | |||
working group list, about the number of bytes needed to encode P-256 | working group list, about the number of bytes needed to encode P-256 | |||
values. | values. | |||
The -04 version of the WG draft takes into account feedback from the | The -04 version of the WG draft takes into account feedback from the | |||
May 2020 WG interim meeting, correcting the reference to the NIST | May 2020 WG interim meeting, correcting the reference to the NIST | |||
P-256 specification. | P-256 specification. | |||
The -03 version of the WG draft is first of all a refresh; there are | The -03 version of the WG draft is first of all a refresh; there are | |||
no issues that we think need addressing, beyond the one for which | no issues that we think need addressing, beyond the one for which | |||
there is a suggestion in -03: The specification now suggests an | there is a suggestion in -03: The document now suggests an alternate | |||
alternate group/curve as an optional one besides X25519. The | group/curve as an optional one besides X25519. The specific choice | |||
specific choice of particular groups and algorithms is still up to | of particular groups and algorithms is still up to the working group. | |||
the working group. | ||||
The -02 version of the WG draft took into account additional reviews, | The -02 version of the WG draft took into account additional reviews, | |||
and changed the document to update RFC 5448 (or rather, its | and changed the document to update RFC 5448 (or rather, its | |||
successor, [RFC9048]), changed the wording of the recommendation with | successor, [RFC9048]), changed the wording of the recommendation with | |||
regards to the use of this extension, clarified the references to the | regards to the use of this extension, clarified the references to the | |||
definition of X25519 and Curve25519, clarified the distinction to | definition of X25519 and Curve25519, clarified the distinction to | |||
ECDH methods that use partially static keys, and simplified the use | ECDH methods that use partially static keys, and simplified the use | |||
of AKA and SIM card terminology. Some editorial changes were also | of AKA and USIM card terminology. Some editorial changes were also | |||
made. | made. | |||
The -00 and -01 versions of the WG draft made no major changes, only | The -00 and -01 versions of the WG draft made no major changes, only | |||
updates to some references. | updates to some references. | |||
The -05 version is merely a refresh while the draft was waiting for | The -05 version is merely a refresh while the draft was waiting for | |||
WG adoption. | WG adoption. | |||
The -04 version of this draft made only editorial changes. | The -04 version of this draft made only editorial changes. | |||
skipping to change at page 31, line 34 ¶ | skipping to change at page 33, line 18 ¶ | |||
Acknowledgments | 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. Näslund, and B. Sahlin. This document | were J. Arkko, K. Norrman, M. Näslund, and B. Sahlin. This document | |||
uses also a lot of material from [RFC4187] by J. Arkko and | 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 Ben Campbell, Tim Evans, Zhang | The authors would also like to thank Ben Campbell, Meiling Chen, | |||
Fu, Russ Housley, Tero Kivinen, Eliot Lear, Vesa Lehtovirta, Kathleen | Linda Dunbar, Tim Evans, Zhang Fu, Russ Housley, Tero Kivinen, Eliot | |||
Moriarty, Prajwol Kumar Nakarmi, Anand R. Prasad, Michael Richardson, | Lear, Vesa Lehtovirta, Kathleen Moriarty, Prajwol Kumar Nakarmi, | |||
Göran Rune, Bengt Sahlin, Joseph Salowey, Mohit Sethi, Rene Struik, | Anand R. Prasad, Michael Richardson, Göran Rune, Bengt Sahlin, Joseph | |||
Sean Turner, Helena Vahidi Mazinani, and many other people at the | Salowey, Mohit Sethi, Rene Struik, Vesa Torvinen, Sean Turner, Helena | |||
Vahidi Mazinani, Paul Wouters, Bo Wu, and many other people at the | ||||
IETF, GSMA and 3GPP groups for interesting discussions in this | IETF, GSMA and 3GPP groups for interesting discussions in this | |||
problem space. | problem space. | |||
Authors' Addresses | Authors' Addresses | |||
Jari Arkko | Jari Arkko | |||
Ericsson | Ericsson | |||
FI-02420 Jorvas | FI-02420 Jorvas | |||
Finland | Finland | |||
Email: jari.arkko@piuha.net | Email: jari.arkko@piuha.net | |||
skipping to change at page 32, line 4 ¶ | skipping to change at page 33, line 34 ¶ | |||
IETF, GSMA and 3GPP groups for interesting discussions in this | IETF, GSMA and 3GPP groups for interesting discussions in this | |||
problem space. | problem space. | |||
Authors' Addresses | Authors' Addresses | |||
Jari Arkko | Jari Arkko | |||
Ericsson | Ericsson | |||
FI-02420 Jorvas | FI-02420 Jorvas | |||
Finland | Finland | |||
Email: jari.arkko@piuha.net | Email: jari.arkko@piuha.net | |||
Karl Norrman | Karl Norrman | |||
Ericsson | Ericsson | |||
SE-16483 Stockholm | SE-16483 Stockholm | |||
Sweden | Sweden | |||
Email: karl.norrman@ericsson.com | Email: karl.norrman@ericsson.com | |||
Vesa Torvinen | ||||
Ericsson | ||||
FI-02420 Jorvas | ||||
Finland | ||||
Email: vesa.torvinen@ericsson.com | ||||
John Preuß Mattsson | John Preuß Mattsson | |||
Ericsson | Ericsson | |||
SE-164 40 Kista | SE-164 40 Kista | |||
Sweden | Sweden | |||
Email: john.mattsson@ericsson.com | Email: john.mattsson@ericsson.com | |||
End of changes. 99 change blocks. | ||||
387 lines changed or deleted | 474 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |