<?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.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lwig-security-protocol-comparison-06" category="info" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title>Comparison of CoAP Security Protocols</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lwig-security-protocol-comparison-06"/>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
      <organization>INRIA</organization>
      <address>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <date year="2022" month="December" day="25"/>
    <workgroup>LWIG Working Group</workgroup>
    <abstract>
      <t>This document analyzes and compares the sizes of key exchange flights and the per-packet message size overheads when using different security protocols to secure CoAP. Small message sizes are very important for reducing energy consumption, latency, and time to completion in constrained radio network such as Low-Power Wide Area Networks (LPWANs). The analyzed security protocols are DTLS 1.2, DTLS 1.3, TLS 1.2, TLS 1.3, cTLS, EDHOC, OSCORE, and Group OSCORE. The DTLS and TLS record layers are analyzed with and without 6LoWPAN-GHC compression. DTLS is analyzed with and without Connection ID.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Small message sizes are very important for reducing energy consumption, latency, and time to completion in constrained radio network such as Low-Power Personal Area Networks (LPPANs) and Low-Power Wide Area Networks (LPWANs). Constrained radio networks are not only characterized by very small frame sizes on the order of tens of bytes transmitted a few times per day at ultra-low speeds, but also high latency, and severe duty cycles constraints. Some constrained radio networks are also multi-hop where the already small frame sizes are additionally reduced for each additional hop. Too large payload sizes can easily lead to unacceptable completion times due to fragmentation into a large number of frames and long waiting times between frames can be sent (or resent in the case of transmission errors). In constrained radio networks, the processing energy costs are typically almost negligible compared to the energy costs for radio and the energy costs for sensor measurement. Keeping the number of bytes or frames low is also essential for low latency and time to completion as well as efficient use of spectrum to support a large number of devices. For an overview of LPWANs and their limitations, see <xref target="RFC8376"/>.</t>
      <t>To reduce overhead, processing, and energy consumption in constrained radio networks, IETF has created several working groups and technologies for constrained networks, e.g., (here technologies in parenthesis when the name is different from the working group): 6lo, 6LoWPAN, 6TiSCH, ACE, CBOR, CoRE (CoAP, OSCORE), COSE, LAKE (EDHOC), LPWAN (SCHC), ROLL (RPL), and TLS (cTLS). Compact formats and protocol have also been suggested as a way to decrease the energy consumption of Internet Applications and Systems in general <xref target="E-impact"/>.</t>
      <t>This document analyzes and compares the sizes of key exchange flights and the per-packet message size overheads when using different security protocols to secure CoAP over UPD <xref target="RFC7252"/> and TCP <xref target="RFC8323"/>. The analyzed security protocols are DTLS 1.2 <xref target="RFC6347"/>, DTLS 1.3 <xref target="RFC9147"/>, TLS 1.2 <xref target="RFC5246"/>, TLS 1.3 <xref target="RFC8446"/>, cTLS <xref target="I-D.ietf-tls-ctls"/>, EDHOC <xref target="I-D.ietf-lake-edhoc"/> <xref target="I-D.ietf-core-oscore-edhoc"/>, OSCORE <xref target="RFC8613"/>, and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      <t>The DTLS and TLS record layers are analyzed with and without 6LoWPAN-GHC compression. DTLS is analyzed with and without Connection ID <xref target="RFC9146"/>. Readers are expected to be familiar with some of the terms described in RFC 7925 <xref target="RFC7925"/>, such as ICV. <xref target="handshake"/> compares the overhead of key exchange, while <xref target="record"/> covers the overhead for protection of application data.</t>
      <t>Readers of this document also might be interested in the following documents: <xref target="Illustrated-TLS12"/>, <xref target="Illustrated-TLS13"/>, <xref target="Illustrated-DTLS13"/>, and <xref target="I-D.ietf-lake-traces"/> gives an explanation of every byte in example TLS 1.2, TLS 1.3, DTLS 1.3, and EDHOC instances. <xref target="RFC9191"/> looks at potential tools available for overcoming the deployment challenges induced by large certificates and long certificate chains and discusses solutions available to overcome these challenges. <xref target="I-D.ietf-cose-cbor-encoded-cert"/> gives examples of IoT and Web certificates as well as examples on how effective C509 an TLS certificate compression <xref target="RFC8879"/> is at compressing example certificate and certificate chains.</t>
    </section>
    <section anchor="handshake">
      <name>Overhead of Key Exchange Protocols</name>
      <t>This section analyzes and compares the sizes of key exchange flights for different protocols.</t>
      <t>To enable a fair comparison between protocols, the following assumptions are made:</t>
      <ul spacing="normal">
        <li>All the overhead calculations in this section use AES-CCM with a tag length of 8 bytes (e.g.,  AES_128_CCM_8 or AES-CCM-16-64-128).</li>
        <li>A minimum number of algorithms and cipher suites is offered. The algorithm used/offered are Curve25519 or P-256, ECDSA with P-256, AES-CCM_8, and SHA-256.</li>
        <li>The length of key identifiers are 1 byte.</li>
        <li>The length of connection identifiers are 1 byte.</li>
        <li>DTLS handshake message fragmentation is not considered.</li>
        <li>Several DTLS handshake messages are sent in a single record.</li>
        <li>Only mandatory (D)TLS extensions are included.</li>
      </ul>
      <t><xref target="summ-handshake"/> gives a short summary of the message overhead based on different parameters and some assumptions. The following sections detail the assumptions and the calculations.</t>
      <section anchor="summ-handshake">
        <name>Summary</name>
        <t>The DTLS overhead is dependent on the parameter Connection ID. The following overheads apply for all Connection IDs of the same length, when Connection ID is used.</t>
        <t>The EDHOC overhead is dependent on the key identifiers included. The following overheads apply for Sender IDs of the same length.</t>
        <t>All the overhead are dependent on the tag length. The following overheads apply for tags of the same length.</t>
        <t><xref target="fig-compare1"/> compares the message sizes of DTLS 1.3 <xref target="RFC9147"/> and EDHOC <xref target="I-D.ietf-lake-edhoc"/> handshakes with connection ID. EDHOC is typically sent over CoAP which would add 4 bytes to flight #1 and #2 and 5 bytes to flight #3 (4 byte CoAP header and 1 byte Connection ID).</t>
        <figure anchor="fig-compare1">
          <name>Comparison of message sizes in bytes with Connection ID</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="560" viewBox="0 0 560 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 552,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 552,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,176 L 552,176" fill="none" stroke="black"/>
                <path d="M 8,254 L 552,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 552,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Flight</text>
                  <text x="348" y="52">#1</text>
                  <text x="412" y="52">#2</text>
                  <text x="476" y="52">#3</text>
                  <text x="528" y="52">Total</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="88" y="84">-</text>
                  <text x="120" y="84">RPKs,</text>
                  <text x="168" y="84">ECDHE</text>
                  <text x="344" y="84">152</text>
                  <text x="408" y="84">414</text>
                  <text x="472" y="84">248</text>
                  <text x="536" y="84">814</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="88" y="100">-</text>
                  <text x="140" y="100">Compressed</text>
                  <text x="208" y="100">RPKs,</text>
                  <text x="256" y="100">ECDHE</text>
                  <text x="344" y="100">152</text>
                  <text x="408" y="100">382</text>
                  <text x="472" y="100">216</text>
                  <text x="536" y="100">750</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.3</text>
                  <text x="88" y="116">-</text>
                  <text x="124" y="116">Cached</text>
                  <text x="172" y="116">RPK,</text>
                  <text x="216" y="116">ECDHE</text>
                  <text x="344" y="116">191</text>
                  <text x="408" y="116">362</text>
                  <text x="472" y="116">248</text>
                  <text x="536" y="116">801</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.3</text>
                  <text x="88" y="132">-</text>
                  <text x="124" y="132">Cached</text>
                  <text x="180" y="132">X.509,</text>
                  <text x="228" y="132">RPK,</text>
                  <text x="272" y="132">ECDHE</text>
                  <text x="344" y="132">185</text>
                  <text x="408" y="132">356</text>
                  <text x="472" y="132">248</text>
                  <text x="536" y="132">789</text>
                  <text x="28" y="148">DTLS</text>
                  <text x="64" y="148">1.3</text>
                  <text x="88" y="148">-</text>
                  <text x="116" y="148">PSK,</text>
                  <text x="160" y="148">ECDHE</text>
                  <text x="344" y="148">186</text>
                  <text x="408" y="148">193</text>
                  <text x="476" y="148">56</text>
                  <text x="536" y="148">435</text>
                  <text x="28" y="164">DTLS</text>
                  <text x="64" y="164">1.3</text>
                  <text x="88" y="164">-</text>
                  <text x="112" y="164">PSK</text>
                  <text x="344" y="164">136</text>
                  <text x="408" y="164">153</text>
                  <text x="476" y="164">56</text>
                  <text x="536" y="164">345</text>
                  <text x="32" y="196">EDHOC</text>
                  <text x="64" y="196">-</text>
                  <text x="100" y="196">X.509,</text>
                  <text x="172" y="196">Signature,</text>
                  <text x="236" y="196">x5t,</text>
                  <text x="280" y="196">ECDHE</text>
                  <text x="348" y="196">37</text>
                  <text x="408" y="196">115</text>
                  <text x="476" y="196">90</text>
                  <text x="536" y="196">242</text>
                  <text x="32" y="212">EDHOC</text>
                  <text x="64" y="212">-</text>
                  <text x="100" y="212">X.509,</text>
                  <text x="172" y="212">Signature,</text>
                  <text x="236" y="212">kid,</text>
                  <text x="280" y="212">ECDHE</text>
                  <text x="348" y="212">37</text>
                  <text x="408" y="212">102</text>
                  <text x="476" y="212">77</text>
                  <text x="536" y="212">216</text>
                  <text x="32" y="228">EDHOC</text>
                  <text x="64" y="228">-</text>
                  <text x="92" y="228">RPK,</text>
                  <text x="140" y="228">Static</text>
                  <text x="184" y="228">DH,</text>
                  <text x="220" y="228">x5t,</text>
                  <text x="264" y="228">ECDHE</text>
                  <text x="348" y="228">37</text>
                  <text x="412" y="228">58</text>
                  <text x="476" y="228">33</text>
                  <text x="536" y="228">128</text>
                  <text x="32" y="244">EDHOC</text>
                  <text x="64" y="244">-</text>
                  <text x="92" y="244">RPK,</text>
                  <text x="140" y="244">Static</text>
                  <text x="184" y="244">DH,</text>
                  <text x="220" y="244">kid,</text>
                  <text x="264" y="244">ECDHE</text>
                  <text x="348" y="244">37</text>
                  <text x="412" y="244">45</text>
                  <text x="476" y="244">19</text>
                  <text x="536" y="244">101</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=====================================================================
 Flight                                   #1      #2      #3   Total
---------------------------------------------------------------------
 DTLS 1.3 - RPKs, ECDHE                  152     414     248     814
 DTLS 1.3 - Compressed RPKs, ECDHE       152     382     216     750
 DTLS 1.3 - Cached RPK, ECDHE            191     362     248     801
 DTLS 1.3 - Cached X.509, RPK, ECDHE     185     356     248     789
 DTLS 1.3 - PSK, ECDHE                   186     193      56     435
 DTLS 1.3 - PSK                          136     153      56     345
---------------------------------------------------------------------
 EDHOC - X.509, Signature, x5t, ECDHE     37     115      90     242
 EDHOC - X.509, Signature, kid, ECDHE     37     102      77     216
 EDHOC - RPK, Static DH, x5t, ECDHE       37      58      33     128
 EDHOC - RPK, Static DH, kid, ECDHE       37      45      19     101
=====================================================================
]]></artwork>
          </artset>
        </figure>
        <t><xref target="fig-compare2"/> compares of message sizes of DTLS 1.3 <xref target="RFC9147"/> and TLS 1.3 <xref target="RFC8446"/> handshakes without connection ID.</t>
        <figure anchor="fig-compare2">
          <name>Comparison of message sizes in bytes without Connection ID</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="560" viewBox="0 0 560 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 552,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 552,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,128 L 552,128" fill="none" stroke="black"/>
                <path d="M 8,192 L 552,192" fill="none" stroke="black"/>
                <path d="M 8,222 L 552,222" fill="none" stroke="black"/>
                <path d="M 8,226 L 552,226" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Flight</text>
                  <text x="348" y="52">#1</text>
                  <text x="412" y="52">#2</text>
                  <text x="476" y="52">#3</text>
                  <text x="528" y="52">Total</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="88" y="84">-</text>
                  <text x="116" y="84">RPK,</text>
                  <text x="160" y="84">ECDHE</text>
                  <text x="344" y="84">146</text>
                  <text x="408" y="84">407</text>
                  <text x="472" y="84">247</text>
                  <text x="536" y="84">800</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="88" y="100">-</text>
                  <text x="116" y="100">PSK,</text>
                  <text x="160" y="100">ECDHE</text>
                  <text x="344" y="100">180</text>
                  <text x="408" y="100">186</text>
                  <text x="476" y="100">55</text>
                  <text x="536" y="100">421</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.3</text>
                  <text x="88" y="116">-</text>
                  <text x="112" y="116">PSK</text>
                  <text x="344" y="116">130</text>
                  <text x="408" y="116">146</text>
                  <text x="476" y="116">55</text>
                  <text x="536" y="116">331</text>
                  <text x="24" y="148">TLS</text>
                  <text x="56" y="148">1.3</text>
                  <text x="88" y="148">-</text>
                  <text x="116" y="148">RPK,</text>
                  <text x="160" y="148">ECDHE</text>
                  <text x="344" y="148">129</text>
                  <text x="408" y="148">354</text>
                  <text x="472" y="148">226</text>
                  <text x="536" y="148">709</text>
                  <text x="24" y="164">TLS</text>
                  <text x="56" y="164">1.3</text>
                  <text x="88" y="164">-</text>
                  <text x="116" y="164">PSK,</text>
                  <text x="160" y="164">ECDHE</text>
                  <text x="344" y="164">163</text>
                  <text x="408" y="164">157</text>
                  <text x="476" y="164">50</text>
                  <text x="536" y="164">370</text>
                  <text x="24" y="180">TLS</text>
                  <text x="56" y="180">1.3</text>
                  <text x="88" y="180">-</text>
                  <text x="112" y="180">PSK</text>
                  <text x="344" y="180">113</text>
                  <text x="408" y="180">117</text>
                  <text x="476" y="180">50</text>
                  <text x="536" y="180">280</text>
                  <text x="28" y="212">cTLS</text>
                  <text x="56" y="212">-</text>
                  <text x="92" y="212">X.509s</text>
                  <text x="132" y="212">by</text>
                  <text x="188" y="212">reference,</text>
                  <text x="256" y="212">ECDHE</text>
                  <text x="348" y="212">71</text>
                  <text x="408" y="212">143</text>
                  <text x="476" y="212">78</text>
                  <text x="536" y="212">292</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=====================================================================
 Flight                                   #1      #2      #3   Total
---------------------------------------------------------------------
 DTLS 1.3 - RPK, ECDHE                   146     407     247     800
 DTLS 1.3 - PSK, ECDHE                   180     186      55     421
 DTLS 1.3 - PSK                          130     146      55     331
---------------------------------------------------------------------
 TLS 1.3  - RPK, ECDHE                   129     354     226     709
 TLS 1.3  - PSK, ECDHE                   163     157      50     370
 TLS 1.3  - PSK                          113     117      50     280
---------------------------------------------------------------------
 cTLS - X.509s by reference, ECDHE        71     143      78     292
=====================================================================
]]></artwork>
          </artset>
        </figure>
        <t>The cTLS example in Figure 2. is taken from <xref target="I-D.ietf-tls-ctls"/>. The details of the other message size calculations are given in the following sections.</t>
      </section>
      <section anchor="dtls-13">
        <name>DTLS 1.3</name>
        <t>This section gives an estimate of the message sizes of DTLS 1.3 with different authentication methods. Note that the examples in this section are not test vectors, the cryptographic parts are just replaced with byte strings of the same length, while other fixed length fields are replace with arbitrary strings or omitted, in which case their length is indicated. Values that are not arbitrary are given in hexadecimal.</t>
        <section anchor="size-dtls13rpk">
          <name>Message Sizes RPK + ECDHE</name>
          <t>In this section, a Connection ID of 1 byte is used.</t>
          <section anchor="dtls13f1rpk">
            <name>Flight #1</name>
            <artwork><![CDATA[
Record Header - DTLSPlaintext (13 bytes):
16 fe fd EE EE SS SS SS SS SS SS LL LL

  Handshake Header - Client Hello (12 bytes):
  01 LL LL LL SS SS 00 00 00 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Client Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Legacy Cookie (1 bytes):
    00

    Cipher Suites (TLS_AES_128_CCM_8_SHA256) (4 bytes):
    00 02 13 05

    Compression Methods (null) (2 bytes):
    01 00

    Extensions Length (2 bytes):
    LL LL

      Extension - Supported Groups (x25519) (8 bytes):
      00 0a 00 04 00 02 00 1d

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 08 07

      Extension - Key Share (42 bytes):
      00 33 00 26 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (7 bytes):
      00 2b 00 03 02 03 04

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

      Extension - Connection Identifier (43) (6 bytes):
      XX XX 00 02 01 42

13 + 12 + 2 + 32 + 1 + 1 + 4 + 2 + 2 + 8 + 8 + 42 + 7 + 6 + 6 + 6
= 152 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #1 gives 152 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f2rpk">
            <name>Flight #2</name>
            <artwork><![CDATA[
Record Header - DTLSPlaintext (13 bytes):
16 fe fd EE EE SS SS SS SS SS SS LL LL

  Handshake Header - Server Hello (12 bytes):
  02 LL LL LL SS SS 00 00 00 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Server Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suite (TLS_AES_128_CCM_8_SHA256) (2 bytes):
    13 05

    Compression Method (null) (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Key Share (40 bytes):
      00 33 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (6 bytes):
      00 2b 00 02 03 04

      Extension - Connection Identifier (43) (6 bytes):
      XX XX 00 02 01 43

Record Header - DTLSCiphertext (3 bytes):
HH 42 SS

  Handshake Header - Encrypted Extensions (12 bytes):
  08 LL LL LL SS SS 00 00 00 LL LL LL

    Extensions Length (2 bytes):
    LL LL

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

  Handshake Header - Certificate Request (12 bytes):
  0d LL LL LL SS SS 00 00 00 LL LL LL

    Request Context (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 08 07

  Handshake Header - Certificate (12 bytes):
  0b LL LL LL SS SS 00 00 00 LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (91 bytes): \\ 91 byte RPK see Section 2.2.7.
    ....

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (12 bytes):
  0f LL LL LL SS SS 00 00 00 LL LL LL

    Signature  (68 bytes):
    ZZ ZZ 00 40 ....

  Handshake Header - Finished (12 bytes):
  14 LL LL LL SS SS 00 00 00 LL LL LL

    Verify Data (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes):
e0 8b 0e 45 5a 35 0a e5

13 + 104 + 3 + 26 + 23 + 112 + 80 + 44 + 1 + 8 = 414 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #2 gives 414 bytes of overhead.
With a point compressed RPK the overhead is 414 - 32 = 382 bytes, see <xref target="rpkformat"/>.</t>
          </section>
          <section anchor="dtls13f3rpk">
            <name>Flight #3</name>
            <artwork><![CDATA[
Record Header (3 bytes): // DTLSCiphertext
ZZ 43 SS

  Handshake Header - Certificate (12 bytes):
  0b LL LL LL SS SS XX XX XX LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (91 bytes): \\ 91 byte RPK see Section 2.2.7.
    ....

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (12 bytes):
  0f LL LL LL SS SS 00 00 00 LL LL LL

    Signature  (68 bytes):
    04 03 LL LL //ecdsa_secp256r1_sha256
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 00 01 02 03 04 05 06 07
    08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b
    1c 1d 1e 1f

  Handshake Header - Finished (12 bytes):
  14 LL LL LL SS SS 00 00 00 LL LL LL

    Verify Data (32 bytes) // SHA-256:
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

3 + 112 + 80 + 44 + 1 + 8 = 248 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #3 gives 248 bytes of overhead.
With a point compressed RPK the overhead is 248 - 32 = 216 bytes, see <xref target="rpkformat"/>.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-ecdhe">
          <name>Message Sizes PSK + ECDHE</name>
          <section anchor="dtls13f1pskecdhe">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="dtls13f1rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - PSK Key Exchange Modes (6 bytes):
  00 2d 00 02 01 01

+ Extension - Pre Shared Key (48 bytes):
  00 29 00 2F
  00 0a 00 01 ID 00 00 00 00
  00 21 20 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10
  11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Signature Algorithms (ecdsa_secp256r1_sha256) (8 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
152 + 6 + 48 - 8 - 6 - 6 = 186 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #1 gives 186 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f2pskecdhe">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="dtls13f2rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - Pre Shared Key (6 bytes)
  00 29 00 02 00 00
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (112 bytes)

- Handshake Message CertificateVerify (80 bytes)

- Handshake Message CertificateRequest (23 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
414 + 6 - 112 - 80 - 23 - 6 - 6 = 193 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #2 gives 193 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f3pskecdhe">
            <name>Flight #3</name>
            <t>The differences in overhead compared to <xref target="dtls13f3rpk"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (112 bytes)

- Handshake Message Certificate Verify (80 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
248 - 112 - 80 = 56 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #3 gives 56 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk">
          <name>Message Sizes PSK</name>
          <section anchor="dtls13f1psk">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="dtls13f1pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Supported Groups (x25519) (8 bytes)

- Extension - Key Share (42 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
186 - 8 - 42 = 136 bytes
]]></artwork>
            <t>DTLS 1.3 PSK flight #1 gives 136 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f2psk">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="dtls13f2pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Key Share (40 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
193 - 40 = 153 bytes
]]></artwork>
            <t>DTLS 1.3 PSK flight #2 gives 153 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f3psk">
            <name>Flight #3</name>
            <t>There are no differences in overhead compared to <xref target="dtls13f3pskecdhe"/>.</t>
            <t>DTLS 1.3 PSK flight #3 gives 56 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="cached-information">
          <name>Cached Information</name>
          <t>In this section, we consider the effect of <xref target="RFC7924"/> on the message size overhead.</t>
          <t>Cached information can be used to use a cached server cerificate from a previous connection and move bytes from flight #2 to flight #1. The cached certificate can be a RPK or X.509.</t>
          <t>The differences compared to <xref target="size-dtls13rpk"/> are the following.</t>
          <section anchor="flight-1">
            <name>Flight #1</name>
            <t>For the flight #1, the following is added:</t>
            <artwork><![CDATA[
+ Extension - Client Cashed Information (39 bytes):
  00 19 LL LL LL LL
  01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
  12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
152 + 39 = 191 bytes
]]></artwork>
            <t>In the case the cached certificate is X.509 the following is removed:</t>
            <artwork><![CDATA[
- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
191 - 6 = 185 bytes
]]></artwork>
          </section>
          <section anchor="flight-2">
            <name>Flight #2</name>
            <t>For the flight #2, the following is added:</t>
            <artwork><![CDATA[
+ Extension - Server Cashed Information (7 bytes):
  00 19 LL LL LL LL 01
]]></artwork>
            <t>And the following is reduced:</t>
            <artwork><![CDATA[
- Server Certificate (91 bytes -> 32 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
414 + 7 - 59 = 362 bytes
]]></artwork>
            <t>In the case the cached certificate is X.509 the following is removed:</t>
            <artwork><![CDATA[
- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
362 - 6 = 356 bytes
]]></artwork>
          </section>
        </section>
        <section anchor="resumption">
          <name>Resumption</name>
          <t>To enable resumption, a 4th flight with a the handshake message New Session Ticket is added to the DTLS handshake.</t>
          <artwork><![CDATA[
Record Header - DTLSCiphertext (3 bytes):
HH 42 SS

  Handshake Header - New Session Ticket (12 bytes):
  04 LL LL LL SS SS 00 00 00 LL LL LL

    Ticket Lifetime (4 bytes):
    00 01 02 03

    Ticket Age Add (4 bytes):
    00 01 02 03

    Ticket Nonce (2 bytes):
    01 00

    Ticket (6 bytes):
    00 04 ID ID ID ID

    Extensions (2 bytes):
    00 00

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

3 + 12 + 4 + 4 + 2 + 6 + 2 + 8 = 41 bytes
]]></artwork>
          <t>Enabling resumption adds 41 bytes to the initial DTLS handshake. The resumption handshake is an ordinaty PSK handshake with our without ECDHE.</t>
        </section>
        <section anchor="dtls-without-connection-id">
          <name>DTLS Without Connection ID</name>
          <t>Without a Connection ID the DTLS 1.3 flight sizes changes as follows.</t>
          <artwork><![CDATA[
DTLS 1.3 flight #1:   -6 bytes
DTLS 1.3 flight #2:   -7 bytes
DTLS 1.3 flight #3:   -1 byte
]]></artwork>
        </section>
        <section anchor="rpkformat">
          <name>Raw Public Keys</name>
          <t>This sections illustrates the format of P-256 (secp256r1) SubjectPublicKeyInfo <xref target="RFC5480"/> with and without point compression. Point compression in SubjectPublicKeyInfo is standardized in <xref target="RFC5480"/> and is therefore theoretically possible to use in PRKs and X.509 certificates used in (D)TLS but does not seems to be supported by (D)TLS implementations.</t>
          <section anchor="subjectpublickeyinfo-without-point-compression">
            <name>SubjectPublicKeyInfo Without Point Compression</name>
            <artwork><![CDATA[
0x30 // Sequence
0x59 // Size 89

0x30 // Sequence
0x13 // Size 19
0x06 0x07 0x2A 0x86 0x48 0xCE 0x3D 0x02 0x01
     // OID 1.2.840.10045.2.1 (ecPublicKey)
0x06 0x08 0x2A 0x86 0x48 0xCE 0x3D 0x03 0x01 0x07
     // OID 1.2.840.10045.3.1.7 (secp256r1)

0x03 // Bit string
0x42 // Size 66
0x00 // Unused bits 0
0x04 // Uncompressed
...... 64 bytes X and Y

Total of 91 bytes
]]></artwork>
          </section>
          <section anchor="subjectpublickeyinfo-with-point-compression">
            <name>SubjectPublicKeyInfo With Point Compression</name>
            <artwork><![CDATA[
0x30 // Sequence
0x39 // Size 57

0x30 // Sequence
0x13 // Size 19
0x06 0x07 0x2A 0x86 0x48 0xCE 0x3D 0x02 0x01
     // OID 1.2.840.10045.2.1 (ecPublicKey)
0x06 0x08 0x2A 0x86 0x48 0xCE 0x3D 0x03 0x01 0x07
     // OID 1.2.840.10045.3.1.7 (secp256r1)

0x03 // Bit string
0x22 // Size 34
0x00 // Unused bits 0
0x03 // Compressed
...... 32 bytes X

Total of 59 bytes
]]></artwork>
          </section>
        </section>
      </section>
      <section anchor="tls-13">
        <name>TLS 1.3</name>
        <t>In this section, the message sizes are calculated for TLS 1.3. The major changes compared to DTLS 1.3 are a different record header, the handshake headers is smaller, and that Connection ID is not supported.  Recently, additional work has taken shape with the goal to further reduce overhead for TLS 1.3 (see <xref target="I-D.ietf-tls-ctls"/>).</t>
        <section anchor="message-sizes-rpk-ecdhe">
          <name>Message Sizes RPK + ECDHE</name>
          <section anchor="tls13f1rpk">
            <name>Flight #1</name>
            <artwork><![CDATA[
Record Header - TLSPlaintext (5 bytes):
16 03 03 LL LL

  Handshake Header - Client Hello (4 bytes):
  01 LL LL LL

    Legacy Version (2 bytes):
    03 03

    Client Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suites (TLS_AES_128_CCM_8_SHA256) (4 bytes):
    00 02 13 05

    Compression Methods (null) (2 bytes):
    01 00

    Extensions Length (2 bytes):
    LL LL

      Extension - Supported Groups (x25519) (8 bytes):
      00 0a 00 04 00 02 00 1d

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 08 07

      Extension - Key Share (42 bytes):
      00 33 00 26 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (7 bytes):
      00 2b 00 03 02 03 04

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

5 + 4 + 2 + 32 + 1 + 4 + 2 + 2 + 8 + 8 + 42 + 7 + 6 + 6 = 129 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #1 gives 129 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2rpk">
            <name>Flight #2</name>
            <artwork><![CDATA[
Record Header - TLSPlaintext (5 bytes):
16 03 03 LL LL

  Handshake Header - Server Hello (4 bytes):
  02 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Server Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suite (TLS_AES_128_CCM_8_SHA256) (2 bytes):
    13 05

    Compression Method (null) (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Key Share (40 bytes):
      00 33 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (6 bytes):
      00 2b 00 02 03 04

Record Header - TLSCiphertext (5 bytes):
17 03 03 LL LL

  Handshake Header - Encrypted Extensions (4 bytes):
  08 LL LL LL

    Extensions Length (2 bytes):
    LL LL

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

  Handshake Header - Certificate Request (4 bytes):
  0d LL LL LL

    Request Context (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 08 07

  Handshake Header - Certificate (4 bytes):
  0b LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (91 bytes): \\ 91 byte RPK see Section 2.2.7.
    ....

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (4 bytes):
  0f LL LL LL

    Signature  (68 bytes):
    ZZ ZZ 00 40 ....

  Handshake Header - Finished (4 bytes):
  14 LL LL LL

    Verify Data (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes):
e0 8b 0e 45 5a 35 0a e5

5 + 90 + 5 + 18 + 15 + 104 + 72 + 36 + 1 + 8 = 354 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #2 gives 354 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3rpk">
            <name>Flight #3</name>
            <!--TODO: Don't know why this is not formatting correctly in txt, tried to separate in several code sections, it still doesn't work. -->

<artwork><![CDATA[
Record Header - TLSCiphertext (5 bytes):
17 03 03 LL LL

  Handshake Header - Certificate (4 bytes):
  0b LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL


    Certificate Length (3 bytes):
    LL LL LL

    Certificate (91 bytes): \\ 91 byte RPK see Section 2.2.7.
    ....

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (4 bytes):
  0f LL LL LL

    Signature  (68 bytes):
    04 03 LL LL //ecdsa_secp256r1_sha256
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 00 01 02 03 04 05 06 07
    08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b
    1c 1d 1e 1f

  Handshake Header - Finished (4 bytes):
  14 LL LL LL

    Verify Data (32 bytes) // SHA-256:
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte)
  16

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

5 + 104 + 72 + 36 + 1 + 8 = 226 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #3 gives 226 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-ecdhe-1">
          <name>Message Sizes PSK + ECDHE</name>
          <section anchor="tls13f1pskecdhe">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="tls13f3rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - PSK Key Exchange Modes (6 bytes):
  00 2d 00 02 01 01

+ Extension - Pre Shared Key (48 bytes):
  00 29 00 2F
  00 0a 00 01 ID 00 00 00 00
  00 21 20 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10
  11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Signature Algorithms (ecdsa_secp256r1_sha256) (8 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
129 + 6 + 48 - 8 - 6 - 6 = 163 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #1 gives 163 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2pskecdhe">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="tls13f2rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - Pre Shared Key (6 bytes)
  00 29 00 02 00 00
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (104 bytes)

- Handshake Message CertificateVerify (72 bytes)

- Handshake Message CertificateRequest (15 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
354 - 104 - 72 - 15 - 6 - 6  + 6 = 157 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #2 gives 157 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3pskecdhe">
            <name>Flight #3</name>
            <t>The differences in overhead compared to <xref target="tls13f3rpk"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (104 bytes)

- Handshake Message Certificate Verify (72 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
226 - 104 - 72 = 50 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #3 gives 50 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-1">
          <name>Message Sizes PSK</name>
          <section anchor="tls13f1psk">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="tls13f1pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Supported Groups (x25519) (8 bytes)

- Extension - Key Share (42 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
163 - 8 - 42 = 113 bytes
]]></artwork>
            <t>TLS 1.3 PSK flight #1 gives 113 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2psk">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="tls13f2pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Key Share (40 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
157 - 40 = 117 bytes
]]></artwork>
            <t>TLS 1.3 PSK flight #2 gives 117 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3psk">
            <name>Flight #3</name>
            <t>There are no differences in overhead compared to <xref target="tls13f3pskecdhe"/>.</t>
            <t>TLS 1.3 PSK flight #3 gives 50 bytes of overhead.</t>
          </section>
        </section>
      </section>
      <section anchor="tls-12-and-dtls-12">
        <name>TLS 1.2 and DTLS 1.2</name>
        <t>The TLS 1.2 and DTLS 1.2 handshakes are not analyzed in detail in this document. One rough comparison on expected size between the TLS 1.2 and TLS 1.3 handshakes can be found by counting the number of bytes in the example handshakes of <xref target="Illustrated-TLS12"/> and <xref target="Illustrated-TLS13"/>. In these examples the server authenticates with a certificate and the client is not authenticated.</t>
        <t>In TLS 1.2 the number of bytes in the four flights are 170, 1188, 117, and 75 for a total of 1550 bytes. In TLS 1.3 the number of bytes in the three flights are 253, 1367, and 79 for a total of 1699 bytes. In general, the (D)TLS 1.2 and (D)TLS 1.3 handshakes can be expected to have similar number of bytes.</t>
      </section>
      <section anchor="edhoc">
        <name>EDHOC</name>
        <t>This section gives an estimate of the message sizes of EDHOC <xref target="I-D.ietf-lake-edhoc"/> authenticated with static Diffie-Hellman keys and where the static Diffie-Hellman are identified with a key identifier (kid). All examples are given in CBOR diagnostic notation and hexadecimal, and are based on the test vectors in Section 4 of <xref target="I-D.ietf-lake-traces"/>.</t>
        <section anchor="message-sizes-rpk">
          <name>Message Sizes RPK</name>
          <section anchor="message1">
            <name>message_1</name>
            <artwork><![CDATA[
message_1 = (
  3,
  2,
  h'8af6f430ebe18d34184017a9a11bf511c8dff8f834730b96c1b7c8dbca2f
    c3b6',
  -24
)
]]></artwork>
            <artwork><![CDATA[
message_1 (37 bytes):
03 02 58 20 8a f6 f4 30 eb e1 8d 34 18 40 17 a9 a1 1b f5 11 c8
df f8 f8 34 73 0b 96 c1 b7 c8 db ca 2f c3 b6 37
]]></artwork>
          </section>
          <section anchor="message2">
            <name>message_2</name>
            <artwork><![CDATA[
message_2 = (
  h'419701D7F00A26C2DC587A36DD752549F33763C893422C8EA0F955A13A4F
    F5D5042459E2DA6C75143F35',
  -8
)
]]></artwork>
            <artwork><![CDATA[
message_2 (45 bytes):
 58 2a 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37
 63 c8 93 42 2c 8e a0 f9 55 a1 3a 4f f5 d5 04 24 59 e2 da 6c
 75 14 3f 35 27
]]></artwork>
          </section>
          <section anchor="message3">
            <name>message_3</name>
            <artwork><![CDATA[
message_3 = (
  h'C2B62835DC9B1F53419C1D3A2261EEED3505'
)
]]></artwork>
            <artwork><![CDATA[
message_3 (19 bytes):
52 c2 b6 28 35 dc 9b 1f 53 41 9c 1d 3a 22 61 ee ed 35 05
]]></artwork>
          </section>
        </section>
        <section anchor="summary">
          <name>Summary</name>
          <t>Based on the example above it is relatively easy to calculate numbers also for EDHOC authenticated with signature keys and for authentication keys identified with a SHA-256/64 hash (x5t). Signatures increase the size of flight #2 and #3 with (64 - 8 + 1) bytes while x5t inceases the size with 13-14 bytes. The typical message sizes for the previous example and for the other combinations are summarized in <xref target="fig-summary"/>. Note that EDHOC treats authentication keys stored in RPK and X.509 in the same way. More detailed examples can be found in <xref target="I-D.ietf-lake-traces"/>.</t>
          <figure anchor="fig-summary">
            <name>Typical message sizes in bytes</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="472" viewBox="0 0 472 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                  <path d="M 8,30 L 464,30" fill="none" stroke="black"/>
                  <path d="M 8,34 L 464,34" fill="none" stroke="black"/>
                  <path d="M 168,64 L 288,64" fill="none" stroke="black"/>
                  <path d="M 344,64 L 464,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 464,96" fill="none" stroke="black"/>
                  <path d="M 8,160 L 464,160" fill="none" stroke="black"/>
                  <path d="M 8,190 L 464,190" fill="none" stroke="black"/>
                  <path d="M 8,194 L 464,194" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="196" y="52">Static</text>
                    <text x="236" y="52">DH</text>
                    <text x="268" y="52">Keys</text>
                    <text x="384" y="52">Signature</text>
                    <text x="444" y="52">Keys</text>
                    <text x="184" y="84">kid</text>
                    <text x="272" y="84">x5t</text>
                    <text x="360" y="84">kid</text>
                    <text x="448" y="84">x5t</text>
                    <text x="48" y="116">message_1</text>
                    <text x="188" y="116">37</text>
                    <text x="276" y="116">37</text>
                    <text x="364" y="116">37</text>
                    <text x="452" y="116">37</text>
                    <text x="48" y="132">message_2</text>
                    <text x="188" y="132">45</text>
                    <text x="276" y="132">58</text>
                    <text x="360" y="132">102</text>
                    <text x="448" y="132">115</text>
                    <text x="48" y="148">message_3</text>
                    <text x="188" y="148">19</text>
                    <text x="276" y="148">33</text>
                    <text x="364" y="148">77</text>
                    <text x="452" y="148">90</text>
                    <text x="32" y="180">Total</text>
                    <text x="184" y="180">101</text>
                    <text x="272" y="180">128</text>
                    <text x="360" y="180">216</text>
                    <text x="448" y="180">242</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
==========================================================
                     Static DH Keys        Signature Keys
                    ----------------      ----------------
                     kid        x5t        kid        x5t
----------------------------------------------------------
 message_1            37         37         37         37
 message_2            45         58        102        115
 message_3            19         33         77         90
----------------------------------------------------------
 Total               101        128        216        242
==========================================================
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="conclusion">
        <name>Conclusion</name>
        <t>To do a fair comparison, one has to choose a specific deployment and look at the topology, the whole protocol stack, frame sizes (e.g., 51 or 128 bytes), how and where in the protocol stack fragmentation is done, and the expected packet loss. Note that the number of bytes in each frame that is available for the key exchange protocol may depend on the underlying protocol layers as well as on the number of hops in multi-hop networks. The packet loss may depend on how many other devices are transmitting at the same time, and may increase during network formation.  The total overhead will be larger due to mechanisms for fragmentation, retransmission, and packet ordering.  The overhead of fragmentation is roughly proportional to the number of fragments, while the expected overhead due to retransmission in noisy environments is a superlinear function of the flight sizes.</t>
      </section>
    </section>
    <section anchor="record">
      <name>Overhead for Protection of Application Data</name>
      <t>To enable comparison, all the overhead calculations in this section use AES-CCM with a tag length of 8 bytes (e.g., AES_128_CCM_8 or AES-CCM-16-64), a plaintext of 6 bytes, and the sequence number '05'. This follows the example in <xref target="RFC7400"/>, Figure 16.</t>
      <t>Note that the compressed overhead calculations for DLTS 1.2, DTLS 1.3, TLS 1.2 and TLS 1.3 are dependent on the parameters epoch, sequence number, and length (where applicable), and all the overhead calculations are dependent on the parameter Connection ID when used. Note that the OSCORE overhead calculations are dependent on the CoAP option numbers, as well as the length of the OSCORE parameters Sender ID, ID Context, and Sequence Number (where applicable). cTLS uses the DTLS 1.3 record layer. The following calculations are only examples.</t>
      <t><xref target="summ-record"/> gives a short summary of the message overhead based on different parameters and some assumptions. The following sections detail the assumptions and the calculations.</t>
      <section anchor="summ-record">
        <name>Summary</name>
        <t>The DTLS overhead is dependent on the parameter Connection ID. The following overheads apply for all Connection IDs with the same length.</t>
        <t>The compression overhead (GHC) is dependent on the parameters epoch, sequence number, Connection ID, and length (where applicable). The following overheads should be representative for sequence numbers and Connection IDs with the same length.</t>
        <t>The OSCORE overhead is dependent on the included CoAP Option numbers as well as the length of the OSCORE parameters Sender ID and sequence number. The following overheads apply for all sequence numbers and Sender IDs with the same length.</t>
        <figure anchor="fig-overhead">
          <name>Overhead in bytes as a function of sequence number       (Connection/Sender ID = '')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="512" viewBox="0 0 512 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,48 L 504,48" fill="none" stroke="black"/>
                <path d="M 8,96 L 504,96" fill="none" stroke="black"/>
                <path d="M 8,144 L 504,144" fill="none" stroke="black"/>
                <path d="M 8,192 L 504,192" fill="none" stroke="black"/>
                <path d="M 8,240 L 504,240" fill="none" stroke="black"/>
                <path d="M 8,288 L 504,288" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="36">Sequence</text>
                  <text x="108" y="36">Number</text>
                  <text x="292" y="36">'05'</text>
                  <text x="380" y="36">'1005'</text>
                  <text x="468" y="36">'100005'</text>
                  <text x="28" y="68">DTLS</text>
                  <text x="64" y="68">1.2</text>
                  <text x="292" y="68">29</text>
                  <text x="380" y="68">29</text>
                  <text x="468" y="68">29</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="292" y="84">11</text>
                  <text x="380" y="84">11</text>
                  <text x="468" y="84">11</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.2</text>
                  <text x="104" y="116">(GHC)</text>
                  <text x="292" y="116">16</text>
                  <text x="380" y="116">16</text>
                  <text x="468" y="116">16</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.3</text>
                  <text x="104" y="132">(GHC)</text>
                  <text x="292" y="132">12</text>
                  <text x="380" y="132">12</text>
                  <text x="468" y="132">12</text>
                  <text x="24" y="164">TLS</text>
                  <text x="64" y="164">1.2</text>
                  <text x="292" y="164">21</text>
                  <text x="380" y="164">21</text>
                  <text x="468" y="164">21</text>
                  <text x="24" y="180">TLS</text>
                  <text x="64" y="180">1.3</text>
                  <text x="292" y="180">14</text>
                  <text x="380" y="180">14</text>
                  <text x="468" y="180">14</text>
                  <text x="24" y="212">TLS</text>
                  <text x="64" y="212">1.2</text>
                  <text x="104" y="212">(GHC)</text>
                  <text x="292" y="212">17</text>
                  <text x="380" y="212">18</text>
                  <text x="468" y="212">19</text>
                  <text x="24" y="228">TLS</text>
                  <text x="64" y="228">1.3</text>
                  <text x="104" y="228">(GHC)</text>
                  <text x="292" y="228">15</text>
                  <text x="380" y="228">16</text>
                  <text x="468" y="228">17</text>
                  <text x="36" y="260">OSCORE</text>
                  <text x="96" y="260">request</text>
                  <text x="292" y="260">13</text>
                  <text x="380" y="260">14</text>
                  <text x="468" y="260">15</text>
                  <text x="36" y="276">OSCORE</text>
                  <text x="100" y="276">response</text>
                  <text x="292" y="276">11</text>
                  <text x="380" y="276">11</text>
                  <text x="468" y="276">11</text>
                  <text x="32" y="308">Group</text>
                  <text x="84" y="308">OSCORE</text>
                  <text x="148" y="308">pairwise</text>
                  <text x="216" y="308">request</text>
                  <text x="292" y="308">14</text>
                  <text x="380" y="308">15</text>
                  <text x="468" y="308">16</text>
                  <text x="32" y="324">Group</text>
                  <text x="84" y="324">OSCORE</text>
                  <text x="148" y="324">pairwise</text>
                  <text x="220" y="324">response</text>
                  <text x="292" y="324">11</text>
                  <text x="380" y="324">11</text>
                  <text x="468" y="324">11</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 Sequence Number                  '05'      '1005'    '100005'
---------------------------------------------------------------
 DTLS 1.2                          29         29         29
 DTLS 1.3                          11         11         11
---------------------------------------------------------------
 DTLS 1.2 (GHC)                    16         16         16
 DTLS 1.3 (GHC)                    12         12         12
---------------------------------------------------------------
 TLS  1.2                          21         21         21
 TLS  1.3                          14         14         14
---------------------------------------------------------------
 TLS  1.2 (GHC)                    17         18         19
 TLS  1.3 (GHC)                    15         16         17
---------------------------------------------------------------
 OSCORE request                    13         14         15
 OSCORE response                   11         11         11
---------------------------------------------------------------
 Group OSCORE pairwise request     14         15         16
 Group OSCORE pairwise response    11         11         11
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-overhead2">
          <name>Overhead in bytes as a function of Connection/Sender ID       (Sequence Number = '05')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="504" viewBox="0 0 504 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,48 L 496,48" fill="none" stroke="black"/>
                <path d="M 8,96 L 496,96" fill="none" stroke="black"/>
                <path d="M 8,144 L 496,144" fill="none" stroke="black"/>
                <path d="M 8,192 L 496,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="80" y="36">Connection/Sender</text>
                  <text x="164" y="36">ID</text>
                  <text x="292" y="36">''</text>
                  <text x="380" y="36">'42'</text>
                  <text x="468" y="36">'4002'</text>
                  <text x="28" y="68">DTLS</text>
                  <text x="64" y="68">1.2</text>
                  <text x="292" y="68">29</text>
                  <text x="380" y="68">30</text>
                  <text x="468" y="68">31</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="292" y="84">11</text>
                  <text x="380" y="84">12</text>
                  <text x="468" y="84">13</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.2</text>
                  <text x="104" y="116">(GHC)</text>
                  <text x="292" y="116">16</text>
                  <text x="380" y="116">17</text>
                  <text x="468" y="116">18</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.3</text>
                  <text x="104" y="132">(GHC)</text>
                  <text x="292" y="132">12</text>
                  <text x="380" y="132">13</text>
                  <text x="468" y="132">14</text>
                  <text x="36" y="164">OSCORE</text>
                  <text x="96" y="164">request</text>
                  <text x="292" y="164">13</text>
                  <text x="380" y="164">14</text>
                  <text x="468" y="164">15</text>
                  <text x="36" y="180">OSCORE</text>
                  <text x="100" y="180">response</text>
                  <text x="292" y="180">11</text>
                  <text x="380" y="180">11</text>
                  <text x="468" y="180">11</text>
                  <text x="32" y="212">Group</text>
                  <text x="84" y="212">OSCORE</text>
                  <text x="148" y="212">pairwise</text>
                  <text x="216" y="212">request</text>
                  <text x="292" y="212">14</text>
                  <text x="380" y="212">15</text>
                  <text x="468" y="212">16</text>
                  <text x="32" y="228">Group</text>
                  <text x="84" y="228">OSCORE</text>
                  <text x="148" y="228">pairwise</text>
                  <text x="220" y="228">response</text>
                  <text x="292" y="228">11</text>
                  <text x="380" y="228">13</text>
                  <text x="468" y="228">14</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 Connection/Sender ID              ''        '42'      '4002'
--------------------------------------------------------------
 DTLS 1.2                          29         30         31
 DTLS 1.3                          11         12         13
--------------------------------------------------------------
 DTLS 1.2 (GHC)                    16         17         18
 DTLS 1.3 (GHC)                    12         13         14
--------------------------------------------------------------
 OSCORE request                    13         14         15
 OSCORE response                   11         11         11
--------------------------------------------------------------
 Group OSCORE pairwise request     14         15         16
 Group OSCORE pairwise response    11         13         14
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-overhead3">
          <name>Overhead (excluding ICV) in bytes                   (Connection/Sender ID = '', Sequence Number = '05')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="496" viewBox="0 0 496 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,48 L 488,48" fill="none" stroke="black"/>
                <path d="M 8,96 L 488,96" fill="none" stroke="black"/>
                <path d="M 8,144 L 488,144" fill="none" stroke="black"/>
                <path d="M 8,192 L 488,192" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="36">Protocol</text>
                  <text x="292" y="36">Overhead</text>
                  <text x="404" y="36">Overhead</text>
                  <text x="464" y="36">(GHC)</text>
                  <text x="28" y="68">DTLS</text>
                  <text x="64" y="68">1.2</text>
                  <text x="292" y="68">21</text>
                  <text x="424" y="68">8</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="296" y="84">3</text>
                  <text x="424" y="84">4</text>
                  <text x="24" y="116">TLS</text>
                  <text x="64" y="116">1.2</text>
                  <text x="292" y="116">13</text>
                  <text x="424" y="116">9</text>
                  <text x="24" y="132">TLS</text>
                  <text x="64" y="132">1.3</text>
                  <text x="296" y="132">6</text>
                  <text x="424" y="132">7</text>
                  <text x="36" y="164">OSCORE</text>
                  <text x="96" y="164">request</text>
                  <text x="296" y="164">5</text>
                  <text x="36" y="180">OSCORE</text>
                  <text x="100" y="180">response</text>
                  <text x="296" y="180">3</text>
                  <text x="32" y="212">Group</text>
                  <text x="84" y="212">OSCORE</text>
                  <text x="148" y="212">pairwise</text>
                  <text x="216" y="212">request</text>
                  <text x="296" y="212">7</text>
                  <text x="32" y="228">Group</text>
                  <text x="84" y="228">OSCORE</text>
                  <text x="148" y="228">pairwise</text>
                  <text x="220" y="228">response</text>
                  <text x="296" y="228">4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
 Protocol                       Overhead      Overhead (GHC)
-------------------------------------------------------------
 DTLS 1.2                          21               8
 DTLS 1.3                           3               4
-------------------------------------------------------------
 TLS  1.2                          13               9
 TLS  1.3                           6               7
-------------------------------------------------------------
 OSCORE request                     5
 OSCORE response                    3
-------------------------------------------------------------
 Group OSCORE pairwise request      7
 Group OSCORE pairwise response     4
]]></artwork>
          </artset>
        </figure>
        <t>The numbers in <xref target="fig-overhead"/>, <xref target="fig-overhead2"/>, and <contact fullname="{fig-overhead3"/>} does not consider the different Token processing requirements for clients <xref target="RFC9175"/> required for secure operation as motivated by <xref target="I-D.ietf-core-attacks-on-coap"/>. As reuse of Tokens is easier in OSCORE than DTLS, OSCORE might have slightly lower overhead than DTLS 1.3 for long connection even if DTLS 1.3 has slightly lower overhead than OSCORE for short connections.</t>
      </section>
      <section anchor="dtls-12">
        <name>DTLS 1.2</name>
        <section anchor="dtls-12-1">
          <name>DTLS 1.2</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/>. The nonce follow the strict profiling given in <xref target="RFC7925"/>.  This example is taken directly from <xref target="RFC7400"/>, Figure 16.</t>
          <artwork><![CDATA[
DTLS 1.2 record layer (35 bytes, 29 bytes overhead):
17 fe fd 00 01 00 00 00 00 00 05 00 16 00 01 00
00 00 00 00 05 ae a0 15 56 67 92 4d ff 8a 24 e4
cb 35 b9

Content type:
17
Version:
fe fd
Epoch:
00 01
Sequence number:
00 00 00 00 00 05
Length:
00 16
Nonce:
00 01 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.2 gives 29 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-6lowpan-ghc">
          <name>DTLS 1.2 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/>. The compression was done with <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that the sequence number '01' used in <xref target="RFC7400"/>, Figure 15 gives an exceptionally small overhead that is not representative.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.2 record layer (22 bytes, 16 bytes overhead):
b0 c3 03 05 00 16 f2 0e ae a0 15 56 67 92 4d ff
8a 24 e4 cb 35 b9

Compressed DTLS 1.2 record layer header and nonce:
b0 c3 03 05 00 16 f2 0e
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.2 with the above parameters (epoch, sequence number, length) gives 16 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-connection-id">
          <name>DTLS 1.2 with Connection ID</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> with Connection ID <xref target="RFC9146"/>. The overhead calculations in this section uses Connection ID = '42'. DTLS recored layer with a Connection ID = '' (the empty string) is equal to DTLS without Connection ID.</t>
          <artwork><![CDATA[
DTLS 1.2 record layer (36 bytes, 30 bytes overhead):
17 fe fd 00 01 00 00 00 00 00 05 42 00 16 00 01
00 00 00 00 00 05 ae a0 15 56 67 92 4d ff 8a 24
e4 cb 35 b9

Content type:
17
Version:
fe fd
Epoch:
00 01
Sequence number:
00 00 00 00 00 05
Connection ID:
42
Length:
00 16
Nonce:
00 01 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.2 with Connection ID gives 30 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-connection-id-and-6lowpan-ghc">
          <name>DTLS 1.2 with Connection ID and 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> with Connection ID <xref target="RFC9146"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that the sequence number '01' used in <xref target="RFC7400"/>, Figure 15 gives an exceptionally small overhead that is not representative.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.2 record layer (23 bytes, 17 bytes overhead):
b0 c3 04 05 42 00 16 f2 0e ae a0 15 56 67 92 4d
ff 8a 24 e4 cb 35 b9

Compressed DTLS 1.2 record layer header and nonce:
b0 c3 04 05 42 00 16 f2 0e
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.2 with the above parameters (epoch, sequence number, Connection ID, length) gives 17 bytes overhead.</t>
        </section>
      </section>
      <section anchor="dtls-13-1">
        <name>DTLS 1.3</name>
        <section anchor="dtls-13-2">
          <name>DTLS 1.3</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/>. The changes compared to DTLS 1.2 are: omission of version number, merging of epoch into the first byte containing signaling bits, optional omission of length, reduction of sequence number into a 1 or 2-bytes field.</t>
          <t>DTLS 1.3 is only analyzed with an omitted length field and with an 8-bit sequence number (see Figure 4 of <xref target="RFC9147"/>).</t>
          <artwork><![CDATA[
DTLS 1.3 record layer (17 bytes, 11 bytes overhead):
21 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb 35 b9

First byte (including epoch):
21
Sequence number:
05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.3 gives 11 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-6lowpan-ghc">
          <name>DTLS 1.3 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.3 record layer (18 bytes, 12 bytes overhead):
11 21 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb
35 b9

Compressed DTLS 1.3 record layer header and nonce:
11 21 05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.3 with the above parameters (epoch, sequence number, no length) gives 12 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-connection-id">
          <name>DTLS 1.3 with Connection ID</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> with Connection ID <xref target="RFC9146"/>.</t>
          <t>In this example, the length field is omitted, and the 1-byte field is used for the sequence number. The minimal DTLSCiphertext structure is used (see Figure 4 of <xref target="RFC9147"/>), with the addition of the Connection ID field.</t>
          <artwork><![CDATA[
DTLS 1.3 record layer (18 bytes, 12 bytes overhead):
31 42 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb 35 b9

First byte (including epoch):
31
Connection ID:
42
Sequence number:
05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.3 with Connection ID gives 12 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-connection-id-and-6lowpan-ghc">
          <name>DTLS 1.3 with Connection ID and 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> with Connection ID <xref target="RFC9146"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.3 record layer (19 bytes, 13 bytes overhead):
12 31 05 42 ae a0 15 56 67 92 ec 4d ff 8a 24 e4
cb 35 b9

Compressed DTLS 1.3 record layer header and nonce:
12 31 05 42
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.3 with the above parameters (epoch, sequence number, Connection ID, no length) gives 13 bytes overhead.</t>
        </section>
      </section>
      <section anchor="tls-12">
        <name>TLS 1.2</name>
        <section anchor="tls-12-1">
          <name>TLS 1.2</name>
          <t>This section analyzes the overhead of TLS 1.2 <xref target="RFC5246"/>. The changes compared to DTLS 1.2 is that the TLS 1.2 record layer does not have epoch and sequence number, and that the version is different.</t>
          <artwork><![CDATA[
TLS 1.2 Record Layer (27 bytes, 21 bytes overhead):
17 03 03 00 16 00 00 00 00 00 00 00 05 ae a0 15
56 67 92 4d ff 8a 24 e4 cb 35 b9

Content type:
17
Version:
03 03
Length:
00 16
Nonce:
00 00 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>TLS 1.2 gives 21 bytes overhead.</t>
        </section>
        <section anchor="tls-12-with-6lowpan-ghc">
          <name>TLS 1.2 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of TLS 1.2 <xref target="RFC5246"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed TLS 1.2 record layer (23 bytes, 17 bytes overhead):
05 17 03 03 00 16 85 0f 05 ae a0 15 56 67 92 4d
ff 8a 24 e4 cb 35 b9

Compressed TLS 1.2 record layer header and nonce:
05 17 03 03 00 16 85 0f 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, TLS 1.2 with the above parameters (epoch, sequence number, length) gives 17 bytes overhead.</t>
        </section>
      </section>
      <section anchor="tls-13-1">
        <name>TLS 1.3</name>
        <section anchor="tls-13-2">
          <name>TLS 1.3</name>
          <t>This section analyzes the overhead of TLS 1.3 <xref target="RFC8446"/>. The change compared to TLS 1.2 is that the TLS 1.3 record layer uses a different version.</t>
          <artwork><![CDATA[
TLS 1.3 Record Layer (20 bytes, 14 bytes overhead):
17 03 03 00 16 ae a0 15 56 67 92 ec 4d ff 8a 24
e4 cb 35 b9

Content type:
17
Legacy version:
03 03
Length:
00 0f
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>TLS 1.3 gives 14 bytes overhead.</t>
        </section>
        <section anchor="tls-13-with-6lowpan-ghc">
          <name>TLS 1.3 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of TLS 1.3 <xref target="RFC8446"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed TLS 1.3 record layer (21 bytes, 15 bytes overhead):
14 17 03 03 00 0f ae a0 15 56 67 92 ec 4d ff 8a
24 e4 cb 35 b9

Compressed TLS 1.3 record layer header and nonce:
14 17 03 03 00 0f
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, TLS 1.3 with the above parameters (epoch, sequence number, length) gives 15 bytes overhead.</t>
        </section>
      </section>
      <section anchor="oscore">
        <name>OSCORE</name>
        <t>This section analyzes the overhead of OSCORE <xref target="RFC8613"/>.</t>
        <t>The below calculation Option Delta = '9', Sender ID = '' (empty string), and Sequence Number = '05', and is only an example. Note that Sender ID = '' (empty string) can only be used by one client per server.</t>
        <artwork><![CDATA[
OSCORE request (19 bytes, 13 bytes overhead):
92 09 05
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
92
Option value (flag byte and sequence number):
09 05
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation Option Delta = '9', Sender ID = '42', and Sequence Number = '05', and is only an example.</t>
        <artwork><![CDATA[
OSCORE request (20 bytes, 14 bytes overhead):
93 09 05 42
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
93
Option Value (flag byte, sequence number, and Sender ID):
09 05 42
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation uses Option Delta = '9'.</t>
        <artwork><![CDATA[
OSCORE response (17 bytes, 11 bytes overhead):
90
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP delta and option length:
90
Option value:
-
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>OSCORE with the above parameters gives 13-14 bytes overhead for requests and 11 bytes overhead for responses.</t>
        <t>Unlike DTLS and TLS, OSCORE has much smaller overhead for responses than requests.</t>
      </section>
      <section anchor="group-oscore">
        <name>Group OSCORE</name>
        <t>This section analyzes the overhead of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>. Group OSCORE defines a pairwise mode where each member of the group can efficiently derive a symmetric pairwise key with any other member of the group for pairwise OSCORE communication. Additional requirements compared to <xref target="RFC8613"/> is that ID Context is always included in requests and that Sender ID is always included in responses. Assuming 1 byte ID Context and Sender ID this adds 2 bytes to requests and 1 byte to responses.</t>
        <t>The below calculation Option Delta = '9', ID Context = '', Sender ID = '42', and Sequence Number = '05', and is only an example. ID Context = '' would be the standard for local deployments only having a single group.</t>
        <artwork><![CDATA[
OSCORE request (21 bytes, 15 bytes overhead):
93 09 05 42
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
93
Option Value (flag byte, ID Context length, sequence nr, Sender ID):
19 00 05 42
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation uses Option Delta = '9' and Sender ID = '69', and is only an example.</t>
        <artwork><![CDATA[
OSCORE response (18 bytes, 12 bytes overhead):
90
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP delta and option length:
90
Option value (flag byte, Sender ID):
08 69
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The pairwise mode OSCORE with the above parameters gives 15 bytes overhead for requests and 12 bytes overhead for responses.</t>
      </section>
      <section anchor="conclusion-1">
        <name>Conclusion</name>
        <t>DTLS 1.2 has quite a large overhead as it uses an explicit sequence number and an explicit nonce. TLS 1.2 has significantly less (but not small) overhead. TLS 1.3 has quite a small overhead. OSCORE and DTLS 1.3 (using the minimal structure) format have very small overhead.</t>
        <t>The Generic Header Compression (6LoWPAN-GHC) can in addition to DTLS 1.2 handle TLS 1.2, and DTLS 1.2 with Connection ID. The Generic Header Compression (6LoWPAN-GHC) works very well for Connection ID and the overhead seems to increase exactly with the length of the Connection ID (which is optimal). The compression of TLS 1.2 is not as good as the compression of DTLS 1.2 (as the static dictionary only contains the DTLS 1.2 version number). Similar compression levels as for DTLS could be achieved also for TLS 1.2, but this would require different static dictionaries. For TLS 1.3 and DTLS 1.3, GHC increases the overhead. The 6LoWPAN-GHC header compression is not available when (D)TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
        <t>New security protocols like OSCORE, TLS 1.3, and DTLS 1.3 have much lower overhead than DTLS 1.2 and TLS 1.2. The overhead is even smaller than DTLS 1.2 and TLS 1.2 over 6LoWPAN with compression, and therefore the small overhead is achieved even on deployments without 6LoWPAN or 6LoWPAN without compression. OSCORE is lightweight because it makes use of CoAP, CBOR, and COSE, which were designed to have as low overhead as possible. As can be seen in <xref target="fig-overhead3"/>, Group OSCORE for pairwise communication increases the overhead of OSCORE requests with 20% and OSCORE responses with 33%.</t>
        <t>Note that the compared protocols have slightly different use cases. TLS and DTLS are designed for the transport layer and are terminated in CoAP proxies. OSCORE is designed for the application layer and protects information end-to-end between the CoAP client and the CoAP server. Group OSCORE is designed for communication in a group.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document is purely informational.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC5246" target="https://www.rfc-editor.org/info/rfc5246" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
          <author fullname="T. Dierks" initials="T." surname="Dierks"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5246"/>
        <seriesInfo name="DOI" value="10.17487/RFC5246"/>
      </reference>
      <reference anchor="RFC5480" target="https://www.rfc-editor.org/info/rfc5480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5480.xml">
        <front>
          <title>Elliptic Curve Cryptography Subject Public Key Information</title>
          <author fullname="S. Turner" initials="S." surname="Turner"/>
          <author fullname="D. Brown" initials="D." surname="Brown"/>
          <author fullname="K. Yiu" initials="K." surname="Yiu"/>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <author fullname="T. Polk" initials="T." surname="Polk"/>
          <date month="March" year="2009"/>
          <abstract>
            <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography.  This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5480"/>
        <seriesInfo name="DOI" value="10.17487/RFC5480"/>
      </reference>
      <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
        <front>
          <title>Datagram Transport Layer Security Version 1.2</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
          <date month="January" year="2012"/>
          <abstract>
            <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6347"/>
        <seriesInfo name="DOI" value="10.17487/RFC6347"/>
      </reference>
      <reference anchor="RFC7400" target="https://www.rfc-editor.org/info/rfc7400" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7400.xml">
        <front>
          <title>6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)</title>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <date month="November" year="2014"/>
          <abstract>
            <t>RFC 6282 defines header compression in 6LoWPAN packets (where "6LoWPAN" refers to "IPv6 over Low-Power Wireless Personal Area Network").  The present document specifies a simple addition that enables the compression of generic headers and header-like payloads, without a need to define a new header compression scheme for each such new header or header-like payload.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7400"/>
        <seriesInfo name="DOI" value="10.17487/RFC7400"/>
      </reference>
      <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
        <front>
          <title>The Constrained Application Protocol (CoAP)</title>
          <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
          <author fullname="K. Hartke" initials="K." surname="Hartke"/>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <date month="June" year="2014"/>
          <abstract>
            <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
            <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7252"/>
        <seriesInfo name="DOI" value="10.17487/RFC7252"/>
      </reference>
      <reference anchor="RFC7924" target="https://www.rfc-editor.org/info/rfc7924" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7924.xml">
        <front>
          <title>Transport Layer Security (TLS) Cached Information Extension</title>
          <author fullname="S. Santesson" initials="S." surname="Santesson"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="July" year="2016"/>
          <abstract>
            <t>Transport Layer Security (TLS) handshakes often include fairly static information, such as the server certificate and a list of trusted certification authorities (CAs). This information can be of considerable size, particularly if the server certificate is bundled with a complete certificate chain (i.e., the certificates of intermediate CAs up to the root CA).</t>
            <t>This document defines an extension that allows a TLS client to inform a server of cached information, thereby enabling the server to omit already available information.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7924"/>
        <seriesInfo name="DOI" value="10.17487/RFC7924"/>
      </reference>
      <reference anchor="RFC7925" target="https://www.rfc-editor.org/info/rfc7925" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
        <front>
          <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
          <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
          <author fullname="T. Fossati" initials="T." surname="Fossati"/>
          <date month="July" year="2016"/>
          <abstract>
            <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
            <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7925"/>
        <seriesInfo name="DOI" value="10.17487/RFC7925"/>
      </reference>
      <reference anchor="RFC8323" target="https://www.rfc-editor.org/info/rfc8323" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8323.xml">
        <front>
          <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <author fullname="S. Lemay" initials="S." surname="Lemay"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="K. Hartke" initials="K." surname="Hartke"/>
          <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
          <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
          <date month="February" year="2018"/>
          <abstract>
            <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
            <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8323"/>
        <seriesInfo name="DOI" value="10.17487/RFC8323"/>
      </reference>
      <reference anchor="RFC8376" target="https://www.rfc-editor.org/info/rfc8376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8376.xml">
        <front>
          <title>Low-Power Wide Area Network (LPWAN) Overview</title>
          <author fullname="S. Farrell" initials="S." role="editor" surname="Farrell"/>
          <date month="May" year="2018"/>
          <abstract>
            <t>Low-Power Wide Area Networks (LPWANs) are wireless technologies with characteristics such as large coverage areas, low bandwidth, possibly very small packet and application-layer data sizes, and long battery life operation.  This memo is an informational overview of the set of LPWAN technologies being considered in the IETF and of the gaps that exist between the needs of those technologies and the goal of running IP in LPWANs.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8376"/>
        <seriesInfo name="DOI" value="10.17487/RFC8376"/>
      </reference>
      <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
        <front>
          <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
          <author fullname="G. Selander" initials="G." surname="Selander"/>
          <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
          <author fullname="F. Palombini" initials="F." surname="Palombini"/>
          <author fullname="L. Seitz" initials="L." surname="Seitz"/>
          <date month="July" year="2019"/>
          <abstract>
            <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
            <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8613"/>
        <seriesInfo name="DOI" value="10.17487/RFC8613"/>
      </reference>
      <reference anchor="RFC8879" target="https://www.rfc-editor.org/info/rfc8879" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8879.xml">
        <front>
          <title>TLS Certificate Compression</title>
          <author fullname="A. Ghedini" initials="A." surname="Ghedini"/>
          <author fullname="V. Vasiliev" initials="V." surname="Vasiliev"/>
          <date month="December" year="2020"/>
          <abstract>
            <t>In TLS handshakes, certificate chains often take up the majority of the bytes transmitted.</t>
            <t>This document describes how certificate chains can be compressed to reduce the amount of data transmitted and avoid some round trips.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8879"/>
        <seriesInfo name="DOI" value="10.17487/RFC8879"/>
      </reference>
      <reference anchor="RFC9146" target="https://www.rfc-editor.org/info/rfc9146" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9146.xml">
        <front>
          <title>Connection Identifier for DTLS 1.2</title>
          <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
          <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
          <author fullname="T. Fossati" initials="T." surname="Fossati"/>
          <author fullname="A. Kraus" initials="A." surname="Kraus"/>
          <date month="March" year="2022"/>
          <abstract>
            <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
            <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
            <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
            <t>This document updates RFC 6347.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9146"/>
        <seriesInfo name="DOI" value="10.17487/RFC9146"/>
      </reference>
      <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml">
        <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="RFC9175" target="https://www.rfc-editor.org/info/rfc9175" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9175.xml">
        <front>
          <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
          <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
          <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
          <author fullname="G. Selander" initials="G." surname="Selander"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases.  The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address.  The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request.  This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9175"/>
        <seriesInfo name="DOI" value="10.17487/RFC9175"/>
      </reference>
      <reference anchor="RFC9191" target="https://www.rfc-editor.org/info/rfc9191" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9191.xml">
        <front>
          <title>Handling Large Certificates and Long Certificate Chains in TLS-Based EAP Methods</title>
          <author fullname="M. Sethi" initials="M." surname="Sethi"/>
          <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
          <author fullname="S. Turner" initials="S." surname="Turner"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods.  EAP-TLS and other TLS-based EAP methods are widely deployed and used for network access authentication.  Large certificates and long certificate chains combined with authenticators that drop an EAP session after only 40 - 50 round trips is a major deployment problem.  This document looks at this problem in detail and describes the potential solutions available.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9191"/>
        <seriesInfo name="DOI" value="10.17487/RFC9191"/>
      </reference>
      <reference anchor="I-D.ietf-core-attacks-on-coap" target="https://datatracker.ietf.org/api/v1/doc/document/draft-ietf-core-attacks-on-coap/" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-attacks-on-coap.xml">
        <front>
          <title>Attacks on the Constrained Application Protocol (CoAP)</title>
          <author fullname="John Preuß Mattsson"/>
          <author fullname="John Fornehed"/>
          <author fullname="Göran Selander"/>
          <author fullname="Francesca Palombini"/>
          <author fullname="Christian Amsüss"/>
          <date day="23" month="December" year="2022"/>
          <abstract>
            <t>Being able to securely read information from sensors, to securely
   control actuators, and to not enable distributed denial-of-service
   attacks are essential in a world of connected and networking things
   interacting with the physical world.  Using a security protocol such
   as DTLS, TLS, or OSCORE to protect CoAP is a requirement for secure
   operation and protects against many attacks.  This document
   summarizes a number of known attacks on CoAP deployments and show
   that just using CoAP with a security protocol like DTLS, TLS, or
   OSCORE is not enough for secure operation.  Several of the discussed
   attacks can be mitigated with the solutions in RFC 9175.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-attacks-on-coap-02"/>
      </reference>
      <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-edhoc-06.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
        <front>
          <title>Profiling EDHOC for CoAP and OSCORE</title>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Rikard Höglund" initials="R." surname="Höglund">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
            <organization>Fraunhofer AISEC</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson</organization>
          </author>
          <date day="23" month="November" year="2022"/>
          <abstract>
            <t>The lightweight authenticated key exchange protocol EDHOC can be run over CoAP and used by two peers to establish an OSCORE Security Context. This document further profiles this use of the EDHOC protocol, by specifying a number of additional and optional mechanisms. These especially include an optimization approach for combining the execution of EDHOC with the first subsequent OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-06"/>
      </reference>
      <reference anchor="I-D.ietf-core-oscore-groupcomm" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-groupcomm-17.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml">
        <front>
          <title>Group OSCORE - Secure Group Communication for CoAP</title>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Jiye Park" initials="J." surname="Park">
            <organization>Universitaet Duisburg-Essen</organization>
          </author>
          <date day="20" month="December" year="2022"/>
          <abstract>
            <t>This document defines Group Object Security for Constrained RESTful Environments (Group OSCORE), providing end-to-end security of CoAP messages exchanged between members of a group, e.g., sent over IP multicast. In particular, the described approach defines how OSCORE is used in a group communication setting to provide source authentication for CoAP group requests, sent by a client to multiple servers, and for protection of the corresponding CoAP responses. Group OSCORE also defines a pairwise mode where each member of the group can efficiently derive a symmetric pairwise key with any other member of the group for pairwise OSCORE communication.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-17"/>
      </reference>
      <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-04.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-cbor-encoded-cert.xml">
        <front>
          <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Shahid Raza" initials="S." surname="Raza">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Joel Höglund" initials="J." surname="Höglund">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
            <organization>Nexus Group</organization>
          </author>
          <date day="10" month="July" year="2022"/>
          <abstract>
            <t>This document specifies a CBOR encoding of X.509 certificates. The resulting certificates are called C509 Certificates. The CBOR encoding supports a large subset of RFC 5280 and all certificates compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA eUICC, and CA/Browser Forum Baseline Requirements profiles. When used to re-encode DER encoded X.509 certificates, the CBOR encoding can in many cases reduce the size of RFC 7925 profiled certificates with over 50%. The CBOR encoded structure can alternatively be signed directly ("natively signed"), which does not require re- encoding for the signature to be verified. The document also specifies C509 COSE headers, a C509 TLS certificate type, and a C509 file format.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-04"/>
      </reference>
      <reference anchor="I-D.ietf-lake-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-lake-edhoc-18.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
        <front>
          <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <date day="28" month="November" year="2022"/>
          <abstract>
            <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios and a main use case is to establish an OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code size can be kept very low.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-18"/>
      </reference>
      <reference anchor="I-D.ietf-lake-traces" target="https://www.ietf.org/archive/id/draft-ietf-lake-traces-03.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-traces.xml">
        <front>
          <title>Traces of EDHOC</title>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Marek Serafin" initials="M." surname="Serafin">
            <organization>ASSA ABLOY</organization>
          </author>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE</organization>
          </author>
          <date day="24" month="October" year="2022"/>
          <abstract>
            <t>This document contains some example traces of Ephemeral Diffie- Hellman Over COSE (EDHOC).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lake-traces-03"/>
      </reference>
      <reference anchor="I-D.ietf-tls-ctls" target="https://www.ietf.org/archive/id/draft-ietf-tls-ctls-06.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-ctls.xml">
        <front>
          <title>Compact TLS 1.3</title>
          <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
            <organization>Mozilla</organization>
          </author>
          <author fullname="Richard Barnes" initials="R." surname="Barnes">
            <organization>Cisco</organization>
          </author>
          <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
            <organization>Arm Limited</organization>
          </author>
          <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
            <organization>Google</organization>
          </author>
          <date day="9" month="July" year="2022"/>
          <abstract>
            <t>This document specifies a "compact" version of TLS and DTLS. It is logically isomorphic to ordinary TLS, but saves space by trimming obsolete material, tighter encoding, a template-based specialization technique, and alternative cryptographic techniques. cTLS is not directly interoperable with TLS or DTLS, but it should eventually be possible for a single server port to offer cTLS alongside TLS or DTLS.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ctls-06"/>
      </reference>
      <reference anchor="E-impact" target="https://www.iab.org/activities/workshops/e-impact/">
        <front>
          <title>Workshop on Environmental Impact of Internet Applications and Systems</title>
          <author initials="" surname="Internet Architecture Board">
            <organization/>
          </author>
          <date year="2022" month="December"/>
        </front>
      </reference>
      <reference anchor="OlegHahm-ghc" target="https://github.com/OlegHahm/ghc">
        <front>
          <title>Generic Header Compression</title>
          <author initials="O." surname="Hahm">
            <organization/>
          </author>
          <date year="2016" month="July"/>
        </front>
      </reference>
      <reference anchor="IoT-Cert" target="https://kth.diva-portal.org/smash/get/diva2:1153958/FULLTEXT01.pdf">
        <front>
          <title>Digital Certificates for the Internet of Things</title>
          <author initials="F." surname="Forsby">
            <organization/>
          </author>
          <date year="2017" month="June"/>
        </front>
      </reference>
      <reference anchor="Illustrated-TLS12" target="https://tls12.xargs.org/">
        <front>
          <title>The Illustrated TLS 1.2 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="Illustrated-TLS13" target="https://tls13.xargs.org/">
        <front>
          <title>The Illustrated TLS 1.3 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="Illustrated-DTLS13" target="https://dtls.xargs.org/">
        <front>
          <title>The Illustrated DTLS 1.3 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors want to thank
<contact fullname="Ari Keränen"/>,
<contact fullname="Carsten Bormann"/>,
<contact fullname="Stephan Koch"/>,
<contact fullname="Göran Selander"/>,
and
<contact fullname="Hannes Tschofenig"/>
for comments and suggestions on previous versions of the draft.</t>
      <t>All 6LoWPAN-GHC compression was done with <xref target="OlegHahm-ghc"/>. <xref target="Illustrated-TLS13"/> as a was a useful resource for the TLS handshake content and formatting and <xref target="IoT-Cert"/> was a useful resource for SubjectPublicKeyInfo formatting.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
