<?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-rfc2629 version 1.5.6 -->
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-core-oscore-discovery-11" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.9.1 -->
  <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-11"/>
    <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="Amsuess" fullname="Christian Amsuess">
      <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>Consultant</organization>
      <address>
        <phone>+31-492474673 (Netherlands), +33-966015248 (France)</phone>
        <email>stokcons@bbhmail.nl</email>
      </address>
    </author>
    <date year="2022" month="March" day="07"/>
    <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" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252" format="default"/> supports group communication over IP multicast <xref target="I-D.ietf-core-groupcomm-bis" format="default"/> 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" format="default"/> builds on OSCORE <xref target="RFC8613" format="default"/> and protects CoAP messages end-to-end in group communication contexts through CBOR Object Signing and Encryption (COSE) <xref target="I-D.ietf-cose-rfc8152bis-struct" format="default"/><xref target="I-D.ietf-cose-rfc8152bis-algs" format="default"/>. 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" format="default"/> is based on the ACE framework for Authentication and Authorization in constrained environments <xref target="I-D.ietf-ace-oauth-authz" format="default"/>, 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" format="default"/>. 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="I-D.ietf-core-resource-directory" format="default"/> 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" format="default"/> as defined in <xref target="I-D.ietf-core-resource-directory" format="default"/>, 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 Appendix A of <xref target="I-D.ietf-core-resource-directory" format="default"/>).</t>
      <t>When querying the RD for security groups, a CoAP endpoint can use CoAP observation <xref target="RFC7641" format="default"/>. 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" format="default"/> with reference to a CoRAL-based RD <xref target="I-D.hartke-t2trg-coral-reef" format="default"/>. While all the CoRAL examples show the CoRAL textual serialization format, its binary serialization format is used on the wire.</t>
      <t>[ NOTE:</t>
      <t>The reported CoRAL examples are based on the textual representation used until  version -03 of <xref target="I-D.ietf-core-coral" format="default"/>. These will be revised to use the CBOR diagnostic notation instead.</t>
      <t>]</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" format="default"/>.</t>
      <section anchor="terminology" numbered="true" toc="default">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>This specification requires readers to be familiar with the terms and concepts discussed in <xref target="I-D.ietf-core-resource-directory" format="default"/> and <xref target="RFC6690" format="default"/>, as well as in <xref target="I-D.ietf-core-coral" format="default"/>. Readers should also be familiar with the terms and concepts discussed in <xref target="RFC7252" format="default"/><xref target="I-D.ietf-core-groupcomm-bis" format="default"/>, <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/> and <xref target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>.</t>
        <t>Terminology for constrained environments, such as "constrained device" and "constrained-node network", is defined in <xref target="RFC7228" format="default"/>.</t>
        <t>Consistently with the definitions from <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis" format="default"/>, this document also refers to the following terminology.</t>
        <ul spacing="normal">
          <li>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.</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" format="default"/>. However, the approach defined in this document can be used to support the discovery of different security groups than OSCORE groups.</t>
          </li>
          <li>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 Appendix A of <xref target="I-D.ietf-core-resource-directory" format="default"/>).</li>
        </ul>
        <t>Like <xref target="I-D.ietf-core-oscore-groupcomm" format="default"/>, this document also uses the following term.</t>
        <ul spacing="normal">
          <li>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" format="default"/>, X.509 certificates <xref target="RFC7925" format="default"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert" format="default"/>.</li>
        </ul>
      </section>
    </section>
    <section anchor="sec-GM-registration" numbered="true" toc="default">
      <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="I-D.ietf-core-resource-directory" format="default"/>.</t>
      <t>Afterwards, the GM registers as an endpoint with the RD, as described in <xref section="5" sectionFormat="of" target="I-D.ietf-core-resource-directory" format="default"/>. The GM SHOULD NOT use the Simple Registration approach described in <xref section="5.1" sectionFormat="of" target="I-D.ietf-core-resource-directory" format="default"/>.</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" format="default"/>.</t>
      <t>Furthermore, the GM MAY additionally register the link to its resource implementing the ACE authorization information endpoint (see <xref section="5.10.1" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>). 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" format="default"/>). In such a case, the link MUST include the parameter 'rt' with value "ace.ai", defined in <xref section="8.2" sectionFormat="of" target="I-D.ietf-ace-oauth-authz" format="default"/>.</t>
      <section anchor="ssec-parameters" numbered="true" toc="default">
        <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="I-D.ietf-core-resource-directory" format="default"/> 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" format="default"/>, 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 value "application/ace-groupcomm+cbor" registered in <xref section="8.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm" format="default"/>.  </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>'rt', specifying the resource type of the group-membership resource at the Group Manager, with value "core.osc.gm" registered in <xref section="25.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>.</li>
          <li>'if', specifying the interface description for accessing the group-membership resource at the Group Manager, with value "ace.group" registered in <xref section="8.10" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm" format="default"/>.</li>
          <li>'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" format="default"/>. This parameter MUST specify a single value.</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 MUST occur once for each application group, and MUST 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" format="default"/>). 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" format="default"/>).</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>'hkdf', specifying the HKDF Algorithm used in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>.</li>
          <li>
            <t>'cred_fmt', specifying the format of the authentication credentials used in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Label' column of the "COSE Header Parameters" Registry <xref target="COSE.Header.Parameters" format="default"/>. Acceptable values denote a format that MUST 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" format="default"/>, X.509 certificates <xref target="RFC7925" format="default"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert" format="default"/>. 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>'sign_enc_alg', specifying the encryption algorithm used to encrypt messages in the security group, when these are also signed, e.g., as in the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>.</li>
          <li>'sign_alg', specifying the algorithm used to sign messages in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>.</li>
          <li>'sign_alg_crv', specifying the elliptic curve (if applicable) for the algorithm used to sign messages in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves" format="default"/>.</li>
          <li>'sign_key_kty', specifying the key type of countersignature keys used to sign messages in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Key Types" Registry <xref target="COSE.Key.Types" format="default"/>.</li>
          <li>'sign_key_crv', specifying the elliptic curve (if applicable) of countersignature keys used to sign messages in the security group. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves" format="default"/>.</li>
          <li>'alg', specifying the encryption algorithm used to encrypt messages in the security group, when these are encrypted with pairwise encryption keys, e.g., as in the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>.</li>
          <li>'ecdh_alg', specifying the ECDH algorithm used to derive pairwise encryption keys in the security group, e.g., as for the pairwise mode of Group OSCORE (see <xref section="2.4" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>.</li>
          <li>'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 MUST specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves" format="default"/>.</li>
          <li>'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 MUST specify a single value, which is taken from the 'Value' column of the "COSE Key Types" Registry <xref target="COSE.Key.Types" format="default"/>.</li>
          <li>'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 MUST specify a single value, which is taken from the 'Value' column of the "COSE Elliptic Curves" Registry <xref target="COSE.Elliptic.Curves" format="default"/>.</li>
          <li>'det_hash_alg', specifying the hash algorithm used in the security group when producing deterministic requests, as defined in <xref target="I-D.amsuess-core-cachable-oscore" format="default"/>. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms" format="default"/>. This parameter MUST NOT be present if the security group does not use deterministic requests.</li>
          <li>'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 MUST specify a single value, which is taken from the 'Value' column of the "ACE Groupcomm Rekeying Schemes" registry defined in <xref section="11.14" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm" format="default"/>.</li>
        </ul>
        <t>If the security group does not recur to message signing, then the parameters 'sign_enc_alg', 'sign_alg', 'sign_alg_crv', 'sign_key_kty' and 'sign_key_crv' MUST NOT 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" format="default"/>).</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' MUST NOT 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" format="default"/>).</t>
        <t>Note that the values registered in the COSE Registries <xref target="COSE.Algorithms" format="default"/><xref target="COSE.Elliptic.Curves" format="default"/><xref target="COSE.Key.Types" format="default"/> 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 MUST NOT 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" format="default"/>) 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', 'sign_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" numbered="true" toc="default">
        <name>Relation Link to Authorization Server</name>
        <t>For each registered link to a group-membership resource, the GM MAY additionally specify the link to the ACE Authorization Server (AS) <xref target="I-D.ietf-ace-oauth-authz" format="default"/> 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" format="default"/>.</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="I-D.ietf-core-resource-directory" format="default"/> 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>'rel', with value "authorization_server".</li>
          <li>'anchor', with value the target of the link to the group-membership resource at the GM.</li>
        </ul>
        <t>In a RD based on CoRAL, such as the one defined in <xref target="I-D.hartke-t2trg-coral-reef" format="default"/>, 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" numbered="true" toc="default">
        <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 countersignature 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="RFC7925" format="default"/>, 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" format="default"/>).</t>
        <section anchor="sssec-registration--ex-link-format" numbered="true" toc="default">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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";sign_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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral" numbered="true" toc="default">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>
#using iana = <http://www.iana.org/assignments/relation/>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedca570000"
   app-gp "group1"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <coap://as.example.com/token>
}
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-update-addition" numbered="true" toc="default">
      <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="I-D.ietf-core-resource-directory" format="default"/>, 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>The GM creates a new security group and starts exporting the related group-membership resource.</li>
        <li>The GM dismisses a security group and stops exporting the related group-membership resource.</li>
        <li>Information related to an existing security group changes, e.g., the list of associated application groups.</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" format="default"/> request to the RD, as per <xref section="5.3.3" sectionFormat="of" target="I-D.ietf-core-resource-directory" format="default"/>. 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" numbered="true" toc="default">
        <name>Addition Example</name>
        <t>The example below shows how the GM from <xref target="sec-GM-registration" format="default"/> re-registers with the RD. When doing so, it specifies:</t>
        <ul spacing="normal">
          <li>The same previous group-membership resource associated with the security group with name "feedca570000".</li>
          <li>An additional group-membership resource associated with the security group with name "ech0ech00000" and used by the application group "group2".</li>
          <li>A third group-membership resource associated with the security group with name "abcdef120000" and used by two application groups, namely "group3" and "group4".</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" numbered="true" toc="default">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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";sign_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";sign_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";
                             sign_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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral-1" numbered="true" toc="default">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>
#using iana = <http://www.iana.org/assignments/relation/>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedca570000"
   app-gp "group1"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <coap://as.example.com/token>
}
reef:rd-item </ace-group/ech0ech00000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "ech0ech00000"
   app-gp "group2"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <coap://as.example.com/token>
}
reef:rd-item </ace-group/abcdef120000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "abcdef120000"
   app-gp "group3"
   app-gp "group4"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <coap://as.example.com/token>
}
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-group-discovery" numbered="true" toc="default">
      <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="I-D.ietf-core-resource-directory" format="default"/>, 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="I-D.ietf-core-resource-directory" format="default"/>.</t>
      <t>The joining node uses the following parameter value for the lookup filtering.</t>
      <ul spacing="normal">
        <li>'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="25.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore" format="default"/>.</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>'sec-gp', specifying the name of the security group of interest. This parameter MUST specify a single value.</li>
        <li>'ep', specifying the registered endpoint of the GM.</li>
        <li>'app-gp', specifying the name(s) of the application group(s) associated with the security group of interest. This parameter MAY be included multiple times, and each occurrence MUST specify the name of one application group.</li>
        <li>'if', specifying the interface description for accessing the group-membership resource at the Group Manager, with value "ace.group" registered in <xref section="8.10" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm" format="default"/>.</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" format="default"/>). 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" format="default"/>).</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" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm" format="default"/>).</t>
      <section anchor="ssec-group-discovery-ex1" numbered="true" toc="default">
        <name>Discovery Example #1</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration" format="default"/> and <xref target="sec-update-addition" format="default"/>, 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" numbered="true" toc="default">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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";sign_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" format="default"/>).</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 Appendix A of <xref target="I-D.ietf-core-resource-directory" format="default"/>, with ff35:30:2001:db8::23 as multicast IP address of the associated CoAP group.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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" numbered="true" toc="default">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&app-gp=group1
Accept: TBD123456 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>
#using iana = <http://www.iana.org/assignments/relation/>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedca570000"
   app-gp "group1"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <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 name="" type="" align="left" alt=""><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/ep
  ?et=core.rd-group&ep=group1
Accept: TBD123456 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>

reef:rd-unit <./rd/501> {
   reef:ep "group1"
   reef:et "core.rd-group"
   reef:base <coap://[ff35:30:2001:db8::23]>
   reef:rt "core.rd-ep"
}
]]></artwork>
        </section>
      </section>
      <section anchor="ssec-group-discovery-ex2" numbered="true" toc="default">
        <name>Discovery Example #2</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration" format="default"/> and <xref target="sec-update-addition" format="default"/>, 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" format="default"/>, 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" numbered="true" toc="default">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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";sign_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 name="" type="" align="left" alt=""><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res?rt=core.osc.gm
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork name="" type="" align="left" alt=""><![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";sign_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";sign_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";
    sign_enc_alg="10";sign_alg="-8";sign_alg_crv="6";alg="10";
    ecdh_alg="-27";ecdh_alg_crv="4"
]]></artwork>
          <t>Therefore, it is RECOMMENDED 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" numbered="true" toc="default">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&sec-gp=feedca570000
Accept: TBD123456 (application/coral+cbor)
Observe: 0
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Observe: 24
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>
#using iana = <http://www.iana.org/assignments/relation/>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedca570000"
   app-gp "group1"
   cred_fmt 33
   sign_enc_alg 10
   sign_alg -8
   sign_alg_crv 6
   alg 10
   ecdh_alg -27
   ecdh_alg_crv 4
   iana:authorization-server <coap://as.example.com/token>
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="use-case-example" numbered="true" toc="default">
      <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" format="default"/>, 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><xref section="7.3" sectionFormat="of" target="I-D.ietf-core-resource-directory" format="default"/> describes how 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" format="default"/> provides this same use case example in CoRAL.</t>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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" format="default"/>.</t>
    </section>
    <section anchor="sec-security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The security considerations as described in <xref section="8" sectionFormat="of" target="I-D.ietf-core-resource-directory" format="default"/> apply here as well.</t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-core-oscore-groupcomm" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-groupcomm-14.txt">
          <front>
            <title>Group OSCORE - Secure Group Communication for CoAP</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuss Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Jiye Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <abstract>
              <t>   This document defines 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 approach 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-14"/>
        </reference>
        <reference anchor="I-D.ietf-core-resource-directory" target="https://www.ietf.org/archive/id/draft-ietf-core-resource-directory-28.txt">
          <front>
            <title>CoRE Resource Directory</title>
            <author fullname="Christian Amsüss">
	 </author>
            <author fullname="Zach Shelby">
              <organization>ARM</organization>
            </author>
            <author fullname="Michael Koster">
              <organization>SmartThings</organization>
            </author>
            <author fullname="Carsten Bormann">
              <organization>Universitaet Bremen TZI</organization>
            </author>
            <author fullname="Peter van der Stok">
              <organization>consultant</organization>
            </author>
            <date month="March" day="7" year="2021"/>
            <abstract>
              <t>   In many 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, lookup and remove information on resources.  Furthermore,
   new target attributes useful in conjunction with an RD are defined.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-resource-directory-28"/>
        </reference>
        <reference anchor="I-D.ietf-core-coral" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-coral.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-coral-04.txt">
          <front>
            <title>The Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Christian Amsüss">
	 </author>
            <author fullname="Thomas Fossati">
              <organization>ARM</organization>
            </author>
            <date month="October" day="25" year="2021"/>
            <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-04"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-groupcomm-bis.xml" target="https://www.ietf.org/archive/id/draft-ietf-core-groupcomm-bis-06.txt">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <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 RFC 7390, while it updates RFC 7252 and RFC 7641.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-groupcomm-bis-06"/>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-struct" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-struct.xml" target="https://www.ietf.org/archive/id/draft-ietf-cose-rfc8152bis-struct-15.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="Jim Schaad">
              <organization>August Cellars</organization>
            </author>
            <date month="February" day="1" year="2021"/>
            <abstract>
              <t>   Concise Binary Object Representation (CBOR) is a data format designed
   for small code size and small message size.  There is a need for the
   ability to have basic security services defined 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.

   This document along with [I-D.ietf-cose-rfc8152bis-algs] obsoletes
   RFC8152.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-struct-15"/>
        </reference>
        <reference anchor="I-D.ietf-cose-rfc8152bis-algs" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-rfc8152bis-algs.xml" target="https://www.ietf.org/archive/id/draft-ietf-cose-rfc8152bis-algs-12.txt">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="Jim Schaad">
              <organization>August Cellars</organization>
            </author>
            <date month="September" day="24" year="2020"/>
            <abstract>
              <t>   Concise Binary Object Representation (CBOR) is a data format designed
   for small code size and small message size.  There is a need for the
   ability to have basic security services defined 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 XXXX.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-rfc8152bis-algs-12"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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="RFC6690" target="https://www.rfc-editor.org/info/rfc6690" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6690.xml">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <date year="2012" month="August"/>
            <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" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author initials="Z." surname="Shelby" fullname="Z. Shelby">
              <organization/>
            </author>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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>
        <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-ace-key-groupcomm-oscore" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-key-groupcomm-oscore.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-oscore-13.txt">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <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
   secured with Group Object Security for Constrained RESTful
   Environments (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-13"/>
        </reference>
        <reference anchor="I-D.ietf-ace-key-groupcomm" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-key-groupcomm.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-key-groupcomm-15.txt">
          <front>
            <title>Key Provisioning for Group Communication using ACE</title>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date month="December" day="23" year="2021"/>
            <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-15"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oscore-gm-admin" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oscore-gm-admin.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-oscore-gm-admin-05.txt">
          <front>
            <title>Admin Interface for the OSCORE Group Manager</title>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Rikard Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Peter van der Stok">
              <organization>Consultant</organization>
            </author>
            <author fullname="Francesca Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date month="March" day="7" year="2022"/>
            <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.  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-05"/>
        </reference>
        <reference anchor="I-D.ietf-ace-oauth-authz" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-authz.xml" target="https://www.ietf.org/archive/id/draft-ietf-ace-oauth-authz-46.txt">
          <front>
            <title>Authentication and Authorization for Constrained Environments (ACE) using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="Ludwig Seitz">
              <organization>Combitech</organization>
            </author>
            <author fullname="Goeran Selander">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Erik Wahlstroem">
	 </author>
            <author fullname="Samuel Erdtman">
              <organization>Spotify AB</organization>
            </author>
            <author fullname="Hannes Tschofenig">
              <organization>Arm Ltd.</organization>
            </author>
            <date month="November" day="8" year="2021"/>
            <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="Internet-Draft" value="draft-ietf-ace-oauth-authz-46"/>
        </reference>
        <reference anchor="I-D.hartke-t2trg-coral-reef" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.hartke-t2trg-coral-reef.xml" target="https://www.ietf.org/archive/id/draft-hartke-t2trg-coral-reef-04.txt">
          <front>
            <title>Resource Discovery in Constrained RESTful Environments (CoRE) using the Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Klaus Hartke">
              <organization>Ericsson</organization>
            </author>
            <date month="May" day="9" 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" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-03.txt">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date month="January" day="10" year="2022"/>
            <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%.  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 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-03"/>
        </reference>
        <reference anchor="I-D.amsuess-core-cachable-oscore" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.amsuess-core-cachable-oscore.xml" target="https://www.ietf.org/archive/id/draft-amsuess-core-cachable-oscore-04.txt">
          <front>
            <title>Cacheable OSCORE</title>
            <author fullname="Christian Amsüss">
	 </author>
            <author fullname="Marco Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date month="March" day="6" year="2022"/>
            <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-04"/>
        </reference>
        <reference anchor="RFC7228" target="https://www.rfc-editor.org/info/rfc7228" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="M." surname="Ersue" fullname="M. Ersue">
              <organization/>
            </author>
            <author initials="A." surname="Keranen" fullname="A. Keranen">
              <organization/>
            </author>
            <date year="2014" month="May"/>
            <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="RFC7641" target="https://www.rfc-editor.org/info/rfc7641" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7641.xml">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author initials="K." surname="Hartke" fullname="K. Hartke">
              <organization/>
            </author>
            <date year="2015" month="September"/>
            <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="RFC7925" target="https://www.rfc-editor.org/info/rfc7925" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
          <front>
            <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig" role="editor">
              <organization/>
            </author>
            <author initials="T." surname="Fossati" fullname="T. Fossati">
              <organization/>
            </author>
            <date year="2016" month="July"/>
            <abstract>
              <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
              <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery.  The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7925"/>
          <seriesInfo name="DOI" value="10.17487/RFC7925"/>
        </reference>
        <reference anchor="RFC8132" target="https://www.rfc-editor.org/info/rfc8132" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8132.xml">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author initials="P." surname="van der Stok" fullname="P. van der Stok">
              <organization/>
            </author>
            <author initials="C." surname="Bormann" fullname="C. Bormann">
              <organization/>
            </author>
            <author initials="A." surname="Sehgal" fullname="A. Sehgal">
              <organization/>
            </author>
            <date year="2017" month="April"/>
            <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" target="https://www.rfc-editor.org/info/rfc8392" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author initials="M." surname="Jones" fullname="M. Jones">
              <organization/>
            </author>
            <author initials="E." surname="Wahlstroem" fullname="E. Wahlstroem">
              <organization/>
            </author>
            <author initials="S." surname="Erdtman" fullname="S. Erdtman">
              <organization/>
            </author>
            <author initials="H." surname="Tschofenig" fullname="H. Tschofenig">
              <organization/>
            </author>
            <date year="2018" month="May"/>
            <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" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author initials="G." surname="Selander" fullname="G. Selander">
              <organization/>
            </author>
            <author initials="J." surname="Mattsson" fullname="J. Mattsson">
              <organization/>
            </author>
            <author initials="F." surname="Palombini" fullname="F. Palombini">
              <organization/>
            </author>
            <author initials="L." surname="Seitz" fullname="L. Seitz">
              <organization/>
            </author>
            <date year="2019" month="July"/>
            <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" target="https://www.rfc-editor.org/info/rfc8995" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8995.xml">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author initials="M." surname="Pritikin" fullname="M. Pritikin">
              <organization/>
            </author>
            <author initials="M." surname="Richardson" fullname="M. Richardson">
              <organization/>
            </author>
            <author initials="T." surname="Eckert" fullname="T. Eckert">
              <organization/>
            </author>
            <author initials="M." surname="Behringer" fullname="M. Behringer">
              <organization/>
            </author>
            <author initials="K." surname="Watsen" fullname="K. Watsen">
              <organization/>
            </author>
            <date year="2021" month="May"/>
            <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" numbered="true" toc="default">
      <name>Use Case Example With Full Discovery (CoRAL)</name>
      <t>This section provides the same use case example of <xref target="use-case-example" format="default"/>, but specified in CoRAL <xref target="I-D.ietf-core-coral" format="default"/>.</t>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using reef = <http://coreapps.org/reef#>

#base <coap://[ff05::5:1]/>
reef:ep "grp_R2-4-015"
reef:et "core.rd-group"
reef:rd-item </light> {
   reef:rt "oic.d.light"
}
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd?ep=grp_schedule&et=core.rd-group
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using reef = <http://coreapps.org/reef#>

#base <coap://[ff05::5:2]/>
reef:rd-item </schedule> {
   reef:rt "oic.r.time.period"
}
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd?ep=gm1
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:ct 41
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedca570000"
   app-gp "grp_R2-4-015"
}
reef:rd-item </ace-group/feedsc590000> {
   reef:ct 65000
   reef:ct 41
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedsc590000"
   app-gp "grp_schedule"
}
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using reef = <http://coreapps.org/reef#>

#base <coap://[2001:db8:4::ff]/rd/>
reef:rd-unit <501> {
   reef:ep "grp_R2-4-015"
   reef:et "core.rd-group"
   reef:base <coap://[ff05::5:1]/>
   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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using reef = <http://coreapps.org/reef#>

#base <coap://[2001:db8:4::ff]/rd/>
reef:rd-unit <502> {
   reef:ep "grp_schedule"
   reef:et "core.rd-group"
   reef:base <coap://[ff05::5:2]/>
   reef:rt "core.rd-ep"
}
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedca570000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef: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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
Res: 2.05 Content
Content-Format: TBD123456 (application/coral+cbor)

Payload:
#using <http://coreapps.org/core.oscore-discovery#>
#using reef = <http://coreapps.org/reef#>

#base <coap://[2001:db8::ab]/>
reef:rd-item </ace-group/feedsc590000> {
   reef:ct 65000
   reef:rt "core.osc.gm"
   reef:if "ace.group"
   sec-gp "feedsc590000"
   app-gp "grp_schedule"
}
]]></artwork>
      <artwork name="" type="" align="left" alt=""><![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" format="default"/>.</t>
    </section>
    <section numbered="false" anchor="acknowldegment" toc="default">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank Carsten Bormann, Klaus Hartke, Jaime Jimenez, Francesca Palombini, Dave Robin and Jim Schaad for their comments and feedback.</t>
      <t>The work on this document has been partly supported by VINNOVA and the Celtic-Next project CRITISEC; 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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
vTUK0q4VqPybC4Qm7/L3h83O5Q5bS/dhHS0h/iMrnjrm3Vcq5MIAucJl4y6l
3nmzp7vyOsHQ60QunGgURQSuCknVB0Lp1XI0dK0o3RXBOP/hK2JuPjC/W2p5
Y3PdldAp+1OIDhq8MJ6L5JOSoCvFLXee7XyLOC7jp3Uuy69aNsZ0HbS8Tbpo
DpXV7eAGc35Pyw43c/nT0VtTAaL4n73vaK1EFeSsFfRV6O9fr6FdiPoSOMJ9
dtZZDxCg8IL6zGpboXleMQ2wlpf6dXBukF8mpTyU17/JRunQk8nO3mBne2Dh
3d/BQVcBz6FAC8fbwX85R/SXisXD5zTXV/JWGTw65ve2e8+eSIfdSs259SK8
0DnaIRZ564D664bNR4Ah5Hzj+uHYOxWd3OJ1rZjtzR3Cl4Dxl4Dxp0bm/h3l
wJ+Em3/hOT7PMaxhkUSF+LarJZPDC6RPsvyZZgdGVpmvfE5UK6ieVdmKElgf
yiKr1vbur7K9+5+R7d1crbvCyvat6Pa6JnTb2NtX1hy42+T+zehm11nq1Wjt
qivZfYfNSKp72NG1PLFheVUhYfqt2wDmVbFZFXqLcnP9ofLTwYjjWNXDIEqa
C+9X3QmCQU8ENvFBnRewlNgWKLVMtMbG5Jtr+Xh0Z243oEqO+AgHBoaFYHUi
qn8Yz4byDXh23Bs6VuB7N2nSmUH7u1/cHiU1/aAcl89lkIVT08a+WT+oJDco
FQExFNtKxNhdwna+UpSD306xt0Ol35ZuEKzH8a+isyGJ5uAj359mQxbIrjAO
ffWLqiKvFOn//lXudh72amluzT1SopIvHr81Ub8uDbw523utfOmP3bpfq1Dd
ev+PufWGqoNrbd0vLqhufadUcVBfQ3BVqcBNMkAnDslh3uPD4ZtXrw5fHxwe
qGyCUhyZQsLWSKowQKMBkqKihI9IOTFmRQMW59pK3YpFle8i69Ds0L2Wnjq7
/AEcLXWS/Bqmz60L/T+wRfTFC/OZeGHu4Q2XYogg19T2MxL68wUoDtZsRFNx
gZfiwIMdNeoHm32UczyYtaqVCQORm+2KUSDVvI4TZkBpilUDKtXvjnQYEWNK
MiGU+wiGy7HtwCQCLjVaRDEqfOy8sXPocegWoBxvMWYt6gL7KnHXAkzogX9m
mO2hHpfahNOveym67p4FdYMEOtT3rCVGo0JT0VienJWNM9jUoWA24ppnCodl
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
3Q0r9oenRz8ddlv/Hxt1SpdZ4gAA

-->

</rfc>
