Internet DRAFT - draft-choi-dice-finegrained-dtls-security

draft-choi-dice-finegrained-dtls-security



DICE Working Group                                          Jaeduck Choi
Internet Draft                                                Gunhee Lee
Intended status: Standards Track                                    NSRI
Expires: September 23, 2015                                   Namhi Kang
                                              Duksung Women's University
                                                          Seungwook Jung
                                                            Souhwan Jung
                                                     Soongsil University
                                                          March 24, 2015



                 Fine-grained Support of Security Services
                    for Constrained Devices using DTLS
              draft-choi-dice-finegrained-dtls-security-01.txt


Abstract

   This document proposes a method that can selectively apply
   application data encryption to the DTLS record layer. The CoAP used
   for resource-constrained devices defines the use of DTLS as a basic
   security mechanism, and CoAP standard specifies the use of AES_CCM
   that provides data integrity and confidentiality as a cipher suite
   for DTLS. However, not all CoAP messages require both data integrity
   and confidentiality. For example, in case of CoAP messages that
   include information for turning a light off at home or in a building,
   or simple ACK information, encryption might not be necessary because
   such information might not be useful to attackers. Furthermore, from
   the perspective of effective resource use of resource-constrained
   devices, reducing the computation load required to perform data
   encryption every time is necessary. This document describes the
   methods for CoAP nodes to establish DTLS security channels using the
   AES_CCM cipher suite, and to selectively apply the encryption
   function in the DTLS record layer by considering sensitivity to
   application data leakage.



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), its areas, and its working groups. Note that
   other groups may also distribute working documents as Internet-
   Drafts.





Choi                 Expires September 23, 2015               [Page 1]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html

   This Internet-Draft will expire on September 23, 2015.

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
   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 ................................................ 3
   2. Terminology ................................................. 4
   3. Overview .................................................... 4
   4. Protocol Operations ......................................... 7
      4.1. DTLS Record Layer Header ............................... 7
      4.2. Node Behaviors ......................................... 8
         4.2.1. Sender ............................................ 8
         4.2.2. Receiver .......................................... 9
   5. Security Considerations ..................................... 9
   6. IANA Considerations ......................................... 9
   7. References ................................................. 10
      7.1. Normative References .................................. 10
      7.2. Informative References ................................ 10
   8. Acknowledgments ............................................ 10



Choi                 Expires September 23, 2015               [Page 2]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015



1. Introduction

   IETF CoRE WG has standardized Constrained Application Protocol
   (CoAP), which can be used for resource-constrained devices [RFC7252].
   CoAP defines the use of Datagram Transport Layer Security (DTLS) for
   device authentication and communication data security, and DTLS
   specifies TLS_PSK_WITH_AES_128_CCM_8 as a mandatory cipher suite.
   For a public key-based DTLS cipher suite, CoAP recommends
   TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8. The DTLS cipher suite is
   negotiated between the CoAP client and server in the process of
   performing the DTLS handshake protocol. For CoAP application data,
   data integrity and confidentiality are provided in the DTLS record
   layer protocol by AES_CCM after completing the DTLS handshake
   protocol.

   However, examining whether data integrity and confidentiality should
   be provided always for CoAP messages in resource-constrained devices
   is necessary. For example, the necessity of a data confidentiality
   function to send a CoAP message for turning a light switch off in a
   building or house is questionable. In the case of simultaneously
   turning on or off all lights in a building or house, such a function
   can provide clues for identifying whether residents are present in
   the building or house to malicious attackers intent on illegal entry.
   However, eavesdropping on CoAP messages for turning off or on some
   of the lights might not be significant to malicious attackers. In
   addition, simple ACK messages received from many devices in a CoAP
   group communication might not be useful to attackers. Furthermore,
   from the perspective of effective resource use of resource-
   constrained devices, reducing the computation load required to
   execute data encryption every time is necessary. Therefore, to
   minimize resource consumption of IoT devices, selectively applying
   the data confidentiality function by considering the sensitivity to
   leakage of application data is necessary.

   The strain on memory capacity for loading an encryption module on
   IoT devices should also be considered. TLS defines the cipher suites
   that provide data integrity only using hash functions such as
   TLS_PSK_WITH_NULL_SHA256 [RFC5487]. Only integrity function can be
   provided to CoAP messages in the DTLS record layer after completing
   the DTLS handshake protocol with TLS_PSK_WITH_NULL_SHA256. However,
   if TLS_PSK_WITH_AES_128_CCM_8 and TLS_PSK_WITH_NULL_SHA256 are
   implemented on resource-constrained devices, burden on memory
   capacity can occur compared to devices that have only implemented
   TLS_PSK_WITH_AES_128_CCM_8 because the SHA256 module also has to be
   loaded.



Choi                 Expires September 23, 2015               [Page 3]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   In selectively applying the confidentiality function of CoAP
   messages, DTLS sessions would be re-established frequently. For
   example, to send a CoAP message that needs encryption, CoAP nodes
   will establish the DTLS session to the TLS_PSK_WITH_AES_128_CCM_8 or
   TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 cipher suits. While the DTLS
   session is maintained during the effective period, if a CoAP message
   that does not require encryption has to be sent, the CoAP nodes will
   terminate the current DTLS session and resume the DTLS session with
   the TLS_PSK_WITH_NULL_SHA256 cipher suite. In other words, because
   of unpredictable IoT service scenario characteristics (the
   characteristics where sensitivities to data leakage are different),
   situations can occur often whereby CoAP nodes have to re-establish
   DTLS sessions for different cipher suites that provide functions for
   both data integrity and confidentiality, and functions for data
   integrity only. This becomes a major cause for wasting resources
   when applying DTLS to CoAP nodes.

   This document describes a method for selectively applying encryption
   functions in the DTLS record layer by considering the sensitivity to
   leakage of application data without changing the DTLS cipher suite,
   which is defined as the default in the CoAP protocol.



2. Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].



3. Overview

   This section describes a basic concept of the proposed method.

   When security negotiation is performed with the default cipher suite
   during the DTLS handshake protocol between a CoAP client and server,
   the two nodes complete the preparation for providing the CoAP
   message data integrity in the DTLS record layer, or for providing
   both data integrity and confidentiality. Here, how should the CoAP
   message that needs to provide the data integrity function only in
   the DTLS record be defined? This question is not covered in the
   scope of this standard. An example of the solution of the question
   is the CoAP message that has to provide the integrity function only,
   and which can be set in advance in the IoT service definition and
   development stages. Furthermore, such CoAP messages can be


Choi                 Expires September 23, 2015               [Page 4]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   identified in the DTLS record layer using a bit flag value or
   optional field that is defined separately in the existing CoAP
   header.

   In the case of CoAP messages that do not require encryption, the
   CoAP node generates an authentication tag value of the CoAP message
   in the DTLS record layer, and sends the CoAP message to the
   corresponding CoAP node without performing encryption (only the
   process shown in Fig. 1(a) is performed). For CoAP messages that
   require encryption, an authentication tag value is generated in the
   DTLS record layer, and both the CoAP message and authentication tag
   value are encrypted (the processes shown in Figs. 1(a) and 1(b) are
   performed) and sent. Here, the sender node of the CoAP message sets
   the encryption flag value of the DTLS record protocol header to "0"
   (integrity is provided) or "1" (integrity and confidentiality are
   provided); depending on the flag value, the receiver node of the
   CoAP message performs the process of integrity verification only or
   the processes of decryption and integrity verification. Fig. 2 shows
   the overall flow of the proposed method.





























Choi                 Expires September 23, 2015               [Page 5]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   +-------+---------------------+-----------------------------------+
   | Nonce |   Associated data   |             Plaintext             |
   +-------+---------------------+-----------------------------------+
                                   |
                                   V
   +------+------+------+                                     +------+
   |  B_0 |  B_1 |  B_2 |                  . . .              |  B_r |
   +------+------|------+                                     +------+
                                   |
                                   V
                               +--------+
                        K ---> |  CMAC  |
                               +--------+
                                   |
                                   V
                                +------+
                                |  Tag |
                                +------+

                          (a) Authentication

   +------------------------------------------------+      +------+
   |                    Plaintext                   |      |Ctr_0 |
   +------------------------------------------------+      +------+
                            |                                  |
                            |                                  V
                            |                             +---------+
                            |                       K --> | Encrypt |
                            |                             +---------+
                            V                                  |
                        +--------+                             V
   Ctr_1, ..., Ctr_m -->|  CTR   |                       +-----------+
                   K -->|        |                 K --> | MSB(Tlen) |
                        +--------+                       +-----------+
                            |                                  |
                            |                  +------+        V
                            |                  |  Tag |  -->  XOR
                            |                  +------+        |
                            V                                  V
   +------------------------------------------------+       +------+
   |                                                |       |      |
   +------------------------------------------------+       +------+
   |                                                               |
    +-------------------------Ciphertext--------------------------+

                            (b) Encryption
                   Figure 1: AES_CCM Block Diagram


Choi                 Expires September 23, 2015               [Page 6]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


     CoAP Client                                         CoAP Server
         |                                                      |
         |                                                      |
         | <==========   DTLS Handshake Protocol   ===========> |
         |             with TLS_PSK_WITH_AES_CCM_8              |
         |                                                      |
         |                DTLS Record Protocol                  |
     +---|------------------------------------------------------|---+
     |   |                                                      |   |
     |   |                                                      |   |
     |   |           Encryption_Flag = 0 (Msg Auth.)            |   |
     |   |<---------------------------------------------------->|   |
     |   |                                                      |   |
     |   |                                                      |   |
     |   //                                                    //   |
     |   |                                                      |   |
     |   |        Encryption_Flag = 1 (Msg. Enc. & Auth.)       |   |
     |   |<---------------------------------------------------->|   |
     |   |                                                      |   |
     |   |                                                      |   |
     +---|------------------------------------------------------|---+
         |                                                      |

                   Figure 2: Protocol Flow



4. Protocol Operations

4.1. DTLS Record Layer Header

   This document defines the encryption flag (F) in the DTLS record
   layer header to identify whether integrity only or both integrity
   and confidentiality functions are supported for the messages
   exchanged between the CoAP nodes through the DTLS security channel.
   In this document, the top level one bit of the "epoch" field in the
   DTLS record header is used as a bit to identify whether to apply the
   encryption. Figure 3 shows the DTLS record layer header format
   defined in this document, and Table 1 lists the definition of the
   encryption flag.








Choi                 Expires September 23, 2015               [Page 7]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   +-----------------------------------------------------------------+
   | 1 Byte  | 2 Byte  | 2 Byte | 6 Byte | 2 Byte |            |     |
   +-----------------------------------------------------------------+
   | Content | Version | epoch  | seq_   | Length | Ciphertext | MAC |
   |  Type   | Ma | Mi |        | number |        |   (Enc)    |(Enc)|
   +---------+---------+--------+--------+--------+------------+-----+
                       |        |
                       |        |
                       +--------+
                            |
                            V
              0                   1
              0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
             |F|          epoch              |
             +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 3: The encryption flag (F) in the DTLS record layer header



  +----------+------------------------------------------------------+
  |    F     |                    Description                       |
  +----------+------------------------------------------------------+
  |    0     | integrity support                                    |
  +----------+------------+-----------------------------------------+
  |    1     | both integrity & encryption support                  |
  +----------+------------------------------------------------------+

                Table 1: Encryption flag (F) description



4.2. Node Behaviors

4.2.1. Sender

   A sender that sends a CoAP message MUST check whether the
   confidentiality function of the CoAP message is to be provided (not
   in the scope of this standard document).

   When only the integrity function has to be provided for the CoAP
   message, the process of generating an authentication tag value of
   the CoAP message MUST be performed using the traditional AES_CCM
   procedure in the DTLS record layer, and the encryption function MUST
   NOT be performed. The sender MUST set the flag "F" of the DTLS



Choi                 Expires September 23, 2015               [Page 8]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   record layer header to "0." Then, the sender MUST send the CoAP
   message and authentication tag value to the CoAP receiver.

   When both the integrity and confidentiality functions have to be
   provided for the CoAP message, according to the AES_CCM procedure,
   the CoAP message authentication tag value MUST be generated and the
   message MUST be encrypted in the DTLS record layer. Prior to sending
   the encrypted message, CoAP MUST set the flag "F" of the DTLS record
   layer header to "1." The sender then MUST send the encrypted CoAP
   message to the CoAP receiver.

   The other processes managed in the DTLS record layer MUST follow the
   DTLS 1.2 [RFC6347] standard.



4.2.2. Receiver

   The receiver node that receives the CoAP message through the DTLS
   security channel MUST check the value of the flag "F" in the DTLS
   record layer header. If the flag value is "0," only the
   authentication tag value of the CoAP message MUST be verified; if
   the flag value is "1," the processes to decrypt the CoAP message and
   verify the authentication tag value MUST be performed.

   The other processes managed in the DTLS record layer MUST follow the
   DTLS 1.2 [RFC6347] standard.



5. Security Considerations

   (TBD)



6. IANA Considerations

   This memo includes no request to IANA.










Choi                 Expires September 23, 2015               [Page 9]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


7. References

7.1. Normative References

   [RFC7252] Shelby, Z., Hartke, K., and Bormann, C., "The Constrained
             Application Protocol (CoAP)", RFC 7252, June 2014.

   [RFC6347] Rescorla, E. and Modadugu, N., "Datagram Transport Layer
             Security Version 1.2", RFC 6347, January 2012.

7.2. Informative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC5487] Badra, M., "Pre-Shared Key Cipher Suites for TLS with SHA-
             256/384 and AES Galois Counter Mode", RFC 5487, March 2009.



8. Acknowledgments

   (TBD)

























Choi                 Expires September 23, 2015              [Page 10]

Internet-Draft  Fine-grained Support of DTLS Security       March 2015


   Authors' Addresses

   Jaeduck Choi
   National Security Research Institute
   Daejeon, Korea
   Email: cjduck@ensec.re.kr


   Gunhee Lee
   National Security Research Institute
   Daejeon, Korea
   Email: icezzoco@ensec.re.kr


   Namhi Kang
   Duksung Women's University
   Seoul, Korea
   Email: kang@duksung.ac.kr


   Seungwook Jung
   Sonngsil University
   Seoul, Korea
   Email: seungwookj@ssu.ac.kr


   Souhwan Jung
   Soongsil University
   Seoul, Korea
   Email: souhwanj@ssu.ac.kr


















Choi                 Expires September 23, 2015              [Page 11]