<?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.6.27 (Ruby 3.1.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pismenny-tls-dtls-plaintext-sequence-number-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.0 -->
  <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-01"/>
    <author fullname="Boris Pismenny">
      <organization>NVIDIA</organization>
      <address>
        <email>boris.pismenny@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="April" day="11"/>
    <area>Security</area>
    <workgroup>TLS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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>
    <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>
    </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>The Extension Name should be sequence_number_encryption_algorithms</li>
        <li>The TLS 1.3 value should be CH,HRR,SH</li>
        <li>The DTLS-Only value should be Y</li>
        <li>The Recommended value should be N</li>
        <li>The Reference should be this document</li>
      </ul>
    </section>
  </middle>
  <back>
    <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">
            <organization/>
          </author>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
            <organization/>
          </author>
          <author fullname="N. Modadugu" initials="N." surname="Modadugu">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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">
            <organization/>
          </author>
          <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="27" month="January" 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-11"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
