<?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.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pismenny-tls-dtls-plaintext-sequence-number-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Plaintext Sequence Numbers for DTLS1.3">Plaintext Sequence Numbers for Datagram Transport Security Layer 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-pismenny-tls-dtls-plaintext-sequence-number-02"/>
    <author fullname="Boris Pismenny">
      <organization>NVIDIA</organization>
      <address>
        <email>boris.pismenny@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="19"/>
    <area>Security</area>
    <workgroup>TLS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 28?>

<t>This document specifies a TLS 1.3 extension that enables DTLS 1.3 to negotiate
the use of plaintext sequence numbers instead of protected sequence numbers.
Plaintext sequence numbers are advantageous in closed networks where the
benefits of lower latency outweigh the risk of ossification and reduced
privacy.</t>
    </abstract>
  </front>
  <middle>
    <?line 36?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Datagram Transport Layer Security (DTLS) 1.3 <xref target="RFC9147"/> packet encryption
protects not only record data, but also the record header's sequence number.
The sequence number is encrypted by XORing it with a mask which is generated by encrypting
the leading 16 bytes of the record's ciphertext with a sequence number key.</t>
      <t>For high performance networking, sequence number encryption is a trade-off between
ossification and privacy on the one hand and latency and complexity for
hardware acceleration on the other hand. Sequence number encryption improves privacy by
hiding the real ordering of packets from on-path observers. Sequence number encryption also
prevents protocol ossification, when middleboxes manipulate packet delivery
based on the sequence number.  Sequence number encryption however adds latency to packet processing on
both sender and receiver. Sequence number encryption also increases the complexity and cost
of NIC encryption accelerators, which are crucial for enabling encryption in
high performance computing systems that seek to maximize performance and lowest
penalty possible for encryption.</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 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 anchor="sequence-number-encryption-extension">
      <name>Sequence Number Encryption Extension</name>
      <artwork><![CDATA[
enum {
  default_cipher (0),
  plaintext (1),
  (65536)
} SeqNumEncAlgs;

struct {
  select (Handshake.msg_type) {
    case CH:
      SeqNumEncAlgs supported_algs<1..255>;

    case SH:
      SeqNumEncAlgs selected_alg;
  };
} SupportedSequenceNumberEncryptionAlgorithms;
]]></artwork>
      <t>The "sequence_number_encryption_algorithms" extension is used by the client
to specify the record sequence number encryption algorithms it supports
and by the server to select the algorithm it prefers. The ClientHello message
lists algorithms by the order of their preference, starting from the most
preferred algorithm.</t>
      <t>If this extension is not present, in either ClientHello or
EncryptedExtensions, then both parties <bcp14>MUST</bcp14> fallback to the
default record sequence number encryption algorithm.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document allows endpoints to disable the record sequence number encryption
algorithm, which retracts the on-path tracking anti-ossification protection
established in <xref target="RFC9147"/> record sequence number encryption. It is therefore
<bcp14>RECOMMENDED</bcp14> that users limit the deployment of this extension to closed
environments, such as data centers, where the risk of on-path observers is
negligible.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a new value from the TLS ExtensionType values registry:</t>
      <ul spacing="normal">
        <li>
          <t>The Extension Name should be sequence_number_encryption_algorithms</t>
        </li>
        <li>
          <t>The TLS 1.3 value should be CH,HRR,SH</t>
        </li>
        <li>
          <t>The DTLS-Only value should be Y</t>
        </li>
        <li>
          <t>The Recommended value should be N</t>
        </li>
        <li>
          <t>The Reference should be this document</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC9147">
        <front>
          <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
          <date month="April" year="2022"/>
          <abstract>
            <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
            <t>This document obsoletes RFC 6347.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9147"/>
        <seriesInfo name="DOI" value="10.17487/RFC9147"/>
      </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="I-D.draft-ietf-tls-tlsflags">
        <front>
          <title>A Flags Extension for TLS 1.3</title>
          <author fullname="Yoav Nir" initials="Y." surname="Nir">
            <organization>Dell Technologies</organization>
          </author>
          <date day="23" month="July" year="2023"/>
          <abstract>
            <t>   A number of extensions are proposed in the TLS working group that
   carry no interesting information except the 1-bit indication that a
   certain optional feature is supported.  Such extensions take 4 octets
   each.  This document defines a flags extension that can provide such
   indications at an average marginal cost of 1 bit each.  More
   precisely, it provides as many flag extensions as needed at 4 + the
   order of the last set bit divided by 8.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-tlsflags-12"/>
      </reference>
    </references>
    <?line 131?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
