<?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.30 (Ruby 3.4.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-corr-clar-03" 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.31.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-03"/>
    <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="2025" month="December" day="22"/>
    <abstract>
      <?line 68?>

<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 86?>

<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.</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-541-critical-options-and-error-messages">
        <name>RFC7252-5.4.1: Critical Options and Error Messages</name>
        <t><xref section="1.2" sectionFormat="of" target="RFC7252"/> introduces the concept of <em>rejecting</em> a
message, by sending back a RST (Reset) message or by silently
ignoring the rejected message.
This can deal with messages for which a node does not have (e.g., no
longer has) the necessary context to process it, such as a response to
a message that was sent immediately before a node rebooted.</t>
        <t>The concept of rejecting a message is a quite powerful way to limit
the complexity of dealing with a variety of error conditions.
However, it seems <xref section="5.4.1" sectionFormat="of" target="RFC7252"/> overuses this instrument
for the case of non-confirmable messages.</t>
        <t><xref section="5.4.1" sectionFormat="of" target="RFC7252"/> describes Critical Options, which, if not
implemented/understood by a node, may require the return of server
errors.
For Confirmable messages containing requests, unrecognized critical
options in requests are handled by a 4.02 (Bad Option) response, while
those in Confirmable messages with responses and Acknowledgements are
rejected.</t>
        <blockquote>
          <ul spacing="normal">
            <li>
              <t>Unrecognized options of class "critical" that occur in a
Confirmable request <bcp14>MUST</bcp14> cause the return of a 4.02 (Bad Option)
response.  This response <bcp14>SHOULD</bcp14> include a diagnostic payload
describing the unrecognized option(s) (see Section 5.5.2).</t>
            </li>
            <li>
              <t>Unrecognized options of class "critical" that occur in a
Confirmable response, or piggybacked in an Acknowledgement, <bcp14>MUST</bcp14>
cause the response to be rejected (Section 4.2).</t>
            </li>
          </ul>
        </blockquote>
        <t>The 4.02 error response enables clients to perform discovery of
whether a critical option is recognized by a server, but surprisingly
only for Confirmable messages.</t>
        <t>For unknown reasons, <xref section="5.4.1" sectionFormat="of" target="RFC7252"/> then goes on to handle
all Non-confirmable messages with unrecognized critical options by
rejecting them:</t>
        <blockquote>
          <ul spacing="normal">
            <li>
              <t>Unrecognized options of class "critical" that occur in a
Non-confirmable message <bcp14>MUST</bcp14> cause the message to be rejected
(Section 4.3).</t>
            </li>
          </ul>
        </blockquote>
        <t>This deprives the sender of a Non-confirmable request of the
information what caused the rejection.
However, using Non-confirmable messages does not automatically mean
that the recipient does not have the context needed to process the
message.</t>
        <t>This unexplained inconsistency has been present in <xref target="RFC7252"/> since its
initial publication, apparently without causing much trouble.
Recently, <xref target="I-D.ietf-core-uri-path-abbrev"/> has been describing a situation where discovery of
Option support is more central to at least one use case; not being
able to properly perform this discovery for Non-confirmable messages now
emerges as an actual defect.</t>
        <t>This defect can be remedied by applying this change:</t>
        <dl>
          <dt>INCORRECT:</dt>
          <dd>
            <blockquote>
              <ul spacing="normal">
                <li>
                  <t>Unrecognized options of class "critical" that occur in a Non-
confirmable message <bcp14>MUST</bcp14> cause the message to be rejected
(Section 4.3).</t>
                </li>
              </ul>
            </blockquote>
          </dd>
          <dt>CORRECTED:</dt>
          <dd>
            <blockquote>
              <ul spacing="normal">
                <li>
                  <t>Unrecognized options of class "critical" that occur in a
Non-confirmable request <bcp14>SHOULD</bcp14> cause the return of a 4.02 (Bad Option)
response.  This response <bcp14>SHOULD</bcp14> include a diagnostic payload
describing the unrecognized option(s) (see Section 5.5.2).</t>
                </li>
                <li>
                  <t>Unrecognized options of class "critical" that occur in a
Non-confirmable response, or piggybacked in an Acknowledgement, <bcp14>MUST</bcp14>
cause the response to be rejected (Section 4.3).</t>
                </li>
              </ul>
            </blockquote>
          </dd>
        </dl>
        <t>(This replacement text could be integrated in a less redundant way;
the present proposal primarily aims at clarity.)</t>
        <t>Of course, existing implementations will not immediately change their
behavior, so an implementation of a discovery process in <xref target="I-D.ietf-core-uri-path-abbrev"/>
will still need to deal with uncertainty for the foreseeable future,
but the likelihood will reduce over time.
Client implementations that are not updated and actually rely on not
receiving an error response in this case will simply reject the
message, causing little downside.</t>
        <t>As this is a technical change, it needs to be included in a
standards-track RFC to become effective.
The present document proposes to include the change in <xref target="I-D.ietf-core-uri-path-abbrev"/>, which
is likely to be the next standards-track specification to emerge from
the CoRE WG and also directly can make use of the updated functionality.</t>
        <t>Note that the <bcp14>SHOULD</bcp14> about diagnostic payloads is repeated here; such
a mandate usually needs to provide more information about when this
interoperability requirement does not need to be met.
<xref target="RFC9290"/> now in many cases provides a better way to respond than a
diagnostic payload; for conciseness, this observation is not included
in the normative replacement text proposed above.</t>
      </section>
      <section anchor="rfc7252-510161-query-parameters">
        <name>RFC7252-5.10.1/6.1: Query Parameters</name>
        <t><xref section="3.4" sectionFormat="of" target="RFC3986"/> explains the query component of a URI as
follows:</t>
        <blockquote>
          <t>The query component contains non-hierarchical data that, along with
   data in the path component (Section 3.3), serves to identify a
   resource within the scope of the URI's scheme and naming authority
   (if any).  [...]</t>
        </blockquote>
        <t>So there is no technical difference between a path and a query
component in a URI except that the path is hierarchical, and the query
is non-hierarchical.
Both combine with scheme and authority to identify the resource, and
changing any of these leads to a different resource.</t>
        <t><xref target="RFC7252"/> generally follows this definition, but has a few passages
where it is somewhat questionable whether they fully agree:</t>
        <t>Section <xref target="RFC7252" section="5.10.1" sectionFormat="bare">Uri-Host, Uri-Port, Uri-Path, and Uri-Query</xref> of <xref target="RFC7252"/> says:</t>
        <blockquote>
          <t>[...] each Uri-Query Option specifies one argument parameterizing the resource.</t>
        </blockquote>
        <t>(Analog text about Location-Query is in Section <xref target="RFC7252" section="5.10.7" sectionFormat="bare">Location-Path and Location-Query</xref> of <xref target="RFC7252"/>.)</t>
        <t>Similarly, Section <xref target="RFC7252" section="6.1" sectionFormat="bare">coap URI Scheme</xref> of <xref target="RFC7252"/> says:</t>
        <blockquote>
          <t>The query serves to further parameterize the resource.  [...]</t>
        </blockquote>
        <t>This could be read to say that the <em>same</em> resource can be accessed
with different parameters in the Uri-Query options.
It is likely that these passages were meant in the sense of
"parameterize the resource name", i.e., changing the parameters does
indeed lead to a different resource.</t>
        <t>So this could be clarified by applying this change in these three
places:</t>
        <dl>
          <dt>INCORRECT:</dt>
          <dd>
            <t>further parameterize the resource</t>
          </dd>
          <dt>CORRECTED:</dt>
          <dd>
            <t>further parameterize the resource name</t>
          </dd>
        </dl>
        <t>However, the view that the query component supplies parameters to a
request on a resource that exists independent of these parameters is
widely held by implementers in the "big web" (HTTP) world, even if
<xref target="RFC9110"/> strictly follows <xref target="RFC3986"/>.</t>
        <t>This view seems to be fueled by the way that an application may use
(Section <xref target="RFC9110" section="17.9" sectionFormat="bare">Disclosure of Sensitive Information in URIs</xref> of <xref target="RFC9110"/>)...</t>
        <blockquote>
          <t>client-side mechanisms to construct a target URI out of
  user-provided information, such as the query fields of a form using
  GET</t>
        </blockquote>
        <t>This view also seems to be suggested to some by the way query
parameters are used in specifications such as <xref target="I-D.ietf-core-conditional-attributes"/>; implementations
of CoAP servers also often provide primitives to set up a single
"resource handler" that bundles requests to a specific path and receives the
query parameters as additional request parameters <xref target="COAP-RESOURCE"/>.</t>
        <t><xref target="BCP190"/> establishes guidelines with respect to "URI Design and
Ownership".
Section <xref target="RFC8820" section="2.4" sectionFormat="bare"/> of RFC 8820 <xref target="BCP190"/> specifically discusses the query
component of the URI.
On one hand, it says:</t>
        <blockquote>
          <t>Applications can specify the syntax of queries for the resources under their control.</t>
        </blockquote>
        <t>On the other hand, it warns:</t>
        <blockquote>
          <t>Extensions <bcp14>MUST NOT</bcp14> constrain the format or semantics of queries, to avoid collisions and erroneous client assumptions. For example, an Extension that indicates that all query parameters with the name "sig" indicate a cryptographic signature would collide with potentially preexisting query parameters on sites and lead clients to assume that any matching query parameter is a signature.</t>
        </blockquote>
        <t>It also acknowledges:</t>
        <blockquote>
          <t>Per the "Form submission" section of [HTML5], HTML constrains the syntax of query strings used in form submission. New form languages are encouraged to allow creation of a broader variety of URIs (e.g., by allowing the form to create new path components, and so forth).</t>
        </blockquote>
        <t><xref target="I-D.ietf-core-conditional-attributes"/> is a specification that defines a set of query parameters.
It can be adopted by an "Application" in the sense of <xref target="BCP190"/>.
The current discussion goes in the direction of providing an interface
type (for use in <xref target="RFC6690"/> <tt>if=</tt>) that a server can declare in resource discovery to indicate
to a client that the conditional query parameters interface is available.</t>
        <t><xref section="3.3" sectionFormat="of" target="I-D.irtf-t2trg-rest-iot"/> contains a brief discussion of the role of
query parameters in URIs.
It points to <xref section="3.3.4" sectionFormat="of" target="RFC6943"/>, which discusses identifier
comparison and points out that</t>
        <blockquote>
          <t>[...] it is unspecified whether the order of values matters.</t>
        </blockquote>
        <t><xref section="3.3" sectionFormat="of" target="I-D.irtf-t2trg-rest-iot"/> further mentions that in some implementations,</t>
        <blockquote>
          <t>they might even be re-ordered, for instance by intermediaries.</t>
        </blockquote>
        <t><xref target="I-D.ietf-core-conditional-attributes"/> is designed to allow evolution of the set of conditional query
parameters and provides a registry for the registration of additional ones.
To facilitate the introduction of new parameters, it has been
discussed whether <xref target="I-D.ietf-core-conditional-attributes"/> should adopt an "ignore unknown" policy.
Since that policy would not necessarily apply to query parameters
outside the conditional set, it would require a test whether a
parameter is a conditional query parameter.
The names of all parameters initially registered start with "<tt>c.</tt>",
which might be a convention that might be part of the <tt>if=</tt> interface type.</t>
        <t>Any "ignore unknown" policy raises the question whether there,
conversely, need to be "must understand" exceptions, here chosen by
the client.
For instance, the client might use the parameter name "<tt>C.pmin</tt>" instead
of "<tt>c.pmin</tt>" to indicate that it wants the request to fail if its
preference for a minimum period between notifications cannot be fulfilled.</t>
        <t>In summary:
In the definitions of URIs and of HTTP, the URI query
parameters are not much different from path components.
In practice, implementations tend to provide ways to handle query
parameters more in terms of additional parameters to a single resource
handler that handles a number of related URIs, differing in query
parameters only.
There appears to be little to be gained by discussing this more in the
documentation (outside the present document); however, the duality
between these two perspectives on query parameters needs to be kept in
mind in discussions.</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="amp-0rtt">
        <name>RFC 7252-9.1/11.3: Handling outdated addresses and security contexts</name>
        <dl>
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>Tools for mitigating these scenarios were unavailable when CoAP originally was specified, and are now explained.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Information obtained about an established communication partner can experience continuity interruptions
and become obsolete.
This can happen on different levels:
For example,
return routability information is lost when client's IP address changes;
and information about whether a request was already handled can be lost when an OSCORE context is recovered as described in its <xref section="B.1.2" sectionFormat="of" target="RFC8613"/>.
No matter the cause of the loss, a server still needs to maintain its security and amplification mitigation properties.</t>
        <t>The concerns addressed in the following subsections are independent on a specification level,
but are described together because they can be addressed with the same tools --
moreover, a single round trip of using Echo in a response can address both at the same time.
In some scenarios, these are even expected to coincide.</t>
        <t>(move)
A safe option is always to reject the initial request and request confirmation.
The <bcp14>RECOMMENDED</bcp14> way to do that is using CoAP's mechanism of sending a 4.01 (Unauthorized) response with an Echo option
(where a subsequent request with the same Echo value proves to the server that the destination was reachable);
clients <bcp14>SHOULD</bcp14> act to the Echo option as specified in <xref target="RFC9175"/>.
Tools specific to a security protocol, such as RRC <xref target="I-D.ietf-tls-dtls-rrc"/> in case of DTLS, may be used. However, their use may depend on successful negotiation.</t>
        <section anchor="amplification-mitigation-and-return-routability">
          <name>Amplification mitigation and return routability</name>
          <t>CoAP servers have to mitigate the effects of traffic amplification
as required in <xref section="11.3" sectionFormat="of" target="RFC7252"/>;
the maximum acceptable amplification factor of 3 is now the IETF consensus
reflected for CoAP in <xref section="2.4" sectionFormat="of" target="RFC9175"/>,
which can be summarized for this application as follows:</t>
          <t>If the server has learned that the client is reachable on the request's sender address,
it can send a response.
Otherwise, if the response does not exceed the request's size by a factor of 3 (<xref section="2.4" sectionFormat="of" target="RFC9175"/>, item 3),
the server can answer the request successfully, but should still include an Echo value,
whose presence in the next request serves to confirm the client's address.
Otherwise, a 4.01 (Unautorized) error response with an Echo value is sent.</t>
          <t>Address verification is triggered
both for new clients
and for existing clients that changed their address.
This situation can happen at any time, especially after a prolonged period of quiescence, regardless of the security protocol.</t>
          <t>Verifying the client's address is not only crucial for mitigating amplification attacks <xref target="I-D.irtf-t2trg-amplification-attacks"/>, but also to avoid traffic misdirection.
<xref section="7" sectionFormat="of" target="I-D.ietf-tls-dtls-rrc"/> describes options for how to use RRC messages to distinguish different cases.
A 4.01 response with Echo can perform some of the same functions, with the Echo value replacing the RRC cookie. However, it does not offer a way to distinguish between non-preferred and preferred paths.
Where that distinction matters,
RRC provides the right tools to make it.</t>
          <!-- maybe compare Echo to HelloRetryRequest from 9147? -->

</section>
        <section anchor="replay-protection">
          <name>Replay protection</name>
          <t>Security mechanisms can offer trade-offs between performance and the security properties freshness and replay protection.
They sometimes use names such as "0RTT" (zero round-trip time).
With those mechanisms, the server recognizes that a request is sent in such a 0RTT mode,
but can still decide to send a response.
The general trade-off is that an attacker may intercept such a message
and replay it at any later time, possibly multiple times,
without the server having a reliable way of recognizing the replay.</t>
          <t>The semantics of CoAP are conducive to using such facilities:
Safe requests are recognized by their request method code to not have side effects.
Nonetheless, more aspects need to be considered:
There is no risk of metadata revealing data if the server answers a request multiple times.
Kinds of metadata to look out for are the size of the response
(which, in a replay situation, can give an active attacker additional data)
as well as any processing delays.
(Side effects would also fall into that category, but there should not be any effects for safe requests).</t>
          <t>If nothing else, GET requests to constant resources,
such as queries to /.well-known/core,
can often be responded to safely on the CoAP layer even without any replay protection.</t>
          <t>There are resources for which more requests than those with safe
request methods may be handled without replay protection,
but as that assessment is hard to make, it is prudent to err at the side of caution.</t>
          <t>CoAP has no error code like HTTP's 425 Too Early with which a server could ask the client to resubmit its request later
when all the security mechanism's guarantees are available.
Instead, servers can send 4.01 Unauthorized responses with Echo option;
clients then repeat the request with the Echo value in the request.</t>
          <t><xref section="B.1.2" sectionFormat="of" target="RFC8613"/> describes how this is used to recover loss of state in OSCORE.
Exceeding what is described there, a server can safely send a successful response,
provided its criteria for 0RTT responses are met.
The server can still send an Echo option with the successful response:
Only when the client repeats that Echo value in a subsequent response
can the replay window be initialized.</t>
          <t>Implementers of OSCORE should be aware that answering potential replays can only be determined to be safe from the CoAP application's point of view.
As always, unless the sequence number in the request has just been removed from an initialized replay window,
the response can not reuse the request's nonce, but needs to be sent with a new sequence number from the server's space.</t>
          <t>Requests with 0RTT properties currently cannot happen in DTLS because 0-RTT Data is not allowed for CoAP (cf. <xref section="14" sectionFormat="of" target="I-D.ietf-uta-tls13-iot-profile"/>). However, that may change if a future document defines a profile for using early data with CoAP.</t>
        </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="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </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-uri-path-abbrev">
          <front>
            <title>URI-Path abbreviation in CoAP</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   Applications built on CoAP face a conflict between the technical need
   for short message sizes and the interoperability requirement of
   following BCP190 and thus registering (relatively verbose) well-known
   URI paths.  This document introduces an option that allows expressing
   well-known paths in as little as two bytes.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-02"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="I-D.irtf-t2trg-rest-iot">
          <front>
            <title>Guidance on RESTful Design for Internet of Things Systems</title>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Matthias Kovatsch" initials="M." surname="Kovatsch">
              <organization>Siemens</organization>
            </author>
            <author fullname="Klaus Hartke" initials="K." surname="Hartke">
         </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document gives guidance for designing Internet of Things (IoT)
   systems that follow the principles of the Representational State
   Transfer (REST) architectural style.  This document is a product of
   the IRTF Thing-to-Thing Research Group (T2TRG).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-rest-iot-17"/>
        </reference>
        <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="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="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="20" month="October" year="2025"/>
            <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.

   The design spaces for the new CoAP Options proposed to represent
   these responses are now sufficiently understood that they can be
   developed to standards-track specifications, either in this document
   or by transferring the specification for an Option to a document that
   that Option closely works with.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-06"/>
        </reference>
        <reference anchor="I-D.ietf-core-conditional-attributes">
          <front>
            <title>Conditional Query Parameters for CoAP Observe</title>
            <author fullname="Bill Silverajan" initials="B." surname="Silverajan">
              <organization>Tampere University</organization>
            </author>
            <author fullname="Michael Koster" initials="M." surname="Koster">
              <organization>Dogtiger Labs</organization>
            </author>
            <author fullname="Alan Soloway" initials="A." surname="Soloway">
              <organization>Qualcomm Technologies, Inc.</organization>
            </author>
            <date day="16" month="March" year="2025"/>
            <abstract>
              <t>   This specification defines Conditional Notification and Control Query
   Parameters compatible with CoAP Observe (RFC7641).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-conditional-attributes-11"/>
        </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="20" month="October" year="2025"/>
            <abstract>
              <t>   Communications with the Constrained Application Protocol (CoAP) can
   be protected end-to-end at the application-layer by using the
   security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  Under some circumstances, two CoAP endpoints
   need to update their OSCORE keying material before communications can
   securely continue, e.g., due to approaching key usage limits.  This
   document defines Key Update for OSCORE (KUDOS), a lightweight key
   update procedure that two CoAP endpoints can use to update their
   OSCORE keying material by establishing a new OSCORE Security Context.
   Accordingly, this document updates the use of the OSCORE flag bits in
   the CoAP OSCORE Option as well as the protection of CoAP response
   messages with OSCORE.  Also, it deprecates the key update procedure
   specified in Appendix B.2 of RFC 8613.  Therefore, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-12"/>
        </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="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="25" month="September" 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-15"/>
        </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="12" month="September" 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 messages exchanged with the Constrained Application
   Protocol (CoAP) 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-27"/>
        </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="3" month="September" year="2025"/>
            <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-05"/>
        </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="COAP-RESOURCE" target="https://libcoap.net/doc/reference/4.3.5/man_coap_resource.html">
          <front>
            <title>libcoap: coap_resource(3)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.irtf-t2trg-amplification-attacks">
          <front>
            <title>Amplification Attacks Using the Constrained Application Protocol (CoAP)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
              <organization>Energy Harvesting Solutions</organization>
            </author>
            <date day="18" month="June" year="2025"/>
            <abstract>
              <t>   Protecting Internet of Things (IoT) devices against attacks is not
   enough.  IoT deployments need to make sure that they are not used for
   Distributed Denial-of-Service (DDoS) attacks.  DDoS attacks are
   typically done with compromised devices or with amplification attacks
   using a spoofed source address.  This document gives examples of
   different theoretical amplification attacks using the Constrained
   Application Protocol (CoAP).  The goal with this document is to raise
   awareness and to motivate generic and protocol-specific
   recommendations on the usage of CoAP.  Some of the discussed attacks
   can be mitigated by not using NoSec or by using the Echo option.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-t2trg-amplification-attacks-05"/>
        </reference>
        <reference anchor="I-D.ietf-tls-dtls-rrc">
          <front>
            <title>Return Routability Check for DTLS 1.2 and DTLS 1.3</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Achim Kraus" initials="A." surname="Kraus">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="14" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies a return routability check for use in context
   of the Connection ID (CID) construct for the Datagram Transport Layer
   Security (DTLS) protocol versions 1.2 and 1.3.

   Implementations offering the CID functionality described in RFC 9146
   and RFC 9147 are encouraged to also provide the return routability
   check functionality described in this document.  For this reason,
   this document updates RFC 9146 and RFC 9147.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-dtls-rrc-20"/>
        </reference>
        <reference anchor="I-D.ietf-uta-tls13-iot-profile">
          <front>
            <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="18" month="October" year="2025"/>
            <abstract>
              <t>   RFC 7925 offers guidance to developers on using TLS/DTLS 1.2 for
   Internet of Things (IoT) devices with resource constraints.  This
   document is a companion to RFC 7925, defining TLS/DTLS 1.3 profiles
   for IoT devices.  Additionally, it updates RFC 7925 with respect to
   the X.509 certificate profile and ciphersuite requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-17"/>
        </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="RFC6943">
          <front>
            <title>Issues in Identifier Comparison for Security Purposes</title>
            <author fullname="D. Thaler" initials="D." role="editor" surname="Thaler"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>Identifiers such as hostnames, URIs, IP addresses, and email addresses are often used in security contexts to identify security principals and resources. In such contexts, an identifier presented via some protocol is often compared using some policy to make security decisions such as whether the security principal may access the resource, what level of authentication or encryption is required, etc. If the parties involved in a security decision use different algorithms to compare identifiers, then failure scenarios ranging from denial of service to elevation of privilege can result. This document provides a discussion of these issues that designers should consider when defining identifiers and protocols, and when constructing architectures that use multiple protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6943"/>
          <seriesInfo name="DOI" value="10.17487/RFC6943"/>
        </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="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="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 926?>

<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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

-->

</rfc>
