idnits 2.17.1 draft-ietf-core-oscore-groupcomm-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 08, 2019) is 1876 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Downref: Normative reference to an Informational RFC: RFC 6979 ** Downref: Normative reference to an Informational RFC: RFC 8032 ** Obsolete normative reference: RFC 8152 (Obsoleted by RFC 9052, RFC 9053) == Outdated reference: A later version (-16) exists of draft-ietf-ace-key-groupcomm-oscore-00 == Outdated reference: A later version (-46) exists of draft-ietf-ace-oauth-authz-22 == Outdated reference: A later version (-14) exists of draft-ietf-core-echo-request-tag-03 -- Obsolete informational reference (is this intentional?): RFC 6347 (Obsoleted by RFC 9147) Summary: 3 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 CoRE Working Group M. Tiloca 3 Internet-Draft RISE AB 4 Intended status: Standards Track G. Selander 5 Expires: September 9, 2019 F. Palombini 6 Ericsson AB 7 J. Park 8 Universitaet Duisburg-Essen 9 March 08, 2019 11 Group OSCORE - Secure Group Communication for CoAP 12 draft-ietf-core-oscore-groupcomm-04 14 Abstract 16 This document describes a mode for protecting group communication 17 over the Constrained Application Protocol (CoAP). The proposed mode 18 relies on Object Security for Constrained RESTful Environments 19 (OSCORE) and the CBOR Object Signing and Encryption (COSE) format. 20 In particular, it defines how OSCORE is used in a group communication 21 setting, while fulfilling the same security requirements for group 22 requests and responses. Source authentication of all messages 23 exchanged within the group is provided by means of digital signatures 24 produced by the sender and embedded in the protected CoAP messages. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on September 9, 2019. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 61 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 62 2. OSCORE Security Context . . . . . . . . . . . . . . . . . . . 5 63 2.1. Management of Group Keying Material . . . . . . . . . . . 8 64 2.2. Wrap-Around of Partial IVs . . . . . . . . . . . . . . . 9 65 3. The COSE Object . . . . . . . . . . . . . . . . . . . . . . . 9 66 3.1. Updated external_aad . . . . . . . . . . . . . . . . . . 9 67 3.2. Use of the 'kid' Parameter . . . . . . . . . . . . . . . 10 68 3.3. Updated 'unprotected' Field . . . . . . . . . . . . . . . 10 69 4. OSCORE Header Compression . . . . . . . . . . . . . . . . . . 10 70 4.1. Encoding of the OSCORE Option Value . . . . . . . . . . . 11 71 4.2. Encoding of the OSCORE Payload . . . . . . . . . . . . . 12 72 4.3. Examples of Compressed COSE Objects . . . . . . . . . . . 12 73 5. Message Binding, Sequence Numbers, Freshness and Replay 74 Protection . . . . . . . . . . . . . . . . . . . . . . . . . 13 75 5.1. Synchronization of Sender Sequence Numbers . . . . . . . 13 76 6. Message Processing . . . . . . . . . . . . . . . . . . . . . 14 77 6.1. Protecting the Request . . . . . . . . . . . . . . . . . 14 78 6.2. Verifying the Request . . . . . . . . . . . . . . . . . . 15 79 6.3. Protecting the Response . . . . . . . . . . . . . . . . . 15 80 6.4. Verifying the Response . . . . . . . . . . . . . . . . . 16 81 7. Responsibilities of the Group Manager . . . . . . . . . . . . 17 82 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 83 8.1. Group-level Security . . . . . . . . . . . . . . . . . . 18 84 8.2. Uniqueness of (key, nonce) . . . . . . . . . . . . . . . 18 85 8.3. Management of Group Keying Material . . . . . . . . . . . 19 86 8.4. Update of Security Context and Key Rotation . . . . . . . 19 87 8.5. Collision of Group Identifiers . . . . . . . . . . . . . 20 88 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 89 9.1. Counter Signature Parameters Registry . . . . . . . . . . 20 90 9.2. Expert Review Instructions . . . . . . . . . . . . . . . 22 91 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 23 92 10.1. Normative References . . . . . . . . . . . . . . . . . . 23 93 10.2. Informative References . . . . . . . . . . . . . . . . . 23 94 Appendix A. Assumptions and Security Objectives . . . . . . . . 25 95 A.1. Assumptions . . . . . . . . . . . . . . . . . . . . . . . 25 96 A.2. Security Objectives . . . . . . . . . . . . . . . . . . . 26 97 Appendix B. List of Use Cases . . . . . . . . . . . . . . . . . 27 98 Appendix C. Example of Group Identifier Format . . . . . . . . . 29 99 Appendix D. Set-up of New Endpoints . . . . . . . . . . . . . . 30 100 Appendix E. Examples of Synchronization Approaches . . . . . . . 31 101 E.1. Best-Effort Synchronization . . . . . . . . . . . . . . . 31 102 E.2. Baseline Synchronization . . . . . . . . . . . . . . . . 31 103 E.3. Challenge-Response Synchronization . . . . . . . . . . . 32 104 Appendix F. No Verification of Signatures . . . . . . . . . . . 33 105 Appendix G. Document Updates . . . . . . . . . . . . . . . . . . 34 106 G.1. Version -03 to -04 . . . . . . . . . . . . . . . . . . . 34 107 G.2. Version -02 to -03 . . . . . . . . . . . . . . . . . . . 35 108 G.3. Version -01 to -02 . . . . . . . . . . . . . . . . . . . 36 109 G.4. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 36 110 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 37 111 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 37 113 1. Introduction 115 The Constrained Application Protocol (CoAP) [RFC7252] is a web 116 transfer protocol specifically designed for constrained devices and 117 networks [RFC7228]. 119 Group communication for CoAP [RFC7390] addresses use cases where 120 deployed devices benefit from a group communication model, for 121 example to reduce latencies, improve performance and reduce bandwidth 122 utilisation. Use cases include lighting control, integrated building 123 control, software and firmware updates, parameter and configuration 124 updates, commissioning of constrained networks, and emergency 125 multicast (see Appendix B). Furthermore, [RFC7390] recognizes the 126 importance to introduce a secure mode for CoAP group communication. 127 This specification defines such a mode. 129 Object Security for Constrained RESTful Environments 130 (OSCORE)[I-D.ietf-core-object-security] describes a security protocol 131 based on the exchange of protected CoAP messages. OSCORE builds on 132 CBOR Object Signing and Encryption (COSE) [RFC8152] and provides end- 133 to-end encryption, integrity, replay protection and binding of 134 response to request between a sender and a receipient, also in the 135 presence of intermediaries. To this end, a CoAP message is protected 136 by including its payload (if any), certain options, and header fields 137 in a COSE object, which replaces the authenticated and encrypted 138 fields in the protected message. 140 This document defines Group OSCORE, providing end-to-end security of 141 CoAP messages exchanged between members of a group, and preserving 142 independence of transport layer. In particular, the described 143 approach defines how OSCORE should be used in a group communication 144 setting, so that end-to-end security is assured in the same way as 145 OSCORE for unicast communication. That is, end-to-end security is 146 provided for CoAP multicast requests sent by a client to the group, 147 and for related CoAP responses sent by multiple servers. Group 148 OSCORE provides source authentication of all CoAP messages exchanged 149 within the group, by means of digital signatures produced through 150 private keys of sender devices and embedded in the protected CoAP 151 messages. 153 As in OSCORE, it is still possible to simultaneously rely on DTLS 154 [RFC6347] to protect hop-by-hop communication between a sender and a 155 proxy (and vice versa), and between a proxy and a recipient (and vice 156 versa). Note that DTLS cannot be used to secure messages sent over 157 multicast. 159 1.1. Terminology 161 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 162 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 163 "OPTIONAL" in this document are to be interpreted as described in BCP 164 14 [RFC2119] [RFC8174] when, and only when, they appear in all 165 capitals, as shown here. 167 Readers are expected to be familiar with the terms and concepts 168 described in CoAP [RFC7252] including "endpoint", "client", "server", 169 "sender" and "recipient"; group communication for CoAP [RFC7390]; 170 COSE and counter signatures [RFC8152]. 172 Readers are also expected to be familiar with the terms and concepts 173 for protection and processing of CoAP messages through OSCORE, such 174 as "Security Context" and "Master Secret", defined in 175 [I-D.ietf-core-object-security]. 177 Terminology for constrained environments, such as "constrained 178 device", "constrained-node network", is defined in [RFC7228]. 180 This document refers also to the following terminology. 182 o Keying material: data that is necessary to establish and maintain 183 secure communication among endpoints. This includes, for 184 instance, keys and IVs [RFC4949]. 186 o Group: a set of endpoints that share group keying material and 187 security parameters (Common Context, see Section 2). The term 188 group used in this specification refers thus to a "security 189 group", not to be confused with network/multicast group or 190 application group. 192 o Group Manager: entity responsible for a group. Each endpoint in a 193 group communicates securely with the respective Group Manager, 194 which is neither required to be an actual group member nor to take 195 part in the group communication. The full list of 196 responsibilities of the Group Manager is provided in Section 7. 198 o Silent server: member of a group that never responds to requests. 199 Note that a silent server can act as a client, the two roles are 200 independent. 202 o Group Identifier (Gid): identifier assigned to the group. Group 203 Identifiers should be unique within the set of groups of a given 204 Group Manager, in order to avoid collisions. In case they are 205 not, the considerations in Section 8.5 apply. 207 o Group request: CoAP request message sent by a client in the group 208 to all servers in that group. 210 o Source authentication: evidence that a received message in the 211 group originated from a specific identified group member. This 212 also provides assurance that the message was not tampered with by 213 anyone, be it a different legitimate group member or an endpoint 214 which is not a group member. 216 2. OSCORE Security Context 218 To support group communication secured with OSCORE, each endpoint 219 registered as member of a group maintains a Security Context as 220 defined in Section 3 of [I-D.ietf-core-object-security], extended as 221 defined below. Each endpoint in a group makes use of: 223 1. one Common Context, shared by all the endpoints in a given group. 224 In particular: 226 * The ID Context parameter contains the Gid of the group, which 227 is used to retrieve the Security Context for processing 228 messages intended to the endpoints of the group (see 229 Section 6). The choice of the Gid is application specific. 230 An example of specific formatting of the Gid is given in 231 Appendix C. The application needs to specify how to handle 232 possible collisions between Gids, see Section 8.5. 234 * A new parameter Counter Signature Algorithm is included. Its 235 value identifies the digital signature algorithm used to 236 compute a counter signature on the COSE object (see 237 Section 4.5 of [RFC8152]) which provides source authentication 238 within the group. Its value is immutable once the Common 239 Context is established. The used Counter Signature Algorithm 240 MUST be selected among the signing ones defined in the COSE 241 Algorithms Registry (see section 16.4 of [RFC8152]). The 242 EdDSA signature algorithm ed25519 [RFC8032] is mandatory to 243 implement. If Elliptic Curve Digital Signature Algorithm 244 (ECDSA) is used, it is RECOMMENDED that implementations 245 implement "deterministic ECDSA" as specified in [RFC6979]. 247 * A new parameter Counter Signature Parameters is included. 248 This parameter identifies the parameters associated to the 249 digital signature algorithm specified in the Counter Signature 250 Algorithm. This parameter MAY be empty and is immutable once 251 the Common Context is established. The exact structure of 252 this parameter depends on the value of Counter Signature 253 Algorithm, and is defined in the Counter Signature Parameters 254 Registry (see Section 9.1), where each entry indicates a 255 specified structure of the Counter Signature Parameters. 257 2. one Sender Context, unless the endpoint is configured exclusively 258 as silent server. The Sender Context is used to secure outgoing 259 messages and is initialized according to Section 3 of 260 [I-D.ietf-core-object-security], once the endpoint has joined the 261 group. The Sender Context of a given endpoint matches the 262 corresponding Recipient Context in all the endpoints receiving a 263 protected message from that endpoint. Besides, in addition to 264 what is defined in [I-D.ietf-core-object-security], the Sender 265 Context stores also the endpoint's private key. 267 3. one Recipient Context for each distinct endpoint from which 268 messages are received, used to process incoming messages. The 269 recipient may generate the Recipient Context upon receiving an 270 incoming message from another endpoint in the group for the first 271 time (see Section 6.2 and Section 6.4). Each Recipient Context 272 matches the Sender Context of the endpoint from which protected 273 messages are received. Besides, in addition to what is defined 274 in [I-D.ietf-core-object-security], each Recipient Context stores 275 also the public key of the associated other endpoint from which 276 messages are received. 278 The table in Figure 1 overviews the new information included in the 279 OSCORE Security Context, with respect to what defined in Section 3 of 280 [I-D.ietf-core-object-security]. 282 +---------------------------+------------------------------+ 283 | Context portion | New information | 284 +---------------------------+------------------------------+ 285 | | | 286 | Common Context | Counter signature algorithm | 287 | | | 288 | Common Context | Counter signature parameters | 289 | | | 290 | Sender Context | Endpoint's own private key | 291 | | | 292 | Each Recipient Context | Public key of the | 293 | | associated other endpoint | 294 | | | 295 +---------------------------+------------------------------+ 297 Figure 1: Additions to the OSCORE Security Context 299 Upon receiving a secure CoAP message, a recipient uses the sender's 300 public key, in order to verify the counter signature of the COSE 301 Object (see Section 3). 303 If not already stored in the Recipient Context associated to the 304 sender, the recipient retrieves the sender's public key from the 305 Group Manager, which collects public keys upon endpoints' joining the 306 group, acts as trusted key repository and ensures the correct 307 association between the public key and the identifier of the sender, 308 for instance by means of public key certificates. 310 Note that a group member can retrieve public keys from the Group 311 Manager and generate the Recipient Context associated to another 312 group member at any point in time, as long as this is done before 313 verifying a received secure CoAP message. The exact configuration is 314 application dependent. For example, an application can configure a 315 group member to retrieve all the required information and to create 316 the Recipient Context exactly upon receiving a message from another 317 group member for the first time. As an alternative, the application 318 can configure a group member to asynchronously retrieve the required 319 information and update its list of Recipient Contexts well before 320 receiving any message, e.g. by Observing [RFC7641] the Group Manager 321 to get updates on the group membership. 323 It is RECOMMENDED that the Group Manager collects public keys and 324 provides them to group members upon request as described in 325 [I-D.ietf-ace-key-groupcomm-oscore], where the join process is based 326 on the ACE framework for Authentication and Authorization in 327 constrained environments [I-D.ietf-ace-oauth-authz]. Further details 328 about how public keys can be handled and retrieved in the group is 329 out of the scope of this document. 331 An endpoint receives its own Sender ID from the Group Manager upon 332 joining the group. That Sender ID is valid only within that group, 333 and is unique within the group. An endpoint uses its own Sender ID 334 (together with other data) to generate unique AEAD nonces for 335 outgoing messages, as in [I-D.ietf-core-object-security]. Endpoints 336 which are configured only as silent servers do not have a Sender ID. 338 The Sender/Recipient Keys and the Common IV are derived according to 339 the same scheme defined in Section 3.2 of 340 [I-D.ietf-core-object-security]. The mandatory-to-implement HKDF and 341 AEAD algorithms for Group OSCORE are the same as in 342 [I-D.ietf-core-object-security]. 344 2.1. Management of Group Keying Material 346 In order to establish a new Security Context in a group, a new Group 347 Identifier (Gid) for that group and a new value for the Master Secret 348 parameter MUST be distributed. An example of Gid format supporting 349 this operation is provided in Appendix C. Then, each group member 350 re-derives the keying material stored in its own Sender Context and 351 Recipient Contexts as described in Section 2, using the updated Gid. 353 After a new Gid has been distributed, a same Recipient ID ('kid') 354 should not be considered as a persistent and reliable indicator of 355 the same group member. Such an indication can be actually achieved 356 only by verifying countersignatures of received messages. 358 As a consequence, group members may end up retaining stale Recipient 359 Contexts, that are no longer useful to verify incoming secure 360 messages. Applications may define policies to delete (long-)unused 361 Recipient Contexts and reduce the impact on storage space. 363 If the application requires so (see Appendix A.1), it is RECOMMENDED 364 to adopt a group key management scheme, and securely distribute a new 365 value for the Gid and for the Master Secret parameter of the group's 366 Security Context, before a new joining endpoint is added to the group 367 or after a currently present endpoint leaves the group. This is 368 necessary to preserve backward security and forward security in the 369 group, if the application requires it. 371 The specific approach used to distribute the new Gid and Master 372 Secret parameter to the group is out of the scope of this document. 373 However, it is RECOMMENDED that the Group Manager supports the 374 distribution of the new Gid and Master Secret parameter to the group 375 according to the Group Rekeying Process described in 376 [I-D.ietf-ace-key-groupcomm-oscore]. 378 2.2. Wrap-Around of Partial IVs 380 A client can eventually experience a wrap-around of its own Sender 381 Sequence Number, which is used as Partial IV in outgoing requests and 382 incremented after each request. 384 When this happens, the endpoint MUST NOT transmit further group 385 requests until it has derived a new Sender Context, in order to avoid 386 reusing nonces with the same keys. 388 Furthermore, the endpoint SHOULD inform the Group Manager, that can 389 take one of the following actions: 391 o The Group Manager renews the OSCORE Security Context in the group 392 (see Section 2.1). 394 o The Group Manager provides a new Sender ID value to the endpoint 395 that has experienced the wrap-around. Then, the endpoint derives 396 a new Sender Context using the new Sender ID, as described in 397 Section 3.2 of [I-D.ietf-core-object-security]. 399 Either case, same considerations from Section 2.1 hold about possible 400 retaining of stale Recipient Contexts. 402 3. The COSE Object 404 Building on Section 5 of [I-D.ietf-core-object-security], this 405 section defines how to use COSE [RFC8152] to wrap and protect data in 406 the original message. OSCORE uses the untagged COSE_Encrypt0 407 structure with an Authenticated Encryption with Additional Data 408 (AEAD) algorithm. For Group OSCORE, the following modifications 409 apply. 411 3.1. Updated external_aad 413 The external_aad in the Additional Authenticated Data (AAD) is 414 extended with the counter signature algorithm and related parameters 415 used to sign messages. In particular, compared with Section 5.4 of 416 [I-D.ietf-core-object-security], the 'algorithms' array in the 417 aad_array MUST also include: 419 o 'alg_countersign', which contains the Counter Signature Algorithm 420 from the Common Context (see Section 2). This parameter has the 421 value specified in the "Value" field of the Counter Signature 422 Parameters Registry (see Section 9.1) for this counter signature 423 algorithm. 425 The 'algorithms' array in the aad_array MAY also include: 427 o 'par_countersign', which contains the Counter Signature Parameters 428 from the Common Context (see Section 2). This parameter contains 429 the counter signature parameters encoded as specified in the 430 "Parameters" field of the Counter Signature Parameters Registry 431 (see Section 9.1), for the used counter signature algorithm. Note 432 that if the Counter Signature Parameters in the Common Context is 433 empty, 'par_countersign' is not present. 435 This external_aad structure is used both for the encryption process 436 producing the ciphertext (see Section 5.3 of [RFC8152]) and for the 437 signing process producing the counter signature, as defined below. 439 external_aad = bstr .cbor aad_array 441 aad_array = [ 442 oscore_version : uint, 443 algorithms : [alg_aead : int / tstr , 444 alg_countersign : int / tstr , 445 ? par_countersign : any], 446 request_kid : bstr, 447 request_piv : bstr, 448 options : bstr 449 ] 451 3.2. Use of the 'kid' Parameter 453 The value of the 'kid' parameter in the 'unprotected' field of 454 response messages MUST be set to the Sender ID of the endpoint 455 transmitting the message. That is, unlike in 456 [I-D.ietf-core-object-security], the 'kid' parameter is always 457 present in all messages, i.e. both requests and responses. 459 3.3. Updated 'unprotected' Field 461 The 'unprotected' field MUST additionally include the following 462 parameter: 464 o CounterSignature0 : its value is set to the counter signature of 465 the COSE object, computed by the sender using its own private key 466 as described in Appendix A.2 of [RFC8152]. In particular, the 467 Sig_structure contains the external_aad as defined above and the 468 ciphertext of the COSE_Encrypt0 object as payload. 470 4. OSCORE Header Compression 472 The OSCORE compression defined in Section 6 of 473 [I-D.ietf-core-object-security] is used, with the following additions 474 for the encoding of the OSCORE Option and the OSCORE Payload. 476 4.1. Encoding of the OSCORE Option Value 478 Analogously to [I-D.ietf-core-object-security], the value of the 479 OSCORE option SHALL contain the OSCORE flag bits, the Partial IV 480 parameter, the kid context parameter (length and value), and the kid 481 parameter, with the following modifications: 483 o The first byte, containing the OSCORE flag bits, has the following 484 encoding modifications: 486 * The fourth least significant bit MUST be set to 1 in every 487 message, to indicate the presence of the 'kid' parameter for 488 all group requests and responses. That is, unlike in 489 [I-D.ietf-core-object-security], the 'kid' parameter is always 490 present in all messages. 492 * The fifth least significant bit MUST be set to 1 for group 493 requests, to indicate the presence of the 'kid context' 494 parameter in the compressed COSE object. The 'kid context' MAY 495 be present in responses if the application requires it. In 496 such a case, the kid context flag MUST be set to 1. 498 The flag bits are registered in the OSCORE Flag Bits registry 499 specified in Section 13.7 of [I-D.ietf-core-object-security]. 501 o The 'kid context' value encodes the Group Identifier value (Gid) 502 of the group's Security Context. 504 o The remaining bytes in the OSCORE Option value encode the value of 505 the 'kid' parameter, which is always present both in group 506 requests and in responses. 508 0 1 2 3 4 5 6 7 <------------ n bytes ------------> 509 +-+-+-+-+-+-+-+-+-----------------------------------+ 510 |0 0|0|h|1| n | Partial IV (if any) | 511 +-+-+-+-+-+-+-+-+-----------------------------------+ 513 <-- 1 byte ---> <------ s bytes ------> 514 +---------------+-----------------------+-----------+ 515 | s (if any) | kid context = Gid | kid | 516 +---------------+-----------------------+-----------+ 518 Figure 2: OSCORE Option Value 520 4.2. Encoding of the OSCORE Payload 522 The payload of the OSCORE message SHALL encode the ciphertext of the 523 COSE object concatenated with the value of the CounterSignature0 of 524 the COSE object, computed as in Appendix A.2 of [RFC8152] according 525 to the Counter Signature Algorithm and Counter Signature Parameters 526 in the Security Context. 528 4.3. Examples of Compressed COSE Objects 530 This section covers a list of OSCORE Header Compression examples for 531 group requests and responses. The examples assume that the 532 COSE_Encrypt0 object is set (which means the CoAP message and 533 cryptographic material is known). Note that the examples do not 534 include the full CoAP unprotected message or the full security 535 context, but only the input necessary to the compression mechanism, 536 i.e. the COSE_Encrypt0 object. The output is the compressed COSE 537 object as defined in Section 4 and divided into two parts, since the 538 object is transported in two CoAP fields: OSCORE option and payload. 540 The examples assume that the label for the new kid context defined in 541 [I-D.ietf-core-object-security] has value 10. COUNTERSIGN is the 542 CounterSignature0 byte string as described in Section 3 and is 64 543 bytes long. 545 1. Request with ciphertext = 0xaea0155667924dff8a24e4cb35b9, kid = 546 0x25, Partial IV = 5 and kid context = 0x44616c 548 Before compression (96 bytes): 550 [ 551 h'', 552 { 4:h'25', 6:h'05', 10:h'44616c', 9:COUNTERSIGN }, 553 h'aea0155667924dff8a24e4cb35b9' 554 ] 556 After compression (85 bytes): 558 Flag byte: 0b00011001 = 0x19 560 Option Value: 19 05 03 44 61 6c 25 (7 bytes) 562 Payload: ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9 COUNTERSIGN 563 (14 bytes + size of COUNTERSIGN) 565 1. Response with ciphertext = 60b035059d9ef5667c5a0710823b, kid = 566 0x52 and no Partial IV. 568 Before compression (88 bytes): 570 [ 571 h'', 572 { 4:h'52', 9:COUNTERSIGN }, 573 h'60b035059d9ef5667c5a0710823b' 574 ] 576 After compression (80 bytes): 578 Flag byte: 0b00001000 = 0x08 580 Option Value: 08 52 (2 bytes) 582 Payload: 60 b0 35 05 9d 9e f5 66 7c 5a 07 10 82 3b COUNTERSIGN 583 (14 bytes + size of COUNTERSIGN) 585 5. Message Binding, Sequence Numbers, Freshness and Replay Protection 587 The requirements and properties described in Section 7 of 588 [I-D.ietf-core-object-security] also apply to OSCORE used in group 589 communication. In particular, group OSCORE provides message binding 590 of responses to requests, which provides relative freshness of 591 responses, and replay protection of requests. 593 Besides, group OSCORE provides additional assurances on the client 594 side, upon receiving responses bound to a same request. That is, as 595 long as the client retains the CoAP Token used in a request (see 596 Section 2.5 of [RFC7390]), group OSCORE ensures that: any possible 597 response sent to that request is not a replay; and at most one 598 response to that request from a given server is accepted, if required 599 by the application. 601 More details about error processing for replay detection in group 602 OSCORE are specified in Section 6 of this specification. The 603 mechanisms describing replay protection and freshness of Observe 604 notifications do not apply to group OSCORE, as Observe is not defined 605 for group settings. 607 5.1. Synchronization of Sender Sequence Numbers 609 Upon joining the group, new servers are not aware of the Sender 610 Sequence Number values currently used by different clients to 611 transmit group requests. This means that, when such servers receive 612 a secure group request from a given client for the first time, they 613 are not able to verify if that request is fresh and has not been 614 replayed or (purposely) delayed. The same holds when a server loses 615 synchronization with Sender Sequence Numbers of clients, for instance 616 after a device reboot. 618 The exact way to address this issue is application specific, and 619 depends on the particular use case and its synchronization 620 requirements. The list of methods to handle synchronization of 621 Sender Sequence Numbers is part of the group communication policy, 622 and different servers can use different methods. 624 Appendix E describes three possible approaches that can be considered 625 for synchronization of sequence numbers. 627 6. Message Processing 629 Each request message and response message is protected and processed 630 as specified in [I-D.ietf-core-object-security], with the 631 modifications described in the following sections. The following 632 security objectives are fulfilled, as further discussed in 633 Appendix A.2: data replay protection, group-level data 634 confidentiality, source authentication, message integrity. 636 As per [RFC7252][RFC7390], group requests sent over multicast MUST be 637 Non-Confirmable. Thus, senders should store their outgoing messages 638 for an amount of time defined by the application and sufficient to 639 correctly handle possible retransmissions. However, this does not 640 prevent the acknowledgment of Confirmable group requests in non- 641 multicast environments. Besides, according to Section 5.2.3 of 642 [RFC7252], responses to Non-Confirmable group requests SHOULD be also 643 Non-Confirmable. However, endpoints MUST be prepared to receive 644 Confirmable responses in reply to a Non-Confirmable group request. 646 Furthermore, endpoints in the group locally perform error handling 647 and processing of invalid messages according to the same principles 648 adopted in [I-D.ietf-core-object-security]. However, a recipient 649 MUST stop processing and silently reject any message which is 650 malformed and does not follow the format specified in Section 3, or 651 which is not cryptographically validated in a successful way. Either 652 case, it is RECOMMENDED that the recipient does not send back any 653 error message. This prevents servers from replying with multiple 654 error messages to a client sending a group request, so avoiding the 655 risk of flooding and possibly congesting the group. 657 6.1. Protecting the Request 659 A client transmits a secure group request as described in Section 8.1 660 of [I-D.ietf-core-object-security], with the following modifications. 662 o In step 2, the 'algorithms' array in the Additional Authenticated 663 Data is modified as described in Section 3. 665 o In step 4, the encryption of the COSE object is modified as 666 described in Section 3. The encoding of the compressed COSE 667 object is modified as described in Section 4. 669 o In step 5, the counter signature is computed and the format of the 670 OSCORE mesage is modified as described in Section 4.2. In 671 particular, the payload of the OSCORE message includes also the 672 counter signature. 674 6.2. Verifying the Request 676 Upon receiving a secure group request, a server proceeds as described 677 in Section 8.2 of [I-D.ietf-core-object-security], with the following 678 modifications. 680 o In step 2, the decoding of the compressed COSE object follows 681 Section 4. If the received Recipient ID ('kid') does not match 682 with any Recipient Context for the retrieved Gid ('kid context'), 683 then the server creates a new Recipient Context, initializes it 684 according to Section 3 of [I-D.ietf-core-object-security], also 685 retrieving the client's public key. 687 o In step 4, the 'algorithms' array in the Additional Authenticated 688 Data is modified as described in Section 3. 690 o In step 6, the server also verifies the counter signature using 691 the public key of the client from the associated Recipient 692 Context. 694 o Additionally, if the used Recipient Context was created upon 695 receiving this group request and the message is not verified 696 successfully, the server MAY delete that Recipient Context. Such 697 a configuration, which is specified by the application, would 698 prevent attackers from overloading the server's storage and 699 creating processing overhead on the server. 701 6.3. Protecting the Response 703 A server that has received a secure group request may reply with a 704 secure response, which is protected as described in Section 8.3 of 705 [I-D.ietf-core-object-security], with the following modifications. 707 o In step 2, the 'algorithms' array in the Additional Authenticated 708 Data is modified as described in Section 3. 710 o In step 4, the encryption of the COSE object is modified as 711 described in Section 3. The encoding of the compressed COSE 712 object is modified as described in Section 4. 714 o In step 5, the counter signature is computed and the format of the 715 OSCORE mesage is modified as described in Section 4.2. In 716 particular, the payload of the OSCORE message includes also the 717 counter signature. 719 6.4. Verifying the Response 721 Upon receiving a secure response message, the client proceeds as 722 described in Section 8.4 of [I-D.ietf-core-object-security], with the 723 following modifications. 725 o In step 2, the decoding of the compressed COSE object is modified 726 as described in Section 3. The client also checks whether it 727 previously received a secure response to this request, such that 728 it was successfully verified and included the same Recipient ID 729 ('kid') of the just received response. In case of positive match 730 the client SHALL stop processing the response. If the received 731 Recipient ID ('kid') does not match with any Recipient Context for 732 the retrieved Gid ('kid context'), then the client creates a new 733 Recipient Context, initializes it according to Section 3 of 734 [I-D.ietf-core-object-security], also retrieving the server's 735 public key. 737 o In step 3, the 'algorithms' array in the Additional Authenticated 738 Data is modified as described in Section 3. 740 o In step 5, the client also verifies the counter signature using 741 the public key of the server from the associated Recipient 742 Context. In case of success, the client also records the received 743 Recipient ID ('kid') as included in a successfully verified 744 response to the request. 746 o Additionally, if the used Recipient Context was created upon 747 receiving this response and the message is not verified 748 successfully, the client MAY delete that Recipient Context. Such 749 a configuration, which is specified by the application, would 750 prevent attackers from overloading the client's storage and 751 creating processing overhead on the client. 753 Upon freeing up the Token value of a secure group request for 754 possible reuse [RFC7390], the client MUST delete the list of recorded 755 Recipient IDs associated to that request (see step 5 above). 757 7. Responsibilities of the Group Manager 759 The Group Manager is responsible for performing the following tasks: 761 1. Creating and managing OSCORE groups. This includes the 762 assignment of a Gid to every newly created group, as well as 763 ensuring uniqueness of Gids within the set of its OSCORE groups. 765 2. Defining policies for authorizing the joining of its OSCORE 766 groups. Such policies can be enforced locally by the Group 767 Manager, or by a third party in a trust relation with the Group 768 Manager and entrusted to enforce join policies on behalf of the 769 Group Manager. 771 3. Driving the join process to add new endpoints as group members. 773 4. Establishing Security Common Contexts and providing them to 774 authorized group members during the join process, together with 775 a corresponding Security Sender Context. 777 5. Generating and managing Sender IDs within its OSCORE groups, as 778 well as assigning and providing them to new endpoints during the 779 join process. This includes ensuring uniqueness of Sender IDs 780 within each of its OSCORE groups. 782 6. Defining a communication policy for each of its OSCORE groups, 783 and signalling it to new endpoints during the join process. 785 7. Renewing the Security Context of an OSCORE group upon membership 786 change, by revoking and renewing common security parameters and 787 keying material (rekeying). 789 8. Providing the management keying material that a new endpoint 790 requires to participate in the rekeying process, consistent with 791 the key management scheme used in the group joined by the new 792 endpoint. 794 9. Updating the Gid of its OSCORE groups, upon renewing the 795 respective Security Context. 797 10. Acting as key repository, in order to handle the public keys of 798 the members of its OSCORE groups, and providing such public keys 799 to other members of the same group upon request. The actual 800 storage of public keys may be entrusted to a separate secure 801 storage device. 803 8. Security Considerations 805 The same security considerations from OSCORE (Section 11 of 806 [I-D.ietf-core-object-security]) apply to this specification. 807 Additional security aspects to be taken into account are discussed 808 below. 810 8.1. Group-level Security 812 The approach described in this document relies on commonly shared 813 group keying material to protect communication within a group. This 814 has the following implications. 816 o Messages are encrypted at a group level (group-level data 817 confidentiality), i.e. they can be decrypted by any member of the 818 group, but not by an external adversary or other external 819 entities. 821 o The AEAD algorithm provides only group authentication, i.e. it 822 ensures that a message sent to a group has been sent by a member 823 of that group, but not by the alleged sender. This is why source 824 authentication of messages sent to a group is ensured through a 825 counter signature, which is computed by the sender using its own 826 private key and then appended to the message payload. 828 Note that, even if an endpoint is authorized to be a group member and 829 to take part in group communications, there is a risk that it behaves 830 inappropriately. For instance, it can forward the content of 831 messages in the group to unauthorized entities. However, in many use 832 cases, the devices in the group belong to a common authority and are 833 configured by a commissioner (see Appendix B), which results in a 834 practically limited risk and enables a prompt detection/reaction in 835 case of misbehaving. 837 8.2. Uniqueness of (key, nonce) 839 The proof for uniqueness of (key, nonce) pairs in Appendix D.3 of 840 [I-D.ietf-core-object-security] is also valid in group communication 841 scenarios. That is, given an OSCORE group: 843 o Uniqueness of Sender IDs within the group is enforced by the Group 844 Manager. 846 o The case A in Appendix D.3 of [I-D.ietf-core-object-security] for 847 messages including a Partial IV concerns only group requests, and 848 same considerations from [I-D.ietf-core-object-security] apply 849 here as well. 851 o The case B in Appendix D.3 of [I-D.ietf-core-object-security] for 852 messages not including a Partial IV concerns all group responses, 853 and same considerations from [I-D.ietf-core-object-security] apply 854 here as well. 856 As a consequence, each message encrypted/decrypted with the same 857 Sender Key is processed by using a different (ID_PIV, PIV) pair. 858 This means that nonces used by any fixed encrypting endpoint are 859 unique. Thus, each message is processed with a different (key, 860 nonce) pair. 862 8.3. Management of Group Keying Material 864 The approach described in this specification should take into account 865 the risk of compromise of group members. In particular, this 866 document specifies that a key management scheme for secure revocation 867 and renewal of Security Contexts and group keying material should be 868 adopted. 870 Especially in dynamic, large-scale, groups where endpoints can join 871 and leave at any time, it is important that the considered group key 872 management scheme is efficient and highly scalable with the group 873 size, in order to limit the impact on performance due to the Security 874 Context and keying material update. 876 8.4. Update of Security Context and Key Rotation 878 A group member can receive a message shortly after the group has been 879 rekeyed, and new security parameters and keying material have been 880 distributed by the Group Manager. In the following two cases, this 881 may result in misaligned Security Contexts between the sender and the 882 recipient. 884 In the first case, the sender protects a message using the old 885 Security Context, i.e. before having installed the new Security 886 Context. However, the recipient receives the message after having 887 installed the new Security Context, hence not being able to correctly 888 process it. A possible way to ameliorate this issue is to preserve 889 the old, recent, Security Context for a maximum amount of time 890 defined by the application. By doing so, the recipient can still try 891 to process the received message using the old retained Security 892 Context as second attempt. Note that a former (compromised) group 893 member can take advantage of this by sending messages protected with 894 the old retained Security Context. Therefore, a conservative 895 application policy should not admit the storage of old Security 896 Contexts. 898 In the second case, the sender protects a message using the new 899 Security Context, but the recipient receives that request before 900 having installed the new Security Context. Therefore, the recipient 901 would not be able to correctly process the request and hence discards 902 it. If the recipient receives the new Security Context shortly after 903 that and the sender endpoint uses CoAP retransmissions, the former 904 will still be able to receive and correctly process the message. In 905 any case, the recipient should actively ask the Group Manager for an 906 updated Security Context according to an application-defined policy, 907 for instance after a given number of unsuccessfully decrypted 908 incoming messages. 910 8.5. Collision of Group Identifiers 912 In case endpoints are deployed in multiple groups managed by 913 different non-synchronized Group Managers, it is possible for Group 914 Identifiers of different groups to coincide. That can also happen if 915 the application can not guarantee unique Group Identifiers within a 916 given Group Manager. However, this does not impair the security of 917 the AEAD algorithm. 919 In fact, as long as the Master Secret is different for different 920 groups and this condition holds over time, and as long as the Sender 921 IDs within a group are unique, AEAD keys are different among 922 different groups. 924 9. IANA Considerations 926 Note to RFC Editor: Please replace all occurrences of "[This 927 Document]" with the RFC number of this specification and delete this 928 paragraph. 930 This document has the following actions for IANA. 932 9.1. Counter Signature Parameters Registry 934 This specification establishes the IANA "Counter Signature 935 Parameters" Registry. The Registry has been created to use the 936 "Expert Review Required" registration procedure [RFC8126]. Expert 937 review guidelines are provided in Section 9.2. 939 The columns of this table are: 941 o Name: A value that can be used to identify an algorithm in 942 documents for easier comprehension. Its value is taken from the 943 'Name' column of the "COSE Algorithms" Registry. 945 o Value: The value to be used to identify this algorithm. Its 946 content is taken from the 'Value' column of the "COSE Algorithms" 947 Registry. The value MUST be the same one used in the "COSE 948 Algorithms" Registry for the entry with the same 'Name' field. 950 o Parameters: This indicates the CBOR encoding of the parameters (if 951 any) for the counter signature algorithm indicated by the 'Value' 952 field. 954 o Description: A short description of the parameters encoded in the 955 'Parameters' field (if any). 957 o Reference: This contains a pointer to the public specification for 958 the field, if one exists. 960 Initial entries in the registry are as follows. 962 +-------------+-------+-------------+-----------------+-----------+ 963 | Name | Value | Parameters | Description | Reference | 964 +-------------+-------+-------------+-----------------+-----------+ 965 | | | | | | 966 | EdDSA | -8 | crv : int | crv value taken | [This | 967 | | | | from the COSE | Document] | 968 | | | | Elliptic Curve | | 969 | | | | Registry | | 970 | | | | | | 971 +-------------+-------+-------------+-----------------+-----------+ 972 | | | | | | 973 | ES256 | -7 | crv : int | crv value taken | [This | 974 | | | | from the COSE | Document] | 975 | | | | Elliptic Curve | | 976 | | | | Registry | | 977 | | | | | | 978 +-------------+-------+-------------+-----------------+-----------+ 979 | | | | | | 980 | ES384 | -35 | crv : int | crv value taken | [This | 981 | | | | from the COSE | Document] | 982 | | | | Elliptic Curve | | 983 | | | | Registry | | 984 | | | | | | 985 +-------------+-------+-------------+-----------------+-----------+ 986 | | | | | | 987 | ES512 | -36 | crv : int | crv value taken | [This | 988 | | | | from the COSE | Document] | 989 | | | | Elliptic Curve | | 990 | | | | Registry | | 991 | | | | | | 992 +-------------+-------+-------------+-----------------+-----------+ 993 | | | | | | 994 | PS256 | -37 | | Parameters not | [This | 995 | | | | present | Document] | 996 | | | | | | 997 +-------------+-------+-------------+-----------------+-----------+ 998 | | | | | | 999 | PS384 | -38 | | Parameters not | [This | 1000 | | | | present | Document] | 1001 | | | | | | 1002 +-------------+-------+-------------+-----------------+-----------+ 1003 | | | | | | 1004 | PS512 | -39 | | Parameters not | [This | 1005 | | | | present | Document] | 1006 | | | | | | 1007 +-------------+-------+-------------+-----------------+-----------+ 1008 | | | | | | 1009 | RSAES-OAEP | -40 | | Parameters not | [This | 1010 | w/ RFC 8017 | | | present | Document] | 1011 | default | | | | | 1012 | parameters | | | | | 1013 | | | | | | 1014 +-------------+-------+-------------+-----------------+-----------+ 1015 | | | | | | 1016 | RSAES-OAEP | -41 | | Parameters not | [This | 1017 | w/ SHA-256 | | | present | Document] | 1018 | | | | | | 1019 +-------------+-------+-------------+-----------------+-----------+ 1020 | | | | | | 1021 | RSAES-OAEP | -42 | | Parameters not | [This | 1022 | w/ SHA-512 | | | present | Document] | 1023 | | | | | | 1024 +-------------+-------+-------------+-----------------+-----------+ 1026 9.2. Expert Review Instructions 1028 The IANA Registry established in this document is defined as expert 1029 review. This section gives some general guidelines for what the 1030 experts should be looking for, but they are being designated as 1031 experts for a reason so they should be given substantial latitude. 1033 Expert reviewers should take into consideration the following points: 1035 TBD 1037 10. References 1039 10.1. Normative References 1041 [I-D.ietf-core-object-security] 1042 Selander, G., Mattsson, J., Palombini, F., and L. Seitz, 1043 "Object Security for Constrained RESTful Environments 1044 (OSCORE)", draft-ietf-core-object-security-16 (work in 1045 progress), March 2019. 1047 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1048 Requirement Levels", BCP 14, RFC 2119, 1049 DOI 10.17487/RFC2119, March 1997, 1050 . 1052 [RFC6979] Pornin, T., "Deterministic Usage of the Digital Signature 1053 Algorithm (DSA) and Elliptic Curve Digital Signature 1054 Algorithm (ECDSA)", RFC 6979, DOI 10.17487/RFC6979, August 1055 2013, . 1057 [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained 1058 Application Protocol (CoAP)", RFC 7252, 1059 DOI 10.17487/RFC7252, June 2014, 1060 . 1062 [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital 1063 Signature Algorithm (EdDSA)", RFC 8032, 1064 DOI 10.17487/RFC8032, January 2017, 1065 . 1067 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 1068 Writing an IANA Considerations Section in RFCs", BCP 26, 1069 RFC 8126, DOI 10.17487/RFC8126, June 2017, 1070 . 1072 [RFC8152] Schaad, J., "CBOR Object Signing and Encryption (COSE)", 1073 RFC 8152, DOI 10.17487/RFC8152, July 2017, 1074 . 1076 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 1077 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 1078 May 2017, . 1080 10.2. Informative References 1082 [I-D.ietf-ace-key-groupcomm-oscore] 1083 Tiloca, M., Park, J., and F. Palombini, "Key Management 1084 for OSCORE Groups in ACE", draft-ietf-ace-key-groupcomm- 1085 oscore-00 (work in progress), December 2018. 1087 [I-D.ietf-ace-oauth-authz] 1088 Seitz, L., Selander, G., Wahlstroem, E., Erdtman, S., and 1089 H. Tschofenig, "Authentication and Authorization for 1090 Constrained Environments (ACE) using the OAuth 2.0 1091 Framework (ACE-OAuth)", draft-ietf-ace-oauth-authz-22 1092 (work in progress), March 2019. 1094 [I-D.ietf-core-echo-request-tag] 1095 Amsuess, C., Mattsson, J., and G. Selander, "Echo and 1096 Request-Tag", draft-ietf-core-echo-request-tag-03 (work in 1097 progress), October 2018. 1099 [I-D.somaraju-ace-multicast] 1100 Somaraju, A., Kumar, S., Tschofenig, H., and W. Werner, 1101 "Security for Low-Latency Group Communication", draft- 1102 somaraju-ace-multicast-02 (work in progress), October 1103 2016. 1105 [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, 1106 "Transmission of IPv6 Packets over IEEE 802.15.4 1107 Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, 1108 . 1110 [RFC4949] Shirey, R., "Internet Security Glossary, Version 2", 1111 FYI 36, RFC 4949, DOI 10.17487/RFC4949, August 2007, 1112 . 1114 [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 1115 Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, 1116 DOI 10.17487/RFC6282, September 2011, 1117 . 1119 [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer 1120 Security Version 1.2", RFC 6347, DOI 10.17487/RFC6347, 1121 January 2012, . 1123 [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for 1124 Constrained-Node Networks", RFC 7228, 1125 DOI 10.17487/RFC7228, May 2014, 1126 . 1128 [RFC7390] Rahman, A., Ed. and E. Dijk, Ed., "Group Communication for 1129 the Constrained Application Protocol (CoAP)", RFC 7390, 1130 DOI 10.17487/RFC7390, October 2014, 1131 . 1133 [RFC7641] Hartke, K., "Observing Resources in the Constrained 1134 Application Protocol (CoAP)", RFC 7641, 1135 DOI 10.17487/RFC7641, September 2015, 1136 . 1138 Appendix A. Assumptions and Security Objectives 1140 This section presents a set of assumptions and security objectives 1141 for the approach described in this document. 1143 A.1. Assumptions 1145 The following assumptions are assumed to be already addressed and are 1146 out of the scope of this document. 1148 o Multicast communication topology: this document considers both 1149 1-to-N (one sender and multiple recipients) and M-to-N (multiple 1150 senders and multiple recipients) communication topologies. The 1151 1-to-N communication topology is the simplest group communication 1152 scenario that would serve the needs of a typical low-power and 1153 lossy network (LLN). Examples of use cases that benefit from 1154 secure group communication are provided in Appendix B. 1156 In a 1-to-N communication model, only a single client transmits 1157 data to the group, in the form of request messages; in an M-to-N 1158 communication model (where M and N do not necessarily have the 1159 same value), M group members are clients. According to [RFC7390], 1160 any possible proxy entity is supposed to know about the clients in 1161 the group and to not perform aggregation of response messages from 1162 multiple servers. Also, every client expects and is able to 1163 handle multiple response messages associated to a same request 1164 sent to the group. 1166 o Group size: security solutions for group communication should be 1167 able to adequately support different and possibly large groups. 1168 The group size is the current number of members in a group. In 1169 the use cases mentioned in this document, the number of clients 1170 (normally the controlling devices) is expected to be much smaller 1171 than the number of servers (i.e. the controlled devices). A 1172 security solution for group communication that supports 1 to 50 1173 clients would be able to properly cover the group sizes required 1174 for most use cases that are relevant for this document. The 1175 maximum group size is expected to be in the range of 2 to 100 1176 devices. Groups larger than that should be divided into smaller 1177 independent groups. 1179 o Communication with the Group Manager: an endpoint must use a 1180 secure dedicated channel when communicating with the Group 1181 Manager, also when not registered as group member. 1183 o Provisioning and management of Security Contexts: an OSCORE 1184 Security Context must be established among the group members. A 1185 secure mechanism must be used to generate, revoke and 1186 (re-)distribute keying material, multicast security policies and 1187 security parameters in the group. The actual provisioning and 1188 management of the Security Context is out of the scope of this 1189 document. 1191 o Multicast data security ciphersuite: all group members must agree 1192 on a ciphersuite to provide authenticity, integrity and 1193 confidentiality of messages in the group. The ciphersuite is 1194 specified as part of the Security Context. 1196 o Backward security: a new device joining the group should not have 1197 access to any old Security Contexts used before its joining. This 1198 ensures that a new group member is not able to decrypt 1199 confidential data sent before it has joined the group. The 1200 adopted key management scheme should ensure that the Security 1201 Context is updated to ensure backward confidentiality. The actual 1202 mechanism to update the Security Context and renew the group 1203 keying material upon a group member's joining has to be defined as 1204 part of the group key management scheme. 1206 o Forward security: entities that leave the group should not have 1207 access to any future Security Contexts or message exchanged within 1208 the group after their leaving. This ensures that a former group 1209 member is not able to decrypt confidential data sent within the 1210 group anymore. Also, it ensures that a former member is not able 1211 to send encrypted and/or integrity protected messages to the group 1212 anymore. The actual mechanism to update the Security Context and 1213 renew the group keying material upon a group member's leaving has 1214 to be defined as part of the group key management scheme. 1216 A.2. Security Objectives 1218 The approach described in this document aims at fulfilling the 1219 following security objectives: 1221 o Data replay protection: replayed group request messages or 1222 response messages must be detected. 1224 o Group-level data confidentiality: messages sent within the group 1225 shall be encrypted if privacy sensitive data is exchanged within 1226 the group. This document considers group-level data 1227 confidentiality since messages are encrypted at a group level, 1228 i.e. in such a way that they can be decrypted by any member of the 1229 group, but not by an external adversary or other external 1230 entities. 1232 o Source authentication: messages sent within the group shall be 1233 authenticated. That is, it is essential to ensure that a message 1234 is originated by a member of the group in the first place, and in 1235 particular by a specific member of the group. 1237 o Message integrity: messages sent within the group shall be 1238 integrity protected. That is, it is essential to ensure that a 1239 message has not been tampered with by an external adversary or 1240 other external entities which are not group members. 1242 o Message ordering: it must be possible to determine the ordering of 1243 messages coming from a single sender. In accordance with OSCORE 1244 [I-D.ietf-core-object-security], this results in providing 1245 relative freshness of group requests and absolute freshness of 1246 responses. It is not required to determine ordering of messages 1247 from different senders. 1249 Appendix B. List of Use Cases 1251 Group Communication for CoAP [RFC7390] provides the necessary 1252 background for multicast-based CoAP communication, with particular 1253 reference to low-power and lossy networks (LLNs) and resource 1254 constrained environments. The interested reader is encouraged to 1255 first read [RFC7390] to understand the non-security related details. 1256 This section discusses a number of use cases that benefit from secure 1257 group communication. Specific security requirements for these use 1258 cases are discussed in Appendix A. 1260 o Lighting control: consider a building equipped with IP-connected 1261 lighting devices, switches, and border routers. The devices are 1262 organized into groups according to their physical location in the 1263 building. For instance, lighting devices and switches in a room 1264 or corridor can be configured as members of a single group. 1265 Switches are then used to control the lighting devices by sending 1266 on/off/dimming commands to all lighting devices in a group, while 1267 border routers connected to an IP network backbone (which is also 1268 multicast-enabled) can be used to interconnect routers in the 1269 building. Consequently, this would also enable logical groups to 1270 be formed even if devices in the lighting group may be physically 1271 in different subnets (e.g. on wired and wireless networks). 1273 Connectivity between lighting devices may be realized, for 1274 instance, by means of IPv6 and (border) routers supporting 6LoWPAN 1275 [RFC4944][RFC6282]. Group communication enables synchronous 1276 operation of a group of connected lights, ensuring that the light 1277 preset (e.g. dimming level or color) of a large group of 1278 luminaires are changed at the same perceived time. This is 1279 especially useful for providing a visual synchronicity of light 1280 effects to the user. As a practical guideline, events within a 1281 200 ms interval are perceived as simultaneous by humans, which is 1282 necessary to ensure in many setups. Devices may reply back to the 1283 switches that issue on/off/dimming commands, in order to report 1284 about the execution of the requested operation (e.g. OK, failure, 1285 error) and their current operational status. In a typical 1286 lighting control scenario, a single switch is the only entity 1287 responsible for sending commands to a group of lighting devices. 1288 In more advanced lighting control use cases, a M-to-N 1289 communication topology would be required, for instance in case 1290 multiple sensors (presence or day-light) are responsible to 1291 trigger events to a group of lighting devices. Especially in 1292 professional lighting scenarios, the roles of client and server 1293 are configured by the lighting commissioner, and devices strictly 1294 follow those roles. 1296 o Integrated building control: enabling Building Automation and 1297 Control Systems (BACSs) to control multiple heating, ventilation 1298 and air-conditioning units to pre-defined presets. Controlled 1299 units can be organized into groups in order to reflect their 1300 physical position in the building, e.g. devices in the same room 1301 can be configured as members of a single group. As a practical 1302 guideline, events within intervals of seconds are typically 1303 acceptable. Controlled units are expected to possibly reply back 1304 to the BACS issuing control commands, in order to report about the 1305 execution of the requested operation (e.g. OK, failure, error) 1306 and their current operational status. 1308 o Software and firmware updates: software and firmware updates often 1309 comprise quite a large amount of data. This can overload a LLN 1310 that is otherwise typically used to deal with only small amounts 1311 of data, on an infrequent base. Rather than sending software and 1312 firmware updates as unicast messages to each individual device, 1313 multicasting such updated data to a larger group of devices at 1314 once displays a number of benefits. For instance, it can 1315 significantly reduce the network load and decrease the overall 1316 time latency for propagating this data to all devices. Even if 1317 the complete whole update process itself is secured, securing the 1318 individual messages is important, in case updates consist of 1319 relatively large amounts of data. In fact, checking individual 1320 received data piecemeal for tampering avoids that devices store 1321 large amounts of partially corrupted data and that they detect 1322 tampering hereof only after all data has been received. Devices 1323 receiving software and firmware updates are expected to possibly 1324 reply back, in order to provide a feedback about the execution of 1325 the update operation (e.g. OK, failure, error) and their current 1326 operational status. 1328 o Parameter and configuration update: by means of multicast 1329 communication, it is possible to update the settings of a group of 1330 similar devices, both simultaneously and efficiently. Possible 1331 parameters are related, for instance, to network load management 1332 or network access controls. Devices receiving parameter and 1333 configuration updates are expected to possibly reply back, to 1334 provide a feedback about the execution of the update operation 1335 (e.g. OK, failure, error) and their current operational status. 1337 o Commissioning of LLNs systems: a commissioning device is 1338 responsible for querying all devices in the local network or a 1339 selected subset of them, in order to discover their presence, and 1340 be aware of their capabilities, default configuration, and 1341 operating conditions. Queried devices displaying similarities in 1342 their capabilities and features, or sharing a common physical 1343 location can be configured as members of a single group. Queried 1344 devices are expected to reply back to the commissioning device, in 1345 order to notify their presence, and provide the requested 1346 information and their current operational status. 1348 o Emergency multicast: a particular emergency related information 1349 (e.g. natural disaster) is generated and multicast by an emergency 1350 notifier, and relayed to multiple devices. The latters may reply 1351 back to the emergency notifier, in order to provide their feedback 1352 and local information related to the ongoing emergency. This kind 1353 of setups should additionally rely on a fault tolerance multicast 1354 algorithm, such as MPL. 1356 Appendix C. Example of Group Identifier Format 1358 This section provides an example of how the Group Identifier (Gid) 1359 can be specifically formatted. That is, the Gid can be composed of 1360 two parts, namely a Group Prefix and a Group Epoch. 1362 The Group Prefix is constant over time and is uniquely defined in the 1363 set of all the groups associated to the same Group Manager. The 1364 choice of the Group Prefix for a given group's Security Context is 1365 application specific. The size of the Group Prefix directly impact 1366 on the maximum number of distinct groups under the same Group 1367 Manager. 1369 The Group Epoch is set to 0 upon the group's initialization, and is 1370 incremented by 1 upon completing each renewal of the Security Context 1371 and keying material in the group (see Section 2.1). In particular, 1372 once a new Master Secret has been distributed to the group, all the 1373 group members increment by 1 the Group Epoch in the Group Identifier 1374 of that group. 1376 As an example, a 3-byte Group Identifier can be composed of: i) a 1377 1-byte Group Prefix '0xb1' interpreted as a raw byte string; and ii) 1378 a 2-byte Group Epoch interpreted as an unsigned integer ranging from 1379 0 to 65535. Then, after having established the Security Common 1380 Context 61532 times in the group, its Group Identifier will assume 1381 value '0xb1f05c'. 1383 Using an immutable Group Prefix for a group assumes that enough time 1384 elapses between two consecutive usages of the same Group Epoch value 1385 in that group. This ensures that the Gid value is temporally unique 1386 during the lifetime of a given message. Thus, the expected highest 1387 rate for addition/removal of group members and consequent group 1388 rekeying should be taken into account for a proper dimensioning of 1389 the Group Epoch size. 1391 As discussed in Section 8.5, if endpoints are deployed in multiple 1392 groups managed by different non-synchronized Group Managers, it is 1393 possible that Group Identifiers of different groups coincide at some 1394 point in time. In this case, a recipient has to handle coinciding 1395 Group Identifiers, and has to try using different OSCORE Security 1396 Contexts to process an incoming message, until the right one is found 1397 and the message is correctly verified. Therefore, it is favourable 1398 that Group Identifiers from different Group Managers have a size that 1399 result in a small probability of collision. How small this 1400 probability should be is up to system designers. 1402 Appendix D. Set-up of New Endpoints 1404 An endpoint joins a group by explicitly interacting with the 1405 responsible Group Manager. When becoming members of a group, 1406 endpoints are not required to know how many and what endpoints are in 1407 the same group. 1409 Communications between a joining endpoint and the Group Manager rely 1410 on the CoAP protocol and must be secured. Specific details on how to 1411 secure communications between joining endpoints and a Group Manager 1412 are out of the scope of this document. 1414 The Group Manager must verify that the joining endpoint is authorized 1415 to join the group. To this end, the Group Manager can directly 1416 authorize the joining endpoint, or expect it to provide authorization 1417 evidence previously obtained from a trusted entity. Further details 1418 about the authorization of joining endpoints are out of scope. 1420 In case of successful authorization check, the Group Manager 1421 generates a Sender ID assigned to the joining endpoint, before 1422 proceeding with the rest of the join process. That is, the Group 1423 Manager provides the joining endpoint with the keying material and 1424 parameters to initialize the OSCORE Security Context (see Section 2). 1425 The actual provisioning of keying material and parameters to the 1426 joining endpoint is out of the scope of this document. 1428 It is RECOMMENDED that the join process adopts the approach described 1429 in [I-D.ietf-ace-key-groupcomm-oscore] and based on the ACE framework 1430 for Authentication and Authorization in constrained environments 1431 [I-D.ietf-ace-oauth-authz]. 1433 Appendix E. Examples of Synchronization Approaches 1435 This section describes three possible approaches that can be 1436 considered by server endpoints to synchronize with sender sequence 1437 numbers of client endpoints sending group requests. 1439 E.1. Best-Effort Synchronization 1441 Upon receiving a group request from a client, a server does not take 1442 any action to synchonize with the sender sequence number of that 1443 client. This provides no assurance at all as to message freshness, 1444 which can be acceptable in non-critical use cases. 1446 E.2. Baseline Synchronization 1448 Upon receiving a group request from a given client for the first 1449 time, a server initializes its last-seen sender sequence number in 1450 its Recipient Context associated to that client. However, the server 1451 drops the group request without delivering it to the application 1452 layer. This provides a reference point to identify if future group 1453 requests from the same client are fresher than the last one received. 1455 A replay time interval exists, between when a possibly replayed or 1456 delayed message is originally transmitted by a given client and the 1457 first authentic fresh message from that same client is received. 1458 This can be acceptable for use cases where servers admit such a 1459 trade-off between performance and assurance of message freshness. 1461 E.3. Challenge-Response Synchronization 1463 A server performs a challenge-response exchange with a client, by 1464 using the Echo Option for CoAP described in Section 2 of 1465 [I-D.ietf-core-echo-request-tag] and according to Section 7.5.2 of 1466 [I-D.ietf-core-object-security]. 1468 That is, upon receiving a group request from a particular client for 1469 the first time, the server processes the message as described in 1470 Section 6.2 of this specification, but, even if valid, does not 1471 deliver it to the application. Instead, the server replies to the 1472 client with a 4.03 Forbidden response message including an Echo 1473 Option, and stores the option value included therein. 1475 Upon receiving a 4.03 Forbidden response that includes an Echo Option 1476 and originates from a verified group member, a client sends a request 1477 as a unicast message addressed to the same server, echoing the Echo 1478 Option value. In particular, the client does not necessarily resend 1479 the same group request, but can instead send a more recent one, if 1480 the application permits it. This makes it possible for the client to 1481 not retain previously sent group requests for full retransmission, 1482 unless the application explicitly requires otherwise. In either 1483 case, the client uses the sender sequence number value currently 1484 stored in its own Sender Context. If the client stores group 1485 requests for possible retransmission with the Echo Option, it should 1486 not store a given request for longer than a pre-configured time 1487 interval. Note that the unicast request echoing the Echo Option is 1488 correctly treated and processed as a message, since the 'kid context' 1489 field including the Group Identifier of the OSCORE group is still 1490 present in the OSCORE Option as part of the COSE object (see 1491 Section 3). 1493 Upon receiving the unicast request including the Echo Option, the 1494 server verifies that the option value equals the stored and 1495 previously sent value; otherwise, the request is silently discarded. 1496 Then, the server verifies that the unicast request has been received 1497 within a pre-configured time interval, as described in 1498 [I-D.ietf-core-echo-request-tag]. In such a case, the request is 1499 further processed and verified; otherwise, it is silently discarded. 1500 Finally, the server updates the Recipient Context associated to that 1501 client, by setting the Replay Window according to the Sequence Number 1502 from the unicast request conveying the Echo Option. The server 1503 either delivers the request to the application if it is an actual 1504 retransmission of the original one, or discards it otherwise. 1505 Mechanisms to signal whether the resent request is a full 1506 retransmission of the original one are out of the scope of this 1507 specification. 1509 In case it does not receive a valid unicast request including the 1510 Echo Option within the configured time interval, the server endpoint 1511 should perform the same challenge-response upon receiving the next 1512 group request from that same client. 1514 A server should not deliver group requests from a given client to the 1515 application until one valid request from that same client has been 1516 verified as fresh, as conveying an echoed Echo Option 1517 [I-D.ietf-core-echo-request-tag]. Also, a server may perform the 1518 challenge-response described above at any time, if synchronization 1519 with sender sequence numbers of clients is (believed to be) lost, for 1520 instance after a device reboot. It is the role of the application to 1521 define under what circumstances sender sequence numbers lose 1522 synchronization. This can include a minimum gap between the sender 1523 sequence number of the latest accepted group request from a client 1524 and the sender sequence number of a group request just received from 1525 the same client. A client has to be always ready to perform the 1526 challenge-response based on the Echo Option in case a server starts 1527 it. 1529 Note that endpoints configured as silent servers are not able to 1530 perform the challenge-response described above, as they do not store 1531 a Sender Context to secure the 4.03 Forbidden response to the client. 1532 Therefore, silent servers should adopt alternative approaches to 1533 achieve and maintain synchronization with sender sequence numbers of 1534 clients. 1536 This approach provides an assurance of absolute message freshness. 1537 However, it can result in an impact on performance which is 1538 undesirable or unbearable, especially in large groups where many 1539 endpoints at the same time might join as new members or lose 1540 synchronization. 1542 Appendix F. No Verification of Signatures 1544 There are some application scenarios using group communication that 1545 have particularly strict requirements. One example of this is the 1546 requirement of low message latency in non-emergency lighting 1547 applications [I-D.somaraju-ace-multicast]. For those applications 1548 which have tight performance constraints and relaxed security 1549 requirements, it can be inconvenient for some endpoints to verify 1550 digital signatures in order to assert source authenticity of received 1551 messages. In other cases, the signature verification can be deferred 1552 or only checked for specific actions. For instance, a command to 1553 turn a bulb on where the bulb is already on does not need the 1554 signature to be checked. In such situations, the counter signature 1555 needs to be included anyway as part of the message, so that an 1556 endpoint that needs to validate the signature for any reason has the 1557 ability to do so. 1559 In this specification, it is NOT RECOMMENDED that endpoints do not 1560 verify the counter signature of received messages. However, it is 1561 recognized that there may be situations where it is not always 1562 required. The consequence of not doing the signature validation is 1563 that security in the group is based only on the group-authenticity of 1564 the shared keying material used for encryption. That is, endpoints 1565 in the group have evidence that a received message has been 1566 originated by a group member, although not specifically identifiable 1567 in a secure way. This can violate a number of security requirements, 1568 as the compromise of any element in the group means that the attacker 1569 has the ability to control the entire group. Even worse, the group 1570 may not be limited in scope, and hence the same keying material might 1571 be used not only for light bulbs but for locks as well. Therefore, 1572 extreme care must be taken in situations where the security 1573 requirements are relaxed, so that deployment of the system will 1574 always be done safely. 1576 Appendix G. Document Updates 1578 RFC EDITOR: PLEASE REMOVE THIS SECTION. 1580 G.1. Version -03 to -04 1582 o Added the new "Counter Signature Parameters" in the Security 1583 Common Context (see Section 2). 1585 o Added recommendation on using "deterministic ECDSA" if ECDSA is 1586 used as counter signature algorithm (see Section 2). 1588 o Clarified possible asynchronous retrieval of key material from the 1589 Group Manager, in order to process incoming messages (see 1590 Section 2). 1592 o Structured Section 3 into subsections. 1594 o Added the new 'par_countersign' to the aad_array of the 1595 external_aad (see Section 3.1). 1597 o Clarified non reliability of 'kid' as identity indicator for a 1598 group member (see Section 2.1). 1600 o Described possible provisioning of new Sender ID in case of 1601 Partial IV wrap-around (see Section 2.2). 1603 o The former signature bit in the Flag Byte of the OSCORE option 1604 value is reverted to reserved (see Section 4.1). 1606 o Updated examples of compressed COSE object, now with the sixth 1607 less significant bit in the Flag Byte of the OSCORE option value 1608 set to 0 (see Section 4.3). 1610 o Relaxed statements on sending error messages (see Section 6). 1612 o Added explicit step on computing the counter signature for 1613 outgoing messages (see Setions 6.1 and 6.3). 1615 o Handling of just created Recipient Contexts in case of 1616 unsuccessful message verification (see Sections 6.2 and 6.4). 1618 o Handling of replied/repeated responses on the client (see 1619 Section 6.4). 1621 o New IANA Registry "Counter Signature Parameters" (see 1622 Section 9.1). 1624 G.2. Version -02 to -03 1626 o Revised structure and phrasing for improved readability and better 1627 alignment with draft-ietf-core-object-security. 1629 o Added discussion on wrap-Around of Partial IVs (see Section 2.2). 1631 o Separate sections for the COSE Object (Section 3) and the OSCORE 1632 Header Compression (Section 4). 1634 o The countersignature is now appended to the encrypted payload of 1635 the OSCORE message, rather than included in the OSCORE Option (see 1636 Section 4). 1638 o Extended scope of Section 5, now titled " Message Binding, 1639 Sequence Numbers, Freshness and Replay Protection". 1641 o Clarifications about Non-Confirmable messages in Section 5.1 1642 "Synchronization of Sender Sequence Numbers". 1644 o Clarifications about error handling in Section 6 "Message 1645 Processing". 1647 o Compacted list of responsibilities of the Group Manager in 1648 Section 7. 1650 o Revised and extended security considerations in Section 8. 1652 o Added IANA considerations for the OSCORE Flag Bits Registry in 1653 Section 9. 1655 o Revised Appendix D, now giving a short high-level description of a 1656 new endpoint set-up. 1658 G.3. Version -01 to -02 1660 o Terminology has been made more aligned with RFC7252 and draft- 1661 ietf-core-object-security: i) "client" and "server" replace the 1662 old "multicaster" and "listener", respectively; ii) "silent 1663 server" replaces the old "pure listener". 1665 o Section 2 has been updated to have the Group Identifier stored in 1666 the 'ID Context' parameter defined in draft-ietf-core-object- 1667 security. 1669 o Section 3 has been updated with the new format of the Additional 1670 Authenticated Data. 1672 o Major rewriting of Section 4 to better highlight the differences 1673 with the message processing in draft-ietf-core-object-security. 1675 o Added Sections 7.2 and 7.3 discussing security considerations 1676 about uniqueness of (key, nonce) and collision of group 1677 identifiers, respectively. 1679 o Minor updates to Appendix A.1 about assumptions on multicast 1680 communication topology and group size. 1682 o Updated Appendix C on format of group identifiers, with practical 1683 implications of possible collisions of group identifiers. 1685 o Updated Appendix D.2, adding a pointer to draft-palombini-ace-key- 1686 groupcomm about retrieval of nodes' public keys through the Group 1687 Manager. 1689 o Minor updates to Appendix E.3 about Challenge-Response 1690 synchronization of sequence numbers based on the Echo option from 1691 draft-ietf-core-echo-request-tag. 1693 G.4. Version -00 to -01 1695 o Section 1.1 has been updated with the definition of group as 1696 "security group". 1698 o Section 2 has been updated with: 1700 * Clarifications on etablishment/derivation of security contexts. 1702 * A table summarizing the the additional context elements 1703 compared to OSCORE. 1705 o Section 3 has been updated with: 1707 * Examples of request and response messages. 1709 * Use of CounterSignature0 rather than CounterSignature. 1711 * Additional Authenticated Data including also the signature 1712 algorithm, while not including the Group Identifier any longer. 1714 o Added Section 6, listing the responsibilities of the Group 1715 Manager. 1717 o Added Appendix A (former section), including assumptions and 1718 security objectives. 1720 o Appendix B has been updated with more details on the use cases. 1722 o Added Appendix C, providing an example of Group Identifier format. 1724 o Appendix D has been updated to be aligned with draft-palombini- 1725 ace-key-groupcomm. 1727 Acknowledgments 1729 The authors sincerely thank Stefan Beck, Rolf Blom, Carsten Bormann, 1730 Esko Dijk, Klaus Hartke, Rikard Hoeglund, Richard Kelsey, John 1731 Mattsson, Jim Schaad, Ludwig Seitz and Peter van der Stok for their 1732 feedback and comments. 1734 The work on this document has been partly supported by VINNOVA and 1735 the Celtic-Next project CRITISEC; and by the EIT-Digital High Impact 1736 Initiative ACTIVE. 1738 Authors' Addresses 1740 Marco Tiloca 1741 RISE AB 1742 Isafjordsgatan 22 1743 Kista SE-16440 Stockholm 1744 Sweden 1746 Email: marco.tiloca@ri.se 1747 Goeran Selander 1748 Ericsson AB 1749 Torshamnsgatan 23 1750 Kista SE-16440 Stockholm 1751 Sweden 1753 Email: goran.selander@ericsson.com 1755 Francesca Palombini 1756 Ericsson AB 1757 Torshamnsgatan 23 1758 Kista SE-16440 Stockholm 1759 Sweden 1761 Email: francesca.palombini@ericsson.com 1763 Jiye Park 1764 Universitaet Duisburg-Essen 1765 Schuetzenbahn 70 1766 Essen 45127 1767 Germany 1769 Email: ji-ye.park@uni-due.de