<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.0.40 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY I-D.ietf-core-object-security SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-object-security.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7252 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
<!ENTITY RFC8032 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
<!ENTITY RFC8152 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8152.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY I-D.ietf-ace-oauth-authz SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oauth-authz.xml">
<!ENTITY I-D.ietf-ace-dtls-authorize SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-dtls-authorize.xml">
<!ENTITY I-D.amsuess-core-repeat-request-tag SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.amsuess-core-repeat-request-tag.xml">
<!ENTITY I-D.aragon-ace-ipsec-profile SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.aragon-ace-ipsec-profile.xml">
<!ENTITY I-D.ietf-ace-oscore-profile SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ace-oscore-profile.xml">
<!ENTITY I-D.somaraju-ace-multicast SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.somaraju-ace-multicast.xml">
<!ENTITY I-D.tiloca-ace-oscoap-joining SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.tiloca-ace-oscoap-joining.xml">
<!ENTITY RFC2093 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2093.xml">
<!ENTITY RFC2094 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2094.xml">
<!ENTITY RFC2627 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2627.xml">
<!ENTITY RFC3376 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3376.xml">
<!ENTITY RFC3740 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3740.xml">
<!ENTITY RFC3810 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3810.xml">
<!ENTITY RFC4046 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4046.xml">
<!ENTITY RFC4301 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC4535 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4535.xml">
<!ENTITY RFC4944 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4944.xml">
<!ENTITY RFC4949 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4949.xml">
<!ENTITY RFC6282 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6282.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC6749 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC7390 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7390.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-core-oscore-groupcomm-00" category="std">

  <front>
    <title>Secure group communication for CoAP</title>

    <author initials="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE SICS AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>SE-16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Goeran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>SE-16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>SE-16440 Stockholm</code>
          <country>Sweden</country>
        </postal>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Park" fullname="Jiye Park">
      <organization>Universitaet Duisburg-Essen</organization>
      <address>
        <postal>
          <street>Schuetzenbahn 70</street>
          <city>Essen</city>
          <code>45127</code>
          <country>Germany</country>
        </postal>
        <email>ji-ye.park@uni-due.de</email>
      </address>
    </author>

    <date year="2018" month="February" day="12"/>

    <area>Applications</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes a method for protecting group communication over the Constrained Application Protocol (CoAP). The proposed approach relies on Object Security for Constrained RESTful Environments (OSCORE) and the CBOR Object Signing and Encryption (COSE) format. All security requirements fulfilled by OSCORE are maintained for multicast OSCORE request messages and related OSCORE response messages. Source authentication of all messages exchanged within the group is ensured, by means of digital signatures produced through private keys of sender devices and embedded in the protected CoAP messages.</t>



    </abstract>


  </front>

  <middle>


<section anchor="intro" title="Introduction">

<t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> is a web transfer protocol specifically designed for constrained devices and networks <xref target="RFC7228"/>.</t>

<t>Group communication for CoAP <xref target="RFC7390"/> addresses use cases where deployed devices benefit from a group communication model, for example to reduce latencies and improve performance. Use cases include lighting control, integrated building control, software and firmware updates, parameter and configuration updates, commissioning of constrained networks, and emergency multicast (see <xref target="sec-use-cases"/>). Furthermore, <xref target="RFC7390"/> recognizes the importance to introduce a secure mode for CoAP group communication. This specification defines such a mode.</t>

<t>Object Security for Constrained RESTful Environments (OSCORE)<xref target="I-D.ietf-core-object-security"/> describes a security protocol based on the exchange of protected CoAP messages. OSCORE builds on CBOR Object Signing and Encryption (COSE) <xref target="RFC8152"/> and provides end-to-end encryption, integrity, and replay protection between a sending endpoint and a receiving endpoint across intermediary nodes. To this end, a CoAP message is protected by including payload (if any), certain options, and header fields in a COSE object, which finally replaces the authenticated and encrypted fields in the protected message.</t>

<t>This document describes multicast OSCORE, providing end-to-end security of CoAP messages exchanged between members of a multicast group. In particular, the described approach defines how OSCORE should be used in a group communication context, while fulfilling the same security requirements. That is, end-to-end security is assured for multicast CoAP requests sent by multicaster nodes to the group and for related CoAP responses sent as reply by multiple listener nodes. Multicast OSCORE provides source authentication of all CoAP messages exchanged within the group, by means of digital signatures produced through private keys of sender devices and embedded in the protected CoAP messages. As in OSCORE, it is still possible to simultaneously rely on DTLS to protect hop-by-hop communication between a multicaster node and a proxy (and vice versa), and between a proxy and a listener node (and vice versa).</t>

<section anchor="terminology" title="Terminology">

<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>Readers are expected to be familiar with the terms and concepts described in CoAP <xref target="RFC7252"/>; group communication for CoAP <xref target="RFC7390"/>; COSE and counter signatures <xref target="RFC8152"/>.</t>

<t>Readers are also expected to be familiar with the terms and concepts for protection and processing of CoAP messages through OSCORE, such as "Security Context", "Master Secret" and "Master Salt", defined in <xref target="I-D.ietf-core-object-security"/>.</t>

<t>Terminology for constrained environments, such as "constrained device", "constrained-node network", is defined in <xref target="RFC7228"/>.</t>

<t>This document refers also to the following terminology.</t>

<t><list style="symbols">
  <t>Keying material: data that is necessary to establish and maintain secure communication among member of a multicast group. This includes, for instance, keys and IVs <xref target="RFC4949"/>.</t>
  <t>Group Manager (GM): entity responsible for creating a multicast group, establishing and provisioning Security Contexts among authorized group members, as well as managing the joining of new group members and the leaving of current group members. A GM can be responsible for multiple multicast groups. Besides, a GM is not required to be an actual group member and to take part in the group communication. The GM is also responsible for renewing/updating Security Contexts and related keying material in the multicast groups of its competence. Each endpoint in a multicast group securely communicates with the respective GM.</t>
  <t>Multicaster: member of a multicast group that sends multicast CoAP messages intended for all members of the group. In a 1-to-N multicast group, only a single multicaster transmits data to the group; in an M-to-N multicast group (where M and N do not necessarily have the same value), M group members are multicasters. According to <xref target="RFC7390"/>, any possible proxy entity is supposed to know about the multicasters in the group and to not perform aggregation of response messages. Also, every multicaster expects and is able to handle multiple response messages associated to a given multicast request message that it has previously sent to the group.</t>
  <t>Listener: member of a multicast group that receives multicast CoAP messages when listening to the multicast IP address associated to the multicast group. A listener may reply back, by sending a response message to the multicaster which has sent the multicast message.</t>
  <t>Pure listener: member of a multicast group that is configured as listener and never replies back to multicasters after receiving multicast messages.</t>
  <t>Endpoint ID: identifier assigned by the Group Manager to an endpoint upon joining the group as a new member, unless configured exclusively as pure listener. The Group Manager generates and manages Endpoint IDs in order to ensure their uniqueness within a same multicast group. That is, within a single multicast group, the same Endpoint ID cannot be associated to more endpoints at the same time. Endpoint IDs are not necessarily related to any protocol-relevant identifiers, such as IP addresses.</t>
  <t>Group request: multicast CoAP request message sent by a multicaster in the group to all listeners in the group through multicast IP, unless otherwise specified.</t>
  <t>Source authentication: evidence that a received message in the group originated from a specifically identified group member. This also provides assurances that the message was not tampered with either by a different group member or by a non-group member.</t>
</list></t>

</section>
</section>
<section anchor="sec-requirements" title="Assumptions and Security Objectives">

<t>This section presents a set of assumptions and security objectives for the approach described in this document.</t>

<section anchor="assumptions" title="Assumptions">

<t>The following assumptions are assumed to be already addressed and are out of the scope of this document.</t>

<t><list style="symbols">
  <t>Multicast communication topology: this document considers both 1-to-N (one multicaster and multiple listeners) and M-to-N (multiple multicasters and multiple listeners) communication topologies. The 1-to-N communication topology is the simplest group communication scenario that would serve the needs of a typical low-power and lossy network (LLN). For instance, in a typical lighting control use case, a single switch is the only entity responsible for sending commands to a group of lighting devices. In more advanced lighting control use cases, a M-to-N communication topology would be required, for instance in case multiple sensors (presence or day-light) are responsible to trigger events to a group of lighting devices.</t>
  <t>Multicast group size: security solutions for group communication should be able to adequately support different, possibly large, group sizes. Group size is the combination of the number of multicasters and listeners in a multicast group, with possible overlap (i.e. a multicaster may also be a listener at the same time). In the use cases mentioned in this document, the number of multicasters (normally the controlling devices) is expected to be much smaller than the number of listeners (i.e. the controlled devices). A security solution for group communication that supports 1 to 50 multicasters would be able to properly cover the group sizes required for most use cases that are relevant for this document. The total number of group members is expected to be in the range of 2 to 100 devices. Groups larger than that should be divided into smaller independent multicast groups, e.g. by grouping lights in a building on a per floor basis.</t>
  <t>Establishment and management of Security Contexts: a Security Context must be established among the group members by the Group Manager which manages the multicast group. A secure mechanism must be used to generate, revoke and (re-)distribute keying material, multicast security policies and security parameters in the multicast group. The actual establishment and management of the Security Context is out of the scope of this document, and it is anticipated that an activity in IETF dedicated to the design of a generic key management scheme will include this feature, preferably based on <xref target="RFC3740"/><xref target="RFC4046"/><xref target="RFC4535"/>.</t>
  <t>Multicast data security ciphersuite: all group members MUST agree on a ciphersuite to provide authenticity, integrity and confidentiality of messages in the multicast group. The ciphersuite is specified as part of the Security Context.</t>
  <t>Backward security: a new device joining the multicast group should not have access to any old Security Contexts used before its joining. This ensures that a new group member is not able to decrypt confidential data sent before it has joined the group. The adopted key management scheme should ensure that the Security Context is updated to ensure backward confidentiality. The actual mechanism to update the Security Context and renew the group keying material upon a group member's joining has to be defined as part of the group key management scheme.</t>
  <t>Forward security: entities that leave the multicast group should not have access to any future Security Contexts or message exchanged within the group after their leaving. This ensures that a former group member is not able to decrypt confidential data sent within the group anymore. Also, it ensures that a former member is not able to send encrypted and/or integrity protected messages to the group anymore. The actual mechanism to update the Security Context and renew the group keying material upon a group member's leaving has to be defined as part of the group key management scheme.</t>
</list></t>

</section>
<section anchor="security-objectives" title="Security Objectives">

<t>The approach described in this document aims at fulfilling the following security objectives:</t>

<t><list style="symbols">
  <t>Data replay protection: replayed group request messages or response messages MUST be detected.</t>
  <t>Group-level data confidentiality: messages sent within the multicast group SHALL be encrypted if privacy sensitive data is exchanged within the group. In fact, some control commands and/or associated responses could pose unforeseen security and privacy risks to the system users, when sent as plaintext. This document considers group-level data confidentiality since messages are encrypted at a group level, i.e. in such a way that they can be decrypted by any member of the multicast group, but not by an external adversary or other external entities.</t>
  <t>Source authentication: messages sent within the multicast group SHALL be authenticated. That is, it is essential to ensure that a message is originated by a member of the group in the first place (group authentication), and in particular by a specific member of the group (source authentication).</t>
  <t>Message integrity: messages sent within the multicast group SHALL be integrity protected. That is, it is essential to ensure that a message has not been tampered with by an external adversary or other external entities which are not group members.</t>
  <t>Message ordering: it MUST be possible to determine the ordering of messages coming from a single sender endpoint. In accordance with OSCORE <xref target="I-D.ietf-core-object-security"/>, this results in providing relative freshness of group requests and absolute freshness of responses. It is not required to determine ordering of messages from different sender endpoints.</t>
</list></t>

</section>
</section>
<section anchor="sec-context" title="OSCORE Security Context">

<t>To support multicast communication secured with OSCORE, each endpoint registered as member of a multicast group maintains a Security Context as defined in Section 3 of <xref target="I-D.ietf-core-object-security"/>. In particular, each endpoint in a group stores:</t>

<t><list style="numbers">
  <t>one Common Context, received from the Group Manager upon joining the multicast group and shared by all the endpoints in the group. All the endpoints in the group agree on the same COSE AEAD algorithm. In addition to what is defined in Section 3 of <xref target="I-D.ietf-core-object-security"/>, the Common Context includes the following information.  <list style="symbols">
      <t>Group Identifier (Gid). Variable length byte string identifying the Security Context and used as Master Salt parameter in the derivation of keying material. The Gid is used together with the multicast IP address of the group to retrieve the Security Context, upon receiving a secure multicast request message (see <xref target="ssec-verify-request"/>). The Gid associated to a multicast group is determined by the responsible Group Manager. The choice of the Gid for a given group's Security Context is application specific. However, a Gid MUST be random as well as long enough, in order to achieve a negligible probability of collisions between Group Identifiers from different Group Managers. It is the role of the application to specify how to handle possible collisions. An example of specific formatting of the Group Identifier that would follow this specification is given in <xref target="gid-ex"/>.</t>
      <t>Counter signature algorithm. Value identifying the algorithm used for source authenticating messages sent within the group, by means of a counter signature (see Section 4.5 of <xref target="RFC8152"/>). Its value is immutable once the Security Context is established. All the endpoints in the group agree on the same counter signature algorithm. The Group Manager MUST define a list of supported signature algorithms as part of the group communication policy. Such a list MUST include the EdDSA signature algorithm ed25519 <xref target="RFC8032"/>.</t>
    </list></t>
  <t>one Sender Context, unless the endpoint is configured exclusively as pure listener. The Sender Context is used to secure outgoing messages and is initialized according to Section 3 of <xref target="I-D.ietf-core-object-security"/>, once the endpoint has joined the multicast group. In practice, the sender endpoint shares the same symmetric keying material stored in the Sender Context with all the recipient endpoints receiving its outgoing OSCORE messages. The Sender ID in the Sender Context coincides with the Endpoint ID received upon joining the group. It is responsibility of the Group Manager to assign Endpoint IDs to new joining endpoints in such a way that uniquess is ensured within the multicast group. Besides, in addition to what is defined in <xref target="I-D.ietf-core-object-security"/>, the Sender Context stores also the endpoint's public-private key pair.</t>
  <t>one Recipient Context for each distinct endpoint from which messages are received, used to process such incoming secure messages. The endpoint creates a new Recipient Context upon receiving an incoming message from another endpoint in the group for the first time. In practice, the recipient endpoint shares the symmetric keying material stored in the Recipient Context with the associated other endpoint from which secure messages are received. Besides, in addition to what is defined in <xref target="I-D.ietf-core-object-security"/>, each Recipient Context stores also the public key of the associated other endpoint from which secure messages are received.</t>
</list></t>

<t>Upon receiving a secure CoAP message, a recipient endpoint relies on the sender endpoint's public key, in order to verify the counter signature conveyed in the COSE Object.</t>

<t>If not already stored in the Recipient Context associated to the sender endpoint, the recipient endpoint retrieves the public key from a trusted key repository. In such a case, the correct binding between the sender endpoint and the retrieved public key MUST be assured, for instance by means of public key certificates.</t>

<t>It is RECOMMENDED that the Group Manager acts as trusted key repository, and hence is configured to store public keys of group members and provide them to other members of the same group upon request. Possible approaches to provision public keys upon joining the group and to retrieve public keys of group members are discussed in <xref target="ssec-provisioning-of-public-keys"/>.</t>

<t>The Sender Key/IV stored in the Sender Context and the Recipient Keys/IVs stored in the Recipient Contexts are derived according to the same scheme defined in Section 3.2 of <xref target="I-D.ietf-core-object-security"/>.</t>

<section anchor="sec-group-key-management" title="Management of Group Keying Material">

<t>The approach described in this specification should take into account the risk of compromise of group members. Such a risk is reduced when multicast groups are deployed in physically secured locations, like lighting inside office buildings. Nevertheless, the adoption of key management schemes for secure revocation and renewal of Security Contexts and group keying material should be considered.</t>

<t>Consistently with the security assumptions in <xref target="sec-requirements"/>, it is RECOMMENDED to adopt a group key management scheme, and securely distribute a new value for the Master Secret parameter of the group's Security Context, before a new joining endpoint is added to the group or after a currently present endpoint leaves the group. This is necessary in order to preserve backward security and forward security in the multicast group. The Group Manager responsible for the group is entrusted with such a task.</t>

<t>In particular, the Group Manager MUST distribute also a new Group Identifier (Gid) for that group, together with a new value for the Master Secret parameter. An example of how this can be done is provided in <xref target="gid-ex"/>. Then, each group member re-derives the keying material stored in its own Sender Context and Recipient Contexts as described in <xref target="sec-context"/>, using the updated Group Identifier.</t>

<t>Especially in dynamic, large-scale, multicast groups where endpoints can join and leave at any time, it is important that the considered group key management scheme is efficient and highly scalable with the group size, in order to limit the impact on performance due to the Security Context and keying material update.</t>

</section>
</section>
<section anchor="sec-cose-object" title="The COSE Object">

<t>When creating a protected CoAP message, an endpoint in the group computes the COSE object using the untagged COSE_Encrypt0 structure <xref target="RFC8152"/> as defined in Section 5 of <xref target="I-D.ietf-core-object-security"/>, with the following modifications.</t>

<t><list style="symbols">
  <t>The value of the "kid" parameter in the "unprotected" field of responses SHALL be set to the Sender ID of the endpoint transmitting the group message.</t>
  <t>The "unprotected" field of the "Headers" field SHALL additionally include the following parameters:  <list style="symbols">
      <t>gid : its value is set to the Group Identifier (Gid) of the group's Security Context. This parameter MAY be omitted if the message is a CoAP response.</t>
      <t>countersign : its value is set to the counter signature of the COSE object (Appendix C.3.3 of <xref target="RFC8152"/>), computed by the endpoint by means of its own private key as described in Section 4.5 of <xref target="RFC8152"/>.</t>
    </list></t>
</list></t>

<t>In particular, "gid" is included as COSE header parameter as defined in <xref target="tab-1"/>.</t>

<figure title="Additional common header parameter for the COSE object" anchor="tab-1"><artwork align="center"><![CDATA[
+------+-------+------------+----------------+-------------------+
| name | label | value type | value registry | description       |
+------+-------+------------+----------------+-------------------+
| gid  | TBD   | bstr       |                | Identifies the    |
|      |       |            |                | OSCORE group      |
|      |       |            |                | Security Context  |
+------+-------+------------+----------------+-------------------+
]]></artwork></figure>

<t><list style="symbols">
  <t>The Additional Authenticated Data (AAD) considered to compute the COSE object is extended, in order to include also the Group Identifier (Gid) of the Security Context used to protect the request message. In particular, the "external_aad" in Section 5.3 of <xref target="I-D.ietf-core-object-security"/> SHALL include also gid as follows:</t>
</list></t>

<figure><artwork type="CDDL"><![CDATA[
external_aad = [
   version : uint,
   alg : int,
   request_kid : bstr,
   request_piv : bstr,
   gid : bstr,
   options : bstr
]
]]></artwork></figure>

<t><list style="symbols">
  <t>The OSCORE compression defined in Section 8 of <xref target="I-D.ietf-core-object-security"/> is used, with the following additions for the encoding of the object-security option.  <list style="symbols">
      <t>The fourth least significant bit of the first byte of the object-security option value SHALL be set to 1, to indicate the presence of the "kid" parameter for both multicast requests and responses.</t>
      <t>The fifth least significant bit of the first byte MUST be set to 1 for multicast requests, to indicate the presence of the Context Hint in the OSCORE payload. The Context Hint flag MAY be set to 1 for responses.</t>
      <t>The sixth least significant bit of the first byte is set to 1 if the "countersign" parameter is present, or to 0 otherwise. In order to ensure source authentication of group messages as described in this specification, this bit SHALL be set to 1.</t>
      <t>The Context Hint value encodes the Group Identifier value (Gid) of the group's Security Context.</t>
      <t>The following q bytes (q given by the counter signature algorithm specified in the Security Context) encode the value of the "countersign" parameter including the counter signature of the COSE object.</t>
      <t>The remaining bytes in the Object-Security value encode the value of the "kid" parameter, which is always present both in multicast requests and in responses.</t>
    </list></t>
</list></t>

<figure title="Object-Security Value" anchor="fig-option-value"><artwork align="center"><![CDATA[
 0 1 2 3 4 5 6 7 <----------- n bytes -----------> <-- 1 byte -->
+-+-+-+-+-+-+-+-+---------------------------------+--------------+
|0 0|1|h|1|  n  |        Partial IV (if any)      |  s (if any)  |
+-+-+-+-+-+-+-+-+---------------------------------+--------------+

<------ s bytes ------> <--------- q bytes --------->
-----------------------+-----------------------------+-----------+
      Gid (if any)     |         countersign         |    kid    | 
-----------------------+-----------------------------+-----------+
]]></artwork></figure>

</section>
<section anchor="mess-processing" title="Message Processing">

<t>Each multicast request message and response message is protected and processed as specified in <xref target="I-D.ietf-core-object-security"/>, with the modifications described in the following sections.</t>

<t>Furthermore, endpoints in the multicast group locally perform error handling and processing of invalid messages according to the same principles adopted in <xref target="I-D.ietf-core-object-security"/>. However, a receiver endpoint MUST stop processing and silently reject any message which is malformed and does not follow the format specified in <xref target="sec-cose-object"/>, without sending back any error message. This prevents listener endpoints from sending multiple error messages to a multicaster endpoint, so avoiding the risk of flooding the multicast group.</t>

<section anchor="ssec-protect-request" title="Protecting the Request">

<t>A multicaster endpoint transmits a secure multicast request message as described in Section 7.1 of <xref target="I-D.ietf-core-object-security"/>, with the following modifications.</t>

<t><list style="numbers">
  <t>The multicaster endpoint stores the association Token - Group Identifier. That is, it SHALL be able to find the correct Security Context used to protect the multicast request and verify the response(s) by using the CoAP Token used in the message exchange.</t>
  <t>The multicaster computes the COSE object as defined in <xref target="sec-cose-object"/> of this specification.</t>
</list></t>

</section>
<section anchor="ssec-verify-request" title="Verifying the Request">

<t>Upon receiving a secure multicast request message, a listener endpoint proceeds as described in Section 7.2 of <xref target="I-D.ietf-core-object-security"/>, with the following modifications.</t>

<t><list style="numbers">
  <t>The listener endpoint retrieves the Group Identifier from the "gid" parameter of the received COSE object. Then, it uses the Group Identifier together with the destination IP address of the multicast request message to identify the correct group's Security Context.</t>
  <t>The listener endpoint retrieves the Sender ID from the "kid" parameter of the received COSE object. Then, the Sender ID is used to retrieve the correct Recipient Context associated to the multicaster endpoint and used to process the request message. When receiving a secure multicast CoAP request message from that multicaster endpoint for the first time, the listener endpoint creates a new Recipient Context, initializes it according to Section 3 of <xref target="I-D.ietf-core-object-security"/>, and includes the multicaster endpoint's public key.</t>
  <t>The listener endpoint retrieves the corresponding public key of the multicaster endpoint from the associated Recipient Context. Then, it verifies the counter signature and decrypts the request message.</t>
</list></t>

</section>
<section anchor="ssec-protect-response" title="Protecting the Response">

<t>A listener endpoint that has received a multicast request message may reply with a secure response message, which is protected as described in Section 7.3 of <xref target="I-D.ietf-core-object-security"/>, with the following modifications.</t>

<t><list style="numbers">
  <t>The listener endpoint computes the COSE object as defined in <xref target="sec-cose-object"/> of this specification.</t>
</list></t>

</section>
<section anchor="ssec-verify-response" title="Verifying the Response">

<t>Upon receiving a secure response message, a multicaster endpoint proceeds as described in Section 7.4 of <xref target="I-D.ietf-core-object-security"/>, with the following modifications.</t>

<t><list style="numbers">
  <t>The multicaster endpoint retrieves the Security Context by using the Token of the received response message.</t>
  <t>The multicaster endpoint retrieves the Sender ID from the "kid" parameter of the received COSE object. Then, the Sender ID is used to retrieve the correct Recipient Context associated to the listener endpoint and used to process the response message. When receiving a secure CoAP response message from that listener endpoint for the first time, the multicaster endpoint creates a new Recipient Context, initializes it according to Section 3 of <xref target="I-D.ietf-core-object-security"/>, and includes the listener endpoint's public key.</t>
  <t>The multicaster endpoint retrieves the corresponding public key of the listener endpoint from the associated Recipient Context. Then, it verifies the counter signature and decrypts the response message.</t>
</list></t>

<t>The mapping between response messages from listener endpoints and the associated multicast request message from a multicaster endpoint relies on the 3-tuple (Group ID, Sender ID, Partial IV) associated to the secure multicast request message. This is used by listener endpoints as part of the Additional Authenticated Data when protecting their own response message, as described in <xref target="sec-cose-object"/>.</t>

</section>
</section>
<section anchor="sec-synch-seq-num" title="Synchronization of Sequence Numbers">

<t>Upon joining the multicast group, new listeners are not aware of the sequence number values currently used by different multicasters to transmit multicast request messages. This means that, when such listeners receive a secure multicast request from a given multicaster for the first time, they are not able to verify if that request is fresh and has not been replayed. The same applies when a listener endpoint loses synchronization with sequence numbers of multicasters, for instance after a device reboot.</t>

<t>The exact way to address this issue depends on the specific use case and its synchronization requirements. The Group Manager should define also how to handle synchronization of sequence numbers, as part of the policies enforced in the multicast group. In particular, the Group Manager can suggest to single specific listener endpoints how they can exceptionally behave in order to synchronize with sequence numbers of multicasters. <xref target="synch-ex"/> describes three possible approaches that can be considered.</t>

</section>
<section anchor="sec-security-considerations" title="Security Considerations">

<t>The same security considerations from OSCORE (Section 11 of <xref target="I-D.ietf-core-object-security"/>) apply to this specification. Additional security aspects to be taken into account are discussed below.</t>

<section anchor="ssec-group-level-security" title="Group-level Security">

<t>The approach described in this document relies on commonly shared group keying material to protect communication within a multicast group. This means that messages are encrypted at a group level (group-level data confidentiality), i.e. they can be decrypted by any member of the multicast group, but not by an external adversary or other external entities.</t>

<t>In addition, it is required that all group members are trusted, i.e. they do not forward the content of group messages to unauthorized entities. However, in many use cases, the devices in the multicast group belong to a common authority and are configured by a commissioner. For instance, in a professional lighting scenario, the roles of multicaster and listener are configured by the lighting commissioner, and devices strictly follow those roles.</t>

</section>
</section>
<section anchor="iana" title="IANA Considerations">

<t>TBD. Header parameter 'gid'.</t>

</section>
<section anchor="acknowldegment" title="Acknowledgments">
<t>The authors sincerely thank Stefan Beck, Rolf Blom, Carsten Bormann, Klaus Hartke, Richard Kelsey, John Mattsson, Jim Schaad and Ludwig Seitz for their feedback and comments.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&I-D.ietf-core-object-security;
&RFC2119;
&RFC7252;
&RFC8032;
&RFC8152;
&RFC8174;


    </references>

    <references title='Informative References'>

&I-D.ietf-ace-oauth-authz;
&I-D.ietf-ace-dtls-authorize;
&I-D.amsuess-core-repeat-request-tag;
&I-D.aragon-ace-ipsec-profile;
&I-D.ietf-ace-oscore-profile;
&I-D.somaraju-ace-multicast;
&I-D.tiloca-ace-oscoap-joining;
&RFC2093;
&RFC2094;
&RFC2627;
&RFC3376;
&RFC3740;
&RFC3810;
&RFC4046;
&RFC4301;
&RFC4535;
&RFC4944;
&RFC4949;
&RFC6282;
&RFC6347;
&RFC6749;
&RFC7228;
&RFC7390;


    </references>


<section anchor="sec-use-cases" title="List of Use Cases">

<t>Group Communication for CoAP <xref target="RFC7390"/> provides the necessary background for multicast-based CoAP communication, with particular reference to low-power and lossy networks (LLNs) and resource constrained environments. The interested reader is encouraged to first read <xref target="RFC7390"/> to understand the non-security related details. This section discusses a number of use cases that benefit from secure group communication. Specific security requirements for these use cases are discussed in <xref target="sec-requirements"/>.</t>

<t><list style="symbols">
  <t>Lighting control: consider a building equipped with IP-connected lighting devices, switches, and border routers. The devices are organized into groups according to their physical location in the building. For instance, lighting devices and switches in a room or corridor can be configured as members of a single multicast group. Switches are then used to control the lighting devices by sending on/off/dimming commands to all lighting devices in a group, while border routers connected to an IP network backbone (which is also multicast-enabled) can be used to interconnect routers in the building. Consequently, this would also enable logical multicast groups to be formed even if devices in the lighting group may be physically in different subnets (e.g. on wired and wireless networks). Connectivity between ligthing devices may be realized, for instance, by means of IPv6 and (border) routers supporting 6LoWPAN <xref target="RFC4944"/><xref target="RFC6282"/>. Group communication enables synchronous operation of a group of connected lights, ensuring that the light preset (e.g. dimming level or color) of a large group of luminaires are changed at the same perceived time. This is especially useful for providing a visual synchronicity of light effects to the user. Devices may reply back to the switches that issue on/off/dimming commands, in order to report about the execution of the requested operation (e.g. OK, failure, error) and their current operational status.</t>
  <t>Integrated building control: enabling Building Automation and Control Systems (BACSs) to control multiple heating, ventilation and air-conditioning units to pre-defined presets. Controlled units can be organized into multicast groups in order to reflect their physical position in the building, e.g. devices in the same room can be configured as members of a single multicast group. Furthermore, controlled units are expected to possibly reply back to the BACS issuing control commands, in order to report about the execution of the requested operation (e.g. OK, failure, error) and their current operational status.</t>
  <t>Software and firmware updates: software and firmware updates often comprise quite a large amount of data. This can overload a LLN that is otherwise typically used to deal with only small amounts of data, on an infrequent base. Rather than sending software and firmware updates as unicast messages to each individual device, multicasting such updated data to a larger group of devices at once displays a number of benefits. For instance, it can significantly reduce the network load and decrease the overall time latency for propagating this data to all devices. Even if the complete whole update process itself is secured, securing the individual messages is important, in case updates consist of relatively large amounts of data. In fact, checking individual received data piecemeal for tampering avoids that devices store large amounts of partially corrupted data and that they detect tampering hereof only after all data has been received. Devices receiving software and firmware updates are expected to possibly reply back, in order to provide a feedback about the execution of the update operation (e.g. OK, failure, error) and their current operational status.</t>
  <t>Parameter and configuration update: by means of multicast communication, it is possible to update the settings of a group of similar devices, both simultaneously and efficiently. Possible parameters are related, for instance, to network load management or network access controls. Devices receiving parameter and configuration updates are expected to possibly reply back, to provide a feedback about the execution of the update operation (e.g. OK, failure, error) and their current operational status.</t>
  <t>Commissioning of LLNs systems: a commissioning device is responsible for querying all devices in the local network or a selected subset of them, in order to discover their presence, and be aware of their capabilities, default configuration, and operating conditions. Queried devices displaying similarities in their capabilities and features, or sharing a common physical location can be configured as members of a single multicast group. Queried devices are expected to reply back to the commissioning device, in order to notify their presence, and provide the requested information and their current operational status.</t>
  <t>Emergency multicast: a particular emergency related information (e.g. natural disaster) is generated and multicast by an emergency notifier, and relayed to multiple devices. The latters may reply back to the emergency notifier, in order to provide their feedback and local information related to the ongoing emergency.</t>
</list></t>

</section>
<section anchor="gid-ex" title="Example of Group Identifier Format">

<t>This section provides an example of how the Group Identifier (Gid) can be specifically formatted. That is, the Gid can be composed of two parts, namely a Group Prefix and a Group Epoch.</t>

<t>The Group Prefix is uniquely defined in the set of all the multicast groups associated to the same Group Manager. The choice of the Group Prefix for a given group's Security Context is application specific. Group Prefixes are random as well as long enough, in order to achieve a negligible probability of collisions between Group Identifiers from different Group Managers.</t>

<t>The Group Epoch is set to 0 upon the group's initialization, and is incremented by 1 upon completing each renewal of the Security Context and keying material in the group (see <xref target="sec-group-key-management"/>). In particular, once a new Master Secret has been distributed to the group, all the group members increment by 1 the Group Epoch in the Group Identifier of that group (see <xref target="sec-context"/>).</t>

</section>
<section anchor="setup" title="Set-up of New Endpoints">

<t>An endpoint joins a multicast group by explicitly interacting with the responsible Group Manager. All communications between a joining endpoint and the Group Manager rely on the CoAP protocol and MUST be secured. Specific details on how to secure communications between joining endpoints and a Group Manager are out of the scope of this specification.</t>

<t>In order to receive multicast messages sent to the group, a joining endpoint has to register with a network router device <xref target="RFC3376"/><xref target="RFC3810"/>, signaling its intent to receive packets sent to the multicast IP address of that group. As a particular case, the Group Manager can also act as such a network router device. Upon joining the group, endpoints are not required to know how many and what endpoints are active in the same group.</t>

<t>Furthermore, in order to participate in the secure group communication, an endpoint needs to maintain a number of information elements stored in its own Security Context (see <xref target="sec-context"/>). The following <xref target="join-process"/> describes which of this information is provided to an endpoint upon joining a multicast group through the responsible Group Manager.</t>

<section anchor="join-process" title="Join Process">

<t>An endpoint requests to join a multicast group by sending a confirmable CoAP POST request to the Group Manager responsible for that group. The join request is addressed to a CoAP resource associated to that group and carries the following information.</t>

<t><list style="symbols">
  <t>Role: the exact role of the joining endpoint in the multicast group. Possible values are: "multicaster", "listener", "pure listener", "multicaster and listener", or "multicaster and pure listener".</t>
  <t>Identity credentials: information elements to enforce source authentication of group messages from the joining endpoint, such as its public key. The exact content depends on whether the Group Manager is configured to store the public keys of group members. If this is the case, this information is omitted if it has been provided to the same Group Manager upon previously joining the same or a different multicast group under its control. This information is also omitted if the joining endpoint is configured exclusively as pure listener for the joined group. <xref target="ssec-provisioning-of-public-keys"/> discusses additional details on provisioning of public keys and other information to enforce source authentication of joining node's messages.</t>
  <t>Retrieval flag: indication of interest to receive the public keys of the endpoints currently in the multicast group, as included in the following join response. This flag MUST be set to false if the Group Manager is not configured to store the public keys of group members, or if the joining endpoint is configured exclusively as pure listener for the joined group.</t>
</list></t>

<t>The Group Manager MUST be able to verify that the joining enpoint is authorized to become a member of the multicast group. To this end, the Group Manager can directly authorize the joining endpoint, or expect it to provide authorization evidence previously obtained from a trusted entity. <xref target="join-ACE-framework"/> describes how this can be achieved by leveraging the ACE framework for Authentication and Authorization in constrained environments <xref target="I-D.ietf-ace-oauth-authz"/>.</t>

<t>In case of successful authorization check, the Group Manager generates an Endpoint ID assigned to the joining node, before proceeding with the rest of the join process. Instead, in case the authorization check fails, the Group Manager MUST abort the join process. Further details about the authorization of joining endpoint are out of the scope of this specification.</t>

<t>As discussed in <xref target="sec-group-key-management"/>, it is then RECOMMENDED that the Security Context is renewed before the joining endpoint becomes a new active member of the multicast group. This is achieved by securely distributing a new Master Secret and a new Group Identifier to the endpoints currently present in the same group.</t>

<t>Once renewed the Security Context in the multicast group, the Group Manager replies to the joining endpoint with a CoAP response carrying the following information.</t>

<t><list style="symbols">
  <t>Security Common Context: the OSCORE Security Common Context associated to the joined multicast group (see <xref target="sec-context"/>).</t>
  <t>Endpoint ID: the Endpoint ID associated to the joining node. This information is not included in case "Role" in the join request is equal to "pure listener".</t>
  <t>Management keying material: the set of administrative keying material used to participate in the group rekeying process run by the Group Manager (see <xref target="sec-group-key-management"/>). The specific elements of this management keying material depend on the group rekeying protocol used in the group. For instance, this can simply consist in a group key encryption key and a pairwise symmetric key shared between the joining node and the Group Manager, in case GKMP <xref target="RFC2093"/><xref target="RFC2094"/> is used. Instead, if key-tree based rekeying protocols like LKH <xref target="RFC2627"/> are used, it can consist in the set of symmetric keys associated to the key-tree leaf representing the group member up to the key-tree root representing the group key encryption key.</t>
  <t>Member public keys: the public keys of the endpoints currently present in the multicast group. This includes: the public keys of the non-pure listeners currently in the group, if the joining endpoint is configured (also) as multicaster; and the public keys of the multicasters currently in the group, if the joining endpoint is configured (also) as listener or pure listener. This information is omitted in case the Group Manager is not configured to store the public keys of group members or if the "Retrieval flag" was set to false in the join request. <xref target="ssec-provisioning-of-public-keys"/> discusses additional details on provisioning public keys upon joining the group and on retrieving public keys of group members.</t>
</list></t>

</section>
<section anchor="ssec-provisioning-of-public-keys" title="Provisioning and Retrieval of Public Keys">

<t>As mentioned in <xref target="sec-context"/>, it is RECOMMENDED that the Group Manager acts as trusted key repository, stores public keys of group members and provide them to other members of the same group upon request. In such a case, a joining endpoint provides its own public key to the Group Manager, as "Identity credentials" of the join request, when joining the multicast group (see <xref target="join-process"/>).</t>

<t>After that, the Group Manager MUST verify that the joining endpoint actually owns the associated private key, for instance by performing a proof-of-possession challenge-response. In case of success, the Group Manager stores the received public key as associated to the joining endpoint and its Endpoint ID, before sending the join response and continuing with the rest of the join process. From then on, that public key will be available for secure and trusted delivery to other endpoints in the multicast group.</t>

<t>The joining node does not have to provide its own public key if that already occurred upon previously joining the same or a different multicast group under the same Group Manager. However, separately for each multicast group under its control, the Group Manager maintains an updated list of active Endpoint IDs associated to a same endpoint's public key.</t>

<t>Instead, in case the Group Manager does not act as trusted key repository, the following information is exchanged with the Group Manager during the join process.</t>

<t><list style="numbers">
  <t>The joining endpoint signs its own certificate by using its own private key. There is no restriction on the Certificate Subject included in the joining node's certificate.</t>
  <t>The joining endpoint includes the following information as "Identity credentials" in the join request (<xref target="join-process"/>): the signed certificate; and the identifier of the Certification Authority that issued the certificate. The joining endpoint can optionally specify also a list of public key repositories storing its own certificate.</t>
  <t>When processing the join request, the Group Manager first validates the certificate by verifying the signature of the issuer CA, and then verifies the signature of the joining node.</t>
  <t>The Group Manager stores the association between the Certificate Subject of the joining node's certificate and the pair {Group ID, Endpoint ID of the joining node}. If received from the joining endpoint, the Group Manager also stores the list of public key repositories storing the certificate of the joining endpoint.</t>
</list></t>

<t>When a group member X wants to retrieve the public key of another group member Y in the same multicast group, the endpoint X proceeds as follows.</t>

<t><list style="numbers">
  <t>The endpoint X contacts the Group Manager, specifying the pair {Group ID, Endpoint ID of the endpoint Y}.</t>
  <t>The Group Manager provides the endpoint X with the Certificate Subject CS from the certificate of endpoint Y. If available, the Group Manager provides the endpoint X also with the list of public key repositories storing the certificate of the endpoint Y.</t>
  <t>The endpoint X retrieves the certificate of the endpoint X from a key repository storing it, by using the Certificate Subject CS.</t>
</list></t>

</section>
<section anchor="join-ACE-framework" title="Group Joining Based on the ACE Framework">

<t>The join process to register an endpoint as a new member of a multicast group can be based on the ACE framework for Authentication and Authorization in constrained environments <xref target="I-D.ietf-ace-oauth-authz"/>, built on re-use of OAuth 2.0 <xref target="RFC6749"/>.</t>

<t>In particular, the approach described in <xref target="I-D.tiloca-ace-oscoap-joining"/> uses the ACE framework to delegate the authentication and authorization of joining endpoints to an Authorization Server in a trust relation with the Group Manager. At the same time, it allows a joining endpoint to establish a secure channel with the Group Manager, by leveraging protocol-specific profiles of ACE <xref target="I-D.ietf-ace-oscore-profile"/> <xref target="I-D.ietf-ace-dtls-authorize"/> <xref target="I-D.aragon-ace-ipsec-profile"/> to achieve communication security, proof-of-possession and server authentication.</t>

<t>More specifically and with reference to the terminology defined in OAuth 2.0:</t>

<t><list style="symbols">
  <t>The joining endpoint acts as Client;</t>
  <t>The Group Manager acts as Resource Server, with different CoAP resources for different multicast groups it is responsible for;</t>
  <t>An Authorization Server enables and enforces authorized access of the joining endpoint to the Group Manager and its CoAP resources paired with multicast groups to join.</t>
</list></t>

<t>Both the joining endpoint and the Group Manager MUST adopt secure communication also for any message exchange with the Authorization Server. To this end, different alternatives are possible, such as OSCORE, DTLS <xref target="RFC6347"/> or IPsec <xref target="RFC4301"/>.</t>

</section>
</section>
<section anchor="synch-ex" title="Examples of Synchronization Approaches">

<t>This section describes three possible approaches that can be considered by listener endpoints to synchronize with sequence numbers of multicasters.</t>

<section anchor="ssec-synch-best-effort" title="Best-Effort Synchronization">

<t>Upon receiving a multicast request from a multicaster, a listener endpoint does not take any action to synchonize with the sequence number of that multicaster. This provides no assurance at all as to message freshness, which can be acceptable in non-critical use cases.</t>

</section>
<section anchor="ssec-synch-baseline" title="Baseline Synchronization">

<t>Upon receiving a multicast request from a given multicaster for the first time, a listener endpoint initializes its last-seen sequence number in its Recipient Context associated to that multicaster. However, the listener drops the multicast request without delivering it to the application layer. This provides a reference point to identify if future multicast requests from the same multicaster are fresher than the last one received.</t>

<t>A replay time interval exists, between when a possibly replayed message is originally transmitted by a given multicaster and the first authentic fresh message from that same multicaster is received. This can be acceptable for use cases where listener endpoints admit such a trade-off between performance and assurance of message freshness.</t>

</section>
<section anchor="ssec-synch-challenge-response" title="Challenge-Response Synchronization">

<t>A listener endpoint performs a challenge-response exchange with a multicaster, by using the Repeat Option for CoAP described in Section 2 of <xref target="I-D.amsuess-core-repeat-request-tag"/>.</t>

<t>That is, upon receiving a multicast request from a particular multicaster for the first time, the listener processes the message as described in <xref target="ssec-verify-request"/> of this specification, but, even if valid, does not deliver it to the application. Instead, the listener replies to the multicaster with a 4.03 Forbidden response message including a Repeat Option, and stores the option value included therein.</t>

<t>Upon receiving a 4.03 Forbidden response that includes a Repeat Option and originates from a verified group member, a multicaster MUST send a group request as a unicast message addressed to the same listener, echoing the Repeat Option value. In particular, the multicaster does not necessarily resend the same group request, but can instead send a more recent one, if the application permits it. This makes it possible for the multicaster to not retain previously sent group requests for full retransmission, unless the application explicitly requires otherwise. In either case, the multicaster uses the sequence number value currently stored in its own Sender Context. If the multicaster stores group requests for possible retransmission with the Repeat Option, it should not store a given request for longer than a pre-configured time interval. Note that the unicast request echoing the Repeat Option is correctly treated and processed as a group message, since the "gid" field including the Group Identifier of the OSCORE group is still present in the Object-Security Option as part of the COSE object (see <xref target="sec-cose-object"/>).</t>

<t>Upon receiving the unicast group request including the Repeat Option, the listener verifies that the option value equals the stored and previously sent value; otherwise, the request is silently discarded. Then, the listener verifies that the unicast group request has been received within a pre-configured time interval, as described in <xref target="I-D.amsuess-core-repeat-request-tag"/>. In such a case, the request is further processed and verified; otherwise, it is silently discarded. Finally, the listener updates the Recipient Context associated to that multicaster, by setting the Replay Window according to the Sequence Number from the unicast group request conveying the Repeat Option. The listener either delivers the request to the application if it is an actual retransmission of the original one, or discard it otherwise. Mechanisms to signal whether the resent request is a full retransmission of the original one are out of the scope of this specification.</t>

<t>In case it does not receive a valid group request including the Repeat Option within the configured time interval, the listener node SHOULD perform the same challenge-response upon receiving the next multicast request from that same multicaster.</t>

<t>A listener SHOULD NOT deliver group request messages from a given multicaster to the application until one valid group request from that same multicaster has been verified as fresh, as conveying an echoed Repeat Option <xref target="I-D.amsuess-core-repeat-request-tag"/>. Also, a listener MAY perform the challenge-response described above at any time, if synchronization with sequence numbers of multicasters is (believed to be) lost, for instance after a device reboot. It is the role of the application to define under what circumstances sequence numbers lose synchronization. This can include a minimum gap between the sequence number of the latest accepted group request from a multicaster and the sequence number of a group request just received from the same multicaster. A multicaster MUST always be ready to perform the challenge-response based on the Repeat Option in case a listener starts it.</t>

<t>Note that endpoints configured as pure listeners are not able to perform the challenge-response described above, as they do not store a Sender Context to secure the 4.03 Forbidden response to the multicaster. Therefore, pure listeners should adopt alternative approaches to achieve and maintain synchronization with sequence numbers of multicasters.</t>

<t>This approach provides an assurance of absolute message freshness. However, it can result in an impact on performance which is undesirable or unbearable, especially in large multicast groups where many nodes at the same time might join as new members or lose synchronization.</t>

</section>
</section>
<section anchor="sec-no-source-auth" title="No Verification of Signatures">

<t>There are some application scenarios using group communications that have particularly strict requirements. One example of this is the requirement of low message latency in non-emergency lighting applications <xref target="I-D.somaraju-ace-multicast"/>. For those applications which have tight performance constraints and relaxed security requirements, it can be inconvenient for some endpoints to verify digital signatures in order to assert source authenticity of received group messages. In other cases, the signature verification can be deferred or only checked for specific actions. For instance, a command to turn a bulb on where the bulb is already on does not need the signature to be checked. In such situations, the counter signature needs to be included anyway as part of the group message, so that an endpoint that needs to validate the signature for any reason has the ability to do so.</t>

<t>In this specification, it is NOT RECOMMENDED that endpoints do not verify the counter signature of received group messages. However, it is recognized that there may be situations where it is not always required. The consequence of not doing the signature validation is that security in the group is based only on the group-authenticity of the shared keying material used for encryption. That is, endpoints in the multicast group have evidence that a received message has been originated by a group member, although not specifically identifiable in a secure way. This can violate a number of security requirements, as the compromise of any element in the group means that the attacker has the ability to control the entire group. Even worse, the group may not be limited in scope, and hence the same keying material might be used not only for light bulbs but for locks as well. Therefore, extreme care must be taken in situations where the security requirements are relaxed, so that deployment of the system will always be done safely.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAK18gVoAA9V9WXMbR5buO39FBfXQpAegSYm2bPr2xFASLautbUTZ3R03
bnQkgQRYVqEKXVUgBdua3z5nza2ySEp2L9cT0wKBWjJPnjz7+XI6ne70ZV/Z
k+LczjatLZZts1kXs2a12tTlzPRlUxeLpi0eN6evd+4V5uKitVcnxc68mdVm
BffNW7Pop6XtF9NZ09pp09E/9Bx8zPTwcGcH7ux6U8//Zqqmhpv6dmN3dsp1
Sx+7/v7h4deH93dMa81JcbpeV/Lqbud6eQLvfnNW/Llp35X1sniKD955d31S
PKt729a2nz7BIezAHSfwlvnOzqyZw5Unxaabmm5Wljvr8qSA/+4VM1PDt7Yw
bWu2xV65KExVFVvb7Rcwx0vTXRaXtrUw3GJa9M2MP3RN27d20clf2xX9UeAF
J3gzfNRLTug1c7swm6rv4Ar9nW/iy3fMpr9s2pOdgv6byr9FUdZwxYuD4m1Z
NTPjvmZCvzDtrEl/alqY55tn52fF+bPH58XpI/dLB+OxQJFnnVn81LTzbmlg
BYr7990Vs7LfnhTfl7Ay/rtmjrxwNj368vj4sDiHKb67bKpVcMGm7lu47/za
zm3tvrcrU1YnxQoHedDTIP+rLQ86m5/k0wNguAo4wrbJNJ82toVxDn6lmZ61
5azrgCUzE33btN2lWdU60Qf/0IkuGxglTI9H+V9WBnYALJ+f8bcHxWvg/tVF
WZfJlL+FR81sNzOZK/7Npr3QoR6sdai5uRdFngh/QiK075L5/6nc2vh7mvUP
dXll267sje2LJ5uyu9i0y+lZ1wXDUiqczy43tv/Z1hfmsi4eHiZEiG9iIhx/
cXT/4XDeT227MvU2nfhP5XRrYdLtu/8CwTidb+zBHERY3cDVPYzzZAfueDZ9
chBIwouf7KyfdihYcRRwwZtvH98/OvpaPj68/8V9+fjV4QP38ch/e/TwGB5c
1ov8a8wM3oLCZIr/8/NJ+tu8r7opC5vyZ6s/m1W3sV3Hg2zt2poe/vk7fNdP
e7N0l7Vm2dT0nHINk5iu22ZRVnbwFpH4yc9dA7LA/LShS1YgDUGkd73+yhLC
3W7W058a4KV6qVQ6/PqB/3isH7+8/1A+Pnjw8Ev9+PD4UD9+daQfjw+P9YLj
B4dH+vGLB1/ox6+Pj/1HXZMv73+l1P/ywbG+7cuHx37R7n+lHx98DW/bmU6n
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
hM7RderMwlbbg53/BT6W2+MN3AAA

-->

</rfc>

