<?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.24 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pismenny-tls-dtls-plaintext-sequence-number-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.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-00"/>
    <author fullname="Boris Pismenny">
      <organization>NVIDIA</organization>
      <address>
        <email>boris.pismenny@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="23"/>
    <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>
      <ul empty="true">
        <li>
          <t>OPEN: This extension might fit nicely with the TLS flags extension
<xref target="I-D.draft-ietf-tls-tlsflags"/>, but TLS flags doesn't seem to apply to
DTLS.</t>
        </li>
      </ul>
      <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>
      <ul empty="true">
        <li>
          <t>OPEN: Do we want an encrypted extension for the server's response?
It is possible to use an encrypted extension, by using the default
record sequence encryption algorithm prior to epoch 3 (epoch &lt; 3), and
enabling the selected algorithm only after epoch 3 (epoch &gt;= 3).</t>
        </li>
      </ul>
    </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>
