<?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  (Ruby 3.0.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-lpwan-8824-update-00" category="std" consensus="true" submissionType="IETF" updates="8824" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="Updates on using SCHC for CoAP">Clarifications and Updates on using Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-lpwan-8824-update-00"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>Laurent.Toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="I." surname="Martinez" fullname="Ivan Martinez">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>ivanmarinomartinez@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Internet</area>
    <workgroup>LPWAN Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document clarifies, updates and extends the method specified in RFC 8824 for compressing Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. In particular, it considers recently defined CoAP options and specifies how CoAP headers are compressed in the presence of intermediaries. Therefore, this document updates RFC 8824.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    IPv6 over Low Power Wide-Area Networks Working Group mailing list (lp-wan@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lp-wan/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/git@gitlab.com:crimson84/draft-tiloca-lpwan-8824-update"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> is a web-transfer protocol intended for applications based on the REST (Representational State Transfer) paradigm, and designed to be affordable also for resource-constrained devices.</t>
      <t>In order to enable the use of CoAP in LPWANs (Low-Power Wide-Area Networks) as well as to improve performance, <xref target="RFC8824"/> defines how to use the Static Context Header Compression and fragmentation (SCHC) framework <xref target="RFC8724"/> for compressing CoAP headers.</t>
      <t>This document clarifies, updates and extends the SCHC compression of CoAP headers defined in <xref target="RFC8824"/> at the application level, by: providing specific clarifications; updating specific details of the compression processing, based on recent developments related to the security protocol OSCORE <xref target="RFC8613"/> for end-to-end protection of CoAP messages; and extending the compression processing to take into account additional CoAP options and the presence of CoAP proxies.</t>
      <t>In particular, this document updates <xref target="RFC8824"/> as follows.</t>
      <ul spacing="normal">
        <li>It clarifies the SCHC compression for the CoAP options Size1, Size2, Proxy-URI and Proxy-Scheme (see <xref target="coap-options-updated-set"/>).</li>
        <li>It defines the SCHC compression for the CoAP option Hop-Limit (see <xref target="coap-options-hop-limit"/>).</li>
        <li>It defines the SCHC compression for the recently defined CoAP options Echo (see <xref target="coap-options-echo"/>), Request-Tag (see <xref target="coap-options-request-tag"/>), EDHOC (see <xref target="coap-options-edhoc"/>), as well as Q-Block1 and Q-Block2 (see <xref target="coap-extensions-block"/>).</li>
        <li>It updates the SCHC compression processing for the CoAP option OSCORE (see <xref target="coap-extensions-oscore"/>), in the light of recent developments related to the security protocol OSCORE as defined in <xref target="I-D.ietf-core-oscore-key-update"/> and <xref target="I-D.ietf-core-oscore-groupcomm"/>.</li>
        <li>It clarifies how the SCHC compression handles the CoAP payload marker (see <xref target="payload-marker"/>).</li>
        <li>It defines the SCHC compression of CoAP headers in the presence of CoAP proxies (see <xref target="compression-with-proxies"/>).</li>
      </ul>
      <t>This document does not alter the core approach, design choices and features of the SCHC compression applied to CoAP headers.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>Readers are expected to be familiar with the terms and concepts related to the SCHC framework <xref target="RFC8724"/>, the web-transfer protocol CoAP <xref target="RFC7252"/>, the security protocol OSCORE <xref target="RFC8613"/> and the use of SCHC for CoAP <xref target="RFC8824"/>.</t>
      </section>
    </section>
    <section anchor="coap-options">
      <name>CoAP Options</name>
      <t>This section updates and extends <xref section="5" sectionFormat="of" target="RFC8824"/>, as to how SCHC compresses some specific CoAP options. In particular, <xref target="coap-options-updated-set"/> updates <xref section="5.4" sectionFormat="of" target="RFC8824"/>.</t>
      <section anchor="coap-options-updated-set">
        <name>CoAP Option Size1, Size2, Proxy-URI, and Proxy-Scheme Fields</name>
        <t>The SCHC Rule description MAY define sending some field values by describing an empty TV, with the MO set to "ignore" and the CDA set to "value-sent". A Rule MAY also use a "match-mapping" MO when there are different options for the same FID. Otherwise, the Rule sets the TV to the value, the MO to "equal", and the CDA to "not-sent".</t>
      </section>
      <section anchor="coap-options-hop-limit">
        <name>CoAP Option Hop-Limit Field</name>
        <t>The Hop-Limit field is an option defined in <xref target="RFC8768"/> that can be used to detect forwarding loops through a chain of CoAP proxies. The first proxy in the chain that understands the option includes it in a received request with a proper value set, before forwarding the request. Any following proxy that understands the option decrements the option value and forwards the request if the new value is different than zero, or returns a 5.08 (Hop Limit Reached) error response otherwise.</t>
        <t>When a packet uses the Hop-Limit option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-echo">
        <name>CoAP Option Echo Field</name>
        <t>The Echo field is an option defined in <xref target="RFC9175"/> that a server can include in a response as a challenge to the client, and that the client echoes back to the server in one or more requests. This enables the server to verify the freshness of a request and to cryptographically verify the aliveness of the client. Also, it forces the client to demonstrate reachability at its claimed network address.</t>
        <t>When a packet uses the Echo option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-request-tag">
        <name>CoAP Option Request-Tag Field</name>
        <t>The Request-Tag field is an option defined in <xref target="RFC9175"/> that the client can set in request messages of block-wise operations, with value an ephemeral short-lived identifier of the specific block-wise operation in question. This allows the server to match message fragments belonging to the same request operation and, if the server supports it, to reliably process simultaneous block-wise request operations on a single resource. If requests are integrity protected, this also protects against interchange of fragments between different block-wise request operations.</t>
        <t>When a packet uses the Request-Tag option, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".</t>
      </section>
      <section anchor="coap-options-edhoc">
        <name>CoAP Option EDHOC Field</name>
        <t>The EDHOC field is an option defined in <xref target="I-D.ietf-core-oscore-edhoc"/> that a client can include in a request, in order to perform an optimized, shortened execution of the authenticated key establishment protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>. Such a request conveys both the final EDHOC message and actual application data, where the latter is protected with OSCORE <xref target="RFC8613"/> using a Security Context derived from the result of the current EDHOC execution.</t>
        <t>The option occurs at most once and is always empty. The SCHC Rule MUST describe an empty TV, with the MO set to "equal" and the CDA set to "not-sent".</t>
      </section>
    </section>
    <section anchor="coap-extensions">
      <name>SCHC Compression of CoAP Extensions</name>
      <t>This section updates and extends <xref section="6" sectionFormat="of" target="RFC8824"/>, as to how SCHC compresses some specific CoAP options providing protocol extensions. In particular, <xref target="coap-extensions-block"/> updates <xref section="6.1" sectionFormat="of" target="RFC8824"/>, while <xref target="coap-extensions-oscore"/> updates <xref section="6.4" sectionFormat="of" target="RFC8824"/>.</t>
      <section anchor="coap-extensions-block">
        <name>Block</name>
        <t>When a packet uses a Block1 or Block2 option <xref target="RFC7959"/> or a Q-Block1 or Q-Block2 option <xref target="RFC9177"/>, SCHC compression MUST send its content in the Compression Residue. The SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent". The Block1, Block2, Q-Block1 and Q-Block2 options allow fragmentation at the CoAP level that is compatible with SCHC fragmentation. Both fragmentation mechanisms are complementary, and the node may use them for the same packet as needed.</t>
      </section>
      <section anchor="coap-extensions-oscore">
        <name>OSCORE</name>
        <t>The security protocol OSCORE <xref target="RFC8613"/> provides end-to-end protection for CoAP messages. Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE and defines end-to-end protection of CoAP messages in group communication <xref target="I-D.ietf-core-groupcomm-bis"/>. This section describes how SCHC Rules can be applied to compress messages protected with OSCORE or Group OSCORE.</t>
        <t><xref target="fig-oscore-option"/> shows the OSCORE option value encoding, which was originally defined in <xref section="6.1" sectionFormat="of" target="RFC8613"/> and has been extended in <xref target="I-D.ietf-core-oscore-key-update"/><xref target="I-D.ietf-core-oscore-groupcomm"/>. The first byte of the OSCORE option value specifies the content of the OSCORE option using flags, as follows.</t>
        <ul spacing="normal">
          <li>As defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/>, the eight least significant bit, when set, indicates that the OSCORE option includes a second byte of flags. The seventh least significant bit is currently unassigned.</li>
          <li>As defined in <xref section="5" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>, the sixth least significant bit, when set, indicates that the message including the OSCORE option is protected with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). When not set, the bit indicates that the message is protected either with OSCORE, or with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), while the specific OSCORE Security Context used to protect the message determines which of the two cases applies.</li>
          <li>As defined in <xref section="6.1" sectionFormat="of" target="RFC8613"/>, bit h, when set, indicates the presence of the kid context field in the option. Also, bit k, when set, indicates the presence of a kid field. Finally, the three least significant bits form the field n, which indicates the length of the piv (Partial Initialization Vector) field in bytes. When n = 0, no piv is present.</li>
        </ul>
        <t>Assuming the presence of a single flag byte, this is followed by the piv field, the kid context field, and the kid field, in that order. Also, if present, the kid context field's length (in bytes) is encoded in the first byte, denoted by "s".</t>
        <figure anchor="fig-oscore-option">
          <name>OSCORE Option</name>
          <artwork align="center"><![CDATA[
 0 1 2 3 4 5 6 7 <--------- n bytes ------------->
+-+-+-+-+-+-+-+-+---------------------------------+
|0 0 0|h|k|  n  |        Partial IV (if any)      |
+-+-+-+-+-+-+-+-+---------------------------------+
|               |                                 |
|<--   CoAP  -->|<------- CoAP OSCORE_piv ------> |
   OSCORE_flags

 <-- 1 byte --> <------ s bytes ----->
+--------------+----------------------+-----------------------+
|  s (if any)  | kid context (if any) | kid (if any)      ... |
+--------------+----------------------+-----------------------+
|                                     |                       |
|<-------- CoAP OSCORE_kidctx ------->|<-- CoAP OSCORE_kid -->|
]]></artwork>
        </figure>
        <t><xref target="fig-oscore-option-kudos"/> shows the OSCORE option value encoding, with the second byte of flags also present. As defined in <xref section="4.1" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/>, the least significant bit d of this byte, when set, indicates that two additional fields are included in the option, following the kid context field (if any).</t>
        <t>These two fields, namely x and nonce, are used when running the key update protocol KUDOS defined in <xref target="I-D.ietf-core-oscore-key-update"/>, with x specifying the length of the nonce field in bytes as well as the specific behavior to adopt during the KUDOS execution. In particular, the figure provides the breakdown of the x field, where its three least significant bits form the sub-field m, which specifies the size of nonce in bytes, minus 1.</t>
        <figure anchor="fig-oscore-option-kudos">
          <name>OSCORE Option during a KUDOS execution</name>
          <artwork align="center"><![CDATA[
 0 1 2 3 4 5 6 7  8   9   10  11  12  13  14  15 <----- n bytes ----->
+-+-+-+-+-+-+-+-+---+---+---+---+---+---+---+---+---------------------+
|1|0|0|h|k|  n  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | d | Partial IV (if any) |
+-+-+-+-+-+-+-+-+---+---+---+---+---+---+---+---+---------------------+
|                                               |                     |
|<------------------- CoAP -------------------->|<- CoAP OSCORE_piv ->|
                   OSCORE_flags

 <- 1 byte -> <----------- s bytes ------------> <------ 1 byte ----->
+------------+----------------------------------+---------------------+
| s (if any) |       kid context (if any)       |     x (if any)      |
+------------+----------------------------------+---------------------+
|                                               |                     |
|<------------- CoAP OSCORE_kidctx ------------>|<-- CoAP OSCORE_x -->|
                                                |                     |
                                                |   0 1 2 3 4 5 6 7   |
                                                |  +-+-+-+-+-+-+-+-+  |
                                                |  |0|0|b|p|   m   |  |
                                                |  +-+-+-+-+-+-+-+-+  |

 <----- m + 1 bytes ----->
+-------------------------+-----------------------+
|      nonce (if any)     |    kid (if any) ...   |
+-------------------------+-----------------------+
|                         |                       |
|<-- CoAP OSCORE_nonce -->|<-- CoAP OSCORE_kid -->|
]]></artwork>
        </figure>
        <t>To better perform OSCORE SCHC compression, the Rule description needs to identify the OSCORE option and the fields it contains. Conceptually, it discerns up to six distinct pieces of information within the OSCORE option: the flag bits, the piv, the kid context, the x byte, the nonce, and the kid. The SCHC Rule splits the OSCORE option into six Field Descriptors in order to compress them:</t>
        <ul spacing="normal">
          <li>CoAP OSCORE_flags</li>
          <li>CoAP OSCORE_piv</li>
          <li>CoAP OSCORE_kidctx</li>
          <li>CoAP OSCORE_x</li>
          <li>CoAP OSCORE_nonce</li>
          <li>CoAP OSCORE_kid</li>
        </ul>
        <t><xref target="fig-oscore-option"/> shows the OSCORE option format with the four fields OSCORE_flags, OSCORE_piv, OSCORE_kidctx and OSCORE_kid superimposed on it. Also, <xref target="fig-oscore-option-kudos"/> shows the OSCORE option format with all the six fields superimposed on it, with reference to a message exchanged during an execution of the KUDOS key update protocol.</t>
        <t>In both cases, the CoAP OSCORE_kidctx field directly includes the size octet, s. In the latter case, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>For the x field, if both endpoints know the value, then the SCHC Rule will describe a TV to this value, with the MO set to "equal" and the CDA set to "not-sent". This models the case where the two endpoints run KUDOS with a pre-agreed size of the nonce field, as well as with a pre-agreed combination of its modes of operations, as per the bits b and p of the m sub-field.  </t>
            <t>
Otherwise, if the value is changing over time, the SCHC Rule will set the MO to "ignore" and the CDA to "value-sent". The Rule may also use a "match-mapping" MO to compress this field, in case the two endpoints pre-agree on a set of alternative ways to run KUDOS, with respect to the size of the nonce field and the combination of the KUDOS modes of operation to use.</t>
          </li>
          <li>
            <t>For the nonce field, the SCHC Rule describes an empty TV with the MO set to "ignore" and the CDA set to "value-sent".  </t>
            <t>
In addition, for the value of the nonce field, SCHC MUST NOT send it as variable-length data in the Compression Residue, to avoid ambiguity with the length of the nonce field encoded in the x field. Therefore, SCHC MUST use the m sub-field of the x field to define the size of the Compression Residue. SCHC designates a specific function, "osc.x.m", that the Rule MUST use to complete the Field Descriptor. During the decompression, this function returns the length of the nonce field in bytes, as the value of the three least significant bits of the m sub-field of the x field, plus 1.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="payload-marker">
      <name>Compression of the CoAP Payload Marker</name>
      <t>As originally intended in <xref target="RFC8824"/>, the following applies with respect to the 0xFF payload marker. A SCHC compression rule for CoAP includes all the expected CoAP options, therefore the payload marker does not have to be specified.</t>
      <section anchor="payload-marker-without-e2e">
        <name>Without End-to-End Security</name>
        <t>If the CoAP message to compress with SCHC is not going to be protected with OSCORE and includes a payload, then the 0xFF payload marker MUST NOT be included in the compressed message, which is composed of the Compression RuleID, the Compression Residue (if any), and the CoAP payload.</t>
        <t>After having decompressed an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the CoAP payload, if any was present after the consumed Compression Residue.</t>
      </section>
      <section anchor="with-end-to-end-security">
        <name>With End-to-End Security</name>
        <t>If the CoAP message has to be protected with OSCORE, the same rationale described in <xref target="payload-marker-without-e2e"/> applies to both the Inner SCHC Compression and the Outer SCHC Compression defined in <xref section="7.2" sectionFormat="of" target="RFC8824"/>. That is:</t>
        <ul spacing="normal">
          <li>After the Inner SCHC Compression of a CoAP message including a payload, the payload marker MUST NOT be included in the input to the AEAD Encryption, which is composed of the Inner Compression RuleID, the Inner Compression Residue (if any), and the CoAP payload.</li>
          <li>The Outer SCHC Compression takes as input the OSCORE-protected message, which always includes a payload (i.e., the OSCORE Ciphertext) preceded by the payload marker.</li>
          <li>After the Outer SCHC Compression, the payload marker MUST NOT be included in the final compressed message, which is composed of the Outer Compression RuleID, the Outer Compression Residue (if any), and the OSCORE Ciphertext.</li>
        </ul>
        <t>After having completed the Outer SCHC Decompression of an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the OSCORE Ciphertext.</t>
        <t>After having completed the Inner SCHC Decompression of an incoming message, the recipient endpoint MUST prepend the 0xFF payload marker to the CoAP payload, if any was present after the consumed Compression Residue.</t>
      </section>
    </section>
    <section anchor="compression-with-proxies">
      <name>CoAP Header Compression with Proxies</name>
      <t>Building on <xref target="RFC8824"/>, this section clarifies how SCHC Compression/Decompression is performed when CoAP proxies are deployed. The following refers to the origin client and origin server as application endpoints.</t>
      <section anchor="without-end-to-end-security">
        <name>Without End-to-End Security</name>
        <t>In case OSCORE is not used end-to-end between client and server, the SCHC processing occurs hop-by-hop, by relying on SCHC Rules that are consistently shared between two adjacent hops.</t>
        <t>In particular, SCHC is used as defined below.</t>
        <ul spacing="normal">
          <li>The sender application endpoint compresses the CoAP message, by using the SCHC Rules that it shares with the next hop towards the recipient application endpoint. The resulting, compressed message is sent to the next hop towards the recipient application endpoint.</li>
          <li>
            <t>Each proxy decompresses the incoming compressed message, by using the SCHC Rules that it shares with the (previous hop towards the) sender application endpoint.  </t>
            <t>
Then, the proxy compresses the CoAP message to be forwarded, by using the SCHC Rules that it shares with the (next hop towards the) recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the (next hop towards the) recipient application endpoint.</t>
          </li>
          <li>The recipient application endpoint decompresses the incoming compressed message, by using the SCHC Rules that it shares with the previous hop towards the sender application endpoint.</li>
        </ul>
      </section>
      <section anchor="with-end-to-end-security-1">
        <name>With End-to-End Security</name>
        <t>In case OSCORE is used end-to-end between client and server (see <xref section="7.2" sectionFormat="of" target="RFC8824"/>), the following applies.</t>
        <t>The SCHC processing occurs end-to-end as to the Inner SCHC Compression/Decompression, by relying on Inner SCHC Rules that are consistently shared between the two application endpoints acting as OSCORE endpoints and sharing the used OSCORE Security Context.</t>
        <t>Instead, the SCHC processing occurs hop-by-hop as to the Outer SCHC Compression/Decompression, by relying on Outer SCHC Rules that are consistently shared between two adjacent hops.</t>
        <t>In particular, SCHC is used as defined below.</t>
        <ul spacing="normal">
          <li>
            <t>The sender application endpoint performs the Inner SCHC Compression on the original CoAP message, by using the Inner SCHC Rules that it shares with the recipient application endpoint.  </t>
            <t>
Following the AEAD Encryption of the compressed input obtained from the previous step, the sender application endpoint performs the Outer SCHC Compression on the resulting OSCORE-protected message, by using the Outer SCHC Rules that it shares with the next hop towards the recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the next hop towards the recipient application endpoint.</t>
          </li>
          <li>
            <t>Each proxy performs the Outer SCHC Decompression on the incoming compressed message, by using the SCHC Rules that it shares with the (previous hop towards the) sender application endpoint.  </t>
            <t>
Then, the proxy performs the Outer SCHC Compression of the OSCORE-protected message to be forwarded, by using the SCHC Rules that it shares with the (next hop towards the) recipient application endpoint.  </t>
            <t>
The resulting, compressed message is sent to the (next hop towards the) recipient application endpoint.</t>
          </li>
          <li>
            <t>The recipient application endpoint performs the Outer SCHC Decompression on the incoming compressed message, by using the Outer SCHC Rules that it shares with the previous hop towards the sender application endpoint.  </t>
            <t>
Then, the recipient application endpoint performs the AEAD Decryption of the OSCORE-protected message obtained from the previous step.  </t>
            <t>
Finally, the recipient application endpoint performs the Inner SCHC Decompression on the compressed input obtained from the previous step, by using the Inner SCHC rules that it shares with the sender application endpoint. The result is the original CoAP message produced by the sender application endpoint.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="examples">
      <name>Examples of CoAP Header Compression with Proxies</name>
      <t>TBD</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations discussed in <xref target="RFC8724"/> and <xref target="RFC8824"/> continue to apply.  When SCHC is used in the presence of CoAP proxies, the security considerations discussed in <xref section="11.2" sectionFormat="of" target="RFC7252"/> continue to apply. When SCHC is used with OSCORE, the security considerations discussed in <xref target="RFC8613"/> continue to apply.</t>
      <t>The security considerations in <xref target="RFC8824"/> specifically discuss how the use of SCHC for CoAP when OSCORE is also used may result in (more frequently) triggering key-renewal operations for the two endpoints. This can be due to an earlier exhaustion of the OSCORE Sender Sequence Number space, or to the installation of new compression Rules on one of the endpoints.</t>
      <t>In either case, the two endpoints can run the key update protocol KUDOS defined in <xref target="I-D.ietf-core-oscore-key-update"/>, as the recommended method to update their shared OSCORE Security Context.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC7959" target="https://www.rfc-editor.org/info/rfc7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks.  Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates.  In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS).  These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs.  In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers.  Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations.  Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8724" target="https://www.rfc-editor.org/info/rfc8724">
          <front>
            <title>SCHC: Generic Framework for Static Context Header Compression and Fragmentation</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo">
              <organization/>
            </author>
            <author fullname="L. Toutain" initials="L." surname="Toutain">
              <organization/>
            </author>
            <author fullname="C. Gomez" initials="C." surname="Gomez">
              <organization/>
            </author>
            <author fullname="D. Barthel" initials="D." surname="Barthel">
              <organization/>
            </author>
            <author fullname="JC. Zuniga" initials="JC." surname="Zuniga">
              <organization/>
            </author>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document defines the Static Context Header Compression and fragmentation (SCHC) framework, which provides both a header compression mechanism and an optional fragmentation mechanism. SCHC has been designed with Low-Power Wide Area Networks (LPWANs) in mind.</t>
              <t>SCHC compression is based on a common static context stored both in the LPWAN device and in the network infrastructure side. This document defines a generic header compression mechanism and its application to compress IPv6/UDP headers.</t>
              <t>This document also specifies an optional fragmentation and reassembly mechanism. It can be used to support the IPv6 MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 datagrams that, after SCHC compression or when such compression was not possible, still exceed the Layer 2 maximum payload size.</t>
              <t>The SCHC header compression and fragmentation mechanisms are independent of the specific LPWAN technology over which they are used. This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities. Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents. Data models for the context and profiles are out of scope.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8724"/>
          <seriesInfo name="DOI" value="10.17487/RFC8724"/>
        </reference>
        <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <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="RFC8768" target="https://www.rfc-editor.org/info/rfc8768">
          <front>
            <title>Constrained Application Protocol (CoAP) Hop-Limit Option</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair">
              <organization/>
            </author>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K">
              <organization/>
            </author>
            <author fullname="J. Shallow" initials="J." surname="Shallow">
              <organization/>
            </author>
            <date month="March" year="2020"/>
            <abstract>
              <t>The presence of Constrained Application Protocol (CoAP) proxies may lead to infinite forwarding loops, which is undesirable. To prevent and detect such loops, this document specifies the Hop-Limit CoAP option.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8768"/>
          <seriesInfo name="DOI" value="10.17487/RFC8768"/>
        </reference>
        <reference anchor="RFC8824" target="https://www.rfc-editor.org/info/rfc8824">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo">
              <organization/>
            </author>
            <author fullname="L. Toutain" initials="L." surname="Toutain">
              <organization/>
            </author>
            <author fullname="R. Andreasen" initials="R." surname="Andreasen">
              <organization/>
            </author>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage the asymmetry for more efficient compression Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8824"/>
          <seriesInfo name="DOI" value="10.17487/RFC8824"/>
        </reference>
        <reference anchor="RFC9175" target="https://www.rfc-editor.org/info/rfc9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss">
              <organization/>
            </author>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <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="RFC9177" target="https://www.rfc-editor.org/info/rfc9177">
          <front>
            <title>Constrained Application Protocol (CoAP) Block-Wise Transfer Options Supporting Robust Transmission</title>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair">
              <organization/>
            </author>
            <author fullname="J. Shallow" initials="J." surname="Shallow">
              <organization/>
            </author>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies alternative Constrained Application Protocol (CoAP) block-wise transfer options: Q-Block1 and Q-Block2.</t>
              <t>These options are similar to, but distinct from, the CoAP Block1 and Block2 options defined in RFC 7959. The Q-Block1 and Q-Block2 options are not intended to replace the Block1 and Block2 options but rather have the goal of supporting Non-confirmable (NON) messages for large amounts of data with fewer packet interchanges. Also, the Q-Block1 and Q-Block2 options support faster recovery should any of the blocks get lost in transmission.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9177"/>
          <seriesInfo name="DOI" value="10.17487/RFC9177"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-edhoc-06">
          <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://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-groupcomm-17">
          <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-core-oscore-key-update" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-oscore-key-update-03">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) uses
   AEAD algorithms to ensure confidentiality and integrity of exchanged
   messages.  Due to known issues allowing forgery attacks against AEAD
   algorithms, limits should be followed on the number of times a
   specific key is used for encryption or decryption.  Among other
   reasons, approaching key usage limits requires updating the OSCORE
   keying material before communications can securely continue.

   This document defines how two OSCORE peers must follow these key
   usage limits and what steps they must take to preserve the security
   of their communications.  Also, it specifies Key Update for OSCORE
   (KUDOS), a lightweight procedure that two peers can use to update
   their keying material and establish a new OSCORE Security Context.
   Accordingly, it updates the use of the OSCORE flag bits in the CoAP
   OSCORE Option.  Finally, this document specifies a method that two
   peers can use to update their OSCORE identifiers, as a stand-alone
   procedure or embedded in a KUDOS execution.  Thus, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-03"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-groupcomm-bis" target="https://datatracker.ietf.org/doc/html/draft-ietf-core-groupcomm-bis-08">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="11" month="January" year="2023"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (CoAP) for group communication, including the use of UDP/IP
   multicast as the default underlying data transport.  Both unsecured
   and secured CoAP group communication are specified.  Security is
   achieved by use of the Group Object Security for Constrained RESTful
   Environments (Group OSCORE) protocol.  The target application area of
   this specification is any group communication use cases that involve
   resource-constrained devices or networks that support CoAP.  This
   document replaces RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-08"/>
        </reference>
        <reference anchor="I-D.ietf-lake-edhoc" target="https://datatracker.ietf.org/doc/html/draft-ietf-lake-edhoc-19">
          <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="3" month="February" year="2023"/>
            <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-19"/>
        </reference>
      </references>
    </references>
    <section anchor="yang-data-model">
      <name>YANG data model</name>
      <t>TBD</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Göran Selander"/> for his comments and feedback.</t>
      <t>The work on this document has been partly supported by the H2020 projects SIFIS-Home (Grant agreement 952652) and ARCADIAN-IoT (Grant agreement 101020259).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
w9e7o8H/AKBdgXLfXwAA

-->

</rfc>
