<?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.31 (Ruby 3.2.3) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonica-tcpm-tcp-ao-long-algs-00" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="tcp-ao-algs">Additional Security Algorithms For Use With TCP-AO</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-tcpm-tcp-ao-long-algs-00"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ronald.bonica@hpe.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <date year="2026" month="March" day="23"/>
    <area>Transport</area>
    <workgroup>TCPM Working Group</workgroup>
    <keyword>TCP-AO</keyword>
    <abstract>
      <?line 49?>

<t>RFC5926 specifies cryptographic algorithms for TCP-AO.
It explains how to use KDF_HMAC_SHA1 and KDF_AES_128_CMAC 
as KDFs. It also explains how to use HMAC-SHA-1-96 and 
AES-128-CMAC-96 as MAC algorithms.</t>
      <t>This document specifies several new KDFs and MAC
algorithms for TCP-AO. The KDFs and MAC algorithms specified in 
this document use stronger cryptography.</t>
    </abstract>
  </front>
  <middle>
    <?line 60?>

<section anchor="intro">
      <name>Introduction</name>
      <t>TCP end-points use the TCP Authentication Option (TCP-AO) <xref target="RFC5925"/> to authenticate
segments. TCP-AO relies upon:</t>
      <ul spacing="normal">
        <li>
          <t>A Master Key Tuple (MKT)</t>
        </li>
        <li>
          <t>A Key Derivation Function (KDF)</t>
        </li>
        <li>
          <t>A Message Authentication Code (MAC) algorithm</t>
        </li>
      </ul>
      <t>TCP-AO systems are configured with one or more MKTs for each connection that they protect.
When a connection is associated with multiple MKTs, TCP-AO can rotate among them during
the course of a TCP session. This facilitates dynamic key change and authentication algorithm
agility.</t>
      <t>An MKT includes:</t>
      <ul spacing="normal">
        <li>
          <t>Two MKT identifiers, one used for sending and one used for receiving</t>
        </li>
        <li>
          <t>A connection identifier (i.e., a TCP socket pair)</t>
        </li>
        <li>
          <t>A master key (i.e., a shared secret)</t>
        </li>
        <li>
          <t>A KDF</t>
        </li>
        <li>
          <t>A MAC algorithm</t>
        </li>
        <li>
          <t>A flag indicating whether TCP options other than TCP-AO are authenticated</t>
        </li>
      </ul>
      <t>The KDF generates a traffic key. Its inputs are:</t>
      <ul spacing="normal">
        <li>
          <t>A pseudorandom function (PRF) used to generate the traffic key</t>
        </li>
        <li>
          <t>The master key</t>
        </li>
        <li>
          <t>Context (i.e., A binary string containing information related to the connection)</t>
        </li>
        <li>
          <t>Output length (i.e., the length of the traffic key, in bits)</t>
        </li>
      </ul>
      <t>The MAC algorithm produces a MAC. It is defined by:</t>
      <ul spacing="normal">
        <li>
          <t>The KDF algorithm used to generate the traffic key</t>
        </li>
        <li>
          <t>The length of the traffic key, in bits</t>
        </li>
        <li>
          <t>The length of the MAC, in bits</t>
        </li>
      </ul>
      <t>The following are inputs to the MAC Algorithm:</t>
      <ul spacing="normal">
        <li>
          <t>traffic key</t>
        </li>
        <li>
          <t>message</t>
        </li>
      </ul>
      <t>TCP-AO systems include the MAC in the TCP-AO. They use the MAC
to authenticate segments.</t>
      <t><xref target="RFC5926"/> specifies cryptographic algorithms for TCP-AO.
It explains how to use KDF_HMAC_SHA1 and KDF_AES_128_CMAC 
as KDFs. It also explains how to use HMAC-SHA-1-96 and 
AES-128-CMAC-96 as MAC algorithms.</t>
      <t>This document specifies several new KDFs and MAC
algorithms for TCP-AO. The KDFs and MAC algorithms defined in 
this document use stronger cryptography.</t>
      <t>The MAC algorithms described this document yield MACs ranging from 256 to 512
bits (i.e., 32 to 64 bytes). Therefore, when they are encoded 
in a TCP-AO, the TCP-AO ranges from 36 to 68 bytes.</t>
      <t>The TCP-AO is encoded in the TCP Options field. The TCP Options
field is frequently required to carry multiple options, including
the TCP-AO.</t>
      <t>Currently, the TCP-Options field cannot exceed 40 bytes. 
However, TCP Extended Options 
<xref target="I-D.bonica-tcpm-extended-options"/> removes this limitation.
Therefore, the MAC algorithms described in this
document can only be used on systems that support
TCP Extended Options or some other mechanism that 
extends the TCP Options field.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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 BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="updates-to-rfc-5926">
      <name>Updates to RFC 5926</name>
      <section anchor="concrete-kdfs">
        <name>Concrete KDFs</name>
        <section anchor="kdfhmacsha256">
          <name>KDF_HMAC_SHA256</name>
          <t>For KDF_HMAC_SHA256:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA256 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA256(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  256 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha384">
          <name>KDF_HMAC_SHA384</name>
          <t>For KDF_HMAC_SHA384:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA384 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA384(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  384 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha512">
          <name>KDF_HMAC_SHA512</name>
          <t>For KDF_HMAC_SHA512:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA512 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA512(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  224 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-256">
          <name>KDF_HMAC_SHA3-256</name>
          <t>For KDF_HMAC_SHA3-256:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-256 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-256(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  256 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-384">
          <name>KDF_HMAC_SHA3-384</name>
          <t>For KDF_HMAC_SHA3-384:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-384 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-384(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  384 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-512">
          <name>KDF_HMAC_SHA3-512</name>
          <t>For KDF_HMAC_SHA3-512:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-512 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-512(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  512 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="notrunc">
        <name>MAC Algorithms</name>
        <section anchor="the-use-of-hmac-sha256">
          <name>The Use of HMAC-SHA256</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA256 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA256 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA256</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  256 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA256 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA256</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha384">
          <name>The Use of HMAC-SHA384</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA384 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA384 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA384</t>
            </li>
            <li>
              <t>Key_Length:  384 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  384 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA384 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA384</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha512">
          <name>The Use of HMAC-SHA512</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA512 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA512 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA512</t>
            </li>
            <li>
              <t>Key_Length:  512 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  512 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA512 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA512</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-256">
          <name>The Use of HMAC-SHA3-256</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-256 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-256 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-256.</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  256 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-256 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-256.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-384">
          <name>The Use of HMAC-SHA3-384</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-384 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-384 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-384.</t>
            </li>
            <li>
              <t>Key_Length:  384 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  384 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-384 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-384.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-512">
          <name>The Use of HMAC-SHA3-512</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-512 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-224 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-512.</t>
            </li>
            <li>
              <t>Key_Length:  512 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  512 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-512 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-512.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document inherits all of the security considerations of the
TCP-AO <xref target="RFC5925"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the "Cryptographic Algorithms for TCP-AO Registration" (https://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml#tcp-parameters-3).</t>
      <table anchor="iana">
        <name>IANA Actions</name>
        <thead>
          <tr>
            <th align="left">Algorithm</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">SHA256</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA384</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA512</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-256</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-384</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-512</td>
            <td align="left">This Document</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Lars Eggert, Gorry Fairhurst, C.M. Heard, Russ Housley, John Mattsson, Yoshifumi Nishida, Joe Touch, Michael Tuxen, and Magnus Westerlund for their review and comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2104">
        <front>
          <title>HMAC: Keyed-Hashing for Message Authentication</title>
          <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
          <author fullname="M. Bellare" initials="M." surname="Bellare"/>
          <author fullname="R. Canetti" initials="R." surname="Canetti"/>
          <date month="February" year="1997"/>
          <abstract>
            <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2104"/>
        <seriesInfo name="DOI" value="10.17487/RFC2104"/>
      </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="RFC4615">
        <front>
          <title>The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128) Algorithm for the Internet Key Exchange Protocol (IKE)</title>
          <author fullname="J. Song" initials="J." surname="Song"/>
          <author fullname="R. Poovendran" initials="R." surname="Poovendran"/>
          <author fullname="J. Lee" initials="J." surname="Lee"/>
          <author fullname="T. Iwata" initials="T." surname="Iwata"/>
          <date month="August" year="2006"/>
          <abstract>
            <t>Some implementations of IP Security (IPsec) may want to use a pseudo-random function (PRF) based on the Advanced Encryption Standard (AES). This memo describes such an algorithm, called AES-CMAC-PRF-128. It supports fixed and variable key sizes. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4615"/>
        <seriesInfo name="DOI" value="10.17487/RFC4615"/>
      </reference>
      <reference anchor="RFC5925">
        <front>
          <title>The TCP Authentication Option</title>
          <author fullname="J. Touch" initials="J." surname="Touch"/>
          <author fullname="A. Mankin" initials="A." surname="Mankin"/>
          <author fullname="R. Bonica" initials="R." surname="Bonica"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5925"/>
        <seriesInfo name="DOI" value="10.17487/RFC5925"/>
      </reference>
      <reference anchor="RFC5926">
        <front>
          <title>Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)</title>
          <author fullname="G. Lebovitz" initials="G." surname="Lebovitz"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The TCP Authentication Option (TCP-AO) relies on security algorithms to provide authentication between two end-points. There are many such algorithms available, and two TCP-AO systems cannot interoperate unless they are using the same algorithms. This document specifies the algorithms and attributes that can be used in TCP-AO's current manual keying mechanism and provides the interface for future message authentication codes (MACs). [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5926"/>
        <seriesInfo name="DOI" value="10.17487/RFC5926"/>
      </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="I-D.bonica-tcpm-extended-options">
        <front>
          <title>TCP Extended Options</title>
          <author fullname="Ron Bonica" initials="R." surname="Bonica">
            <organization>HPE</organization>
          </author>
          <author fullname="Tony Li" initials="T." surname="Li">
            <organization>HPE</organization>
          </author>
          <date day="22" month="March" year="2026"/>
          <abstract>
            <t>   The TCP header can accommodates 40 octets of TCP options.  However,
   modern applications may require more than 40 octets of TCP Options.
   Therefore, this document describes an experiment that extends the TCP
   Options field.  If this experiment is successful, it will demonstrate
   that the extension procedures described herein are implementable and
   deployable.  It will also demonstrate that they maintain backwards
   compatibility.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-bonica-tcpm-extended-options-03"/>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.180-4">
        <front>
          <title>Secure hash standard</title>
          <author>
            <organization/>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.180-4"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.197">
        <front>
          <title>Advanced Encryption Standard (AES)</title>
          <author>
            <organization/>
          </author>
          <date year="2001"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.197"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.202">
        <front>
          <title>SHA-3 standard :: permutation-based hash and extendable-output functions</title>
          <author>
            <organization/>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.202"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.SP.800-38B">
        <front>
          <title>Recommendation for block cipher modes of operation :: the CMAC mode for authentication</title>
          <author fullname="M J Dworkin" initials="M." surname="Dworkin">
            <organization/>
          </author>
          <date year="2016"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.sp.800-38b"/>
        <refcontent>National Institute of Standards and Technology</refcontent>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
