<?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.39 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rische-kitten-pkinit-crypto-deprec-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="4556, 5349, 8636" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="PKINIT-CypDpr">Deprecation of Outdated Cryptographic Algorithms and Parameters in Kerberos PKINIT</title>
    <seriesInfo name="Internet-Draft" value="draft-rische-kitten-pkinit-crypto-deprec-00"/>
    <author initials="J." surname="Rische" fullname="Julien Rische">
      <organization>Red Hat, Inc.</organization>
      <address>
        <postal>
          <street>23-25 rue Delarivière Lefoullon</street>
          <city>Puteaux</city>
          <code>92800</code>
          <country>France</country>
        </postal>
        <email>jrische@redhat.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="23"/>
    <area>Security</area>
    <workgroup>Common Authentication Technology Next Generation</workgroup>
    <keyword>Kerberos</keyword>
    <keyword>PKINIT</keyword>
    <keyword>cryptographic deprecation</keyword>
    <keyword>SHA-1</keyword>
    <keyword>Diffie-Hellman</keyword>
    <keyword>MODP</keyword>
    <keyword>RSA</keyword>
    <abstract>
      <?line 69?>

<t>This document deprecates several outdated cryptographic algorithms and
parameters from the Kerberos PKINIT specification (RFC 4556) and its
extensions (RFC 5349, RFC 8636).  Specifically, it deprecates the RSA
key transport mechanism for reply key delivery, the Diffie-Hellman MODP
group 2 (1024-bit) parameter, the SHA-1-based octetstring2key key
derivation function, and the sha1WithRSAEncryption CMS signature
algorithm.  It also defines a new <tt>paChecksum2</tt> field in the
<tt>PKAuthenticator</tt> structure to provide checksum algorithm agility.</t>
      <t>This document updates RFC 4556, RFC 5349, and RFC 8636.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Common Authentication Technology Next Generation Working Group mailing list (kitten@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/kitten/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/abbra/kitten-pkinit-pqc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 82?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Since the publication of the initial PKINIT specification in <xref target="RFC4556"/>,
significant advances in cryptanalysis and computing power have rendered
several of its cryptographic elements inadequate for current use.
BCP 201 <xref target="RFC7696"/> stresses the importance of proactively deprecating
weakened algorithms.  This document addresses five such elements.</t>
      <t>The RSA key transport mechanism defined in <xref target="RFC4556"/> Section 3.2.3.2
relies on RSAES-PKCS-v1_5, which has been subject to Bleichenbacher-
style adaptive chosen-ciphertext attacks since 1998 and to numerous
side-channel attacks documented in <xref target="I-D.irtf-cfrg-rsa-guidance"/>.
It also prevents the client from contributing entropy to the session
key.</t>
      <t>The 1024-bit Diffie-Hellman MODP group 2 (<xref target="RFC2409"/> Section 6.2,
<xref target="RFC2412"/> Appendix E.2), mandatory in <xref target="RFC4556"/>, provides at most
approximately 80 bits of security strength.  NIST has deprecated
1024-bit discrete-logarithm key sizes and major cryptographic libraries
such as OpenSSL no longer support this group, creating practical
interoperability failures in PKINIT deployments.</t>
      <t>SHA-1 has been demonstrably broken for collision resistance since 2017.
NIST disallowed SHA-1 for digital signature generation in 2013, and
<xref target="RFC9155"/> formally deprecated it in TLS 1.2.  Three elements of the
PKINIT protocol depend on SHA-1: the <tt>sha1WithRSAEncryption</tt> CMS
signature algorithm mandated in <xref target="RFC4556"/> Section 3.2.2, the
<tt>octetstring2key()</tt> key derivation function in <xref target="RFC4556"/>
Section 3.2.3.1, and the hardwired SHA-1 checksum in the <tt>paChecksum</tt>
field of <tt>PKAuthenticator</tt>.  <xref target="RFC8636"/> introduced negotiable KDFs and
acknowledged the <tt>paChecksum</tt> limitation but left both the KDF
negotiation and the checksum algorithm as optional.</t>
      <t>This specification:</t>
      <ol spacing="normal" type="1"><li>
          <t>Deprecates the RSA key transport mechanism (<xref target="sec-rsa-deprec"/>).</t>
        </li>
        <li>
          <t>Deprecates MODP group 2 (<xref target="sec-modp-deprec"/>).</t>
        </li>
        <li>
          <t>Makes the <tt>supportedKDFs</tt> field mandatory and deprecates the SHA-1
KDF (<xref target="sec-kdf-deprec"/>).</t>
        </li>
        <li>
          <t>Deprecates <tt>sha1WithRSAEncryption</tt> and <tt>ecdsa-with-SHA1</tt> in CMS
signatures (<xref target="sec-sig-deprec"/>).</t>
        </li>
        <li>
          <t>Defines <tt>paChecksum2</tt> for checksum algorithm agility
(<xref target="sec-pachecksum2"/>).</t>
        </li>
      </ol>
      <section anchor="requirements-language">
        <name>Requirements Language</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?>

</section>
    </section>
    <section anchor="sec-rsa-deprec">
      <name>RSA Key Transport</name>
      <t>Implementations conforming to this specification <bcp14>MUST NOT</bcp14> use the RSA
key transport mechanism (the <tt>encKeyPack</tt> choice of <tt>PA-PK-AS-REP</tt>)
defined in <xref target="RFC4556"/> Section 3.2.3.2.</t>
      <t>Clients conforming to this specification:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> include the <tt>clientPublicValue</tt> field in the <tt>AuthPack</tt>
structure, containing a Diffie-Hellman or ECDH public key.</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> omit <tt>clientPublicValue</tt> in order to request RSA key
transport.</t>
        </li>
      </ul>
      <t>KDCs conforming to this specification:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> reply using the <tt>dhInfo</tt> choice in <tt>PA-PK-AS-REP</tt> (the
Diffie-Hellman key delivery method described in <xref target="RFC4556"/>
Section 3.2.3.1 or the ECDH method described in <xref target="RFC5349"/>).</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> reply using the <tt>encKeyPack</tt> choice in <tt>PA-PK-AS-REP</tt>.</t>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> return <tt>KDC_ERR_PREAUTH_FAILED</tt> if a client request
omits the <tt>clientPublicValue</tt> field.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-modp-deprec">
      <name>MODP Group 2</name>
      <t>Implementations conforming to this specification <bcp14>MUST NOT</bcp14> use
Diffie-Hellman MODP group 2 (the Second Oakley Group, 1024-bit prime).</t>
      <t>The requirements from <xref target="RFC4556"/> Section 3.2.3.1 are updated as
follows:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support MODP group 14 (2048-bit prime,
<xref target="RFC3526"/> Section 3).</t>
        </li>
        <li>
          <t>Implementations <bcp14>SHOULD</bcp14> support MODP group 16 (4096-bit prime,
<xref target="RFC3526"/> Section 5).</t>
        </li>
        <li>
          <t>Implementations <bcp14>MAY</bcp14> support additional MODP groups defined in
<xref target="RFC3526"/> with a modulus size of 2048 bits or larger.</t>
        </li>
      </ul>
      <t>When a client sends a <tt>clientPublicValue</tt> using a deprecated group,
a KDC conforming to this specification <bcp14>MUST</bcp14> reject the request and
<bcp14>SHOULD</bcp14> reply with <tt>TD-DH-PARAMETERS</tt> containing only groups that
meet the minimum strength requirements defined above.</t>
    </section>
    <section anchor="sec-kdf-deprec">
      <name>SHA-1-Based <tt>octetstring2key()</tt> KDF</name>
      <t>The <tt>supportedKDFs</tt> field defined in <xref target="RFC8636"/> is now <bcp14>REQUIRED</bcp14>.</t>
      <t>Clients conforming to this specification:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> include the <tt>supportedKDFs</tt> field in the <tt>AuthPack</tt> structure.</t>
        </li>
        <li>
          <t><bcp14>MUST</bcp14> include <tt>id-pkinit-kdf-ah-sha256</tt> in the <tt>supportedKDFs</tt> set.</t>
        </li>
        <li>
          <t><bcp14>SHOULD</bcp14> include <tt>id-pkinit-kdf-ah-sha384</tt> and
<tt>id-pkinit-kdf-ah-sha512</tt> in the <tt>supportedKDFs</tt> set.</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> include <tt>id-pkinit-kdf-ah-sha1</tt> in the <tt>supportedKDFs</tt> set.</t>
        </li>
      </ul>
      <t>KDCs conforming to this specification:</t>
      <ul spacing="normal">
        <li>
          <t><bcp14>MUST</bcp14> select a KDF from the <tt>supportedKDFs</tt> field in the request.</t>
        </li>
        <li>
          <t><bcp14>MUST NOT</bcp14> select <tt>id-pkinit-kdf-ah-sha1</tt>.</t>
        </li>
        <li>
          <t>If the <tt>supportedKDFs</tt> field is absent from the request, the KDC
<bcp14>SHOULD</bcp14> reject the request and reply with <tt>KDC_ERR_NO_ACCEPTABLE_KDF</tt>
(error code 100, <xref target="RFC8636"/>).  Alternatively, the KDC <bcp14>MAY</bcp14> fall back
to the <xref target="RFC4556"/> <tt>octetstring2key()</tt> KDF if local policy permits
interoperability with legacy clients.</t>
        </li>
      </ul>
    </section>
    <section anchor="sec-sig-deprec">
      <name>CMS Signature Algorithms</name>
      <t>Implementations conforming to this specification <bcp14>MUST NOT</bcp14> use
<tt>sha1WithRSAEncryption</tt> for generating CMS signatures in PKINIT
messages.</t>
      <t>For RSA signatures, the following requirements apply:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support <tt>sha256WithRSAEncryption</tt> <xref target="RFC5754"/>.</t>
        </li>
        <li>
          <t>Implementations <bcp14>SHOULD</bcp14> support <tt>sha384WithRSAEncryption</tt> and
<tt>sha512WithRSAEncryption</tt> <xref target="RFC5754"/>.</t>
        </li>
      </ul>
      <t>For ECDSA signatures, the requirements from <xref target="RFC5349"/> Section 3 are
updated as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support <tt>ecdsa-with-SHA256</tt>.</t>
        </li>
        <li>
          <t>Implementations <bcp14>SHOULD</bcp14> support <tt>ecdsa-with-SHA384</tt> and
<tt>ecdsa-with-SHA512</tt>.</t>
        </li>
        <li>
          <t>Implementations <bcp14>SHOULD NOT</bcp14> use <tt>ecdsa-with-SHA1</tt>.  The <bcp14>SHOULD</bcp14>
requirement for <tt>ecdsa-with-SHA1</tt> in <xref target="RFC5349"/> is downgraded.</t>
        </li>
      </ul>
      <t>For CMS digest algorithms, the corresponding requirements apply:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support <tt>id-sha256</tt>.</t>
        </li>
        <li>
          <t>Implementations <bcp14>SHOULD</bcp14> support <tt>id-sha384</tt> and <tt>id-sha512</tt>.</t>
        </li>
        <li>
          <t>Implementations <bcp14>MUST NOT</bcp14> use <tt>id-sha1</tt> for generating CMS signatures
in PKINIT messages.</t>
        </li>
      </ul>
      <t>When a KDC receives a CMS <tt>SignedData</tt> from a client that uses
<tt>sha1WithRSAEncryption</tt>, <tt>ecdsa-with-SHA1</tt>, or <tt>id-sha1</tt> as the
digest algorithm, the KDC <bcp14>SHOULD</bcp14> reject the request.  A KDC <bcp14>MAY</bcp14>
accept SHA-1-based signatures from legacy clients if local policy
permits, but this is <bcp14>NOT RECOMMENDED</bcp14>.</t>
    </section>
    <section anchor="sec-pachecksum2">
      <name><tt>paChecksum2</tt> Extension</name>
      <t>This specification defines a new <tt>PAChecksum2</tt> type and extends the
<tt>PKAuthenticator</tt> structure from <xref target="RFC4556"/> with a <tt>paChecksum2</tt>
field at tag [5].</t>
      <sourcecode type="asn1"><![CDATA[
PAChecksum2 ::= SEQUENCE {
    checksum                [0] OCTET STRING,
        -- Checksum computed over KDC-REQ-BODY using the algorithm
        -- specified in algorithmIdentifier.
    algorithmIdentifier     [1] AlgorithmIdentifier
        -- Digest algorithm OID.
}
]]></sourcecode>
      <t>The <tt>checksum</tt> field contains the digest computed over KDC-REQ-BODY
using the algorithm identified by <tt>algorithmIdentifier</tt>.  The
<tt>parameters</tt> field of the <tt>AlgorithmIdentifier</tt> <bcp14>MUST</bcp14> be absent.</t>
      <t>The <tt>PKAuthenticator</tt> structure from <xref target="RFC4556"/> is extended as follows:</t>
      <sourcecode type="asn1"><![CDATA[
PKAuthenticator ::= SEQUENCE {
    cusec                   [0] INTEGER (0..999999),
    ctime                   [1] KerberosTime,
    nonce                   [2] INTEGER (0..4294967295),
    paChecksum              [3] OCTET STRING OPTIONAL,
        -- RFC 4556: SHA-1 checksum over KDC-REQ-BODY.
    freshnessToken          [4] OCTET STRING OPTIONAL,
        -- RFC 8070: PA_AS_FRESHNESS token from KDC.
    paChecksum2             [5] PAChecksum2 OPTIONAL,
        -- This specification: algorithm-agile checksum
        -- over KDC-REQ-BODY.
    ...
}
]]></sourcecode>
      <t>The following digest algorithms are defined for use with <tt>paChecksum2</tt>:</t>
      <ul spacing="normal">
        <li>
          <t>Implementations <bcp14>MUST</bcp14> support SHA-256
(OID 2.16.840.1.101.3.4.2.1, <xref target="RFC5754"/>).</t>
        </li>
        <li>
          <t>Implementations <bcp14>MAY</bcp14> support SHA-384
(OID 2.16.840.1.101.3.4.2.2, <xref target="RFC5754"/>) and SHA-512
(OID 2.16.840.1.101.3.4.2.3, <xref target="RFC5754"/>).</t>
        </li>
      </ul>
      <dl>
        <dt>Client behavior:</dt>
        <dd>
          <t>A client constructing a PKINIT request conforming to this
specification <bcp14>MUST</bcp14> include the <tt>paChecksum2</tt> field and <bcp14>SHOULD</bcp14> include
the <tt>paChecksum</tt> field (SHA-1, per <xref target="RFC4556"/>).  Both checksums,
when present, are computed over the same KDC-REQ-BODY input.</t>
        </dd>
        <dt>KDC validation:</dt>
        <dd>
          <t>A KDC conforming to this specification <bcp14>MUST</bcp14> require <tt>paChecksum2</tt> to
be present in the request.  If <tt>paChecksum2</tt> is absent, the KDC
returns <tt>KDC_ERR_PA_CHECKSUM_MUST_BE_INCLUDED</tt> (error code 79,
<xref target="RFC4556"/>).
</t>
          <t>The KDC <bcp14>MUST</bcp14> validate <tt>paChecksum2</tt>.  If <tt>paChecksum</tt> is also
present, the KDC <bcp14>MUST</bcp14> validate it as well.  The KDC returns the
following errors:</t>
          <ul spacing="normal">
            <li>
              <t><tt>KDC_ERR_SUMTYPE_NOSUPP</tt> (error code 15, <xref target="RFC4120"/>): if the
digest algorithm in <tt>paChecksum2.algorithmIdentifier</tt> is not
supported by the KDC.</t>
            </li>
            <li>
              <t><tt>KRB_AP_ERR_MODIFIED</tt> (error code 41, <xref target="RFC4120"/>): if
verification of <tt>paChecksum2</tt> fails, or if <tt>paChecksum</tt> is
present and its verification fails.</t>
            </li>
          </ul>
        </dd>
      </dl>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="sec-security">
      <name>Security Considerations</name>
      <t>KDCs and clients <bcp14>MAY</bcp14> accept legacy algorithm choices from peers that
have not been updated to conform to this specification, subject to
local policy.  Implementations <bcp14>SHOULD</bcp14> log such fallback events.
Deployments are encouraged to coordinate a phased rollout in which the
KDC accepts (but does not yet require) the new fields before
enforcement is enabled.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3526">
          <front>
            <title>More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)</title>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <author fullname="M. Kojo" initials="M." surname="Kojo"/>
            <date month="May" year="2003"/>
            <abstract>
              <t>This document defines new Modular Exponential (MODP) Groups for the Internet Key Exchange (IKE) protocol. It documents the well known and used 1536 bit group 5, and also defines new 2048, 3072, 4096, 6144, and 8192 bit Diffie-Hellman groups numbered starting at 14. The selection of the primes for theses groups follows the criteria established by Richard Schroeppel. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3526"/>
          <seriesInfo name="DOI" value="10.17487/RFC3526"/>
        </reference>
        <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="RFC4556">
          <front>
            <title>Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)</title>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="B. Tung" initials="B." surname="Tung"/>
            <date month="June" year="2006"/>
            <abstract>
              <t>This document describes protocol extensions (hereafter called PKINIT) to the Kerberos protocol specification. These extensions provide a method for integrating public key cryptography into the initial authentication exchange, by using asymmetric-key signature and/or encryption algorithms in pre-authentication data fields. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4556"/>
          <seriesInfo name="DOI" value="10.17487/RFC4556"/>
        </reference>
        <reference anchor="RFC5349">
          <front>
            <title>Elliptic Curve Cryptography (ECC) Support for Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)</title>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="K. Jaganathan" initials="K." surname="Jaganathan"/>
            <author fullname="K. Lauter" initials="K." surname="Lauter"/>
            <date month="September" year="2008"/>
            <abstract>
              <t>This document describes the use of Elliptic Curve certificates, Elliptic Curve signature schemes and Elliptic Curve Diffie-Hellman (ECDH) key agreement within the framework of PKINIT -- the Kerberos Version 5 extension that provides for the use of public key cryptography. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5349"/>
          <seriesInfo name="DOI" value="10.17487/RFC5349"/>
        </reference>
        <reference anchor="RFC5754">
          <front>
            <title>Using SHA2 Algorithms with Cryptographic Message Syntax</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS and the Digital Signature Algorithm (DSA), Rivest Shamir Adleman (RSA), and Elliptic Curve DSA (ECDSA) signature algorithms. Further, it provides SMIMECapabilities attribute values for each algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5754"/>
          <seriesInfo name="DOI" value="10.17487/RFC5754"/>
        </reference>
        <reference anchor="RFC8636">
          <front>
            <title>Public Key Cryptography for Initial Authentication in Kerberos (PKINIT) Algorithm Agility</title>
            <author fullname="L. Hornquist Astrand" initials="L." surname="Hornquist Astrand"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <author fullname="M. Cullen" initials="M." surname="Cullen"/>
            <author fullname="G. Hudson" initials="G." surname="Hudson"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document updates the Public Key Cryptography for Initial Authentication in Kerberos (PKINIT) standard (RFC 4556) to remove protocol structures tied to specific cryptographic algorithms. The PKINIT key derivation function is made negotiable, and the digest algorithms for signing the pre-authentication data and the client's X.509 certificates are made discoverable.</t>
              <t>These changes provide preemptive protection against vulnerabilities discovered in the future in any specific cryptographic algorithm and allow incremental deployment of newer algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8636"/>
          <seriesInfo name="DOI" value="10.17487/RFC8636"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2409">
          <front>
            <title>The Internet Key Exchange (IKE)</title>
            <author fullname="D. Harkins" initials="D." surname="Harkins"/>
            <author fullname="D. Carrel" initials="D." surname="Carrel"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This memo describes a hybrid protocol. The purpose is to negotiate, and provide authenticated keying material for, security associations in a protected manner. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2409"/>
          <seriesInfo name="DOI" value="10.17487/RFC2409"/>
        </reference>
        <reference anchor="RFC2412">
          <front>
            <title>The OAKLEY Key Determination Protocol</title>
            <author fullname="H. Orman" initials="H." surname="Orman"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This document describes a protocol, named OAKLEY, by which two authenticated parties can agree on secure and secret keying material. The basic mechanism is the Diffie-Hellman key exchange algorithm. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2412"/>
          <seriesInfo name="DOI" value="10.17487/RFC2412"/>
        </reference>
        <reference anchor="RFC7696">
          <front>
            <title>Guidelines for Cryptographic Algorithm Agility and Selecting Mandatory-to-Implement Algorithms</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="November" year="2015"/>
            <abstract>
              <t>Many IETF protocols use cryptographic algorithms to provide confidentiality, integrity, authentication, or digital signature. Communicating peers must support a common set of cryptographic algorithms for these mechanisms to work properly. This memo provides guidelines to ensure that protocols have the ability to migrate from one mandatory-to-implement algorithm suite to another over time.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="201"/>
          <seriesInfo name="RFC" value="7696"/>
          <seriesInfo name="DOI" value="10.17487/RFC7696"/>
        </reference>
        <reference anchor="RFC8070">
          <front>
            <title>Public Key Cryptography for Initial Authentication in Kerberos (PKINIT) Freshness Extension</title>
            <author fullname="M. Short" initials="M." role="editor" surname="Short"/>
            <author fullname="S. Moore" initials="S." surname="Moore"/>
            <author fullname="P. Miller" initials="P." surname="Miller"/>
            <date month="February" year="2017"/>
            <abstract>
              <t>This document describes how to further extend the Public Key Cryptography for Initial Authentication in Kerberos (PKINIT) extension (defined in RFC 4556) to exchange an opaque data blob that a Key Distribution Center (KDC) can validate to ensure that the client is currently in possession of the private key during a PKINIT Authentication Service (AS) exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8070"/>
          <seriesInfo name="DOI" value="10.17487/RFC8070"/>
        </reference>
        <reference anchor="RFC9155">
          <front>
            <title>Deprecating MD5 and SHA-1 Signature Hashes in TLS 1.2 and DTLS 1.2</title>
            <author fullname="L. Velvindron" initials="L." surname="Velvindron"/>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="A. Ghedini" initials="A." surname="Ghedini"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The MD5 and SHA-1 hashing algorithms are increasingly vulnerable to attack, and this document deprecates their use in TLS 1.2 and DTLS 1.2 digital signatures. However, this document does not deprecate SHA-1 with Hashed Message Authentication Code (HMAC), as used in record protection. This document updates RFC 5246.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9155"/>
          <seriesInfo name="DOI" value="10.17487/RFC9155"/>
        </reference>
        <reference anchor="I-D.irtf-cfrg-rsa-guidance">
          <front>
            <title>Implementation Guidance for the PKCS#1 RSA Cryptography Specification</title>
            <author initials="H." surname="Kario" fullname="Hubert Kario">
              <organization>Red Hat, Inc.</organization>
            </author>
            <date year="2026" month="March"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-rsa-guidance-08"/>
        </reference>
        <reference anchor="MS-PKCA" target="https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-pkca/">
          <front>
            <title>Public Key Cryptography for Initial Authentication (PKINIT) in Kerberos Protocol</title>
            <author>
              <organization>Microsoft Corporation</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 347?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The <tt>paChecksum2</tt> extension is based on the <tt>PAChecksum2</tt> structure
first defined in Microsoft's <xref target="MS-PKCA"/> specification.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6Va3XYiOZK+11PEVl2s3YfMAgwumzPTsxTgNuM/2rh2Tp+e
OkZkBqB2ImVLSrsZH/ez7OU+x+6L7QkpEzIBl6u3feMEUqFQKOKLL0IKgoAZ
y2V8zxMlsQNWZ8hEqt2Tsc16/bTeZBG3HTA2ZiabLoUxQkm7SrEDw8HdGeMa
eQfGGGVa2BV7mnegp5ZLJaGb2QVKKyJuhZJwh9FCqkTNV3CNv1n4ASVq9xNj
sYokX2IHYs1nNtDCRAsMHoS1KIP0QUhhg0ivUquCGFONUVCvsyyNuUXTgVa7
fVyD9lHrtAYnx0fHjFlhE+zA9wyg7973KqgZ3GSWRsXQc+LmmqcLEUE3mSst
7GJpgMsYRlzzJVrUBoRkABeop6iVgdHF8Hp4x/h0qvGxk38Mequ0n2qWcDnv
AEr28NRhAMF6mPuQD6XHqDJ3vNHQ/To+7wYN99QXs5nA4ByTZMn9j1c3/ZF7
uB13GeOZXSjdYQEIaTrw9xBunekYgLfn37NEoNx8q/S8A7cYwzm3NRjKKGQA
xmpE24HmUdBsg84Q+phwLR7F//63RrjEmcqSxGkXCbvqwCizyLPf6LOKsQPv
Tpsn9fo79zmTVq86cKa5jGhGXHKRdOAXv6f/oTFecBtGasmYVHrJrXhEstbt
We+o3TzOH1uNZr14bLeLb2mLi8eP7Vb+SFveYUzI2Za8Zqt+un5sNPPHj8en
hbyT+sdiltNGu02Pw6AfCm1nQTTT80AbHswzEdNa6FeAkmfR33CZJrhEab2D
/ZC/CzOlwS4QRhe98fsGbVbZ4Vb56HGKkZiJ9d4DFBtKz0G+h+fZFLWFC66F
ygfu3UYA8uwONOvN46B+5L4xqAUaMk2n0Fha1BJt0KdQKyJu/5KD+gkDuBoH
o4ted+/6R9k0ERFc4KqyPrf+oRRW8GQbBw58IBz6yKK/TXRpZVWkkj2mcCu+
EpFWRs0s9JROld7YzXI9JxdeWJuazocPCXItw2XxPvnbB5RBZj6oFKVJMTIf
noSM1ZO5T/NZzYelCdKHiH+oGrPNWBAEwKfGah5Zxu4WwkCsoow2fh2+aMDg
I2qegCpAphrovAIyLN2AzEyrpfOXLaABU/YQOLg96zm0O3QoJaxh+JtFSZBs
/K8eBemJwuIwLDlZkqxqICoK05QEJA+4Aqu5NKnSFpYYLbgUZum2UWOarIDe
iDERj6hXNTeuCk4emOZaZSk04aBRb7aCqbCHsF6lH+XALZhygzGoyKI1Vgs5
b5L8B1yxGLV49KudZTKih5pbLA02C974h7CL23F3IJ1t6b3e1RiMmEtuM41s
beQQYGiBJ0ZBjDMh0QAHiU8wSXlvgdGDyZbNCcwEJjEISROwyeii5K1KTwgb
s4gEg1WQavUoYoQoH77ZUeBzkQi7Cre9I09SUOyc3xu/S7SsYqdC72RLEccJ
Mvae4lSrOIt8ghwLQhWyQeoibp3P6CuRB9penxESnp9zGH15qTGylPtVWuDx
I4U5JTnvqlzyZGWET4KRWqaZFXIOqXpCDQv+iKBRxqgxZmtfn5Efbnk6elAk
wTzGXzNuPSRGmdbOKgZD9qk3gma94dUjVH55canImNwzxZLc0eGpmpHxeUTo
nqw2KVPO2RPyB5QYl8IrBKjuAo/jXO5MPCKYLFqsdXRb5sIAXgsD7z/xli2J
9DgTH4XN8ChsMo2JQANKkrCBQ81x8Ni4b9fgaSGiBSy4gSmiBJNNf8HIkk99
SlBEC5RTHi1QEyFbJQg85imtFaKFMiiDSKQL1JZ4E7eWRw8GjHOJxunpiY8P
BTJbolaZYUbEGJDyEpP1+4UxinW8nuleXkJWhE6q8dHtJG1IRGTCerSKlLRa
TL2DIDlruiIlXJyiY4kEK7l1CzzYhxqwRg1nXMraJeMeh80ay39oNF9eoJum
KGPxGwzC5mENllzGFKqrbU8votUAt7BUxjKeplr9Jpbckg+d1GFKnqtmYHL2
6txPzu0iBLgeju/chq3hMmbrVcTCRBotBomacw8A5DtG/At97Cz5L+TulaBI
xFRzSsfM+R83cJOiHI8vQSpIlJyjBpOlzvcsua+zSw0ijdyHIaUfAnImKImr
FDWfOtiBGRdJpn0k5zAQY5qoVeHiDnc3DhjjUknKZ9NkBVOtHlD6AFVJImjv
QKMRxgef97RmvfExZM4ssTA8SdQTxh7P3dBYzIXlyQaKYb5m+KRWs944cpjn
d5MI18sLOM6WlEKa3NPS+3eXY2iETRfLGnGDKR71WL7MInuTAJQxRZ/TqeM8
cbI3ZUwoZ7CNohsY99709VBv1nyu2EpfB4eTPEvuZLAtaawKHI1NgltwHT8J
vbbrOtH4/FROXRPmM5eawU7WCsFPR4nl5QVEnkowBolzZQWfJggX/TPPQ3j0
INVTgvEc451ZIBFLkbPbaWYhwZmFqbILT1f6ZywX6d4o1rEvQRpQzvg8KZJk
JVF1GGuE62ptw01eBeWD52eDkQMu7zsvL4cha1ZkbMMLDViqOC2POArhij/k
E07yAMSYzFOwgw3G0AK3+FNRrpExijke4ll5ilZFqdd8kmRPMIoND56EXQTj
825jQjtPzkpcvvBXU0xjxLw8TZum8Uxni+NQZL/KWUh2LjDlxWtNJ5G9fw+3
+GsmdB57l1zOMz5Hj+q0NU9KxwbeXX0e372r+f9wfeOebwc/fh7eDvr0PD7v
Xl6uH1j+xvj85vNlf/O0Gdm7uboaXPf94OubO6h8xd5ddX965+Pm3c3obnhz
3b1856Okkvc9b5sSR7KoU8LsGLhhMZpIi6kP9E+90f/8V6MFz8//Rmmm0aD8
4z+cND62Xl7gaYE5DVUyWeUf7QJXlFOQa5LCkwQinhIGmhq5u1moJwkL1Bgy
9t3PZJkvHfjLNEobre/zL2jBlS8Lm1W+dDbb/WZnsDfinq/2TLO2ZuX7LUtX
9e3+VPlc2L305V/+lgiJEDRO/vY9IxZLAUzF4d06gJ/fb0UtY9Ui2hC1oLRA
Kc8Rim2ogMJyxCPfrGEOXFyjjC5wNeLRw4Q4lfCccjLqBqOLoDsObgejySH7
NqIXMtZzTOhtVTuMfefVFTJKstirO/FEyhfP/8mTDKt1CEwIz52yvj3jS5Ca
I11cSJqOb1MppWHQ65/nBQJ47vXdxlZqKezemQWNjVHTCjT+mqGxBfAy2Jg0
ZOyi3/sjS/aVY2bcq7SqeDGUM7XeACG3NsDtFfXsqisr156wRLtQBMKlAC7n
VtjarQbkrRhnnFdHU0XmIa9ksp0F7PGinUU4EXnYabSZljC56PfuB7e396Pb
Qffz3fn9WXd4OehPQMyAF6w6Nz016ZYiJ9yvOgpBs89uP+TZzcdVObn9ycBi
X6XqLvNhpGQMN/whwZVXpLZh+qkWSzzM+b8uJxFXP7weXw0H275wdmA9U0Q2
jXOs7SU5jQvWXFKx0YKDZr11slGlxnJWRG3G8qR+07cF5zu4T/QxHLTqp8dv
i27vF33V/Wktl8ex8KyoNIUpVZxbookZAIelirMkM67iICCjpebljIaEmmE6
ZOwfC5QbBzMoY+qB7HMq7+O8zMJ99cE4XPR73+g5Gn1Vm284AQkRzHUwUDS5
BUzu+kH/PBh1b7tXg7vB7XhShjaXY3ND2AW3bInopS6FFMtsua7Tqn5VGI1P
1SO6CPHdpk+u27SPrxNl84FTYmzeY/czwe0EUTBsA1I9QZG8/3yC2Dv5TnLY
pIZwR8xExMXJCa2NLwKz4M328WQtZmsOg7YMXV+Vc3TScnyVwf7f243mm/Os
searMzXekPMHU5LBhDyUu51fd12/au7ck6s653JeUdlH/exrsg31k9fNlNI8
tbyw6lEmKwJnX1hV4qlIMNc3991ebzC66366HNxf9M+IQByg1q62j6kRU6+V
XZc6xN2EjgS4762t53cwNSNWO+XRAzEB39wpA/drMSVmkKiIJ5CqREQrSFFT
TmMAO50Lp3+Ccx6tcqAyLnSpqzteV+il8zkfr6XS58/mudfqMaqaihaGnFfb
zKVGC1uiMXyOpPaZ0o46bd7z5vQZjKRUAIunabJ6O61NfOTuUdFTl4/tFrXs
3k5iEx+6+2tPimUfum9OdOa55p6FvpLnPbvapFzK8GyT4eGbM/xWfUx49k0L
rw4rw1f1FwKurwksio6dOt21qTB/jUHZEM6R9hb2Zdu4svVJzjWPMc5tTC4X
i7kL+HUAeENHSms0qZLx/9urRFykhG8yoX+9MF3x+VWDVWq0/OXGG0Hl8KHo
X5bCKucxBEoaIxSP7iyHxk4IIjDuc8sn3t/WdIeYA01uXgvw2u6m1Ig+bZTl
joWz7S3YQOSrAE2oWoAo41GEqa0cfZWAxGldBcBt/GQ5ftZcC87hmTCwVas7
1Kz2fQbF4WAOmuX2zr4e3PZB2ahbEkZ3PtzOuyPH2Lx5YLZD83PuWtEx72Jy
C5bP4Z8/t//5JWTs999/B25kg5U0gE7nrzAe/Ph5cN0bwLM7o103tbb+fq5/
gZve3eAOxne3w+sfaqz4JQigkJgfcNFB5CNq2q3gdvBj8Omm/1Op5lvvellE
bjVPBNdvDGOyw0wQ93Yn2Ls/eO0aXzYJbfNbeYL+lsvBzbAfshcyTE5Po3WH
1lsw58++bsw99vUFsj0LBFGoEsN0BZM96ucwxyabs+ti/vwscrJnYRMPBlPM
OU9eE/4h3xEm97vthLFxlaq0ve6SGYy2fSV3l+H13eCHwS0c1MPw1P0deq+J
rFjivkGNL+vj+ru8CASQis5K9rzdrE7Rap62To8/Nk/b+TSboNgaeFR1ZSja
bhWfLo6XO9sHBzs7711zptEsJBpz545+NrO1vnU2d3cGRt377vj+7HYwPr8e
jMdg/UkS7d5FvxduraxZXVn7C5Tje+9Uew4KNh4bUAd7c9pQHvfKusOwEkUb
XraTZl0Toij3KGtRHvNku4xfb+dZ2pBm+5h4+M2wD82wcRyetOphI2zUG+FR
2AqbdARUYlhvdw1I5tFJ66sym1WZDrppXLvR/Oq4ox1dfC0LU1zwR0FXcjrQ
LbJs5I4R6ZqC6x/kubsoU3aJOPUzd6l4pfbdcz3D616uS6ke2T6q8u8euAio
Uc1RRhAqdD7RuVXhLYb8jDr5dMZNsFRzW17FTHeazZdYzQ5CpllefMIjT0Sc
V5mdPOl/a7fEkbatBVu64zXFQqntKhSorqyOWNeS5dLRdx5NqfXYve+dD3oX
489X9zT9/afB/fC6d/m5T43Icon48XTdzypMx5int47RkO75qreU39HOK5cY
WtPaynavIGEJ158wScLNXMUqfFt4E61OW0J/gO82Sxx/vrr7aTS4v74Zfx6N
qotqtHO3ppuFLy+HHeJYXizsBL9r6pYWFu5Lhb7pY/01u6LGp8SZry8stLv9
dN8dOQWvbvrDs+G2vVuNXdWc1EfUG5dR29tOR/7GEVaxY3OPu7kH5VfFquLc
aEcZh93rLvSUpEsjOscaTxcFl/xl+0ITXSGQyo/irpzzYoobwPtFFTcsXvKO
jbtflJNdAracIuc0eLMRvsmek+QU6a6c6wi6u0hSWX+boagkrSpCb3/c1UoX
b1iZYIfbNznX5U+i5v66EHVCqBEC/j5MyPqb+xUOOFBGKtN8XuihdCwkeTaH
dOFIvyb/zVxI+/tA5H/k5n71Bg6I3scKnWPBCm2BEYfOqYiTO4yjSxwzpZEh
LTbyVSYxJEkn+3F+l8y1bdh76G7O95227LlDV4WmdI3rr+9mPDH4rmh6Vjxs
fbeQZOdX9vJeXKUyWNM2NhPa2HKTdH1j898NPD/nN0npnld5W0L2fzEhQcSK
LgAA

-->

</rfc>
