<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-guo-krb-spake-2fa-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="Kerberos SPAKE 2FA">Kerberos SPAKE with Two-Factor Authentication</title>
    <seriesInfo name="Internet-Draft" value="draft-guo-krb-spake-2fa-00"/>
    <author initials="W." surname="Guo" fullname="Wei Guo">
      <organization>Huawei Technologies</organization>
      <address>
        <email>guowei90@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Xia" fullname="Liang Xia">
      <organization>Huawei Technologies</organization>
      <address>
        <email>frank.xialiang@huawei.com</email>
      </address>
    </author>
    <author initials="J." surname="Li" fullname="Ji Li">
      <organization>Huawei Technologies</organization>
      <address>
        <email>liji100@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="Li" fullname="Yong Li">
      <organization>Huawei Technologies</organization>
      <address>
        <email>Yong.Li1@huawei.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="04"/>
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>keyword1</keyword>
    <keyword>keyword2</keyword>
    <keyword>keyword3</keyword>
    <abstract>
      <?line 54?>

<t>This document defines a new two-factor authentication mechanism for the Kerberos SPAKE pre-authentication. The mechanism uses the time-based one-time password (TOTP) as a second factor, and combines it with the password factor in a more secure way, which can prevent attackers from both impersonating Kerberos clients and obtaining TGTs' session keys in case of any factor leakage.</t>
    </abstract>
  </front>
  <middle>
    <?line 58?>

<section anchor="intro">
      <name>Introduction</name>
      <t>A password-derived long-term key is commonly used in the Kerberos <xref target="RFC4120"/> pre-authentication stage to protect messages exchanged between a Kerberos client and a Key Distribution Center (KDC). As noted in <xref section="10" sectionFormat="of" target="RFC4120"/>, an attacker can mount brute-force password attacks via eavesdropping a legitimate credential returned by the KDC or a legitimate authentication message sent by the client, which are both encrypted by the long-term key.</t>
      <t>A Kerberos SPAKE pre-authentication mechanism is proposed in <xref target="RFC9588"/>, it uses a simple password-authenticated key exchange (SPAKE) <xref target="RFC9382"/> to protect against brute-force password attacks, and additionally enables two-factor authentication (2FA). For example, the second-factor (SF) authentication may include one-time passwords, challenge/response signatures, and biometric data. As suggested in <xref section="1.3" sectionFormat="of" target="RFC9588"/>, the SF authentication data can be first encrypted using the key established by the PAKE and then securely transferred from the client to the KDC for verification, where the password verification happens implicitly by a successful decryption of the SF authentication data.</t>
      <t>However, this 2FA methodology does not achieve the security of true two-factor authentication, which requires that the compromise of any factor will not affect the security of whole 2FA protocol. More specifically, in case of password leakage, an attacker can use the leaked password to successfully perform a man-in-the-middle (MITM) attack against the Kerberos SPAKE, i.e., the client establishes a Kerberos SPAKE session A with the attacker and the attacker establishes a Kerberos SPAKE session B with the KDC. In this case, the attacker can obtain the SF authentication data in plaintext from the session A, and can use it as a valid second-factor in session B. Therefore, only the password factor allows the attacker to pass the KDC's two-factor authentication.</t>
      <t>To remedy the above problem, this document defines a new two-factor authentication mechanism for the Kerberos SPAKE pre-authentication, which uses the widely deployed time-based one-time password (TOTP) <xref target="RFC6238"/> as a second factor. The mechanism combines the second factor with the password factor in the following way: the resulting TOTP value is combined with the PAKE's shared key to derive at least two encryption keys at both the client and KDC sides, then the client sends a second-factor challenge encrypted by one key to the KDC for verification and the KDC sends the TGT's session key encrypted by another key to the client for TGT issuance.</t>
      <t>As a result, if an attacker compromises either of factors, it also needs to obtain another factor's authentication data to derive the final encryption keys, which are necessary to pass the two-factor authentication or obtain the TGT's session key. But this is hard to do if the authentication of another factor is still secure.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<!-- This document refers to numerous terms and protocol messages defined in {{RFC4120}}. -->

<t>The terms "encryption type" and "random-to-key" are defined in <xref target="RFC3961"/>.</t>
      <!-- The terms "FAST", "PA-FX-COOKIE", "KDC_ERR_PREAUTH_EXPIRED", "KDC_ERR_MORE_PREAUTH_DATA_REQUIRED", "KDC_ERR_PREAUTH_FAILED", "pre-authentication facility", and "authentication set" are defined in {{RFC6113}}. -->

</section>
    <section anchor="kerberos-spake-pre-authentication-with-second-factor-totp">
      <name>Kerberos SPAKE Pre-authentication with Second-Factor TOTP</name>
      <section anchor="two-factor-authentication-overview">
        <name>Two-Factor Authentication Overview</name>
        <t>The SPAKE algorithm combined with the TOTP algorithm can be generally described in the following steps:</t>
        <ul spacing="normal">
          <li>
            <t>Calculation and exchange of the public key.</t>
          </li>
          <li>
            <t>Calculation of the shared SPAKE result (K1).</t>
          </li>
          <li>
            <t>Calculation of the shared TOTP result (K2).</t>
          </li>
          <li>
            <t>Derivation of an encryption key (K') from both the result K1 and K2.</t>
          </li>
          <li>
            <t>Verification of the derived encryption key (K').</t>
          </li>
        </ul>
        <t>In this mechanism, key verification happens implicitly by a successful decryption of the SF challenge data specific to the second-factor TOTP.</t>
      </section>
      <section anchor="introduction-of-the-totp-algorithm">
        <name>Introduction of the TOTP Algorithm</name>
        <t>As defined in <xref target="RFC4226"/>, the HOTP algorithm is based on the HMAC-SHA-1 algorithm and is computed as follows:</t>
        <artwork><![CDATA[
HOTP(K, C) = Truncate(HMAC-SHA-1(K, C))
]]></artwork>
        <t>where K and C represent the shared secret and counter value, and Truncate represents the function that can convert an HMAC-SHA-1 value into an HOTP value; see <xref target="RFC4226"/> for detailed definitions.</t>
        <t>Recall that in <xref target="RFC6238"/>, the TOTP algorithm is defined as TOTP = HOTP(K, T), where T is an integer and represents the number of time steps between the initial counter time T0 (default value is 0, i.e., the Unix epoch) and the current Unix time. Note that TOTP implementations <bcp14>MAY</bcp14> use HMAC-SHA-256 or HMAC-SHA-512 functions, please refer to  <xref section="1.2" sectionFormat="of" target="RFC6238"/>.</t>
      </section>
      <section anchor="definition-of-the-second-factor-totp">
        <name>Definition of the Second-Factor TOTP</name>
        <t>Recall that in <xref section="4.2" sectionFormat="of" target="RFC9588"/>, each second factor is represented by a SPAKESecondFactor.</t>
        <artwork><![CDATA[
SPAKESecondFactor ::= SEQUENCE {
  type    [0] Int32,
  data    [1] OCTET STRING OPTIONAL
}
]]></artwork>
        <t>The type field is a unique integer that identifies the second-factor type, and the data field contains optional challenge data.</t>
        <t>This document defines the type as an integer <tt>2</tt> to identify the second-factor TOTP, and defines the data as a random nonce whose length <bcp14>SHOULD</bcp14> match the multiplier length of the negotiated group, where the multiplier length is defined in <xref section="12.2" sectionFormat="of" target="RFC9588"/>.</t>
        <!-- It is recommended that the HMAC function used in the TOTP algorithm SHOULD be based on the hash function of the negotiated group, where the hash function is defined in {{Section 12.2 of RFC9588}}. -->

</section>
    </section>
    <section anchor="key-derivation">
      <name>Key Derivation</name>
      <t>The SPAKE result and the TOTP result are both used to derive keys K'[n] as defined in this section.</t>
      <t>The intermediate key is produced from the SPAKE result and other relevant values, please refer to <xref section="7" sectionFormat="of" target="RFC9588"/>.</t>
      <t>Unlike the computation in <xref section="7" sectionFormat="of" target="RFC9588"/>, the key K'[n] is computed as follows:</t>
      <ul spacing="normal">
        <li>
          <t>A pepper string is generated by concatenating the string "SF-TOTP" and the TOTP result as an octet string.</t>
        </li>
        <li>
          <t>An octet string is derived using PRF+(initial-reply-key, pepper), where PRF+ is defined in <xref section="5.1" sectionFormat="of" target="RFC6113"/>.</t>
        </li>
        <li>
          <t>An update reply key is produced from the octet string using the random-to-key function, which has the same encryption type as the initial reply key.</t>
        </li>
        <li>
          <t>The key K'[n] has the same encryption type as the update reply key, and has the value KRB-FX-CF2(update-reply-key, intermediate-key, "SPAKE", "keyderiv"), where KRB-FX-CF2 is defined in <xref section="5.1" sectionFormat="of" target="RFC6113"/>.</t>
        </li>
      </ul>
      <!-- # Security Considerations

This document does not introduce any new security considerations. -->

</section>
    <section anchor="second-factor-types">
      <name>Second-Factor Types</name>
      <t>This document defines one second-factor type:</t>
      <artwork><![CDATA[
SF-TOTP  2
]]></artwork>
      <t>This second-factor type indicates that the TOTP second factor is used.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <!-- This document has no IANA actions. -->

<t>This document defines a new second-factor type "SF-TOTP" with the following contents, and requests that IANA add it to the "Kerberos Second-Factor Types" Registry defined in <xref target="RFC9588"/>.</t>
      <artwork><![CDATA[
ID Number: 2
Name: SF-TOTP
Reference: This document (RFC XXXX).
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC4120">
        <front>
          <title>The Kerberos Network Authentication Service (V5)</title>
          <author fullname="C. Neuman" initials="C." surname="Neuman"/>
          <author fullname="T. Yu" initials="T." surname="Yu"/>
          <author fullname="S. Hartman" initials="S." surname="Hartman"/>
          <author fullname="K. Raeburn" initials="K." surname="Raeburn"/>
          <date month="July" year="2005"/>
          <abstract>
            <t>This document provides an overview and specification of Version 5 of the Kerberos protocol, and it obsoletes RFC 1510 to clarify aspects of the protocol and its intended use that require more detailed or clearer explanation than was provided in RFC 1510. This document is intended to provide a detailed description of the protocol, suitable for implementation, together with descriptions of the appropriate use of protocol messages and fields within those messages. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4120"/>
        <seriesInfo name="DOI" value="10.17487/RFC4120"/>
      </reference>
      <reference anchor="RFC9588">
        <front>
          <title>Kerberos Simple Password-Authenticated Key Exchange (SPAKE) Pre-authentication</title>
          <author fullname="N. McCallum" initials="N." surname="McCallum"/>
          <author fullname="S. Sorce" initials="S." surname="Sorce"/>
          <author fullname="R. Harwood" initials="R." surname="Harwood"/>
          <author fullname="G. Hudson" initials="G." surname="Hudson"/>
          <date month="August" year="2024"/>
          <abstract>
            <t>This document defines a new pre-authentication mechanism for the Kerberos protocol. The mechanism uses a password-authenticated key exchange (PAKE) to prevent brute-force password attacks, and it may incorporate a second factor.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9588"/>
        <seriesInfo name="DOI" value="10.17487/RFC9588"/>
      </reference>
      <reference anchor="RFC9382">
        <front>
          <title>SPAKE2, a Password-Authenticated Key Exchange</title>
          <author fullname="W. Ladd" initials="W." surname="Ladd"/>
          <date month="September" year="2023"/>
          <abstract>
            <t>This document describes SPAKE2, which is a protocol for two parties that share a password to derive a strong shared key without disclosing the password. This method is compatible with any group, is computationally efficient, and has a security proof. This document predated the Crypto Forum Research Group (CFRG) password-authenticated key exchange (PAKE) competition, and it was not selected; however, given existing use of variants in Kerberos and other applications, it was felt that publication was beneficial. Applications that need a symmetric PAKE, but are unable to hash onto an elliptic curve at execution time, can use SPAKE2. This document is a product of the Crypto Forum Research Group in the Internet Research Task Force (IRTF).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9382"/>
        <seriesInfo name="DOI" value="10.17487/RFC9382"/>
      </reference>
      <reference anchor="RFC6238">
        <front>
          <title>TOTP: Time-Based One-Time Password Algorithm</title>
          <author fullname="D. M'Raihi" initials="D." surname="M'Raihi"/>
          <author fullname="S. Machani" initials="S." surname="Machani"/>
          <author fullname="M. Pei" initials="M." surname="Pei"/>
          <author fullname="J. Rydell" initials="J." surname="Rydell"/>
          <date month="May" year="2011"/>
          <abstract>
            <t>This document describes an extension of the One-Time Password (OTP) algorithm, namely the HMAC-based One-Time Password (HOTP) algorithm, as defined in RFC 4226, to support the time-based moving factor. The HOTP algorithm specifies an event-based OTP algorithm, where the moving factor is an event counter. The present work bases the moving factor on a time value. A time-based variant of the OTP algorithm provides short-lived OTP values, which are desirable for enhanced security.</t>
            <t>The proposed algorithm can be used across a wide range of network applications, from remote Virtual Private Network (VPN) access and Wi-Fi network logon to transaction-oriented Web applications. The authors believe that a common and shared algorithm will facilitate adoption of two-factor authentication on the Internet by enabling interoperability across commercial and open-source implementations. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6238"/>
        <seriesInfo name="DOI" value="10.17487/RFC6238"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC3961">
        <front>
          <title>Encryption and Checksum Specifications for Kerberos 5</title>
          <author fullname="K. Raeburn" initials="K." surname="Raeburn"/>
          <date month="February" year="2005"/>
          <abstract>
            <t>This document describes a framework for defining encryption and checksum mechanisms for use with the Kerberos protocol, defining an abstraction layer between the Kerberos protocol and related protocols, and the actual mechanisms themselves. The document also defines several mechanisms. Some are taken from RFC 1510, modified in form to fit this new framework and occasionally modified in content when the old specification was incorrect. New mechanisms are presented here as well. This document does NOT indicate which mechanisms may be considered "required to implement". [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="3961"/>
        <seriesInfo name="DOI" value="10.17487/RFC3961"/>
      </reference>
      <reference anchor="RFC6113">
        <front>
          <title>A Generalized Framework for Kerberos Pre-Authentication</title>
          <author fullname="S. Hartman" initials="S." surname="Hartman"/>
          <author fullname="L. Zhu" initials="L." surname="Zhu"/>
          <date month="April" year="2011"/>
          <abstract>
            <t>Kerberos is a protocol for verifying the identity of principals (e.g., a workstation user or a network server) on an open network. The Kerberos protocol provides a facility called pre-authentication. Pre-authentication mechanisms can use this facility to extend the Kerberos protocol and prove the identity of a principal.</t>
            <t>This document describes a more formal model for this facility. The model describes what state in the Kerberos request a pre-authentication mechanism is likely to change. It also describes how multiple pre-authentication mechanisms used in the same request will interact.</t>
            <t>This document also provides common tools needed by multiple pre-authentication mechanisms. One of these tools is a secure channel between the client and the key distribution center with a reply key strengthening mechanism; this secure channel can be used to protect the authentication exchange and thus eliminate offline dictionary attacks. With these tools, it is relatively straightforward to chain multiple authentication mechanisms, utilize a different key management system, or support a new key agreement algorithm. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6113"/>
        <seriesInfo name="DOI" value="10.17487/RFC6113"/>
      </reference>
      <reference anchor="RFC4226">
        <front>
          <title>HOTP: An HMAC-Based One-Time Password Algorithm</title>
          <author fullname="D. M'Raihi" initials="D." surname="M'Raihi"/>
          <author fullname="M. Bellare" initials="M." surname="Bellare"/>
          <author fullname="F. Hoornaert" initials="F." surname="Hoornaert"/>
          <author fullname="D. Naccache" initials="D." surname="Naccache"/>
          <author fullname="O. Ranen" initials="O." surname="Ranen"/>
          <date month="December" year="2005"/>
          <abstract>
            <t>This document describes an algorithm to generate one-time password values, based on Hashed Message Authentication Code (HMAC). A security analysis of the algorithm is presented, and important parameters related to the secure deployment of the algorithm are discussed. The proposed algorithm can be used across a wide range of network applications ranging from remote Virtual Private Network (VPN) access, Wi-Fi network logon to transaction-oriented Web applications.</t>
            <t>This work is a joint effort by the OATH (Open AuTHentication) membership to specify an algorithm that can be freely distributed to the technical community. The authors believe that a common and shared algorithm will facilitate adoption of two-factor authentication on the Internet by enabling interoperability across commercial and open-source implementations. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4226"/>
        <seriesInfo name="DOI" value="10.17487/RFC4226"/>
      </reference>
    </references>
    <?line 180?>

<!-- # Acknowledgements
{:numbered="false"}

The authors would like to thank... -->



  </back>
  <!-- ##markdown-source:
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
yuQoJZhN6Xz0/xd6bOT/AFTcH/55IwAA

-->

</rfc>
