<?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  (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-core-oscore-discovery-16" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="OSCORE group discovery with the CoRE RD">Discovery of OSCORE Groups with the CoRE Resource Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-discovery-16"/>
    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <street>Hollandstr. 12/4</street>
          <city>Vienna</city>
          <code>1020</code>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author initials="P." surname="van der Stok" fullname="Peter van der Stok">
      <organization/>
      <address>
        <email>stokcons@kpnmail.nl</email>
      </address>
    </author>
    <date year="2024" month="September" day="04"/>
    <area>Applications</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Group communication over the Constrained Application Protocol (CoAP) can be secured by means of Group Object Security for Constrained RESTful Environments (Group OSCORE). At deployment time, devices may not know the exact security groups to join, the respective Group Manager, or other information required to perform the joining process. This document describes how a CoAP endpoint can use descriptions and links of resources registered at the CoRE Resource Directory to discover security groups and to acquire information for joining them through the respective Group Manager. A given security group may protect multiple application groups, which are separately announced in the Resource Directory as sets of endpoints sharing a pool of resources. This approach is consistent with, but not limited to, the joining of security groups based on the ACE framework for Authentication and Authorization in constrained environments.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Constrained RESTful Environments Working Group mailing list (core@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-core-oscore-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> supports group communication over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/> to improve efficiency and latency of communication and reduce bandwidth requirements. A set of CoAP endpoints constitutes an application group by sharing a common pool of resources, that can be efficiently accessed through group communication. The members of an application group may be members of a security group, thus sharing a common set of keying material to secure group communication.</t>
      <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE <xref target="RFC8613"/> and protects CoAP messages end-to-end in group communication contexts through CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/><xref target="RFC9053"/>. An application group may rely on one or more security groups, and a same security group may be used by multiple application groups at the same time.</t>
      <t>A CoAP endpoint relies on a Group Manager (GM) to join a security group and get the group keying material. The joining process in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> is based on the ACE framework for Authentication and Authorization in constrained environments <xref target="RFC9200"/>, with the joining endpoint and the GM acting as ACE Client and Resource Server, respectively. That is, the joining endpoint accesses the group-membership resource exported by the GM and associated with the security group to join.</t>
      <t>Typically, devices store a static X509 IDevID certificate installed at manufacturing time <xref target="RFC8995"/>. This is used at deployment time during an enrollment process that provides the devices with an Operational Certificate, possibly updated during the device lifetime. Operational Certificates may specify information to join security groups, especially a reference to the group-membership resources to access at the respective GMs.</t>
      <t>However, it is usually impossible to provide such precise information to freshly deployed devices, as part of their (early) Operational Certificate. This can be due to a number of reasons: (1) the security group(s) to join and the responsible GM(s) are generally unknown at manufacturing time; (2) a security group of interest is created, or the responsible GM is deployed, only after the device is enrolled and fully operative in the network; (3) information related to existing security groups or to their GMs has changed. This requires a method for CoAP endpoints to dynamically discover security groups and their GM, and to retrieve relevant information about deployed groups.</t>
      <t>To this end, CoAP endpoints can use descriptions and links of group-membership resources at GMs, to discover security groups and retrieve the information required for joining them. With the discovery process of security groups expressed in terms of links to resources, the remaining problem is the discovery of those links. The CoRE Resource Directory (RD) <xref target="RFC9176"/> allows such discovery in an efficient way, and it is expected to be used in many setups that would benefit of security group discovery.</t>
      <t>This specification builds on this approach and describes how CoAP endpoints can use the RD to perform the link discovery steps, in order to discover security groups and retrieve the information required to join them through their GM. In short, the GM registers as an endpoint with the RD. The resulting registration resource includes one link per security group under that GM, specifying the path to the related group-membership resource to access for joining that group.</t>
      <t>Additional descriptive information about the security group is stored with the registered link. In a RD based on Link Format <xref target="RFC6690"/> as defined in <xref target="RFC9176"/>, this information is specified as target attributes of the registered link, and includes the identifiers of the application groups which use that security group. This enables a lookup of those application groups at the RD, where they are separately announced by a Commissioning Tool (see <xref section="A" sectionFormat="of" target="RFC9176"/>).</t>
      <t>When querying the RD for security groups, a CoAP endpoint can use CoAP observation <xref target="RFC7641"/>. This results in automatic notifications on the creation of new security groups or the update of existing groups. Thus, it facilitates the early deployment of CoAP endpoints, i.e., even before the GM is deployed and security groups are created.</t>
      <t>Interaction examples are provided in Link Format, as well as in the Constrained RESTful Application Language CoRAL <xref target="I-D.ietf-core-coral"/> with reference to a CoRAL-based RD <xref target="I-D.hartke-t2trg-coral-reef"/>.</t>
      <t>The examples in CoRAL are expressed in CBOR diagnostic notation <xref target="RFC8949"/>, and refer to values from external dictionaries using Packed CBOR <xref target="I-D.ietf-cbor-packed"/>. <xref target="sec-coral-examples-notation"/> introduces the notation and assumptions used in the CoRAL examples.</t>
      <t>The approach in this document is consistent with, but not limited to, the joining of security groups defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>Readers are expected to be familiar with the terms and concepts from the following specifications.</t>
        <ul spacing="normal">
          <li>
            <t>Link Format <xref target="RFC6690"/> and the CoRE Resource Directory <xref target="RFC9176"/>.</t>
          </li>
          <li>
            <t>The Constrained RESTful Application Language (CoRAL) <xref target="I-D.ietf-core-coral"/> and Constrained Resource Identifiers (CRIs) <xref target="I-D.ietf-core-href"/>.</t>
          </li>
          <li>
            <t>CBOR <xref target="RFC8949"/> and Packed CBOR <xref target="I-D.ietf-cbor-packed"/>.</t>
          </li>
          <li>
            <t>The CoAP protocol <xref target="RFC7252"/>, also in group communication scenarios <xref target="I-D.ietf-core-groupcomm-bis"/>.</t>
          </li>
          <li>
            <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) <xref target="I-D.ietf-core-oscore-groupcomm"/>, and the joining of security groups defined in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
          </li>
        </ul>
        <t>Consistently with the definitions from <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>, this document also refers to the following terminology.</t>
        <ul spacing="normal">
          <li>
            <t>CoAP group: a set of CoAP endpoints all configured to receive CoAP multicast messages sent to the group's associated IP multicast address and UDP port. An endpoint may be a member of multiple CoAP groups by subscribing to multiple IP multicast addresses.</t>
          </li>
          <li>
            <t>Security group: a set of CoAP endpoints that share the same security material, and use it to protect and verify exchanged messages. A CoAP endpoint may be a member of multiple security groups. There can be a one-to-one or a one-to-many relation between security groups and CoAP groups.  </t>
            <t>
This document especially considers a security group to be an OSCORE group, where all members share one OSCORE Security Context to protect group communication with Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>. However, the approach defined in this document can be used to support the discovery of different security groups than OSCORE groups.</t>
          </li>
          <li>
            <t>Application group: a set of CoAP endpoints that share a common set of resources. An endpoint may be a member of multiple application groups. An application group can be associated with one or more security groups, and multiple application groups can use the same security group. Application groups are announced in the RD by a Commissioning Tool, according to the RD-Groups usage pattern (see <xref section="A" sectionFormat="of" target="RFC9176"/>).</t>
          </li>
        </ul>
        <t>Like <xref target="I-D.ietf-core-oscore-groupcomm"/>, this document also uses the following term.</t>
        <ul spacing="normal">
          <li>
            <t>Authentication credential: set of information associated with an entity, including that entity's public key and parameters associated with the public key. Examples of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claims Sets (CCSs)
<xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</t>
          </li>
        </ul>
        <t>Terminology for constrained environments, such as "constrained device" and "constrained-node network", is defined in <xref target="RFC7228"/>.</t>
      </section>
      <section anchor="sec-coral-examples-notation">
        <name>Notation and Assumptions in the CoRAL Examples</name>
        <t>As per Section 2.4 of <xref target="I-D.ietf-core-coral"/>, CoRAL expresses Uniform Resource Identifiers (URIs) <xref target="RFC3986"/> as Constrained Resource Identifier (CRI) references <xref target="I-D.ietf-core-href"/>.</t>
        <t>Throughout this document, the examples in CoRAL use the following notation.</t>
        <t>When using the CURIE syntax <xref target="CURIE-20101216"/>, the following applies.</t>
        <ul spacing="normal">
          <li>
            <t>'linkformat' stands for http://www.iana.org/assignments/linkformat/  </t>
            <t>
This URI is to be defined with IANA, together with other URIs that build on it through further path segments, e.g., http://www.iana.org/assignments/linkformat/rt</t>
          </li>
          <li>
            <t>'rel' stands for http://www.iana.org/assignments/relation/  </t>
            <t>
This URI is to be defined with IANA, together with other URIs that build on it through further path segments, e.g., http://www.iana.org/assignments/relation/hosts</t>
          </li>
          <li>
            <t>'reef' stands for http://coreapps.org/reef</t>
          </li>
        </ul>
        <t>When using a URI http://www.iana.org/assignments/linkformat/SEG1/SEG2</t>
        <ul spacing="normal">
          <li>
            <t>The path segment SEG1 is the name of a web link target attribute.  </t>
            <t>
Names of target attributes used in Link Format <xref target="RFC6690"/> are expected to be coordinated through the "Target Attributes" registry <xref target="Target.Attributes"/> defined in <xref target="RFC9423"/>.</t>
          </li>
          <li>
            <t>The path segment SEG2 is the value of the target attribute.</t>
          </li>
        </ul>
        <t>When using a URI http://www.iana.org/assignments/relation/SEG , the path segment SEG denotes a Web Linking relation type <xref target="RFC8288"/>.</t>
        <t>The application-extension identifier "cri" defined in <xref section="C" sectionFormat="of" target="I-D.ietf-core-href"/> is used to notate a CBOR Extended Diagnostic Notation (EDN) literal for a CRI or CRI reference. This format is not expected to be sent over the network.</t>
        <t>Packed CBOR <xref target="I-D.ietf-cbor-packed"/> is also used, thus reducing representation size. The examples especially refer to the values from the three shared item tables in <xref target="sec-packed-cbor-tables"/>.</t>
        <t>Finally, the examples use the CoAP Content-Format ID 65087 for the media-type application/coral+cbor.</t>
      </section>
    </section>
    <section anchor="sec-GM-registration">
      <name>Registration of Group Manager Endpoints</name>
      <t>During deployment, a Group Manager (GM) can find the CoRE Resource Directory (RD) as described in <xref section="4" sectionFormat="of" target="RFC9176"/>.</t>
      <t>Afterwards, the GM registers as an endpoint with the RD, as described in <xref section="5" sectionFormat="of" target="RFC9176"/>. The GM <bcp14>SHOULD NOT</bcp14> use the Simple Registration approach described in <xref section="5.1" sectionFormat="of" target="RFC9176"/>.</t>
      <t>When registering with the RD, the GM also registers the links to all the group-membership resources it has at that point in time, i.e., one for each of its security groups.</t>
      <t>In the registration request, each link to a group-membership resource has as target the URI of that resource at the GM. Also, it specifies a number of descriptive parameters as defined in <xref target="ssec-parameters"/>.</t>
      <t>Furthermore, the GM <bcp14>MAY</bcp14> additionally register the link to its resource implementing the ACE authorization information endpoint (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>). A joining node can provide the GM with its own access token by sending it in a request targeting that resource, thus proving to be authorized to join certain security groups (see <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). In such a case, the link <bcp14>MUST</bcp14> include the parameter 'rt' with value "ace.ai", defined in <xref section="8.2" sectionFormat="of" target="RFC9200"/>.</t>
      <section anchor="ssec-parameters">
        <name>Parameters</name>
        <t>For each registered link to a group-membership resource at a GM, the following parameters are specified together with the link.</t>
        <t>In the RD defined in <xref target="RFC9176"/> and based on Link Format, each parameter is specified in a target attribute with the same name.</t>
        <t>In a RD based on CoRAL, such as the one defined in <xref target="I-D.hartke-t2trg-coral-reef"/>, each parameter is specified in a nested element with the same name.</t>
        <ul spacing="normal">
          <li>
            <t>'ct', specifying the content format used with the group-membership resource at the Group Manager, with the value registered in <xref section="11.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/> for "application/ace-groupcomm+cbor".  </t>
            <t>
Note: The examples in this document use the provisional value 65000 from the range "Reserved for Experimental Use" of the "CoAP Content-Formats" registry, within the "CoRE Parameters" registry.</t>
          </li>
          <li>
            <t>'rt', specifying the resource type of the group-membership resource at the Group Manager, with value "core.osc.gm" registered in <xref section="16.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
          </li>
          <li>
            <t>'if', specifying the interface description for accessing the group-membership resource at the Group Manager, with value "ace.group" registered in <xref section="11.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
          </li>
          <li>
            <t>'sec-gp', specifying the name of the security group of interest, as a stable and invariant identifier, such as the group name used in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>. This parameter <bcp14>MUST</bcp14> specify a single value.</t>
          </li>
          <li>
            <t>'app-gp', specifying the name(s) of the application group(s) associated with the security group of interest indicated by 'sec-gp'. This parameter <bcp14>MUST</bcp14> occur once for each application group, and <bcp14>MUST</bcp14> specify only a single application group.  </t>
            <t>
When a security group is created at the GM, the names of the application groups using it are also specified as part of the security group configuration (see <xref target="I-D.ietf-ace-oscore-gm-admin"/><xref target="I-D.ietf-ace-oscore-gm-admin-coral"/>). Thus, when registering the links to its group-membership resource, the GM is aware of the application groups and their names.  </t>
            <t>
If a different entity than the GM registers the security groups to the RD, e.g., a Commissioning Tool, this entity has to also be aware of the application groups and their names to specify. To this end, it can obtain them from the GM or from the Administator that created the security groups at the GM (see <xref target="I-D.ietf-ace-oscore-gm-admin"/><xref target="I-D.ietf-ace-oscore-gm-admin-coral"/>).</t>
          </li>
        </ul>
        <t>Optionally, the following parameters can also be specified. If Link Format is used, the value of each of these parameters is encoded as a text string.</t>
        <ul spacing="normal">
          <li>
            <t>'hkdf', specifying the HKDF algorithm used in the security group, e.g., aligned with the parameter HKDF Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'cred-fmt', specifying the format of the authentication credentials used in the security group, e.g., aligned with the parameter Authentication Credential Format in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Label' column of the "COSE Header Parameters" Registry <xref target="COSE.Header.Parameters"/>. Acceptable values denote a format that <bcp14>MUST</bcp14> explicitly provide the public key as well as the comprehensive set of information related to the public key algorithm, including, e.g., the used elliptic curve (when applicable).  </t>
            <t>
At the time of writing this specification, acceptable formats of authentication credentials are CBOR Web Tokens (CWTs) and CWT Claim Sets (CCSs) <xref target="RFC8392"/>, X.509 certificates <xref target="RFC5280"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria defined above.  </t>
            <t>
[ As to CWTs and unprotected CWT claim sets, there is a pending registration requested by draft-ietf-lake-edhoc. ]  </t>
            <t>
[ As to C509 certificates, there is a pending registration requested by draft-ietf-cose-cbor-encoded-cert. ]</t>
          </li>
          <li>
            <t>'gp-enc-alg', specifying the encryption algorithm used to encrypt messages in the security group when these are also signed, e.g., aligned with the parameter Group Encryption Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'sign-alg', specifying the algorithm used to sign messages in the security group, e.g., aligned with the parameter Signature Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'sign-alg-crv', specifying the elliptic curve (if applicable) for the algorithm used to sign messages in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves"/>.</t>
          </li>
          <li>
            <t>'sign-key-kty', specifying the key type of signing keys used to sign messages in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Key Types" Registry <xref target="COSE.Key.Types"/>.</t>
          </li>
          <li>
            <t>'sign-key-crv', specifying the elliptic curve (if applicable) of signing keys used to sign messages in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves"/>.</t>
          </li>
          <li>
            <t>'alg', specifying the encryption algorithm used to encrypt messages in the security group when these are encrypted with pairwise encryption keys, e.g., aligned with the parameter AEAD Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'ecdh-alg', specifying the ECDH algorithm used to derive pairwise encryption keys in the security group, e.g., aligned with the parameter Pairwise Key Agreement Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</t>
          </li>
          <li>
            <t>'ecdh-alg-crv', specifying the elliptic curve for the ECDH algorithm used to derive pairwise encryption keys in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves"/>.</t>
          </li>
          <li>
            <t>'ecdh-key-kty', specifying the key type of keys used with an ECDH algorithm to derive pairwise encryption keys in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Key Types" Registry <xref target="COSE.Key.Types"/>.</t>
          </li>
          <li>
            <t>'ecdh-key-crv', specifying the elliptic curve of keys used with an ECDH algorithm to derive pairwise encryption keys in the security group. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves"/>.</t>
          </li>
          <li>
            <t>'det-hash-alg', specifying the hash algorithm used in the security group when producing deterministic requests, e.g., as defined in <xref target="I-D.amsuess-core-cachable-oscore"/>. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>. This parameter <bcp14>MUST NOT</bcp14> be present if the security group does not use deterministic requests.</t>
          </li>
          <li>
            <t>'rekeying-scheme', specifying the rekeying scheme used in the security group for distributing new group keying meterial to the group members. If present, this parameter <bcp14>MUST</bcp14> specify a single value, which is taken from the 'Value' column of the "ACE Groupcomm Rekeying Schemes" registry defined in <xref section="11.12" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
          </li>
        </ul>
        <t>If the security group does not recur to message signing, then the parameters 'gp-enc-alg', 'sign-alg', 'sign-alg-crv', 'sign-key-kty' and 'sign-key-crv' <bcp14>MUST NOT</bcp14> be present. For instance, this is the case for a security group that uses Group OSCORE and uses only the pairwise mode (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
        <t>If the security group does not recur to message encryption through pairwise encryption keys, then the parameters 'alg', 'ecdh-alg', 'ecdh-alg-crv', 'ecdh-key-kty' and 'ecdh-key-crv' <bcp14>MUST NOT</bcp14> be present. For instance, this is the case for a security group that uses Group OSCORE and uses only the group mode see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
        <t>Note that the values registered in the COSE Registries <xref target="COSE.Algorithms"/><xref target="COSE.Elliptic.Curves"/><xref target="COSE.Key.Types"/> are strongly typed. On the contrary, Link Format is weakly typed and thus does not distinguish between, for instance, the string value "-10" and the integer value -10.</t>
        <t>Thus, in RDs that return responses in Link Format, string values which look like an integer are not supported. Therefore, such values <bcp14>MUST NOT</bcp14> be advertised through the corresponding parameters above.</t>
        <t>A CoAP endpoint that queries the RD to discover security groups and their group-membership resource to access (see <xref target="sec-group-discovery"/>) would benefit from the information above as follows.</t>
        <ul spacing="normal">
          <li>
            <t>The values of 'cred-fmt', 'sign-alg', 'sign-alg-crv', 'sign-key-kty', 'sign-key-crv', 'ecdh-alg', 'ecdh-alg-crv', 'ecdh-key-kty' and 'ecdh-key-crv' related to a group-membership resource provide an early knowledge of the format of authentication credentials as well as of the type of public keys used in the security group.  </t>
            <t>
Thus, the CoAP endpoint does not need to ask the GM for this information as a preliminary step before the joining process, or to perform a trial-and-error joining exchange with the GM. Hence, at the very first step of the joining process, the CoAP endpoint is able to provide the GM with its own authentication credential in the correct expected format and including a public key of the correct expected type.</t>
          </li>
          <li>
            <t>The values of 'hkdf', 'gp-enc-alg', 'sign-alg', 'alg' and 'ecdh-alg' related to a group-membership resource provide an early knowledge of the algorithms used in the security group.  </t>
            <t>
Thus, the CoAP endpoint is able to decide whether to actually proceed with the joining process, depending on its support for the indicated algorithms.</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-link-as">
        <name>Relation Link to Authorization Server</name>
        <t>For each registered link to a group-membership resource, the GM <bcp14>MAY</bcp14> additionally specify the link to the ACE Authorization Server (AS) <xref target="RFC9200"/> associated with the GM, and issuing authorization credentials to join the security group as described in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        <t>The link to the AS has as target the URI of the resource where to send an authorization request to.</t>
        <t>In the RD defined in <xref target="RFC9176"/> and based on Link Format, the link to the AS is separately registered with the RD, and includes the following parameters as target attributes.</t>
        <ul spacing="normal">
          <li>
            <t>'rel', with value "authorization_server".</t>
          </li>
          <li>
            <t>'anchor', with value the target of the link to the group-membership resource at the GM.</t>
          </li>
        </ul>
        <t>In a RD based on CoRAL, such as the one defined in <xref target="I-D.hartke-t2trg-coral-reef"/>, this is mapped (as describe there) to a link from the registration resource to the AS, using the &lt;http://www.iana.org/assignments/relation/authorization_server&gt; link relation type.</t>
      </section>
      <section anchor="ssec-registration--ex">
        <name>Registration Example</name>
        <t>The example below shows a GM with endpoint name "gm1" and address [2001:db8::ab] that registers with the RD.</t>
        <t>The GM specifies the value of the 'sec-gp' parameter for accessing the security group with name "feedca570000", and used by the application group with name "group1" specified with the value of the 'app-gp' parameter.</t>
        <t>The signature algorithm used in the security group is EdDSA (-8), with elliptic curve Ed25519 (6). Authentication credentials used in the security group are X.509 certificates <xref target="RFC5280"/>, which is signaled through the COSE Header Parameter "x5chain" (33). The ECDH algorithm used in the security group is ECDH-SS + HKDF-256 (-27), with elliptic curve X25519 (4).</t>
        <t>In addition, the GM specifies the link to the ACE Authorization Server associated with the GM, to which a CoAP endpoint should send an Authorization Request for joining the corresponding security group (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        <section anchor="sssec-registration--ex-link-format">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: 40

Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="feedca570000";app-gp="group1";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000"
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [2, 6(-22) / item 59 for reef:ep /, "gm1"],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [
        2, simple(6) / item 6 for linkformat:rt /,
        6(200) / item 416 for cri'http://www.iana.org/assignments/
                                  linkformat/rt/core.osc.gm' /
      ],
      [
        2, simple(7) / item 7 for linkformat:if /,
        6(250) / item 516 for cri'http://www.iana.org/assignments/
                                  linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group1"],
      [2, 6(4)  / item 24 for linkformat:cred-fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign-enc-alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign-alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign-alg-crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh-alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh-alg-crv / , 4],
      [
        2, simple(1) / item 1 for rel:authorization-server / ,
        cri'coap://as.example.com/token'
      ]
    ]
  ]
]
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-update-addition">
      <name>Addition and Update of Security Groups</name>
      <t>The GM is responsible to refresh the registration of all its group-membership resources in the RD. This means that the GM has to update the registration within its lifetime as per <xref section="5.3.1" sectionFormat="of" target="RFC9176"/>, and has to change the content of the registration when a group-membership resource is added/removed, or if its parameters have to be changed, such as in the following cases.</t>
      <ul spacing="normal">
        <li>
          <t>The GM creates a new security group and starts exporting the related group-membership resource.</t>
        </li>
        <li>
          <t>The GM dismisses a security group and stops exporting the related group-membership resource.</t>
        </li>
        <li>
          <t>Information related to an existing security group changes, e.g., the list of associated application groups.</t>
        </li>
      </ul>
      <t>To perform an update of its registrations, the GM can re-register with the RD and fully specify all links to its group-membership resources.</t>
      <t>Alternatively, the GM can perform a PATCH/iPATCH <xref target="RFC8132"/> request to the RD, as per <xref section="5.3.3" sectionFormat="of" target="RFC9176"/>. This requires new media-types to be defined in future standards, to apply a new document as a patch to an existing stored document.</t>
      <section anchor="ssec-addition--ex">
        <name>Addition Example</name>
        <t>The example below shows how the GM from <xref target="sec-GM-registration"/> re-registers with the RD. When doing so, it specifies:</t>
        <ul spacing="normal">
          <li>
            <t>The same previous group-membership resource associated with the security group with name "feedca570000".</t>
          </li>
          <li>
            <t>An additional group-membership resource associated with the security group with name "ech0ech00000" and used by the application group "group2".</t>
          </li>
          <li>
            <t>A third group-membership resource associated with the security group with name "abcdef120000" and used by two application groups, namely "group3" and "group4".</t>
          </li>
        </ul>
        <t>Furthermore, the GM relates the same Authorization Server also to the security groups "ech0ech00000" and "abcdef120000".</t>
        <section anchor="example-in-link-format">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: 40

Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="feedca570000";app-gp="group1";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
</ace-group/ech0ech00000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="ech0ech00000";app-gp="group2";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
</ace-group/abcdef120000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="abcdef120000";app-gp="group3";
                             app-gp="group4";cred-fmt="33";
                             gp-enc-alg="10";sign-alg="-8";
                             sign-alg-crv="6";alg="10";ecdh-alg="-27";
                             ecdh-alg-crv="4",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/ech0ech00000",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/abcdef120000"
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral-1">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [2, 6(-22) / item 59 for reef:#ep /, "gm1"],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [2, simple(7) / item 7 for linkformat:if /,
       6(250) / item 516 for cri'http://www.iana.org/assignments/
                                 linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group1"],
      [2, 6(4)  / item 24 for linkformat:cred_fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign_enc_alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign_alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign_alg_crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh_alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh_alg_crv / , 4],
      [
        2, simple(1) / item 1 for rel:authorization-server / ,
        cri'coap://as.example.com/token'
      ]
    ]
  ],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/ech0ech00000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [
        2, simple(6) / item 6 for linkformat:rt /,
        6(200) / item 416 for cri'http://www.iana.org/assignments/
                                  linkformat/rt/core.osc.gm' /
      ],
      [
        2, simple(7) / item 7 for linkformat:if /,
        6(250) / item 516 for cri'http://www.iana.org/assignments/
                                  linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "ech0ech00000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group2"],
      [2, 6(4)  / item 24 for linkformat:cred_fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign_enc_alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign_alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign_alg_crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh_alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh_alg_crv / , 4],
      [
        2, simple(1) / item 1 for rel:authorization-server / ,
        cri'coap://as.example.com/token'
      ]
    ]
  ],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/abcdef120000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [
        2, simple(7) / item 7 for linkformat:if /,
        6(250) / item 516 for cri'http://www.iana.org/assignments/
                                  linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "abcdef120000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group3"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group4"],
      [2, 6(4)  / item 24 for linkformat:cred_fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign_enc_alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign_alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign_alg_crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh_alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh_alg_crv / , 4],
      [2, simple(1) / item 1 for rel:authorization-server / ,
       cri'coap://as.example.com/token'
      ]
    ]
  ]
]
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-group-discovery">
      <name>Discovery of Security Groups</name>
      <t>A CoAP endpoint that wants to join a security group, hereafter called the joining node, might not have all the necessary information at deployment time. Also, it might want to know about possible new security groups created afterwards by the respective Group Managers.</t>
      <t>To this end, the joining node can perform a resource lookup at the RD as per <xref section="6.1" sectionFormat="of" target="RFC9176"/>, to retrieve the missing pieces of information needed to join the security group(s) of interest. The joining node can find the RD as described in <xref section="4" sectionFormat="of" target="RFC9176"/>.</t>
      <t>The joining node uses the following parameter value for the lookup filtering.</t>
      <ul spacing="normal">
        <li>
          <t>'rt' = "core.osc.gm", specifying the resource type of the group-membership resource at the Group Manager, with value "core.osc.gm" registered in <xref section="16.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        </li>
      </ul>
      <t>The joining node may additionally consider the following parameters for the lookup filtering, depending on the information it has already available.</t>
      <ul spacing="normal">
        <li>
          <t>'sec-gp', specifying the name of the security group of interest. This parameter <bcp14>MUST</bcp14> specify a single value.</t>
        </li>
        <li>
          <t>'ep', specifying the registered endpoint of the GM.</t>
        </li>
        <li>
          <t>'app-gp', specifying the name(s) of the application group(s) associated with the security group of interest. This parameter <bcp14>MAY</bcp14> be included multiple times, and each occurrence <bcp14>MUST</bcp14> specify the name of one application group.</t>
        </li>
        <li>
          <t>'if', specifying the interface description for accessing the group-membership resource at the Group Manager, with value "ace.group" registered in <xref section="11.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</t>
        </li>
      </ul>
      <t>The response from the RD may include links to a group-membership resource specifying multiple application groups, as all using the same security group. In this case, the joining node is already expected to know the exact application group of interest.</t>
      <t>Furthermore, the response from the RD may include the links to different group-membership resources, all specifying a same application group of interest for the joining node, if the corresponding security groups are all used by that application group.</t>
      <t>In this case, application policies on the joining node should define how to determine the exact security group to join (see <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>). For example, different security groups can reflect different security algorithms to use. Hence, a client application can take into account what the joining node supports and prefers, when selecting one particular security group among the indicated ones, while a server application would need to join all of them. Later on, the joining node will be anyway able to join only security groups for which it is actually authorized to be a member (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
      <t>Note that, with RD-based discovery, including the 'app-gp' parameter multiple times would result in finding only the group-membership resource that serves all the specified application groups, i.e., not any group-membership resource that serves either. Therefore, a joining node needs to perform N separate queries with different values for 'app-gp', in order to safely discover the (different) group-membership resource(s) serving the N application groups.</t>
      <t>The discovery of security groups as defined in this document is applicable and useful to other CoAP endpoints than the actual joining nodes. In particular, other entities can be interested to discover and interact with the group-membership resource at the Group Manager. These include entities acting as signature checkers, e.g., intermediary gateways, that do not join a security group, but can retrieve authentication credentials of group members from the Group Manager, in order to verify counter signatures of group messages (see <xref section="3.3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
      <section anchor="ssec-group-discovery-ex1">
        <name>Discovery Example #1</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration"/> and <xref target="sec-update-addition"/>, the examples below consider a joining node that wants to join the security group associated with the application group "group1", but that does not know the name of the security group, the responsible GM and the group-membership resource to access.</t>
        <section anchor="example-in-link-format-1">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&app-gp=group1
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content

Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>By performing the separate resource lookup below, the joining node can retrieve the link to the ACE Authorization Server associated with the GM, where to send an Authorization Request for joining the corresponding security group (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rel=authorization-server&
   anchor=coap://[2001:db8::ab]/ace-group/feedca570000
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content

Payload:
<coap://as.example.com/token>;rel=authorization-server;
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000"
]]></artwork>
          <t>To retrieve the multicast IP address of the CoAP group used by the application group "group1", the joining node performs an endpoint lookup as shown below. The following assumes that the application group "group1" had been previously registered as per <xref section="A" sectionFormat="of" target="RFC9176"/>, with ff35:30:2001:db8::23 as multicast IP address of the associated CoAP group.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/ep
  ?et=core.rd-group&ep=group1
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content

Payload:
</rd/501>;ep="group1";et="core.rd-group";
          base="coap://[ff35:30:2001:db8::23]";rt="core.rd-ep"
]]></artwork>
        </section>
        <section anchor="example-in-coral-2">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&app-gp=group1
Accept: 65087 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [2, simple(7) / item 7 for linkformat:if /,
       6(250) / item 516 for cri'http://www.iana.org/assignments/
                                 linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group1"],
      [2, 6(4)  / item 24 for linkformat:cred_fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign_enc_alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign_alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign_alg_crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh_alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh_alg_crv / , 4],
      [2, simple(1) / item 1 for rel:authorization-server / ,
       cri'coap://as.example.com/token'
      ]
    ]
  ]
]
]]></artwork>
          <t>To retrieve the multicast IP address of the CoAP group used by the application group "group1", the joining node performs an endpoint lookup as shown below. The following assumes that the application group "group1" had been previously registered, with ff35:30:2001:db8::23 as multicast IP address of the associated CoAP group.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/ep
  ?et=core.rd-group&ep=group1
Accept: 65087 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [
    2, 6(20) / item 56 for reef:#rd-unit /, cri'/rd/501',
    [
      [2, 6(-22) / item 59 for reef:#ep /, "group1"],
      [2, 6(21) / item 58 for reef:#et /, "core.rd-group"],
      [
        2, 6(22) / item 60 for reef:#base /,
        cri'coap://[ff35:30:2001:db8::23]'
      ],
      [2, 6(-21) / item 57 for reef:#rt /, "core.rd-ep"],
    ]
  ]
]
]]></artwork>
        </section>
      </section>
      <section anchor="ssec-group-discovery-ex2">
        <name>Discovery Example #2</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration"/> and <xref target="sec-update-addition"/>, the examples below consider a joining node that wants to join the security group with name "feedca570000", but that does not know the responsible GM, the group-membership resource to access, and the associated application groups.</t>
        <t>The examples also show how the joining node uses CoAP observation <xref target="RFC7641"/>, in order to be notified of possible changes to the parameters of the group-membership resource. This is also useful to handle the case where the security group of interest has not been created yet, so that the joining node can receive the requested information when it becomes available.</t>
        <section anchor="example-in-link-format-2">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&sec-gp=feedca570000
Observe: 0
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Observe: 24

Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>Depending on the search criteria, the joining node performing the resource lookup can get large responses. This can happen, for instance, when the lookup request targets all the group-membership resources at a specified GM, or all the group-membership resources of all the registered GMs, as in the example below.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res?rt=core.osc.gm
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content

Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";ecdh-alg="-27";
    ecdh-alg-crv="4",
<coap://[2001:db8::ab]/ace-group/ech0ech00000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="ech0ech00000";
    app-gp="group2";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";ecdh-alg="-27";
    ecdh-alg-crv="4",
<coap://[2001:db8::ab]/ace-group/abcdef120000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="abcdef120000";
    app-gp="group3";app-gp="group4";cred-fmt="33";
    gp-enc-alg="10";sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>Therefore, it is <bcp14>RECOMMENDED</bcp14> that a joining node which performs a resource lookup with the CoAP Observe option specifies the value of the parameter 'sec-gp' in its GET request sent to the RD.</t>
        </section>
        <section anchor="example-in-coral-3">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&sec-gp=feedca570000
Observe: 0
Accept: 65087 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Observe: 24
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [2, simple(7) / item 7 for linkformat:if /,
       6(250) / item 516 for cri'http://www.iana.org/assignments/
                                 linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "group1"],
      [2, 6(4)  / item 24 for linkformat:cred_fmt / , 33],
      [2, 6(-5) / item 25 for linkformat:sign_enc_alg / , 10],
      [2, 6(5)  / item 26 for linkformat:sign_alg / , -8],
      [2, 6(-6) / item 27 for linkformat:sign_alg_crv / , 6],
      [2, 6(7)  / item 30 for linkformat:alg / , 10],
      [2, 6(-8) / item 31 for linkformat:ecdh_alg / , -27],
      [2, 6(8)  / item 32 for linkformat:ecdh_alg_crv / , 4],
      [
        2, simple(1) / item 1 for rel:authorization-server / ,
        cri'coap://as.example.com/token'
      ]
    ]
  ]
]
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="use-case-example">
      <name>Use Case Example With Full Discovery</name>
      <t>In this section, the discovery of security groups is described to support the installation process of a lighting installation in an office building. The described process is a simplified version of one of many processes.</t>
      <t>The process described in this section is intended as an example and does not have any particular ambition to serve as recommendation or best practice to adopt. That is, it shows a possible workflow involving a Commissioning Tool (CT) used in a certain way, while it is not meant to prescribe how the workflow should necessarily be.</t>
      <t>Assume the existence of four luminaires that are members of two application groups. In the first application group, the four luminaires receive presence messages and light intensity messages from sensors or their proxy. In the second application group, the four luminaires and several other pieces of equipment receive building state schedules.</t>
      <t>Each of the two application groups is associated with a different security group and to a different CoAP group with its own dedicated multicast IP address.</t>
      <t>The Fairhair Alliance describes how a new device is accepted and commissioned in the network <xref target="Fairhair"/>, by means of its certificate stored during the manufacturing process. When commissioning the new device in the installation network, the new device gets a new identity defined by a newly allocated certificate, following the BRSKI specification.</t>
      <t>Then, consistently with <xref section="7.1" sectionFormat="of" target="RFC9176"/>, the CT assigns an endpoint name based on the CN field, (CN=ACME) and the serial number of the certificate (serial number = 123x, with 3 &lt; x &lt; 8). Corresponding ep-names ACME-1234, ACME-1235, ACME-1236 and ACME-1237 are also assumed.</t>
      <t>It is common practice that locations in the building are specified according to a coordinate system. After the acceptance of the luminaires into the installation network, the coordinate of each device is communicated to the CT. This can be done manually or automatically.</t>
      <t>The mapping between location and ep-name is calculated by the CT. For instance, on the basis of grouping criteria, the CT assigns: i) application group "grp_R2-4-015" to the four luminaires; and ii) application group "grp_schedule" to all schedule requiring devices. Also, the device with ep name ACME-123x has been assigned IP address: [2001:db8:4::x]. The RD is assigned IP address: [2001:db8:4:ff]. The used multicast addresses are: [ff05::5:1] and [ff05::5:2].</t>
      <t>The following assumes that each device is pre-configured with the name of the two application groups it belongs to. Additional mechanisms can be defined in the RD, for supporting devices to discover the application groups they belong to.</t>
      <t><xref target="use-case-example-coral"/> provides this same use case example in CoRAL.</t>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The CT defines the application group "grp_R2-4-015", with resource /light and base address [ff05::5:1], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=grp_R2-4-015&et=core.rd-group&base=coap://[ff05::5:1]
Content-Format: 40

Payload:
</light>;rt="oic.d.light"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/501
]]></artwork>
      <t>Also, the CT defines a second application group "grp_schedule", with resource /schedule and base address [ff05::5:2], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=grp_schedule&et=core.rd-group&base=coap://[ff05::5:2]
Content-Format: 40

Payload:
</schedule>;rt="oic.r.time.period"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--
Consecutively, the CT registers the four devices in the RD (IP address: 2001:db8:4::ff), with their endpoint names and application groups.

The four endpoints are specified as follows, with x = 4, 5, 6, 7, for the two application groups "grp\_R2-4-015" and "grp\_schedule".

Request:  CT -> RD

~~~~~~~~~~~
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=ACME-123x&base=coap://[2001:db8:4::x]&in-app-gp=grp_R2-4-015&
   in-app-gp=grp_schedule
Content-Format: 40

Payload:
</light>;rt="oic.d.light"
</schedule>;rt="oic.r.time.period"
~~~~~~~~~~~

Response:  RD -> CT

~~~~~~~~~~~
Res: 2.01 Created
Location-Path: /rd/452x
~~~~~~~~~~~

~~~~~~~~~~~
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
~~~~~~~~~~~
-->

<t>Finally, the CT defines the corresponding security groups. In particular, assuming a Group Manager responsible for both security groups and with address [2001:db8::ab], the CT specifies:</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=gm1&base=coap://[2001:db8::ab]
Content-Format: 40

Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                          sec-gp="feedca570000";
                          app-gp="grp_R2-4-015",
</ace-group/feedsc590000>;ct=65000;rt="core.osc.gm";if="ace.group";
                          sec-gp="feedsc590000";
                          app-gp="grp_schedule"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--
The device with IP address \[2001:db8:4::x\] can consequently learn the groups to which it belongs. In particular, it first does an ep lookup to the RD to learn the application groups to which it belongs.

Request:  Joining node -> RD

~~~~~~~~~~~
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?base=coap://[2001:db8:4::x]
~~~~~~~~~~~

Response:  RD -> Joining node

~~~~~~~~~~~
Res: 2.05 Content
Content-Format: 40

Payload:
<rd/452x>;base=coap://[2001:db8:4::x]&ep=ACME-123x&\
          in-app-gp=grp_R2-4-015,
<rd/456x>;base=coap://[2001:db8:4::x]&ep=ACME-123x&\
          in-app-gp=grp_schedule
~~~~~~~~~~~


To retrieve the multicast IP address of the CoAP group used by the application group "grp\_R2-4-015", the device performs an endpoint lookup as shown below.
-->

<t>The device with IP address [2001:db8:4::x] can retrieve the multicast IP address of the CoAP group used by the application group "grp_R2-4-015", by performing an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40

Payload:
</rd/501>;ep="grp_R2-4-015";et="core.rd-group";
          base="coap://[ff05::5:1]";rt="core.rd-ep"
]]></artwork>
      <t>Similarly, to retrieve the multicast IP address of the CoAP group used by the application group "grp_schedule", the device performs an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40

Payload:
</rd/502>;ep="grp_schedule";et="core.rd-group";
          base="coap://[ff05::5:2]";rt="core.rd-ep"
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--Having learnt the application groups to which the device belongs-->
<t>Consequently, the device learns the security groups it has to join. In particular, it does the following for app-gp="grp_R2-4-015".</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40

Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="grp_R2-4-015"
]]></artwork>
      <t>Similarly, the device does the following for app-gp="grp_schedule".</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40

Payload:
<coap://[2001:db8::ab]/ace-group/feedsc590000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedsc590000";
    app-gp="grp_schedule"
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>After this last discovery step, the device can ask permission to join the security groups, and effectively join them through the Group Manager, e.g., according to <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations as described in <xref section="8" sectionFormat="of" target="RFC9176"/> apply here as well.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-link-relation-type">
        <name>Link Relation Type Registry</name>
        <t>IANA is asked to register the following entry in the "Link Relation Type" registry as per <xref target="RFC8288"/>.</t>
        <ul spacing="normal">
          <li>
            <t>Relation Name: authorization-server</t>
          </li>
          <li>
            <t>Description: Refers to a resource at an Authorization Server for requesting an authorization credential to access the link's context</t>
          </li>
          <li>
            <t>Reference: [RFC-XXXX]</t>
          </li>
          <li>
            <t>Notes: None</t>
          </li>
          <li>
            <t>Application Data: None</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-target-attributes">
        <name>Target Attributes Registry</name>
        <t>IANA is asked to register the following entries in the "Target Attributes" registry within the "Constrained RESTful Environments (CoRE) Parameters" registry group, as per <xref target="RFC9423"/>. For all entries, the Change Controller is IETF, and the reference is [RFC-XXXX].</t>
        <table align="center">
          <name>Registrations in Target Attributes Registry</name>
          <thead>
            <tr>
              <th align="left">Attribute Name</th>
              <th align="left">Brief Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">sec-gp</td>
              <td align="left">Name of the security group that can be joined through this resource</td>
            </tr>
            <tr>
              <td align="left">app-gp</td>
              <td align="left">Name of an application group associated with a security group</td>
            </tr>
            <tr>
              <td align="left">hkdf</td>
              <td align="left">The HKDF algorithm to use</td>
            </tr>
            <tr>
              <td align="left">cred-fmt</td>
              <td align="left">The format of authentication credential to use</td>
            </tr>
            <tr>
              <td align="left">gp-enc-alg</td>
              <td align="left">The encryption algorithm to use for encrypting signed messages</td>
            </tr>
            <tr>
              <td align="left">sign-alg</td>
              <td align="left">The signature algorithm to use</td>
            </tr>
            <tr>
              <td align="left">sign-alg-crv</td>
              <td align="left">The elliptic curve of the used signature algorithm</td>
            </tr>
            <tr>
              <td align="left">sign-key-kty</td>
              <td align="left">The key type of the used signing keys</td>
            </tr>
            <tr>
              <td align="left">sign-key-crv</td>
              <td align="left">The curve of the used signing keys</td>
            </tr>
            <tr>
              <td align="left">alg</td>
              <td align="left">The encryption algorithm to use for encrypting non-signed messages</td>
            </tr>
            <tr>
              <td align="left">ecdh-alg</td>
              <td align="left">The ECDH algorithm to use</td>
            </tr>
            <tr>
              <td align="left">ecdh-alg-crv</td>
              <td align="left">The elliptic curve of the used ECDH algorithm</td>
            </tr>
            <tr>
              <td align="left">ecdh-key-kty</td>
              <td align="left">The key type of the used ECDH keys</td>
            </tr>
            <tr>
              <td align="left">ecdh-key-crv</td>
              <td align="left">The curve of the used ECDH keys</td>
            </tr>
            <tr>
              <td align="left">det-hash-alg</td>
              <td align="left">The hash algorithm to use for computing deterministic requests</td>
            </tr>
            <tr>
              <td align="left">rekeying-scheme</td>
              <td align="left">The rekeying scheme used to distribute new keying material</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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="28" month="August" 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-22"/>
        </reference>
        <reference anchor="I-D.ietf-core-coral">
          <front>
            <title>The Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>ARM</organization>
            </author>
            <date day="4" month="March" year="2024"/>
            <abstract>
              <t>   The Constrained RESTful Application Language (CoRAL) defines a data
   model and interaction model as well as a compact serialization
   formats for the description of typed connections between resources on
   the Web ("links"), possible operations on such resources ("forms"),
   and simple resource metadata.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-11"/>
        </reference>
        <reference anchor="I-D.ietf-cbor-packed">
          <front>
            <title>Packed CBOR</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mikolai Gütschow" initials="M." surname="Gütschow">
              <organization>TUD Dresden University of Technology</organization>
            </author>
            <date day="1" month="September" year="2024"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949 == STD 94)
   is a data format whose design goals include the possibility of
   extremely small code size, fairly small message size, and
   extensibility without the need for version negotiation.

   CBOR does not provide any forms of data compression.  CBOR data
   items, in particular when generated from legacy data models, often
   allow considerable gains in compactness when applying data
   compression.  While traditional data compression techniques such as
   DEFLATE (RFC 1951) can work well for CBOR encoded data items, their
   disadvantage is that the recipient needs to decompress the compressed
   form to make use of the data.

   This specification describes Packed CBOR, a simple transformation of
   a CBOR data item into another CBOR data item that is almost as easy
   to consume as the original CBOR data item.  A separate decompression
   step is therefore often not required at the recipient.


   // The present version (-13) is a refresh of the implementation draft
   // -12 with minor editorial improvements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cbor-packed-13"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="24" month="July" year="2024"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) instead of in a
   sequence of characters.  This simplifies parsing, comparison, and
   reference resolution in environments with severe limitations on
   processing power, code size, and memory size.

   This RFC updates RFC 7595 to add a note on how the URI Schemes
   registry RFC 7595 describes cooperates with the CRI Scheme Numbers
   registry created by the present RFC.


   // (This "cref" paragraph will be removed by the RFC editor:) The
   // present revision –16 of this draft continues -15 by picking up
   // more comments; it was made specifically for IETF 120.  This
   // revision still contains open issues and is intended to serve as a
   // snapshot.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-16"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="March" year="2023"/>
            <abstract>
              <t>   This document defines an application profile of the ACE framework for
   Authentication and Authorization, to request and provision keying
   material in group communication scenarios that are based on CoAP and
   are secured with Group Object Security for Constrained RESTful
   Environments (Group OSCORE).  This application profile delegates the
   authentication and authorization of Clients, that join an OSCORE
   group through a Resource Server acting as Group Manager for that
   group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication and proof-of-possession for a key owned by the Client
   and bound to an OAuth 2.0 Access Token.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-oscore-16"/>
        </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="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="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</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 a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </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="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="RFC9423">
          <front>
            <title>Constrained RESTful Environments (CoRE) Target Attributes Registry</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>The Constrained RESTful Environments (CoRE) specifications apply web technologies to constrained environments. One such important technology is Web Linking (RFC 8288), which CoRE specifications use as the basis for a number of discovery protocols, such as the Link Format (RFC 6690) in the Constrained Application Protocol's (CoAP's) resource discovery process (Section 7.2 of RFC 7252) and the Resource Directory (RD) (RFC 9176).</t>
              <t>Web Links can have target attributes, the names of which are not generally coordinated by the Web Linking specification (Section 2.2 of RFC 8288). This document introduces an IANA registry for coordinating names of target attributes when used in CoRE. It updates the "RD Parameters" IANA registry created by RFC 9176 to coordinate with this registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9423"/>
          <seriesInfo name="DOI" value="10.17487/RFC9423"/>
        </reference>
        <reference anchor="COSE.Algorithms" target="https://www.iana.org/assignments/cose/cose.xhtml#algorithms">
          <front>
            <title>COSE Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="COSE.Key.Types" target="https://www.iana.org/assignments/cose/cose.xhtml#key-type">
          <front>
            <title>COSE Key Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="COSE.Elliptic.Curves" target="https://www.iana.org/assignments/cose/cose.xhtml#elliptic-curves">
          <front>
            <title>COSE Elliptic Curves</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="COSE.Header.Parameters" target="https://www.iana.org/assignments/cose/cose.xhtml#header-parameters">
          <front>
            <title>COSE Header Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Target.Attributes" target="https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#target-attributes">
          <front>
            <title>Target Attributes</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CURIE-20101216" target="http://www.w3.org/TR/2010/NOTE-curie-20101216">
          <front>
            <title>CURIE Syntax 1.0 - A syntax for expressing Compact URIs - W3C Working Group Note</title>
            <author initials="M." surname="Birbeck" fullname="Mark Birbeck">
              <organization/>
            </author>
            <author initials="S." surname="McCarron" fullname="Shane McCarron">
              <organization/>
            </author>
            <date year="2010" month="December" day="16"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-ace-key-groupcomm">
          <front>
            <title>Key Provisioning for Group Communication using ACE</title>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="30" month="April" year="2024"/>
            <abstract>
              <t>   This document defines how to use the Authentication and Authorization
   for Constrained Environments (ACE) framework to distribute keying
   material and configuration parameters for secure group communication.
   Candidate group members acting as Clients and authorized to join a
   group can do so by interacting with a Key Distribution Center (KDC)
   acting as Resource Server, from which they obtain the keying material
   to communicate with other group members.  While defining general
   message formats as well as the interface and operations available at
   the KDC, this document supports different approaches and protocols
   for secure group communication.  Therefore, details are delegated to
   separate application profiles of this document, as specialized
   instances that target a particular group communication approach and
   define how communications in the group are protected.  Compliance
   requirements for such application profiles are also specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-key-groupcomm-19"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin">
          <front>
            <title>Admin Interface for the OSCORE Group Manager</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>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
         </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Group communication for CoAP can be secured using Group Object
   Security for Constrained RESTful Environments (Group OSCORE).  A
   Group Manager is responsible for handling the joining of new group
   members, as well as managing and distributing the group keying
   material.  This document defines a RESTful admin interface at the
   Group Manager that allows an Administrator entity to create and
   delete OSCORE groups, as well as to retrieve and update their
   configuration.  The ACE framework for Authentication and
   Authorization is used to enforce authentication and authorization of
   the Administrator at the Group Manager.  Protocol-specific transport
   profiles of ACE are used to achieve communication security, proof-of-
   possession, and server authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-12"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin-coral">
          <front>
            <title>Using the Constrained RESTful Application Language (CoRAL) with the Admin Interface for the OSCORE Group Manager</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Group communication for CoAP can be secured using Group Object
   Security for Constrained RESTful Environments (Group OSCORE).  A
   Group Manager is responsible to handle the joining of new group
   members, as well as to manage and distribute the group keying
   material.  The Group Manager can provide a RESTful admin interface
   that allows an Administrator entity to create and delete OSCORE
   groups, as well as to retrieve and update their configuration.  This
   document specifies how an Administrator interacts with the admin
   interface at the Group Manager by using the Constrained RESTful
   Application Language (CoRAL).  The ACE framework for Authentication
   and Authorization is used to enforce authentication and authorization
   of the Administrator at the Group Manager.  Protocol-specific
   transport profiles of ACE are used to achieve communication security,
   proof-of-possession, and server authentication.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ace-oscore-gm-admin-coral-02"/>
        </reference>
        <reference anchor="I-D.hartke-t2trg-coral-reef">
          <front>
            <title>Resource Discovery in Constrained RESTful Environments (CoRE) using the Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Klaus Hartke" initials="K." surname="Hartke">
              <organization>Ericsson</organization>
            </author>
            <date day="9" month="May" year="2020"/>
            <abstract>
              <t>   This document explores how the Constrained RESTful Application
   Language (CoRAL) might be used for two use cases in Constrained
   RESTful Environments (CoRE): CoRE Resource Discovery, which allows a
   client to discover the resources of a server given a host name or IP
   address, and CoRE Resource Directory, which provides a directory of
   resources on many servers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hartke-t2trg-coral-reef-04"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</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="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This document specifies a CBOR encoding of X.509 certificates.  The
   resulting certificates are called C509 Certificates.  The CBOR
   encoding supports a large subset of RFC 5280 and all certificates
   compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA
   eUICC, and CA/Browser Forum Baseline Requirements profiles.  When
   used to re-encode DER encoded X.509 certificates, the CBOR encoding
   can in many cases reduce the size of RFC 7925 profiled certificates
   with over 50% while also significantly reducing memory and code size
   compared to ASN.1.  The CBOR encoded structure can alternatively be
   signed directly ("natively signed"), which does not require re-
   encoding for the signature to be verified.  The document also
   specifies C509 Certificate Signing Requests, C509 COSE headers, a
   C509 TLS certificate type, and a C509 file format.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-11"/>
        </reference>
        <reference anchor="I-D.amsuess-core-cachable-oscore">
          <front>
            <title>Cacheable OSCORE</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   Group communication with the Constrained Application Protocol (CoAP)
   can be secured end-to-end using Group Object Security for Constrained
   RESTful Environments (Group OSCORE), also across untrusted
   intermediary proxies.  However, this sidesteps the proxies' abilities
   to cache responses from the origin server(s).  This specification
   restores cacheability of protected responses at proxies, by
   introducing consensus requests which any client in a group can send
   to one server or multiple servers in the same group.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amsuess-core-cachable-oscore-09"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </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="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </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="RFC8995">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="Fairhair" target="https://openconnectivity.org/wp-content/uploads/2019/11/fairhair_security_wp_march-2018.pdf">
          <front>
            <title>Security Architecture for the Internet of Things (IoT) in Commercial Buildings</title>
            <author>
              <organization>FairHair Alliance</organization>
            </author>
            <date year="2018" month="March"/>
          </front>
          <seriesInfo name="White Paper, ed. Piotr Polak" value=""/>
        </reference>
      </references>
    </references>
    <section anchor="use-case-example-coral">
      <name>Use Case Example With Full Discovery (CoRAL)</name>
      <t>This section provides the same use case example of <xref target="use-case-example"/>, but specified in CoRAL <xref target="I-D.ietf-core-coral"/>.</t>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The CT defines the application group "grp_R2-4-015", with resource /light and base address [ff05::5:1], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[ff05::5:1]'],
  [2, 6(-22) / item 59 for reef:#ep /, "grp_R2-4-015"],
  [2, 6(21) / item 58 for reef:#et /, "core.rd-group"],
  [
    2, 6(-20) / item 55 for reef:#rd-item /, cri'/light',
    [
      2, simple(6) / item 6 for linkformat:rt /,
      6(-201) / item 417 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/oic.d.light' /
    ]
  ]
]
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/501
]]></artwork>
      <t>Also, the CT defines a second application group "grp_schedule", with resource /schedule and base address [ff05::5:2], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[ff05::5:2]'],
  [2, 6(-22) / item 59 for reef:#ep /, "grp_schedule"],
  [2, 6(21) / item 58 for reef:#et /, "core.rd-group"],
  [
    2, 6(-20) / item 55 for reef:#rd-item /, cri'/schedule',
    [
      2, simple(6) / item 6 for linkformat:rt /,
      6(201) / item 418 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/oic.r.time.period' /
    ]
  ]
]
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>Finally, the CT defines the corresponding security groups. In particular, assuming a Group Manager responsible for both security groups and with address [2001:db8::ab], the CT specifies:</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [2, 6(-22) / item 59 for reef:#ep /, "gm1"],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [
        2, simple(6) / item 6 for linkformat:rt /,
        6(200) / item 416 for cri'http://www.iana.org/assignments/
                                  linkformat/rt/core.osc.gm' /
      ],
      [
        2, simple(7) / item 7 for linkformat:if /,
        6(250) / item 516 for cri'http://www.iana.org/assignments/
                                  linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "grp_R2-4-015"]
    ]
  ],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedsc590000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [
        2, simple(6) / item 6 for linkformat:rt /,
        6(200) / item 416 for cri'http://www.iana.org/assignments/
                                  linkformat/rt/core.osc.gm' /
        ],
      [
        2, simple(7) / item 7 for linkformat:if /,
        6(250) / item 516 for cri'http://www.iana.org/assignments/
                                  linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedsc590000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "grp_schedule"]
    ]
  ]
]
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The device with IP address [2001:db8:4::x] can retrieve the multicast IP address of the CoAP group used by the application group "grp_R2-4-015", by performing an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8:4::ff]/rd'],
  [
    2, 6(20) / item 56 for reef:#rd-unit /, cri'/501',
    [
      [2, 6(-22) / item 59 for reef:#ep /, "grp_R2-4-015"],
      [2, 6(21) / item 58 for reef:#et /, "core.rd-group"],
      [2, 6(22) / item 60 for reef:#base /, cri'coap://[ff05::5:1]/'],
      [2, 6(-21) / item 57 for reef:#rt /, "core.rd-ep"],
    ]
  ]
]
]]></artwork>
      <t>Similarly, to retrieve the multicast IP address of the CoAP group used by the application group "grp_schedule", the device performs an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8:4::ff]/rd'],
  [
    2, 6(20) / item 56 for reef:#rd-unit /, cri'/502',
    [
      [2, 6(-22) / item 59 for reef:#ep /, "grp_schedule"],
      [2, 6(21) / item 58 for reef:#et /, "core.rd-group"],
      [2, 6(22) / item 60 for reef:#base /, cri'coap://[ff05::5:2]/'],
      [2, 6(-21) / item 57 for reef:#rt /, "core.rd-ep"],
    ]
  ]
]
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>Consequently, the device learns the security groups it has to join. In particular, it does the following for app-gp="grp_R2-4-015".</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedca570000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [2, simple(7) / item 7 for linkformat:if /,
       6(250) / item 516 for cri'http://www.iana.org/assignments/
                                 linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedca570000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "grp_R2-4-015"]
    ]
  ]
]
]]></artwork>
      <t>Similarly, the device does the following for app-gp="grp_schedule".</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 65087 (application/coral+cbor)

Payload:
[
  [1, cri'coap://[2001:db8::ab]'],
  [
    2, 6(-20) / item 55 for reef:#rd-item /,
    cri'/ace-group/feedsc590000',
    [
      [2, simple(8) / item 8 for linkformat:ct /, 65000],
      [2, simple(6) / item 6 for linkformat:rt /,
       6(200) / item 416 for cri'http://www.iana.org/assignments/
                                 linkformat/rt/core.osc.gm' /
      ],
      [2, simple(7) / item 7 for linkformat:if /,
       6(250) / item 516 for cri'http://www.iana.org/assignments/
                                 linkformat/if/ace.group' /
      ],
      [2, 6(-3) / item 21 for linkformat:sec-gp / , "feedsc590000"],
      [2, 6(3)  / item 22 for linkformat:app-gp / , "grp_schedule"]
    ]
  ]
]
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>After this last discovery step, the device can ask permission to join the security groups, and effectively join them through the Group Manager, e.g., according to <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
    </section>
    <section anchor="sec-packed-cbor-tables">
      <name>Shared item tables for Packed CBOR</name>
      <t>This appendix defines the three shared item tables that the examples in this document refer to for using Packed CBOR <xref target="I-D.ietf-cbor-packed"/>.</t>
      <t>The application-extension identifier "cri" defined in <xref section="C" sectionFormat="of" target="I-D.ietf-core-href"/> is used to notate a CBOR Extended Diagnostic Notation (EDN) literal for a CRI.</t>
      <section anchor="compression-of-coral-predicates">
        <name>Compression of CoRAL predicates</name>
        <t>The following shared item table is used for compressing CoRAL predicates, as per <xref section="2.2" sectionFormat="of" target="I-D.ietf-cbor-packed"/>.</t>
        <figure anchor="fig-packed-cbor-table-1">
          <name>Shared item table for compressing CoRAL predicates.</name>
          <artwork align="center"><![CDATA[
+-------+----------------------------------------------------------+
| Index | Item                                                     |
+-------+----------------------------------------------------------+
| 0     | cri'http://www.iana.org/assignments/relation/hosts'      |
+-------+----------------------------------------------------------+
| 1     | cri'http://www.iana.org/assignments/relation/            |
|       |     authorization-server'                                |
+-------+----------------------------------------------------------+
| 6     | cri'http://www.iana.org/assignments/linkformat/rt'       |
+-------+----------------------------------------------------------+
| 7     | cri'http://www.iana.org/assignments/linkformat/if'       |
+-------+----------------------------------------------------------+
| 8     | cri'http://www.iana.org/assignments/linkformat/ct'       |
+-------+----------------------------------------------------------+
| 9     | cri'http://www.iana.org/assignments/linkformat/anchor'   |
+-------+----------------------------------------------------------+
| 10    | cri'http://www.iana.org/assignments/linkformat/rel'      |
+-------+----------------------------------------------------------+
| 21    | cri'http://www.iana.org/assignments/linkformat/sec-gp'   |
+-------+----------------------------------------------------------+
| 22    | cri'http://www.iana.org/assignments/linkformat/app-gp'   |
+-------+----------------------------------------------------------+
| 23    | cri'http://www.iana.org/assignments/linkformat/hkdf'     |
+-------+----------------------------------------------------------+
| 24    | cri'http://www.iana.org/assignments/linkformat/cred-fmt' |
+-------+----------------------------------------------------------+
| 25    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     sign-enc-alg'                                        |
+-------+----------------------------------------------------------+
| 26    | cri'http://www.iana.org/assignments/linkformat/sign-alg' |
+-------+----------------------------------------------------------+
| 27    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     sign-alg-crv'                                        |
+-------+----------------------------------------------------------+
| 28    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     sign-key-kty'                                        |
+-------+----------------------------------------------------------+
| 29    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     sign-key-crv'                                        |
+-------+----------------------------------------------------------+
| 30    | cri'http://www.iana.org/assignments/linkformat/alg'      |
+-------+----------------------------------------------------------+
| 31    | cri'http://www.iana.org/assignments/linkformat/ecdh-alg' |
+-------+----------------------------------------------------------+
| 32    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     ecdh-alg-crv'                                        |
+-------+----------------------------------------------------------+
| 33    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     ecdh-key-kty'                                        |
+-------+----------------------------------------------------------+
| 34    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     ecdh-key-crv'                                        |
+-------+----------------------------------------------------------+
| 35    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     det-hash-alg'                                        |
+-------+----------------------------------------------------------+
| 36    | cri'http://www.iana.org/assignments/linkformat/          |
|       |     rekeying-scheme'                                     |
+-------+----------------------------------------------------------+
| 55    | cri'http://coreapps.org/reef#rd-item'                    |
+-------+----------------------------------------------------------+
| 56    | cri'http://coreapps.org/reef#rd-unit'                    |
+-------+----------------------------------------------------------+
| 57    | cri'http://coreapps.org/reef#rt'                         |
+-------+----------------------------------------------------------+
| 58    | cri'http://coreapps.org/reef#et'                         |
+-------+----------------------------------------------------------+
| 59    | cri'http://coreapps.org/reef#ep'                         |
+-------+----------------------------------------------------------+
| 60    | cri'http://coreapps.org/reef#base'                       |
+-------+----------------------------------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="compression-of-values-of-the-rt-target-attribute">
        <name>Compression of Values of the rt= Target Attribute</name>
        <t>The following shared item table is used for compressing values of the rt= target attribute, as per <xref section="2.2" sectionFormat="of" target="I-D.ietf-cbor-packed"/>.</t>
        <figure anchor="fig-packed-cbor-table-2">
          <name>Shared item table for compressing values of the rt= target attribute.</name>
          <artwork align="center"><![CDATA[
+-------+----------------------------------------------------+
| Index | Item                                               |
+-------+----------------------------------------------------+
| 416   | cri'http://www.iana.org/assignments/linkformat/rt/ |
|       |     core.osc.gm'                                   |
+-------+----------------------------------------------------+
| 417   | cri'http://www.iana.org/assignments/linkformat/rt/ |
|       |     oic.d.light'                                   |
+-------+----------------------------------------------------+
| 418   | cri'http://www.iana.org/assignments/linkformat/rt/ |
|       |     oic.r.time.period'                             |
+-------+----------------------------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="compression-of-values-of-the-if-target-attribute">
        <name>Compression of Values of the if= Target Attribute</name>
        <t>The following shared item table is used for compressing values of the if= target attribute, as per <xref section="2.2" sectionFormat="of" target="I-D.ietf-cbor-packed"/>.</t>
        <figure anchor="fig-packed-cbor-table-3">
          <name>Shared item table for compressing values of the if= target attribute.</name>
          <artwork align="center"><![CDATA[
+-------+----------------------------------------------------+
| Index | Item                                               |
+-------+----------------------------------------------------+
| 516   | cri'http://www.iana.org/assignments/linkformat/if/ |
|       |     ace.group'                                     |
+-------+----------------------------------------------------+
]]></artwork>
        </figure>
      </section>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank <contact fullname="Carsten Bormann"/>, <contact fullname="Klaus Hartke"/>, <contact fullname="Jaime Jiménez"/>, <contact fullname="Francesca Palombini"/>, <contact fullname="Dave Robin"/>, and <contact fullname="Jim Schaad"/> for their comments and feedback.</t>
      <t>The work on this document has been partly supported by the Sweden's Innovation Agency VINNOVA and the Celtic-Next projects CRITISEC and CYPRESS; by the H2020 project SIFIS-Home (Grant agreement 952652); and by the EIT-Digital High Impact Initiative ACTIVE.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
jniDCq5HXVlnMMElVIx7mjCIUEzlNlyJ073yvHWKSIBiQpshTB1nPcehpbZd
Ea5Whx+nv/x61Gtvtte7W029vgLPfMGp23NG0HyRRqAyHfWBamDKt7siSjNd
skoqC2OZb7iY8inQhPWJ3PPkmuc1AD4si9t1r1rZ3N399MtH1kDAZmWuu+CN
0Ui/QULYslH1uKT6H3xpNFrf2t3d2u3+8pHwYD/pwRC8tzUx3wIpTfGS2iQe
hWcz7wYiN9e4TpLk5PiMzzBq0jE9WeGMTySGU8JsYqnRLQbghrOo2SqVz9kK
Lzu/Mj5NzpIrNTVfz/T5c1Eh5RuDvnzRd4xlSlEL+F5ZDsjIgqOk47sS/vjH
P4pb/lfyLiH5My6y+ui7S/6KQxq30hqrJfq+KeeWH4cmWv7Vhdb1A7Mv0wDO
I+PR6CO2gMMoOgbNpwa2P5Si6pRdZ6O1Cp6Pi/qQ0pK+o7S7JBx0hh36YFHf
vP7JDXqZb60XchHtwXd2JqjV34q8pbQ9hsnM2aHefe+QBmLJHeot3CE9oN2k
tEO1/lNg7Mnwnraq5w97r2fzz//WblPUHvRft6d2/8S5KsvIIc2sDDsTKy5X
9zdH35fEdoKnX7HqXxsDp7lsHVRBGzEEpMb/BEoVqEegFm23xLOWKTOtYd9F
Oav6I7vUfbeUaaSoT4WeyPz4hzBum/xWh9eg28L/SkN5U+7ydah6c6v36eHI
ut3+rtF4FVI/gxKXW1Q9US6tI0WC3Qde3ZiXEYJkdwpWbOUdvmxv1txMZyB0
O6nfJWucdGtIDz34X7Nb9pwIafWPjZpNHV2hBGU22Hp+P1DqkZeG0jCVezpV
3YcWFicFY8FJcyzZAaQGo2WOxEyWeSSDNLZJCJm90s6q1aXzh9dVk4OLXIlo
rE91nNEEAfE3O3iV9lwx0W3CgxXnzU++nMPt7zGt0j+9ivN+92Ke6PFk1C8O
XVfLpJYadvtuhjXyzMPJvaUW+0aGY/leI7eY5cu1D8IDrOfUq25cYiX3eQCq
s48tIT3YKSgUTDmi45plU9qyW1ArdRxOwghv9q7omnV32+4YYzck46+x+dXH
/d43v2c33+DtRpvfW7T59y6BXwcUyiJhV1PL4Eg7hzSU1APm1XdEskc9NGhW
kayb6e5dKqm6SkaTdM49Fxw1iLLakMOr7ov6FpQOXpv7vLs1AX71FEOH39Xz
KUsDy2yjayrf10Zdk1M8zEZVWBbX3qiCDbGEtXCvPEUHb8JMRCiYbPJClsup
RxqoxQTZOQoZFR2cU2ShO9KNRty7ErR//ST2YEnNNd6FXizcIMYLOi3VygDT
AG0b0b6qD1ERLt1OVIPYHnjfqyvTzAL8b+e0ntzxAovqkjcqeIB3LmUUEVSH
e+/2qiDCbCya2u0TRFzWD2QM+BU8hjiUaSqV4NTiYBjmSborPgD3zjDMM42w
UR91zDKdAEnLaH7+/IfjgzevvnxpOre6wRBu/BLjBW6IlZM4ZCSpjZXqSHiW
BtMxt7GhsokjqaJ5J9j78ohre67EE71Kvuk7VU/RxXmYPIN4oRjROUf0zJWB
PgIALdR/lT5ulifUDQPhIdNXAG/96+3sEF380T7+LpgA76hKK8LH9m1zw114
Z0Tez8TNb8XUjGKPDtXhg3OWSKYp7dubxulMZIuDOEQKC3qa8Z2Zn3IGl7IO
BgCq2TL8HLcdmNq7JJZ025wj+PeDPNDf4LacULWA2MtB+zyd4fVuFbvCJQXt
wDx0zU0JrTO4WZrQ2RV1uyg9h+cgTwOKix0dHJ9g2dBBfBGmCacjipV+cnSw
Kj6YWiRnIJVN4u7y883eBl7S+EpVOCi4lFeNryRFxp8C5PAOrOzw4OSVrcpK
Na7xK4NtoJp/2rUQ2QjxT/E9DD1yyaTeC1T7808YWeVA2s94huo+pxTAVBFF
ZKHUvljzT75KlokTR1aJkRUjI0GWbIlyUkxhcgvz+Hw48tZBMdvXf9l/ZXsQ
qhaE18SGubvZG5mzCAnyuhZfc6fDkW0OvTsyfJRe8faVIMdTrL9H3zAHr00W
lN1BfeuzB7PteHYzlLgj0yXLFuYoQoobCNidC0MpZChWTVo/MkrPc9heMzJ8
4LUsNmPi+uHLbFmYcWQP5mpQlxxWjeygWDjYWH4HY+TwxV3Ekc1F2N7IB/39
17elZ++abLHEDhYmXTDycjtIYy6PZzPygh28xrBq5CFIGFBqDK55ZPykeu9A
q5vOVHIEd2DFO3EHWrY6ZzCVAAg82Ea9GZgcj6w/FepTApvzKzQ7x3Q09dAk
yDlDy4H5M2gIEZAM6PQSK1SbIg/zSL5sHrn3HaPkq5eyTRCl7XZbnAaD86WT
jFcoIWO1MtlY5XYodVHn3jqJHrImzwN2r5wpQumCs9wJrJq6GUfbps6FKqfk
MU1kTqTtTitsrKPxWtcEuoa+8971+xZcr5yHS3kI8YXKnWuX39B8Xaf85tm9
ld84MXFdxbLc9ReP+TcPQfq9a5O+wc2Dk76e+fbU7xP/zr0Sv5fz8SBH4CHz
mh6TPx4vr328C/L3fJ/aHVWOujqTZYF3R7Da2f9IsI8k6wV/bkOyVte5b6n9
wBlmjzk1v92cmrvRH8y6Sp0jlm3sd/OufkX72L57w95+y7T0q7Hs157eT+e+
x9yjr5p79Ns5JL0bHxLfkv56h6R3b4fkXmXYY3LVvSZXPfYueuxd9LvqXVRt
gc6T6/+SuXq/zXN/9+b947n/Fs79g5nx96qq/L5SP8cB3ReMuM+xwzMnTH4I
BpjH1v/+/ZHJAp3SZ23kHG1+VIfVqSHvMPzkBQwAYol3xJbGN42p3Q7n/q2P
lF2GC0FY+HpgFyI31o7QMGTmEmOH27XlJ2rJhP22KPtpFMLATTgrTbfNhE1N
7ZevIoR1jL58wTw3nRMRJ9RMKWBoDj6pLl77YXAWJ5R18Q6fwPFWDvbfrQI5
59SvicSM6B8dchJoP5lgOyndT4wTCeAT7o2UFVtzlHBpYNIJIKm6VLo4kpP7
Z2/b7flLLSDSJfk/tflH/3uDnz81/gn6+VB+EvAvLuAmP/+8K0jWebileKZO
v10bw9ZmT+8Yku5NIPFx8k/9G/1/VZLu0wdD7PY1luNJyad3Dcmzm0ESju4c
kp2bQTK4e5w8vxkkfFvf0zsl+/Wb0YmM7voA9ro3gkT3Wb5LSHo32x117fVd
QrJxI0gw1fnpHe/O5s3OjkqNfnqHkGzdCJJ6Rk3JvyrNeiGDvnNG3du+Gdmr
LOu7ROyz+0CsyiP+CojduY/lqOTlr7Cc5/e1nK+yOxs3kzv2iN4dJDeTOzpJ
/g4P4MbN5E79FruJ/F9hi28mvBYs56sdwI2bScAllvN1dueuxahbJ/EVlnMz
MVq/nEJxxnIrurPlbJV3B10goGJmtBx08Gr/biVodwdJGbGVkGD89p4hKesn
FZBUA3HHkJRVizIk8kEgKWsFFZBMHwCS7bJAL0OC8fI6WO4IEtdd9nlXPBmF
Z2WHaburS6JKbteFLrxOUwQp9Xxu+1VWX6pciX/F64FMnkqavyzVXN3cuXhR
GpsLooUpiP6a7sZbOhpvSQ44O8aSbuQDWytJAy909EDAP7sr4L1ioQcCfucu
gS8Ue9wr8Mvxj97y/GPxKb0NRwlH98dRcOxHjuLOvnUzjhKOynTtRHQfBPjl
6HrjpnRdRStz6VrsDfBq4kgOz7hvBkY3A/5sKOmzLwAot3aRw5fNURBlsqla
3XBwJRMAyQC+jjDfM4jxQpHP/SDFizTE94j7OP6CpcLw8V+iYJaJ1wDQudSf
/UcAbEX8Rzj57/8Ty//Sn75K8WqEbBCID0GUTE7DONRf7eMdQEcJfESf8K3P
n2EAcTwYBwHQ+xfdwDkkbPHS8DkMu2MxtQqN0vUnSTHcai4qwPQ5WJTqtG8z
Wo8vsXfE0wzOQZyoW5P3zmQ8uBJ/PXz37v1f90xjkL7EfNn2O/kJ7x5K/gGn
NcOI58nh8UGfnur//cPRwfHxCz346956b10/K44PXx0et18ngKGVH1K8Nyg4
AyWO4Hy+1dve6q3ydQ7q7YPDk/Z+eBbmQSReg6wRhxOgrxwgDfMwwDi62Ouf
HP71oNP4/3wJwolLNAEA

-->

</rfc>
