<?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.19 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-corr-clar-00" category="std" consensus="true" submissionType="IETF" updates="6690, 7252, 7641, 7959, 8132, 8323" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="Corrections and Clarifications to CoAP">Constrained Application Protocol (CoAP): Corrections and Clarifications</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-corr-clar-00"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="October" day="14"/>
    <abstract>
      <?line 56?>

<t>RFC 7252 defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including RFC 7641, RFC
7959, RFC 8132, and RFC 8323.
RFC 6690 defines the link format that is used in CoAP self-description
documents.</t>
      <t>Some parts of the specification may be unclear or even contain errors
that may lead to misinterpretations that may impair interoperability
between different implementations.
The present document provides corrections, additions, and
clarifications to the RFCs cited; this document thus updates these
RFCs.
In addition, other clarifications related to the use of CoAP in other
specifications, including RFC 7390 and RFC 8075, are also provided.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-corr-clar/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/corrclar"/>.</t>
    </note>
  </front>
  <middle>
    <?line 74?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7252"/> defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including <xref target="RFC7641"/>,
<xref target="RFC7959"/>, <xref target="RFC8132"/>, and <xref target="RFC8323"/>.
<xref target="RFC6690"/> defines the link format that is used in CoAP
self-description documents.</t>
      <t>During implementation and interoperability testing of these RFCs, and
in their practical use, some ambiguities and common misinterpretations
have been identified, as well as a few errors.</t>
      <t>The present document summarizes identified issues and provides
corrections needed for implementations of CoAP to interoperate, i.e.,
it constitutes an update to the RFCs referenced.  This document also
provides other clarifications related to common misinterpretations of
the specification.  References to CoAP should, therefore, also include
this document.</t>
      <t>In addition, some clarifications and corrections are also provided for
documents that are related to CoAP, including RFC 7390 and RFC 8075.</t>
      <section anchor="process">
        <name>Process</name>
        <section anchor="original-text">
          <name>Original text</name>
          <t>The present document is an Internet-Draft, which is not intended to be
published as an RFC quickly.  Instead, it will be maintained as a
running document of the CoRE WG, probably for a number of years, until
the need for new entries tails off and the document can finally be
published as an RFC.  (This paragraph to be rephrased when that
happens.)</t>
          <t>The status of this document as a running document of the WG implies a
consensus process that is applied in making updates to it.  The rest
of this subsection provides more details about this consensus process.
(This is the intended status; currently, the document is an individual submission only.)</t>
          <t>(Consensus process TBD, but it will likely be based on an editor's
version in a publicly accessible git repository, as well as periodic
calls for consensus that lead to a new published Internet-Draft.)</t>
        </section>
        <section anchor="proposed-text-based-on-ietf-117-and-2023-08-30-core-wg-interim-discussion">
          <name>Proposed text based on IETF 117 and 2023-08-30 CoRE WG interim discussion</name>
          <t>This section describes the process that will be used for developing
the present document (called "-corr-clar" colloquially).</t>
          <t>This process might be revised as its execution progresses.</t>
          <ol spacing="normal" type="1" start="0"><li>
              <t>(Done as of this a draft): include the present process proposal.<br/>
The document can then already be considered for WG adoption.</t>
            </li>
            <li>
              <t>Go through the following available material and revise/create
Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as needed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Existing issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>More to be opened by Jon Shallow regarding Block-wise, see <eref target="https://datatracker.ietf.org/doc/minutes-interim-2023-core-11-202307051400/#attacks-on-the-constrained-application-protocol-coap-christian-amsuss-jon-shallow">JON-ISSUES</eref></t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>CoAP FAQ at the CoRE WIKI <eref target="https://github.com/core-wg/wiki/wiki/CoAP-FAQ">WIKI-FAQ</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Each point likely to become a new, short issue</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Categorize the Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as to the topics they relate to, by tagging them.<br/>
Completing a first round of this will be a task for a dedicated team.</t>
            </li>
            <li>
              <t>For each issue or set of issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>, confirm with the CoRE
WG and gather feedback from affected protocol
designers/implementors if the issue is best to be:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Included and covered in -corr-clar, as is or revised</t>
                </li>
                <li>
                  <t>Simply omitted in -corr-clar</t>
                </li>
                <li>
                  <t>Omitted in -corr-clar and left for a possible -bis document.<br/>
(For example, this might be the case for some specific points related to RFC 7959.)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Reshape the -corr-clar document in order to reflect a sequence of
 pairs (Diagnosis, Therapy), where:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Diagnosis is the gist of a set of Github issues to cover, and</t>
                </li>
                <li>
                  <t>Therapy is the correction or clarification to address those.</t>
                </li>
              </ul>
              <t>
Even though at a high-level, the scope should be already clear by
looking at the table of contents.
That is, at this stage, there is no need to necessarily elaborate
the Therapy in detail, but it is necessary to make a reader
understand "what we are dealing with and taking which direction".</t>
            </li>
            <li>
              <t>WG document work can then focus on improving the therapy parts,
until all points are satisfactorily addressed and documented.</t>
            </li>
          </ol>
        </section>
      </section>
      <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>When a section of this document makes formal corrections, additions
or invalidations to text in a referenced RFC, this is clearly summarized.
The text from the RFC that is being addressed is given and labeled
"INCOMPLETE", "INCORRECT", or "INCORRECT AND INVALIDATED", followed
by the correct text labeled "CORRECTED", where applicable.  When text
is added that does not simply correct text in previous
specifications, it is given with the label "FORMAL ADDITION".</t>
        <t>Where a resolution has not yet been agreed, the resolution is marked PENDING.</t>
        <t>In this document, a reference to a section in RFC nnnn is written
as RFC nnnn-&lt;number&gt;, where &lt;number&gt; is the section number.</t>
      </section>
    </section>
    <section anchor="rfc-7252">
      <name>RFC 7252</name>
      <section anchor="rfc7252-12-terminology-request-uri">
        <name>RFC7252-1.2: Terminology (Request-URI)</name>
        <t><xref target="RFC7252"/> uses the term "request URI" repeatedly, but only provides a
vague definition in <xref section="5.7.2" sectionFormat="of" target="RFC7252"/>.
Text should be added to the definitions in Section <xref target="RFC7252" section="1.2" sectionFormat="bare">Terminology</xref> of <xref target="RFC7252"/>.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION (Section 1.2):</dt>
          <dd>
            <dl>
              <dt>Request URI:</dt>
              <dd>
                <t>The URI that identifies a resource on a server intended to be
addressed by a request; constructed from the context of the
request combined with Options present in the request using the
process defined in Section <xref target="RFC7252" section="6.5" sectionFormat="bare">Composing URIs from Options</xref> of <xref target="RFC7252"/>, see Section <xref target="RFC7252" section="5.7.2" sectionFormat="bare">Forward-Proxies</xref> of <xref target="RFC7252"/> for further details.
Related to the HTTP concept of "target URI"; see Section <xref target="RFC9110" section="7.1" sectionFormat="bare">Determining the Target Resource</xref> of <xref target="RFC9110"/>; previously called
"effective request URI" in Section <xref target="RFC7230" section="5.5" sectionFormat="bare">Effective Request URI</xref> of <xref target="RFC7230"/>.</t>
              </dd>
            </dl>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Note that a similar, but distinct concept is the "base URI", relative
to which relative URIs are resolved.
This is more complex in CoAP than in HTTP because CoAP can multicast
requests (<xref section="8" sectionFormat="of" target="RFC7252"/>), expecting unicast responses; these need
to be interpreted relative to the unicast source address from which
the responses come.</t>
        <t><xref section="8.2" sectionFormat="of" target="RFC7252"/> has:</t>
        <blockquote>
          <t>For the purposes of interpreting the Location-* options and any links
   embedded in the representation, the request URI (i.e., the base URI
   relative to which the response is interpreted) is formed by replacing
   the multicast address in the Host component of the original request
   URI by the literal IP address of the endpoint actually responding.</t>
        </blockquote>
        <t>Similarly, <xref section="8.2.1" sectionFormat="of" target="RFC7252"/> (Caching) says:</t>
        <blockquote>
          <t>A response received in reply to a GET request to a multicast group
   <bcp14>MAY</bcp14> be used to satisfy a subsequent request on the related unicast
   request URI.  The unicast request URI is obtained by replacing the
   authority part of the request URI with the transport-layer source
   address of the response message.</t>
        </blockquote>
        <t>Further discussion of a more generalized response concept can be found in
<xref target="I-D.bormann-core-responses"/>.</t>
      </section>
      <section anchor="rfc7252-5105-max-age">
        <name>RFC7252-5.10.5: Max-Age</name>
        <t>In the discussion of <xref target="RFC8516"/>, a comment was
made that it would be needed to define the point in time relative to
which Max-Age is defined.  A sender might reference it to the time it
actually sends the message containing the option (and paragraph 3 of
RFC7252-5.10.5 indeed requests that Max-Age be updated each time a
message is retransmitted).  The receiver of the message does not have
reliable information about the time of sending, though.  It may
instead reference the Max-Age to the time of reception.  This in
effect extends the time of Max-Age by the latency of the packet.
This extension was deemed acceptable for the purposes of <xref target="RFC8516"/>,
but may be suboptimal when Max-Age is about the lifetime of a response
object.</t>
        <dl newline="true">
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>The value is intended to be current at the time of transmission.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
      </section>
      <section anchor="rfc7252-64-decomposing-uris-into-options">
        <name>RFC7252-6.4: Decomposing URIs into Options</name>
        <t><xref target="Err4895"/> notes (text updated with newer link):</t>
        <blockquote>
          <t>The current specification for decomposing a URI into CoAP Options
(Section 6.4) is correct; however the text may still be unclear to
implementers who may think that the phrase "not including the
delimiting slash characters" means simply omitting a trailing slash
character in the URI path. This is incorrect. See the discussion
outcome in email thread
<eref target="https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/">https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/</eref>.</t>
        </blockquote>
        <t><xref target="Err4895"/> proceeds to propose adding another note at the end of
<xref section="6.4" sectionFormat="of" target="RFC7252"/>.
A slightly updated version of the proposed note might be:</t>
        <dl newline="true">
          <dt>FORMAL ADDITION at the end of <xref section="6.4" sectionFormat="of" target="RFC7252"/>:</dt>
          <dd>
            <t>Also note that a trailing slash character in the &lt;path&gt; component
represents a separate, zero-character path segment (see the ABNF in
<xref section="3.3" sectionFormat="of" target="RFC3986"/>).
This is encoded using a Uri-Path Option of zero length.
The exception at the start of step 8 means that no such
zero-character path segment is added for a trailing slash that
immediately follows the authority (host and port).
</t>
            <aside>
              <t>This exception means that, for a CoAP server, no difference is visible
between a request that was generated from the URI
<tt>coap://authority/</tt> and one that was generated from the URI
<tt>coap://authority</tt> — in both cases, there is no Uri-Path Option in
the request.
(The URI continues to be parsed as defined:  e.g., for the URIs
<tt>coap://authority/?</tt> and <tt>coap://authority?</tt>, there is no Uri-Path
Option but a single Uri-Query Option that carries an empty query
component.)</t>
              <t>Note that the exception at the start of step 8 does not mean that
a client cannot create a request with a single empty Uri-Path
Option; such a request just cannot be generated from a URI because
of the algorithm given here.
It also does not mean that a server is compelled to treat a request
with such a single empty Uri-Path Option in the same way as one
without any Uri-Path Option — the exception at the start of step 8
is only about the process of generating a sequence of CoAP Options
from a URI.</t>
              <t>The exception only applies to initial Uri-Path Options.
So for <tt>coap://authority/foo</tt>, a single Uri-Path Option with the
value <tt>foo</tt> is generated, while for <tt>coap://authority/foo/</tt> that
Uri-Path Option is followed by an empty Uri-Path Option (an
established idiom for a collection resource).</t>
              <t>Similarly, there is a difference between requests generated
from <tt>coap://authority/</tt>, <tt>coap://authority//</tt>, and
<tt>coap://authority///</tt>, respectively:
The first has no Uri-Path Options (due to the special exception);
the second, two (empty ones); the third, three (empty ones).
No server is compelled to offer resources under URIs with
multiple empty path name components, which would generally be
considered weird.</t>
            </aside>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-721-ct-attribute-content-format-code">
        <name>RFC7252-7.2.1: "ct" Attribute (content-format code)</name>
        <t>As has been noted in <xref target="Err5078"/>, there is no information in <xref target="RFC7252"/>
about whether the "ct" target attribute can be present multiply or
not.</t>
        <t>The text does indicate that the value of the attribute <bcp14>MAY</bcp14> be "a
space-separated sequence of Content-Format codes, indicating that
multiple content-formats are available", but it does not repeat the
prohibition of multiple instances that the analogously structured "rt"
and "if" attributes in Sections <xref target="RFC6690" section="3.1" sectionFormat="bare"/> and <xref target="RFC6690" section="3.2" sectionFormat="bare"/> of <xref target="RFC6690"/> have.</t>
        <t>This appears to be an oversight.
Published examples in <xref section="4.1" sectionFormat="of" target="RFC9148"/> and <xref section="4.3" sectionFormat="of" target="RFC9176"/> further illustrate that the space-separated approach is
generally accepted to be the one to be used.
There is no gain to be had from allowing both variants, and it would
be likely to cause interoperability problems.</t>
        <t>At the 2022-11-23 CoRE WG interim meeting, there was agreement that
<xref target="Err5078"/> should be marked "VERIFIED", which was done on 2023-01-18.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION:</dt>
          <dd>
            <t>The Content-Format code attribute <bcp14>MUST NOT</bcp14> appear more than once in a
link.</t>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-911912-match-boxing">
        <name>RFC7252-9.1.1/9.1.2: (match boxing)</name>
        <t>Sections <xref target="RFC7252" section="9.1.1" sectionFormat="bare"/> and <xref target="RFC7252" section="9.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/> provide details about using CoAP
over DTLS connections; in particular they restrict both message-id
matching and request/response matching to within a single combination
of DTLS session/DTLS epoch.</t>
        <t>At the time, this was a decision to be very conservative based on the
wide variety of security implications a new DTLS epoch might have
(which also were not widely understood, e.g., for a re-authentication).
The normally short time between a request and a response made this
rather strict boxing appear acceptable.</t>
        <t>However, with the Observe functionality <xref target="RFC7641"/>, it is quite likely
that significant time elapses between a request and the arrival of a
notification that is sent back as a response, causing a need for the
latter to use a different box from the original request.</t>
        <t>Also, additions to CoAP such as CoAP over connection-oriented
transports <xref target="RFC8323"/> and OSCORE <xref target="RFC8613"/> create similar matching
boxes that also do not fit certain likely use cases of these additions
(e.g., with short-lived TCP connections as discussed in <xref section="4.3" sectionFormat="of" target="RFC9006"/>).</t>
        <t>The match boxing semantics of the current protocol are clearly defined, but can be unsatisfactory given the current requirements.</t>
        <t>This calls for careful design choices and enhancements when developing extensions for CoAP or protocols and methods applicable to CoAP, such as in the cases overviewed in the following <xref target="match-boxing-oscore"/> and <xref target="match-boxing-eclipse"/>.</t>
        <section anchor="dtls-with-connection-id">
          <name>DTLS with Connection ID</name>
          <t>PENDING:</t>
          <aside>
            <t>Protocol mechanisms that have been defined for stitching
together connections or phases of an underlying connection, such
as Connection Identifiers for DTLS 1.2 <xref target="RFC9146"/>, may enable
keeping the session/epoch unchanged and even to change the
transport address (ip-address/port), once appropriately modified
match boxing rules are specified for the stitching mechanism.
(These rules either need to be defined to be implicitly active
for any use of the mechanism or they may require negotiation.)</t>
          </aside>
        </section>
        <section anchor="match-boxing-oscore">
          <name>OSCORE, KUDOS, and Group OSCORE</name>
          <t>The security protocol Object Security for Constrained RESTful Environments (OSCORE) defined in <xref target="RFC8613"/> provides end-to-end security for CoAP messages at the application level, by using CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>. In order to protect their communications, two peers need to have already established an OSCORE Security Context.</t>
          <t><xref section="B.2" sectionFormat="of" target="RFC8613"/> provides an example for a key update procedure, which two OSCORE peers can run for establishing a new shared OSCORE Security Context that replaces their old one. The recent key update protocol KUDOS <xref target="I-D.ietf-core-oscore-key-update"/> specifies how two OSCORE peers can establish a new shared OSCORE Security Context that replaces their old one, with a number of advantages compared to the method defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
          <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) defined in <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE and protects group communication for CoAP <xref target="I-D.ietf-core-groupcomm-bis"/>. The management of the group keying material is entrusted to a Group Manager (see <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), which provides the latest group keying material to a new group member upon its group joining, and can update the group keying material by performing a group rekeying.</t>
          <t>The following discusses how OSCORE, KUDOS, and Group OSCORE position themselves with respect to the match boxing, the transport used underlying CoAP, and the renewal of the keying material.</t>
          <section anchor="match-boxing">
            <name>Match Boxing</name>
            <t>The security processing of (Group) OSCORE is agnostic of the value assumed by the CoAP Token and Message ID. Also, (Group) OSCORE can be seamlessly used in the presence of (cross-)proxies that will change the value of the CoAP Token and Message ID on the different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Before any security processing is performed, the only use that (Group) OSCORE makes of the Token value is on the CoAP client upon receiving a response, in order to retrieve the right Security Context to use for decrypting and verifying the response.</t>
            <t>Even in case the Token value in a CoAP response is manipulated to induce a Request-Response matching at the client, there is no risk for the client to successfully decrypt the response instead of failing as expected. This is because, per <xref section="12.3" sectionFormat="of" target="RFC8613"/>, the OSCORE Master Secret of each OSCORE Security Context is required not only to be secret, but also to have a good amount of randomness.</t>
            <t>Building on that, an HKDF is used to derive the actual encryption keys
from the Master Secret and, optionally, from an additional Master
Salt. Furthermore, for each OSCORE Security Context, the quartet
(Master Secret, Master Salt, ID Context, Sender ID) must be unique. As
per <xref section="3.3" sectionFormat="of" target="RFC8613"/>, this is a hard requirement and
guarantees unique (key, nonce) pairs for the AEAD algorithm used.</t>
            <t>In Group OSCORE, the Security Context extends that of OSCORE, and the same as above holds  (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="2" sectionFormat="bare"/>, <xref target="I-D.ietf-core-oscore-groupcomm" section="2.2" sectionFormat="bare"/>, and <xref target="I-D.ietf-core-oscore-groupcomm" section="13.11" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
            <t>Finally, (Group) OSCORE performs a separate secure match boxing under its own control, by cryptographically binding each protected request with all the corresponding protected responses. This is achieved by means of the COSE external_aad involved during the security processing of protected messages (see <xref section="5.4" sectionFormat="of" target="RFC8613"/> and <xref section="4.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </section>
          <section anchor="underlying-transport">
            <name>Underlying Transport</name>
            <t>The security protocol (Group) OSCORE does not have any requirement on
binding the Security Context in use to specific addressing information used by the transport protocol underlying CoAP. What occurs below (Group) OSCORE with transport-specific addressing information is transparent to (Group) OSCORE, but it needs to work well enough to ensure that received data is delivered to (Group) OSCORE for security processing.</t>
            <t>Consistent with the above, (Group) OSCORE does not interfere with any low-layer, transport specific information. Instead, it entrusts data to a Request-Response exchange mechanism that can rely on different means to enforce the Request-Response matching at the transport level (e.g., the 5-tuple, the CoAP Message ID, a file handle). Also, (Group) OSCORE does not alter the fact that a CoAP response needs to come from where the corresponding CoAP request was sent, which simply follows from using transports where that is a requirement.</t>
            <t>Furthermore, two peers can seamlessly use (Group) OSCORE also in the presence of cross-proxies that change transport across different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Practically, (Group) OSCORE relies on the underlying CoAP implementation for obtaining received CoAP messages on which to perform the expected security processing.</t>
            <t>Upon receiving a protected message, the recipient endpoint retrieves the OSCORE Security Context to use for decryption based on key identifier information specified in the CoAP OSCORE Option of protected requests, and on the value of the CoAP Token of protected responses.</t>
            <t>In OSCORE, the key identifier information in request messages is
typically limited to a "kid", with a value the OSCORE Sender ID associated with the message sender. In case Sender IDs are not unique among different OSCORE Security Contexts stored by the same peer, it is possible to disambiguate by additionally using a "kid context" identifying the OSCORE Security Context as a whole. Instead, response messages are not required to convey key identifier information, as the client can rely on the Token conveyed in the response for retrieving the Security Context to use (see above).</t>
            <t>In Group OSCORE, the key identifier information in request messages always includes also a "kid context", whose value is used as identifier of the OSCORE group associated with the Security Context to use for security processing of the exchanged message. Response messages are also required to convey a "kid" as key identifier information (i.e., the OSCORE Sender ID associated with the message sender), if the corresponding request was protected with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) .</t>
            <t>Some particular uses of (Group) OSCORE enable to build OSCORE-based tunneling <xref target="I-D.ietf-core-oscore-capable-proxies"/>. In such a case, a CoAP server might have to enforce that some OSCORE Security Contexts are not just looked up by a "kid" and similar key identifier information from the CoAP OSCORE Option in the incoming request to decrypt. Such a lookup should also rely on the alleged client's address, or on an alternative identifier of the tunnel from which the request came from.</t>
          </section>
          <section anchor="key-update">
            <name>Key Update</name>
            <t>Updating an OSCORE Security Context does not change or interfere with the values of the Token or Message ID used in the exchanged CoAP messages. However, if long-term exchanges are involved (e.g., CoAP Observations <xref target="RFC7641"/>), one has to be careful to ensure that updating the Security Context does not impair the security properties of (Group) OSCORE or result in other security vulnerabilities.</t>
            <t>The following provides more details about key update, separately for OSCORE, KUDOS, and Group OSCORE.</t>
            <ul spacing="normal">
              <li>
                <t>OSCORE: <xref target="RFC8613"/> tacitly assumes that two peers terminate any ongoing CoAP Observation that they still have ongoing, upon installing a new OSCORE Security Context, irrespective of the method used to perform the key update.  </t>
                <t>
On these premises, a belated response protected with the old OSCORE
Security Context will fail decryption, as that Security Context is not available anymore on the receiving client.</t>
              </li>
              <li>
                <t>KUDOS: The key update protocol KUDOS allows the two OSCORE peers to negotiate about preserving their ongoing CoAP Observations across the performed key update. If and only if both peers agree to do that during an execution of KUDOS, their Observations will remain active after installing the new OSCORE Security Context, which the two peers will use from then on to protect their exchanged Observe notifications.  </t>
                <t>
Furthermore, irrespective of the method used to perform a key update, <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> updates the security protocol OSCORE <xref target="RFC8613"/> in order to prevent security issues that can arise from misbinding a request and a response, when those are protected with two different OSCORE Security Contexts.  </t>
                <t>
Such an update to the OSCORE protocol requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request. An exception safely applies to the response messages that are sent when running the key update procedure defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
              </li>
              <li>
                <t>Group OSCORE: The Group Manager can distribute new group keying material to the members of an OSCORE group, by performing a group rekeying. When receiving updated group keying material from the Group Manager, either upon joining the group or by participating in a group rekeying, a group member uses that material to install a new, commonly shared Group OSCORE Security Context, which replaces the old one (if any is stored).  </t>
                <t>
Also, Group OSCORE makes it possible for group members to safely
preserve their ongoing active requests (e.g., CoAP Observations), also across the establishment of new Group OSCORE Security Contexts. This is achieved by virtue of how the Group Manager assigns and maintains the identifiers of OSCORE groups (see <xref section="3.2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).  </t>
                <t>
Furthermore, analogous to the update that <xref target="I-D.ietf-core-oscore-key-update"/> makes on the OSCORE protocol with respect to protecting responses, Group OSCORE prevents security issues that can arise from misbinding a request and a response, when those are protected with two different Group OSCORE Security Contexts.  </t>
                <t>
In the same way specified in <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> for OSCORE, Group OSCORE requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="8.3" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="9.5" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="match-boxing-eclipse">
          <name>Eclipse/Californium</name>
          <t>Enhancements may be called for optimizations such as Eclipse/Californium EndpointContextMatcher <xref target="CF-MATCHER"/> might not work properly unless both sides of the communication agree on the extent of the matching boxes. Mechanisms to indicate capabilities and choices selected may need to be defined; also, a way to define the progression of matching boxes needs to be defined that is compatible with the security properties of the underlying protocols. This may require new efforts, to be initiated based on some formative contributions.</t>
          <t>PENDING.</t>
          <t>Relevant starting points for retrieving existing discussion of this
issue include:</t>
          <ul spacing="normal">
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/">https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/</eref><br/>
("DTLS and Epochs")</t>
            </li>
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/">https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/</eref><br/>
("Connection ID")</t>
            </li>
            <li>
              <t><eref target="https://github.com/core-wg/corrclar/issues/9">https://github.com/core-wg/corrclar/issues/9</eref><br/>
("Clarify/revise language around epochs in section 9.1.1 #9")</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="ct">
        <name>RFC 7252-12.3: Content-Format Registry</name>
        <t><xref section="12.3" sectionFormat="of" target="RFC7252"/> established the CoAP Content-Formats
Registry, which maps a combination of an Internet Media Type
with an HTTP Content Coding, collectively called a Content-Format, to
a concise numeric identifier for that Content-Format.
The "Media Type" is more than a Media-Type-Name (see <xref target="RFC9193"/> for an
extensive discussion), i.e., it may contain parameters beyond the mere
combination of a type-name and a subtype-name registered in
<xref target="IANA.media-types"/>, as per <xref target="RFC6838"/>, conventionally identified by
the two names separated by a slash.
This construct is often called a Content Type to reduce the confusion
with a Media-Type-Name (e.g., in <xref section="8.3" sectionFormat="of" target="RFC9110"/>, which then
however also opts to use the term Media Type for the same information set).</t>
        <t>The second column of the Content-Format registry is the Content
Coding, which is defined in <xref section="8.4.1" sectionFormat="of" target="RFC9110"/>.
For historical reasons, the HTTP header field that actually carries
the content coding is called Content-Encoding; this often leads to the
misnaming of Content Coding as "content encoding".</t>
        <t>As has been noted in <xref target="Err4954"/>, the text in <xref section="12.3" sectionFormat="of" target="RFC7252"/>
incorrectly uses these terms in the context of content types and
content coding:</t>
        <ol spacing="normal" type="1"><li>
            <t>The field that describes the Content Type is called "Media Type".
This can lead to the misunderstanding that this column just carries
a Media-Type-Name (such as "<tt>text/plain</tt>"), while it actually also
can carry media type parameters (as in "<tt>text/plain; charset=UTF-8</tt>").</t>
          </li>
          <li>
            <t>The field that describes the Content Coding uses the incorrect name
"Content Encoding".</t>
          </li>
        </ol>
        <dl newline="true">
          <dt>INCORRECT, CORRECTED:</dt>
          <dd>
            <t>The VERIFIED Errata Report <xref target="Err4954"/> corrects the usage of
"Content-Encoding" in the text and changes the name of the first
column of the Content-Format registry to "Content Type" and the name
of the second field to "Content Coding".
This change has been carried out by IANA.</t>
          </dd>
        </dl>
        <t><xref target="Err4954"/> also has some notes on what would be valid or invalid
Content-Format registrations.
These are not repeated here; they are however quite useful as a
reference when preparing additional Content-Format registrations.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no new requests to IANA.</t>
      <t>Individual clarifications may contain IANA considerations; as for
example in <xref target="ct"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document provides a number of corrections and clarifications to
existing RFCs, but it does not make any changes with regard to the security
aspects of the protocol.  As a consequence, the security
considerations of the referenced RFCs apply without additions.</t>
      <t>(To be changed when that is no longer true; probably the security
considerations will then be on the individual clarifications.)</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <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="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks. The state of a resource on a CoAP server can change over time. This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time. The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby"/>
            <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="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource. In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable. Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8323">
          <front>
            <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="S. Lemay" initials="S." surname="Lemay"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
            <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
            <date month="February" year="2018"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
              <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8323"/>
          <seriesInfo name="DOI" value="10.17487/RFC8323"/>
        </reference>
        <reference anchor="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="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="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="RFC8516">
          <front>
            <title>"Too Many Requests" Response Code for the Constrained Application Protocol</title>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>A Constrained Application Protocol (CoAP) server can experience temporary overload because one or more clients are sending requests to the server at a higher rate than the server is capable or willing to handle. This document defines a new CoAP response code for a server to indicate that a client should reduce the rate of requests.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8516"/>
          <seriesInfo name="DOI" value="10.17487/RFC8516"/>
        </reference>
        <reference anchor="I-D.bormann-core-responses">
          <front>
            <title>CoAP: Non-traditional response forms</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   In CoAP as defined by RFC 7252, responses are always unicast back to
   a client that posed a request.  The present memo describes two forms
   of responses that go beyond that model.  These descriptions are not
   intended as advocacy for adopting these approaches immediately, they
   are provided to point out potential avenues for development that
   would have to be carefully evaluated.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-03"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="Err4895" target="https://www.rfc-editor.org/errata/eid4895" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4895</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err4954" target="https://www.rfc-editor.org/errata/eid4954" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4954</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="Err5078" target="https://www.rfc-editor.org/errata/eid5078" quoteTitle="false">
          <front>
            <title>RFC Errata Report 5078</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <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="8" month="July" year="2024"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.  Also, this document
   defines a procedure that two endpoints can use to update their OSCORE
   identifiers, run either stand-alone or during a KUDOS execution.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-08"/>
        </reference>
        <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="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="24" month="April" year="2024"/>
            <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 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-11"/>
        </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="26" month="September" year="2024"/>
            <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 any 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-23"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <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>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) can be
   used to protect CoAP messages end-to-end between two endpoints at the
   application layer, also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines rules
   to escalate the protection of a CoAP option, in order to encrypt and
   integrity-protect it whenever possible.  Finally, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints, and between an application endpoint and an intermediary or
   between two intermediaries.  Therefore, this document updates RFC
   8613.  Furthermore, this document updates RFC 8768, by explicitly
   defining the processing with OSCORE for the CoAP option Hop-Limit.
   The approach defined in this document can be seamlessly used with
   Group OSCORE, for protecting CoAP messages when group communication
   is used in the presence of intermediaries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-capable-proxies-02"/>
        </reference>
        <reference anchor="CF-MATCHER" target="https://github.com/eclipse-californium/californium/blob/main/element-connector/src/main/java/org/eclipse/californium/elements/EndpointContextMatcher.java">
          <front>
            <title>EndpointContextMatcher.java</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC9146">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9006">
          <front>
            <title>TCP Usage Guidance in the Internet of Things (IoT)</title>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="J. Crowcroft" initials="J." surname="Crowcroft"/>
            <author fullname="M. Scharf" initials="M." surname="Scharf"/>
            <date month="March" year="2021"/>
            <abstract>
              <t>This document provides guidance on how to implement and use the Transmission Control Protocol (TCP) in Constrained-Node Networks (CNNs), which are a characteristic of the Internet of Things (IoT). Such environments require a lightweight TCP implementation and may not make use of optional functionality. This document explains a number of known and deployed techniques to simplify a TCP stack as well as corresponding trade-offs. The objective is to help embedded developers with decisions on which TCP features to use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9006"/>
          <seriesInfo name="DOI" value="10.17487/RFC9006"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values. In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
    </references>
    <?line 573?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The present document is modeled after RFC 4815 and the Internet-Drafts
of the ROHC WG that led to it.  Many thanks to the co-chairs of the
ROHC WG and WG members that made this a worthwhile and successful
experiment at the time.</t>
      <!--  LocalWords:  interoperate invalidations retransmitted ROHC
 -->
<!--  LocalWords:  suboptimal
 -->

</section>
  </back>
  <!-- ##markdown-source:
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
+6NUw4v3TZa7oihrqrVw9ZcOzgvZmr535uXQwq/EtfGcDvlz2Mrg1VpSlxQe
dtV03tzlNmqq186RemeFt/4i6CtXluZ6e4iD5em+RPyxYC/LQgZra8TIlqFO
NeRPKc/jol2x5RiAQu0KV7lUT4DtvbBU06/RidWxAbVJfhZekmG5cpcYKICN
scXIPBSFrTcEX+Uky3DkG4CPEOqbS50pyyKA8EO440Kz7Xk5Hfo21jJxdMgS
p5KNkAx5IKWzCDDNtgWHlXM+yG9xEe4YuupyGg6KAV6l6jCemGrzSA4WDBAJ
y1AK1J3eB6gU6uSVtCYn+JbYN5VLGh08G27z8XSDK/si5QRJGCiYBibTQCR7
rriKrJ0oDtLJ1UzF9UsVkVbLJfw7qFS3GLebZnNZ1ugY503p+/WaI9vKemMV
RR0VusnpYi5YoEvrYABc4eJK26rP+u7IUeooK9f55aH4HTY7AY0VYvcgXke2
bntialWh3aL2Z+D6oKQYUTeuEPkdZ4iBCd+jzYIN6n+RshYgfSbzzo5kHxSg
8p0n65Lfby1UmOWhezyinM0m2kCd5lGfRKWnpt0p0TLcveHpj+KlKjlarzvD
tV6TCVw+8Lsz339oqQMWMu0cMFIJnjwhxawhb7shrcvEjtB3dUSxxd7/WoqW
T/sJMtC1Gm6ez+Ogtd6+K8wh7SJZ5MgQLkpaBRmzdslqnlJY7bX0/RWXnq4c
JuINixRyJ1byyc9U0UnVCC1re5tciusdXLUDuApTUq3WebjcdMehtNawnEkE
qvWuLur9eO0VH22AxJYoJ/lNR+7r1oEm1VaDalcOoo60gi/ycAUHSCNf3PqW
4P69LWuOdlBByRopgjFiZ3LUhjvLWU4FjorQfEaFgbAW1j/CBo7BtnxJR5z7
5gF/AIkrQwBKiGphJJ+bb5Ri3UKBSNr40E0HqyK4q/83kvsryEMoXXZ61Vrh
rm26LLZIW3P8/yXn15J1J4Mjqc9/vD1lpC7kyydn4csn6+V8rmg0SS7iwlc5
ykAOV6aQKx5pYH8TO8rVsW6aY/PXUmD94RswSOHkg1O5OyZh2NGhqneMebPV
V/H5+C5KEceo2RQsnM9XR7VJPvFAVdEDcBRDQWsRWpTomzXiHnFVkFQBVyaT
kC8AYb0e8zkJLBToSKedo0Pk5GjXRtRaSUg7xMWdkhegirOa5K13FbZ4gZ0Y
uS8+FiHYrvh8UGY6xTxE35/jaGuOC/moM8U8/BeOOCmL2lks0nBgxDVABmvk
uBeUJucTSDtBQePOi26fzkJtBnJyMPPiEC2Gv+fYgpE9/9NJfvywf/fyz6e3
v63mzz6+yb7PX68Oir0XP/2U7PSoXphKObEGuOrt/p0z3Far1feXb/588OpP
9en9abF/df7uoj68zIyboVVN3R7/6+eo7j2TQeh83dUeH4CsMnAKGoxmaD4l
mgqYqUzcHbnHXTmPnvV2/cEdis/aOxwcDbstQ9cGzwMuV8Du4/pzXEjqilBC
S09cjepDUu3xqsQN6KyMhV5WfMSOa7gRUemOkge2m1itbldLI59OkaO/ZGT4
Px8I49pasVvUCRzdmR+JN9F0chBCK28WYDKN44AVF1LouvMid8b0wlp6/nwy
6pjSvMwUb6XvUPmIrOX+uGdHomV0nkjt/318GMeufBEEpT/ynfsSEMZMFoYO
GRmZVSGFGLBok3QhpmqcmvpJWcVWzShcKgnscoQ2YPG7y9N3pwM6XyHFpyo6
6aiSQiNc9JOTI2oEpUhy7vMR0XdRRqvE+a44R6VCex8FMukwBzkWx58YSIVk
U/y2XBdFBFauFqOiLJbV+bSh00pEJ65Bmc3Blm4/YcIMB+ZFnnaeuCNeyFoE
ZVS5WDztBUN5Acmh7F4v2gcTVabeDQW6BZ1QnjULf+xIh41Kx0a2im8njnb9
90Q2+kcng1Yz5gGdzIfnwQFk8ZzmMXUS6YpLxudyCOGcTpxWgKpM1IM/MEoO
VUgExDWnbidSLyiIcVu4yPmWfMyJkYcfgHC2ZwJ2HhCA5C3abIk01XNTGBkJ
DzDd3oGMn65zJW2ucOQLYifxp9xwfls+LEWoDP0x4WxKtxiiev6KVQsCQ/oq
AgU5A+TaX5poEWwAWCwd5LRxyxl497kMYl5bhRPAXe+xkm+MEAnJURGMIjw7
bYNsEbOp9zNuaw8cNZv/3Nt1RwvYCNf0jSD8vKLOaVCsVcJl4v5j+bLD3UTx
iM/p+Bog9T9+uH2VnsAEA/rgwe8CjuDfn8rq0UTCAlfUc49eRHTR7m+lM3jB
23OH8brGVtcvi582xGqUa0P1CBH9uDOdePKGIvx0vmWvS9c9RyScMSUDjiP5
FMDTCx8vo7MHqBH/97A64LsXU0rPF9IJAOR9kR8C0OilMwcUR0mc3PBswyQy
QacCBS5JdHfgEsOAZBw+T5YZH7VFFQ06OruOjnRW4XTnZPOGoq/FiasWWt9h
EVic8pxj6njPSVnu0wQiwHQGf9zIn88mng8qDcsnPrsCzi+vAD/LBnulbgc8
D0G+AJbcbjjSms7zf4jOsyscnC7DF3g6n6SKFTBNNG5N9Bz3gR+lct0yJJ/A
OqJ+uZbX9oXlhbabqHNk3Pku7Nr39RJvEfMH1LonEfDHBvKVJ2Fx8fF7Kf5c
DFlgosnx966As//xEEI2yXJ3hkK//WIbHuFMx/gEcG5bXIUjYlxzKABp55az
XBLB9p+LkrJqTKqhp1025nn41NWXVkBBc4qVj7wvZ7fhF1vW8CN/2NaLCDsd
3+XFAwhw7kyp8BBmRomZ/PGbvPjm8/ZPg2H6mowYiv2jKX18cvDYM3r7c0hV
IpC6vnpzhqcHyKeUJv4LVW8RdWhP3vm4zpjO0LKlA3PiXsY54H8+lMYhQGnC
RqcSBOKc1QHlkn1ReoK1S6VddE74A7x8+08AFjpDNvsRPyYwVNGxCLXpHP/e
OuuR9pSoNH2xaZRwkiE/8n8AJJU0rKd5AAA=

-->

</rfc>
