ace                                                          A. Somaraju
Internet-Draft                                     Tridonic GmbH & Co KG
Intended status: Standards Track                                S. Kumar
Expires: January 7, 2016                                Philips Research
                                                           H. Tschofenig
                                                                ARM Ltd.
                                                            July 6, 2015


               Multicast Security for the Lighting Domain
                  draft-somaraju-ace-multicast-00.txt

Abstract

   Lighting systems have strict requirements on message latency and
   synchronization (typically latency less than 200 ms and jitter less
   than 50 ms).  There are several lighting use cases that require
   securing such communication between a (group of) senders and a group
   of receivers.  This draft describes initial ideas for authorization
   and key management required for the secure group communication within
   a lighting system.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 7, 2016.

Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Somaraju, et al.         Expires January 7, 2016                [Page 1]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Authorization Policy  . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Access Levels . . . . . . . . . . . . . . . . . . . . . .   3
     3.2.  Application, multicast and security groups  . . . . . . .   4
   4.  Architecture  . . . . . . . . . . . . . . . . . . . . . . . .   5
   5.  Access Tokens . . . . . . . . . . . . . . . . . . . . . . . .  11
   6.  Lighting Application Example  . . . . . . . . . . . . . . . .  14
     6.1.  Unicast Messages using the LWM2M Object Model . . . . . .  14
     6.2.  Multicast Communication using the LWM2M Object Model  . .  16
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  19
     7.1.  Token Verification  . . . . . . . . . . . . . . . . . . .  19
     7.2.  Token Revocation  . . . . . . . . . . . . . . . . . . . .  19
     7.3.  Time  . . . . . . . . . . . . . . . . . . . . . . . . . .  20
   8.  Operational Considerations  . . . . . . . . . . . . . . . . .  20
     8.1.  Persistence of State Information  . . . . . . . . . . . .  20
     8.2.  Provisioning in Small Networks  . . . . . . . . . . . . .  20
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  21
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  21
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  21
     10.2.  Informative References . . . . . . . . . . . . . . . . .  21
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  22

1.  Introduction

   There are several lighting related use cases that require securing
   communication between a (group of) senders and a group of receivers.
   Often, a set of lighting nodes (e.g. luminaires, wall-switches,
   sensors) are grouped together into a single "Application Group".

   For such use-cases, three requirements need to be addressed:

   1.  Only authorized members of the application group must be able
       read and process messages.

   2.  Receivers of group messages must be able to verify the integrity
       of received messages as being generated within the group.






Somaraju, et al.         Expires January 7, 2016                [Page 2]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   3.  Usually, message transfer and processing must happen with low
       latency and in synchronous manner (typically latency less than
       200 ms and jitter less than 50 ms).

   This document discusses these three issues and describes initial
   ideas on how they can be addressed.

2.  Terminology

   This document uses the following terms from [I-D.gerdes-ace-actors]:
   Authorization Server, Resource Owner, Client, Resource Server.  The
   terms 'sender' and 'receiver' refer to the application layer
   messaging used for lighting control; other communication interactions
   with the supporting infrastructure uses unicast messaging.

   This document also assumes that the reader is familiar with the OMA
   Lightweight Machine-to-Machine (LWM2M) specifications [LWM2M] and the
   IPSO specification [IPSO].

3.  Authorization Policy

   When implementing an authorization policy two factors need to be
   considered:

   1.  The type of resource/service that is being offered by an end
       node, and

   2.  The group of nodes that are allowed to access a given type of
       resource.

   The type of resources in the lighting domain can be categorized into
   multiple (access) levels and these levels are described below.  For
   resources/services that belong to a category less than access level
   2, there are multiple clients that need to access the same resource/
   service with low latency.  The scope of this document is to determine
   how one can implement authorization policies for group communication
   for resources/services that belong to access level 2 and below.  We
   first introduce the different access levels and then examine the
   different types of groups that determine the authorization policy.

3.1.  Access Levels

   A characteristic of the lighting domain is that access control
   decisions are also impacted by the type of operation being performed
   and those categories are listed below.  The following access levels
   are pre-defined.

   Level 0: Service detection only



Somaraju, et al.         Expires January 7, 2016                [Page 3]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


      This is a service that is used with broadcast service detection
      methods.  No operational data is accessible at this level.

   Level 1: Reporting only

      This level allows access to sensor and other (relatively
      uncritical) operational data and the device error status.  The
      operation of the system cannot be influenced using this level.

   Level 2: Standard use

      This level allows access to all operational features, including
      access to operational parameters.  This is the highest level of
      access that can be obtained using (secure) multicast.

   Level 3: Commissioning use / Parametrization Services

      This level gives access to certain parameters that change the day-
      to-day operation of the system, but does not allow structural
      changes.

   Level 4: Commissioning use / Localization and Addressing Services

      (including Factory Reset) This level allows access to all services
      and parameters including structural settings.

   Level 5: Software Update and related Services

      This level allows the change and upgrade of the software of the
      devices.

   Note: The use of group security is disallowed for level higher than
   Level 2 and unicast communication is used instead.

3.2.  Application, multicast and security groups

   There are three types of groups that we need to consider:

   Application Group:

      A lighting application group that consists of the set of all
      lighting devices that have been configured by a commissioner to
      respond to events in a consistent manner.  For instance, a wall
      mounted switch and a set of luminaires in a single room might
      belong to a single group and the switch may be used to turn on/off
      all the luminaires in the group simultaneously with a single
      button press.  In the remainder of this document we will use GId
      to identify an application group.



Somaraju, et al.         Expires January 7, 2016                [Page 4]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   Multicast Group:

      A multicast group consists of the set of all nodes that subscribe
      to the same multicast IP address.

   Security Group:

      A security group consists of a set of sending and receiving nodes
      such that any sending node is able to securely send a message to
      all the receiving nodes.  For instance, if symmetric keys are used
      to secure such messages then every node that has access to the
      symmetric key is a part of the security group.  Every node in a
      security group can decrypt a message even if it is not addressed
      for its application group.

   Typically, the three groups might not coincide due to the memory
   constraints on the devices and also security considerations.  For
   instance, in a small room with windows, we may have three application
   groups: "room group", "luminaires close to the window group" and
   "luminaires far from the window group".  However, we may choose to
   use only one multicast group for all devices in the room and one
   security group for all the devices in the room.  At the other end of
   the spectrum, we may have an application group consisting of all the
   luminaires on a floor consisting of several smaller rooms.  In this
   case, due to security considerations we may choose to not distribute
   a single key to all the devices on the whole floor.  Therefore, the
   security group might be much smaller (e.g., one per room) and the
   application floor group is split up into smaller security groups.

   The authorization policy must ensure that all the members of a
   security group are allowed to exchange messages with each other for
   services which belong to access level less than equal to 2.  The
   services may be accessed via multicast or serial unicast messages
   between group members.  The procedure that is used to determine the
   security groups based on the availability of multicast groups and the
   requirements of the application group are out of scope of this
   document.

4.  Architecture

   Each node in a lighting application group might be a sender, a
   receiver or both sender and receiver within the group (even though in
   Figure 1 below, we show nodes that are only senders or receivers for
   clarity).  The requirement of low latency synchronous behaviour
   implies most of the communication between senders and receivers of
   lighting application messages are done using multicast IP messages.
   On some occasions, a sender in a group will be required to send
   unicast messages to unique receivers within the same group and the



Somaraju, et al.         Expires January 7, 2016                [Page 5]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   authorization procedure must also ensure security for such
   communications.  The procedure that is used to determine the security
   groups based on the availability of multicast groups and the
   requirements of the application group are out of scope of this
   document.

   Two logical entities are introduced and they have the following
   function:

   Key Distribution Center (KDC):  This logical entity is responsible
      for generating symmetric keys and distributing them to the nodes
      authorized to receive them.  The KDC ensures that nodes belonging
      to the same security group receive the same key and that the keys
      are rotated based on certain events, such as key expiry or change
      in group membership.

   Authorization Server (AS):  This logical entity stores authorization
      information about devices, meta-data about them, and their roles
      in the network.  For example, a luminare is associated with
      different groups, and may have meta-data about its location.  This
      entity may also need to perform user authentication and
      authorization since access rights may be associated to specific
      persons.  Directly or indirectly the resource owner specifies
      authorization policies that define which node is allowed to
      perform which actions.

   Note that we assume that nodes are pre-configured with device
   credentials (e.g., a certificate and the corresponding private key)
   during manufacturing.  These device credentials are used in the
   interaction with the authorization server.

   Figure 1 and Figure 2 provide an architectural overview.  The dotted
   lines illustrate the use of unicast DTLS messages for securing the
   message exchange between all involved parties.  The secured multicast
   messages between senders and receivers are indicated using lines with
   star/asterisk characters.  The security of the multicast messages can
   be achieved either at the transport level (e.g.
   [I-D.kumar-dice-multicast-security]) or at the application level with
   object security (e.g.  [I-D.selander-ace-object-security]).  The
   details on multicast security are outside the scope of this draft.

   Figure 1 illustrates the information flow between an authorization
   server and the nodes participating in the lighting network, which
   includes all nodes that exchange lighting application messages.  This
   step is typically executed during the commissioning phase for nodes
   that are fixed-mounted in buildings.  The authorization server, as a
   logical function, may in smaller deployments be included in a device
   carried by the commissioner and only be present during the



Somaraju, et al.         Expires January 7, 2016                [Page 6]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   commissioning phase.  In other use cases, employees using their
   smartphones to control lights may require an authorization server
   that dynamically executes access control decisions.

   Figure 1 shows the commissioning phase where the nodes obtain
   configuration information, which includes the AT-KDC.  The AT-KDC is
   an access token and includes authorization claims for consumption by
   the key distribution center.  We use the access token terminology
   from RFC 6749 [RFC6749] even though it is a solution-specific concept
   but familiar to many developers.  The AT-KDC in this architecture may
   be a bearer token or a proof-of-possession (PoP) token.  Note that a
   PoP token offers a fair amount of flexibility: with the use of
   symmetric key cryptography it is comparable to a Kerberos ticket and
   when used with asymmetric cryptography it can play the role of a
   certificate.  The bearer token concept is described in RFC 6750
   [RFC6750] and the PoP token concept is explained in
   [I-D.ietf-oauth-pop-architecture].  The AT-KDC is created by the
   authorization server after authenticating the requesting node and
   contains authorization relevant information.  The AT-KDC is protected
   against modifications using a digital signature or a message
   authentication code.  It is verified in Figure 2 by the KDC.






























Somaraju, et al.         Expires January 7, 2016                [Page 7]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


                 Config    +-------------+    Config
               +-----------+Authorization+------------+
               | .........>|   Server    |<.......... |
               | .  DTLS   +-------------+   DTLS   . |
               | .                ^^                . |
               | .                |.                . |
               | .                |.                . |
               v v                |.                v v
            +-----+         Config|.DTLS          +-----+
           +-----+|               |.             +-----+|
          +-----+|+               |.            +-----+|+
          |  A  |+                vv            |  C  |+
          +-----+               +-----+         +-----+
        .  E.g.                +-----+|           E.g.
           Light              +-----+|+        Luminaires
          Switches            |  B  |+
                              +-----+
                                E.g.
                              Presence
                              Sensors
   Legend:

   Config (Configuration Data): Includes configuration
   parameters, authorization information encapsulated
   inside the access token (AT-KDC) and other meta-
   data.


               Figure 1: Architecture: Commissioning Phase.

   In the simplified message exchange shown in Figure 2 a sender
   requests a security group key and the access token for use with the
   receivers (called AT-R).  The request contains information about
   resource it wants to access, such as the application group and other
   resource-specific information -- if applicable, and the previously
   obtained AT-KDC access token.  Once the sender has successfully
   obtained the requested information it starts communicating with
   receivers in that group using multicast messages.  The symmetric key
   obtained from the KDC is used to secure the multicast messages for
   the security group.  The AT-R is used to attached to the initial
   request to authorize the request.  The receivers on their side need
   to perform two steps, namely the receivers themselves need to obtain
   the necessary group key to verify the incoming messages and they also
   need information about what resource the sender is authorized to
   access.  Both information can be found in the AT-R access token.

   Multicast messages need to be protected such that replay and
   modification can be detected.  The integrity of the message is



Somaraju, et al.         Expires January 7, 2016                [Page 8]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   protected using a group key.  The use of symmetric keys is envisioned
   here due to latency requirements and the access level level concept
   is described in Section 3.1.  For secure unicast messaging between
   lighting application group members and the AS or KDC, a topic outside
   the scope of this document, the sender is assumed to use the DTLS
   handshake to establish the necessary security context for securing
   subsequent message interactions.


             Request
             +AT-KDC    +------------+
          +------------>|    Key     |
          |+------------|Distribution|
          ||Reply       |   Center   |
          ||+AT-R       +------------+
          ||+Group    ..^
          || Key    ..
          ||     ...DTLS
          |v    ..
        +-----+<.                              +-----+
       +-----+|                               +-----+|
      +-----+|+   Secure Multicast Msg       +-----+|+
      |  A  |+*****************************> |  B  |+
      +-----+                                +-----+
      Sender(s)                            Receiver(s)
   e.g. Light Switch                    e.g. Luminaries


           Figure 2: Architecture: Group Key Distribution Phase.

   Figure 3 describes the algorithm for obtaining the necessary
   credentials to transmit a secure multicast message based on the
   architectural description shown in Figure 1 and Figure 2.  When
   sender wants to send a message to the application group, it checks if
   it has the group key.  If no group key is available then it checks if
   it has an access token for use with the KDC (AT-KDC).  If no AT-KDC
   is found in the cache then it contacts the authorization server to
   obtain an access token.  Note that this assumes that the
   authorization server is online, which is only true in scenarios where
   granting authorization dynamically is supported.  In the other case
   where the AT-KDC is already available the sender contacts the KDC to
   obtain a group key.  If a group key is already available then the
   sender can transmit a message secured to the group immediately.








Somaraju, et al.         Expires January 7, 2016                [Page 9]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


                                     _______
                                    /       \
                                    | Start |
                                    \_______/
                                        |
                                        v
                                       /\
                                      /  \
                                     /    \
                                    /      \
                                   /        \
                         ___No____/Group Key \____
                        |         \Available?/    |
                        |          \        /     |
                        v           \      /     Yes
                       /\            \    /       |
                      /  \            \  /        v
                     /    \            \/   +-------------+
                    /      \            ^   |Transmit     |
                   /        \           |   |multicast    |
              ____/  AT+KDC  \__        |   |mesg to group|
             |    \Available?/  |       |   +-------------+
             |     \        /   |       |
            No      \      /   Yes      |
             |       \    /     |       |
             |        \  /      |       |
             v         \/       v       |
       +-----+-----+   ^  +----------+  |
       |Request    |   |  |Request   |  |
       |AT-KDC     |   |  |Group Key |  |
       |from       |---+  |from KDC  |--+
       |Auth Server|      |          |
       +-----------+      +----------+


    Figure 3: Steps to Transmit Multicast Message (w/o Failure Cases).

   Note that the sender does not have to wait until it has to transmit a
   message in order to request a group key; the sender is likely to be
   pre-configured with information about which lighting application
   group it belongs to and can therefore pre-fetch the required
   information.

   Group keys have a lifetime, which is configuration dependent, but
   mechanisms need to be provided to update the group keys either via
   the sender asking for a group key renewal or via the KDC pushing new
   keys to senders and receivers.  The lifetime can be based on time or
   on the number of transmitted messages.



Somaraju, et al.         Expires January 7, 2016               [Page 10]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


5.  Access Tokens

   Section 4 describes the architecture and makes use of access tokens,
   which is a generic concept to pass capabilities between entities in a
   distributed system.  To improve interoperability a token format needs
   to be standardized and this section outlines the use of an existing
   format based on the JSON Web Token (JWT).  These access tokens come
   in two flavors, namely as bearer tokens but also as proof-of-
   possession tokens.  The main difference between the two is that
   bearer tokens are not associated with a key while proof-of-possession
   (PoP) tokens are.  For a more detailed description of the security
   benefits of PoP tokens and the differences to bearer tokens please
   consult [I-D.ietf-oauth-pop-architecture].  In Section 1 we assume
   that the AT-KDC is a bearer token and the AT-R is a PoP token.

   In this section we provide more details of the access token concept.
   The capabilities, called claims in the JWT jargon, are included
   inside the token and, in this example, state that the granted access
   level is 2 and access to the application group 2 is allowed by the
   sender.  Most of the description focuses on the use of PoP tokens
   since they are more complex than bearer tokens.  For the use with
   multicast security we envision the PoP token to contain a symmetric
   key encapsulated inside the JSON Web Key (JWK).

   While JSON is a compact encoding format, standardization work is
   ongoing to define an even more efficient format for conveying the
   same information using a binary format (using CBOR as defined in RFC
   7049 [RFC7049]).  The corresponding security protection is currently
   being defined in the IETF COSE working group [COSE].

   The content of a JSON Web Token (JWT) is protected using a JSON Web
   Signature (JWS).  The JWS applies a message authentication code (MAC)
   to protect against forgery.  The actual MAC computation (and the
   result) is omitted in this example.  (Note that deployments may
   choose to use a digital signature to protect the JWT.  While the JWT
   access token offers this flexiblity we assume symmetric keys in our
   example.

   The JWT body is protected using the JWS.  The JWS wraps around the
   body with a header and the actual message authentication code, which
   is not shown below.










Somaraju, et al.         Expires January 7, 2016               [Page 11]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   JWS Header:

       {"alg":"HS256",
        "kid":"123"
       }

   Legend for JWS Header:
   - alg: Algorithm parameter indicating the type of cryptographic
          algorithm used to protect the structure. In this case
          HMAC-SHA 256 is used.
   - kid: Key Identifier used to select the appropriate key.


   The JWT body contains various claims and we included several of them
   in our example below.  The most interesting one is the (not-yet-
   defined) scope (scp) claim offering information about the
   capabilities.  In this example the scope ('scp') claim carries
   permissions described in Section 6.  The included capabilities will
   depend on the type of token, namely AT-R vs. AT-KDC, and of course on
   the specific deployment environment.


 JWT Body:
    {
       "iss": "coaps://as.example.com",
       "exp": "1361398824",
       "scp": ["l2,g0,IP_M_R1", "l2,g1,IP_M_R1","l2,g2,IP_M_R1"],
       "cnf":{
         "jwe":
           "eyJhbGciOiJSU0ExXzUiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiY3R5Ijoi
            andrK2pzb24ifQ. ... (remainder of JWE omitted for brevity)"
         }
      }

 Legend for JWT Body:
 - iss: Issuer (which is the entity creating the access token). The
        content does not need to be a URI but can also be a string
        identifying the entity issuing the token.
 - exp: Expiry date of the access token. Claim can be omitted if
        tokens do not expire (for example, in a small enterprise
        environment).
 - scp: Scope denoting the capabilities of the token
 - cnf: Key confirmation element containing an encrypted JSON Web
        Key. The encryption being applied uses JSON Web
        Encryption (JWE).






Somaraju, et al.         Expires January 7, 2016               [Page 12]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   The content from here onward is only relevant to the AT-R, which is
   assumed to be a PoP token.  Note that a bearer token would not
   contain the key confirmation claim shown in the JWT body since there
   is no embedded key.

   Figure 4 shows the structure of the PoP token graphically:


   +-------------------------------+
   |JWS Header                     |
   +-------------------------------+
   +-------------------------------+
   |                               |
   | JWT Body                      |
   |              +------------+   |
   |  - iss       | JWE        |   |
   |  - cnf ----->|  +--------+|   |
   |  - exp       |  | JWK    ||   |
   |  - scp       |  +--------+|   |
   |  - ...       +------------+   |
   |                               |
   +-------------------------------+
   +-------------------------------+
   |JWS MAC/Signature              |
   +-------------------------------+


                      Figure 4: PoP Token Structure.

   The JSON Web Encryption (JWE) contains a header followed by the
   content that is encrypted.  Details about the JWE usage relevant for
   this example can be found in Appendix A.3 of RFC 7516 [RFC7516].


   JWE Header:

   {"alg":"A128KW",
    "enc":
    "A128CBC-HS256"
   }

   Legend for JWE Header:
   - alg: Algorithm parameter indicating the AES 128 Key Wrap algorithm
          being used for encrypting the included key and the
          AES_128_CBC_HMAC_SHA_256 algorithm is used for authenticated
          encryption.





Somaraju, et al.         Expires January 7, 2016               [Page 13]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


JWK to be encrypted by JWE:

 {"kty":"oct",
  "k":"GawgguFyGrWKav7AX4VKUg"
 }

Legend for the JWK to be encrypted:
- kty: Key type identifies the cryptographic algorithm family used with
       the key. In this example the JWK contains a symmetric key denoted
       as "oct" for octet sequence.
- k: Key parameter containing the actual key.


6.  Lighting Application Example

   In this Section, we look at a typical lighting application in which
   presence sensor(s) are used to actuate a group of light points via a
   control function based on a pre-specified set of rules.  The
   CoAP/LWMM2M/IPSO protocol stack can be used as a foundation for the
   design of a lighting system.  The architecture identifies three
   functions present in a lighting system:

   o  Sensor functions which detect a (physical) phenomenon like a light
      sensor, a presence detector or a push button.

   o  Actuator functions which cause action or change like setting a
      driver value of a light source.

   o  Control functions which link the inputs (from sensor functions) to
      outputs (from actuator functions) and enforce specific behaviour.

   In typical applications, a sensor output might be used by multiple
   control functions and a single control function might control many
   actuators and a single actuator may be controlled by multiple control
   functions.  Moreover, different functions (e.g. control and actuator)
   might be collocated on a single device.  In the example below, we
   show one method that may be used to implement the above architecture
   using the LWM2M object model.  We begin with the case of unicast
   communication (because the LWM2M model does not directly support
   multicast communication).  We then explain a possible way to extend
   to the multicast situation.

6.1.  Unicast Messages using the LWM2M Object Model

   The unicast scenario considers a deployment with a single (physical)
   presence sensor, a single (physical) luminaire and the desired
   control functionality is the following: dim the luminaire to 90% when
   presence is detected in the room and dim the luminaire to 10% when



Somaraju, et al.         Expires January 7, 2016               [Page 14]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   there is no presence.  In this situation, the sensor functionality is
   implemented on the presence sensor, the actuator functionality is
   implemented on the luminaire and the control functionality could be
   implemented on the presence sensor or the luminaire or on an
   independent physical control device.

   Using the LWM2M object model,

   o  the presence sensor function is implemented using the IPSO
      Presence object with Object ID 3302 [1].

   o  the actuator control function is implemented using the IPSO Light
      control object with Object ID 3311 [1].

   o  the control function is implemented by a LWM2M server to which the
      two LWM2M clients on the luminaire and presence sensor register.

   The IPSO Light Control Object supports the "Dimmer" resource (Res ID
   5851) which may be written to in order to change the light intensity
   output.  The IPSO Presence Object supports the "Digital Input State"
   resource (Res ID 5500) which is a boolean readable resource that
   reflects the current state of the presence sensor.  A method to
   implement the control functionality is the following:

   1.  The luminaire and the presence sensor register their objects with
       the control LWM2M server.  This registration step happens during
       commissioning phase, when the device reboots or whenever IP
       addresses change.

   2.  The control LWM2M server observes the "Digital Input State" of
       the presence sensor.

   3.  When the presence sensor state changes, the sensor notifies the
       control LWM2M server.

   4.  The control LWM2M server writes the correct output intensity to
       the "Dimmer" resource to change the luminaire light output.

   This sequence of messages is shown in Figure 5.  Here, [IP_C], [IP_L]
   and [IP_S] are the unicast IP addresses of the devices that implement
   the control function, light control object and sensor object,
   respectively.









Somaraju, et al.         Expires January 7, 2016               [Page 15]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   +---------------+    +--------------+     +--------------+
   |Presence Sensor|    | Control Unit |     |  Luminaire   |
   |(LWM2M client) |    |(LWM2M server)|     |(LWM2M client)|
   +---------------+    +--------------+     +--------------+
          |                     |                      |
          |  [IP_C]Register     |    [IP_C]Register    |
          |-------------------->|<---------------------|
          |     </3302/0>       |      </3311/0>       |
          |                     |                      |
          |  [IP_S]2.01 Created | [IP_L]2.01 Created   |
          |<--------------------|--------------------->|
          |                     |                      |
          |[IP_S]GET            |                      |
          |<--------------------|                      |
          |    /3302/0/5500 Obs.|                      |
          |                     |                      |
          |[IP_C]2.05 Content   |                      |
          |-------------------->|[IP_L]PUT /3311/0/5851|
          |     Obs. FALSE      |--------------------->|
          |                     |         10           |
          |   [IP_C]Notify      |                      |
          |-------------------->|[IP_L]PUT /3311/0/5851|
          |      TRUE           |--------------------->|
          |                     |         90           |
          |   [IP_C]Notify      |                      |
          |-------------------->|[IP_L]PUT /3311/0/5851|
          |       FALSE         |--------------------->|
          |                     |         10           |

      Figure 5: Unicast messaging between control unit and luminaire.

6.2.  Multicast Communication using the LWM2M Object Model

   We now see how the above unicast model may be extended to the group
   communication case and explain the security implications of the group
   communication case.  Let us now look at a typical lighting
   application that requires group communication: 1) A set of rooms are
   attached to a single corridor; 2) Each room consists of 8 luminaires
   with 4 luminaires close to a window and four luminaires close to a
   wall; 3) Every room has a presence sensor and the corridor also has a
   presence sensor. 4) Every room has an individual control function
   that maybe implemented on the room presence sensor device, one of the
   luminaries or an independent control device.

   The control functionality we wish to implement is the following:

   o  If presence is detected in the room, then dim-up the wall
      luminaires to 90% and window luminaires to 50%.



Somaraju, et al.         Expires January 7, 2016               [Page 16]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   o  If no presence is detected in the room or corridor, then turn off
      all luminaires.

   o  If no presence is detected in the room but presence is detected in
      the corridor, then turn all the luminaires to 10% (for all rooms
      attached to corridor).

   For multicast communication, we can not use the LWM2M model directly.
   However, we can make the following assumptions:

   o  All luminaires are CoAP servers whose resource tree supports the
      IPSO Light Control object.

   o  All presence sensors are CoAP servers whose resource tree supports
      the IPSO Presence Object.

   o  The control function is implemented using a CoAP client.

   o  All devices in the nth room subscribe to the multicast address
      [IP_M_Rn] and the device that implements the control function in
      this room has unicast address [IP_Cn].

   o  Every room has three application groups and only one security
      group.  The application groups are: "room group" (GId = 0),
      "window group" (GId = 1), "wall group" (GId = 2).  The security
      group is defined by the symmetric key that is shared with the
      members.

   o  The GId is carried as a CoAP header (query?) option.


+--------------+
|  Luminaire   |
|(CoAP Server) |
+--------------+
 ||| +---------------+       +---------------+
 ||| |Presence Sensor|       |Presense Sensor|          +--------------+
 ||| |Corridor       |       |Room           |          | Control Unit||
 ||| |(CoAP Server)  |       |(CoAP Server)  |          | (CoAP Client)|
 ||| +---------------+       +---------------+          +--------------+
 |||        |                         |                             |||
 |||        |            [IP_SC]GET /3302/0/5500 Obs.               |||
 |||        |<------------------------------------------------------|||
 |||        |                         |                             |||
 |||        |              [IP_C1] 2.05 Content Obs.                |||
 |||        |------------------------------------------------------>|||
 |||        |                       FALSE                           |||
 |||        |                         |                             |||



Somaraju, et al.         Expires January 7, 2016               [Page 17]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


 |||        |                         |[IP_SR]GET /3302/0/5500 Obs. |||
 |||        |                         |<----------------------------|||
 |||        |                         |                             |||
 |||        |                         |  [IP_C1] 2.05 Content Obs.  |||
 |||        |                         |---------------------------->|||
 |||        |                         |           FALSE             |||
 |||        |                         |                             |||
 |||        |                         |                             |||
 |||        |                  [IP_C1] Notify                       |||
 |||        |------------------------------------------------------>|||
 |||        |                       TRUE                            |||
 |||        |                         |                             |||
 |||        |       [IP_M_R1]PUT /3311/0/5851 ?gp=0                 |||
 |||<---------------------------------------------------------------+||
 |||        |                     10  |                             |||
 |||        |                         |                             |||
 |||        |                         |      [IP_C1] Notify         |||
 |||        |                         |---------------------------->|||
 |||        |                         |            TRUE             |||
 |||        |                         |                             |||
 |||        |       [IP_M_R1]PUT /3311/0/5851 ?gp=1                 |||
 |||<---------------------------------------------------------------|||
 |||        |                     50  |                             |||
 |||        |                         |                             |||
 |||        |       [IP_M_R1]PUT /3311/0/5851 ?gp=2                 |||
 |||<-------------------------------------------------------------->|||
 |||        |                     90  |                             |||
 |||        |                         |                             |||
 |||        |                         |                             |||



    Figure 6: Multicast messaging between control unit and luminaires.

   Figure 6 shows a typical sequence of messages that occur.  For,
   simplicity, we only show the messages exchanged with the control
   function in room 1 and luminaires in room 1 though the same exchange
   of messages applies to every room.  Initially, the control function
   in every room observes resource 5500 on the presence sensor in the
   corridor and also the presence sensor in it's own room.  When the
   presence state changes in the corridor, the corridor notifies the
   control function in every room using a sequence of unicast
   notification messages.  Once a controller in the room receives this
   notification, it sends out a multicast message to all luminaires in
   the group (GId = 0).  If presence is then detected in the room, then
   the room controller is notified and the room controller sends a
   multicast message to the window group (GId = 1) to dim-up to 50% and
   wall group (GID = 2) to dim-up to 90%. Note the separation of the two



Somaraju, et al.         Expires January 7, 2016               [Page 18]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   types of sensors in this problem: The presence sensor in a room is a
   part of the room group and therefore will receive the room group key
   which allows it to directly talk to the luminaires in the room to
   which the sensor belongs.  However, the corridor presence sensor is
   not a part of the room group and does not receive the room group key.
   The corridor presence sensor must only authorized to communicate with
   the room control function which then controls the luminaires.

   In this Example, there are three application groups per room and one
   multicast group per room.  There are two types of security groups:
   one security group per room and a security group that has the
   corridor presence sensor and all the control units attached to the
   corridor.  Therefore, the control unit in room 1 requires access
   tokens with the following scope, "l2,g0,IP_M_R1", "l2,g1,IP_M_R1",
   "l2,g2,IP_M_R1" for room control and also "l2,g0,IP_SC" for corridor
   presence sensor.  The KDC generates 2 keys - KeyRoom1 and KeyCor that
   need to be delivered to the control unit in room 1: KeyRoom1 is used
   to communicate with the room luminaire group for all three
   application groups - g0, g1, g2 and KeyCor is used to communicate
   with the corridor presence sensor.

7.  Security Considerations

7.1.  Token Verification

   Due to the low latency requirements, token verification needs to be
   done locally and cannot be outsourced to other parties.  For this
   reason self-contained token must be used and the receivers are
   required to follow the steps outlined in Section 7.2 of RFC 7519
   [RFC7519].  This includes the verification of the message
   authentication code protecting the contents of the token and the
   encryption envelope protecting the contained symmetric group key.

7.2.  Token Revocation

   Tokens have a specific lifetime.  Setting the lifetime is a policy
   decision that involves making a trade-off decision.  Allowing a
   longer lifetime increases the need to introduce a mechanism for token
   revocation (e.g., a real-time signal from the KDC/Authorization
   Server to the receivers to blacklist tokens) but lowers the
   communication overhead during normal operation since new tokens need
   to be obtained only from time to time.  Real-time communication with
   the receivers to revoke tokens may not be possible in all cases
   either, particularly when off-line operation is demanded or in small
   networks where the AS or even the KDC is only present during
   commissioning time.





Somaraju, et al.         Expires January 7, 2016               [Page 19]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   We therefore recommend to issue short-lived tokens for for dynamic
   scenarios like users accessing the lighting infrastructure of
   buildings using smartphones, tablets and alike to avoid potential
   security problems when tokens are leaked or where authorization
   rights are revoked.  For senders that are statically mounted (like
   traditional light switches) we recommend a longer lifetime since re-
   configurations and token leakage is less likely to happen frequently.

   To limit the authorization rights tokens should contain an audience
   restriction, scoping their use to the intended receivers and to their
   access level.

7.3.  Time

   Senders and receivers are not assumed to be equipped with real-time
   clocks but these devices are still assumed to interact with a time
   server.  The lack of accurate clocks is likely to lead to clock
   drifts and limited ability to check for replays.  For those cases
   where no time server is available, such as in small network
   installations, token verification cannot check for expired tokens and
   hence it might be necessary to fall-back to tokens that do not
   expire.

8.  Operational Considerations

8.1.  Persistence of State Information

   Devices in the lighting system can often be powered down
   intentionally or unintentionally.  Therefore the devices may need to
   store the authorization tokens and cryptographic keys (along with
   replay context) in persistence storage like flash.  This is
   especially required if the authorization server is no more online
   since it was removed after the commissioning phase.  However the
   decision on the data to be persistently stored is a trade-off between
   how soon the devices can be back online to normal operational mode
   and the memory wear caused due to limited program-erase cycles of
   flash over 15-20 years life-time of the device.

   The different data that may need to be stored are access tokens AT-
   KDC, AT-R and last seen replay counter.

8.2.  Provisioning in Small Networks

   In small networks the authorization server and the KDC may be
   available only temporarily during the commissioning process and are
   not available afterwards.





Somaraju, et al.         Expires January 7, 2016               [Page 20]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


9.  Acknowledgements

   The author would like to thank Walter Werner and Esko Dijk for his
   help with this document.

10.  References

10.1.  Normative References

   [I-D.gerdes-ace-actors]
              Gerdes, S., Seitz, L., Selander, G., and C. Bormann, "An
              architecture for authorization in constrained
              environments", draft-gerdes-ace-actors-05 (work in
              progress), April 2015.

   [IPSO]     IPSO Alliance, "IPSO Smart Object Guidelines - Starter
              Pack 1.0", 2015.

   [LWM2M]    Open Mobile Alliance, "Lightweight Machine-to-Machine,
              Technical Specification, Candidate Version 1.0", December
              2013.

   [RFC7516]  Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)",
              RFC 7516, May 2015.

10.2.  Informative References

   [COSE]     IETF, "CBOR Object Signing and Encryption (cose) Working
              Group", https://datatracker.ietf.org/wg/cose/charter/,
              2015.

   [I-D.ietf-oauth-pop-architecture]
              Hunt, P., Richer, J., Mills, W., Mishra, P., and H.
              Tschofenig, "OAuth 2.0 Proof-of-Possession (PoP) Security
              Architecture", draft-ietf-oauth-pop-architecture-01 (work
              in progress), March 2015.

   [I-D.kumar-dice-multicast-security]
              Kumar, S. and R. Struik, "Transport-layer Multicast
              Security for Low-Power and Lossy Networks (LLNs)", draft-
              kumar-dice-multicast-security-00 (work in progress), March
              2015.

   [I-D.selander-ace-object-security]
              Selander, G., Mattsson, J., Palombini, F., and L. Seitz,
              "June 29, 2015", draft-selander-ace-object-security-02
              (work in progress), June 2015.




Somaraju, et al.         Expires January 7, 2016               [Page 21]


Internet-Draft Multicast Security for the Lighting Domain      July 2015


   [RFC6749]  Hardt, D., "The OAuth 2.0 Authorization Framework", RFC
              6749, October 2012.

   [RFC6750]  Jones, M. and D. Hardt, "The OAuth 2.0 Authorization
              Framework: Bearer Token Usage", RFC 6750, October 2012.

   [RFC7049]  Bormann, C. and P. Hoffman, "Concise Binary Object
              Representation (CBOR)", RFC 7049, October 2013.

   [RFC7519]  Jones, M., Bradley, J., and N. Sakimura, "JSON Web Token
              (JWT)", RFC 7519, May 2015.

Authors' Addresses

   Abhinav Somaraju
   Tridonic GmbH & Co KG
   Farbergasse 15
   Dornbirn   6850
   Austria

   Email: abhinav.somaraju@tridonic.com


   Sandeep S. Kumar
   Philips Research
   High Tech Campus 34
   Eindhoven  5656 AE
   NL

   Email: ietf.author@sandeep-kumar.org


   Hannes Tschofenig
   ARM Ltd.
   110 Fulbourn Rd
   Cambridge  CB1 9NJ
   Great Britain

   Email: Hannes.tschofenig@gmx.net
   URI:   http://www.tschofenig.priv.at











Somaraju, et al.         Expires January 7, 2016               [Page 22]