<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version  (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tiloca-core-oscore-discovery-14" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="OSCORE group discovery with the CoRE RD">Discovery of OSCORE Groups with the CoRE Resource Directory</title>
    <seriesInfo name="Internet-Draft" value="draft-tiloca-core-oscore-discovery-14"/>
    <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="2023" month="September" day="08"/>
    <area>Applications</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>Group communication over the Constrained Application Protocol (CoAP) can be secured by means of Group Object Security for Constrained RESTful Environments (Group OSCORE). At deployment time, devices may not know the exact security groups to join, the respective Group Manager, or other information required to perform the joining process. This document describes how a CoAP endpoint can use descriptions and links of resources registered at the CoRE Resource Directory to discover security groups and to acquire information for joining them through the respective Group Manager. A given security group may protect multiple application groups, which are separately announced in the Resource Directory as sets of endpoints sharing a pool of resources. This approach is consistent with, but not limited to, the joining of security groups based on the ACE framework for Authentication and Authorization in constrained environments.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
  Constrained RESTful Environments Working Group mailing list (core@ietf.org),
  which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://gitlab.com/crimson84/draft-tiloca-core-oscore-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> supports group communication over IP multicast <xref target="I-D.ietf-core-groupcomm-bis"/> to improve efficiency and latency of communication and reduce bandwidth requirements. A set of CoAP endpoints constitutes an application group by sharing a common pool of resources, that can be efficiently accessed through group communication. The members of an application group may be members of a security group, thus sharing a common set of keying material to secure group communication.</t>
      <t>The security protocol Group Object Security for Constrained RESTful Environments (Group OSCORE) <xref target="I-D.ietf-core-oscore-groupcomm"/> builds on OSCORE <xref target="RFC8613"/> and protects CoAP messages end-to-end in group communication contexts through CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/><xref target="RFC9053"/>. An application group may rely on one or more security groups, and a same security group may be used by multiple application groups at the same time.</t>
      <t>A CoAP endpoint relies on a Group Manager (GM) to join a security group and get the group keying material. The joining process in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/> is based on the ACE framework for Authentication and Authorization in constrained environments <xref target="RFC9200"/>, with the joining endpoint and the GM acting as ACE Client and Resource Server, respectively. That is, the joining endpoint accesses the group-membership resource exported by the GM and associated with the security group to join.</t>
      <t>Typically, devices store a static X509 IDevID certificate installed at manufacturing time <xref target="RFC8995"/>. This is used at deployment time during an enrollment process that provides the devices with an Operational Certificate, possibly updated during the device lifetime. Operational Certificates may specify information to join security groups, especially a reference to the group-membership resources to access at the respective GMs.</t>
      <t>However, it is usually impossible to provide such precise information to freshly deployed devices, as part of their (early) Operational Certificate. This can be due to a number of reasons: (1) the security group(s) to join and the responsible GM(s) are generally unknown at manufacturing time; (2) a security group of interest is created, or the responsible GM is deployed, only after the device is enrolled and fully operative in the network; (3) information related to existing security groups or to their GMs has changed. This requires a method for CoAP endpoints to dynamically discover security groups and their GM, and to retrieve relevant information about deployed groups.</t>
      <t>To this end, CoAP endpoints can use descriptions and links of group-membership resources at GMs, to discover security groups and retrieve the information required for joining them. With the discovery process of security groups expressed in terms of links to resources, the remaining problem is the discovery of those links. The CoRE Resource Directory (RD) <xref target="RFC9176"/> allows such discovery in an efficient way, and it is expected to be used in many setups that would benefit of security group discovery.</t>
      <t>This specification builds on this approach and describes how CoAP endpoints can use the RD to perform the link discovery steps, in order to discover security groups and retrieve the information required to join them through their GM. In short, the GM registers as an endpoint with the RD. The resulting registration resource includes one link per security group under that GM, specifying the path to the related group-membership resource to access for joining that group.</t>
      <t>Additional descriptive information about the security group is stored with the registered link. In a RD based on Link Format <xref target="RFC6690"/> as defined in <xref target="RFC9176"/>, this information is specified as target attributes of the registered link, and includes the identifiers of the application groups which use that security group. This enables a lookup of those application groups at the RD, where they are separately announced by a Commissioning Tool (see Appendix A of <xref target="RFC9176"/>).</t>
      <t>When querying the RD for security groups, a CoAP endpoint can use CoAP observation <xref target="RFC7641"/>. This results in automatic notifications on the creation of new security groups or the update of existing groups. Thus, it facilitates the early deployment of CoAP endpoints, i.e., even before the GM is deployed and security groups are created.</t>
      <t>Interaction examples are provided in Link Format, as well as in the Constrained RESTful Application Language CoRAL <xref target="I-D.ietf-core-coral"/> with reference to a CoRAL-based RD <xref target="I-D.hartke-t2trg-coral-reef"/>. 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"/>. 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"/>.</t>
      <section anchor="terminology">
        <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"/> <xref target="RFC8174"/> 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="RFC9176"/> and <xref target="RFC6690"/>, as well as in <xref target="I-D.ietf-core-coral"/>. Readers should also be familiar with the terms and concepts discussed in <xref target="RFC7252"/><xref target="I-D.ietf-core-groupcomm-bis"/>, <xref target="I-D.ietf-core-oscore-groupcomm"/> and <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        <t>Terminology for constrained environments, such as "constrained device" and "constrained-node network", is defined in <xref target="RFC7228"/>.</t>
        <t>Consistently with the definitions from <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>, this document also refers to the following terminology.</t>
        <ul spacing="normal">
          <li>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"/>. 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="RFC9176"/>).</li>
        </ul>
        <t>Like <xref target="I-D.ietf-core-oscore-groupcomm"/>, 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"/>, X.509 certificates <xref target="RFC5280"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>.</li>
        </ul>
      </section>
    </section>
    <section anchor="sec-GM-registration">
      <name>Registration of Group Manager Endpoints</name>
      <t>During deployment, a Group Manager (GM) can find the CoRE Resource Directory (RD) as described in <xref section="4" sectionFormat="of" target="RFC9176"/>.</t>
      <t>Afterwards, the GM registers as an endpoint with the RD, as described in <xref section="5" sectionFormat="of" target="RFC9176"/>. The GM SHOULD NOT use the Simple Registration approach described in <xref section="5.1" sectionFormat="of" target="RFC9176"/>.</t>
      <t>When registering with the RD, the GM also registers the links to all the group-membership resources it has at that point in time, i.e., one for each of its security groups.</t>
      <t>In the registration request, each link to a group-membership resource has as target the URI of that resource at the GM. Also, it specifies a number of descriptive parameters as defined in <xref target="ssec-parameters"/>.</t>
      <t>Furthermore, the GM MAY additionally register the link to its resource implementing the ACE authorization information endpoint (see <xref section="5.10.1" sectionFormat="of" target="RFC9200"/>). A joining node can provide the GM with its own access token by sending it in a request targeting that resource, thus proving to be authorized to join certain security groups (see <xref section="6.1" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>). In such a case, the link MUST include the parameter 'rt' with value "ace.ai", defined in <xref section="8.2" sectionFormat="of" target="RFC9200"/>.</t>
      <section anchor="ssec-parameters">
        <name>Parameters</name>
        <t>For each registered link to a group-membership resource at a GM, the following parameters are specified together with the link.</t>
        <t>In the RD defined in <xref target="RFC9176"/> and based on Link Format, each parameter is specified in a target attribute with the same name.</t>
        <t>In a RD based on CoRAL, such as the one defined in <xref target="I-D.hartke-t2trg-coral-reef"/>, each parameter is specified in a nested element with the same name.</t>
        <ul spacing="normal">
          <li>
            <t>'ct', specifying the content format used with the group-membership resource at the Group Manager, with the value registered in <xref section="11.2" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/> for "application/ace-groupcomm+cbor".  </t>
            <t>
Note: The examples in this document use the provisional value 65000 from the range "Reserved for Experimental Use" of the "CoAP Content-Formats" registry, within the "CoRE Parameters" registry.</t>
          </li>
          <li>'rt', specifying the resource type of the group-membership resource at the Group Manager, with value "core.osc.gm" registered in <xref section="16.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</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="11.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</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"/>. 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"/><xref target="I-D.ietf-ace-oscore-gm-admin-coral"/>). Thus, when registering the links to its group-membership resource, the GM is aware of the application groups and their names.  </t>
            <t>
If a different entity than the GM registers the security groups to the RD, e.g., a Commissioning Tool, this entity has to also be aware of the application groups and their names to specify. To this end, it can obtain them from the GM or from the Administator that created the security groups at the GM (see <xref target="I-D.ietf-ace-oscore-gm-admin-coral"/>).</t>
          </li>
        </ul>
        <t>Optionally, the following parameters can also be specified. If Link Format is used, the value of each of these parameters is encoded as a text string.</t>
        <ul spacing="normal">
          <li>'hkdf', specifying the HKDF algorithm used in the security group, e.g., aligned with the parameter HKDF Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</li>
          <li>
            <t>'cred-fmt', specifying the format of the authentication credentials used in the security group, e.g., aligned with the parameter Authentication Credential Format in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Label' column of the "COSE Header Parameters" Registry <xref target="COSE.Header.Parameters"/>. Acceptable values denote a format that 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"/>, X.509 certificates <xref target="RFC5280"/> and C509 certificates <xref target="I-D.ietf-cose-cbor-encoded-cert"/>. Further formats may be available in the future, and would be acceptable to use as long as they comply with the criteria defined above.  </t>
            <t>
[ As to CWTs and unprotected CWT claim sets, there is a pending registration requested by draft-ietf-lake-edhoc. ]  </t>
            <t>
[ As to C509 certificates, there is a pending registration requested by draft-ietf-cose-cbor-encoded-cert. ]</t>
          </li>
          <li>'gp-enc-alg', specifying the encryption algorithm used to encrypt messages in the security group when these are also signed, e.g., aligned with the parameter Group Encryption Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</li>
          <li>'sign-alg', specifying the algorithm used to sign messages in the security group, e.g., aligned with the parameter Signature Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the group mode of Group OSCORE (see <xref section="8" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</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"/>.</li>
          <li>'sign-key-kty', specifying the key type of signing 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"/>.</li>
          <li>'sign-key-crv', specifying the elliptic curve (if applicable) of signing 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"/>.</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., aligned with the parameter AEAD Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</li>
          <li>'ecdh-alg', specifying the ECDH algorithm used to derive pairwise encryption keys in the security group, e.g., aligned with the parameter Pairwise Key Agreement Algorithm in the Group OSCORE Security Context (see <xref section="2" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>) to be used with the pairwise mode of Group OSCORE (see <xref section="9" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>). If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>.</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"/>.</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"/>.</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"/>.</li>
          <li>'det-hash-alg', specifying the hash algorithm used in the security group when producing deterministic requests, e.g., as defined in <xref target="I-D.amsuess-core-cachable-oscore"/>. If present, this parameter MUST specify a single value, which is taken from the 'Value' column of the "COSE Algorithms" Registry <xref target="COSE.Algorithms"/>. 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.12" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</li>
        </ul>
        <t>If the security group does not recur to message signing, then the parameters 'gp-enc-alg', 'sign-alg', 'sign-alg-crv', 'sign-key-kty' and 'sign-key-crv' 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"/>).</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"/>).</t>
        <t>Note that the values registered in the COSE Registries <xref target="COSE.Algorithms"/><xref target="COSE.Elliptic.Curves"/><xref target="COSE.Key.Types"/> are strongly typed. On the contrary, Link Format is weakly typed and thus does not distinguish between, for instance, the string value "-10" and the integer value -10.</t>
        <t>Thus, in RDs that return responses in Link Format, string values which look like an integer are not supported. Therefore, such values 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"/>) would benefit from the information above as follows.</t>
        <ul spacing="normal">
          <li>
            <t>The values of 'cred-fmt', 'sign-alg', 'sign-alg-crv', 'sign-key-kty', 'sign-key-crv', 'ecdh-alg', 'ecdh-alg-crv', 'ecdh-key-kty' and 'ecdh-key-crv' related to a group-membership resource provide an early knowledge of the format of authentication credentials as well as of the type of public keys used in the security group.  </t>
            <t>
Thus, the CoAP endpoint does not need to ask the GM for this information as a preliminary step before the joining process, or to perform a trial-and-error joining exchange with the GM. Hence, at the very first step of the joining process, the CoAP endpoint is able to provide the GM with its own authentication credential in the correct expected format and including a public key of the correct expected type.</t>
          </li>
          <li>
            <t>The values of 'hkdf', 'gp-enc-alg', 'sign-alg', 'alg' and 'ecdh-alg' related to a group-membership resource provide an early knowledge of the algorithms used in the security group.  </t>
            <t>
Thus, the CoAP endpoint is able to decide whether to actually proceed with the joining process, depending on its support for the indicated algorithms.</t>
          </li>
        </ul>
      </section>
      <section anchor="ssec-link-as">
        <name>Relation Link to Authorization Server</name>
        <t>For each registered link to a group-membership resource, the GM MAY additionally specify the link to the ACE Authorization Server (AS) <xref target="RFC9200"/> associated with the GM, and issuing authorization credentials to join the security group as described in <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
        <t>The link to the AS has as target the URI of the resource where to send an authorization request to.</t>
        <t>In the RD defined in <xref target="RFC9176"/> and based on Link Format, the link to the AS is separately registered with the RD, and includes the following parameters as target attributes.</t>
        <ul spacing="normal">
          <li>'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"/>, this is mapped (as describe there) to a link from the registration resource to the AS, using the &lt;http://www.iana.org/assignments/relation/authorization_server&gt; link relation type.</t>
      </section>
      <section anchor="ssec-registration--ex">
        <name>Registration Example</name>
        <t>The example below shows a GM with endpoint name "gm1" and address 2001:db8::ab that registers with the RD.</t>
        <t>The GM specifies the value of the 'sec-gp' parameter for accessing the security group with name "feedca570000", and used by the application group with name "group1" specified with the value of the 'app-gp' parameter.</t>
        <t>The signature algorithm used in the security group is EdDSA (-8), with elliptic curve Ed25519 (6). Authentication credentials used in the security group are X.509 certificates <xref target="RFC5280"/>, which is signaled through the COSE Header Parameter "x5chain" (33). The ECDH algorithm used in the security group is ECDH-SS + HKDF-256 (-27), with elliptic curve X25519 (4).</t>
        <t>In addition, the GM specifies the link to the ACE Authorization Server associated with the GM, to which a CoAP endpoint should send an Authorization Request for joining the corresponding security group (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
        <section anchor="sssec-registration--ex-link-format">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: 40
Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="feedca570000";app-gp="group1";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000"
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?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
   gp-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><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-update-addition">
      <name>Addition and Update of Security Groups</name>
      <t>The GM is responsible to refresh the registration of all its group-membership resources in the RD. This means that the GM has to update the registration within its lifetime as per <xref section="5.3.1" sectionFormat="of" target="RFC9176"/>, and has to change the content of the registration when a group-membership resource is added/removed, or if its parameters have to be changed, such as in the following cases.</t>
      <ul spacing="normal">
        <li>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"/> request to the RD, as per <xref section="5.3.3" sectionFormat="of" target="RFC9176"/>. This requires new media-types to be defined in future standards, to apply a new document as a patch to an existing stored document.</t>
      <section anchor="ssec-addition--ex">
        <name>Addition Example</name>
        <t>The example below shows how the GM from <xref target="sec-GM-registration"/> re-registers with the RD. When doing so, it specifies:</t>
        <ul spacing="normal">
          <li>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">
          <name>Example in Link Format</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?ep=gm1
Content-Format: 40
Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="feedca570000";app-gp="group1";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
</ace-group/ech0ech00000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="ech0ech00000";app-gp="group2";
                             cred-fmt="33";gp-enc-alg="10";
                             sign-alg="-8";sign-alg-crv="6";
                             alg="10";ecdh-alg="-27";ecdh-alg-crv="4",
</ace-group/abcdef120000>;ct=65000;rt="core.osc.gm";if="ace.group";
                             sec-gp="abcdef120000";app-gp="group3";
                             app-gp="group4";cred-fmt="33";
                             gp-enc-alg="10";sign-alg="-8";
                             sign-alg-crv="6";alg="10";ecdh-alg="-27";
                             ecdh-alg-crv="4",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/ech0ech00000",
<coap://as.example.com/token>;rel="authorization-server";
      anchor="coap://[2001:db8::ab]/ace-group/abcdef120000"
]]></artwork>
          <t>Response:  RD -&gt; GM</t>
          <artwork><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
        <section anchor="example-in-coral-1">
          <name>Example in CoRAL</name>
          <t>Request:  GM -&gt; RD</t>
          <artwork><![CDATA[
Req: POST coap://rd.example.com/rd?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
   gp-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
   gp-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
   gp-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><![CDATA[
Res: 2.04 Changed
Location-Path: /rd/4521
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-group-discovery">
      <name>Discovery of Security Groups</name>
      <t>A CoAP endpoint that wants to join a security group, hereafter called the joining node, might not have all the necessary information at deployment time. Also, it might want to know about possible new security groups created afterwards by the respective Group Managers.</t>
      <t>To this end, the joining node can perform a resource lookup at the RD as per <xref section="6.1" sectionFormat="of" target="RFC9176"/>, to retrieve the missing pieces of information needed to join the security group(s) of interest. The joining node can find the RD as described in <xref section="4" sectionFormat="of" target="RFC9176"/>.</t>
      <t>The joining node uses the following parameter value for the lookup filtering.</t>
      <ul spacing="normal">
        <li>'rt' = "core.osc.gm", specifying the resource type of the group-membership resource at the Group Manager, with value "core.osc.gm" registered in <xref section="16.11" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm-oscore"/>.</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="11.5" sectionFormat="of" target="I-D.ietf-ace-key-groupcomm"/>.</li>
      </ul>
      <t>The response from the RD may include links to a group-membership resource specifying multiple application groups, as all using the same security group. In this case, the joining node is already expected to know the exact application group of interest.</t>
      <t>Furthermore, the response from the RD may include the links to different group-membership resources, all specifying a same application group of interest for the joining node, if the corresponding security groups are all used by that application group.</t>
      <t>In this case, application policies on the joining node should define how to determine the exact security group to join (see <xref section="2.1" sectionFormat="of" target="I-D.ietf-core-groupcomm-bis"/>). For example, different security groups can reflect different security algorithms to use. Hence, a client application can take into account what the joining node supports and prefers, when selecting one particular security group among the indicated ones, while a server application would need to join all of them. Later on, the joining node will be anyway able to join only security groups for which it is actually authorized to be a member (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
      <t>Note that, with RD-based discovery, including the 'app-gp' parameter multiple times would result in finding only the group-membership resource that serves all the specified application groups, i.e., not any group-membership resource that serves either. Therefore, a joining node needs to perform N separate queries with different values for 'app-gp', in order to safely discover the (different) group-membership resource(s) serving the N application groups.</t>
      <t>The discovery of security groups as defined in this document is applicable and useful to other CoAP endpoints than the actual joining nodes. In particular, other entities can be interested to discover and interact with the group-membership resource at the Group Manager. These include entities acting as signature checkers, e.g., intermediary gateways, that do not join a security group, but can retrieve authentication credentials of group members from the Group Manager, in order to verify counter signatures of group messages (see <xref section="3.3" sectionFormat="of" target="I-D.ietf-core-oscore-groupcomm"/>).</t>
      <section anchor="ssec-group-discovery-ex1">
        <name>Discovery Example #1</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration"/> and <xref target="sec-update-addition"/>, the examples below consider a joining node that wants to join the security group associated with the application group "group1", but that does not know the name of the security group, the responsible GM and the group-membership resource to access.</t>
        <section anchor="example-in-link-format-1">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&app-gp=group1
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>By performing the separate resource lookup below, the joining node can retrieve the link to the ACE Authorization Server associated with the GM, where to send an Authorization Request for joining the corresponding security group (see <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>).</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rel=authorization-server&
   anchor=coap://[2001:db8::ab]/ace-group/feedca570000
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Payload:
<coap://as.example.com/token>;rel=authorization-server;
      anchor="coap://[2001:db8::ab]/ace-group/feedca570000"
]]></artwork>
          <t>To retrieve the multicast IP address of the CoAP group used by the application group "group1", the joining node performs an endpoint lookup as shown below. The following assumes that the application group "group1" had been previously registered as per Appendix A of <xref target="RFC9176"/>, with ff35:30:2001:db8::23 as multicast IP address of the associated CoAP group.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/ep
  ?et=core.rd-group&ep=group1
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Payload:
</rd/501>;ep="group1";et="core.rd-group";
          base="coap://[ff35:30:2001:db8::23]";rt="core.rd-ep"
]]></artwork>
        </section>
        <section anchor="example-in-coral-2">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&app-gp=group1
Accept: TBD123456 (application/coral+cbor)
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![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
   gp-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><![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><![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">
        <name>Discovery Example #2</name>
        <t>Consistently with the examples in <xref target="sec-GM-registration"/> and <xref target="sec-update-addition"/>, the examples below consider a joining node that wants to join the security group with name "feedca570000", but that does not know the responsible GM, the group-membership resource to access, and the associated application groups.</t>
        <t>The examples also show how the joining node uses CoAP observation <xref target="RFC7641"/>, in order to be notified of possible changes to the parameters of the group-membership resource. This is also useful to handle the case where the security group of interest has not been created yet, so that the joining node can receive the requested information when it becomes available.</t>
        <section anchor="example-in-link-format-2">
          <name>Example in Link Format</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&sec-gp=feedca570000
Observe: 0
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Observe: 24
Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>Depending on the search criteria, the joining node performing the resource lookup can get large responses. This can happen, for instance, when the lookup request targets all the group-membership resources at a specified GM, or all the group-membership resources of all the registered GMs, as in the example below.</t>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res?rt=core.osc.gm
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![CDATA[
Res: 2.05 Content
Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="group1";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";ecdh-alg="-27";
    ecdh-alg-crv="4",
<coap://[2001:db8::ab]/ace-group/ech0ech00000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="ech0ech00000";
    app-gp="group2";cred-fmt="33";gp-enc-alg="10";
    sign-alg="-8";sign-alg-crv="6";alg="10";ecdh-alg="-27";
    ecdh-alg-crv="4",
<coap://[2001:db8::ab]/ace-group/abcdef120000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="abcdef120000";
    app-gp="group3";app-gp="group4";cred-fmt="33";
    gp-enc-alg="10";sign-alg="-8";sign-alg-crv="6";alg="10";
    ecdh-alg="-27";ecdh-alg-crv="4"
]]></artwork>
          <t>Therefore, it is 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">
          <name>Example in CoRAL</name>
          <t>Request:  Joining node -&gt; RD</t>
          <artwork><![CDATA[
Req: GET coap://rd.example.com/rd-lookup/res
  ?rt=core.osc.gm&sec-gp=feedca570000
Accept: TBD123456 (application/coral+cbor)
Observe: 0
]]></artwork>
          <t>Response:  RD -&gt; Joining node</t>
          <artwork><![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
   gp-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">
      <name>Use Case Example With Full Discovery</name>
      <t>In this section, the discovery of security groups is described to support the installation process of a lighting installation in an office building. The described process is a simplified version of one of many processes.</t>
      <t>The process described in this section is intended as an example and does not have any particular ambition to serve as recommendation or best practice to adopt. That is, it shows a possible workflow involving a Commissioning Tool (CT) used in a certain way, while it is not meant to prescribe how the workflow should necessarily be.</t>
      <t>Assume the existence of four luminaires that are members of two application groups. In the first application group, the four luminaires receive presence messages and light intensity messages from sensors or their proxy. In the second application group, the four luminaires and several other pieces of equipment receive building state schedules.</t>
      <t>Each of the two application groups is associated with a different security group and to a different CoAP group with its own dedicated multicast IP address.</t>
      <t>The Fairhair Alliance describes how a new device is accepted and commissioned in the network <xref target="Fairhair"/>, by means of its certificate stored during the manufacturing process. When commissioning the new device in the installation network, the new device gets a new identity defined by a newly allocated certificate, following the BRSKI specification.</t>
      <t>Then, consistently with <xref section="7.1" sectionFormat="of" target="RFC9176"/>, the CT assigns an endpoint name based on the CN field, (CN=ACME) and the serial number of the certificate (serial number = 123x, with 3 &lt; x &lt; 8). Corresponding ep-names ACME-1234, ACME-1235, ACME-1236 and ACME-1237 are also assumed.</t>
      <t>It is common practice that locations in the building are specified according to a coordinate system. After the acceptance of the luminaires into the installation network, the coordinate of each device is communicated to the CT. This can be done manually or automatically.</t>
      <t>The mapping between location and ep-name is calculated by the CT. For instance, on the basis of grouping criteria, the CT assigns: i) application group "grp_R2-4-015" to the four luminaires; and ii) application group "grp_schedule" to all schedule requiring devices. Also, the device with ep name ACME-123x has been assigned IP address: [2001:db8:4::x]. The RD is assigned IP address: [2001:db8:4:ff]. The used multicast addresses are: [ff05::5:1] and [ff05::5:2].</t>
      <t>The following assumes that each device is pre-configured with the name of the two application groups it belongs to. Additional mechanisms can be defined in the RD, for supporting devices to discover the application groups they belong to.</t>
      <t><xref target="use-case-example-coral"/> provides this same use case example in CoRAL.</t>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The CT defines the application group "grp_R2-4-015", with resource /light and base address [ff05::5:1], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=grp_R2-4-015&et=core.rd-group&base=coap://[ff05::5:1]
Content-Format: 40
Payload:
</light>;rt="oic.d.light"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/501
]]></artwork>
      <t>Also, the CT defines a second application group "grp_schedule", with resource /schedule and base address [ff05::5:2], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=grp_schedule&et=core.rd-group&base=coap://[ff05::5:2]
Content-Format: 40
Payload:
</schedule>;rt="oic.r.time.period"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--
Consecutively, the CT registers the four devices in the RD (IP address: 2001:db8:4::ff), with their endpoint names and application groups.

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

Request:  CT -> RD

~~~~~~~~~~~
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=ACME-123x&base=coap://[2001:db8:4::x]&in-app-gp=grp_R2-4-015&
   in-app-gp=grp_schedule
Content-Format: 40
Payload:
</light>;rt="oic.d.light"
</schedule>;rt="oic.r.time.period"
~~~~~~~~~~~

Response:  RD -> CT

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

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

<t>Finally, the CT defines the corresponding security groups. In particular, assuming a Group Manager responsible for both security groups and with address [2001:db8::ab], the CT specifies:</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
  ?ep=gm1&base=coap://[2001:db8::ab]
Content-Format: 40
Payload:
</ace-group/feedca570000>;ct=65000;rt="core.osc.gm";if="ace.group";
                          sec-gp="feedca570000";
                          app-gp="grp_R2-4-015",
</ace-group/feedsc590000>;ct=65000;rt="core.osc.gm";if="ace.group";
                          sec-gp="feedsc590000";
                          app-gp="grp_schedule"
]]></artwork>
      <t>Response:  RD -&gt; CT</t>
      <artwork><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--
The device with IP address [2001:db8:4::x] can consequently learn the groups to which it belongs. In particular, it first does an ep lookup to the RD to learn the application groups to which it belongs.

Request:  Joining node -> RD

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

Response:  RD -> Joining node

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


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

<t>The device with IP address [2001:db8:4::x] can retrieve the multicast IP address of the CoAP group used by the application group "grp_R2-4-015", by performing an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40
Payload:
</rd/501>;ep="grp_R2-4-015";et="core.rd-group";
          base="coap://[ff05::5:1]";rt="core.rd-ep"
]]></artwork>
      <t>Similarly, to retrieve the multicast IP address of the CoAP group used by the application group "grp_schedule", the device performs an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40
Payload:
</rd/502>;ep="grp_schedule";et="core.rd-group";
          base="coap://[ff05::5:2]";rt="core.rd-ep"
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <!--Having learnt the application groups to which the device belongs-->
<t>Consequently, the device learns the security groups it has to join. In particular, it does the following for app-gp="grp_R2-4-015".</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40
Payload:
<coap://[2001:db8::ab]/ace-group/feedca570000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedca570000";
    app-gp="grp_R2-4-015"
]]></artwork>
      <t>Similarly, the device does the following for app-gp="grp_schedule".</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 40
Payload:
<coap://[2001:db8::ab]/ace-group/feedsc590000>;ct=65000;
    rt="core.osc.gm";if="ace.group";sec-gp="feedsc590000";
    app-gp="grp_schedule"
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>After this last discovery step, the device can ask permission to join the security groups, and effectively join them through the Group Manager, e.g., according to <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations as described in <xref section="8" sectionFormat="of" target="RFC9176"/> apply here as well.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has the following actions for IANA.</t>
      <t>Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" with the RFC number of this specification and delete this paragraph.</t>
      <section anchor="iana-link-relation-type">
        <name>Link Relation Type Registry</name>
        <t>IANA is asked to register the following entry in the "Link Relation Type" registry as per <xref target="RFC8288"/>.</t>
        <artwork><![CDATA[
Relation Name: authorization-server
Description: Refers to a resource at an Authorization Server
             for requesting an authorization credential
             to access the link's context
Reference: [RFC-XXXX]
Notes: None
Application Data: None
]]></artwork>
      </section>
      <section anchor="iana-target-attributes">
        <name>Target Attributes Registry</name>
        <t>IANA is asked to register the following entries in the "Target Attributes" registry within the "CoRE Parameters" registry group, as per <xref target="I-D.ietf-core-target-attr"/>.</t>
        <artwork><![CDATA[
Attribute Name: sec-gp
Brief Description: Name of the security group that
                   can be joined through this resource
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: app-gp
Brief Description: Name of an application group
                   associated with a security group
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: hkdf
Brief Description: The HKDF algorithm to use
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: cred-fmt
Brief Description: The format of authentication credential to use
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: gp-enc-alg
Brief Description: The encryption algorithm to use
                   for encrypting signed messages
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: sign-alg
Brief Description: The signature algorithm to use
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: sign-alg-crv
Brief Description: The elliptic curve of the used signature algorithm
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: sign-key-kty
Brief Description: The key type of the used signing keys
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: sign-key-crv
Brief Description: The curve of the used signing keys
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: alg
Brief Description: The encryption algorithm to use
                   for encrypting non-signed messages
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: ecdh-alg
Brief Description: The ECDH algorithm to use
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: ecdh-alg-crv
Brief Description: The elliptic curve of the used ECDH algorithm
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: ecdh-key-kty
Brief Description: The key type of the used ECDH keys
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: ecdh-key-crv
Brief Description: The curve of the used ECDH keys
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: det-hash-alg
Brief Description: The hash algorithm to use
                   for computing deterministic requests
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]

Attribute Name: rekeying-scheme
Brief Description: The rekeying scheme used
                   to distribute new keying material
Change Controller: IETF
Reference: Section 2.1 of [RFC-XXXX]
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="I-D.ietf-core-oscore-groupcomm">
          <front>
            <title>Group Object Security for Constrained RESTful Environments (Group OSCORE)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <date day="2" month="September" year="2023"/>
            <abstract>
              <t>   This document defines the security protocol Group Object Security for
   Constrained RESTful Environments (Group OSCORE), providing end-to-end
   security of CoAP messages exchanged between members of a group, e.g.,
   sent over IP multicast.  In particular, the described protocol
   defines how OSCORE is used in a group communication setting to
   provide source authentication for CoAP group requests, sent by a
   client to multiple servers, and for protection of the corresponding
   CoAP responses.  Group OSCORE also defines a pairwise mode where each
   member of the group can efficiently derive a symmetric pairwise key
   with any other member of the group for pairwise OSCORE communication.
   Group OSCORE can be used between endpoints communicating with CoAP or
   CoAP-mappable HTTP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-20"/>
        </reference>
        <reference anchor="I-D.ietf-core-coral">
          <front>
            <title>The Constrained RESTful Application Language (CoRAL)</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Thomas Fossati" initials="T." surname="Fossati">
              <organization>ARM</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <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-05"/>
        </reference>
        <reference anchor="I-D.ietf-core-groupcomm-bis">
          <front>
            <title>Group Communication for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <author fullname="Chonggang Wang" initials="C." surname="Wang">
              <organization>InterDigital</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <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-09"/>
        </reference>
        <reference anchor="I-D.ietf-core-target-attr">
          <front>
            <title>CoRE Target Attributes Registry</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="23" month="July" year="2023"/>
            <abstract>
              <t>   The Constrained RESTful Environments (CoRE) specifications apply Web
   technologies to constrained environments.  One important such
   technology is Web Linking (RFC 8288), which CoRE specifications use
   as the basis for a number of discovery protocols, such as the Link
   Format (RFC 6690) in CoAP's Resource Discovery Protocol (Section 7.2
   of RFC7252) and the Resource Directory (RD, RFC 9176).

   Web Links can have target attributes, the names of which are not
   generally coordinated by the Web Linking specification (Section 2.2
   of RFC 8288).  This document introduces an IANA registry for
   coordinating names of target attributes when used in CoRE.  It
   updates the RD Parameters IANA Registry created by RFC 9176 to
   coordinate with this registry.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-target-attr-05"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links. Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type. "RESTful" refers to the Representational State Transfer (REST) architecture. A well-known URI is defined as a default entry point for requesting the links hosted by a server. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8288">
          <front>
            <title>Web Linking</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This specification defines a model for the relationships between resources on the Web ("links") and the type of those relationships ("link relation types").</t>
              <t>It also defines the serialisation of such links in HTTP headers with the Link header field.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8288"/>
          <seriesInfo name="DOI" value="10.17487/RFC8288"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="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">
          <front>
            <title>Key Management for OSCORE Groups in ACE</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Jiye Park" initials="J." surname="Park">
              <organization>Universitaet Duisburg-Essen</organization>
            </author>
            <author fullname="Francesca Palombini" initials="F." surname="Palombini">
              <organization>Ericsson AB</organization>
            </author>
            <date day="6" month="March" year="2023"/>
            <abstract>
              <t>   This document defines an application profile of the ACE framework for
   Authentication and Authorization, to request and provision keying
   material in group communication scenarios that are based on CoAP and
   are secured with Group Object Security for Constrained RESTful
   Environments (Group OSCORE).  This application profile delegates the
   authentication and authorization of Clients, that join an OSCORE
   group through a Resource Server acting as Group Manager for that
   group.  This application profile leverages protocol-specific
   transport profiles of ACE to achieve communication security, server
   authentication and proof-of-possession for a key owned by the Client
   and bound to an OAuth 2.0 Access Token.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hartke-t2trg-coral-reef-04"/>
        </reference>
        <reference anchor="I-D.ietf-cose-cbor-encoded-cert">
          <front>
            <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Shahid Raza" initials="S." surname="Raza">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Joel Höglund" initials="J." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
              <organization>Nexus Group</organization>
            </author>
            <date day="7" month="July" year="2023"/>
            <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-06"/>
        </reference>
        <reference anchor="I-D.amsuess-core-cachable-oscore">
          <front>
            <title>Cacheable OSCORE</title>
            <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
         </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <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-07"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks. The state of a resource on a CoAP server can change over time. This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time. The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource. In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable. Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8995">
          <front>
            <title>Bootstrapping Remote Secure Key Infrastructure (BRSKI)</title>
            <author fullname="M. Pritikin" initials="M." surname="Pritikin"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="T. Eckert" initials="T." surname="Eckert"/>
            <author fullname="M. Behringer" initials="M." surname="Behringer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document specifies automated bootstrapping of an Autonomic Control Plane. To do this, a Secure Key Infrastructure is bootstrapped. This is done using manufacturer-installed X.509 certificates, in combination with a manufacturer's authorizing service, both online and offline. We call this process the Bootstrapping Remote Secure Key Infrastructure (BRSKI) protocol. Bootstrapping a new device can occur when using a routable address and a cloud service, only link-local connectivity, or limited/disconnected networks. Support for deployment models with less stringent security requirements is included. Bootstrapping is complete when the cryptographic identity of the new key infrastructure is successfully deployed to the device. The established secure connection can be used to deploy a locally issued certificate to the device as well.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8995"/>
          <seriesInfo name="DOI" value="10.17487/RFC8995"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices. Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
        <reference anchor="Fairhair" target="https://openconnectivity.org/wp-content/uploads/2019/11/fairhair_security_wp_march-2018.pdf">
          <front>
            <title>Security Architecture for the Internet of Things (IoT) in Commercial Buildings</title>
            <author>
              <organization>FairHair Alliance</organization>
            </author>
            <date year="2018" month="March"/>
          </front>
          <seriesInfo name="White Paper, ed. Piotr Polak" value=""/>
        </reference>
      </references>
    </references>
    <section anchor="use-case-example-coral">
      <name>Use Case Example With Full Discovery (CoRAL)</name>
      <t>This section provides the same use case example of <xref target="use-case-example"/>, but specified in CoRAL <xref target="I-D.ietf-core-coral"/>.</t>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The CT defines the application group "grp_R2-4-015", with resource /light and base address [ff05::5:1], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd
Content-Format: 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><![CDATA[
Res: 2.01 Created
Location-Path: /rd/501
]]></artwork>
      <t>Also, the CT defines a second application group "grp_schedule", with resource /schedule and base address [ff05::5:2], as follows.</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd?ep=grp_schedule&et=core.rd-group
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><![CDATA[
Res: 2.01 Created
Location-Path: /rd/502
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>Finally, the CT defines the corresponding security groups. In particular, assuming a Group Manager responsible for both security groups and with address [2001:db8::ab], the CT specifies:</t>
      <t>Request:  CT -&gt; RD</t>
      <artwork><![CDATA[
Req: POST coap://[2001:db8:4::ff]/rd?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><![CDATA[
Res: 2.01 Created
Location-Path: /rd/4521
]]></artwork>
      <artwork><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>The device with IP address [2001:db8:4::x] can retrieve the multicast IP address of the CoAP group used by the application group "grp_R2-4-015", by performing an endpoint lookup as shown below.</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 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><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/ep
  ?et=core.rd-group&ep=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 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><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>Consequently, the device learns the security groups it has to join. In particular, it does the following for app-gp="grp_R2-4-015".</t>
      <t>Request:  Joining node -&gt; RD</t>
      <artwork><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_R2-4-015
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 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><![CDATA[
Req: GET coap://[2001:db8:4::ff]/rd-lookup/res
  ?rt=core.osc.gm&app-gp=grp_schedule
]]></artwork>
      <t>Response:  RD -&gt; Joining Node</t>
      <artwork><![CDATA[
Res: 2.05 Content
Content-Format: 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><![CDATA[
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
]]></artwork>
      <t>After this last discovery step, the device can ask permission to join the security groups, and effectively join them through the Group Manager, e.g., according to <xref target="I-D.ietf-ace-key-groupcomm-oscore"/>.</t>
    </section>
    <section numbered="false" anchor="acknowldegment">
      <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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
x7RSAd6eSYw2h9nMUqFb7Ml9YjAWpkw9Zwu86svKdJq6bZSn5saxHz4UDVF9
6bTufpwpA03dTc/xalnwJDu+n/XNN9+IT/xbcr+R7BkXWX2y0CV7JRmN3/2Q
zRHdCdckAh16aPkt1a1nDHOvc2zbo14gR3CJKeWHGb65geyrUgqQqidsVkqD
c0XzEFrPc6qqSMJRZ9yhD6467D44vUH/sd2tQqWJ5XZnW4Jao60oUEp7YyRL
/fb07nh7NAhrbk/vqu3R49kdSjt0inMOojwZ39E+9fxh75Qrv/0/7TalM8Hi
dZtgDU6dFr5G82gxZQSZ2HAlub83uo8rewaeRcXGfm1ykOayFe4F+8PQjxr/
PZhRYBCBIbTXEo9a5gBRjeAualbV0Mgl7dslTKM3fSL0teRXYdw2tUuOnKHI
hveVhvKGkuXPIeqd3d77+6Pqdvt5o/EipIOqJQl3VV1s+cwEWRAcL/AOBHiZ
cqS6IbitldeKsIOppaEXvzPwuX3PblMszro1dIez/4m9rVYkjqr/2GTC3LEQ
SlBmo90ndwOlHnltKI1AuSOW6t63ojgtuAZOLVZBnpHpi144UjJ54ZEM0tgm
ZjPbZNua0iXWw8tzKJhFYUN0zOc6+WIyI/iTHbzKYq6Y6FNyJhXM5teHrZDz
d1j15bGukrnPn67SOZ5y+s0h6mpl1FLD7t3OsEaReSi5s+JH369wnNxrVD+y
ZrkmF9zDaobeeZU11nGX1F9dHWnJ6L5YoFAC7yiNaxbCa1/uiur3k3AWRnjH
UEUXlNvbdcf/uiEN/xl7X83rd733Pbv3Bm032vveVXt/56r3ZUAZK9JzNZXW
jqJzKEMpPBBcA0cbe8RDg2YVpYuZbsaiSkyr1DMp5tyLuFG/D2sGOZLqrojv
irMg15Y9bz6V/v70iitH2tVLKUsC6+yi6x7f1T5dU07cyz5VOBTX3qeC67CG
k3CnEkVnaMJMRKiVbIUCXjPoUQZaMHhJ4hybnFAKcEXBuW4vNJlwIzIw+/WT
eKA+NTcKFQ7Wq5uu3czSunezPbA94QaqVl6lsXRvOA1ie+R9r9qamwX4367o
I/bYyx6qRuxU/K3uriSojvbf7FdBhGUqNLXb9GEaFLkvGPEryIU4lOkQkuDU
4nAc5knaF+9AdmeYy5lH2HWJ2p+Ytk5kYjQ/fPjq5PDVi48fm07ndRjCTVJi
csDNo3Klhowk9SRR7aXO0mA+5Z4EVEJurhzEO2/t1d8P9Cr50iFdx0TN7bFC
BvFCqaBzTtuZtv4+AgAt1EyPPm6WJ3QutjZt6bAzf+/xY6ILXyioF98EMxAi
VUVCjQPbsKoPM00o7pm4RX9062XlsW0/HIBbpmr4lDVed1mh/569WzZXx8W/
zvjii/d5gyDCTe2LX2GZ7V/gz+9EEiDv3iSxbOw79sBBkAfqY4/vce9O+ba9
fXOVX9XWcRF22973d82dC22QuFma0Nk6dU0IPTdIjg/t9WLuU6poxOyz3znD
gbW082ZStfUskxvfAYAT4W35m/oGcpg5rIr4qOweSjjvwjS+jYWIpsHNLkkZ
pYAhCTx7dHj6wt3PQjsoZ3tL4LPeWAU+UlvRMKyCvVz94i/6lgHHO16rwEYJ
jJe/OXfGcXeqW55fVyLWwbDG1cR3A5itiawDzbncvYSkio1F6aNfwdg259t1
2dYtQ68rNutgr7oP8U7Q6JaO1iLSv09Q8Tr53BVw3gWA6pbtOgDx8mS3KagB
DTcSr72+K5hWIK0aV3cE0J1xQYx6/k45Qdcj18FfuBjzTpjArYm+ARP4IN4F
bDehf4LqDmjNveN+feK/K2jGYMCAE7CShPD7tYkf3KT5QpUWcX9KvAhqpA3T
24Y/lYAUmK2N3uxM1i1BPyb4McJp1Qq4DEpPgdWi6r1ZQEV00aeB79nE7XZb
DIPR+dql/xtULrVZeQRAVV4p/05XxDtlWLKmCosa25QOFHzkg9q2+MEc+yka
wari60sRV206/DaOBq3T8OBBsUGBXpQ+qcP9DtwAXV3Lg8LBHi7pcM7x4LEd
r7jjqqb8XwrHXJK4smrsz6aZXsXpLlO9U0EHhTqeO6KG+yxP+08v4vkM7gy6
+9OJ8MFO947OKrpieMUtMV4e4M5hNdmCIqw2V3AnvH3PJUVf6ij+qnUU96Tn
yhhw5AU3jKrsFeUyrbh+xyjHICsxanWfqC+lHX9qacdfiRx7VeRo5fKNybF3
DXK8U6n8pUzkTstE/qMst7u01WoF9H9kVcvfhazWMrLvzay+U0H7tyrC2R9h
/8hIjs+ofQ0FRwP+bCzps4+ND31VdCLHz5px0lQVOFwdgdeAxCP4jq6mCeJz
MQhSPMEvvkMSj+OW+CEKFpl4CYrlXLbEv4JwJsW/4H+x/N+WeJHiAexsFIh3
QZTMhsBKLXGAPUaOk2HIFS3wsDgZTYNgrA+JhRQpZ5DxCSQTDAarg2jUVCEp
XtFijj+jjsO7gvgcLxt4Px29efP2p33TEmAg0T5sv5HvsWVJ8m+8nmlwfHR6
dHI4eKotwpe9rd6W+frk6MXRSftlAsvb+D7FDiPBGZA3zf1kt7e329vkg9/q
7cOj0/ZBeBbmQSRehrC5R7M53thyBCZLGNCFkPuD06OfDjuN/w9xIOnsvPEA
AA==

-->

</rfc>
