<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-core-oscore-piv-enc-00" category="std" consensus="true" submissionType="IETF" updates="8613" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="Encrypted OSCORE Partial IV">Encrypted Partial IV in the Constrained Application Protocol (CoAP) OSCORE Option</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-piv-enc-00"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>164 40</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <city>Stockholm</city>
          <code>164 80</code>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <area>WIT</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 65?>

<t>The security protocol Object Security for Constrained RESTful Environments (OSCORE) provides end-to-end protection of messages exchanged with the Constrained Application Protocol (CoAP). Messages protected with OSCORE include a CoAP OSCORE option, where the field Partial IV specifies the sequence number value used by the message sender. In the interest of encrypting as much information as reasonably possible, this document defines a lightweight add-on method for encrypting the Partial IV within the OSCORE option. Therefore, it updates RFC 8613. Combined with the update of OSCORE identifiers, the encryption of Partial IV values helps counteracting on-path adversaries that attempt to correlate the sequence numbers observed in different network paths, in order to track OSCORE endpoints that perform a network path migration. The defined encryption method is applicable also to the security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE).</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Constrained RESTful Environments Working Group mailing list (core@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-core-oscore-piv-enc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 69?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The security protocol Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/> provides end-to-end protection of messages exchanged with the Constrained Application Protocol (CoAP) <xref target="RFC7252"/>. OSCORE operates at the application layer by using CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/> and is independent of the specific transport used to exchange CoAP messages.</t>
      <t>Messages protected with OSCORE include the CoAP OSCORE option, which specifies information for the message recipient to correctly perform decryption and verification upon message reception. In particular, the OSCORE option can include a Partial IV, which specifies the sequence number value used by a sender endpoint when protecting an outgoing message. A Partial IV is always present in request messages, while it is typically absent in response messages, with a few exceptions mandating its presence.</t>
      <t>Following a message protection with OSCORE, the OSCORE option added to the message is not encrypted, since its content provides a recipient endpoint with information for processing the OSCORE-protected incoming message. However, sending the Partial IV in plaintext enables on-path adversaries to perform trivial tracking of OSCORE endpoints across different network paths, by correlating the sequence numbers observed in those network paths (e.g., following a network path migration, possibly across different network segments).</t>
      <t>In the interest of encrypting as much information as reasonably possible, this document updates <xref target="RFC8613"/> and defines a lightweight add-on method for encrypting the Partial IV within the OSCORE option.</t>
      <t>This method does not require an in-band signaling and its use does not arbitrarily change on a per-message basis. Instead, upon establishing an OSCORE Security Context, the communicating OSCORE endpoints already have an agreement on either encrypting or not encrypting the Partial IV when they use that Security Context, for every OSCORE-protected message where a Partial IV is included.</t>
      <t>Like for the overall protection of messages with OSCORE, the encryption of the Partial IV is agnostic of how exactly the OSCORE Security Context was established and of how the agreement on encrypting the Partial IV was reached. Nevertheless, this document also defines means that endpoints can use to reach that agreement. Absent an explicit agreement, the Partial IV specified in the OSCORE option remains unencrypted, in order to preserve interoperability.</t>
      <t>Although it is a self-standing functionality, the encryption of the Partial IV is intended to be combined with the update of OSCORE identifiers defined in <xref target="I-D.ietf-core-oscore-id-update"/>. When OSCORE endpoints perform a network path migration with consequent change of their addressing information, such a combination helps against on-path adversaries that attempt to track OSCORE endpoints across different network paths.</t>
      <t>The encryption method defined in this document is applicable also to the security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) <xref target="I-D.ietf-core-oscore-groupcomm"/> that protects group communication for CoAP <xref target="I-D.ietf-core-groupcomm-bis"/>. In the interest of such a case, this document also defines means to synchronize the members of an OSCORE group with respect to the encryption of the Partial IV within the group.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>Readers are expected to be familiar with the terms and concepts related to CoAP <xref target="RFC7252"/>, Concise Data Definition Language (CDDL) <xref target="RFC8610"/>, Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>, COSE <xref target="RFC9052"/>, OSCORE <xref target="RFC8613"/>, and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      </section>
    </section>
    <section anchor="sec-piv-encryption-key">
      <name>PIV Encryption Key</name>
      <t>When the encryption of the Partial IV is enabled, the (Group) OSCORE Security Context is extended with one additional parameter in the Common Context.</t>
      <t>The new parameter PIV Encryption Key specifies the encryption key for deriving a keystream to encrypt/decrypt a Partial IV, when this is included in a message protected with (Group) OSCORE.</t>
      <t>The PIV Encryption Key is derived as defined for the Sender/Recipient Keys in <xref section="3.2.1" sectionFormat="of" target="RFC8613"/>, with the following differences.</t>
      <ul spacing="normal">
        <li>
          <t>The 'id' element of the 'info' array is the empty byte string.</t>
        </li>
        <li>
          <t>The 'type' element of the 'info' array is "PIVEKey". The label is an ASCII string and does not include a trailing NUL byte.</t>
        </li>
        <li>
          <t>If the Security Context is used for Group OSCORE and the Group Encryption Algorithm in the Common Context is set (see <xref section="2.1.7" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), then:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'alg_aead' element of the 'info' array specifies the Group Encryption Algorithm from the Common Context encoded as a CBOR integer or text string, consistently with the "Value" field in the entry of the "COSE Algorithms" Registry for this algorithm <xref target="COSE.Algorithms"/>.</t>
            </li>
            <li>
              <t>The L parameter of the HKDF and the 'L' element of the 'info' array are the length in bytes of the key for the Group Encryption Algorithm specified in the Common Context. While the obtained PIV Encryption Key is never used with the Group Encryption Algorithm, its length was chosen to obtain a matching level of security.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>If the Security Context is used for Group OSCORE and the Group Encryption Algorithm in the Common Context is not set (see <xref section="2.1.7" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), then:  </t>
          <ul spacing="normal">
            <li>
              <t>The 'alg_aead' element of the 'info' array specifies the AEAD Algorithm from the Common Context (see <xref section="2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) encoded as a CBOR integer or text string, consistently with the "Value" field in the entry of the "COSE Algorithms" Registry for this algorithm <xref target="COSE.Algorithms"/>.</t>
            </li>
            <li>
              <t>The L parameter of the HKDF and the 'L' element of the 'info' array are the length in bytes of the key for the AEAD Algorithm specified in the Common Context. While the obtained PIV Encryption Key is never used with the AEAD Algorithm, its length was chosen to obtain a matching level of security.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="sec-enc-piv">
      <name>Encryption of the Partial IV</name>
      <t>Once composed an OSCORE-protected outgoing message MSG that includes the Partial IV in the OSCORE option (see <xref section="6.1" sectionFormat="of" target="RFC8613"/>), the sender endpoint performs the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>Compose SAMPLE as the first N bytes of the CoAP payload of MSG, where N = min(LENGTH, 16) and LENGTH denotes the length in bytes of the CoAP payload of MSG.  </t>
          <t>
Note that:  </t>
          <ul spacing="normal">
            <li>
              <t>LENGTH is guaranteed to have a minimum value of 9.</t>
            </li>
            <li>
              <t>If MSG was protected with OSCORE <xref target="RFC8613"/> or instead with Group OSCORE using the pairwise mode (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), then the CoAP payload is the ciphertext of the COSE object.</t>
            </li>
            <li>
              <t>If MSG was protected with Group OSCORE using the group mode (see <xref section="7" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), then the CoAP payload is the ciphertext of the COSE object concatenated with the encrypted countersignature.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Compose INPUT as follows:  </t>
          <ul spacing="normal">
            <li>
              <t>If the length of SAMPLE is less than 16 bytes, INPUT is obtained by left-padding SAMPLE with zeroes to exactly 16 bytes.</t>
            </li>
            <li>
              <t>If the length of SAMPLE is 16 bytes, then INPUT takes SAMPLE.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Compute the 16-byte IV_KEYSTREAM as below:  </t>
          <t>
IV_KEYSTREAM = AES-ECB(PIV Encryption Key, INPUT)  </t>
          <t>
where:  </t>
          <ul spacing="normal">
            <li>
              <t>AES-ECB is the AES algorithm in ECB mode <xref target="AES"/>.</t>
            </li>
            <li>
              <t>PIV Encryption Key is taken from the Common Context of the Security Context used to produce MSG (see <xref target="sec-piv-encryption-key"/>). It is used as encryption key for the AES-ECB encryption.</t>
            </li>
            <li>
              <t>INPUT is the result of Step 2. It is used as plaintext for the AES-ECB encryption.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Compute the encrypted Partial IV, by XORing the plain Partial IV from the OSCORE option of MSG with the Q bytes from the IV_KEYSTREAM's start, where Q is the length in bytes of the plain Partial IV.  </t>
          <t>
For example, if the plain Partial IV from the OSCORE option of MSG is 0x001122 (Q = 3 bytes) and IV_KEYSTREAM is 0xffeeddccbbaa99887766554433221100 (16 bytes), then the bytes of IV_KEYSTREAM to XOR with the plain Partial IV are 0xffeedd.</t>
        </li>
        <li>
          <t>Replace the plain Partial IV in the OSCORE option of MSG with the encrypted Partial IV computed at Step 4.</t>
        </li>
      </ol>
      <t>Once completed the steps above, the sender endpoint transmits MSG as expected.</t>
    </section>
    <section anchor="sec-dec-piv">
      <name>Decryption of the Partial IV</name>
      <t>Upon receiving an incoming message MSG that includes an encrypted Partial IV and after having retrieved the (Group) OSCORE Security Context to process the message, the recipient endpoint performs the following steps.</t>
      <ol spacing="normal" type="1"><li>
          <t>Compute IV_KEYSTREAM by means of the same method defined at Steps 1-3 of <xref target="sec-enc-piv"/>.</t>
        </li>
        <li>
          <t>Compute the plain Partial IV, by XORing the encrypted Partial IV from the OSCORE option of MSG with the Q bytes from the IV_KEYSTREAM's start, where Q is the length in bytes of the encrypted Partial IV.</t>
        </li>
        <li>
          <t>Replace the encrypted Partial IV in the OSCORE option of MSG with the plain Partial IV computed at Step 2.</t>
        </li>
      </ol>
      <t>Once completed the steps above, the recipient endpoint continues processing MSG as expected.</t>
    </section>
    <section anchor="considerations-on-effectiveness">
      <name>Considerations on Effectiveness</name>
      <t>If an endpoint that encrypts the Partial IV expects to send more than 256 messages including a Partial IV and protected with the same Sender Context, then that Sender Context <bcp14>SHOULD</bcp14> use 65536 as lowest value for the Sender Sequence Number of that endpoint.</t>
      <t>This ensures that the Partial IV is encoded in at least 3 bytes in the OSCORE option, hence defeating attempts to track an endpoint by leveraging the transition between the encoding of Partial IVs from 1 to 2 bytes in size, or from 2 to 3 bytes in size.</t>
    </section>
    <section anchor="sec-agreement-enc">
      <name>Agreement on Encrypting the Partial IV</name>
      <t>Absent explicit information associated with the (Group) OSCORE Security Context used and an agreement with its peer(s), an endpoint does not encrypt/decrypt the Partial IV when using that Security Context, thereby preserving interoperability.</t>
      <t>The rest of this section defines means that endpoints can use to reach an agreement about encrypting the Partial IV as specified in this document.</t>
      <section anchor="agreement-for-oscore">
        <name>Agreement for OSCORE</name>
        <t>TBD</t>
        <t>Editor's note: expected means to cover include:</t>
        <ul spacing="normal">
          <li>
            <t>Pre-provisioning</t>
          </li>
          <li>
            <t>In EDHOC</t>
          </li>
          <li>
            <t>In the OSCORE profile of the ACE framework</t>
          </li>
          <li>
            <t>In OMA Lightweight Machine-to-Machine (LwM2M)</t>
          </li>
        </ul>
      </section>
      <section anchor="agreement-for-group-oscore">
        <name>Agreement for Group OSCORE</name>
        <t>TBD</t>
        <t>Editor's note: expected means to cover include:</t>
        <ul spacing="normal">
          <li>
            <t>The OSCORE Group Manager based on the ACE framework  </t>
            <ul spacing="normal">
              <li>
                <t>Messages to (candidate) group members</t>
              </li>
              <li>
                <t>Messages to external signature verifiers</t>
              </li>
              <li>
                <t>Message to/from an Administrator</t>
              </li>
            </ul>
          </li>
          <li>
            <t>A CoAP server supporting observe multicast notifications and self-managing the OSCORE group for its group observations.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations from <xref target="RFC8613"/> and <xref target="I-D.ietf-core-oscore-groupcomm"/> hold for this document when messages are protected with OSCORE or Group OSCORE, respectively. Furthermore, the following considerations also apply.</t>
      <section anchor="limitations">
        <name>Limitations</name>
        <t>The method defined in this document provides confidentiality protection of the Partial IV against passive adversaries.</t>
        <t>An active adversary could guess the plain Partial IV and have a recipient OSCORE endpoint confirm the guesses, e.g., taking advantage of timing side channels. For instance, this can be the case when the recipient endpoint discards an incoming message that is detected as a replay, i.e., without attempting to decrypt and verify the message and hence revealing information through timing side channels.</t>
        <t>Similarly, depending on whether the processing of an incoming request message fails due to a replay detection or instead to a failed decryption and verification, the recipient endpoint would follow-up by sending different, unprotected error response messages, which the adversary can leverage to confirm the guesses.</t>
      </section>
      <section anchor="encryption-robustness">
        <name>Encryption Robustness</name>
        <t>When performing the steps at <xref target="sec-enc-piv"/> and <xref target="sec-dec-piv"/>, using the same PIV Encryption Key and SAMPLE more than once risks compromising the encryption of the Partial IV. That is, encrypting two different Partial IVs by leveraging the same PIV Encryption Key and SAMPLE reveals the exclusive OR of the encrypted Partial IVs.</t>
        <t>Assuming that SAMPLE is consistent with the outcome of a pseudorandom function (PRF), if L bits are sampled, then the odds that two SAMPLE byte strings of length L are identical approach P = 2<sup>-L/2</sup>, that is, the birthday bound. For messages protected with (Group) OSCORE, SAMPLE has a minimum length L_MIN of 72 bits and a maximum length L_MAX of 128 bits. Therefore, P is at least 2<sup>36</sup> (when the CoAP payload has a length of L_MIN bits) and at most 2<sup>64</sup> (when the CoAP payload has a length of L_MAX bits or more).</t>
      </section>
      <section anchor="impact-on-endpoint-trackability">
        <name>Impact on Endpoint Trackability</name>
        <t>The method defined in <xref target="I-D.ietf-core-oscore-id-update"/> allows OSCORE endpoints to update their OSCORE identifiers. Switching to a new OSCORE identifier is particularly useful when an endpoint migrates to a new network path, as it counteracts attempts to track the endpoint across different network paths by leveraging its OSCORE identifier.</t>
        <t>Clearly, an on-path adversary might still be able to track an endpoint, e.g., by leveraging addressing information that does not change upon network migration or by attempting to correlate the Partial IV values observed on different network paths. The method for encrypting the OSCORE Partial IV defined in this document helps against the latter. That is, in case the OSCORE Partial IV is not encrypted, endpoints could be successfully tracked even when different OSCORE identifiers are used on each network path.</t>
        <t>The tracking of an OSCORE endpoint that migrates to a new network path can be largely counteracted by using the method defined in this document, if combined with the use of new source addressing information (e.g., IP address and link-layer address) and of a new OSCORE identifier that the endpoint has not used before in other network paths. This does not prevent other properties of network packets, e.g., their timing or length, from being used to correlate activities of the same endpoint across different network paths.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD</t>
      <t>Editor's note: expected actions are registrations of new parameters that effectively enable the means defined in <xref target="sec-agreement-enc"/>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <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="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8613">
          <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="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</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="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="5" month="July" year="2025"/>
            <abstract>
              <t>   This document defines the security protocol 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 protocol
   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 each other member of the group for pairwise OSCORE
   communication.  Group OSCORE can be used between endpoints
   communicating with CoAP or CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-26"/>
        </reference>
        <reference anchor="AES" target="https://doi.org/10.6028/NIST.FIPS.197-upd1">
          <front>
            <title>Advanced encryption standard (AES)</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2023" month="May"/>
          </front>
        </reference>
        <reference anchor="COSE.Algorithms" target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-groupcomm-bis">
          <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="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   The Constrained Application Protocol (CoAP) is a web transfer
   protocol for constrained devices and constrained networks.  In a
   number of use cases, constrained devices often naturally operate in
   groups (e.g., in a building automation scenario, all lights in a
   given room may need to be switched on/off as a group).  This document
   specifies the use of 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 and obsoletes RFC 7390, while
   it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-14"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-id-update">
          <front>
            <title>Identifier Update for OSCORE</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="8" month="January" year="2025"/>
            <abstract>
              <t>   Two peers that communicate with the CoAP protocol can use the Object
   Security for Constrained RESTful Environments (OSCORE) protocol to
   protect their message exchanges end-to-end.  To this end, the two
   peers share an OSCORE Security Context and a number of related
   identifiers.  In particular, each of the two peers stores a Sender ID
   that identifies its own Sender Context within the Security Context,
   and a Recipient ID that identifies the Recipient Context associated
   with the other peer within the same Security Context.  These
   identifiers are sent in plaintext within OSCORE-protected messages.
   Hence, they can be used to correlate messages exchanged between peers
   and track those peers, with consequent privacy implications.  This
   document defines an OSCORE ID update procedure that two peers can use
   to update their OSCORE identifiers.  This procedure can be run stand-
   alone or seamlessly integrated in an execution of the Key Update for
   OSCORE (KUDOS) procedure.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-id-update-02"/>
        </reference>
      </references>
    </references>
    <?line 264?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Rikard Höglund"/> and <contact fullname="Göran Selander"/> for their comments and feedback.</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1c2XIbR5Z9x1fkUA8iOwCIBGlKYtjuhkjIQpubCcpLdHQ4
ElUJsMxCFboWQjCD3zLzFf0B4x+bc+/NrAUokJQn3D0P0w8WWEvmXc9d8lZ3
Op3W3ZHab7WyIAvNkRpEXrKcZ8ZXlzrJAh2q4fcqiFR2Y9RxHKVZooMId/vz
eRh4OgviSF0mcRZ7cai2j+P+5Y66GB1fXA3UxZzutvR4nJi76sr2frlBy4+9
SM+wvZ/oSdbJgjD2dMeLE9OJU/5nHtx1TOR1Qp2ZNGu1gnlypLIkT7Pe7u7b
3V5LJ0YfqR+G163F9AikYoMf4uQ2iKbqmyTO563bxZEaRplJIpN1TmifFug/
Umnmt9J8PAvSFORmyznIGA6u37fyuU+bHak3h3sQkBf7WOxI5dmk86bV0nl2
EydHLcX/69h/FWSFN8666pp5KC4Le2c68eLVW3GCVa+Go4HqvysuQtDGgLph
qie/xImfTnWmI9XrFU94QbY8Ut8GaVYuBRqxy2jQ2Ts8UAe7let5lCV4fLQw
vomK62amg/BIzYisrkj9L0nQTc0aW0L/X+MbUrfJf/tP8JJlaRpHFc4D0ifY
/2vJRp7Im5teYuYHSeDR1aoAhL0RDOv2Jg5nzSy+eTaLv4Dy7szu/hdjN+x6
8azViuIEd4I7Q9q8en/8uvdFz/6E6nfLn/vu59uDt/bn2115dtg56QYGplE1
2ikZHraY0RP9wUispW45LIDz4eia/7Ze2PfvdOTBVYw4DXkZ9Bz5OvHVNlba
4afJPsmolqq329uXBXQyJbu5ybJ5evTqlR8HXWzxam+3e7jbe/OKduq+H16O
untvX3dg4nt47fhiNOj2w2mcBNnNLN1I5rB/3q9sPIGyTZVsWkeV6zQStFgs
uoGONFOl4XPTaGaiLH3lxanh/3Q/3WSz8IUu12kF0aSqo7qwCyl3xkG6UReB
3xGHPmq1sB9ZFx4dDU7fH6mtv0GTnR/xv79vtVqdTkfpMSGdB6C5BvClxstB
ylLNHdJdjH8xXqZG7gbIq8Hj1WB0PclDgN5dkMTCodoW4NuhZe4C36RQr9/J
YgCbz0tjSdJ0PFEzk6Z6Sk988m50NMWSC8jic2C4q87cInZtt4jF3yDywtw3
Sit63l2N2draanFjEsP7TQIT1sJBOjdegKsp307NP3KYqVFRPhubRN3pMDcq
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

-->

</rfc>
