<?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.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-corr-clar-02" 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.29.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-02"/>
    <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="June" day="21"/>
    <abstract>
      <?line 66?>

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

<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-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="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>
        <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="23" month="April" 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-16"/>
        </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="3" month="March" 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.  These descriptions are not
   intended as advocacy for adopting these approaches immediately, they
   are provided to point out potential avenues for development that
   would have to be carefully evaluated.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-core-responses-04"/>
        </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="3" month="March" year="2025"/>
            <abstract>
              <t>   This document defines Key Update for OSCORE (KUDOS), a lightweight
   procedure that two CoAP endpoints can use to update their keying
   material by establishing a new OSCORE Security Context.  Accordingly,
   it updates the use of the OSCORE flag bits in the CoAP OSCORE Option
   as well as the protection of CoAP response messages with OSCORE, and
   it deprecates the key update procedure specified in Appendix B.2 of
   RFC 8613.  Thus, this document updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-10"/>
        </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="24" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies the use of the Constrained Application
   Protocol (CoAP) for group communication, including the use of UDP/IP
   multicast as the default underlying data transport.  Both unsecured
   and secured CoAP group communication are specified.  Security is
   achieved by use of the Group Object Security for Constrained RESTful
   Environments (Group OSCORE) protocol.  The target application area of
   this specification is any group communication use cases that involve
   resource-constrained devices or networks that support CoAP.  This
   document replaces and obsoletes RFC 7390, while it updates RFC 7252
   and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-13"/>
        </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="16" month="March" year="2025"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of CoAP messages exchanged between members of a group, e.g.,
   sent over IP multicast.  In particular, the described protocol
   defines how OSCORE is used in a group communication setting to
   provide source authentication for CoAP group requests, sent by a
   client to multiple servers, and for protection of the corresponding
   CoAP responses.  Group OSCORE also defines a pairwise mode where each
   member of the group can efficiently derive a symmetric pairwise key
   with any other member of the group for pairwise OSCORE communication.
   Group OSCORE can be used between endpoints communicating with CoAP or
   CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-25"/>
        </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="March" 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-04"/>
        </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="16" month="June" 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.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the Transport Layer
   Security Working Group mailing list (tls@ietf.org), which is archived
   at https://mailarchive.ietf.org/arch/browse/tls/.

   Source for this draft and an issue tracker can be found at
   https://github.com/tlswg/dtls-rrc.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-dtls-rrc-16"/>
        </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="5" month="May" 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.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/thomas-fossati/draft-tls13-iot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-14"/>
        </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 817?>

<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:
H4sIAAAAAAAAA91963IbR5bm/3qKHOiHyR4AvEqiqG55KJKy2bZENUm1d6Y9
MSoCCbCsQhVcF1K0QhH7EPsA82OfZPZN9kn2fOecvFQBlNyzEbMR6x8yAVTl
5eS533I0GiW3h2YvSSZpc2jqZprUTWXTxaE5O716lbTLadrY+tA8efJse2ie
7j7epX+f7O/Qv88ePxuag509+uZgb3cvabImt4fmRWLMcVnQMGlW2Kk5Wi7z
jEbPysK8rcqmnJS52Tguj95uHtKDVWUn+K02aTE1x3laZTN9vE7S6+vK3n7t
MdOUBuMl03JSpAtaw7RKZ80os81sNCkri3+q0YReGuXYTpMkt7Zo7SEtdZFm
+aHBU/+E58dlNadv51lz017L96O7+RYGwPtJkqRtc1NW9OqInjNGJjxOq7qx
hXlZVou0KPgXGunQvCuyW1vVWfO//mdjXlZ2QQ9d/csZPwBIW4L627JuZunk
xuztbe/vb/Nvk6y5P9QX5ItySvOcjHYP9h4/02/aoqnoqe8sJr3nL5c3ZUHP
/eP+s9H+7s5od+dg9GTv2e4O/2h1s+l1+U/NbxnvNSmw5IZWCWhcvDrGSR+a
PCs+jGb8k3yNowc80qV+JiQ4NOV1batbq18RRhya67ycfJAvgByHxjaTG/1M
aCJjjJqJjnPwZIe+K2tAWr55ti0z1TbJilm8upfHb3d4celdYR6Zg4NdAOts
dDLOKjrqZrep5qOKzneUlQRX95dO9HjnyaG5ON7ffabz7OzQWDdNs9RBruXw
BGXo5SXhFnDf/+kmi/CqmGbAwTQfpU1TZdctUwu+l0n2nh3QrG2V0cfTqto/
ePb4kMlIPz97vB9/frz99MB/7s4lIBp9sPcjocpD86GdlquLmldlu5yUi8Xo
OqO1dD4+NKp/SJ8f+QNZ+/gkXabXuR0tq/Jjhg3r9/oZHODV6PXR1fH3pxeH
jHpNWs2B6wB3fbi1JQQ2pim37CTPljUGzTM67iJrF1vx34RQ11uEucWWzUEO
DcBeEDsoq626mshPv6S36RbhsxutM4K+V2+dFtNlmRUN8afGfmxep4Sathrj
ZVmlsLCvPSbQn6V57VB2Z/+J7PMReF8hvMqcTWlW4lPEAAytxZxc/Xhpdsa7
Y3N1kzbmg7VLYl431hBu1fTCll2WxAbA4WwBADNrm9ykxdzyc9lylE6nhI/1
1rKsmqHJZvz9AivMirnJasLWPP1IfHdWlQv3ktUN1WMczfnR29HF6eX5u4vj
0/Wnk2fXoNJxYZstYqpblZ3ZyhYTu7U/3hs/JpAX/4YH/o2WUrbVxI5vmkUe
g/AFfzBGRxKq949v7G2uEm66IEHhmDrIKZ18qA9jFGzyejTFP8SMOz+0TYof
d/ZA7sDCWUaLSJLRaGTSa4iiCfH8hE6KactM7Yxkk8D+d8qqoUnzspgnd4S4
JjVFu7i2lSlnhg5EWYCpl3YSxBKdTjHJ2ynOhWdmsUl/JSI66a//+HeRnzhx
+UgccszrBBvurBMc2Qg7pM/0D511W9Ois4KlHyFRPhtNbT2psiUWAHHYMt6P
k+SyXFizTKumxpoZ5+LFEgbdm2trWlqxTWlflbEkIsHIGgKNsVVVVnXC8+JR
emgK3FxkNaGVrZaVbZwwds9ki2WaVYZ/L5e2Sq+znKRacm2bO0tjT7MZY1WD
J4VCZYhxckXroyFr/Oh2QV+UtxntD0LZaQNDD/6aoZhMVjQD7JUAWkOk2ulz
+kyA84MSFyIwipaDR4mi8fA4OSv80ENT0i+V6Y0NQqMR3Rx0FgAtHwVBjF9J
voIRe3TGevbmYPvpY9pDZQnR6tLtdjoWLF5k02luk+SROSOhX05b3n+SfPo0
AmV9/vxfj9M0tYr/z5+HWAhLfvobv0Do40/sTtcImf/58xhPRtpFb+Vfw/Kk
j+UmxvITErTggh184jX0sdBADcSzQg214IjgEE1FXxHqLsE3aOs5ljA0NWgo
XVxn85agY0UVhdAE/awQQnKT3lqiKcL0zMmBKU1Qmzub5/h/amb2TkmLFr8W
6et2sSCs+41mC6MQUOpW53dUkURUYQprpxABRMY92vIoSlgbYNLQ7rKxHQ+T
rAHNE2gaaDI0gxJHh5K8OJiODYmymJ6Au4mn1K/RzYPAo2UmK0yKJrtwM3ul
39Q3ZZsTYDGVpR3boRCQIKpNOvROYO4QNh9pb31yqpHB0SdJwDUwV0FTPBRt
DCv7KrXTYh49Ak3Sdmr8/cicV9k8A9lB73gAJTI+ljMAjOTz6AS2ztDc3WSk
OtBvRdnwyRZTWcq1TZbtdZ7VN/Q55XexgF/bbPIhvyeYntFxEzun5TbmLiPU
vIZCkTHj11eSqi0K7MMvQoXIcXlxan76bgjYXJPGcs84F7OSexInRFdkqmQ5
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

-->

</rfc>
