rfc9678xml2.original.xml | rfc9678.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="utf-8" ?> | <?xml version='1.0' encoding='UTF-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<rfc ipr="trust200902" docName="draft-ietf-emu-aka-pfs-12" | <!DOCTYPE rfc [ | |||
category="std" updates="5448,9048" consensus="true"> | <!ENTITY nbsp " "> | |||
<?rfc toc="yes"?> | <!ENTITY zwsp "​"> | |||
<?rfc symrefs="yes"?> | <!ENTITY nbhy "‑"> | |||
<?rfc autobreaks="yes"?> | <!ENTITY wj "⁠"> | |||
<?rfc tocindent="yes"?> | ]> | |||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<front> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft -ietf-emu-aka-pfs-12" number="9678" category="std" updates="5448,9048" consensus ="true" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" symRe fs="true" sortRefs="true" version="3"> | |||
<title abbrev="EAP-AKA' FS">Forward Secrecy for the | <front> | |||
Extensible Authentication Protocol Method for Authentication and Key Agreement ( | <title abbrev="EAP-AKA' FS">Forward Secrecy for the Extensible | |||
EAP-AKA' FS)</title> | Authentication Protocol Method for Authentication and Key Agreement (EAP-AKA | |||
' FS)</title> | ||||
<author initials="J" surname="Arkko" fullname="Jari Arkko"> | <!-- [rfced] We had a few questions about the title of this document, | |||
<organization>Ericsson</organization> | mostly as relates to the expansion of the initialism EAP-AKA'. | |||
<address> | We would love some guidance that we can track for future | |||
<postal> | documents using this abbreviation as it looks like this has not | |||
<street/> | been consistent thus far. | |||
<city>Jorvas</city> <code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>jari.arkko@piuha.net</email> | ||||
</address> | ||||
</author> | ||||
<author initials="K" surname="Norrman" fullname="Karl Norrman"> | a) We believe the single quote following the abbreviation is used to | |||
<organization>Ericsson</organization> | indicate the "improved" method described in RFC 5448 (as opposed to | |||
<address> | basic EAP-AKA from RFC 4187). If this is so, should "improved" be | |||
<postal> | added to the title of this document? | |||
<street/> | ||||
<city>Stockholm</city> <code>16483</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>karl.norrman@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson"> | b) We see past expansions of both EAP-AKA and EAP-AKA' in RFC titles | |||
<organization>Ericsson</organization> | include 3rd Generation or 3GPP Mobile Network. Should some mention of | |||
<address> | 3rd generation be added to the title of this document? | |||
<postal> | ||||
<street/> | ||||
<city>Kista</city> <code>164 40</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>john.mattsson@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<keyword>EAP</keyword> | RFC 4187: | |||
<keyword>AKA</keyword> | Extensible Authentication Protocol Method for 3rd Generation | |||
<keyword>AKA'</keyword> | Authentication and Key Agreement (EAP-AKA) | |||
<keyword>EAP-AKA'</keyword> | ||||
<keyword>EAP-AKA' FS</keyword> | ||||
<keyword>3GPP</keyword> | ||||
<abstract> | RFC 5448: | |||
Improved Extensible Authentication Protocol Method for | ||||
3rd Generation Authentication and Key Agreement (EAP-AKA') | ||||
<t>This document updates RFC 9048, the improved Extensible | RFC 9048: | |||
Authentication Protocol Method for 3GPP Mobile Network Authentication | Improved Extensible Authentication Protocol Method for 3GPP Mobile | |||
and Key Agreement (EAP-AKA'), with an optional extension providing ephemeral k | Network Authentication and Key Agreement (EAP-AKA') | |||
ey exchange. | ||||
Similarly, this document also updates the earlier version | ||||
of the EAP-AKA' specification in RFC 5448. The extension EAP-AKA' Forward Secr | ||||
ecy (EAP-AKA' FS), when | ||||
negotiated, provides forward secrecy for the session keys | ||||
generated as a part of the authentication run in EAP-AKA'. This | ||||
prevents an attacker who has gained access to the long-term | ||||
key from obtaining session keys established in the past, assuming | ||||
these have been properly deleted. In addition, EAP-AKA' FS mitigates | ||||
passive attacks (e.g., large scale pervasive monitoring) | ||||
against future sessions. This forces attackers to use active attacks instead.< | ||||
/t> | ||||
</abstract> | c) If the title is really a 1:1 with the initialism, it may be | |||
beneficial for the reader to move the initialism to the front followed | ||||
by a colon (common use in RFCs) (see Perhaps A below). | ||||
</front> | With *all* the above in mind (a-c), here are some suggested titles. | |||
<middle> | If none of these fit the bill, please let us know if/how we can | |||
rephrase. | ||||
<section anchor="sec:intro" title="Introduction"> | Perhaps A: | |||
Forward Secrecy Extension to the Improved Extensible Authentication Protocol for | ||||
Authentication and Key Agreement (EAP-AKA' FS) | ||||
<t>Many different attacks have been reported as part of revelations | Perhaps B: | |||
EAP-AKA' FS: The Forward Secrecy Extension for Improved Extensible Authenticatio | ||||
n Protocol for Authentication and Key Agreement | ||||
Perhaps C: | ||||
Improved Extensible Authentication Protocol Method for 3GPP Mobile Network Authe | ||||
ntication and Key Agreement Forward Secrecy Extension (EAP-AKA' FS) | ||||
--> | ||||
<seriesInfo name="RFC" value="9678"/> | ||||
<author initials="J." surname="Arkko" fullname="Jari Arkko"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<city>Jorvas</city> | ||||
<code>02420</code> | ||||
<country>Finland</country> | ||||
</postal> | ||||
<email>jari.arkko@piuha.net</email> | ||||
</address> | ||||
</author> | ||||
<author initials="K." surname="Norrman" fullname="Karl Norrman"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<city>Stockholm</city> | ||||
<code>16483</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>karl.norrman@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson | ||||
"> | ||||
<organization>Ericsson</organization> | ||||
<address> | ||||
<postal> | ||||
<city>Kista</city> | ||||
<code>164 40</code> | ||||
<country>Sweden</country> | ||||
</postal> | ||||
<email>john.mattsson@ericsson.com</email> | ||||
</address> | ||||
</author> | ||||
<date month="October" year="2024"/> | ||||
<area>SEC</area> | ||||
<workgroup>emu</workgroup> | ||||
<keyword>EAP</keyword> | ||||
<keyword>AKA</keyword> | ||||
<keyword>AKA'</keyword> | ||||
<keyword>EAP-AKA'</keyword> | ||||
<keyword>EAP-AKA' FS</keyword> | ||||
<keyword>3GPP</keyword> | ||||
<!--[rfced] The Abstract and IANA Considerations each contain places | ||||
where an (almost) RFC title is listed for one RFC but a | ||||
"nickname" for another/others. How may we make these consistent? | ||||
Abstract: | ||||
This document updates RFC 9048, the improved Extensible Authentication | ||||
Protocol Method for 3GPP Mobile Network Authentication and Key | ||||
Agreement (EAP-AKA'),...Similarly, this document also updates the | ||||
earlier version of the EAP-AKA' specification in RFC 5448. | ||||
IANA: | ||||
This extension of EAP-AKA' shares its attribute space and subtypes | ||||
with Extensible Authentication Protocol Method for Global System for | ||||
Mobile Communications (GSM) Subscriber Identity Modules (EAP-SIM) | ||||
[RFC4186], EAP-AKA [RFC4187], and EAP-AKA' [RFC9048]. | ||||
--> | ||||
<abstract> | ||||
<t>This document updates RFC 9048, which details the improved Extensible A | ||||
uthentication | ||||
Protocol Method for 3GPP Mobile Network Authentication and Key Agreement | ||||
(EAP-AKA'), with an optional extension providing ephemeral key | ||||
exchange. Similarly, this document also updates the earlier version of | ||||
the EAP-AKA' specification in RFC 5448. The extension EAP-AKA' Forward | ||||
Secrecy (EAP-AKA' FS), when negotiated, provides forward secrecy for the | ||||
session keys generated as a part of the authentication run in | ||||
EAP-AKA'. This prevents an attacker who has gained access to the | ||||
long-term key from obtaining session keys established in the past, | ||||
assuming these have been properly deleted. In addition, EAP-AKA' FS | ||||
mitigates passive attacks (e.g., large-scale pervasive monitoring) | ||||
against future sessions. This forces attackers to use active attacks | ||||
instead.</t> | ||||
</abstract> | ||||
</front> | ||||
<middle> | ||||
<section anchor="sec_intro" numbered="true" toc="default"> | ||||
<name>Introduction</name> | ||||
<t>Many different attacks have been reported as part of the revelations | ||||
associated with pervasive surveillance. Some of the reported attacks | associated with pervasive surveillance. Some of the reported attacks | |||
involved compromising the Universal Subscriber Identity Module | involved compromising the Universal Subscriber Identity Module | |||
(USIM) card supply chain. Attacks revealing the AKA long-term key may occur fo | (USIM) card supply chain. Attacks revealing the AKA long-term key may occur, f | |||
r | or | |||
instance, during the manufacturing process of USIM cards, during the | instance:</t> | |||
transfer of the cards and associated information to | <ul><li>during the manufacturing process of USIM cards,</li> | |||
the operator, and when a system is running. Since | <li>during the transfer of the cards and associated information to | |||
the operator, and</li> | ||||
<li>when a system is running.</li></ul> | ||||
<t>Since | ||||
the publication of reports about such attacks | the publication of reports about such attacks | |||
<xref target="Heist2015"/>, manufacturing and provisioning | (see <xref target="Heist2015" format="default"/>), manufacturing and provision ing | |||
processes have gained much scrutiny and have improved.</t> | processes have gained much scrutiny and have improved.</t> | |||
<t>However, the danger of resourceful attackers attempting to gain | ||||
<t>However, the danger of resourceful attackers attempting to gain | ||||
information about long-term keys is still a concern because these keys are hig h-value targets. | information about long-term keys is still a concern because these keys are hig h-value targets. | |||
Note that | Note that | |||
the attacks are largely independent of the used authentication | the attacks are largely independent of the used authentication | |||
technology; the issue is not vulnerabilities in algorithms or | technology; the issue is not vulnerabilities in algorithms or | |||
protocols, but rather the possibility of someone gaining unauthorized | protocols, but rather the possibility of someone gaining unauthorized | |||
access to key material. Furthermore, an explicit goal of the IETF is to ensure | access to key material. Furthermore, an explicit goal of the IETF is to ensure | |||
that we understand the surveillance concerns related to IETF | that we understand the surveillance concerns related to IETF | |||
protocols and take appropriate countermeasures <xref target="RFC7258"/>.</t> | protocols and take appropriate countermeasures <xref target="RFC7258" format=" | |||
default"/>.</t> | ||||
<t>While strong protection of manufacturing and other processes is | <t>While strong protection of manufacturing and other processes is | |||
essential in mitigating surveillance and other risks associated with | essential in mitigating surveillance and other risks associated with | |||
AKA long-term keys, there are also protocol mechanisms that can | AKA long-term keys, there are also protocol mechanisms that can | |||
help.</t> | help.</t> | |||
<t>This document updates <xref target="RFC9048" format="default"/>, | ||||
"Improved Extensible Authentication Protocol Method for 3GPP Mobile | ||||
Network Authentication and Key Agreement (EAP-AKA')", with an optional | ||||
extension providing ephemeral key exchange, which minimizes the impact of | ||||
long-term key compromise and strengthens the identity privacy | ||||
requirements. This is important, given the large number of users of AKA | ||||
in mobile networks.</t> | ||||
<t>This document updates <xref target="RFC9048"/>, the Improved 3GPP | <t>The extension, when | |||
Mobile Network Authentication and Key Agreement (EAP-AKA') method, | negotiated, provides Forward Secrecy (FS) <xref target="DOW1992" format="defau | |||
with an optional extension providing ephemeral key exchange | lt"/> for the session key | |||
minimizing the impact of long-term key compromise and strengthens | ||||
the identity privacy requirements. This is important, given the | ||||
large number of users of AKA in mobile networks.</t> | ||||
<t>The extension, when | ||||
negotiated, provides Forward Secrecy (FS) <xref target="DOW1992"/> for the ses | ||||
sion key | ||||
generated as a part of the authentication run in EAP-AKA'. This | generated as a part of the authentication run in EAP-AKA'. This | |||
prevents an attacker who has gained access to the long-term | prevents an attacker who has gained access to the long-term | |||
key in a USIM card from getting access to past session | key in a USIM card from getting access to past session | |||
keys. In addition to FS, the included Diffie-Hellman exchange, forces | keys. In addition to FS, the included Diffie-Hellman exchange forces | |||
attackers to be active if they want access to future session keys even | attackers to be active if they want access to future session keys, even | |||
if they have access to the long-term key. This is beneficial, because | if they have access to the long-term key. This is beneficial because | |||
active attacks demand much more resources to launch, and are easier to | active attacks demand many more resources to launch and are easier to | |||
detect. As | detect. As | |||
with other protocols, an active attacker with access to the | with other protocols, an active attacker with access to the | |||
long-term key material will of course be able to attack all future | long-term key material will, of course, be able to attack all future | |||
communications, but risks detection, particularly if done at | communications, but risks detection, particularly if done at | |||
scale.</t> | scale.</t> | |||
<t>It should also be noted that 5G network architecture <xref target="TS.3 | ||||
<t>It should also be noted that 5G network architecture <xref target="TS.33.50 | 3.501" format="default"/> | |||
1"/> | ||||
includes the | includes the | |||
use of the EAP framework for authentication. While any methods can | use of the EAP framework for authentication. While any methods can | |||
be run, the default authentication method within that context will | be run, the default authentication method within that context will | |||
be EAP-AKA'. As a result, improvements in EAP-AKA' security have a | be EAP-AKA'. As a result, improvements in EAP-AKA' security have the | |||
potential to improve security for many users.</t> | potential to improve security for many users.</t> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>Requirements Language</name> | ||||
<section title="Requirements Language"> | <t> | |||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | ", | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
when, they appear in all capitals, as shown here.</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
be | ||||
</section> | interpreted as described in BCP 14 <xref target="RFC2119"/> <xref | |||
target="RFC8174"/> when, and only when, they appear in all capitals, as | ||||
<section title="Protocol Design and Deployment Objectives"> | shown here. | |||
</t> | ||||
<t>The extension specified here re-uses large portions of the | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Protocol Design and Deployment Objectives</name> | ||||
<t>The extension specified here reuses large portions of the | ||||
current structure of 3GPP interfaces and functions, with the | current structure of 3GPP interfaces and functions, with the | |||
rationale that this will make the construction more easily adopted. | rationale that this will make the construction more easily adopted. | |||
In particular, the construction keeps the interface between the | In particular, the construction keeps the interface between the | |||
USIM and the mobile | USIM and the mobile | |||
terminal intact. As a consequence, there is no need to roll out new | terminal 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 <xref target="TrustCom2015"/>, and uses much of the same | paper (see <xref target="TrustCom2015" format="default"/>) and uses much of th | |||
material, but applied to EAP rather than the underlying AKA | e same | |||
material but is applied to EAP rather than the underlying AKA | ||||
method.</t> | method.</t> | |||
<t>It has been a goal to implement this change as an extension | <!--[rfced] FYI - We have added an additional verb to the sentence | |||
of the widely supported EAP-AKA' method, rather than a completely new | below for clarity. Please review to ensure this update retains | |||
your intended meaning. | ||||
Original: | ||||
It has been a goal to implement this change as an extension of the | ||||
widely supported EAP-AKA' method, rather than a completely new | ||||
authentication method. | ||||
Current: | ||||
It has been a goal to implement this change as an extension of the | ||||
widely supported EAP-AKA' method, rather than implement a completely | ||||
new authentication method. | ||||
--> | ||||
<t>It has been a goal to implement this change as an extension | ||||
of the widely supported EAP-AKA' method, rather than implement a completely ne | ||||
w | ||||
authentication method. The extension is implemented as a set of | authentication method. The extension is implemented as a set of | |||
new, optional attributes, that are provided alongside the | new, optional attributes that are provided alongside the | |||
base attributes in EAP-AKA'. Old implementations can ignore | base attributes in EAP-AKA'. Old implementations can ignore | |||
these attributes, but their presence will nevertheless be verified | these attributes, but their presence will nevertheless be verified | |||
as part of base EAP-AKA' integrity verification process, helping | as part of the base EAP-AKA' integrity verification process, helping | |||
protect against bidding down attacks. This extension does | protect against bidding down attacks. This extension does | |||
not increase the number of rounds necessary to complete the | not increase the number of rounds necessary to complete the | |||
protocol.</t> | protocol.</t> | |||
<t>The use of this extension is at the discretion of the | ||||
<t>The use of this extension is at the discretion of the | ||||
authenticating parties. It should be noted that FS and defenses | authenticating parties. It should be noted that FS and defenses | |||
against passive attacks do not solve all problems, but they can | against passive attacks do not solve all problems, but they can | |||
provide a partial defense that increases the cost and risk | provide a partial defense that increases the cost and risk | |||
associated with pervasive surveillance.</t> | associated with pervasive surveillance.</t> | |||
<t>While adding FS to the existing mobile | ||||
<t>While adding forward secrecy to the existing mobile | ||||
network infrastructure can be done in multiple different ways, this | network infrastructure can be done in multiple different ways, this | |||
document specifies a solution that is relatively easily | document specifies a solution that is relatively easy to deploy. In particular | |||
deployable. In particular: | : | |||
<list style="symbols"> | </t> | |||
<ul spacing="normal"> | ||||
<t>As noted above, no new credentials are needed; there is no | <li>As noted above, no new credentials are needed; there is no change | |||
change to USIM cards.</t> | to USIM cards.</li> | |||
<li>FS property can be incorporated into any current or future system | ||||
<t>FS property can be incorporated into any current or future | that supports EAP, without changing any network functions beyond the | |||
system that supports EAP, without changing | EAP endpoints.</li> | |||
any network functions beyond the EAP endpoints.</t> | <li>Key generation happens at the endpoints, enabling the highest grade | |||
key material to be used both by the endpoints and the intermediate | ||||
<t>Key generation happens at the endpoints, enabling highest grade | systems (such as access points that are given access to specific | |||
key material to be used both by the endpoints and the intermediate | keys).</li> | |||
systems (such as access points that are given access to specific | <li>While EAP-AKA' is just one EAP method, for practical purposes, | |||
keys).</t> | FS being available for both EAP-TLS <xref | |||
target="RFC5216" format="default"/> <xref target="RFC9190" | ||||
<t>While EAP-AKA' is just one EAP method, for practical purposes | format="default"/> and EAP-AKA' ensures that, for many practical | |||
forward secrecy being available for both EAP-TLS <xref | systems, FS can be enabled for either all or a significant | |||
target="RFC5216"/> <xref target="RFC9190"/> and | fraction of users.</li> | |||
EAP-AKA' ensures that for many practical systems forward | </ul> | |||
secrecy can be enabled for either all or significant fraction of | </section> | |||
users.</t> | <section numbered="true" toc="default"> | |||
<name>Background</name> | ||||
</list></t> | <t>The reader is assumed to | |||
have a basic understanding of the EAP framework <xref target="RFC3748" forma | ||||
</section> | t="default"/>.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Background"> | <name>AKA</name> | |||
<t>The reader is assumed to | <t>We use the term "Authentication and Key Agreement" (or "AKA") for the | |||
have basic understanding of the EAP framework <xref target="RFC3748"/>.</t> | ||||
<section title="AKA"> | ||||
<t>We use the term Authentication and Key Agreement (AKA) for the | ||||
main authentication and key agreement protocol used by 3GPP mobile | main authentication and key agreement protocol used by 3GPP mobile | |||
networks from the third generation (3G) and onward. Later | networks from the third generation (3G) and onward. Later | |||
generations adds new features to AKA, but the core remains the | generations add new features to AKA, but the core remains the | |||
same. It is based on challenge-response mechanisms and symmetric | same. It is based on challenge-response mechanisms and symmetric | |||
cryptography. In contrast to its earlier GSM counterparts, AKA | cryptography. In contrast to its earlier GSM counterparts, AKA | |||
provides long key lengths and mutual authentication. The phone | provides long key lengths and mutual authentication. The phone | |||
typically executes AKA in a USIM. USIM is technically just an | typically executes AKA in a USIM. A USIM is technically just an | |||
application that can reside on a removable UICC (Universal | application that can reside on a removable Universal | |||
Integrated Circuit Card), an embedded UICC, or integrated in a | Integrated Circuit Card (UICC), an embedded UICC, or integrated in a | |||
Trusted Execution Environment (TEE). In this document we use the | Trusted Execution Environment (TEE). In this document, we use the | |||
term "USIM card" to refer to any Subscriber Identity Module | term "USIM card" to refer to any Subscriber Identity Module (SIM) | |||
capable of running AKA.</t> | capable of running AKA.</t> | |||
<t>The goal of AKA is to mutually authenticate the USIM and the so-called | <!--[rfced] In the text below, is "the subscribers" plural possessive | |||
home environment, which is the authentication server in the subscribers | ("the subscribers'") or singular possessive ("the subscriber's")? | |||
home operator's network.</t> | Additionally, are any other updates needed to "home operator's | |||
network"? | ||||
<t>AKA works in the following manner: | Original: | |||
<list style="symbols"> | ||||
<t>The USIM and the home environment have agreed on a | The goal of AKA is to mutually authenticate the USIM and the so- | |||
long-term symmetric key beforehand.</t> | called home environment, which is the authentication server in the | |||
<t>The actual authentication process starts by having the home | subscribers home operator's network. | |||
environment produce an authentication vector, based on the long-term | ||||
key and a sequence number. The authentication vector contains a | ||||
random part RAND, an authenticator part AUTN used for | ||||
authenticating the network to the USIM, an expected | ||||
result part XRES, a 128-bit session key for integrity check IK, | ||||
and a 128-bit session key for encryption CK.</t> | ||||
<t>The authentication vector is passed to the serving network, which | ||||
uses it to authenticate the device.</t> | ||||
<t>The RAND and the AUTN are delivered to the USIM.</t> | ||||
<t>The USIM verifies the AUTN, again based on the long-term | ||||
key and the sequence number. If this process is successful (the | ||||
AUTN is valid and the sequence number used to generate AUTN is | ||||
within the correct range), the USIM produces an | ||||
authentication result RES and sends it to the serving network.</t> | ||||
<t>The serving network verifies that the result from the USIM | ||||
matches the expected value in the authentication vector. | ||||
If it does, the USIM is considered authenticated, | ||||
and IK and CK can be used to | ||||
protect further communications between the USIM and the | ||||
home environment.</t> | ||||
</list></t> | ||||
</section> | ||||
<section title="EAP-AKA' Protocol"> | ||||
<t>When AKA is embedded into EAP, the authentication processing on | Perhaps: | |||
the network side is moved to the home environment. The 3GPP authentication | ||||
database (AD) generates authentication vectors. The 3GPP authentication | The goal of AKA is to mutually authenticate the USIM and the so- | |||
called home environment, which is the authentication server in the | ||||
subscriber's home operator's network. | ||||
--> | ||||
<t>The goal of AKA is to mutually authenticate the USIM and the so-calle | ||||
d | ||||
home environment, which is the authentication server in the subscribers | ||||
home operator's network.</t> | ||||
<t>AKA works in the following manner:</t> | ||||
<ul spacing="normal"> | ||||
<li>The USIM and the home environment have agreed on a long-term | ||||
symmetric key beforehand.</li> | ||||
<li>The actual authentication process starts by having the home | ||||
environment produce an authentication vector, based on the long-term | ||||
key and a sequence number. The authentication vector contains a | ||||
random part RAND, an authenticator part AUTN used for authenticating | ||||
the network to the USIM, an expected result part XRES, a 128-bit | ||||
session key for integrity check IK, and a 128-bit session key for | ||||
encryption CK.</li> | ||||
<li>The authentication vector is passed to the serving network, | ||||
which uses it to authenticate the device.</li> | ||||
<li>The RAND and the AUTN are delivered to the USIM.</li> | ||||
<li>The USIM verifies the AUTN, again based on the long-term key and | ||||
the sequence number. If this process is successful (the AUTN is | ||||
valid and the sequence number used to generate AUTN is within the | ||||
correct range), the USIM produces an authentication result RES and | ||||
sends it to the serving network.</li> | ||||
<li>The serving network verifies that the result from the USIM | ||||
matches the expected value in the authentication vector. If it | ||||
does, the USIM is considered authenticated, and IK and CK can be | ||||
used to protect further communications between the USIM and the home | ||||
environment.</li> | ||||
</ul> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-AKA' Protocol</name> | ||||
<t>When AKA is embedded into EAP, the authentication processing on | ||||
the network side is moved to the home environment. The 3GPP Authentication | ||||
Database (AD) generates authentication vectors. The 3GPP authentication | ||||
server takes the role of EAP server. The USIM combined with | server takes the role of EAP server. The USIM combined with | |||
the mobile phone takes the role of the client. | the mobile phone takes the role of client. | |||
The difference between EAP-AKA <xref target="RFC4187"/> and | The difference between EAP-AKA <xref target="RFC4187" format="default"/> and | |||
EAP-AKA' <xref target="RFC9048"/> is that EAP-AKA' | EAP-AKA' <xref target="RFC9048" format="default"/> is that EAP-AKA' | |||
binds the derived keys to the name of access network. | binds the derived keys to the name of the access network. | |||
<xref target="figaka"/> describes the basic flow in the EAP-AKA' | <xref target="figaka" format="default"/> describes the basic flow in the EAP | |||
-AKA' | ||||
authentication process. The definition of the full protocol | authentication process. The definition of the full protocol | |||
behavior, along with the definition of attributes AT_RAND, | behavior, along with the definition of the attributes AT_RAND, | |||
AT_AUTN, AT_MAC, and AT_RES can be found in <xref | AT_AUTN, AT_MAC, and AT_RES can be found in <xref target="RFC9048" format="d | |||
target="RFC9048"/> and <xref target="RFC4187"/>. | efault"/> and <xref target="RFC4187" format="default"/>. | |||
Note the use of EAP-terminology from hereon. That is, the 3GPP | Note the use of EAP terminology from hereon. That is, the 3GPP | |||
serving network takes on the role of an EAP access network. | serving network takes on the role of an EAP access network. | |||
</t> | </t> | |||
<figure title="EAP-AKA' Authentication Process" anchor="figaka"> | <!--[rfced] We have the following changes and questions regarding the | |||
<artset> | SVG and ASCII artwork in this document. | |||
<artwork type="ascii-art"><![CDATA[ | ||||
a. FYI - The SVG artwork in Figure 2 ran off the page in the PDF | ||||
output; we have adjusted the height and width attributes to allow this | ||||
artwork to fit the page. Please review and let us know any objections | ||||
or additional adjustments. | ||||
b. Please review and/or update artworks with the following suggestions | ||||
in mind: | ||||
i. Articles appear inconsistently in front of some terms in the | ||||
artwork (see an example below). How would you like to update for | ||||
consistency? | ||||
Original (with articles): | ||||
The peer also retrieves the network name sent by the network from the | ||||
AT_KDF_INPUT attribute... | ||||
Original (without articles): | ||||
Otherwise, the network name from AT_KDF_INPUT attribute... | ||||
ii. Please review instances where the expansion "key derivation | ||||
function" may be abbreviated to KDF. | ||||
Original: | ||||
AT_KDF signals the used key derivation function. | ||||
ID, key deriv. function, network name | ||||
Perhaps: | ||||
AT_KDF signals the used KDF. | ||||
ID, KDF, network name | ||||
c) We note that the text in the figure does not follow this guidance | ||||
from RFC 7322 (RFC Style Guide): | ||||
* When a sentence ended by a period is immediately followed by | ||||
another sentence, there must be two blank spaces after the period. | ||||
--> | ||||
<!--[rfced] We note that Figure 1 contains the only (two) mentions of | ||||
AKA'. Elsewhere we see AKA or EAP-AKA'. Please review and | ||||
confirm.--> | ||||
<figure anchor="figaka"> | ||||
<name>EAP-AKA' Authentication Process</name> | ||||
<artset> | ||||
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ | ||||
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 | | |||
skipping to change at line 334 ¶ | skipping to change at line 473 ¶ | |||
| +-----------------------------------------------------+--+ | | +-----------------------------------------------------+--+ | |||
| | 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 | | |||
| | compared values match, respectively. | | | | compared values match, respectively. | | |||
| +-----------------------------------------------------+--+ | | +-----------------------------------------------------+--+ | |||
| | | | | | |||
| EAP-Success | | | EAP-Success | | |||
|<-----------------------------------------------------------+ | |<-----------------------------------------------------------+ | |||
| | | | | | |||
]]></artwork> | ]]></artwork> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1 | ||||
.1" height="832" width="552" viewBox="0 0 552 832" class="diagram" text-anchor=" | ||||
middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | ||||
<path d="M 8,400 L 8,608" fill="none" stroke="black"/> | ||||
<path d="M 32,48 L 32,400" fill="none" stroke="black"/> | ||||
<path d="M 32,608 L 32,816" fill="none" stroke="black"/> | ||||
<path d="M 88,160 L 88,320" fill="none" stroke="black"/> | ||||
<path d="M 88,688 L 88,752" fill="none" stroke="black"/> | ||||
<path d="M 464,400 L 464,608" fill="none" stroke="black"/> | ||||
<path d="M 520,48 L 520,160" fill="none" stroke="black"/> | ||||
<path d="M 520,320 L 520,688" fill="none" stroke="black"/> | ||||
<path d="M 520,752 L 520,816" fill="none" stroke="black"/> | ||||
<path d="M 544,160 L 544,320" fill="none" stroke="black"/> | ||||
<path d="M 544,688 L 544,752" fill="none" stroke="black"/> | ||||
<path d="M 40,80 L 520,80" fill="none" stroke="black"/> | ||||
<path d="M 32,144 L 512,144" fill="none" stroke="black"/> | ||||
<path d="M 88,160 L 544,160" fill="none" stroke="black"/> | ||||
<path d="M 88,320 L 544,320" fill="none" stroke="black"/> | ||||
<path d="M 40,384 L 520,384" fill="none" stroke="black"/> | ||||
<path d="M 8,400 L 464,400" fill="none" stroke="black"/> | ||||
<path d="M 8,608 L 464,608" fill="none" stroke="black"/> | ||||
<path d="M 32,672 L 512,672" fill="none" stroke="black"/> | ||||
<path d="M 88,688 L 544,688" fill="none" stroke="black"/> | ||||
<path d="M 88,752 L 544,752" fill="none" stroke="black"/> | ||||
<path d="M 40,800 L 520,800" fill="none" stroke="black"/> | ||||
<path d="M 144,640 L 144,640" fill="none" stroke="black"/> | ||||
<polygon class="arrowhead" points="520,672 508,666.4 508,677.6" fi | ||||
ll="black" transform="rotate(0,512,672)"/> | ||||
<polygon class="arrowhead" points="520,144 508,138.4 508,149.6" fi | ||||
ll="black" transform="rotate(0,512,144)"/> | ||||
<polygon class="arrowhead" points="48,800 36,794.4 36,805.6" fill= | ||||
"black" transform="rotate(180,40,800)"/> | ||||
<polygon class="arrowhead" points="48,384 36,378.4 36,389.6" fill= | ||||
"black" transform="rotate(180,40,384)"/> | ||||
<polygon class="arrowhead" points="48,80 36,74.4 36,85.6" fill="bl | ||||
ack" transform="rotate(180,40,80)"/> | ||||
<g class="text"> | ||||
<text x="28" y="36">Peer</text> | ||||
<text x="516" y="36">Server</text> | ||||
<text x="428" y="68">EAP-Request/Identity</text> | ||||
<text x="128" y="116">EAP-Response/Identity</text> | ||||
<text x="80" y="132">(Includes</text> | ||||
<text x="148" y="132">user's</text> | ||||
<text x="208" y="132">Network</text> | ||||
<text x="268" y="132">Access</text> | ||||
<text x="344" y="132">Identifier,</text> | ||||
<text x="412" y="132">NAI)</text> | ||||
<text x="124" y="180">Server</text> | ||||
<text x="196" y="180">determines</text> | ||||
<text x="256" y="180">the</text> | ||||
<text x="304" y="180">network</text> | ||||
<text x="356" y="180">name</text> | ||||
<text x="392" y="180">and</text> | ||||
<text x="440" y="180">ensures</text> | ||||
<text x="492" y="180">that</text> | ||||
<text x="112" y="196">the</text> | ||||
<text x="152" y="196">given</text> | ||||
<text x="204" y="196">access</text> | ||||
<text x="264" y="196">network</text> | ||||
<text x="308" y="196">is</text> | ||||
<text x="364" y="196">authorized</text> | ||||
<text x="420" y="196">to</text> | ||||
<text x="448" y="196">use</text> | ||||
<text x="480" y="196">the</text> | ||||
<text x="128" y="212">claimed</text> | ||||
<text x="184" y="212">name.</text> | ||||
<text x="224" y="212">The</text> | ||||
<text x="268" y="212">server</text> | ||||
<text x="316" y="212">then</text> | ||||
<text x="356" y="212">runs</text> | ||||
<text x="392" y="212">the</text> | ||||
<text x="428" y="212">AKA'</text> | ||||
<text x="492" y="212">algorithms</text> | ||||
<text x="140" y="228">generating</text> | ||||
<text x="204" y="228">RAND</text> | ||||
<text x="240" y="228">and</text> | ||||
<text x="280" y="228">AUTN,</text> | ||||
<text x="336" y="228">derives</text> | ||||
<text x="400" y="228">session</text> | ||||
<text x="452" y="228">keys</text> | ||||
<text x="492" y="228">from</text> | ||||
<text x="112" y="244">CK'</text> | ||||
<text x="144" y="244">and</text> | ||||
<text x="180" y="244">IK'.</text> | ||||
<text x="220" y="244">RAND</text> | ||||
<text x="256" y="244">and</text> | ||||
<text x="292" y="244">AUTN</text> | ||||
<text x="328" y="244">are</text> | ||||
<text x="364" y="244">sent</text> | ||||
<text x="396" y="244">as</text> | ||||
<text x="440" y="244">AT_RAND</text> | ||||
<text x="488" y="244">and</text> | ||||
<text x="128" y="260">AT_AUTN</text> | ||||
<text x="208" y="260">attributes,</text> | ||||
<text x="288" y="260">whereas</text> | ||||
<text x="336" y="260">the</text> | ||||
<text x="384" y="260">network</text> | ||||
<text x="436" y="260">name</text> | ||||
<text x="468" y="260">is</text> | ||||
<text x="144" y="276">transported</text> | ||||
<text x="204" y="276">in</text> | ||||
<text x="232" y="276">the</text> | ||||
<text x="300" y="276">AT_KDF_INPUT</text> | ||||
<text x="396" y="276">attribute.</text> | ||||
<text x="468" y="276">AT_KDF</text> | ||||
<text x="128" y="292">signals</text> | ||||
<text x="176" y="292">the</text> | ||||
<text x="212" y="292">used</text> | ||||
<text x="248" y="292">key</text> | ||||
<text x="308" y="292">derivation</text> | ||||
<text x="392" y="292">function.</text> | ||||
<text x="448" y="292">The</text> | ||||
<text x="496" y="292">session</text> | ||||
<text x="116" y="308">keys</text> | ||||
<text x="152" y="308">are</text> | ||||
<text x="188" y="308">used</text> | ||||
<text x="220" y="308">to</text> | ||||
<text x="260" y="308">create</text> | ||||
<text x="304" y="308">the</text> | ||||
<text x="348" y="308">AT_MAC</text> | ||||
<text x="420" y="308">attribute.</text> | ||||
<text x="404" y="356">EAP-Request/AKA'-Challenge</text> | ||||
<text x="160" y="372">(AT_RAND,</text> | ||||
<text x="236" y="372">AT_AUTN,</text> | ||||
<text x="304" y="372">AT_KDF,</text> | ||||
<text x="392" y="372">AT_KDF_INPUT,</text> | ||||
<text x="480" y="372">AT_MAC)</text> | ||||
<text x="32" y="420">The</text> | ||||
<text x="68" y="420">peer</text> | ||||
<text x="132" y="420">determines</text> | ||||
<text x="196" y="420">what</text> | ||||
<text x="232" y="420">the</text> | ||||
<text x="280" y="420">network</text> | ||||
<text x="332" y="420">name</text> | ||||
<text x="380" y="420">should</text> | ||||
<text x="424" y="420">be,</text> | ||||
<text x="40" y="436">based</text> | ||||
<text x="80" y="436">on,</text> | ||||
<text x="120" y="436">e.g.,</text> | ||||
<text x="164" y="436">what</text> | ||||
<text x="212" y="436">access</text> | ||||
<text x="284" y="436">technology</text> | ||||
<text x="340" y="436">it</text> | ||||
<text x="364" y="436">is</text> | ||||
<text x="404" y="436">using.</text> | ||||
<text x="32" y="452">The</text> | ||||
<text x="68" y="452">peer</text> | ||||
<text x="108" y="452">also</text> | ||||
<text x="168" y="452">retrieves</text> | ||||
<text x="224" y="452">the</text> | ||||
<text x="272" y="452">network</text> | ||||
<text x="324" y="452">name</text> | ||||
<text x="364" y="452">sent</text> | ||||
<text x="396" y="452">by</text> | ||||
<text x="424" y="452">the</text> | ||||
<text x="48" y="468">network</text> | ||||
<text x="100" y="468">from</text> | ||||
<text x="136" y="468">the</text> | ||||
<text x="204" y="468">AT_KDF_INPUT</text> | ||||
<text x="300" y="468">attribute.</text> | ||||
<text x="360" y="468">The</text> | ||||
<text x="392" y="468">two</text> | ||||
<text x="432" y="468">names</text> | ||||
<text x="32" y="484">are</text> | ||||
<text x="84" y="484">compared</text> | ||||
<text x="136" y="484">for</text> | ||||
<text x="212" y="484">discrepancies,</text> | ||||
<text x="288" y="484">and</text> | ||||
<text x="316" y="484">if</text> | ||||
<text x="348" y="484">they</text> | ||||
<text x="380" y="484">do</text> | ||||
<text x="408" y="484">not</text> | ||||
<text x="44" y="500">match,</text> | ||||
<text x="88" y="500">the</text> | ||||
<text x="164" y="500">authentication</text> | ||||
<text x="236" y="500">is</text> | ||||
<text x="284" y="500">aborted.</text> | ||||
<text x="364" y="500">Otherwise,</text> | ||||
<text x="424" y="500">the</text> | ||||
<text x="48" y="516">network</text> | ||||
<text x="100" y="516">name</text> | ||||
<text x="140" y="516">from</text> | ||||
<text x="212" y="516">AT_KDF_INPUT</text> | ||||
<text x="304" y="516">attribute</text> | ||||
<text x="356" y="516">is</text> | ||||
<text x="388" y="516">used</text> | ||||
<text x="420" y="516">in</text> | ||||
<text x="48" y="532">running</text> | ||||
<text x="96" y="532">the</text> | ||||
<text x="132" y="532">AKA'</text> | ||||
<text x="200" y="532">algorithms,</text> | ||||
<text x="288" y="532">verifying</text> | ||||
<text x="348" y="532">AUTN</text> | ||||
<text x="388" y="532">from</text> | ||||
<text x="48" y="548">AT_AUTN</text> | ||||
<text x="96" y="548">and</text> | ||||
<text x="128" y="548">MAC</text> | ||||
<text x="164" y="548">from</text> | ||||
<text x="212" y="548">AT_MAC</text> | ||||
<text x="288" y="548">attributes.</text> | ||||
<text x="352" y="548">The</text> | ||||
<text x="388" y="548">peer</text> | ||||
<text x="428" y="548">then</text> | ||||
<text x="56" y="564">generates</text> | ||||
<text x="116" y="564">RES.</text> | ||||
<text x="152" y="564">The</text> | ||||
<text x="188" y="564">peer</text> | ||||
<text x="228" y="564">also</text> | ||||
<text x="280" y="564">derives</text> | ||||
<text x="344" y="564">session</text> | ||||
<text x="396" y="564">keys</text> | ||||
<text x="436" y="564">from</text> | ||||
<text x="52" y="580">CK'/IK'.</text> | ||||
<text x="104" y="580">The</text> | ||||
<text x="148" y="580">AT_RES</text> | ||||
<text x="192" y="580">and</text> | ||||
<text x="236" y="580">AT_MAC</text> | ||||
<text x="308" y="580">attributes</text> | ||||
<text x="368" y="580">are</text> | ||||
<text x="68" y="596">constructed.</text> | ||||
<text x="92" y="644">EAP-Response</text> | ||||
<text x="204" y="644">AKA'-Challenge</text> | ||||
<text x="76" y="660">(AT_RES,</text> | ||||
<text x="144" y="660">AT_MAC)</text> | ||||
<text x="124" y="708">Server</text> | ||||
<text x="180" y="708">checks</text> | ||||
<text x="224" y="708">the</text> | ||||
<text x="256" y="708">RES</text> | ||||
<text x="288" y="708">and</text> | ||||
<text x="320" y="708">MAC</text> | ||||
<text x="364" y="708">values</text> | ||||
<text x="428" y="708">received</text> | ||||
<text x="476" y="708">in</text> | ||||
<text x="124" y="724">AT_RES</text> | ||||
<text x="168" y="724">and</text> | ||||
<text x="216" y="724">AT_MAC,</text> | ||||
<text x="304" y="724">respectively.</text> | ||||
<text x="392" y="724">Success</text> | ||||
<text x="460" y="724">requires</text> | ||||
<text x="516" y="724">both</text> | ||||
<text x="132" y="740">compared</text> | ||||
<text x="196" y="740">values</text> | ||||
<text x="252" y="740">match,</text> | ||||
<text x="336" y="740">respectively.</text> | ||||
<text x="464" y="788">EAP-Success</text> | ||||
</g> | ||||
</svg> | ||||
</artwork> | ||||
</artset> | ||||
</figure> | ||||
</section> | <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/20 00/svg" version="1.1" height="832" width="552" viewBox="0 0 552 832" class="diag ram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-lineca p="round"> | |||
<section anchor="attacks" title="Attacks Against Long-Term Keys in Smart Cards | <path d="M 8,400 L 8,608" fill="none" stroke="black"/> | |||
"> | <path d="M 32,48 L 32,400" fill="none" stroke="black"/> | |||
<path d="M 32,608 L 32,816" fill="none" stroke="black"/> | ||||
<path d="M 88,160 L 88,320" fill="none" stroke="black"/> | ||||
<path d="M 88,688 L 88,752" fill="none" stroke="black"/> | ||||
<path d="M 464,400 L 464,608" fill="none" stroke="black"/> | ||||
<path d="M 520,48 L 520,160" fill="none" stroke="black"/> | ||||
<path d="M 520,320 L 520,688" fill="none" stroke="black"/> | ||||
<path d="M 520,752 L 520,816" fill="none" stroke="black"/> | ||||
<path d="M 544,160 L 544,320" fill="none" stroke="black"/> | ||||
<path d="M 544,688 L 544,752" fill="none" stroke="black"/> | ||||
<path d="M 40,80 L 520,80" fill="none" stroke="black"/> | ||||
<path d="M 32,144 L 512,144" fill="none" stroke="black"/> | ||||
<path d="M 88,160 L 544,160" fill="none" stroke="black"/> | ||||
<path d="M 88,320 L 544,320" fill="none" stroke="black"/> | ||||
<path d="M 40,384 L 520,384" fill="none" stroke="black"/> | ||||
<path d="M 8,400 L 464,400" fill="none" stroke="black"/> | ||||
<path d="M 8,608 L 464,608" fill="none" stroke="black"/> | ||||
<path d="M 32,672 L 512,672" fill="none" stroke="black"/> | ||||
<path d="M 88,688 L 544,688" fill="none" stroke="black"/> | ||||
<path d="M 88,752 L 544,752" fill="none" stroke="black"/> | ||||
<path d="M 40,800 L 520,800" fill="none" stroke="black"/> | ||||
<path d="M 144,640 L 144,640" fill="none" stroke="black"/> | ||||
<polygon class="arrowhead" points="520,672 508,666.4 508,677.6" | ||||
fill="black" transform="rotate(0,512,672)"/> | ||||
<polygon class="arrowhead" points="520,144 508,138.4 508,149.6" | ||||
fill="black" transform="rotate(0,512,144)"/> | ||||
<polygon class="arrowhead" points="48,800 36,794.4 36,805.6" fil | ||||
l="black" transform="rotate(180,40,800)"/> | ||||
<polygon class="arrowhead" points="48,384 36,378.4 36,389.6" fil | ||||
l="black" transform="rotate(180,40,384)"/> | ||||
<polygon class="arrowhead" points="48,80 36,74.4 36,85.6" fill=" | ||||
black" transform="rotate(180,40,80)"/> | ||||
<g class="text"> | ||||
<text x="28" y="36">Peer</text> | ||||
<text x="516" y="36">Server</text> | ||||
<text x="428" y="68">EAP-Request/Identity</text> | ||||
<text x="128" y="116">EAP-Response/Identity</text> | ||||
<text x="80" y="132">(Includes</text> | ||||
<text x="148" y="132">user's</text> | ||||
<text x="208" y="132">Network</text> | ||||
<text x="268" y="132">Access</text> | ||||
<text x="344" y="132">Identifier</text> | ||||
<text x="412" y="132">(NAI))</text> | ||||
<text x="124" y="180">Server</text> | ||||
<text x="196" y="180">determines</text> | ||||
<text x="256" y="180">the</text> | ||||
<text x="304" y="180">network</text> | ||||
<text x="356" y="180">name</text> | ||||
<text x="392" y="180">and</text> | ||||
<text x="440" y="180">ensures</text> | ||||
<text x="492" y="180">that</text> | ||||
<text x="112" y="196">the</text> | ||||
<text x="152" y="196">given</text> | ||||
<text x="204" y="196">access</text> | ||||
<text x="264" y="196">network</text> | ||||
<text x="308" y="196">is</text> | ||||
<text x="364" y="196">authorized</text> | ||||
<text x="420" y="196">to</text> | ||||
<text x="448" y="196">use</text> | ||||
<text x="480" y="196">the</text> | ||||
<text x="128" y="212">claimed</text> | ||||
<text x="184" y="212">name.</text> | ||||
<text x="224" y="212">The</text> | ||||
<text x="268" y="212">server</text> | ||||
<text x="316" y="212">then</text> | ||||
<text x="356" y="212">runs</text> | ||||
<text x="392" y="212">the</text> | ||||
<text x="428" y="212">AKA'</text> | ||||
<text x="492" y="212">algorithms</text> | ||||
<text x="140" y="228">generating</text> | ||||
<text x="204" y="228">RAND</text> | ||||
<text x="240" y="228">and</text> | ||||
<text x="280" y="228">AUTN,</text> | ||||
<text x="336" y="228">derives</text> | ||||
<text x="400" y="228">session</text> | ||||
<text x="452" y="228">keys</text> | ||||
<text x="492" y="228">from</text> | ||||
<text x="112" y="244">CK'</text> | ||||
<text x="144" y="244">and</text> | ||||
<text x="180" y="244">IK'.</text> | ||||
<text x="220" y="244">RAND</text> | ||||
<text x="256" y="244">and</text> | ||||
<text x="292" y="244">AUTN</text> | ||||
<text x="328" y="244">are</text> | ||||
<text x="364" y="244">sent</text> | ||||
<text x="396" y="244">as</text> | ||||
<text x="440" y="244">AT_RAND</text> | ||||
<text x="488" y="244">and</text> | ||||
<text x="128" y="260">AT_AUTN</text> | ||||
<text x="208" y="260">attributes,</text> | ||||
<text x="288" y="260">whereas</text> | ||||
<text x="336" y="260">the</text> | ||||
<text x="384" y="260">network</text> | ||||
<text x="436" y="260">name</text> | ||||
<text x="468" y="260">is</text> | ||||
<text x="144" y="276">transported</text> | ||||
<text x="204" y="276">in</text> | ||||
<text x="232" y="276">the</text> | ||||
<text x="300" y="276">AT_KDF_INPUT</text> | ||||
<text x="396" y="276">attribute.</text> | ||||
<text x="468" y="276">AT_KDF</text> | ||||
<text x="128" y="292">signals</text> | ||||
<text x="176" y="292">the</text> | ||||
<text x="212" y="292">used</text> | ||||
<text x="248" y="292">key</text> | ||||
<text x="308" y="292">derivation</text> | ||||
<text x="392" y="292">function.</text> | ||||
<text x="448" y="292">The</text> | ||||
<text x="496" y="292">session</text> | ||||
<text x="116" y="308">keys</text> | ||||
<text x="152" y="308">are</text> | ||||
<text x="188" y="308">used</text> | ||||
<text x="220" y="308">to</text> | ||||
<text x="260" y="308">create</text> | ||||
<text x="304" y="308">the</text> | ||||
<text x="348" y="308">AT_MAC</text> | ||||
<text x="420" y="308">attribute.</text> | ||||
<text x="404" y="356">EAP-Request/AKA'-Challenge</text> | ||||
<text x="160" y="372">(AT_RAND,</text> | ||||
<text x="236" y="372">AT_AUTN,</text> | ||||
<text x="304" y="372">AT_KDF,</text> | ||||
<text x="392" y="372">AT_KDF_INPUT,</text> | ||||
<text x="480" y="372">AT_MAC)</text> | ||||
<text x="32" y="420">The</text> | ||||
<text x="68" y="420">peer</text> | ||||
<text x="132" y="420">determines</text> | ||||
<text x="196" y="420">what</text> | ||||
<text x="232" y="420">the</text> | ||||
<text x="280" y="420">network</text> | ||||
<text x="332" y="420">name</text> | ||||
<text x="380" y="420">should</text> | ||||
<text x="424" y="420">be,</text> | ||||
<text x="40" y="436">based</text> | ||||
<text x="80" y="436">on,</text> | ||||
<text x="120" y="436">e.g.,</text> | ||||
<text x="164" y="436">what</text> | ||||
<text x="212" y="436">access</text> | ||||
<text x="284" y="436">technology</text> | ||||
<text x="340" y="436">it</text> | ||||
<text x="364" y="436">is</text> | ||||
<text x="404" y="436">using.</text> | ||||
<text x="32" y="452">The</text> | ||||
<text x="68" y="452">peer</text> | ||||
<text x="108" y="452">also</text> | ||||
<text x="168" y="452">retrieves</text> | ||||
<text x="224" y="452">the</text> | ||||
<text x="272" y="452">network</text> | ||||
<text x="324" y="452">name</text> | ||||
<text x="364" y="452">sent</text> | ||||
<text x="396" y="452">by</text> | ||||
<text x="424" y="452">the</text> | ||||
<text x="48" y="468">network</text> | ||||
<text x="100" y="468">from</text> | ||||
<text x="136" y="468">the</text> | ||||
<text x="204" y="468">AT_KDF_INPUT</text> | ||||
<text x="300" y="468">attribute.</text> | ||||
<text x="360" y="468">The</text> | ||||
<text x="392" y="468">two</text> | ||||
<text x="432" y="468">names</text> | ||||
<text x="32" y="484">are</text> | ||||
<text x="84" y="484">compared</text> | ||||
<text x="136" y="484">for</text> | ||||
<text x="212" y="484">discrepancies,</text> | ||||
<text x="288" y="484">and</text> | ||||
<text x="316" y="484">if</text> | ||||
<text x="348" y="484">they</text> | ||||
<text x="380" y="484">do</text> | ||||
<text x="408" y="484">not</text> | ||||
<text x="44" y="500">match,</text> | ||||
<text x="88" y="500">the</text> | ||||
<text x="164" y="500">authentication</text> | ||||
<text x="236" y="500">is</text> | ||||
<text x="284" y="500">aborted.</text> | ||||
<text x="364" y="500">Otherwise,</text> | ||||
<text x="424" y="500">the</text> | ||||
<text x="48" y="516">network</text> | ||||
<text x="100" y="516">name</text> | ||||
<text x="140" y="516">from</text> | ||||
<text x="212" y="516">AT_KDF_INPUT</text> | ||||
<text x="304" y="516">attribute</text> | ||||
<text x="356" y="516">is</text> | ||||
<text x="388" y="516">used</text> | ||||
<text x="420" y="516">in</text> | ||||
<text x="48" y="532">running</text> | ||||
<text x="96" y="532">the</text> | ||||
<text x="132" y="532">AKA'</text> | ||||
<text x="200" y="532">algorithms,</text> | ||||
<text x="288" y="532">verifying</text> | ||||
<text x="348" y="532">AUTN</text> | ||||
<text x="388" y="532">from</text> | ||||
<text x="48" y="548">AT_AUTN</text> | ||||
<text x="96" y="548">and</text> | ||||
<text x="128" y="548">MAC</text> | ||||
<text x="164" y="548">from</text> | ||||
<text x="212" y="548">AT_MAC</text> | ||||
<text x="288" y="548">attributes.</text> | ||||
<text x="352" y="548">The</text> | ||||
<text x="388" y="548">peer</text> | ||||
<text x="428" y="548">then</text> | ||||
<text x="56" y="564">generates</text> | ||||
<text x="116" y="564">RES.</text> | ||||
<text x="152" y="564">The</text> | ||||
<text x="188" y="564">peer</text> | ||||
<text x="228" y="564">also</text> | ||||
<text x="280" y="564">derives</text> | ||||
<text x="344" y="564">session</text> | ||||
<text x="396" y="564">keys</text> | ||||
<text x="436" y="564">from</text> | ||||
<text x="52" y="580">CK'/IK'.</text> | ||||
<text x="104" y="580">The</text> | ||||
<text x="148" y="580">AT_RES</text> | ||||
<text x="192" y="580">and</text> | ||||
<text x="236" y="580">AT_MAC</text> | ||||
<text x="308" y="580">attributes</text> | ||||
<text x="368" y="580">are</text> | ||||
<text x="68" y="596">constructed.</text> | ||||
<text x="92" y="644">EAP-Response</text> | ||||
<text x="204" y="644">AKA'-Challenge</text> | ||||
<text x="76" y="660">(AT_RES,</text> | ||||
<text x="144" y="660">AT_MAC)</text> | ||||
<text x="124" y="708">Server</text> | ||||
<text x="180" y="708">checks</text> | ||||
<text x="224" y="708">the</text> | ||||
<text x="256" y="708">RES</text> | ||||
<text x="288" y="708">and</text> | ||||
<text x="320" y="708">MAC</text> | ||||
<text x="364" y="708">values</text> | ||||
<text x="428" y="708">received</text> | ||||
<text x="476" y="708">in</text> | ||||
<text x="124" y="724">AT_RES</text> | ||||
<text x="168" y="724">and</text> | ||||
<text x="216" y="724">AT_MAC,</text> | ||||
<text x="304" y="724">respectively.</text> | ||||
<text x="392" y="724">Success</text> | ||||
<text x="460" y="724">requires</text> | ||||
<text x="516" y="724">both</text> | ||||
<text x="132" y="740">compared</text> | ||||
<text x="196" y="740">values</text> | ||||
<text x="252" y="740">match,</text> | ||||
<text x="336" y="740">respectively.</text> | ||||
<text x="464" y="788">EAP-Success</text> | ||||
</g> | ||||
</svg> | ||||
</artwork> | ||||
</artset> | ||||
</figure> | ||||
</section> | ||||
<section anchor="attacks" numbered="true" toc="default"> | ||||
<name>Attacks Against Long-Term Keys in Smart Cards</name> | ||||
<t>The general security properties and potential | ||||
vulnerabilities of AKA and EAP-AKA' are discussed in <xref target="RFC9048" | ||||
format="default"/>.</t> | ||||
<t>The general security properties and potential | <!--[rfced] For ease of the reader, may we adjust the text below as | |||
vulnerabilities of AKA and EAP-AKA' are discussed in <xref | follows? | |||
target="RFC9048"/>.</t> | ||||
<t>An important question in that discussion relates to the | Original: | |||
This document specifies a mechanism that reduces risks to | ||||
compromise of key material belonging to previous sessions, before | ||||
the long-term keys were compromised. | ||||
Perhaps: | ||||
This document specifies a mechanism that reduces the risks of | ||||
compromising key material belonging to previous sessions, before | ||||
the long-term keys were compromised. | ||||
--> | ||||
<t>An important question in that discussion relates to the | ||||
potential compromise of long-term keys, as discussed earlier. | potential compromise of long-term keys, as discussed earlier. | |||
Attacks on long-term keys are not specific to | Attacks on long-term keys are not specific to | |||
AKA or EAP-AKA', and all security systems fail at least to some | AKA or EAP-AKA', and all security systems fail, at least to some | |||
extent if key material is stolen. However, it would be preferable | extent, if key material is stolen. However, it would be preferable | |||
to retain some security even in | to retain some security even in | |||
the face of such attacks. This document specifies a mechanism | the face of such attacks. This document specifies a mechanism | |||
that reduces risks to compromise of key material belonging to | that reduces risks to compromise of key material belonging to | |||
previous sessions, before the long-term keys were compromised. It | previous sessions, before the long-term keys were compromised. It | |||
also forces attackers to be active even after the compromise.</t> | also forces attackers to be active even after the compromise.</t> | |||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
</section> | <name>Protocol Overview</name> | |||
<t>Forward Secrecy (FS) for EAP-AKA' is achieved by using an Elliptic | ||||
<section title="Protocol Overview"> | Curve Diffie-Hellman (ECDH) exchange <xref target="RFC7748" format="default"/> | |||
. To provide | ||||
<t>Forward secrecy for EAP-AKA' is achieved by using an Elliptic | ||||
Curve Diffie-Hellman (ECDH) exchange <xref target="RFC7748"/>. To provide | ||||
FS, the exchange must be run in an ephemeral manner, i.e., | FS, the exchange must be run in an ephemeral manner, i.e., | |||
both sides generate temporary keys according to the negotiated ciphersuite, | both sides generate temporary keys according to the negotiated ciphersuite. Fo | |||
e.g., for X25519 this is done as specified in <xref target="RFC7748"/>. | r example, | |||
This method is referred to as ECDHE, where the last 'E' stands | for X25519, this is done as specified in <xref target="RFC7748" format="default" | |||
for Ephemeral. The two initially registered elliptic curves and their | />. | |||
This method is referred to as "ECDHE", where the last "E" stands | ||||
for "Ephemeral". The two initially registered elliptic curves and their | ||||
wire formats are chosen to align with the elliptic curves and formats | wire formats are chosen to align with the elliptic curves and formats | |||
specified for Subscription Concealed Identifier (SUCI) encryption in | specified for Subscription Concealed Identifier (SUCI) encryption in | |||
Appendix C.3.4 of 3GPP TS 33.501 <xref target="TS.33.501"/>.</t> | Appendix C.3.4 of 3GPP <xref target="TS.33.501" format="default"/>.</t> | |||
<t>The enhancements in the EAP-AKA' FS protocol are compatible | ||||
<t>The enhancements in the EAP-AKA' FS protocol are compatible | ||||
with the signaling flow and other basic structures of both AKA and | with the signaling flow and other basic structures of both AKA and | |||
EAP-AKA'. The intent is to implement the enhancement as optional | EAP-AKA'. The intent is to implement the enhancement as optional | |||
attributes that legacy implementations ignore.</t> | attributes that legacy implementations ignore.</t> | |||
<t>The purpose of the protocol is to achieve mutual authentication | <!--[rfced] We note a switch between "keying material" and "key | |||
between the EAP server and peer, and to establish keying material | material" in the following. Should these be made consistent? | |||
Original: | ||||
...and to establish keying material for secure communication between | ||||
the two. This document specifies the calculation of key material, | ||||
providing new properties that are not present in key material provided | ||||
by EAP-AKA' in its original form. | ||||
--> | ||||
<t>The purpose of the protocol is to achieve mutual authentication | ||||
between the EAP server and peer and to establish keying material | ||||
for secure communication between the two. This document specifies | for secure communication between the two. This document specifies | |||
the calculation of key material, providing new properties that are | the calculation of key material, providing new properties that are | |||
not present in key material provided by EAP-AKA' in its original | not present in key material provided by EAP-AKA' in its original | |||
form.</t> | form.</t> | |||
<t><xref target="figakafs"/> below describes the overall process. Since the go | <!--[rfced] Might it be helpful to the reader to point them to the | |||
al | specific 3GPP specifications to which you refer? | |||
Original: | ||||
The details of those interactions are outside the scope of this | ||||
document, however, and the reader is referred to the 3GPP | ||||
specifications. | ||||
--> | ||||
<t><xref target="figakafs" format="default"/> describes the overall proces | ||||
s. Since the goal | ||||
has been to not require new infrastructure or credentials, the | has been to not require new infrastructure or credentials, the | |||
flow diagrams also show the conceptual interaction with the USIM card | flow diagrams also show the conceptual interaction with the USIM card | |||
and the home environment. Recall that the home environment represent | and the home environment. Recall that the home environment represents | |||
the 3GPP Authentication Database (AD) and server. | the 3GPP Authentication Database (AD) and server. | |||
The details of those interactions | The details of those interactions | |||
are outside the scope of this document, however, and the reader | are outside the scope of this document, however, and the reader | |||
is referred to the 3GPP specifications. For 5G this is | is referred to the 3GPP specifications. For 5G, this is | |||
specified in 3GPP TS 33.501 <xref target="TS.33.501"/></t> | specified in 3GPP <xref target="TS.33.501" format="default"/>.</t> | |||
<figure anchor="figakafs"> | ||||
<figure title="EAP-AKA' FS Authentication Process" anchor="figakafs"> | <name>EAP-AKA' FS Authentication Process</name> | |||
<artset> | <artset> | |||
<artwork type="ascii-art"><![CDATA[ | <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ | |||
USIM Peer Server AD | 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 | | |||
skipping to change at line 726 ¶ | skipping to change at line 896 ¶ | |||
| | held the long-term key, only an active attacker could | | | | held the long-term key, only an active attacker could | | |||
| | have determined the generated session keys; in basic | | | | have determined the generated session keys; in basic | | |||
| | EAP-AKA' the generated keys are only based on CK and | | | | EAP-AKA' the generated keys are only based on CK and | | |||
| | IK. | | | | IK. | | |||
| +-------+----------------------------+----------------+--+ | | +-------+----------------------------+----------------+--+ | |||
| | | | | | | | | | |||
| | EAP-Success | | | | | EAP-Success | | | |||
| |<---------------------------+ | | | |<---------------------------+ | | |||
| | | | | | | | | | |||
]]></artwork> | ]]></artwork> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1 .1" height="1408" width="552" viewBox="0 0 552 1408" class="diagram" text-anchor ="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> | <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/20 00/svg" version="1.1" height="1200" width="875" viewBox="0 0 552 1408" class="di agram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-line cap="round"> | |||
<path d="M 8,688 L 8,816" fill="none" stroke="black"/> | <path d="M 8,688 L 8,816" fill="none" stroke="black"/> | |||
<path d="M 8,928 L 8,1040" fill="none" stroke="black"/> | <path d="M 8,928 L 8,1040" fill="none" stroke="black"/> | |||
<path d="M 32,48 L 32,688" fill="none" stroke="black"/> | <path d="M 32,48 L 32,688" fill="none" stroke="black"/> | |||
<path d="M 32,816 L 32,928" fill="none" stroke="black"/> | <path d="M 32,816 L 32,928" fill="none" stroke="black"/> | |||
<path d="M 32,1040 L 32,1392" fill="none" stroke="black"/> | <path d="M 32,1040 L 32,1392" fill="none" stroke="black"/> | |||
<path d="M 88,160 L 88,272" fill="none" stroke="black"/> | <path d="M 88,160 L 88,272" fill="none" stroke="black"/> | |||
<path d="M 88,432 L 88,576" fill="none" stroke="black"/> | <path d="M 88,432 L 88,576" fill="none" stroke="black"/> | |||
<path d="M 88,1136 L 88,1328" fill="none" stroke="black"/> | <path d="M 88,1136 L 88,1328" fill="none" stroke="black"/> | |||
<path d="M 152,48 L 152,160" fill="none" stroke="black"/> | <path d="M 152,48 L 152,160" fill="none" stroke="black"/> | |||
<path d="M 152,272 L 152,432" fill="none" stroke="black"/> | <path d="M 152,272 L 152,432" fill="none" stroke="black"/> | |||
skipping to change at line 1146 ¶ | skipping to change at line 1316 ¶ | |||
<text x="372" y="1300">only</text> | <text x="372" y="1300">only</text> | |||
<text x="416" y="1300">based</text> | <text x="416" y="1300">based</text> | |||
<text x="452" y="1300">on</text> | <text x="452" y="1300">on</text> | |||
<text x="476" y="1300">CK</text> | <text x="476" y="1300">CK</text> | |||
<text x="504" y="1300">and</text> | <text x="504" y="1300">and</text> | |||
<text x="112" y="1316">IK.</text> | <text x="112" y="1316">IK.</text> | |||
<text x="328" y="1364">EAP-Success</text> | <text x="328" y="1364">EAP-Success</text> | |||
</g> | </g> | |||
</svg> | </svg> | |||
</artwork> | </artwork> | |||
</artset> | </artset> | |||
</figure> | </figure> | |||
</section> | ||||
</section> | <section numbered="true" toc="default"> | |||
<name>Extensions to EAP-AKA'</name> | ||||
<section title="Extensions to EAP-AKA'"> | <section anchor="at_pub_dh" numbered="true" toc="default"> | |||
<section anchor="at_pub_dh" title="AT_PUB_ECDHE"> | <name>AT_PUB_ECDHE</name> | |||
<t>The AT_PUB_ECDHE attribute carries an ECDHE value.</t> | ||||
<t>The AT_PUB_ECDHE carries an ECDHE value.</t> | <t>The format of the AT_PUB_ECDHE attribute is shown below.</t> | |||
<artset> | ||||
<t>The format of the AT_PUB_ECDHE attribute is shown below.</t> | <artwork type="ascii-art" align="center" name="" alt=""><![CDATA[ | |||
<figure> | ||||
<artset> | ||||
<artwork type="ascii-art" align="center"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| AT_PUB_ECDHE | Length | Value | | | AT_PUB_ECDHE | Length | Value | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</artwork> | ]]></artwork> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version=" | <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www | |||
1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor= | .w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" c | |||
"middle" font-family="monospace" font-size="13px"> | lass="diagram" text-anchor="middle" font-family="monospace" font-size="13px"> | |||
<path d="M 8,64 L 8,96" fill="none" stroke="black"/> | <path d="M 8,64 L 8,96" fill="none" stroke="black"/> | |||
<path d="M 136,64 L 136,96" fill="none" stroke="black"/> | <path d="M 136,64 L 136,96" fill="none" stroke="black"/> | |||
<path d="M 264,64 L 264,96" fill="none" stroke="black"/> | <path d="M 264,64 L 264,96" fill="none" stroke="black"/> | |||
<path d="M 520,64 L 520,96" fill="none" stroke="black"/> | <path d="M 520,64 L 520,96" fill="none" stroke="black"/> | |||
<path d="M 8,64 L 520,64" fill="none" stroke="black"/> | <path d="M 8,64 L 520,64" fill="none" stroke="black"/> | |||
<path d="M 8,96 L 520,96" fill="none" stroke="black"/> | <path d="M 8,96 L 520,96" fill="none" stroke="black"/> | |||
<g class="text"> | <g class="text"> | |||
<text x="16" y="36">0</text> | <text x="16" y="36">0</text> | |||
<text x="176" y="36">1</text> | <text x="176" y="36">1</text> | |||
<text x="336" y="36">2</text> | <text x="336" y="36">2</text> | |||
skipping to change at line 1218 ¶ | skipping to change at line 1384 ¶ | |||
<text x="480" y="52">9</text> | <text x="480" y="52">9</text> | |||
<text x="496" y="52">0</text> | <text x="496" y="52">0</text> | |||
<text x="512" y="52">1</text> | <text x="512" y="52">1</text> | |||
<text x="68" y="84">AT_PUB_ECDHE</text> | <text x="68" y="84">AT_PUB_ECDHE</text> | |||
<text x="172" y="84">Length</text> | <text x="172" y="84">Length</text> | |||
<text x="296" y="84">Value</text> | <text x="296" y="84">Value</text> | |||
</g> | </g> | |||
</svg> | </svg> | |||
</artwork> | </artwork> | |||
</artset> | </artset> | |||
</figure> | ||||
<t>The fields are as follows:</t> | ||||
<t><list style="hanging"> | ||||
<t hangText="AT_PUB_ECDHE"><vspace blankLines="1"/>This is set to TBA | ||||
1 BY | ||||
IANA.</t> | ||||
<t hangText="Length"><vspace blankLines="1"/>The length of | ||||
the attribute, set as other attributes in EAP-AKA <xref | ||||
target="RFC4187"/>. The length is expressed in multiples of | ||||
4 bytes. The length includes the attribute type field, the | ||||
Length field itself, and the Value field (along with any padding). | ||||
</t> | ||||
<t hangText="Value"><vspace blankLines="1"/>This value is | ||||
the sender's ECDHE public key. The value depends on AT_KDF_FS and | ||||
is calculated as follows: | ||||
<list style="symbols"> | <t>The fields are as follows:</t> | |||
<t>For X25519, | ||||
the length of this value is 32 bytes, encoded as specified in | ||||
<xref target="RFC7748"/> Section 5.</t> | ||||
<t>For P-256, the length of this value is 33 bytes, encoded | ||||
using the compressed form specified in Section 2.3.3 of | ||||
<xref target="SEC1"/>.</t> | ||||
</list> | ||||
<vspace blankLines="1"/> | ||||
Because the length of the attribute must be a multiple of 4 | ||||
bytes, the sender pads the Value field with zero bytes when | ||||
necessary. | ||||
To retain the security of the keys, the sender SHALL generate | ||||
a fresh value for each run of the protocol.</t> | ||||
</list></t> | <dl newline="true" spacing="normal"> | |||
<dt>AT_PUB_ECDHE:</dt> | ||||
<dd>This is set to 152 by IANA.</dd> | ||||
</section> | <dt>Length:</dt> | |||
<dd>This is the length of the attribute, set as other attributes in | ||||
EAP-AKA <xref target="RFC4187" format="default"/>. The length is | ||||
expressed in multiples of 4 bytes. The length includes the attribute | ||||
type field, the Length field itself, and the Value field (along with | ||||
any padding).</dd> | ||||
<section anchor="at_kdf_dh" title="AT_KDF_FS"> | <dt>Value:</dt> | |||
<dd> | ||||
<t>This value is | ||||
the sender's ECDHE public key. The value depends on the AT_KDF_FS att | ||||
ribute and | ||||
is calculated as follows:</t> | ||||
<ul spacing="normal"> | ||||
<li> | ||||
<t>For X25519, the length of this value is 32 bytes, encoded | ||||
as specified in <xref target="RFC7748" sectionFormat="of" | ||||
section="5"/>.</t> | ||||
</li> | ||||
<li> | ||||
<t>For P-256, the length of this value is 33 bytes, encoded | ||||
using the compressed form specified in Section 2.3.3 of <xref | ||||
target="SEC1" format="default"/>.</t> | ||||
</li> | ||||
</ul> | ||||
<t>Because the length of the attribute must be a multiple of 4 | ||||
bytes, the sender pads the Value field with zero bytes when | ||||
necessary. To retain the security of the keys, the sender | ||||
<bcp14>SHALL</bcp14> generate a fresh value for each run of the | ||||
protocol.</t> | ||||
</dd> | ||||
</dl> | ||||
</section> | ||||
<t>The AT_KDF_FS indicates the used or desired forward secrecy key | <section anchor="at_kdf_dh" numbered="true" toc="default"> | |||
generation function, if the Forward Secrecy (FS) extension | <name>AT_KDF_FS</name> | |||
<t>The AT_KDF_FS attribute indicates the used or desired FS key | ||||
generation function, if the FS extension | ||||
is used. It will also indicate the | is used. It will also indicate the | |||
used or desired ECDHE group. A new attribute is needed to | used or desired ECDHE group. A new attribute is needed to | |||
carry this information, as AT_KDF carries the basic KDF | carry this information, as AT_KDF carries the basic KDF | |||
value which is still used together with the forward secrecy KDF | value that is still used together with the FS KDF | |||
value. The basic KDF value is also used by those EAP peers | value. The basic KDF value is also used by those EAP peers | |||
that cannot or do not want to use this extension.</t> | that cannot or do not want to use this extension.</t> | |||
<t>This document only specifies the behavior relating to the following | ||||
<t>This document only specifies the behavior relating to | combinations of basic KDF values and FS KDF values:</t> | |||
the following combinations of basic KDF values and forward secrecy | <ul> | |||
KDF values: | <li>the | |||
The basic KDF value in AT_KDF is 1, as specified in <xref target="RFC544 | basic KDF value in AT_KDF is 1, as specified in <xref target="RFC5448" | |||
8"/> and <xref target="RFC9048"/>, | format="default"/> and <xref target="RFC9048" format="default"/> and</li | |||
and the forward secrecy KDF values in AT_KDF_FS are 1 or 2, as specified | > | |||
below and in <xref target="kdf2"/>.</t> | <li>the FS KDF values in AT_KDF_FS are 1 or 2, as specified | |||
below and in <xref target="kdf2" format="default"/>.</li></ul> | ||||
<t>Any future specifications that add either new basic KDF or new forwar | <t>Any future specifications that add either new basic KDFs or new FS KD | |||
d secrecy KDF values need to specify | F values need to specify | |||
how they are treated and what combinations are allowed. This requirement is an update to how | how they are treated and what combinations are allowed. This requirement is an update to how | |||
<xref target="RFC5448"/> and <xref target="RFC9048"/> may be extended in | <xref target="RFC5448" format="default"/> and <xref target="RFC9048" for | |||
the future.</t> | mat="default"/> may be extended in the future.</t> | |||
<t>The format of the AT_KDF_FS attribute is shown below.</t> | ||||
<t>The format of the AT_KDF_FS attribute is shown below.</t> | <artset> | |||
<artwork type="ascii-art" align="center" name="" alt=""><![CDATA[ | ||||
<figure> | ||||
<artset> | ||||
<artwork type="ascii-art" align="center"> | ||||
0 1 2 3 | 0 1 2 3 | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| AT_KDF_FS | Length | FS Key Derivation Function | | | AT_KDF_FS | Length | FS Key Derivation Function | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</artwork> | ]]></artwork> | |||
<artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version=" | <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www | |||
1.1" height="112" width="528" viewBox="0 0 528 112" class="diagram" text-anchor= | .w3.org/2000/svg" version="1.1" height="112" width="528" viewBox="0 0 528 112" c | |||
"middle" font-family="monospace" font-size="13px"> | lass="diagram" text-anchor="middle" font-family="monospace" font-size="13px"> | |||
<path d="M 8,64 L 8,96" fill="none" stroke="black"/> | <path d="M 8,64 L 8,96" fill="none" stroke="black"/> | |||
<path d="M 136,64 L 136,96" fill="none" stroke="black"/> | <path d="M 136,64 L 136,96" fill="none" stroke="black"/> | |||
<path d="M 264,64 L 264,96" fill="none" stroke="black"/> | <path d="M 264,64 L 264,96" fill="none" stroke="black"/> | |||
<path d="M 520,64 L 520,96" fill="none" stroke="black"/> | <path d="M 520,64 L 520,96" fill="none" stroke="black"/> | |||
<path d="M 8,64 L 520,64" fill="none" stroke="black"/> | <path d="M 8,64 L 520,64" fill="none" stroke="black"/> | |||
<path d="M 8,96 L 520,96" fill="none" stroke="black"/> | <path d="M 8,96 L 520,96" fill="none" stroke="black"/> | |||
<g class="text"> | <g class="text"> | |||
<text x="16" y="36">0</text> | <text x="16" y="36">0</text> | |||
<text x="176" y="36">1</text> | <text x="176" y="36">1</text> | |||
<text x="336" y="36">2</text> | <text x="336" y="36">2</text> | |||
skipping to change at line 1345 ¶ | skipping to change at line 1507 ¶ | |||
<text x="512" y="52">1</text> | <text x="512" y="52">1</text> | |||
<text x="56" y="84">AT_KDF_FS</text> | <text x="56" y="84">AT_KDF_FS</text> | |||
<text x="172" y="84">Length</text> | <text x="172" y="84">Length</text> | |||
<text x="284" y="84">FS</text> | <text x="284" y="84">FS</text> | |||
<text x="312" y="84">Key</text> | <text x="312" y="84">Key</text> | |||
<text x="372" y="84">Derivation</text> | <text x="372" y="84">Derivation</text> | |||
<text x="452" y="84">Function</text> | <text x="452" y="84">Function</text> | |||
</g> | </g> | |||
</svg> | </svg> | |||
</artwork> | </artwork> | |||
</artset> | </artset> | |||
</figure> | ||||
<t>The fields are as follows:</t> | ||||
<t><list style="hanging"> | ||||
<t hangText="AT_KDF_FS"><vspace blankLines="1"/>This is set to TBA2 B | ||||
Y | ||||
IANA.</t> | ||||
<t hangText="Length"><vspace blankLines="1"/>The length of the | ||||
attribute, MUST be set to 1.</t> | ||||
<t hangText="FS Key Derivation Function"><vspace blankLines="1"/>An | ||||
enumerated value representing the forward secrecy key derivation func | ||||
tion that the | ||||
server (or peer) wishes to use. See <xref target="kdf2"/> for the fun | ||||
ctions | ||||
specified in this document. Note: This field has a | ||||
different name space than the similar field in the AT_KDF | ||||
attribute Key Derivation Function defined in <xref | ||||
target="RFC9048"/>.</t> | ||||
</list></t> | ||||
<t>Servers MUST send one or more AT_KDF_FS attributes in the | <t>The fields are as follows:</t> | |||
EAP-Request/AKA'-Challenge message. These attributes represent the desi | ||||
red | ||||
functions ordered by preference, the most preferred function being the | ||||
first | ||||
attribute. The most preferred function is the only one that the server | ||||
includes a | ||||
public key value for, however. So for a set of AT_KDF_FS attributes, th | ||||
ere is | ||||
always only one AT_PUB_ECDHE attribute.</t> | ||||
<t>Upon receiving a set of these attributes: | <dl newline="true" spacing="normal"> | |||
<list style="symbols"> | <dt>AT_KDF_FS:</dt> | |||
<dd>This is set to 153 by | ||||
IANA.</dd> | ||||
<t>If the peer supports and is willing to use the FS Key Derivation Fu | <dt>Length:</dt> | |||
nction | <dd>This is the length of the | |||
indicated by the first AT_KDF_FS attribute, and is willing and able to | attribute; it <bcp14>MUST</bcp14> be set to 1.</dd> | |||
use the | ||||
extension defined in this document, the function is taken into use wit | ||||
hout | ||||
any further negotiation.</t> | ||||
<t>If the peer does not support this function or is unwilling to use i | <dt>FS Key Derivation Function:</dt> | |||
t, it | <dd>This is an enumerated value representing the FS KDF that the serve | |||
responds to the server with an indication that a different function is | r (or peer) wishes to use. See | |||
needed. Similarly with the negotiation process defined in <xref | <xref target="kdf2" format="default"/> for the functions specified | |||
target="RFC9048"/> for AT_KDF, the peer sends | in this document. Note: this field has a different name space than | |||
EAP-Response/AKA'-Challenge message that contains only one attribute, | the similar field in the AT_KDF attribute KDF | |||
AT_KDF_FS with the value set to the desired alternative function from | defined in <xref target="RFC9048" format="default"/>.</dd> | |||
among | </dl> | |||
the ones suggested by the server earlier. If there is no suitable alte | ||||
rnative, | ||||
the peer has a choice of either falling back to EAP-AKA' or behaving a | ||||
s if AUTN | ||||
had been incorrect and failing authentication (see Figure 3 of <xref | ||||
target="RFC4187"/>). The peer MUST fail the authentication if there ar | ||||
e any | ||||
duplicate values within the list of AT_KDF_FS attributes (except where | ||||
the | ||||
duplication is due to a request to change the key derivation function; | ||||
see | ||||
below for further information).</t> | ||||
<t>If the peer does not recognize the extension defined in this docum | <t>Servers <bcp14>MUST</bcp14> send one or more AT_KDF_FS attributes | |||
ent | in the EAP-Request/AKA'-Challenge message. These attributes represent | |||
or is unwilling to use it, it ignores the AT_KDF_FS attribute.</t> | the desired functions ordered by preference, with the most preferred | |||
function being the first attribute. The most preferred function is the | ||||
only one that the server includes a public key value for, however. So, | ||||
for a set of AT_KDF_FS attributes, there is always only one | ||||
AT_PUB_ECDHE attribute.</t> | ||||
</list></t> | <!--[rfced] May we rephrase "taken into use"? While we see a couple | |||
of past instances in RFCs, we wonder if "will be used" has the same | ||||
meaning or if there is another rephrase? | ||||
<t>Upon receiving an EAP-Response/AKA'-Challenge with AT_KDF_FS from th | Original: | |||
e | ...and is willing and able to use the extension defined in this | |||
peer, the server checks that the suggested AT_KDF_FS value was one of t | document, the function is taken into use without any further | |||
he | negotiation. | |||
alternatives in its offer. The first AT_KDF_FS value in the message fro | ||||
m | ||||
the server is not a valid alternative. If the peer has replied with | ||||
the first AT_KDF_FS value, the server behaves as if AT_MAC of the | ||||
response had been incorrect and fails the authentication. For an | ||||
overview of the failed authentication process in the server side, see | ||||
Section 3 and Figure 2 in <xref target="RFC4187"/>. Otherwise, the | ||||
server re-sends the EAP-Response/AKA'-Challenge message, but adds the | ||||
selected alternative to the beginning of the list of AT_KDF_FS | ||||
attributes, and retains the entire list following it. Note that this | ||||
means that the selected alternative appears twice in the set of AT_KDF | ||||
values. Responding to the peer's request to change the FS Key Derivatio | ||||
n Function | ||||
is the only valid situation where such duplication may | ||||
occur.</t> | ||||
<t>When the peer receives the new EAP-Request/AKA'-Challenge message, | Perhaps: | |||
it MUST check that the requested change, and only the requested change | ...and is willing and able to use the extension defined in this | |||
occurred in the list of AT_KDF_FS attributes. If yes, it continues. If | document, the function will be used without any further | |||
not, it behaves as if AT_MAC had been incorrect and fails the | negotiation. | |||
authentication. If the peer receives multiple | ||||
EAP-Request/AKA'-Challenge messages with differing AT_KDF_FS attributes | ||||
without having requested negotiation, the peer MUST behave as if | ||||
AT_MAC had been incorrect and fail the authentication.</t> | ||||
</section> | --> | |||
<section anchor="kdf2" title="Forward Secrecy Key Derivation Functions"> | <t>Upon receiving a set of these attributes:</t> | |||
<t>Two new FS Key Derivation Function types are defined for | <ul spacing="normal"> | |||
"EAP-AKA' with ECDHE and X25519", represented by value 1, and | <li>If the peer supports and is willing to use the FS KDF indicated by | |||
"EAP-AKA' with ECDHE and P-256", represented by | the first AT_KDF_FS attribute, and is willing | |||
value 2. These represent a particular choice of key | and able to use the extension defined in this document, the function | |||
derivation function and at the same time selects an ECDHE | is taken into use without any further negotiation.</li> | |||
group to be used.</t> | ||||
<t>The FS Key Derivation Function type value is only used | <li>If the peer does not support this function or is unwilling to | |||
in the AT_KDF_FS attribute. When the forward secrecy extension | use it, it responds to the server with an indication that a | |||
is used, the AT_KDF_FS attribute determines how to derive the | different function is needed. Similarly, with the negotiation process | |||
keys MK_ECDHE, K_re, MSK, and EMSK. The AT_KDF_FS attribute should | defined in <xref target="RFC9048" format="default"/> for AT_KDF, the | |||
not be confused with the different range of key derivation functions | peer sends an EAP-Response/AKA'-Challenge message that contains only | |||
that can be represented in the AT_KDF attribute as defined in | one attribute, AT_KDF_FS, with the value set to the desired | |||
<xref target="RFC9048"/>. When the forward secrecy extension | alternative function from among the ones suggested by the server | |||
is used, the AT_KDF attribute only specifies how to derive the | earlier. If there is no suitable alternative, the peer has a choice | |||
keys MK, K_encr, and K_aut.</t> | of either falling back to EAP-AKA' or behaving as if AUTN had been | |||
incorrect and failing authentication (see Figure 3 of <xref | ||||
target="RFC4187" format="default"/>). The peer <bcp14>MUST</bcp14> | ||||
fail the authentication if there are any duplicate values within the | ||||
list of AT_KDF_FS attributes (except where the duplication is due to | ||||
a request to change the key derivation function; see below for | ||||
further information).</li> | ||||
<t>Key derivation in this extension produces exactly the same | <li>If the peer does not recognize the extension defined in this | |||
keys for internal use within one authentication run as EAP-AKA' <xref | document or is unwilling to use it, it ignores the AT_KDF_FS | |||
target="RFC9048"/> does. For | attribute.</li> | |||
instance, K_aut that is used in AT_MAC is still exactly as it | </ul> | |||
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 EMSK. As a result, EAP-AKA' attributes such | ||||
as AT_MAC continue to be usable even when this extension is | ||||
in use.</t> | ||||
<t>When the FS Key Derivation Function field in the AT_KDF_FS | <t>Upon receiving an EAP-Response/AKA'-Challenge message with an AT_KDF_ | |||
FS attribute | ||||
from the 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 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 | ||||
the AT_MAC of the response had been incorrect and fails the | ||||
authentication. For an overview of the failed authentication process | ||||
in the server side, see Section <xref target="RFC4187" | ||||
sectionFormat="bare" section="3"/> and Figure 2 in <xref | ||||
target="RFC4187"/>. Otherwise, the server re-sends the | ||||
EAP-Response/AKA'-Challenge message, but adds the selected alternative | ||||
to the beginning of the list of AT_KDF_FS attributes and retains the | ||||
entire list following it. Note that this means that the selected | ||||
alternative appears twice in the set of AT_KDF values. Responding to | ||||
the peer's request to change the FS KDF is the | ||||
only valid situation where such duplication may occur.</t> | ||||
<t>When the peer receives the new EAP-Request/AKA'-Challenge message, | ||||
it <bcp14>MUST</bcp14> check that the requested change, and only the | ||||
requested change, occurred in the list of AT_KDF_FS attributes. If so, | ||||
it continues. If not, it behaves as if AT_MAC were incorrect and | ||||
fails the authentication. If the peer receives multiple | ||||
EAP-Request/AKA'-Challenge messages with differing AT_KDF_FS | ||||
attributes without having requested negotiation, the peer | ||||
<bcp14>MUST</bcp14> behave as if AT_MAC were incorrect and fail | ||||
the authentication.</t> | ||||
</section> | ||||
<section anchor="kdf2" numbered="true" toc="default"> | ||||
<name>Forward Secrecy Key Derivation Functions</name> | ||||
<t>Two new FS KDF types are defined for "EAP-AKA' | ||||
with ECDHE and X25519", represented by value 1, and "EAP-AKA' with | ||||
ECDHE and P-256", represented by value 2. These values represent a parti | ||||
cular | ||||
choice of KDF and, at the same time, select an | ||||
ECDHE group to be used.</t> | ||||
<t>The FS KDF type value is only used in the | ||||
AT_KDF_FS attribute. When the FS extension is used, the | ||||
AT_KDF_FS attribute determines how to derive the MK_ECDHE key, K_re key, | ||||
Master Session Key (MSK), and Extended Master Session Key (EMSK). The | ||||
AT_KDF_FS attribute should not be confused with the different range of | ||||
KDFs that can be represented in the AT_KDF | ||||
attribute as defined in <xref target="RFC9048" | ||||
format="default"/>. When the FS extension is used, the | ||||
AT_KDF attribute only specifies how to derive the Master Key (MK), the K | ||||
_encr key, and the | ||||
K_aut key.</t> | ||||
<t>Key derivation in this extension produces exactly the same keys for | ||||
internal use within one authentication run as EAP-AKA' <xref | ||||
target="RFC9048" format="default"/> does. For instance, the 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 the re-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 usable even when this extension is in | ||||
use.</t> | ||||
<t>When the FS KDF field in the AT_KDF_FS | ||||
attribute is set to 1 or 2 and the Key Derivation Function field | attribute 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) and | in the AT_KDF attribute is set to 1, the MK and | |||
accompanying keys are derived as follows. | accompanying keys are derived as follows: | |||
</t> | ||||
<figure> | <artwork align="center" name="" type="" alt=""><![CDATA[ | |||
<artwork align="center"> | ||||
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] | |||
</artwork> | ]]></artwork> | |||
</figure></t> | ||||
<t>Requirements for how to securely generate, validate, and process the | <t>Requirements for how to securely generate, validate, and process the | |||
ephemeral public keys depend on the elliptic curve.</t> | ephemeral public keys depend on the elliptic curve.</t> | |||
<t>For P-256, the SHARED_SECRET is the shared secret computed as | ||||
specified in Section 5.7.1.2 of <xref target="SP-800-56A" | ||||
format="default"/>. Public key validation requirements are defined in | ||||
Section 5 of <xref target="SP-800-56A" format="default"/>. At least | ||||
partial public key validation <bcp14>MUST</bcp14> be done for the | ||||
ephemeral public keys. The uncompressed y-coordinate can be computed | ||||
as described in Section 2.3.4 of <xref target="SEC1" | ||||
format="default"/>.</t> | ||||
<t>For X25519, the SHARED_SECRET is the shared secret computed as specif | ||||
ied in | ||||
<xref target="RFC7748" sectionFormat="of" section="6.1"/>. Both the peer | ||||
and the server | ||||
<bcp14>MAY</bcp14> check for the zero-value shared secret as specified in | ||||
<xref target="RFC7748" sectionFormat="of" section="6.1"/>.</t> | ||||
<t>For P-256 the SHARED_SECRET is the shared | <aside><t>Note: If performed inappropriately, the way that the shared | |||
secret computed as specified in Section 5.7.1.2 of <xref target="SP-800-5 | secret is tested for zero can provide an ability for attackers to | |||
6A"/>. | listen to CPU power usage side channels. Refer to <xref | |||
Public key validation requirements are defined in Section 5 of <xref targ | target="RFC7748" format="default"/> for a description of how to | |||
et="SP-800-56A"/>. | perform this check in a way that it does not become a | |||
At least partial public-key validation MUST be done for the ephemeral pub | problem.</t></aside> | |||
lic keys. The uncompressed y-coordinate can be | ||||
computed as described in Section 2.3.4 of <xref target="SEC1"/>.</t> | ||||
<t>For X25519 the SHARED_SECRET is the shared secret computed as specifie | <!--[rfced] Because "Authentication" is part of the expansion of | |||
d in | "AKA'", may we cut it from the following for redundancy (or | |||
Section 6.1 of <xref target="RFC7748"/>. Both the peer and the server | anywhere it follows this abbreviation)? | |||
MAY check for zero-value shared secret as specified in Section 6.1 of | ||||
<xref target="RFC7748"/>.</t> | ||||
<t><list style="empty"> | Original: | |||
...a party MUST behave as if the current EAP-AKA' authentication | ||||
process starts again from the beginning. | ||||
<t>Note: The way that shared secret is tested for zero can, | Perhaps: | |||
if performed inappropriately, provide an ability for | ...a party MUST behave as if the current EAP-AKA' process starts again | |||
attackers to listen to CPU power usage side channels. Refer | from the beginning. | |||
to <xref target="RFC7748"/> for a description of how to | ||||
perform this check in a way that it does not become a | ||||
problem.</t> | ||||
</list></t> | --> | |||
<t>If validation of the other party's ephemeral public key or the shared | <t>If validation of the other party's ephemeral public key or the shared | |||
secret fails, | secret fails, | |||
a party MUST behave as if the current EAP-AKA' authentication | a party <bcp14>MUST</bcp14> behave as if the current EAP-AKA' authentica | |||
tion | ||||
process starts again from the beginning.</t> | process starts again from the beginning.</t> | |||
<t>The rest of the computation proceeds as defined in <xref | ||||
target="RFC9048" sectionFormat="of" section="3.3"/>.</t> | ||||
<t>The rest of computation proceeds as defined in Section 3.3 of <xref | <!--[rfced] We have some questions regarding the text below from | |||
target="RFC9048"/>.</t> | Section 6.3: | |||
<t>For readability, an explanation of the notation used above | i. This paragraph appears several paragraphs after the text it | |||
is copied here: [n..m] denotes the substring from bit n to m. | describes. Would it be helpful to have this paragraph appear closer to | |||
PRF' is a new pseudo-random function specified in <xref | the notation it defines? Or to update from "of the notation used | |||
target="RFC9048"/>. K_encr is the encryption key, 128 bits, | above" to instead use "of the notation used in Figure X" (and add a | |||
K_aut is the authentication key, 256 bits, K_re is the | title to the text in the <figure> tags? | |||
re-authentication key, 256 bits, MSK is the Master Session | ||||
Key, 512 bits, and EMSK is the Extended Master Session Key, | ||||
512 bits. MSK and EMSK are outputs from a successful EAP | ||||
method run <xref target="RFC3748"/>.</t> | ||||
<t>CK and IK are produced by the AKA algorithm. IK' and CK' | ii. For readability, may we reformat the sentence as follows? | |||
are derived as specified in <xref target="RFC9048"/> from IK | ||||
and CK.</t> | ||||
<t>The value "EAP-AKA'" is an eight-characters-long ASCII string. It i | Original: | |||
s | ||||
used as is, without any trailing NUL characters. Similarly, | ||||
"EAP-AKA' FS" is an eleven-characters-long ASCII string, also | ||||
used as is.</t> | ||||
<t>Identity is the peer identity as specified in Section 7 of <xref tar | For readability, an explanation of the notation used above is copied | |||
get="RFC4187"/>. | here: [n..m] denotes the substring from bit n to m. PRF' is a new | |||
A privacy-friendly identifier <xref target="RFC9048"/> SHALL be used.</t | pseudo-random function specified in [RFC9048]. K_encr is the | |||
> | 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 | ||||
Session Key, 512 bits, and EMSK is the Extended Master Session Key, | ||||
512 bits. MSK and EMSK are outputs from a successful EAP method run | ||||
[RFC3748]. | ||||
</section> | Perhaps: | |||
<section anchor="groups" title="ECDHE Groups"> | ||||
<t>The selection of suitable groups for the elliptic curve | ||||
computation 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.</t> | ||||
<t>For "EAP-AKA' with ECDHE and | For readability, an explanation of the notation used [in Figure X?] | |||
X25519" the group is the Curve25519 group specified in | above is copied here: | |||
<xref target="RFC7748"/>. The support for this group is REQUIRED.</t> | ||||
<t>For "EAP-AKA' with ECDHE and P-256" the group is the NIST | * [n..m] denotes the substring from bit n to m. | |||
P-256 group (SEC group secp256r1), specified in Section 3.2.1.3 of | ||||
<xref target="SP-800-186"/> or alternatively Section 2.4.2 of <xref targ | ||||
et="SEC2"/>. | ||||
The support for this group is REQUIRED.</t> | ||||
<t>The term "support" here means that the group MUST be implemented.</t> | * PRF' is a new pseudorandom function specified in [RFC9048]. | |||
</section> | * K_encr is the encryption key (128 bits). | |||
<section title="Message Processing" anchor="secMessageProc"> | * K_aut is the authentication key (256 bits). | |||
<t>This section specifies the changes related to message processing | * K_re is the re-authentication key (256 bits). | |||
* MSK is the Master Session Key (512 bits). | ||||
* EMSK is the Extended Master Session Key (512 bits). | ||||
Note: MSK and EMSK are outputs from a successful EAP method run [RFC3748]. | ||||
--> | ||||
<t>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 pseudorandom function specified in <xref target="RFC9048" | ||||
format="default"/>. K_encr is the 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 Session Key, 512 bits, and EMSK is the | ||||
Extended Master Session Key, 512 bits. MSK and EMSK are outputs from a | ||||
successful EAP method run <xref target="RFC3748" | ||||
format="default"/>.</t> | ||||
<t>CK and IK are produced by the AKA algorithm. IK' and CK' are | ||||
derived as specified in <xref target="RFC9048" format="default"/> from | ||||
IK and CK.</t> | ||||
<t>The value "EAP-AKA'" is an ASCII string that is 8 characters long. I | ||||
t | ||||
is used as is, without any trailing NUL characters. Similarly, | ||||
"EAP-AKA' FS" is an ASCII string that is 11 characters long, also used a | ||||
s | ||||
is.</t> | ||||
<t>Identity is the peer identity as specified in <xref | ||||
target="RFC4187" sectionFormat="of" section="7"/>. A privacy-friendly | ||||
identifier <xref target="RFC9048" format="default"/> | ||||
<bcp14>SHALL</bcp14> be used.</t> | ||||
</section> | ||||
<section anchor="groups" numbered="true" toc="default"> | ||||
<name>ECDHE Groups</name> | ||||
<t>The selection of suitable groups for the elliptic curve | ||||
computation is necessary. The choice of a group is made at | ||||
the same time as the decision to use a particular KDF in the AT_KDF_FS | ||||
attribute.</t> | ||||
<t>For "EAP-AKA' with ECDHE and | ||||
X25519", the group is the Curve25519 group specified in | ||||
<xref target="RFC7748" format="default"/>. The support for this group i | ||||
s <bcp14>REQUIRED</bcp14>.</t> | ||||
<t>For "EAP-AKA' with ECDHE and P-256", the group is the NIST P-256 | ||||
group (SEC group secp256r1), specified in Section 3.2.1.3 of <xref | ||||
target="SP-800-186" format="default"/> or alternatively, Section 2.4.2 | ||||
of <xref target="SEC2" format="default"/>. The support for this group | ||||
is <bcp14>REQUIRED</bcp14>.</t> | ||||
<t>The term "support" here means that the group <bcp14>MUST</bcp14> be i | ||||
mplemented.</t> | ||||
</section> | ||||
<section anchor="secMessageProc" numbered="true" toc="default"> | ||||
<name>Message Processing</name> | ||||
<t>This section specifies the changes related to message processing | ||||
when this extension is used in EAP-AKA'. It specifies when a | when this extension is used in EAP-AKA'. It specifies when a | |||
message may be transmitted or accepted, which attributes are | message may be transmitted or accepted, which attributes are | |||
allowed in a message, which attributes are required in a message, | allowed in a message, which attributes are required in a message, | |||
and other message-specific details, where those details are | and other message-specific details, where those details are | |||
different for this extension than the base EAP-AKA' or EAP-AKA | different for this extension than the base EAP-AKA' or EAP-AKA | |||
protocol. Unless otherwise specified here, the rules from <xref | protocol. Unless otherwise specified here, the rules from <xref target="RFC9 | |||
target="RFC9048"/> or <xref target="RFC4187"/> apply.</t> | 048" format="default"/> or <xref target="RFC4187" format="default"/> apply.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="EAP-Request/AKA'-Identity"> | <!--[rfced] Many of the subsections in Section 6.5 (Message | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes | Processing) start with "No changes" (see some examples | |||
MUST NOT be added to this message. The appearance of these | below). For clarity, would it aid the reader to provide some | |||
attributes in a received message MUST be ignored.</t> | additional context in these sections? | |||
</section> | ||||
<section title="EAP-Response/AKA'-Identity"> | Original: | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes | 6.5.1. EAP-Request/AKA'-Identity | |||
MUST NOT be added to this message. The appearance of these attributes in a | ||||
received message | ||||
MUST be ignored. The peer identifier SHALL comply | ||||
with the privacy-friendly requirements of | ||||
<xref target="RFC9190"/>. An example of a compliant way of constructing | ||||
a privacy-friendly peer identifier is using a non-NULL SUCI <xref target=" | ||||
TS.33.501"/>. | ||||
</t> | ||||
</section> | No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes | |||
MUST NOT be added to this message. | ||||
<section anchor="procakachall" title="EAP-Request/AKA'-Challenge"> | 6.5.11. EAP-Response/AKA'-Notification | |||
<t>The server sends the EAP-Request/AKA'-Challenge on full authentication | No changes. | |||
as specified by <xref target="RFC4187"/> and <xref target="RFC9048"/>. | ||||
The attributes AT_RAND, AT_AUTN, and AT_MAC MUST be included and | ||||
checked on reception as specified | ||||
in <xref target="RFC4187"/>. They are also necessary | ||||
for backwards compatibility.</t> | ||||
<t>In EAP-Request/AKA'-Challenge, there is no message-specific | Perhaps: | |||
data 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 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 it as if neither one was sent, and the assume that | ||||
the extension defined in this document is not in use.</t> | ||||
<t>The AT_RESULT_IND, AT_CHECKCODE, AT_IV, AT_ENCR_DATA, AT_PADDING, | 6.5.1. EAP-Request/AKA'-Identity | |||
AT_NEXT_PSEUDONYM, AT_NEXT_REAUTH_ID and other attributes may be | ||||
included as specified in Section 9.3 of <xref | ||||
target="RFC4187"/>.</t> | ||||
<t>When processing this message, the peer MUST process AT_RAND, | There are no changes for the EAP-Request/AKA'-Identity, except that | |||
AT_AUTN, AT_KDF_FS, AT_PUB_ECDHE before processing other attributes. | the... | |||
Only if 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 extension specified in this document, | ||||
it proceeds as defined in <xref target="RFC9048"/>. Finally, if | ||||
there is an error error, see Section 6.3.1. of <xref target="RFC4187"/>.</ | ||||
t> | ||||
</section> | 6.5.11. EAP-Response/AKA'-Notification | |||
<section anchor="procakachallresp" title="EAP-Response/AKA'-Challenge"> | There are no changes for the EAP-Response/AKA'-Notification. | |||
<t>The peer sends EAP-Response/AKA'-Challenge in response to a | --> | |||
valid EAP-Request/AKA'-Challenge message, as specified by <xref | ||||
target="RFC4187"/> and <xref target="RFC9048"/>. | <name>EAP-Request/AKA'-Identity</name> | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes | ||||
<bcp14>MUST NOT</bcp14> be added to this message. The appearance of these | ||||
attributes in a received message <bcp14>MUST</bcp14> be ignored.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Identity</name> | ||||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE attributes | ||||
<bcp14>MUST NOT</bcp14> be added to this message. The appearance of these | ||||
attributes in a received message | ||||
<bcp14>MUST</bcp14> be ignored. The peer identifier <bcp14>SHALL</bcp14> c | ||||
omply | ||||
with the privacy-friendly requirements of | ||||
<xref target="RFC9190" format="default"/>. An example of a compliant way | ||||
of constructing | ||||
a privacy-friendly peer identifier is using a non-NULL SUCI <xref target=" | ||||
TS.33.501" format="default"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="procakachall" numbered="true" toc="default"> | ||||
<name>EAP-Request/AKA'-Challenge</name> | ||||
<t>The server sends the EAP-Request/AKA'-Challenge on full | ||||
authentication as specified by <xref target="RFC4187" | ||||
format="default"/> and <xref target="RFC9048" format="default"/>. | ||||
The attributes AT_RAND, AT_AUTN, and AT_MAC <bcp14>MUST</bcp14> be | ||||
included and checked on reception as specified in <xref | ||||
target="RFC4187" format="default"/>. They are also necessary for | ||||
backwards compatibility.</t> | ||||
<t>In the EAP-Request/AKA'-Challenge, there is no message-specific dat | ||||
a | ||||
covered by the MAC for the AT_MAC attribute. The AT_KDF_FS and | ||||
AT_PUB_ECDHE attributes <bcp14>MUST</bcp14> be included. The | ||||
AT_PUB_ECDHE attribute carries the server's public Diffie-Hellman | ||||
key. If either AT_KDF_FS or AT_PUB_ECDHE is missing on reception, | ||||
the peer <bcp14>MUST</bcp14> treat it as if neither one was sent | ||||
and assume that the extension defined in this document is not in | ||||
use.</t> | ||||
<t>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 | ||||
included as specified in <xref target="RFC4187" sectionFormat="of" | ||||
section="9.3"/>.</t> | ||||
<t>When processing this message, the peer <bcp14>MUST</bcp14> | ||||
process AT_RAND, AT_AUTN, AT_KDF_FS, and AT_PUB_ECDHE before | ||||
processing other attributes. The peer derives keys and verifies | ||||
AT_MAC only if these attributes are verified to be valid. If the | ||||
peer is unable or unwilling to perform the extension specified in | ||||
this document, it proceeds as defined in <xref target="RFC9048" | ||||
format="default"/>. Finally, if there is an error, see <xref | ||||
target="RFC4187" sectionFormat="of" section="6.3.1"/>.</t> | ||||
</section> | ||||
<section anchor="procakachallresp" numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Challenge</name> | ||||
<t>The peer sends an EAP-Response/AKA'-Challenge in response to a | ||||
valid EAP-Request/AKA'-Challenge message, as specified by <xref target="RF | ||||
C4187" format="default"/> and <xref target="RFC9048" format="default"/>. | ||||
If the peer supports and is willing to perform the extension | If the peer supports and is willing to perform the extension | |||
specified in this protocol, and the server had made a valid | specified in this protocol, and the server had made a valid | |||
request involving the attributes specified in <xref | request involving the attributes specified in <xref target="procakachall" | |||
target="procakachall"/>, the peer responds per the rules | format="default"/>, the peer responds per the rules | |||
specified below. Otherwise, the peer responds as specified in | specified below. Otherwise, the peer responds as specified in | |||
<xref target="RFC4187"/> and <xref | <xref target="RFC4187" format="default"/> and <xref target="RFC9048" forma | |||
target="RFC9048"/> and ignores the attributes | t="default"/> and ignores the attributes | |||
related to this extension. If the peer has not received | related to this extension. If the peer has not received | |||
attributes related to this extension from the Server, and has a | attributes related to this extension from the Server, and has a | |||
policy that requires it to always use this extension, it behaves | policy that requires it to always use this extension, it behaves | |||
as if AUTN had been incorrect and fails the authentication.</t> | as if AUTN were incorrect and fails the authentication.</t> | |||
<t>The AT_MAC attribute <bcp14>MUST</bcp14> be included and checked as | ||||
<t>The AT_MAC attribute MUST be included and checked as | specified in <xref target="RFC9048" format="default"/>. In the | |||
specified in <xref target="RFC9048"/>. In | ||||
EAP-Response/AKA'-Challenge, there is no message-specific data | EAP-Response/AKA'-Challenge, there is no message-specific data | |||
covered by the MAC. The AT_PUB_ECDHE attribute MUST be included, | covered by the MAC. The AT_PUB_ECDHE attribute <bcp14>MUST</bcp14> be incl uded | |||
and carries the peer's public Diffie-Hellman key.</t> | and carries the peer's public Diffie-Hellman key.</t> | |||
<t>The AT_RES attribute <bcp14>MUST</bcp14> be included and checked as | ||||
<t>The AT_RES attribute MUST be included and checked as | specified in <xref target="RFC4187" format="default"/>. When processing t | |||
specified in <xref target="RFC4187"/>. When processing this | his | |||
message, the Server MUST process AT_RES before processing other | message, the Server <bcp14>MUST</bcp14> process AT_RES before processing o | |||
ther | ||||
attributes. The Server derives keys and verifies AT_MAC only | attributes. The Server derives keys and verifies AT_MAC only | |||
when this attribute is verified to be valid.</t> | when this attribute is verified to be valid.</t> | |||
<t>If the Server has proposed the use of the extension specified | ||||
<t>If the Server has proposed the use of the extension specified | ||||
in this protocol, but the peer ignores and continues the basic | in this protocol, but the peer ignores and continues the basic | |||
EAP-AKA' authentication, the Server makes policy decision of | EAP-AKA' authentication, the Server makes a policy decision of | |||
whether this is allowed. If this is allowed, it continues the | whether this is allowed. If this is allowed, it continues the | |||
EAP-AKA' authentication to completion. If it is not allowed, the | EAP-AKA' authentication to completion. If it is not allowed, the | |||
Server MUST behave as if authentication failed.</t> | Server <bcp14>MUST</bcp14> behave as if authentication failed.</t> | |||
<t>The AT_CHECKCODE, AT_RESULT_IND, AT_IV, AT_ENCR_DATA, and other | ||||
<t>The AT_CHECKCODE, AT_RESULT_IND, AT_IV, AT_ENCR_DATA and other | attributes may be included as specified in <xref target="RFC4187" sectionF | |||
attributes may be included as specified in Section 9.4 of <xref target="RF | ormat="of" section="9.4"/>.</t> | |||
C4187"/>.</t> | </section> | |||
<section anchor="reauth" numbered="true" toc="default"> | ||||
</section> | <name>EAP-Request/AKA'-Reauthentication</name> | |||
<t>No changes, but note that the re-authentication process | ||||
<section anchor="reauth" title="EAP-Request/AKA'-Reauthentication"> | ||||
<t>No changes, but note that the re-authentication process | ||||
uses the keys generated in the original EAP-AKA' authentication, | uses the keys generated in the original EAP-AKA' authentication, | |||
which, if the extension specified in this document is in use, | which employs key material from the Diffie-Hellman procedure if the extens | |||
employs key material from the Diffie-Hellman procedure.</t> | ion specified in this document is in use.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="EAP-Response/AKA'-Reauthentication"> | <name>EAP-Response/AKA'-Reauthentication</name> | |||
<t>No changes, but as discussed in <xref target="reauth"/>, | <t>No changes, but as discussed in <xref target="reauth" format="defau | |||
lt"/>, | ||||
re-authentication is based on the key material generated by | re-authentication is based on the key material generated by | |||
EAP-AKA' and the extension defined in this document.</t> | EAP-AKA' and the extension defined in this document.</t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Synchronization-Failure</name> | ||||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | ||||
attributes <bcp14>MUST NOT</bcp14> be added to this message. | ||||
The appearance of these attributes in a received message <bcp14>MUST</bcp1 | ||||
4> be ignored.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Authentication-Reject</name> | ||||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | ||||
attributes <bcp14>MUST NOT</bcp14> be added to this message. | ||||
The appearance of these attributes in a received message <bcp14>MUST</bcp1 | ||||
4> be ignored.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Client-Error</name> | ||||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | ||||
attributes <bcp14>MUST NOT</bcp14> be added to this message. | ||||
The appearance of these attributes in a received message <bcp14>MUST</bcp1 | ||||
4> be ignored.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Request/AKA'-Notification</name> | ||||
<t>No changes.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>EAP-Response/AKA'-Notification</name> | ||||
<t>No changes.</t> | ||||
</section> | ||||
</section> | ||||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Security Considerations</name> | ||||
<section title="EAP-Response/AKA'-Synchronization-Failure"> | <!--[rfced] Is "changes to security considerations as they differ" | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | clear to the reader? Maybe a rephrase of this paragraph would be | |||
attributes MUST NOT be added to this message. | helpful? | |||
The appearance of these attributes in a received message MUST be ignored.< | ||||
/t> | ||||
</section> | ||||
<section title="EAP-Response/AKA'-Authentication-Reject"> | Original: | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | This section deals only with the changes to security considerations | |||
attributes MUST NOT be added to this message. | as they differ from EAP-AKA', or as new information has been gathered | |||
The appearance of these attributes in a received message MUST be ignored.< | since the publication of [RFC9048]. | |||
/t> | ||||
</section> | ||||
<section title="EAP-Response/AKA'-Client-Error"> | Perhaps: | |||
<t>No changes, except that the AT_KDF_FS or AT_PUB_ECDHE | This section deals only with changes to security considerations | |||
attributes MUST NOT be added to this message. | for EAP-AKA' or new information that has been gathered | |||
The appearance of these attributes in a received message MUST be ignored.< | since the publication of [RFC9048]. | |||
/t> | --> | |||
</section> | ||||
<section title="EAP-Request/AKA'-Notification"> | <t>This section deals only with the changes to security considerations | |||
<t>No changes.</t> | as they differ from EAP-AKA', or as new information has been gathered | |||
</section> | since the publication of <xref target="RFC9048" format="default"/>.</t> | |||
<t>As discussed in <xref target="sec_intro" format="default"/>, FS is an i | ||||
mportant countermeasure against adversaries who gain | ||||
access to long-term keys. The long-term keys can be best protected | ||||
with good processes, e.g., restricting access to the key material within | ||||
a factory or among personnel, etc. Even so, not all attacks can be | ||||
entirely ruled out. For instance, well-resourced adversaries may be able | ||||
to coerce insiders to collaborate, despite any technical protection | ||||
measures. The zero trust principles suggest that we assume that | ||||
breaches are inevitable or have potentially already occurred and that | ||||
we need to minimize the impact of these breaches (see <xref target="NSA-ZT | ||||
" | ||||
format="default"/> and <xref target="NIST-ZT" format="default"/>). One typ | ||||
e | ||||
of breach is key compromise or key exfiltration.</t> | ||||
<section title="EAP-Response/AKA'-Notification"> | <!--[rfced] FYI - For readability, we have updated the text below as | |||
<t>No changes.</t> | follows. Please confirm that 5G-AKA and EAP-AKA' are two separate | |||
</section> | mechanisms and that the updates to "both" in the final sentence | |||
retain your meaning. | ||||
</section> | Original: | |||
</section> | ||||
<section title="Security Considerations"> | If a mechanism without ephemeral key exchange such as (5G-AKA, EAP- | |||
AKA') is used the effects of key compromise are devastating. There | ||||
are serious consequences of not properly providing forward secrecy | ||||
for the key establishment. For both control and user plane, and | ||||
both directions: | ||||
<t>This section deals only with the changes to security considerations | Current: | |||
as they differ from EAP-AKA', or as new information has been gathered | ||||
since the publication of <xref target="RFC9048"/>.</t> | ||||
<t>As discussed in <xref target="sec:intro"/>, | If a mechanism without ephemeral key exchange (such as 5G-AKA or | |||
forward secrecy is an important countermeasure against adversaries | EAP- AKA') is used, the effects of key compromise are devastating. | |||
who gain access to the long-term keys. | There are serious consequences to not properly providing forward | |||
The long-term keys can be best protected with good processes, | secrecy for the key establishment, for the control plane and the | |||
e.g., restricting access to the key material within a factory or | user plane, and for both directions: | |||
among personnel, etc. | ||||
Even so, not all attacks can | ||||
be entirely ruled out. For instance, well-resourced adversaries | ||||
may be able to coerce insiders to collaborate, despite any | ||||
technical protection measures. | ||||
The zero trust principles suggest that we assume that breaches are | ||||
inevitable or have potentially already occurred, and that we need to | ||||
minimize the impact of these breaches | ||||
<xref target="NSA-ZT"/> <xref target="NIST-ZT"/>. | ||||
One type of breach is key compromise or key exfiltration.</t> | ||||
<t>If a mechanism without ephemeral key exchange such as (5G-AKA, | --> | |||
EAP-AKA') is used the effects of key compromise are devastating. | <t>If a mechanism without ephemeral key exchange (such as 5G-AKA or | |||
There are serious consequences of not properly providing forward secrecy | EAP-AKA') is used, the effects of key compromise are devastating. There | |||
for the key establishment. For both control and user plane, and both direct | are serious consequences to not properly providing FS for | |||
ions: | the key establishment, for the control plane and the user plane, and for | |||
<list style="numbers"> | both directions: | |||
<t>An attacker can decrypt 5G communication that they | </t> | |||
<ol spacing="normal" type="1"><li> | ||||
<t>An attacker can decrypt 5G communication that they | ||||
previously recorded.</t> | previously recorded.</t> | |||
<t>A passive attacker can eavesdrop (decrypt) all | </li> | |||
<li> | ||||
<t>A passive attacker can eavesdrop (decrypt) all | ||||
future 5G communication.</t> | future 5G communication.</t> | |||
<t>An active attacker can impersonate the UE or the | </li> | |||
<li> | ||||
<t>An active attacker can impersonate the User Equipment (UE) or the | ||||
Network and inject messages in an ongoing 5G connection between | Network and inject messages in an ongoing 5G connection between | |||
the real UE and the real network.</t> | the real UE and the real network.</t> | |||
</list> | </li> | |||
</t> | </ol> | |||
<t>At the time of writing, best practice security is to mandate FS (as is | ||||
done in Wi-Fi Protected Access 3 (WPA3), EAP-TLS 1.3, EAP-TTLS 1.3, | ||||
Internet Key Exchange Protocol Version 2 (IKEv2), Secure Shell (SSH), | ||||
QUIC, WireGuard, Signal, etc.). In deployments, it is recommended that | ||||
EAP-AKA methods without FS be phased out in the long | ||||
term.</t> | ||||
<t>Best practice security today is to mandate forward secrecy (as | <!--[rfced] We had a few questions/comments about the fifth paragraph | |||
is done in WPA3, EAP-TLS 1.3, EAP-TTLS 1.3, IKEv2, SSH, QUIC, | of the Security Considerations section: | |||
WireGuard, Signal, etc.). It is recommended that in deployments, | ||||
EAP-AKA methods without forward secrecy be phased out in the long | ||||
term.</t> | ||||
<t>This extension provide assistance against passive attacks from | a) This use of the slash character being clarified would be helpful to | |||
the reader as well as avoid subject/verb agreement issues. | ||||
Original: | ||||
This extension is most useful when used in a context where the | ||||
MSK/EMSK are used in protocols not providing forward secrecy. | ||||
Perhaps: | ||||
This extension is most useful when implemented in a context where the | ||||
MSK [and, or, and/or?] EMSK are used in protocols not providing FS. | ||||
b) Clarifying what "this property" refers to might be helpufl to the | ||||
reader. Also, rephrasing the clause that begins with "so better | ||||
characteristics..." might avoid a possible need to re-read since | ||||
"characteristics" seems not to match with "is" for subject/verb | ||||
agreement. | ||||
Original: | ||||
For instance, if used with IKEv2 [RFC7296], the session keys produced | ||||
by IKEv2 have this property, so better characteristics of the MSK and | ||||
EMSK is not that useful. | ||||
c) Please confirm this use of "forward secure" instead of "forward | ||||
secrecy" there are two other similar instances in the document (we | ||||
also see "forward secret"). We will assume they were intended unless | ||||
we hear otherwise. | ||||
Original: | ||||
However, typical link layer usage of EAP does not involve running | ||||
another, forward secure, key exchange. | ||||
--> | ||||
<t>The FS extension provides assistance against passive attacks from | ||||
attackers that have compromised the key material on USIM cards. | attackers that have compromised the key material on USIM cards. | |||
Passive attacks are attractive for attackers performing large | Passive attacks are attractive for attackers performing large-scale pervasiv | |||
scale pervasive monitoring as they require much less resources | e monitoring as they require far fewer resources | |||
and are much harder to detect. The extension also | and are much harder to detect. The extension also | |||
provides protection against active attacks as the attacker is forced to | provides protection against active attacks as the attacker is forced to | |||
be on path during the AKA run and subsequent | be on-path during the AKA run and subsequent | |||
communication between the parties. Without forward secrecy an | communication between the parties. Without FS, an | |||
active attacker that has compromised the long-term key can | active attacker that has compromised the long-term key can | |||
inject messages in an connection between the real Peer and the | inject messages in a connection between the real Peer and the | |||
real server without being on path. This extension is most | real server without being on-path. This extension is most | |||
useful when used in a context where the MSK/EMSK are used in | useful when implemented in a context where the MSK/EMSK are used in | |||
protocols not providing forward secrecy. For | protocols not providing FS. For | |||
instance, if used with IKEv2 <xref target="RFC7296"/>, the | instance, if used with IKEv2 <xref target="RFC7296" format="default"/>, the | |||
session keys produced by IKEv2 have this property, so better | session keys produced by IKEv2 have this property, so better | |||
characteristics of the MSK and EMSK is not that useful. However, | characteristics of the MSK and EMSK is not that useful. However, | |||
typical | typical | |||
link layer usage of EAP does not involve running another, forward secure, | link-layer usage of EAP does not involve running another, forward secure, | |||
key exchange. Therefore, using EAP to authenticate access to a network is on e situation | key exchange. Therefore, using EAP to authenticate access to a network is on e situation | |||
where the extension defined in this document can be helpful.</t> | where the extension defined in this document can be helpful.</t> | |||
<t>The FS extension generates keying material using the ECDHE | ||||
<t>This extension generates keying material using the ECDHE | ||||
exchange in order to gain the FS property. This means that once | exchange in order to gain the FS property. This means that once | |||
an EAP-AKA' authentication run ends, the session that it was used | an EAP-AKA' authentication run ends, the session that it was used | |||
to protect is closed, and the corresponding keys are destroyed, | to protect is closed, and the corresponding keys are destroyed. Even someone | |||
even someone who has recorded all of the data from the | who has recorded all of the data from the | |||
authentication run and session and gets access to all of the AKA | authentication run and session and gets access to all of the AKA | |||
long-term keys cannot reconstruct the keys used to protect the | long-term keys cannot reconstruct the keys used to protect the | |||
session or any previous session, without doing a brute force | session or any previous session, without doing a brute-force | |||
search of the session key space.</t> | search of the session key space.</t> | |||
<t>Even if a compromise of the long-term keys has occurred, FS is | ||||
<t>Even if a compromise of the long-term keys has occurred, FS is | ||||
still provided for all future sessions, as long as the attacker | still provided for all future sessions, as long as the attacker | |||
does not become an active attacker.</t> | does not become an active attacker.</t> | |||
<t>The extension does not provide protection against active attackers with a | <!--[rfced] How may we update this run-on sentence below? | |||
ccess to the long-term key that mount | ||||
Original: | ||||
The extension does not provide protection against active attackers | ||||
with access to the long-term key that mount an on-path attack on | ||||
future EAP-AKA' runs will be able to eavesdrop on the traffic | ||||
protected by the resulting session key(s). | ||||
Perhaps: | ||||
The extension does not provide protection against active attackers that | ||||
mount an on-path attack on future EAP-AKA' runs and have access to the | ||||
long-term key. They will be able to eavesdrop on the traffic protected by the | ||||
resulting session key(s). | ||||
--> | ||||
<t>The extension does not provide protection against active attackers with acces | ||||
s to the long-term key that mount | ||||
an on-path attack on future EAP-AKA' runs will be able to eavesdrop on the | an on-path attack on future EAP-AKA' runs will be able to eavesdrop on the | |||
traffic protected by the resulting session key(s). Still, past sessions | traffic protected by the resulting session key(s). Still, past sessions | |||
where FS was in use remain protected.</t> | where FS was in use remain protected.</t> | |||
<t>Using EAP-AKA' FS once provides forward secrecy. Forward secrecy limits t he | <t>Using EAP-AKA' FS once provides FS. FS limits the | |||
effect of key leakage in one direction (compromise of a key at time T2 do es | effect of key leakage in one direction (compromise of a key at time T2 do es | |||
not compromise some key at time T1 where T1 < T2). Protection in the o ther | not compromise some key at time T1 where T1 < T2). Protection in the o ther | |||
direction (compromise at time T1 does not compromise keys at time T2) can | direction (compromise at time T1 does not compromise keys at time T2) can | |||
be achieved by rerunning ECDHE frequently. If a long-term authentication key | be achieved by rerunning ECDHE frequently. If a long-term authentication key | |||
has been compromised, rerunning EAP-AKA' FS gives protection against pass ive | has been compromised, rerunning EAP-AKA' FS gives protection against pass ive | |||
attackers. Using the terms in <xref target="RFC7624"/>, forward secrecy w ithout rerunning | attackers. Using the terms in <xref target="RFC7624" format="default"/>, FS without rerunning | |||
ECDHE does not stop an attacker from doing static key exfiltration. Frequ ently | ECDHE does not stop an attacker from doing static key exfiltration. Frequ ently | |||
rerunning EC(DHE) forces an attacker to do dynamic key exfiltration | rerunning EC(DHE) forces an attacker to do dynamic key exfiltration | |||
(or content exfiltration).</t> | (or content exfiltration).</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Deployment Considerations"> | <name>Deployment Considerations</name> | |||
<t>Achieving FS requires that, when a connection is closed, each | ||||
<t>Achieving FS requires that when a connection is closed, each | endpoint <bcp14>MUST</bcp14> destroy not only the ephemeral keys used by the | |||
endpoint MUST destroy not only the ephemeral keys used by the | ||||
connection but also any information that could be used to | connection but also any information that could be used to | |||
recompute those keys.</t> | recompute those keys.</t> | |||
<t>Similarly, other parts of the system matter. For instance, when the k | ||||
<t>Similarly, other parts of the system matter. For instance, when the keys | eys generated by EAP are transported to a | |||
generated by EAP are transported to a | pass-through authenticator, such transport must also provide forward se | |||
pass-through authenticator, such transport must also provide forward | cure encryption with respect to the long-term keys used to establish | |||
secure encryption with respect to the long-term keys used to establish | ||||
its security. Otherwise, an adversary may attack the transport connecti on | its security. Otherwise, an adversary may attack the transport connecti on | |||
used to carry keys from EAP, and use this method to gain access to curre nt and past | used to carry keys from EAP, and use this method to gain access to curre nt and past | |||
keys from EAP, which in turn would lead to the compromise of anything pro | keys from EAP, which, in turn, would lead to the compromise of anything p | |||
tected by those EAP keys.</t> | rotected by those EAP keys.</t> | |||
<t>Of course, these considerations | ||||
<t>Of course, these considerations | ||||
apply to any EAP method, not only this one.</t> | apply to any EAP method, not only this one.</t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Security Properties</name> | ||||
<t>The following security properties of | ||||
EAP-AKA' are impacted through this extension:</t> | ||||
</section> | <dl newline="true" spacing="normal"> | |||
<dt>Protected ciphersuite negotiation:</dt> | ||||
<section title="Security Properties"> | <dd> | |||
<t>EAP-AKA' has a negotiation mechanism for selecting the KDFs, and | ||||
<t>The following security properties of | this mechanism has been extended by the | |||
EAP-AKA' are impacted through this extension: | extension specified in this document. The resulting mechanism | |||
continues to be secure against bidding-down attacks.</t> | ||||
<list style="hanging"> | <t>There are two specific needs in the negotiation mechanism:</t> | |||
<dl newline="true" spacing="normal"> | ||||
<t hangText="Protected ciphersuite negotiation"><vspace blankLines="1"/> | <dt>Negotiating KDFs within the extension:</dt> | |||
<dd> | ||||
EAP-AKA' has a negotiation mechanism for selecting the key | The negotiation mechanism allows changing the offered KDF, but the chang | |||
derivation functions, and this mechanism has been extended by | e is visible in the final | |||
the extension specified in this document. The resulting | EAP-Request/AKA'-Challenge message that the server sends to the peer. | |||
mechanism continues to be secure against bidding down | This message is authenticated via the AT_MAC attribute, and carries | |||
attacks. | both the chosen alternative and the initially offered list. The peer | |||
<vspace blankLines="1"/> | refuses to accept a change it did not initiate. As a result, both | |||
parties are aware that a change is being made and what the original | ||||
There are two specific needs in the negotiation mechanism: | offer was.</dd> | |||
<list style="hanging"> | <dt>Negotiating the use of this extension:</dt> | |||
<dd> | ||||
<t hangText="Negotiating key derivation function within the extension">< | <t> This extension is offered by the server | |||
vspace blankLines="1"/> | ||||
The negotiation mechanism allows changing the offered key | ||||
derivation function, but the change is visible in the final EAP- | ||||
Request/AKA'-Challenge message that the server sends to the peer. | ||||
This message is authenticated via the AT_MAC attribute, and | ||||
carries both the chosen alternative and the initially offered | ||||
list. The peer refuses to accept a change it did not initiate. | ||||
As a result, both parties are aware that a change is being made | ||||
and what the original offer was.</t> | ||||
<t hangText="Negotiating the use of this extension"><vspace | ||||
blankLines="1"/> This extension is offered by the server | ||||
through presenting the AT_KDF_FS and AT_PUB_ECDHE attributes in | through presenting the AT_KDF_FS and AT_PUB_ECDHE attributes in | |||
the EAP-Request/AKA'-Challenge message. These attributes are | the EAP-Request/AKA'-Challenge message. These attributes are | |||
protected by AT_MAC, so attempts to change or omit them by an | protected by AT_MAC, so attempts to change or omit them by an | |||
adversary will be detected.<vspace blankLines="1"/> | adversary will be detected.</t> | |||
Except of course, if the adversary holds the long-term key | <!--[rfced] The sentence below introduces a new paragraph, but is | |||
and is willing to engage in an active attack. Such an | missing a lead-in clause with a subject. How may we adjust? | |||
attack can, for instance, forge the negotiation process so | ||||
that no FS will be provided. However, as noted above, an | ||||
attacker with these capabilities will in any case be able to | ||||
impersonate any party in the protocol and perform on-path | ||||
attacks. That is not a situation that can be improved by a | ||||
technical solution. However, as discussed in the introduction, | ||||
even an attacker with access to the long-term keys is required | ||||
to be on path on each AKA run and subsequent communication, | ||||
which makes mass surveillance more laborious. | ||||
<vspace blankLines="1"/> | ||||
The security properties of the extension also depend on a | Original: | |||
policy choice. As discussed in <xref | Except of course, if the adversary holds the long-term key and | |||
target="procakachallresp"/>, both the peer and the server make | is willing to engage in an active attack. | |||
a policy decision of what to do when it was willing to perform | ||||
the extension specified in this protocol, but the other side | ||||
does not wish to use the extension. Allowing this has the | ||||
benefit of allowing backwards compatibility to equipment that | ||||
did not yet support the extension. When the extension is not | ||||
supported or negotiated by the parties, no FS can obviously be | ||||
provided. | ||||
<vspace blankLines="1"/> | ||||
If turning off the extension specified in this protocol is not | Perhaps: | |||
allowed by policy, the use of legacy equipment that does not | These attempts will be detected, except of course, if the adversary holds | |||
support this protocol is no longer possible. This may be | the long-term key and is willing to engage in an active attack. | |||
appropriate when, for instance, support for the extension is | ||||
sufficiently widespread, or required in a particular version | ||||
of a mobile network.</t> | ||||
</list></t> | --> | |||
<t hangText="Key derivation"><vspace blankLines="1"/> | <t> | |||
Except of course, if the adversary holds the long-term key | ||||
and is willing to engage in an active attack. For instance, | ||||
such an attack can forge the negotiation process so that no | ||||
FS will be provided. However, as noted above, an attacker | ||||
with these capabilities will, in any case, be able to | ||||
impersonate any party in the protocol and perform on-path | ||||
attacks. That is not a situation that can be improved by a | ||||
technical solution. However, as discussed in the | ||||
Introduction, even an attacker with access to the long-term | ||||
keys is required to be on-path on each AKA run and | ||||
subsequent communication, which makes mass surveillance more | ||||
laborious. | ||||
</t> | ||||
<t> | ||||
The security properties of the extension also depend on a | ||||
policy choice. As discussed in <xref | ||||
target="procakachallresp" format="default"/>, both the peer | ||||
and the server make a policy decision of what to do when it | ||||
was willing to perform the extension specified in this | ||||
protocol, but the other side does not wish to use the | ||||
extension. Allowing this has the benefit of allowing | ||||
backwards compatibility to equipment that did not yet | ||||
support the extension. When the extension is not supported | ||||
or negotiated by the parties, no FS can obviously be | ||||
provided. | ||||
</t> | ||||
<t> | ||||
If turning off the extension specified in this protocol is | ||||
not allowed by policy, the use of legacy equipment that does | ||||
not support this protocol is no longer possible. This may be | ||||
appropriate when, for instance, support for the extension is | ||||
sufficiently widespread or required in a particular version | ||||
of a mobile network. | ||||
</t> | ||||
</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt>Key derivation:</dt> | ||||
<dd> | ||||
This extension provides forward secrecy. As described in several | This extension provides FS. As described in several | |||
places in this specification, this can be roughly summarized as | places in this specification, this can be roughly summarized as follows: a | |||
that an attacker with access | n attacker with access | |||
to long-term keys is unable to obtain session keys of ended past | to long-term keys is unable to obtain session keys of ended past | |||
sessions, assuming these sessions deleted all relevant session key materia l. | sessions, assuming these sessions deleted all relevant session key materia l. | |||
This extension does not change the properties related to | This extension does not change the properties related to | |||
re-authentication. No new Diffie-Hellman run is performed during | re-authentication. No new Diffie-Hellman run is performed during | |||
the re-authentication allowed by EAP-AKA'. However, if this | the re-authentication allowed by EAP-AKA'. However, if this | |||
extension was in use when the original EAP-AKA' authentication | extension was in use when the original EAP-AKA' authentication | |||
was performed, the keys used for re-authentication (K_re) are | was performed, the keys used for re-authentication (K_re) are | |||
based on the Diffie-Hellman keys, and hence continue to be | based on the Diffie-Hellman keys; hence, they continue to be | |||
equally safe against expose of the long-term key as the | equally safe against exposure of the long-term key as the | |||
original authentication.</t> | original authentication.</dd> | |||
</dl> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
</list></t> | <!--[rfced] Is it odd to begin a section with "In addition"? Please | |||
consider if further information should be added here. | ||||
</section> | Original: | |||
<section title="Denial-of-Service"> | 7.3. Denial-of-Service | |||
<t>In addition, it is worthwhile to discuss Denial-of-Service | In addition, it is worthwhile to discuss Denial-of-Service attacks | |||
and their impact on this protocol. The calculations involved in | ||||
public key cryptography require co | ||||
--> | ||||
<name>Denial of Service</name> | ||||
<t>In addition, it is worthwhile to discuss Denial-of-Service (DoS) | ||||
attacks and their impact on this protocol. The calculations involved | attacks and their impact on this protocol. The calculations involved | |||
in public key cryptography require computing power, which could be | in public key cryptography require computing power, which could be | |||
used in an attack to overpower either the peer or the server. While | used in an attack to overpower either the peer or the server. While | |||
some forms of Denial-of-Service attacks are always possible, the | some forms of DoS attacks are always possible, the | |||
following factors help mitigate the concerns relating to public key | following factors help mitigate the concerns relating to public key | |||
cryptography and EAP-AKA' FS. | cryptography and EAP-AKA' FS. | |||
<list style="symbols"> | </t> | |||
<ul spacing="normal"> | ||||
<t>In 5G context, other parts of the connection setup involve | <li> | |||
<t>In a 5G context, other parts of the connection setup involve | ||||
public key cryptography, so while performing additional operations | public key cryptography, so while performing additional operations | |||
in EAP-AKA' is an additional concern, it does not change the | in EAP-AKA' is an additional concern, it does not change the | |||
overall situation. As a result, the relevant system components | overall situation. As a result, the relevant system components | |||
need to be dimensioned appropriately, and detection and management | need to be dimensioned appropriately, and detection and management | |||
mechanisms to reduce the effect of attacks need to be in | mechanisms to reduce the effect of attacks need to be in | |||
place.</t> | place.</t> | |||
</li> | ||||
<t>This specification is constructed so that a separation | <!--[rfced] Is this an accurate rephrase of this text? | |||
between the USIM and Peer on client side and the Server and AD on | ||||
network side is possible. This ensures that the most sensitive (or | ||||
legacy) system components cannot be the target of the attack. For | ||||
instance, EAP-AKA' and public key cryptography takes place in the | ||||
phone and not the low-power USIM card.</t> | ||||
<t>EAP-AKA' has been designed so that the first actual message in | Original: | |||
* This specification is constructed so that a separation between the | ||||
USIM and Peer on client side and the Server and AD on | ||||
network side is possible. This ensures that the most sensitive | ||||
(or legacy) system components cannot be the target of the attack. | ||||
For instance, EAP-AKA' and public key cryptography takes place in | ||||
the phone and not the low-power USIM card. | ||||
Perhaps: | ||||
* This specification is constructed so that it is possible to have | ||||
a separation between the USIM and Peer on the client side and | ||||
between the Server and AD on the network side. This ensures that | ||||
the most sensitive (or legacy) system components cannot be the | ||||
target of the attack. For instance, EAP-AKA' and public key | ||||
cryptography both take place in the phone and not the low-power | ||||
USIM card. | ||||
--> | ||||
<li> | ||||
<t>This specification is constructed so that a separation between | ||||
the USIM and Peer on the client side and the Server and AD on the | ||||
network side is possible. This ensures that the most sensitive (or | ||||
legacy) system components cannot be the target of the attack. For | ||||
instance, EAP-AKA' and public key cryptography takes place in the | ||||
phone and not the low-power USIM card.</t> | ||||
</li> | ||||
<li> | ||||
<t>EAP-AKA' has been designed so that the first actual message in | ||||
the authentication process comes from the Server, and that this | the authentication process comes from the Server, and that this | |||
message will not be sent unless the user has been identified as | message will not be sent unless the user has been identified as | |||
an active subscriber of the operator in question. While the initial identity | an active subscriber of the operator in question. While the initial identity | |||
can be spoofed before authentication has succeeded, this reduces the efficie ncy of | can be spoofed before authentication has succeeded, this reduces the efficie ncy of | |||
an attack.</t> | an attack.</t> | |||
</li> | ||||
<t>Finally, this memo specifies an order in which computations and | <li> | |||
checks must occur. When processing the EAP-Request/AKA'-Challenge | <t>Finally, this memo specifies an order in which computations and | |||
message, for instance, the AKA authentication must be checked and | checks must occur. For instance, when processing the EAP-Request/AKA'-Challe | |||
nge | ||||
message, 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 <xref | FS-related parameters (see <xref target="procakachallresp" format="default"/ | |||
target="procakachallresp"/>). The same is true of | >). The same is true of an | |||
EAP-Response/AKA'-Challenge (see <xref | EAP-Response/AKA'-Challenge (see <xref target="procakachallresp" format="def | |||
target="procakachallresp"/>). This ensures that the parties need to | ault"/>). This ensures that the parties need to | |||
show possession of the long-term key in some way, and only then | show possession of the long-term key in some way, and only then | |||
will the FS calculations become active. This limits the | will the FS calculations become active. This limits the | |||
Denial-of-Service to specific, identified subscribers. While | DoS to specific, identified subscribers. While | |||
botnets and other forms of malicious parties could take advantage | botnets and other forms of malicious parties could take advantage | |||
of actual subscribers and their key material, at least such | of actual subscribers and their key material, at least such | |||
attacks are (a) limited in terms of subscribers they control, and | attacks are:</t> | |||
(b) identifiable for the purposes of blocking the affected | <ol type="a"><li>limited in terms of subscribers they control, and</li> | |||
subscribers.</t> | <li>identifiable for the purposes of blocking the affected | |||
subscribers.</li></ol> | ||||
</list></t> | </li> | |||
</ul> | ||||
</section> | </section> | |||
<section title="Identity Privacy"> | <section numbered="true" toc="default"> | |||
<t>As specified in <xref target="secMessageProc"/>, the peer identity sent | <name>Identity Privacy</name> | |||
<t>As specified in <xref target="secMessageProc" format="default"/>, the | ||||
peer identity sent | ||||
in the Identity Response message needs | in the Identity Response message needs | |||
to follow the privacy-friendly requirements in <xref target="RFC9190"/>.< | to follow the privacy-friendly requirements in <xref target="RFC9190" for | |||
/t> | mat="default"/>.</t> | |||
</section> | </section> | |||
<section anchor="unp" numbered="true" toc="default"> | ||||
<section anchor="unp" title="Unprotected Data and Privacy"> | <name>Unprotected Data and Privacy</name> | |||
<t>Unprotected data and metadata can reveal sensitive information and need to | <t>Unprotected data and metadata can reveal sensitive information and ne | |||
be selected with care. | ed to be selected with care. | |||
In particular, this applies to | In particular, this applies to | |||
AT_KDF, AT_KDF_FS, AT_PUB_ECDHE, and AT_KDF_INPUT. AT_KDF, AT_KDF_FS, and | 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, if these depend on the | AT_PUB_ECDHE reveal the used cryptographic algorithms; if these depend on the | |||
peer identity they leak information about the peer. AT_KDF_INPUT reveals the | peer identity, they leak information about the peer. AT_KDF_INPUT reveals the | |||
network name, although that is done on purpose to bind the authentication to a particular context.</t> | network name, although that is done on purpose to bind the authentication to a particular context.</t> | |||
<t>An attacker observing network traffic may use the above types of info | ||||
<t>An attacker observing network traffic may use the above types of informati | rmation | |||
on | ||||
for traffic flow analysis or to track an endpoint.</t> | for traffic flow analysis or to track an endpoint.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<name>Forward Secrecy within AT_ENCR</name> | ||||
<t>The keys K_encr and K_aut are calculated and used before the shared s | ||||
ecret from the ephemeral | ||||
key exchange is available.</t> | ||||
<section title="Forward Secrecy within AT_ENCR"> | <!--[rfced] "MAC" appears to be used as a verb in the sentence | |||
below. Are any adjustments needed? | ||||
<t>They keys K_encr and K_aut are calculated and used before the shared sec | Original: | |||
ret from the ephemeral | ||||
key exchange is available.</t> | ||||
<t>K_encr and K_aut are used to encrypt and MAC data in the EAP-Req/AKA'-Ch | K_encr and K_aut are used to encrypt and MAC data in the EAP-Req/ | |||
allenge message, | AKA'-Challenge message... | |||
especially the DH g^x ephemeral pub key. At that point the server does not | ||||
yet have the | ||||
corresponding g^y from the peer and cannot compute the shared secret. K_aut | ||||
is | ||||
then used as the authentication key for the shared secret.</t> | ||||
<t>For K_encr though, none of the encrypted data sent in the | --> | |||
EAP-Req/AKA'-Challenge message in the AT_ENCR attribute will be forward sec | ||||
ret. That data may | <t>K_encr and K_aut are used to encrypt and MAC data in the EAP-Req/AKA' | |||
-Challenge message, | ||||
especially the DH g<sup>x</sup> ephemeral pub key. At that point, the serve | ||||
r does not yet have the | ||||
corresponding g<sup>y</sup> from the peer and cannot compute the shared sec | ||||
ret. K_aut is | ||||
then used as the authentication key for the shared secret.</t> | ||||
<t>However, for K_encr, none of the encrypted data sent in the | ||||
EAP-Req/AKA'-Challenge message in the AT_ENCR attribute will be a forward s | ||||
ecret. That data may | ||||
include re-authentication pseudonyms, so an adversary compromising | include re-authentication pseudonyms, so an adversary compromising | |||
the long-term key would be able to link re-authentication protocol-runs | 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 E AP-AKA' | when pseudonyms are used, within a sequence of runs followed after a full E AP-AKA' | |||
authentication. No such linking would be possible across different full aut | authentication. No such linking would be possible across different full aut | |||
hentaction | hentication | |||
runs. If the pseudonum linkage risk is not acceptable, one way to avoid the | runs. If the pseudonym linkage risk is not acceptable, one way to avoid the | |||
linkage is | linkage is | |||
to always require full EAP-AKA' authentication.</t> | to always require full EAP-AKA' authentication.</t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Post-Quantum Considerations</name> | ||||
<t>As of the publication of this document, it is unclear when or even | ||||
if a quantum computer of sufficient size and power to exploit ECC will e | ||||
xist. Deployments that need to consider | ||||
risks decades into the future should transition to Post-Quantum Cryptogr | ||||
aphy (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 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.</t> | ||||
</section> | <t>However, this would not affect the ability of EAP-AKA', with or | |||
without this extension, to authenticate properly. As symmetric key | ||||
cryptography is safe even if CRQCs are built, an adversary still will | ||||
not be able to disrupt authentication as it requires computing a | ||||
correct AT_MAC value. This computation requires the K_aut key, which is | ||||
based on MK, CK', and IK', but not SHARED_SECRET.</t> | ||||
<t>Other output keys do include SHARED_SECRET via MK_ECDHE, but they sti | ||||
ll include CK' and IK', which are entirely based on symmetric cryptography. As a | ||||
result, | ||||
an adversary with a quantum computer still cannot compute the other outpu | ||||
t keys either.</t> | ||||
<section title="Post-Quantum Considerations"> | <!--[rfced] Might the following rephrase be acceptable? | |||
<t>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.</t> | ||||
<t>This would not affect the ability of EAP-AKA' - with or without | Original: | |||
this extension - | This document does not add such algorithms, but a future update can | |||
to authenticate properly, however. As symmetric key cryptography is safe even | do that. | |||
if CRQCs are built, an adversary still will not be able to disrupt authentica | ||||
tion | ||||
as it requires computing a correct AT_MAC value. This computation requires th | ||||
e K_aut key | ||||
which is based on MK and, ultimately, CK' and IK', but not SHARED_SECRET.</t> | ||||
<t>Other output keys do include SHARED_SECRET via MK_ECDHE, but still include | Perhaps: | |||
also | Adding such algorithms is out of scope for this document. | |||
CK' and IK' which are entirely based on symmetric cryptography. As a result, | ||||
an adversary with a quantum computer still cannot compute the other output ke | ||||
ys either.</t> | ||||
<t>However, if the adversary has also obtained knowledge of the long-term key | --> | |||
, they | ||||
could then compute CK', IK', and SHARED_SECRET, and any derived output keys. | <t>However, if the adversary has also obtained knowledge of the long-ter | |||
This means that | m key, they | |||
could then compute CK', IK', SHARED_SECRET, and any derived output keys. This | ||||
means that | ||||
the introduction of a powerful enough quantum computer would disable | the introduction of a powerful enough quantum computer would disable | |||
this protocol extension's ability to provide the forward security | this protocol extension's ability to provide the forward security | |||
capability. This would | capability. This would | |||
make it necessary to update the current ECC algorithms in this document to PQ C algorithms. This | make it necessary to update the current ECC algorithms in this document to PQ C algorithms. This | |||
document does not add such algorithms, but a future update can do that. | document does not add such algorithms, but a future update can do that. | |||
</t> | </t> | |||
<t>Symmetric algorithms used in EAP-AKA' FS, such as HMAC-SHA-256 and | ||||
<t>Symmetric algorithms used in EAP-AKA' FS such as HMAC-SHA-256 | the algorithms used to generate AT_AUTN and AT_RES, are practically | |||
and the algorithms use to generate AT_AUTN and AT_RES are | secure against even large, robust quantum computers. EAP-AKA' FS is | |||
practically secure against even large robust quantum | currently only specified for use with ECDHE key exchange algorithms, | |||
computers. EAP-AKA' FS is currently only specified for use | but use of any Key Encapsulation Method (KEM), including PQC KEMs, can | |||
with ECDHE key exchange algorithms, but use of any Key | be specified in the future. While the key exchange is specified with | |||
Encapsulation Method (KEM), including Post-Quantum Cryptography | terms of the Diffie-Hellman protocol, the key exchange adheres to a | |||
(PQC) KEMs, can be specified in the future. While the key exchange is | KEM interface. AT_PUB_ECDHE would then contain either the ephemeral | |||
specified with terms of the Diffie-Hellman protocol, the key exchange | public key of the server or the SHARED_SECRET encapsulated with the | |||
adheres to a KEM interface. AT_PUB_ECDHE would then contain | server's public key. Note that the use of a KEM might require other | |||
either the ephemeral public key of the server or the SHARED_SECRET | changes, such as including the ephemeral public key of the server in | |||
encapsulated with the server's public key. Note that the use of a | the key derivation to retain the property that both parties contribute | |||
KEM might require other changes such as including the ephemeral | randomness to the session key. | |||
public key of the server in the key derivation to retain the property | </t> | |||
that both parties contribute randomness to the session key. | </section> | |||
</t> | </section> | |||
</section> | <section numbered="true" toc="default"> | |||
<name>IANA Considerations</name> | ||||
</section> | <t>This extension of EAP-AKA' shares its attribute space and subtypes with | |||
the "Extensible Authentication Protocol Method for Global System for Mobile Com | ||||
<section title="IANA Considerations"> | munications (GSM) | |||
Subscriber Identity Modules (EAP-SIM)" | ||||
<xref target="RFC4186" format="default"/>, EAP-AKA <xref target="RFC4187" form | ||||
at="default"/>, and | ||||
EAP-AKA' <xref target="RFC9048" format="default"/>.</t> | ||||
<t>IANA has assigned two new values in the "Attribute Types (Skippable Attrib | ||||
utes 128-255)" registry under the "EAP-AKA and EAP-SIM Parameters" group as foll | ||||
ows:</t> | ||||
<t>This extension of EAP-AKA' shares its attribute space and subtypes with | <dl> | |||
Extensible Authentication Protocol Method for Global System for Mobile Communi | <dt>152:</dt><dd>AT_PUB_ECDHE (<xref target="at_pub_dh" format="default"/>)</d | |||
cations (GSM) | d> | |||
Subscriber Identity Modules (EAP-SIM) | <dt>153:</dt><dd>AT_KDF_FS (<xref target="at_kdf_dh" format="default"/>)</dd> | |||
<xref target="RFC4186"/>, EAP-AKA <xref target="RFC4187"/>, and | </dl> | |||
EAP-AKA' <xref target="RFC9048"/>.</t> | ||||
<t>Two new values (TBA1, TBA2) in the skippable | <t>IANA has also created the "EAP-AKA' AT_KDF_FS | |||
range need to be assigned for AT_PUB_ECDHE (<xref target="at_pub_dh"/>) | Key Derivation Function Values" registry to represent FS KDF | |||
and AT_KDF_FS (<xref target="at_kdf_dh"/>) | types. The "EAP-AKA' with ECDHE and X25519" and "EAP-AKA' with ECDHE and | |||
in the "Attribute Types" registry under the "EAP-AKA and EAP-SIM Parameters" g | P-256" types (1 and 2, see <xref target="kdf2" format="default"/>) have be | |||
roup.</t> | en assigned, along with one reserved value. The initial contents of | |||
this registry are illustrated in <xref target="iana-fs-values" | ||||
format="default"/>; new values can be created through the Specification | ||||
Required policy <xref target="RFC8126" format="default"/>. Expert | ||||
reviewers should ensure that the referenced specification is clearly | ||||
identified and stable and that the proposed addition is reasonable for | ||||
the given category of allocation. | ||||
</t> | ||||
<table anchor="iana-fs-values"> | ||||
<name>EAP-AKA' AT_KDF_FS Key Derivation Function Values Registry Initial | ||||
Contents</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">RFC 9678</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">1</td> | ||||
<td align="left">EAP-AKA' with ECDHE and X25519</td> | ||||
<td align="left">RFC 9678</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">2</td> | ||||
<td align="left">EAP-AKA' with ECDHE and P-256</td> | ||||
<td align="left">RFC 9678</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">3-65535</td> | ||||
<td align="left">Unassigned</td> | ||||
<td align="left">RFC 9678</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
119.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
748.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
187.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | ||||
448.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
624.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
748.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
126.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
174.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
048.xml"/> | ||||
<t>Also, IANA is requested to create a new registry "EAP-AKA' AT_KDF_FS Key De | <reference anchor="SP-800-186" target="https://doi.org/10.6028/NIST.SP.8 | |||
rivation Function Values" | 00-186"> | |||
to represent | <front> | |||
FS Key Derivation Function types. The "EAP-AKA' with | <title>Recommendations for Discrete Logarithm-based Cryptography: El | |||
ECDHE and X25519" and "EAP-AKA' with ECDHE and P-256" | liptic Curve Domain Parameters</title> | |||
types (1 and 2, see <xref target="kdf2"/>) need to be assigned, | <author initials="L." surname="Chen"> | |||
along with one reserved value. The initial contents of this | <organization>National Institute of Standards and Technology</orga | |||
registry is illustrated in <xref target="iana-fs-values"/>; new values can be | nization> | |||
created through | </author> | |||
the Specification Required policy <xref target="RFC8126"/>. | <author initials="D." surname="Moody"/> | |||
Expert reviewers should ensure that the referenced specification is | <author initials="K." surname="Randall"/> | |||
clearly identified and stable, and that the proposed addition is | <author initials="A." surname="Regenscheid"/> | |||
reasonable for the given category of allocation. | <author initials="A." surname="Robinson"/> | |||
</t> | <date month="February" year="2023"/> | |||
</front> | ||||
<seriesInfo name="NIST" value="SP 800-186"/> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.SP.800-186"/> | ||||
</reference> | ||||
<table anchor="iana-fs-values"> | <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf"> | |||
<name>Initial Content of the EAP-AKA' AT_KDF_FS Key Derivation Functio | <front> | |||
n Values Registry</name> | <title>SEC 1: Elliptic Curve Cryptography</title> | |||
<thead> | <author> | |||
<tr> | <organization>Standards for Efficient Cryptography</organization> | |||
<th align="left">Value</th> | </author> | |||
<th align="left">Description</th> | <date month="May" year="2009"/> | |||
<th align="left">Reference</th> | </front> | |||
</tr> | <refcontent>Version 2.0</refcontent> | |||
</thead> | </reference> | |||
<tbody> | ||||
<tr> | ||||
<td align="left">0</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">[TBD BY IANA: THIS RFC]</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">1</td> | ||||
<td align="left">EAP-AKA' with ECDHE and X25519</td> | ||||
<td align="left">[TBD BY IANA: THIS RFC]</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">2</td> | ||||
<td align="left">EAP-AKA' with ECDHE and P-256</td> | ||||
<td align="left">[TBD BY IANA: THIS RFC]</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">3-65535</td> | ||||
<td align="left">Unassigned</td> | ||||
<td align="left">[TBD BY IANA: THIS RFC]</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | <reference anchor="SEC2" target="https://www.secg.org/sec2-v2.pdf"> | |||
<front> | ||||
<title>SEC 2: Recommended Elliptic Curve Domain Parameters</title> | ||||
<author> | ||||
<organization>Standards for Efficient Cryptography</organization> | ||||
</author> | ||||
<date month="January" year="2010"/> | ||||
</front> | ||||
<refcontent>Version 2.0</refcontent> | ||||
</reference> | ||||
</middle> | <reference anchor="SP-800-56A" target="https://doi.org/10.6028/NIST.SP.8 | |||
<back> | 00-56Ar3"> | |||
<front> | ||||
<title>Recommendation for Pair-Wise Key-Establishment Schemes Using | ||||
Discrete Logarithm Cryptography</title> | ||||
<author initials="E." surname="Barker"> | ||||
<organization>National Institute of Standards and Technology</orga | ||||
nization> | ||||
</author> | ||||
<author initials="L." surname="Chen"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="A." surname="Roginsky"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="A." surname="Vassilev"> | ||||
<organization/> | ||||
</author> | ||||
<author initials="R." surname="Davis"> | ||||
<organization/> | ||||
</author> | ||||
<date year="2018" month="April"/> | ||||
</front> | ||||
<seriesInfo name="NIST" value="SP 800-56A"/> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.SP.800-56Ar3"/> | ||||
</reference> | ||||
<references title="Normative References"> | </references> | |||
<?rfc include="reference.RFC.2119.xml"?> | ||||
<?rfc include="reference.RFC.3748.xml"?> | ||||
<?rfc include="reference.RFC.4187.xml"?> | ||||
<?rfc include="reference.RFC.5448.xml"?> | ||||
<?rfc include="reference.RFC.7624.xml"?> | ||||
<?rfc include="reference.RFC.7748.xml"?> | ||||
<?rfc include="reference.RFC.8126.xml"?> | ||||
<?rfc include="reference.RFC.8174.xml"?> | ||||
<?rfc include="reference.RFC.9048.xml"?> | ||||
<reference anchor="SP-800-186"> | ||||
<front> | ||||
<title>Recommendations for Discrete Logarithm-based Cryptography: Ellipt | ||||
ic Curve Domain Parameters</title> | ||||
<author> | ||||
<organization>NIST</organization> | ||||
</author> | ||||
<date month="February" year='2023'/> | ||||
</front> | ||||
<seriesInfo name="NIST" value="Special Publication 800-186"/> | ||||
<format type='HTML' target='https://doi.org/10.6028/NIST.SP.800-186'/> | ||||
</reference> | ||||
<reference anchor="SEC1"> | ||||
<front> | ||||
<title>SEC 1: Elliptic Curve Cryptography</title> | ||||
<author> | ||||
<organization>Certicom Research</organization> | ||||
</author> | ||||
<date month="May" year='2009'/> | ||||
</front> | ||||
<seriesInfo name="Standards for Efficient Cryptography 1 (SEC 1)" value= | ||||
"Version 2.0" /> | ||||
<format type='HTML' target='https://www.secg.org/sec1-v2.pdf'/> | ||||
</reference> | ||||
<reference anchor="SEC2"> | ||||
<front> | ||||
<title>SEC 2: Recommended Elliptic Curve Domain Parameters</title> | ||||
<author> | ||||
<organization>Certicom Research</organization> | ||||
</author> | ||||
<date month="January" year='2010'/> | ||||
</front> | ||||
<seriesInfo name="Standards for Efficient Cryptography 2 (SEC 2)" value= | ||||
"Version 2.0" /> | ||||
<format type='HTML' target='https://www.secg.org/sec2-v2.pdf'/> | ||||
</reference> | ||||
<reference anchor="SP-800-56A" target="https://doi.org/10.6028/NIST.SP.800-56Ar3 | ||||
"> | ||||
<front> | ||||
<title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete | ||||
Logarithm Cryptography</title> | ||||
<author initials="E." surname="Barker"> | ||||
<organization></organization> | ||||
</author> | ||||
<author initials="L." surname="Chen"> | ||||
<organization></organization> | ||||
</author> | ||||
<author initials="A." surname="Roginsky"> | ||||
<organization></organization> | ||||
</author> | ||||
<author initials="A." surname="Vassilev"> | ||||
<organization></organization> | ||||
</author> | ||||
<author initials="R." surname="Davis"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2018" month="April"/> | ||||
</front> | ||||
<seriesInfo name="NIST" value="Special Publication 800-56A Revision 3"/> | ||||
</reference> | ||||
</references> | ||||
<references title="Informative References"> | <references> | |||
<?rfc include="reference.RFC.4186.xml"?> | <name>Informative References</name> | |||
<?rfc include="reference.RFC.5216.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
<?rfc include="reference.RFC.7258.xml"?> | 186.xml"/> | |||
<?rfc include="reference.RFC.7296.xml"?> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
<?rfc include="reference.RFC.9190.xml"?> | 216.xml"/> | |||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
258.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
296.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
190.xml"/> | ||||
<reference anchor="TrustCom2015"> | <reference anchor="TrustCom2015" target="https://doi.org/10.1109/Trustco | |||
<front> | m.2015.506"> | |||
<title>A USIM compatible 5G AKA protocol with perfect forward secrecy</tit | <front> | |||
le> | <title>A USIM Compatible 5G AKA Protocol with Perfect Forward Secrec | |||
<author initials="J." surname="Arkko"></author> | y</title> | |||
<author initials="K." surname="Norrman"></author> | <author initials="J." surname="Arkko"/> | |||
<author initials="M." surname="Näslund"></author> | <author initials="K." surname="Norrman"/> | |||
<author initials="B." surname="Sahlin"></author> | <author initials="M." surname="Näslund"/> | |||
<date month='August' year='2015'/> | <author initials="B." surname="Sahlin"/> | |||
</front> | <date month="August" year="2015"/> | |||
<seriesInfo name="Proceedings of IEEE International Conference on Trust, Sec | </front> | |||
urity and Privacy in Computing and Communications (TrustCom)" value="2015" /> | <refcontent>IEEE International Conference on Trust, Security and | |||
<format type='HTML' target='https://doi.org/10.1109/Trustcom.2015.506'/> | Privacy in Computing and Communications (TrustCom)</refcontent> | |||
</reference> | <seriesInfo name="DOI" value="10.1109/Trustcom.2015.506"/> | |||
</reference> | ||||
<reference anchor="Heist2015"> | <reference anchor="Heist2015" target="https://theintercept.com/2015/02/1 | |||
<front> | 9/great-sim-heist/"> | |||
<title>The Great SIM Heist</title> | <front> | |||
<author initials="J." surname="Scahill"></author> | <title>The Great SIM Heist</title> | |||
<author initials="J." surname="Begley"></author> | <author initials="J." surname="Scahill"/> | |||
<date month="February" year="2015"/> | <author initials="J." surname="Begley"/> | |||
</front> | <date month="February" year="2015"/> | |||
<format type='HTML' target='https://theintercept.com/2015/02/19/great-sim-he | </front> | |||
ist/'/> | </reference> | |||
</reference> | ||||
<reference anchor="DOW1992"> | <reference anchor="DOW1992" target="https://doi.org/10.1007/BF00124891"> | |||
<front> | <front> | |||
<title>Authentication and Authenticated Key Exchanges</title> | <title>Authentication and authenticated key exchanges</title> | |||
<author initials="W." surname="Diffie"></author> | <author initials="W." surname="Diffie"/> | |||
<author initials="P." surname="Van Oorschot"></author> | <author initials="P. C." surname="Van Oorschot"/> | |||
<author initials="M." surname="Wiener"></author> | <author initials="M. J." surname="Wiener"/> | |||
<date month="June" year="1992"/> | <date month="June" year="1992"/> | |||
</front> | </front> | |||
<seriesInfo name="Designs, Codes and Cryptography 2" value="pp. 107-125" /> | <refcontent>Designs, Codes and Cryptography, vol. 2, pp. 107-125</refc | |||
<format type='HTML' target='https://doi.org/10.1007/BF00124891'/> | ontent> | |||
</reference> | <seriesInfo name="DOI" value="10.1007/BF00124891"/> | |||
</reference> | ||||
<reference anchor="TS.33.501"> | <reference anchor="TS.33.501"> | |||
<front> | <front> | |||
<title>Security architecture and procedures for 5G System</title> | <title>Security architecture and procedures for 5G System</title> | |||
<author> | <author> | |||
<organization>3GPP</organization> | <organization>3GPP</organization> | |||
</author> | </author> | |||
<date month="March" year="2023" /> | <date month="March" year="2023"/> | |||
</front> | </front> | |||
<seriesInfo name="3GPP TS" value="33.501 18.1.0" /> | <seriesInfo name="3GPP TS" value="33.501"/> | |||
</reference> | <refcontent>Version 18.1.0</refcontent> | |||
</reference> | ||||
<reference anchor="NIST-ZT" target="https://www.nccoe.nist.gov/sites/def ault/files/2022-12/zta-nist-sp-1800-35b-preliminary-draft-2.pdf"> | <reference anchor="NIST-ZT" target="https://www.nccoe.nist.gov/sites/def ault/files/2022-12/zta-nist-sp-1800-35b-preliminary-draft-2.pdf"> | |||
<front> | <front> | |||
<title>Implementing a Zero Trust Architecture</title> | <title>Implementing a Zero Trust Architecture</title> | |||
<author initials="" surname="National Institute of Standards and Tec | <author> | |||
hnology"> | <organization>National Institute of Standards and Technology</orga | |||
<organization/> | nization> | |||
</author> | </author> | |||
<date year="2022" month="December"/> | <date year="2022" month="December"/> | |||
</front> | </front> | |||
<seriesInfo name="NIST" value="SP 1800-35B"/> | ||||
</reference> | </reference> | |||
<reference anchor="NSA-ZT" target="https://media.defense.gov/2021/Feb/25 /2002588479/-1/-1/0/CSI_EMBRACING_ZT_SECURITY_MODEL_UOO115131-21.PDF"> | <reference anchor="NSA-ZT" target="https://media.defense.gov/2021/Feb/25 /2002588479/-1/-1/0/CSI_EMBRACING_ZT_SECURITY_MODEL_UOO115131-21.PDF"> | |||
<front> | <front> | |||
<title>Embracing a Zero Trust Security Model</title> | <title>Embracing a Zero Trust Security Model</title> | |||
<author initials="" surname="National Security Agency"> | <author> | |||
<organization/> | <organization>National Security Agency</organization> | |||
</author> | </author> | |||
<date year="2021" month="February"/> | <date year="2021" month="February"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
</references> | </references> | |||
</references> | ||||
<section title="Change Log"> | ||||
<t>RFC Editor: Please remove this appendix.</t> | ||||
<t>The -12 version of the WG draft has the following changes, most | ||||
due to IESG review comments in January 2023: | ||||
<list style="symbols"> | ||||
<t>Update the draft track to Standards Track.</t> | ||||
<t>Clarified the calculation of the Length field in the AT_ECDHE | ||||
attribute, along with padding requirements.</t> | ||||
<t>Avoided the use of keywords in operational recommendations, | ||||
e.g., about deployment.</t> | ||||
<t>Changed the definition of what "supported" means to focus on feature bein | ||||
g implemented, but not require that it is usable during a protocol run, because | ||||
configuration, new security information, etc. might imply that a particular feat | ||||
ure is implemented but disabled for policy reasons.</t> | ||||
<t>Changed the MITM terminology to be on-path attacks.</t> | ||||
<t>Corrected a reference typo in the IANA considerations | ||||
section.</t> | ||||
<t>Shortened the abstract and introduction to the key aspects and removed du | ||||
plication.</t> | ||||
<t>Several editorial changes.</t> | ||||
</list></t> | ||||
<t>The -11 version of the WG draft has the following changes: | ||||
<list style="symbols"> | ||||
<t>Addressed IETF Last Call comments from directorates, Security AD, Meiling | ||||
Cheng, and a detailed review from the author Karl. In particular:</t> | ||||
<t>Replaced the reference to the deprecated FIPS 186-4 with SP 800-186.</t> | ||||
<t>Changed HSS (Home Subscriber Server) to Authentication Database (AD) as H | ||||
SS is a 4G term.</t> | ||||
<t>Explained difference between EAP-AKA and EAP-AKA'</t> | ||||
<t>Explained that the emphemeral key exhange provide more that forward secre | ||||
cy and how this is important to mitigate pervasive monitoring.</t> | ||||
<t>Included links for the zero trust principles.</t> | ||||
<t>Explained why K_encr and K_auth not being protected by the ECDHE addition | ||||
.</t> | ||||
<t>Added that a future introduction of KEM might require additional changes. | ||||
</t> | ||||
<t>Explained how ephemeral key exchange is linked to pervasive monitoring.</ | ||||
t> | ||||
<t>Changed SIM to USIM everywhere. A USIM is required for AKA.</t> | ||||
<t>Changed to long-term key instead of long-term secret or long-term shared | ||||
secret.</t> | ||||
<t>Reference updates.</t> | ||||
<t>Various editorial improvements.</t> | ||||
</list></t> | ||||
<t>The -10 version of the WG draft has the following changes: | ||||
<list style="symbols"> | ||||
<t>Various nits found by Peter Yee.</t> | ||||
</list></t> | ||||
<t>The -09 version of the WG draft has the following changes: | ||||
<list style="symbols"> | ||||
<t>Scalable Vector Graphics (SVG) versions for all figures has been added | ||||
and the figures has been slightly modified to render nicely with aasvg.</t> | ||||
<t>A reference has been added to the Section in SEC1 describing how | ||||
to do decompression.</t> | ||||
<t>The strengthened identity protection requirements are now mentioned in th | ||||
e | ||||
introduction.</t> | ||||
<t>Corrections and clarifications were made in the IANA considerations. The | ||||
table in the IANA section has been made into a proper xml table.</t> | ||||
<t>Reference updates.</t> | ||||
<t>Various editorial improvements.</t> | ||||
</list></t> | ||||
<t>The -08 version of the WG draft has the following changes: | ||||
<list style="symbols"> | ||||
<t>Further clarification of key calculation in <xref | ||||
target="kdf2"/>.</t> | ||||
<t>Support for the NIST P-256 group has been made mandatory in | ||||
<xref target="groups"/>, in | ||||
order to align the requirements with 3GPP SUCI encryption | ||||
requirements.</t> | ||||
<t>The interaction between AT_KDF and AT_KDF_FS has been specified more | ||||
clearly, including specifying how future specifications need to specify | ||||
the treatment of new combinations.</t> | ||||
<t>Addition of a discussion about the impacts of potential future quantum | <section numbered="false" toc="default"> | |||
computing attacks with specific impacts to this extension.</t> | <name>Acknowledgments</name> | |||
<t>The authors would like to note that the technical solution in this | ||||
document came out of the TrustCom paper <xref target="TrustCom2015" | ||||
format="default"/>, whose authors were <contact fullname="J. Arkko"/>, | ||||
<contact fullname="K. Norrman"/>, <contact fullname="M. Näslund"/>, and | ||||
<contact fullname="B. Sahlin"/>. This document also uses a lot of | ||||
material from <xref target="RFC4187" format="default"/> by <contact | ||||
fullname="J. Arkko"/> and <contact fullname="H. Haverinen"/>, as well as | ||||
<xref target="RFC5448" format="default"/> by <contact | ||||
fullname="J. Arkko"/>, <contact fullname="V. Lehtovirta"/>, and <contact | ||||
fullname="P. Eronen"/>.</t> | ||||
<t>Addition of a discussion about metadata/unprotected data in | <t>The authors would also like to thank <contact fullname="Ben | |||
<xref target="unp"/>.</t> | Campbell"/>, <contact fullname="Meiling Chen"/>, <contact | |||
fullname="Roman Danyliw"/>, <contact fullname="Linda Dunbar"/>, <contact | ||||
fullname="Tim Evans"/>, <contact fullname="Zhang Fu"/>, <contact | ||||
fullname="Russ Housley"/>, <contact fullname="Tero Kivinen"/>, <contact | ||||
fullname="Murray Kucherawy"/>, <contact fullname="Warren Kumari"/>, | ||||
<contact fullname="Eliot Lear"/>, <contact fullname="Vesa Lehtovirta"/>, | ||||
<contact fullname="Kathleen Moriarty"/>, <contact fullname="Prajwol | ||||
Kumar Nakarmi"/>, <contact fullname="Francesca Palombini"/>, <contact | ||||
fullname="Anand R. Prasad"/>, <contact fullname="Michael Richardson"/>, | ||||
<contact fullname="Göran Rune"/>, <contact fullname="Bengt Sahlin"/>, | ||||
<contact fullname="Joseph Salowey"/>, <contact fullname="Mohit Sethi"/>, | ||||
<contact fullname="Orie Steele"/>, <contact fullname="Rene Struik"/>, | ||||
<contact fullname="Vesa Torvinen"/>, <contact fullname="Sean Turner"/>, | ||||
<contact fullname="Helena Vahidi Mazinani"/>, <contact fullname="Robert | ||||
Wilton"/>, <contact fullname="Paul Wouters"/>, <contact fullname="Bo | ||||
Wu"/>, <contact fullname="Peter Yee"/>, and many other people at the | ||||
IETF, GSMA, and 3GPP groups for interesting discussions in this problem | ||||
space.</t> | ||||
</section> | ||||
</back> | ||||
<t>Reference updates.</t> | <!--[rfced] We have the following questions and changes regarding the | |||
terminology used in this document. Please review and let us know | ||||
any guidance or objections where necessary. | ||||
<t>Various editorial improvements.</t> | a) How may we expand MAC in this document (as abbreviations should be | |||
expanded on first use per Section 3.6 of RFC 7322, "RFC Style Guide")? | ||||
</list></t> | Please note that both MAC and KDF are first used in Figure 1 and within | |||
attribute names before they are expanded; would it benefit the reader to | ||||
expand MAC and KDF before these instances for additional context? | ||||
<t>The -07 version of the WG draft has the following changes: | b) FYI - The terms below are capped differently throughout this | |||
<list style="symbols"> | document. Unless we hear objections, we plan to make these instances | |||
lowercase throughout. | ||||
<t>The impact of forward secrecy explanation has been improved in | Server v. server | |||
the abstract and security considerations.</t> | Peer v. peer | |||
Network v. network | ||||
<t>The draft now more forcefully explains why the authors believe | c) We see the use of both "NUL" and "NULL". Please review and let us | |||
it is important to migrate existing systems to use forward | know if any updates are necessary. | |||
secrecy, and makes a recommendation for this migration.</t> | ||||
<t>The draft does no longer refer to issues within the smart cards but | --> | |||
rather the smart card supply chain.</t> | ||||
<t>The rationale for chosen algorithms is explained.</t> | <!--[rfced] The terms RAND, AUTN, XRES, RES, IK, and CK appear with | |||
and without articles throughout this document (see an example | ||||
below). How may we update for consistency? | ||||
<t>Also, the authors have checked the language relating to the | Original: | |||
public value encoding, and believe it is exactly according to the | ||||
references (<xref target="RFC7748"/> Section 6.1 and <xref | ||||
target="SEC2"/> Section 2.7.1)</t> | ||||
</list></t> | The authentication vector | |||
contains a random part RAND, an authenticator part AUTN used for | ||||
authenticating the network to the USIM, an expected result part | ||||
XRES, a 128-bit session key for integrity check IK, and a 128-bit | ||||
session key for encryption CK. | ||||
<t>The -06 version of the WG draft is a refresh and a | If this process is successful (the AUTN is valid and the sequence number | |||
reference update. However, the | used to generate AUTN is within the correct range)... | |||
following should be noted: | ||||
<list style="symbols"> | --> | |||
<t>The draft now uses "forward secrecy" terminology and references | <!--[rfced] Regarding abbreviation use throughout the document: | |||
RFC 7624 per recommendations on mailing list discussion.</t> | ||||
<t>There's been mailing list discussion about the encoding of the | a) FYI - We have added expansions for abbreviations upon first use per | |||
public values; the current text requires confirmation from the | Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each | |||
working group that it is sufficient.</t> | expansion in the document carefully to ensure correctness. | |||
</list> | Key Derivation Function (KDF) | |||
</t> | User Equipment (UE) | |||
Wi-Fi Protected Access 3 (WPA3) | ||||
Internet Key Exchange Protocol Version 2 (IKEv2) | ||||
Secure Shell (SSH) | ||||
<t>The -05 version of the WG draft takes into account feedback from | b) We have updated to use the abbreviated form after first in | |||
the working group list, about the number of bytes needed to encode | accordance with the guidance at | |||
P-256 values.</t> | https://www.rfc-editor.org/styleguide/part2/#exp_abbrev. This mostly | |||
affects FS and KDF. Please let us know any objections. | ||||
--> | ||||
<t>The -04 version of the WG draft takes into account feedback from | <!--[rfced] Please review the <artwork> element in Section 6.3 and let us know | |||
the May 2020 WG interim meeting, correcting the reference to the | if it should be updated to <sourcecode> or another element. --> | |||
NIST P-256 specification.</t> | ||||
<t>The -03 version of the WG draft is first of all a refresh; there | <!--[rfced] The reference [NIST-ZT] has been obsoleted. Would you like to | |||
are no issues that we think need addressing, beyond the one for | update this reference to its most recent version? | |||
which there is a suggestion in -03: The document now suggests | ||||
an alternate group/curve as an optional one besides X25519. The | ||||
specific choice of particular groups and algorithms is still up to the | ||||
working group.</t> | ||||
<t>The -02 version of the WG draft took into account additional | Original: | |||
reviews, and changed the document to update RFC 5448 (or rather, its | ||||
successor, <xref target="RFC9048"/>), changed the | ||||
wording of the recommendation with regards to the use of this | ||||
extension, clarified the references to the definition of X25519 and | ||||
Curve25519, clarified the distinction to ECDH methods that use | ||||
partially static keys, and simplified the use of AKA and USIM card | ||||
terminology. Some editorial changes were also made.</t> | ||||
<t>The -00 and -01 versions of the WG draft made no major | [NIST-ZT] National Institute of Standards and Technology, | |||
changes, only updates to some references.</t> | "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>. | ||||
<t>The -05 version is merely a refresh while the draft was waiting | Perhaps: | |||
for WG adoption.</t> | ||||
<t>The -04 version of this draft made only editorial changes.</t> | [NIST-ZT] National Institute of Standards and Technology, | |||
"Implementing a Zero Trust Architecture", NIST SP | ||||
1800-35, July 2024, <https://www.nccoe.nist.gov/sites/ | ||||
default/files/2024-07/zta-nist-sp-1800-35-preliminary-draft-4.pdf> | ||||
<t>The -03 version of this draft changed the naming of various | --> | |||
protocol components, values, and notation to match with the use of | ||||
ECDH in ephemeral mode. The AT_KDF_FS negotiation process was | ||||
clarified in that exactly one key is ever sent in | ||||
AT_KDF_ECDHE. The option of checking for zero key values IN ECDHE | ||||
was added. The format of the actual key in AT_PUB_ECDHE was | ||||
specified. Denial-of-service considerations for the FS process | ||||
have been updated. Bidding down attacks against this extension | ||||
itself are discussed extensively. This version also addressed | ||||
comments from reviewers, including the August review from Mohit | ||||
Sethi, and comments made during IETF-102 discussion.</t> | ||||
</section> | <!--[rfced] As the authors are listed in the References section for | |||
each of the three docs pointed to in the Acknowledgments, should | ||||
they also be listed in the Acknowledgments section? --> | ||||
<section numbered="no" title="Acknowledgments"> | <!--[rfced] Please review the "Inclusive Language" portion of the | |||
online Style Guide | ||||
<https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. Updates of this | ||||
nature typically result in more precise language, which is | ||||
helpful for readers. | ||||
<t>The authors would like to note that the technical solution in | For example, please consider whether "Master" should be updated in the | |||
this document came out of the TrustCom paper <xref | instances below: | |||
target="TrustCom2015"/>, whose authors were <contact fullname="J. Arkko"/>, | ||||
<contact fullname="K. Norrman"/>, | ||||
<contact fullname="M. Näslund"/>, | ||||
and <contact fullname="B. Sahlin"/>. This document | ||||
uses also a lot of material from <xref target="RFC4187"/> by | ||||
<contact fullname="J. Arkko"/> and | ||||
<contact fullname="H. Haverinen"/> as well | ||||
as <xref target="RFC5448"/> by | ||||
<contact fullname="J. Arkko"/>, | ||||
<contact fullname="V. Lehtovirta"/>, | ||||
and <contact fullname="P. Eronen"/>.</t> | ||||
<t>The authors would also like to thank | 643: attribute is set to 1, the Master Key (MK) and accompanying keys are | |||
<contact fullname="Ben Campbell"/>, | 686: K_re is the re-authentication key, 256 bits, MSK is the Master | |||
<contact fullname="Meiling Chen"/>, | 687: Session Key, 512 bits, and EMSK is the Extended Master Session Key, | |||
<contact fullname="Roman Danyliw"/>, | ||||
<contact fullname="Linda Dunbar"/>, | ||||
<contact fullname="Tim Evans"/>, | ||||
<contact fullname="Zhang Fu"/>, | ||||
<contact fullname="Russ Housley"/>, | ||||
<contact fullname="Tero Kivinen"/>, | ||||
<contact fullname="Murray Kucherawy"/>, | ||||
<contact fullname="Warren Kumari"/>, | ||||
<contact fullname="Eliot Lear"/>, | ||||
<contact fullname="Vesa Lehtovirta"/>, | ||||
<contact fullname="Kathleen Moriarty"/>, | ||||
<contact fullname="Prajwol Kumar Nakarmi"/>, | ||||
<contact fullname="Francesca Palombini"/>, | ||||
<contact fullname="Anand R. Prasad"/>, | ||||
<contact fullname="Michael Richardson"/>, | ||||
<contact fullname="Göran Rune"/>, | ||||
<contact fullname="Bengt Sahlin"/>, | ||||
<contact fullname="Joseph Salowey"/>, | ||||
<contact fullname="Mohit Sethi"/>, | ||||
<contact fullname="Orie Steele"/>, | ||||
<contact fullname="Rene Struik"/>, | ||||
<contact fullname="Vesa Torvinen"/>, | ||||
<contact fullname="Sean Turner"/>, | ||||
<contact fullname="Helena Vahidi Mazinani"/>, | ||||
<contact fullname="Robert Wilton"/>, | ||||
<contact fullname="Paul Wouters"/>, | ||||
<contact fullname="Bo Wu"/>, | ||||
<contact fullname="Peter Yee"/>, | ||||
and many other people at the IETF, GSMA and 3GPP groups | ||||
for interesting discussions in this problem space.</t> | ||||
</section> | --> | |||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 247 change blocks. | ||||
1575 lines changed or deleted | 1866 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |