<?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.22 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-corr-clar-01" 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.24.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-01"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2024" month="December" day="18"/>
    <abstract>
      <?line 58?>

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

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC7252"/> defines the Constrained Application Protocol (CoAP), along
with a number of additional specifications, including <xref target="RFC7641"/>,
<xref target="RFC7959"/>, <xref target="RFC8132"/>, and <xref target="RFC8323"/>.
<xref target="RFC6690"/> defines the link format that is used in CoAP
self-description documents.</t>
      <t>During implementation and interoperability testing of these RFCs, and
in their practical use, some ambiguities and common misinterpretations
have been identified, as well as a few errors.</t>
      <t>The present document summarizes identified issues and provides
corrections needed for implementations of CoAP to interoperate, i.e.,
it constitutes an update to the RFCs referenced.  This document also
provides other clarifications related to common misinterpretations of
the specification.  References to CoAP should, therefore, also include
this document.</t>
      <t>In addition, some clarifications and corrections are also provided for
documents that are related to CoAP, including RFC 7390 and RFC 8075.</t>
      <section anchor="process">
        <name>Process</name>
        <section anchor="original-text">
          <name>Original text</name>
          <t>The present document is an Internet-Draft, which is not intended to be
published as an RFC quickly.  Instead, it will be maintained as a
running document of the CoRE WG, probably for a number of years, until
the need for new entries tails off and the document can finally be
published as an RFC.  (This paragraph to be rephrased when that
happens.)</t>
          <t>The status of this document as a running document of the WG implies a
consensus process that is applied in making updates to it.  The rest
of this subsection provides more details about this consensus process.
(This is the intended status; currently, the document is an individual submission only.)</t>
          <t>(Consensus process TBD, but it will likely be based on an editor's
version in a publicly accessible git repository, as well as periodic
calls for consensus that lead to a new published Internet-Draft.)</t>
        </section>
        <section anchor="proposed-text-based-on-ietf-117-and-2023-08-30-core-wg-interim-discussion">
          <name>Proposed text based on IETF 117 and 2023-08-30 CoRE WG interim discussion</name>
          <t>This section describes the process that will be used for developing
the present document (called "-corr-clar" colloquially).</t>
          <t>This process might be revised as its execution progresses.</t>
          <ol spacing="normal" type="1" start="0"><li>
              <t>(Done as of this a draft): include the present process proposal.<br/>
The document can then already be considered for WG adoption.</t>
            </li>
            <li>
              <t>Go through the following available material and revise/create
Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as needed:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Existing issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>More to be opened by Jon Shallow regarding Block-wise, see <eref target="https://datatracker.ietf.org/doc/minutes-interim-2023-core-11-202307051400/#attacks-on-the-constrained-application-protocol-coap-christian-amsuss-jon-shallow">JON-ISSUES</eref></t>
                    </li>
                  </ul>
                </li>
                <li>
                  <t>CoAP FAQ at the CoRE WIKI <eref target="https://github.com/core-wg/wiki/wiki/CoAP-FAQ">WIKI-FAQ</eref>
                  </t>
                  <ul spacing="normal">
                    <li>
                      <t>Each point likely to become a new, short issue</t>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>
              <t>Categorize the Github issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref> as to the topics they relate to, by tagging them.<br/>
Completing a first round of this will be a task for a dedicated team.</t>
            </li>
            <li>
              <t>For each issue or set of issues at <eref target="https://github.com/core-wg/corrclar/issues">ISSUES</eref>, confirm with the CoRE
WG and gather feedback from affected protocol
designers/implementors if the issue is best to be:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Included and covered in -corr-clar, as is or revised</t>
                </li>
                <li>
                  <t>Simply omitted in -corr-clar</t>
                </li>
                <li>
                  <t>Omitted in -corr-clar and left for a possible -bis document.<br/>
(For example, this might be the case for some specific points related to RFC 7959.)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Reshape the -corr-clar document in order to reflect a sequence of
 pairs (Diagnosis, Therapy), where:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Diagnosis is the gist of a set of Github issues to cover, and</t>
                </li>
                <li>
                  <t>Therapy is the correction or clarification to address those.</t>
                </li>
              </ul>
              <t>
Even though at a high-level, the scope should be already clear by
looking at the table of contents.
That is, at this stage, there is no need to necessarily elaborate
the Therapy in detail, but it is necessary to make a reader
understand "what we are dealing with and taking which direction".</t>
            </li>
            <li>
              <t>WG document work can then focus on improving the therapy parts,
until all points are satisfactorily addressed and documented.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>When a section of this document makes formal corrections, additions
or invalidations to text in a referenced RFC, this is clearly summarized.
The text from the RFC that is being addressed is given and labeled
"INCOMPLETE", "INCORRECT", or "INCORRECT AND INVALIDATED", followed
by the correct text labeled "CORRECTED", where applicable.  When text
is added that does not simply correct text in previous
specifications, it is given with the label "FORMAL ADDITION".</t>
        <t>Where a resolution has not yet been agreed, the resolution is marked PENDING.</t>
        <t>In this document, a reference to a section in RFC nnnn is written
as RFC nnnn-&lt;number&gt;, where &lt;number&gt; is the section number.</t>
      </section>
    </section>
    <section anchor="rfc-7252">
      <name>RFC 7252</name>
      <section anchor="rfc7252-12-terminology-request-uri">
        <name>RFC7252-1.2: Terminology (Request-URI)</name>
        <t><xref target="RFC7252"/> uses the term "request URI" repeatedly, but only provides a
vague definition in <xref section="5.7.2" sectionFormat="of" target="RFC7252"/>.
Text should be added to the definitions in Section <xref target="RFC7252" section="1.2" sectionFormat="bare">Terminology</xref> of <xref target="RFC7252"/>.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION (Section 1.2):</dt>
          <dd>
            <dl>
              <dt>Request URI:</dt>
              <dd>
                <t>The URI that identifies a resource on a server intended to be
addressed by a request; constructed from the context of the
request combined with Options present in the request using the
process defined in Section <xref target="RFC7252" section="6.5" sectionFormat="bare">Composing URIs from Options</xref> of <xref target="RFC7252"/>, see Section <xref target="RFC7252" section="5.7.2" sectionFormat="bare">Forward-Proxies</xref> of <xref target="RFC7252"/> for further details.
Related to the HTTP concept of "target URI"; see Section <xref target="RFC9110" section="7.1" sectionFormat="bare">Determining the Target Resource</xref> of <xref target="RFC9110"/>; previously called
"effective request URI" in Section <xref target="RFC7230" section="5.5" sectionFormat="bare">Effective Request URI</xref> of <xref target="RFC7230"/>.</t>
              </dd>
            </dl>
          </dd>
        </dl>
        <t>PENDING.</t>
        <t>Note that a similar, but distinct concept is the "base URI", relative
to which relative URIs are resolved.
This is more complex in CoAP than in HTTP because CoAP can multicast
requests (<xref section="8" sectionFormat="of" target="RFC7252"/>), expecting unicast responses; these need
to be interpreted relative to the unicast source address from which
the responses come.</t>
        <t><xref section="8.2" sectionFormat="of" target="RFC7252"/> has:</t>
        <blockquote>
          <t>For the purposes of interpreting the Location-* options and any links
   embedded in the representation, the request URI (i.e., the base URI
   relative to which the response is interpreted) is formed by replacing
   the multicast address in the Host component of the original request
   URI by the literal IP address of the endpoint actually responding.</t>
        </blockquote>
        <t>Similarly, <xref section="8.2.1" sectionFormat="of" target="RFC7252"/> (Caching) says:</t>
        <blockquote>
          <t>A response received in reply to a GET request to a multicast group
   <bcp14>MAY</bcp14> be used to satisfy a subsequent request on the related unicast
   request URI.  The unicast request URI is obtained by replacing the
   authority part of the request URI with the transport-layer source
   address of the response message.</t>
        </blockquote>
        <t>Further discussion of a more generalized response concept can be found in
<xref target="I-D.bormann-core-responses"/>.</t>
      </section>
      <section anchor="rfc7252-5105-max-age">
        <name>RFC7252-5.10.5: Max-Age</name>
        <t>In the discussion of <xref target="RFC8516"/>, a comment was
made that it would be needed to define the point in time relative to
which Max-Age is defined.  A sender might reference it to the time it
actually sends the message containing the option (and paragraph 3 of
RFC7252-5.10.5 indeed requests that Max-Age be updated each time a
message is retransmitted).  The receiver of the message does not have
reliable information about the time of sending, though.  It may
instead reference the Max-Age to the time of reception.  This in
effect extends the time of Max-Age by the latency of the packet.
This extension was deemed acceptable for the purposes of <xref target="RFC8516"/>,
but may be suboptimal when Max-Age is about the lifetime of a response
object.</t>
        <dl newline="true">
          <dt>INCOMPLETE:</dt>
          <dd>
            <t>The value is intended to be current at the time of transmission.</t>
          </dd>
        </dl>
        <t>PENDING.</t>
      </section>
      <section anchor="rfc7252-64-decomposing-uris-into-options">
        <name>RFC7252-6.4: Decomposing URIs into Options</name>
        <t><xref target="Err4895"/> notes (text updated with newer link):</t>
        <blockquote>
          <t>The current specification for decomposing a URI into CoAP Options
(Section 6.4) is correct; however the text may still be unclear to
implementers who may think that the phrase "not including the
delimiting slash characters" means simply omitting a trailing slash
character in the URI path. This is incorrect. See the discussion
outcome in email thread
<eref target="https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/">https://mailarchive.ietf.org/arch/msg/core/vqOiUreodGXqWZGeGOTREChCsKY/</eref>.</t>
        </blockquote>
        <t><xref target="Err4895"/> proceeds to propose adding another note at the end of
<xref section="6.4" sectionFormat="of" target="RFC7252"/>.
A slightly updated version of the proposed note might be:</t>
        <dl newline="true">
          <dt>FORMAL ADDITION at the end of <xref section="6.4" sectionFormat="of" target="RFC7252"/>:</dt>
          <dd>
            <t>Also note that a trailing slash character in the &lt;path&gt; component
represents a separate, zero-character path segment (see the ABNF in
<xref section="3.3" sectionFormat="of" target="RFC3986"/>).
This is encoded using a Uri-Path Option of zero length.
The exception at the start of step 8 means that no such
zero-character path segment is added for a trailing slash that
immediately follows the authority (host and port).
</t>
            <aside>
              <t>This exception means that, for a CoAP server, no difference is visible
between a request that was generated from the URI
<tt>coap://authority/</tt> and one that was generated from the URI
<tt>coap://authority</tt> — in both cases, there is no Uri-Path Option in
the request.
(The URI continues to be parsed as defined:  e.g., for the URIs
<tt>coap://authority/?</tt> and <tt>coap://authority?</tt>, there is no Uri-Path
Option but a single Uri-Query Option that carries an empty query
component.)</t>
              <t>Note that the exception at the start of step 8 does not mean that
a client cannot create a request with a single empty Uri-Path
Option; such a request just cannot be generated from a URI because
of the algorithm given here.
It also does not mean that a server is compelled to treat a request
with such a single empty Uri-Path Option in the same way as one
without any Uri-Path Option — the exception at the start of step 8
is only about the process of generating a sequence of CoAP Options
from a URI.</t>
              <t>The exception only applies to initial Uri-Path Options.
So for <tt>coap://authority/foo</tt>, a single Uri-Path Option with the
value <tt>foo</tt> is generated, while for <tt>coap://authority/foo/</tt> that
Uri-Path Option is followed by an empty Uri-Path Option (an
established idiom for a collection resource).</t>
              <t>Similarly, there is a difference between requests generated
from <tt>coap://authority/</tt>, <tt>coap://authority//</tt>, and
<tt>coap://authority///</tt>, respectively:
The first has no Uri-Path Options (due to the special exception);
the second, two (empty ones); the third, three (empty ones).
No server is compelled to offer resources under URIs with
multiple empty path name components, which would generally be
considered weird.</t>
            </aside>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-721-ct-attribute-content-format-code">
        <name>RFC7252-7.2.1: "ct" Attribute (content-format code)</name>
        <t>As has been noted in <xref target="Err5078"/>, there is no information in <xref target="RFC7252"/>
about whether the "ct" target attribute can be present multiply or
not.</t>
        <t>The text does indicate that the value of the attribute <bcp14>MAY</bcp14> be "a
space-separated sequence of Content-Format codes, indicating that
multiple content-formats are available", but it does not repeat the
prohibition of multiple instances that the analogously structured "rt"
and "if" attributes in Sections <xref target="RFC6690" section="3.1" sectionFormat="bare"/> and <xref target="RFC6690" section="3.2" sectionFormat="bare"/> of <xref target="RFC6690"/> have.</t>
        <t>This appears to be an oversight.
Published examples in <xref section="4.1" sectionFormat="of" target="RFC9148"/> and <xref section="4.3" sectionFormat="of" target="RFC9176"/> further illustrate that the space-separated approach is
generally accepted to be the one to be used.
There is no gain to be had from allowing both variants, and it would
be likely to cause interoperability problems.</t>
        <t>At the 2022-11-23 CoRE WG interim meeting, there was agreement that
<xref target="Err5078"/> should be marked "VERIFIED", which was done on 2023-01-18.</t>
        <dl newline="true">
          <dt>INCOMPLETE; FORMAL ADDITION:</dt>
          <dd>
            <t>The Content-Format code attribute <bcp14>MUST NOT</bcp14> appear more than once in a
link.</t>
          </dd>
        </dl>
      </section>
      <section anchor="rfc7252-911912-match-boxing">
        <name>RFC7252-9.1.1/9.1.2: (match boxing)</name>
        <t>Sections <xref target="RFC7252" section="9.1.1" sectionFormat="bare"/> and <xref target="RFC7252" section="9.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/> provide details about using CoAP
over DTLS connections; in particular they restrict both message-id
matching and request/response matching to within a single combination
of DTLS session/DTLS epoch.</t>
        <t>At the time, this was a decision to be very conservative based on the
wide variety of security implications a new DTLS epoch might have
(which also were not widely understood, e.g., for a re-authentication).
The normally short time between a request and a response made this
rather strict boxing appear acceptable.</t>
        <t>However, with the Observe functionality <xref target="RFC7641"/>, it is quite likely
that significant time elapses between a request and the arrival of a
notification that is sent back as a response, causing a need for the
latter to use a different box from the original request.</t>
        <t>Also, additions to CoAP such as CoAP over connection-oriented
transports <xref target="RFC8323"/> and OSCORE <xref target="RFC8613"/> create similar matching
boxes that also do not fit certain likely use cases of these additions
(e.g., with short-lived TCP connections as discussed in <xref section="4.3" sectionFormat="of" target="RFC9006"/>).</t>
        <t>The match boxing semantics of the current protocol are clearly defined, but can be unsatisfactory given the current requirements.</t>
        <t>This calls for careful design choices and enhancements when developing extensions for CoAP or protocols and methods applicable to CoAP, such as in the cases overviewed in the following <xref target="match-boxing-oscore"/> and <xref target="match-boxing-eclipse"/>.</t>
        <section anchor="dtls-with-connection-id">
          <name>DTLS with Connection ID</name>
          <t>PENDING:</t>
          <aside>
            <t>Protocol mechanisms that have been defined for stitching
together connections or phases of an underlying connection, such
as Connection Identifiers for DTLS 1.2 <xref target="RFC9146"/>, may enable
keeping the session/epoch unchanged and even to change the
transport address (ip-address/port), once appropriately modified
match boxing rules are specified for the stitching mechanism.
(These rules either need to be defined to be implicitly active
for any use of the mechanism or they may require negotiation.)</t>
          </aside>
        </section>
        <section anchor="match-boxing-oscore">
          <name>OSCORE, KUDOS, and Group OSCORE</name>
          <t>The security protocol Object Security for Constrained RESTful Environments (OSCORE) defined in <xref target="RFC8613"/> provides end-to-end security for CoAP messages at the application level, by using CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>. In order to protect their communications, two peers need to have already established an OSCORE Security Context.</t>
          <t><xref section="B.2" sectionFormat="of" target="RFC8613"/> provides an example for a key update procedure, which two OSCORE peers can run for establishing a new shared OSCORE Security Context that replaces their old one. The recent key update protocol KUDOS <xref target="I-D.ietf-core-oscore-key-update"/> specifies how two OSCORE peers can establish a new shared OSCORE Security Context that replaces their old one, with a number of advantages compared to the method defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
          <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) defined in <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE and protects group communication for CoAP <xref target="I-D.ietf-core-groupcomm-bis"/>. The management of the group keying material is entrusted to a Group Manager (see <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>), which provides the latest group keying material to a new group member upon its group joining, and can update the group keying material by performing a group rekeying.</t>
          <t>The following discusses how OSCORE, KUDOS, and Group OSCORE position themselves with respect to the match boxing, the transport used underlying CoAP, and the renewal of the keying material.</t>
          <section anchor="match-boxing">
            <name>Match Boxing</name>
            <t>The security processing of (Group) OSCORE is agnostic of the value assumed by the CoAP Token and Message ID. Also, (Group) OSCORE can be seamlessly used in the presence of (cross-)proxies that will change the value of the CoAP Token and Message ID on the different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Before any security processing is performed, the only use that (Group) OSCORE makes of the Token value is on the CoAP client upon receiving a response, in order to retrieve the right Security Context to use for decrypting and verifying the response.</t>
            <t>Even in case the Token value in a CoAP response is manipulated to induce a Request-Response matching at the client, there is no risk for the client to successfully decrypt the response instead of failing as expected. This is because, per <xref section="12.3" sectionFormat="of" target="RFC8613"/>, the OSCORE Master Secret of each OSCORE Security Context is required not only to be secret, but also to have a good amount of randomness.</t>
            <t>Building on that, an HKDF is used to derive the actual encryption keys
from the Master Secret and, optionally, from an additional Master
Salt. Furthermore, for each OSCORE Security Context, the quartet
(Master Secret, Master Salt, ID Context, Sender ID) must be unique. As
per <xref section="3.3" sectionFormat="of" target="RFC8613"/>, this is a hard requirement and
guarantees unique (key, nonce) pairs for the AEAD algorithm used.</t>
            <t>In Group OSCORE, the Security Context extends that of OSCORE, and the same as above holds  (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="2" sectionFormat="bare"/>, <xref target="I-D.ietf-core-oscore-groupcomm" section="2.2" sectionFormat="bare"/>, and <xref target="I-D.ietf-core-oscore-groupcomm" section="13.11" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
            <t>Finally, (Group) OSCORE performs a separate secure match boxing under its own control, by cryptographically binding each protected request with all the corresponding protected responses. This is achieved by means of the COSE external_aad involved during the security processing of protected messages (see <xref section="5.4" sectionFormat="of" target="RFC8613"/> and <xref section="4.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
          </section>
          <section anchor="underlying-transport">
            <name>Underlying Transport</name>
            <t>The security protocol (Group) OSCORE does not have any requirement on
binding the Security Context in use to specific addressing information used by the transport protocol underlying CoAP. What occurs below (Group) OSCORE with transport-specific addressing information is transparent to (Group) OSCORE, but it needs to work well enough to ensure that received data is delivered to (Group) OSCORE for security processing.</t>
            <t>Consistent with the above, (Group) OSCORE does not interfere with any low-layer, transport specific information. Instead, it entrusts data to a Request-Response exchange mechanism that can rely on different means to enforce the Request-Response matching at the transport level (e.g., the 5-tuple, the CoAP Message ID, a file handle). Also, (Group) OSCORE does not alter the fact that a CoAP response needs to come from where the corresponding CoAP request was sent, which simply follows from using transports where that is a requirement.</t>
            <t>Furthermore, two peers can seamlessly use (Group) OSCORE also in the presence of cross-proxies that change transport across different communication legs. This does not affect the security processing at the (Group) OSCORE endpoints.</t>
            <t>Practically, (Group) OSCORE relies on the underlying CoAP implementation for obtaining received CoAP messages on which to perform the expected security processing.</t>
            <t>Upon receiving a protected message, the recipient endpoint retrieves the OSCORE Security Context to use for decryption based on key identifier information specified in the CoAP OSCORE Option of protected requests, and on the value of the CoAP Token of protected responses.</t>
            <t>In OSCORE, the key identifier information in request messages is
typically limited to a "kid", with a value the OSCORE Sender ID associated with the message sender. In case Sender IDs are not unique among different OSCORE Security Contexts stored by the same peer, it is possible to disambiguate by additionally using a "kid context" identifying the OSCORE Security Context as a whole. Instead, response messages are not required to convey key identifier information, as the client can rely on the Token conveyed in the response for retrieving the Security Context to use (see above).</t>
            <t>In Group OSCORE, the key identifier information in request messages always includes also a "kid context", whose value is used as identifier of the OSCORE group associated with the Security Context to use for security processing of the exchanged message. Response messages are also required to convey a "kid" as key identifier information (i.e., the OSCORE Sender ID associated with the message sender), if the corresponding request was protected with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) .</t>
            <t>Some particular uses of (Group) OSCORE enable to build OSCORE-based tunneling <xref target="I-D.ietf-core-oscore-capable-proxies"/>. In such a case, a CoAP server might have to enforce that some OSCORE Security Contexts are not just looked up by a "kid" and similar key identifier information from the CoAP OSCORE Option in the incoming request to decrypt. Such a lookup should also rely on the alleged client's address, or on an alternative identifier of the tunnel from which the request came from.</t>
          </section>
          <section anchor="key-update">
            <name>Key Update</name>
            <t>Updating an OSCORE Security Context does not change or interfere with the values of the Token or Message ID used in the exchanged CoAP messages. However, if long-term exchanges are involved (e.g., CoAP Observations <xref target="RFC7641"/>), one has to be careful to ensure that updating the Security Context does not impair the security properties of (Group) OSCORE or result in other security vulnerabilities.</t>
            <t>The following provides more details about key update, separately for OSCORE, KUDOS, and Group OSCORE.</t>
            <ul spacing="normal">
              <li>
                <t>OSCORE: <xref target="RFC8613"/> tacitly assumes that two peers terminate any ongoing CoAP Observation that they still have ongoing, upon installing a new OSCORE Security Context, irrespective of the method used to perform the key update.  </t>
                <t>
On these premises, a belated response protected with the old OSCORE
Security Context will fail decryption, as that Security Context is not available anymore on the receiving client.</t>
              </li>
              <li>
                <t>KUDOS: The key update protocol KUDOS allows the two OSCORE peers to negotiate about preserving their ongoing CoAP Observations across the performed key update. If and only if both peers agree to do that during an execution of KUDOS, their Observations will remain active after installing the new OSCORE Security Context, which the two peers will use from then on to protect their exchanged Observe notifications.  </t>
                <t>
Furthermore, irrespective of the method used to perform a key update, <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> updates the security protocol OSCORE <xref target="RFC8613"/> in order to prevent security issues that can arise from misbinding a request and a response, when those are protected with two different OSCORE Security Contexts.  </t>
                <t>
Such an update to the OSCORE protocol requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request. An exception safely applies to the response messages that are sent when running the key update procedure defined in <xref section="B.2" sectionFormat="of" target="RFC8613"/>.</t>
              </li>
              <li>
                <t>Group OSCORE: The Group Manager can distribute new group keying material to the members of an OSCORE group, by performing a group rekeying. When receiving updated group keying material from the Group Manager, either upon joining the group or by participating in a group rekeying, a group member uses that material to install a new, commonly shared Group OSCORE Security Context, which replaces the old one (if any is stored).  </t>
                <t>
Also, Group OSCORE makes it possible for group members to safely
preserve their ongoing active requests (e.g., CoAP Observations), also across the establishment of new Group OSCORE Security Contexts. This is achieved by virtue of how the Group Manager assigns and maintains the identifiers of OSCORE groups (see <xref section="3.2.1.1" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).  </t>
                <t>
Furthermore, analogous to the update that <xref target="I-D.ietf-core-oscore-key-update"/> makes on the OSCORE protocol with respect to protecting responses, Group OSCORE prevents security issues that can arise from misbinding a request and a response, when those are protected with two different Group OSCORE Security Contexts.  </t>
                <t>
In the same way specified in <xref section="3" sectionFormat="of" target="I-D.ietf-core-oscore-key-update"/> for OSCORE, Group OSCORE requires a server to include its own Sender Sequence Number as Partial IV of an outgoing response, when protecting it with a Security Context different from the one used to protect the corresponding request (see Sections <xref target="I-D.ietf-core-oscore-groupcomm" section="8.3" sectionFormat="bare"/> and <xref target="I-D.ietf-core-oscore-groupcomm" section="9.5" sectionFormat="bare"/> of <xref target="I-D.ietf-core-oscore-groupcomm"/>).</t>
              </li>
            </ul>
          </section>
        </section>
        <section anchor="match-boxing-eclipse">
          <name>Eclipse/Californium</name>
          <t>Enhancements may be called for optimizations such as Eclipse/Californium EndpointContextMatcher <xref target="CF-MATCHER"/> might not work properly unless both sides of the communication agree on the extent of the matching boxes. Mechanisms to indicate capabilities and choices selected may need to be defined; also, a way to define the progression of matching boxes needs to be defined that is compatible with the security properties of the underlying protocols. This may require new efforts, to be initiated based on some formative contributions.</t>
          <t>PENDING.</t>
          <t>Relevant starting points for retrieving existing discussion of this
issue include:</t>
          <ul spacing="normal">
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/">https://mailarchive.ietf.org/arch/msg/core/biDJ8n4w0kBQATzyh9xHlKnGy1o/</eref><br/>
("DTLS and Epochs")</t>
            </li>
            <li>
              <t><eref target="https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/">https://mailarchive.ietf.org/arch/msg/core/TsyyKIHQ1FJtAvAo0ODNEt2Ileo/</eref><br/>
("Connection ID")</t>
            </li>
            <li>
              <t><eref target="https://github.com/core-wg/corrclar/issues/9">https://github.com/core-wg/corrclar/issues/9</eref><br/>
("Clarify/revise language around epochs in section 9.1.1 #9")</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="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>
        <reference anchor="RFC8516">
          <front>
            <title>"Too Many Requests" Response Code for the Constrained Application Protocol</title>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>A Constrained Application Protocol (CoAP) server can experience temporary overload because one or more clients are sending requests to the server at a higher rate than the server is capable or willing to handle. This document defines a new CoAP response code for a server to indicate that a client should reduce the rate of requests.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8516"/>
          <seriesInfo name="DOI" value="10.17487/RFC8516"/>
        </reference>
        <reference anchor="I-D.bormann-core-responses">
          <front>
            <title>CoAP: Non-traditional response forms</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   In CoAP as defined by RFC 7252, responses are always unicast back to
   a client that posed a request.  The present memo describes two forms
   of responses that go beyond that model.  These descriptions are not
   intended as advocacy for adopting these approaches immediately, they
   are provided to point out potential avenues for development that
   would have to be carefully evaluated.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-12"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="26" month="September" year="2024"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of CoAP messages exchanged between members of a group, e.g.,
   sent over IP multicast.  In particular, the described protocol
   defines how OSCORE is used in a group communication setting to
   provide source authentication for CoAP group requests, sent by a
   client to multiple servers, and for protection of the corresponding
   CoAP responses.  Group OSCORE also defines a pairwise mode where each
   member of the group can efficiently derive a symmetric pairwise key
   with any other member of the group for pairwise OSCORE communication.
   Group OSCORE can be used between endpoints communicating with CoAP or
   CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-23"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-capable-proxies">
          <front>
            <title>OSCORE-capable Proxies</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   Object Security for Constrained RESTful Environments (OSCORE) can be
   used to protect CoAP messages end-to-end between two endpoints at the
   application layer, also in the presence of intermediaries such as
   proxies.  This document defines how to use OSCORE for protecting CoAP
   messages also between an origin application endpoint and an
   intermediary, or between two intermediaries.  Also, it defines rules
   to escalate the protection of a CoAP option, in order to encrypt and
   integrity-protect it whenever possible.  Finally, it defines how to
   secure a CoAP message by applying multiple, nested OSCORE
   protections, e.g., both end-to-end between origin application
   endpoints, and between an application endpoint and an intermediary or
   between two intermediaries.  Therefore, this document updates RFC
   8613.  Furthermore, this document updates RFC 8768, by explicitly
   defining the processing with OSCORE for the CoAP option Hop-Limit.
   The approach defined in this document can be seamlessly used with
   Group OSCORE, for protecting CoAP messages when group communication
   is used in the presence of intermediaries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-capable-proxies-03"/>
        </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="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="8" month="December" year="2024"/>
            <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-04"/>
        </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">
         </author>
            <author fullname="Achim Kraus" initials="A." surname="Kraus">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>Linaro</organization>
            </author>
            <date day="24" month="September" year="2024"/>
            <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-12"/>
        </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="20" month="October" year="2024"/>
            <abstract>
              <t>   This document is a companion to RFC 7925 and defines TLS/DTLS 1.3
   profiles for Internet of Things devices.  It also updates RFC 7925
   with regards to the X.509 certificate profile and ciphersuite
   requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-11"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9006">
          <front>
            <title>TCP Usage Guidance in the Internet of Things (IoT)</title>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="J. Crowcroft" initials="J." surname="Crowcroft"/>
            <author fullname="M. Scharf" initials="M." surname="Scharf"/>
            <date month="March" year="2021"/>
            <abstract>
              <t>This document provides guidance on how to implement and use the Transmission Control Protocol (TCP) in Constrained-Node Networks (CNNs), which are a characteristic of the Internet of Things (IoT). Such environments require a lightweight TCP implementation and may not make use of optional functionality. This document explains a number of known and deployed techniques to simplify a TCP stack as well as corresponding trade-offs. The objective is to help embedded developers with decisions on which TCP features to use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9006"/>
          <seriesInfo name="DOI" value="10.17487/RFC9006"/>
        </reference>
        <reference anchor="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 674?>

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

</section>
  </back>
  <!-- ##markdown-source:
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
+Yn2FJH7fcMo/l4jfuT/AODMdmcZkgAA

-->

</rfc>
