<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc linkmailto="no" ?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-references-in-index="yes" ?>

<!DOCTYPE rfc []>

<!-- Notes for Paul and Tony

Have a section that is just examples of what is new in v3 (such as new table features)
	Want to add examples of <blockquote>
		Example of a cite for a reference that is already in the spec.
	In the v3-only examples, use "ascii" attributes liberally

-->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="std"
  docName="draft-wang-emu-fs-reauth-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
       * obsoletes can be an RFC number as NNNN 
-->

<front>
<title abbrev="Forward Secure Reauthentication in EAP-AKA'"> Forward Secure Reauthentication in the Extensible Authentication Protocol Method for Authentication and Key Agreement (EAP-AKA') </title>
<!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

<seriesInfo name="Internet-Draft" value="draft-wang-emu-fs-reauth-00"/>
   
    <author fullname="Guilin Wang" initials="G." role="editor" surname="Wang">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>9 North Buona Vista Drive, #13-01</street>
		  <street> The Metropolis Tower 1</street>
          <city>Singapore</city>
          <code>138588</code>
          <country>Singapore</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>wang.guilin@huawei.com</email>  
      </address>
    </author>
	
	 <author fullname="Zhongding Lei" initials="Z." surname="Lei">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
        <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>9 North Buona Vista Drive, #13-01</street>
		  <street> The Metropolis Tower 1</street>
          <city>Singapore</city>
          <code>138588</code>
          <country>Singapore</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>lei.zhongding@huawei.com</email>  
      </address>
    </author>
	
<date/>
<!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->
	
<area>General</area>

    <workgroup> EAP Method Update </workgroup>
	<!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>keyword</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

<abstract>
	  
	 <t> This draft specifies an update to RFC 9678, "Forward Secrecy Extension to the Improved Extensible Authentication Protocol Method for Authentication and Key Agreement (EAP-AKA' FS)", and its predecessors RFC 9048, RFC 5448, and RFC 4187. This update enables forward security of the Transient EAP Keys (TEKs) for protecting EAP packets, which are not in EAP-AKA' FS. Based on this extension, the executions of reauthentication after a full authentication will be unlinkable to each other and then the privacy of end users is enhanced. This udapte is optional to the above standards. </t>

    </abstract>

<!-- <note title="Editorial Note (To be removed by RFC Editor)">
<t> Discussion of this draft takes place on the rfc-interest mailing list (rfc-interest@rfc-editor.org), which has its home page at
<eref target="https://www.rfc-editor.org/mailman/listinfo/rfc-interest"/>. </t>
</note> -->

</front>

<middle>

<!-- <section title="Revision history"> 

<\section> -->

<section title="Introduction" anchor="Introduction" >

<t> EAP-AKA (Extensible Authentication Protocol method for 3rd Generation Authentication and Key Agreement) <xref target="RFC4187"></xref> is a secure authentication method used for mobile devices connecting to networks (like Wi-Fi) using their credentials from SIM/USIM cards. It enables mutual authentication and key exchange between the mobile devices and their mobile network operator. After that, communication data can be securely transmitted between them by using various key materials agreed in EAP-AKA. </t>  

<t> EAP-AKA' (Improved Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement) <xref target="RFC5448"></xref>, introduces a new key derivation function, SHA-256 instead of SHA-1. This function is also used to bind the keys derived within the method to the name of the access network. This limits the effects of compromised access network nodes and keys. </t>

<t> Moreover, "Improved Extensible Authentication Protocol Method for 3GPP Mobile Network Authentication and Key Agreement (EAP-AKA')" <xref target="RFC9048"></xref> specifies the the protocol behavior for both 4G and 5G deployments using EAP-AKA'. For examples, how the Network Name field is constructed in the protocol; how EAP-AKA' use identifiers in 5G; how to define session identifiers and other exported parameters (including the case for fast reauthentication), and how to updates the requirements on generating pseudonym usernames and fast reauthentication identities to ensure identity privacy.</t>

<t> "Forward Secrecy Extension to the Improved Extensible Authentication Protocol Method for Authentication and Key Agreement (EAP-AKA' FS)" <xref target="RFC9678"></xref> enhances the forward security for the session keys generated as a part of the authentication run in EAP-AKA', by introducing ephemeral Diffie-Hellman key exchange. This prevents an attacker who has gained access to the long-term key from compromising session keys established in the past. However, as noted in Section 7.6 of <xref target="RFC9678"></xref>, K_encr, the key for encrypting reauthentication pseudonym idenities, is not forward secure, as it is generated before ephemeral DH. Therefore, "an adversary compromising the long-term key would be able to link reauthentication protocol runs when pseudonyms are used, within a sequence of runs followed after a full EAP-AKA' authentication. No such linking would be possible across different full authentication runs. If the pseudonym linkage risk is not acceptable, one way to avoid the linkage is to always require full EAP-AKA' authentication." </t>

<t> However, as discussed in <xref target="RFC4187"></xref>, reauthentication is much faster and then benefits to both mobile devices and the network operator. Having full EAP AKA' authentication defeats the purpose of fast reauthentication. 

<!-- So, it is not a good solution to a simply avoiding reauthentication by always requiring full EAP-AKA' authentication. -->

 This document specifies an update to enhance the forward security for TEKs (incluidng K_encr) in EAP-AKA' FS. Based on this, it is not feasible to link the executions of reauthentication within the session of a full authentication. When this extension is enabled, the privacy of mobile device users are protected against long-term key compromise. This udapte is applicable and optional to all standards specifed in <xref target="RFC9678"></xref>, <xref target="RFC9048"></xref>, <xref target="RFC5448"></xref>, and <xref target="RFC4187"></xref>. </t>

<t> This extension is also applicable and optional to the drafts specified in <xref target="I-D.ietf-emu-pqc-eapaka"></xref> and <xref target="I-D.ietf-emu-hybrid-pqc-eapaka"></xref>, where the ephemeral DH key exchange is replaced by post-quantum (PQ) KEM and hybrid KEMs <xref target="RFC9794"></xref>, respectively. </t> 
		
</section>

<section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
		  
		  
		<t> Readers are assumed familiar with the terms in EAP-AKA <xref target="RFC4187"></xref>, EAP-AKA' <xref target="RFC5448"></xref> <xref target="RFC9048"></xref>, and EAP-AKA' FS <xref target="RFC9678"></xref>. The implication of forward security is discussed in Sections 1 and 4.3 of <xref target="RFC9678"></xref>, and the usage of reauthentication is discussed in Section 5 of <xref target="RFC4187"></xref>, and Sections 6.5.4 and 6.5.5 of <xref target="RFC9678"></xref>. </t>
		  
    </section>
	
      <!-- [CHECK] The 'Requirements Language' section is optional -->
	  
   <section title="Linkable Reauthentication in EAP-AKA' FS" anchor="Motivation">
   
    <section title="Review of EAP-AKA' FS" anchor="Review">
	
	<t> The normal process of EAP-AKA' FS is briefly reviewd in Figure 1, where AD denotes the 3GPP Authentication Database. Details can be found in Section 5 of <xref target="RFC9678"></xref>. </t> 
	
<artwork><![CDATA[
USIM              Peer                         Server                    AD
  |                |                             |                        |
  |                |   (1) EAP-Req/Identity      |                        |
  |                |<----------------------------|                        |
  |                |   (2) EAP-Resp/Identity     |                        |
  |                |     (Privacy-Friendly)      |                        |
  |                |---------------------------->|                        |
  |                |                             |(3) ID, KDF,network name|
  |                |                             |----------------------->|
  |                |                             |(4) RAND, AUTN, XRES,   |
  |                |                             |     CK', IK'           |
  |                |                             |----------------------->|
  |                | (5) EAP-Req/AKA'-Challenge  |                        |
  |                |  AT_RAND, AT_AUTN, AT_KDF,  |                        |
  |                |  AT_KDF_FS, AT_KDF_INPUT,   |                        |
  |                |  AT_PUB_ECDHE, AT_MAC       |                        |
  |                |<----------------------------|                        |
  |(6) RAND, AUTN  |                             |                        |
  |<---------------|                             |                        |
  |(7) CK, IK, RES |                             |                        |
  |--------------->|                             |                        |
  |                |(8) EAP-Resp/AKA'-Challenge  |                        |
  |                | AT_RES, AT_PUB_ECDHE, AT_MAC|                        |
  |                |---------------------------->|                        |
  |                |     (9)  EAP-Success        |                        |
  |                |<----------------------------|                        |
 
Figure 1. EAP-AKA' FS Authentication Process (Section 5 of RFC 9678)
]]></artwork> 

<t> Key materials are derived in EAP-AKA' FS as shown in Figure 2 (Section 6.3 of <xref target="RFC9678"></xref>). Note that the TEKs, consisting both K_encr and K_aut, are parts of MK (Master Key). However, MK itself is derived from IK' and CK' without the ephemeral SHARED_SECRET, obtained via running ephemeral DH key exchange. Therefore, both  K_encr and K_aut are not forward secure, as they just rely on the security of the long-term key, shared by the peer's USIM and the mobile network operator's AD. Note that IK' and CK' are derived from this long-term key. </t>

<artwork><![CDATA[
MK       = PRF'(IK'|CK',"EAP-AKA'"|Identity)
MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' FS"|Identity)
K_encr   = MK[0..127]
K_aut    = MK[128..383]
K_re     = MK_ECDHE[0..255]
MSK      = MK_ECDHE[256..767]
EMSK     = MK_ECDHE[768..1279]

Figure 2. Key Derivation in EAP-AKA' FS (Section 6.3 of RFC 9678)
]]> </artwork> 

<t> In more detail, the ephemeral SHARED_SECRET is generated from ephemeral DH values available in two AT_PUB_ECDHE attributes, exchanged by the peer and server in Steps (5) and (8) in Figure 1. However, K_encr and K_aut are generated by the server after Step (4) and used in Step (5) to protect the info for the peer. And similiarly, they are generated after Step (7) by the peer and used to verify and decrypt ciphtertext sent in Step (5), and used in Step (8) to protect the info for the server. So, the ephemeral SHARED_SECRET is avaialbe later than when K_encr and K_aut are generated and used by the server and the peer. So, in case the long-term key is compromised, K_encr and K_aut will be compromised too. </t>	
	
	</section>
	
	
	<section title="Linkable Reauthentication Identities" anchor="Weakness">
	
	<t> Figure 3 is a brief review of the reauthentication procedure, which is specified in Section 5.4 of <xref target="RFC4187"></xref>. Here all attributes with '*' denote that they are encrypted using the encryption key K_encr, and encapsulated in the AT_ENCR_DATA attribute. For offering the peer a new reauthentication identity for the next run, the authenticator generates a pseudonym and uses K_encr to encrypt it in the optional attribute AT_NEXT_REAUTH_ID. At the same time, the authenticator uses integrity key K_aut to produce a MAC in the atttibute AT_MAC in Step (3). </t>
	
	<artwork><![CDATA[
 Peer                                               Authenticator
  |                                                           |
  |          (1) EAP-Request/Identity                         |
  |<----------------------------------------------------------|
  |          (2) EAP-Response/Identity                        |
  |      (Includes a fast reauthentication identity)          |
  |---------------------------------------------------------->|
  |          (3) EAP-Request/AKA-Reauthentication             |
  |     (AT_IV, AT_ENCR_DATA, *AT_COUNTER, *AT_NONCE_S,       |
  |      *AT_NEXT_REAUTH_ID, AT_MAC)                          |
  |<----------------------------------------------------------|
  |          (4) EAP-Response/AKA-Reauthentication            |  
  |(AT_IV, AT_ENCR_DATA, *AT_COUNTER with same value, AT_MAC) |
  |---------------------------------------------------------->|
  |          (5)  EAP-Succes                                  |
  |<----------------------------------------------------------|
 
Figure 3. Reauthentication Procedure (Section 5.4 of RFC 4187)
]]></artwork> 
	
	<t> As discussed above, K_encr and K_aut will be compromised if the long-term key is leaked. So, in such case, the attacker with access to the long-term key will be able to decrypt all reauthentication identities delivered from the server to the peer. When these identities are used for reauthentication, the attacker will be able to link these runs of reauthentication, even those reauthentication identities are pseudonyms generated by the server independently. </t>
	
	<t> Morever, even without decrypting the reauthentication identities from the AT_NEXT_REAUTH_ID attributes, the attacker can also link two or more runs of reauthentication via using the integrity key K_aut. Namely, the attacker can check the AT_MAC attributes sent by either the authenticator in Step (3) or the peer in Step (4) to be sure that different runs belong to the same peer, if all these AT_MAC attributes are valid with respect to the given K_aut. </t>
	
	<t> Therefore, to guarantee the privacy of mobile users running reauthentication with compromised long-term key, it is necessary to enhance the forward security of the TEKs, i.e, K_encr and K_aut. </t>
	
	
	</section>
	
	</section>

    <section title="Forward Secure Reauthentication" anchor="Porposal">
 
	 <t> To enable the forward security of K_encr and K_aut, this document specifies a concrete key derivation process given in Figure 4. (EDITOR'S NOTE: Other variants are also available.) </t>
   
	
    <artwork><![CDATA[
MK       = PRF'(IK'|CK',"EAP-AKA'"|Identity)
MK_ECDHE = PRF'(IK'|CK'|SHARED_SECRET,"EAP-AKA' FS"|Identity)
K_encr   = MK[0..127]
K_aut    = MK[128..383]
K_encr'  = MK_ECDHE[0..127]
K_aut'   = MK_ECDHE[128..383]
K_re     = MK_ECDHE[384..639]
MSK      = MK_ECDHE[640..1060]
EMSK     = MK_ECDHE[1061..1633]

	Figure 4.  The Proposed Key Derivation Process
	]]></artwork>
	
	<t> In this process, K_encr and K_aut are updated after completing full EAP-AKA' FS authentication in Figure 1 to forward secure K_encr' and K_aut', which are derived from IK', CK' and SHARED_SECRET, the ephemeral secret. And only K_encr' and K_aut' are used to protect the transmission and usage of reauthenticaton identities in reauthentication procedure in Figure 3. </t>
	
	<t> The whole process will be elaborated later. </t>
	
</section>



<section title="Security Considerations" anchor="Security">

<t> Security condiderations will be added later. </t>

</section>
	

<section title="IANA Considerations" anchor="IANA">

     <t> At the time of writing, there are no IANA considerations that may need to be considered. </t>
	 
	 
</section>


<section title="Acknowledgments" anchor="acknowledgements">

<t>
To be added later.
</t>
</section>

</middle>

<back>
  
<references title="Normative References">

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	    <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3748.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4187.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5448.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9048.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9678.xml"/>
	
        
		<reference anchor="FIPS203"  target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard </title>
            <author fullname="National Institute of Standards and Technology" initials="" surname="National Institute of Standards and Technology" />
            <date month="August" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Federal Information Processing Standards Publication" value=""/>
        </reference>
    
	<!-- 
	<reference anchor="FIPS204"  target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>FIPS 204: Module-Lattice-Based Digital Signature Standard </title>
            <author fullname="National Institute of Standards and Technology" initials="" surname="National Institute of Standards and Technology" />
            <date month="August" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Federal Information Processing Standards Publication" value=""/>
		</reference>
	    -->
		
		 <!-- 
		<reference anchor="X.690"  target="">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) </title>
            <author fullname="ITU-T " initials="" surname="ITU-T" />
            <date month="February" year="2021"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="ISO/IEC 8825-1:2021 (E),  " value="ITU-T Recommendation X.690"/>
        </reference>
         -->
		 
        <!-- 
        <reference anchor="IANA-IKEv2" target="https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml">
          <front>
            <title> Internet Key Exchange Version 2 (IKEv2) Parameters </title>
            <author fullname=" " initials=" " surname=" "/>
		 
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="the Internet Assigned Numbers Authority (IANA)." value=""/>
        </reference>
		-->
		
        <!-- The recommended and simplest way to include a well known reference -->
 
</references>


<references>
        <name>Informative References</name>
		
		<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-emu-hybrid-pqc-eapaka.xml"/>
		
		<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-emu-pqc-eapaka.xml"/>

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9794.xml"/>
		
      </references>
    

</back>

</rfc>

