Internet DRAFT - draft-kumar-6lo-selective-bootstrap
draft-kumar-6lo-selective-bootstrap
6lo S. Kumar
Internet-Draft Philips Research
Intended status: Standards Track P. van der Stok
Expires: September 5, 2015 Consultant
March 4, 2015
Security Bootstrapping over IEEE 802.15.4 in selective order
draft-kumar-6lo-selective-bootstrap-00
Abstract
Low-resource devices in a Low-resource and Lossy Network (LLN) can be
based on a mesh network using the IEEE 802.15.4 link standard.
Security in these networks MUST be enforced at the link level.
Provisioning the devices in a secure manner with keys (often called
security bootstrapping) to encrypt and authenticate the link-layer
messages is the subject of this specification. This proposal
distinguishes itself from other bootstrap proposals by requiring that
the devices can be secured in an order determined by the needs of the
installation procedure. Other proposals use an "onion model", where
first the devices one-hop away from the initial device (often the
border router) are secured, followed by the devices that are one-hop
away from already secured devices.
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 September 5, 2015.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
Kumar & van der Stok Expires September 5, 2015 [Page 1]
Internet-Draft Bootstrap March 2015
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 . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 7
5. Mesh Bootstrap Procedure . . . . . . . . . . . . . . . . . . 8
5.1. Network Layout . . . . . . . . . . . . . . . . . . . . . 9
5.2. Commissioning Tool discovery . . . . . . . . . . . . . . 9
5.3. Bootstrap security layer . . . . . . . . . . . . . . . . 10
5.3.1. ICMP messages . . . . . . . . . . . . . . . . . . . . 10
5.3.2. Joining a 6LR to the secured mesh . . . . . . . . . . 12
5.3.3. Packet handling . . . . . . . . . . . . . . . . . . . 13
5.3.4. Securing a channel . . . . . . . . . . . . . . . . . 14
5.4. Secure key transfer . . . . . . . . . . . . . . . . . . . 15
6. Setting layer-2 key values . . . . . . . . . . . . . . . . . 16
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17
10. Change log . . . . . . . . . . . . . . . . . . . . . . . . . 17
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
11.1. Normative References . . . . . . . . . . . . . . . . . . 17
11.2. Informative References . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21
1. Introduction
IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)
[RFC4944] on IEEE 802.15.4 [ieee802.15.4] wireless networks is
becoming common in many professional domains such as lighting
controls. However commissioning of such networks is not easy due to
a lack of standardized secure bootstrapping mechanisms for these
networks.
The security of IEEE 802.15.4 MAC frames is based on Advanced
Encryption Standard (AES) [FIPS.197.2001] in Counter with CBC-MAC
Mode (CCM) [CCM] which provides confidentiality and authenticity.
Kumar & van der Stok Expires September 5, 2015 [Page 2]
Internet-Draft Bootstrap March 2015
There are different security levels or combinations of authenticated
encryption defined in IEEE 802.15.4 as shown in Table 1.
+-----------------+-----------------+------------------------------+
| Security Level | Confidentiality | Message Integrity Code (MIC) |
+-----------------+-----------------+------------------------------+
| 0 | None | None |
| 1 | None | Yes (4 byte MIC) |
| 2 | None | Yes (8 byte MIC) |
| 3 | None | Yes (16 byte MIC) |
| 4 | Yes | None |
| 5 | Yes | Yes (4 byte MIC) |
| 6 | Yes | Yes (8 byte MIC) |
| 7 | Yes | Yes (16 byte MIC) |
+-----------------+-----------------+------------------------------+
Table 1: IEEE 802.15.4 supported Security Levels
Although IEEE 802.15.4 defines how security can be enabled between
nodes, it does not specify the provisioning and management of the
keys. Therefore securing a 6lowpan network with devices from
multiple manufacturers with different provisioning techniques is
often tedious and time consuming.
Some industry standards have tried to solve the issue by using a mix
of other protocols with extensions. For example, Zigbee-IP
[ZigbeeIP] uses Protocol for carrying Authentication for Network
Access (PANA) [RFC5191] with the additional PANA-Relay [RFC6345] to
carry EAP-TLS [RFC5216] packets to the joining node as shown in
Figure 1.
Kumar & van der Stok Expires September 5, 2015 [Page 3]
Internet-Draft Bootstrap March 2015
+-----------------+
| EAP Peer | +-------------+
+-----------------+ |PANA Relay |
|PANA Client (PaC)|<-->|Element (PRE)|
+-----------------+ +------^------+
Joining Node |
|
|
+-------v-----------+ +-----------+
|EAP Authenticator | |EAP Server |
+-------------------+<-------->+-----------+
|PANA Authentication| |AAA Server |
|Agent (PAA) | +-----------+
+-------------------+
Figure 1: EAP over PANA for bootstrapping
The additional protocol stack of PANA and EAP provides for a large
amount of flexibility in terms of potential security protocols and
cryptographic algorithms that can be used for authentication and key
distribution. However this flexibility is often not needed in IoT
scenarios or often not wanted for inter-operability reasons (e.g.
Zigbee-IP only uses EAP-TLS mode with two possible cryptosuites).
DTLS-Relay [I-D.kumar-dice-dtls-relay] as depicted in Figure 2 is an
alternative simpler proposal based on trust enrolment
[I-D.jennings-core-transitive-trust-enrollment] that provides the
same results by reusing the security protocols (like DTLS [RFC6347])
that already exist on IoT devices.
+--------+ +-------+ +-------+
| DTLS | | DTLS | | DTLS |
| Client |<------>| Relay |<-------->|Server |
+--------+ +-------+ +-------+
Joining AAA
Node Server
Figure 2: DTLS Relay for bootstrapping
Numerous other recent proposals like
[I-D.pritikin-anima-bootstrapping-keyinfra],
[I-D.richardson-6tisch--security-6top],
[I-D.struik-6tisch-security-considerations],
[I-D.ohba-6tisch-security], [I-D.he-iot-security-bootstrapping]
discuss network bootstrapping in multi-hop networks and their
architectural implications. However an essential aspect of all these
Kumar & van der Stok Expires September 5, 2015 [Page 4]
Internet-Draft Bootstrap March 2015
techniques (including the PANA-Relay and DTLS-Relay) is that they
rely on an "Onion" topology for bootstrapping: devices which are one-
hop wireless from the Border Router (or Commissioning Device) are
provisioned first. Devices multiple hops removed from the border
router are provisioned by an already provisioned neighbour (an
"Onion" layer) until the whole network is bootstrapped.
Such an "Onion" model can be limiting in various professional domains
where a large number of devices need to be commissioned (provided
with installation information) in an order determined by their
physical layout rather than by the wireless network topology. The
wireless network topology is often unknown to a commissioner and may
vary over time due to environmental conditions (e.g. presence of
scaffolding during construction). Therefore, "onion" bootstrapping
proposals force a tedious separation of the actual device
commissioning done by a domain expert from the security bootstrapping
of the devices. The purpose of the bootstrapping proposal of this
specification is a simultaneous execution of commissioning and
bootstrapping.
In this specification, the bootstrapping order of the nodes can be
selected by a commissioner.
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].
Readers are expected to be familiar with all the terms and concepts
that are discussed in "neighbour Discovery for IP version 6"
[RFC4861], "IPv6 Stateless Address Autoconfiguration" [RFC4862],
"IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs):
Overview, Assumptions, Problem Statement, and Goals" [RFC4919],
"neighbour Discovery Optimization for Low-power and Lossy Networks"
[RFC6775] and "Transmission of IPv6 Packets over IEEE 802.15.4
Networks" [RFC4944].
This specification uses the following terms from [RFC6775]:
6LoWPAN link: A wireless link determined by single IP hop
reachability of neighbouring nodes. These are considered links
with undetermined connectivity properties as in [RFC5889].
6LoWPAN Node (6LN): A 6LoWPAN node is any host or router
participating in a LoWPAN. This term is used when referring to
situations in which either a host or router can play the role
described.
Kumar & van der Stok Expires September 5, 2015 [Page 5]
Internet-Draft Bootstrap March 2015
6LoWPAN Router (6LR): An intermediate router in the LoWPAN that is
able to send and receive Router Advertisements (RAs) and Router
Solicitations (RSs) as well as forward and route IPv6 packets.
6LoWPAN routers are present only in route-over topologies.
6LoWPAN Border Router (6LBR): A border router located at the
junction of separate 6LoWPAN networks or between a 6LoWPAN network
and another IP network. There may be one or more 6LBRs at the
6LoWPAN network boundary. A 6LBR is the responsible authority for
IPv6 prefix propagation for the 6LoWPAN network it is serving. An
isolated LoWPAN also contains a 6LBR in the network, which
provides the prefix(es) for the isolated network.
Router: Either a 6LR or a 6LBR. Note that nothing in this document
precludes a node being a router on some interfaces and a host on
other interfaces as allowed by [RFC2460].
This specification uses the following new terms:
Commissioning Tool (CT): A processor that contains keying material,
authorizes nodes to join, and communicates the keying material.
6LoWPAN Joining Node (6JN): A 6LoWPAN node that is next to join a
secured LoWPAN mesh. This term is used when either the node sends
a join request to the CT or the CT sends key material to the node
for joining.
6LoWPAN Secured Router (6SR): A 6LoWPAN router that has joint a
secured LoWPAN mesh. This term is used when the router has
received the key material to join the LoWPAN mesh.
6LoWPAN Un-secured Router (6UR): A 6LoWPAN router that has NOT joint
a secured LoWPAN mesh. This term is used when the router has
received no key material to join the LoWPAN mesh.
3. Use Case
In lighting controls a major shift is on its way from lighting
specific networking standards like [DALI] to Internet networking
standards. This shift has a profound influence on the installation
and commissioning of the lighting control network. With special
purpose networks, the installation of the lighting control and the
network were done during the same installation phase.
The choice for the Internet Protocol is motivated by the reduction of
costs by separation of concerns, in this case: The separation of the
network installation from the lighting control installation and
Kumar & van der Stok Expires September 5, 2015 [Page 6]
Internet-Draft Bootstrap March 2015
commissioning. For Internet based installations the following phases
are expected in a fair number of installations:
Electric installation: All electric cabling is laid out and
connections are validated.
Network installation: All network interfaces are connected and
validated.
Lighting installation: All lighting fixtures are named and other
information is loaded into them (commissioning); simultaneously
the security bootstrapping of the network is done.
Dependent on the installation company, the proposed network
configuration, and the installation contract, these phases and their
order may not be respected and a bootstrap protocol may be used
different from the one described in this specification.
For an IEEE 802.15.4 network [ieee802.15.4] the specified three
phases imply that after the network installation, non-battery powered
devices are connected to their electricity supply, and the
IEEE802.15.4 layer-2 mesh and the 6LoWPAN IP layer-3 mesh is
configured. Also the preferred IP routing protocol must be working
to route messages between IEEE 802.15.4 interfaces based on their IP
address. During the Lighting installation, devices are selected
according to an installation-dependent protocol, named, and layer 2
security keys are loaded into the devices. When all designated
devices have received their security keys, the network is closed such
that only authorized nodes can route messages in the network, and
data packets can only be exchanged between the layer-2 secured
devices. The layer-3 routing protocol MUST continue routing messages
before, during and after the Lighting installation procedure.
The selection of the devices is executed by an installation engineer
using a Commissioning Tool (CT). According to an installation-
dependent protocol a device is selected from the set of not yet
selected devices, and its identity is communicated to the CT. The CT
exchanges messages with the selected device to distribute the keys
(see Section 5.4) and other installation specific data. The order of
selection is completely installation and installer dependent, is
optimized for low cost, and is not aware of network topology.
4. Requirements
This section lists the requirements for the bootstrap solution.
Kumar & van der Stok Expires September 5, 2015 [Page 7]
Internet-Draft Bootstrap March 2015
Selection of device: The commissioner is able to select an
installed device and commission it without the knowledge of the
wireless network topology.
Device authenticity: A commissioner should be able to verify that
the credentials of the device being bootstrapped match the
credentials of the one selected to commission.
Device authorization: A commissioner should be able to decide if a
particular authenticated device can indeed be part of the secure
network being created.
Commissioning Tool (CT) authenticity and authorization: The device
being commissioned can verify if the CT is allowed to bootstrap
the device. Alternatively, the device may allow any CT to
bootstrap it provided a mechanism exists, either in-band or out-
of-band, to reset it and start over again.
Key Confidentiality: The layer-2 key that is used to secure the
network should be encrypted such that only the device being
commissioned can decrypt the key.
Key Authenticity: The device should be able to verify that the
layer-2 key has not been tampered during transport.
5. Mesh Bootstrap Procedure
The flow of the mesh bootstrap procedure involves a joining node
(6JN), a Commissioning Tool (CT) and a path over secured routers
(6SR) and unsecured routers (6UR). It is assumed that Neighbour
discovery has been executed, and a router protocol supports the
routing through the mesh. In the beginning all routers (6LR) are
unsecured.
A 6JN announces its presence by sending a join request to the CT.
The join request is routed over the mesh involving possibly 6UR and
6LR to the CT. The 6JN MAY be identified by its EUI64 identifier
[EUI64]. The identifier MAY be transported in the join request.
In an alternative approach with its own operational constraints, the
CT already has a list of all node identifiers, and uses a different
bootstrapping protocol. This approach is not the subject of this
specification.
The CT on receiving the join request can decide if 6JN is a
legitimate device and if it can be part of secure network being
commissioned. If positive, then the CT sends the layer-2 key
material to the node via a secured channel. The receiving node
Kumar & van der Stok Expires September 5, 2015 [Page 8]
Internet-Draft Bootstrap March 2015
installs the key material and passes from unsecured to secured node.
The secured node sets up secured links with its 6SR using the
received key material. When all nodes are secured, the network is
secured, and communication (routing) is only allowed via secured
channels.
5.1. Network Layout
The network to be secured consists of a set of wireless nodes
interconnected to a mesh network via IEEE 802.15.4 interfaces. The
mesh network may be connected to a border router (6LBR) as described
in [RFC6775]. The 6LBR may be connected to a backbone. The CT can
be connected to the mesh network to be connected in several ways:
CT is connected to an IEEE802.11 interface that communicates with
the IEEE802.11 Access Point Located in the 6LBR.
CT is connected to the backbone directly or via a path composed of
one or more routers.
It is required that messages can be routed between the CT and each of
the candidate devices in the mesh to be secured.
In an alternative network, not considered here, the CT is connected
with an IEEE 802.15.4 interface to the mesh network. In this case
the 6LBR is not required. A mobile CT can then do one-hop
commissioning of the devices.
5.2. Commissioning Tool discovery
The discovery of the Commissioning Tool (CT) by the 6LR is outside
the scope of this specification. The CT can be discovered in several
ways dependent on the infrastructure, for example:
Mesh connected to backbone: In this case the CT can announce its
presence in DNS using DNS-SD [RFC6763]. The 6JN can query DNS for
the address of the nodes supporting the CT service.
Resource Directory present: When a Resource Directory (RD)
[I-D.ietf-core-resource-directory] is present, the CT can store
the presence of its service in the RD. The 6JN can query the RD
for the address of the nodes supporting the CT service.
Stand alone mesh: The 6JN can send a multicast to /.well-known/core
querying the existence of the CT service.
Kumar & van der Stok Expires September 5, 2015 [Page 9]
Internet-Draft Bootstrap March 2015
5.3. Bootstrap security layer
The purpose of this document is to specify a so-called "bootstrap-
layer" between layer-2 and layer-3 to satisfy the use case of
Section 3. In the text the "joining node" (6JN) is the unsecured
router (6UR) that is selected to be the next 6LR to be secured. The
following considerations have led to the definitions of the bootstrap
layer:
Messages MUST be routed between CT and the 6JN.
The route between CT and 6JN may pass through the 6LBR.
The route between CT and 6JN may pass through secured routers
(6SR) and unsecured routers (6UR).
The last consideration follows directly from the installation-
dependent order of 6JN selection. The last consideration also means
that a 6SR has to communicate over secured and unsecured links.
Every 6LR maintains in the bootstrap-layer:
A list of its neighbours. (This list can be shared with neighbour
discovery, or with other protocols).
A Boolean variable, ALL_SECURED, which initially is false.
These two items constitute the bootstrap state of a 6LR.
The neighbour list of the node contains information whether a link
between itself and the neighbour is secured. Dependent on the value
of the bootstrap state, packets are refused, encrypted, decrypted,
and passed on between layer-2 and layer-3.
5.3.1. ICMP messages
The protocol uses one ICMP message transporting two bootstrap
requests:
Join Secure Request (JSR): This is an unsecured message that is sent
from an 6UR to the CT with the request to be secured.
Set Secure Request (SSR): this is a secured message that is sent
from a 6SR to signal its secured state to a neighbour 6LR
The layout of the ICMP messages is:
Kumar & van der Stok Expires September 5, 2015 [Page 10]
Internet-Draft Bootstrap March 2015
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status | Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EUI-64 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: ICMP message layout
IP fields:
IPv6 source: In a JSR this the non link-local address of the
sending 6UR; in a SSR this is the link-local address
of the sending 6SR.
IPv6 destination: In a JSR this is non link-local address of the CT;
in a SSR this is the link-local address of a neighbour
6LR.
Hop Limit: Set to MULTIHOP_HOPLIMIT on transmit. MUST be ignored
on receipt.
ICMP Fields:
Type: TBD for JSR and for SSR
Code: Set to one for JSR and set to two for SSR.
Checksum: The ICMP checksum. See [RFC4443].
Status: 8-bit unsigned integer. Indicates the status of a
registration in the CT. MUST be set to 0 in JSR. See
Table 2.
Reserved: This field is unused. It MUST be initialized to zero
by the sender and MUST be ignored by the receiver.
Registration Lifetime: 16-bit unsigned integer. The amount of time
in a unit of 60 seconds that the 6LR should retain the
secure state in the Neighbor entry for the sender of
the SSR.
Kumar & van der Stok Expires September 5, 2015 [Page 11]
Internet-Draft Bootstrap March 2015
EUI-64: 64 bits. This field is used to uniquely identify the
interface of the registered address by including the
EUI-64 identifier [EUI64] assigned to it unmodified.
The Status values used in JSR and SSR are (to be done/ eventually
removed):
+---------+--------------------------------------------+
| Status | Description |
+---------+--------------------------------------------+
| 0 | Success |
| 1 | Duplicate Address |
| 2 | Impossible |
| 3-255 | Allocated using Standards Action [RFC5226] |
+---------+--------------------------------------------+
Table 2
5.3.2. Joining a 6LR to the secured mesh
+------+ +------+ +------+ +------+ +------+ +------+
| | | | | | | | | | | |
| CT | | 6LBR | | 6SR | | 6UR | | 6JN | | 6SR |
+------+ +------+ +------+ +------+ +------+ +------+
| | | | | |
| | (secured) |(unsecured)|(unsecured)|(unsecured)|
| | | | | |
| | | | <--(1)----| |
| | | <---(2)---| JSR | |
| |<---(3)--- | | | |
| <--(4)-- | | | | |
| | | | | |
|=================(5)=========================>| |
| | (many packets DTLS | |
| | | | | |
| | | | <--(6)----| ---(7)--->|
| | | | SSR | SSR |
| | | | | |
| | | | |<---(8)----|
| | | | | SSR |
| | | | | |
| | (secured) |(unsecured)|(unsecured)| (secured) |
| | | | | |
Figure 4: Message flow diagram of bootstrap protocol
Kumar & van der Stok Expires September 5, 2015 [Page 12]
Internet-Draft Bootstrap March 2015
Figure 4 is a message flow diagram representing the bootstrapping
protocol message exchange. The diagram is quite close to the message
flow diagram of [I-D.richardson-6tisch--security-6top]. It is
assumed that the neighbours have discovered each other at layer-2
with the IEEE802.15.4 beacons. Also it is assumed that all NS, RS,
RA, and DAD messages have been exchanged with Neighbour Discovery.
Also the routing protocol has started.
Assume, that at some point during the security bootstrap protocol,
the 6LBR interface and the two 6SR interfaces have been secured.
Before the bootstrap protocol starts the variable ALL_SECURED is set
to false in all nodes.
The 6JN sends at (1) a JSR over an unsecured channel containing its
EUI64 identifier. At (2) the message is routed on over an unsecure
channel, and at (3) it is routed to the 6LBR over a secure channel.
At (4) the unsecured request is passed on to the CT. After
reception, the CT sets up a secure end-to-end DTLS link with 6JN
(described further in Section 5.4) and securely transfers the keys
over this DTLS session at (5). The secure DTLS packets are routed
over secure and unsecure layer-2 channels in the mesh. Once the keys
are installed, the 6JN sends a SSR to both neighbours at (6) and (7).
At (8) the 6SR neighbour returns a SSR to 6JN. Afterwards the link
between 6JN and 6SR is secured.
When all designated 6LR have become 6SR, the CT sends a network close
messages to all designated 6SR. On reception, the 6SR nodes set
their variable ALL_SECURED to true.
5.3.3. Packet handling
Dependent on the bootstrap state of the 6LR, the following rules are
followed by the bootstrap layer for the communication with a
neighbouring 6LR, called N. The packet handling is specified under 3
conditions:
Condition 1: The link with N is signalled secure in the neighbour
list:
o An unsecured packet arriving from N is refused.
o A secured, authenticated packet arriving from N is decrypted and
if authentication is verified, passed on to layer 3.
Condition 2: The link with N is signalled NOT secure in the neighbour
list, and ALL_SECURED is false:
Kumar & van der Stok Expires September 5, 2015 [Page 13]
Internet-Draft Bootstrap March 2015
o When the receiving node is secured, a secured packet arriving from
N is decrypted and if authentication is verified, passed on to
layer-3. This is needed for the SSR packet at step (8) in
Figure 4.
o When the receiving node is not secured, a secured packet from N is
refused.
o An unsecured packet from N is passed on to layer-3.
Condition 3: ALL_SECURED is true:
o All unsecured packets are refused.
Packets coming from layer-3 with destination N are sent according to
the rules:
o When the link with N is signalled secure in the neighbour list,
the packet is encrypted and authenticated.
o When the link with N is signalled unsecure in the neighbour list,
the packet is sent without encryption or authentication.
5.3.4. Securing a channel
After termination of the secure key transfer (see Section 5.4, the
node fills the ACL table maintained at layer-2 [ieee802.15.4]. The
next stage is to determine whether the neighbours are also equipped
with the keys. Once the neighbour of a secured node is secured, the
link between the two MUST be declared secure in the list of both
neighbours. The determination of a secure link is done by exchanging
SSR messages, according to the following protocol:
A node that has set its keys in the ACL table sends a secured SSR
message to all its neighbours.
On reception of a secured SSR from node N, and the link of node N
is not secured in the list of neighbours, and the receiving node
is secured, the receiving node sends a secured SSR to node N;
consecutively, the receiving node sets the link of neighbour N to
secured in the list of neighbours.
On reception of a secured SSR from node N and the receiving node
is NOT secured, the receiving node rejects the message.
Kumar & van der Stok Expires September 5, 2015 [Page 14]
Internet-Draft Bootstrap March 2015
5.4. Secure key transfer
The layer-2 keys are distributed to the devices over a secure DTLS
session as indicated in message (5) in Figure 4. This DTLS session
is created using a trust anchor that is deployed in the devices
during manufacturing. The trust anchor can be for e.g. one of these
listed below:
o Pre-shared key: The manufacturer of the device can embed a pre-
shared key as a trust anchor during the personalization of the
device in the factory. The key along with EUI-64 of the device is
then shared with authorized commissioners such that a secure DTLS
channel based on [RFC4279] can be established between the CT and
6JN. It is recommended to use the cipher suite
TLS_PSK_WITH_AES_128_CCM_8 [RFC6655] which is the mandatory to
implement cipher suite for use with shared secret based DTLS in
Constrained Application Protocol (CoAP) [RFC7252].
o Raw public key: The manufacturer of the device can embed a {pubic-
key, private-key} pair of an asymmetric cryptographic algorithm as
a trust anchor during the personalization of the device in the
factory. The public-key (or a hash of the public-key) is
available out-of-band (for e.g. printed on the device) to the
commissioner to enable authentication and authorization of the
selected device over a secure DTLS channel based on [RFC7250]. It
is recommended to use the cipher suite
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 [RFC7251] which is the
recommended cipher suite for raw-public key based DTLS in CoAP.
o Certificates: The manufacturer of the device can embed a {public-
key, private-key} pair along with a certificate (signed by the
manufacturer or a trusted third party) linking the public-key to
an identity in the device. This could be for example an IEEE
802.1AR certificate [IDevID] which links the public-key to the
EUI-64 of the device. The DTLS session is then established
between the CT and JN based on the trust in the certificate. It
is recommended to use the cipher suite
TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 which is recommended for
certificate based DTLS in CoAP.
It is important to note that only the pre-shared key option above
provides mutual authentication of the DTLS channel. For raw public
key and certificate option, an additional root public key needs to be
provisioned in the device for authenticating the CT with a mutually
authenticated DTLS handshake.
Kumar & van der Stok Expires September 5, 2015 [Page 15]
Internet-Draft Bootstrap March 2015
6. Setting layer-2 key values
Once the DTLS session is established (using any of the trust anchors
mentioned above), the layer-2 keys can be transported within the
secure session. The setting of the values in the device can be
achieved using a CoAP request on a well-defined CoAP resource which
is used for configuring the MAC layer keys, in analogy to the
multicast address setting in [RFC7390].
Another solution is using a YANG file that specifies configurable key
entries, the values of which can be set with for example CoMI
[I-D.vanderstok-core-comi].
CoAP endpoints implementing the layer-2 key setting RESTful interface
MUST support the CoAP Internet Media Type "application/coap-
group+json".
A resource offering this representation can be annotated for direct
discovery [RFC6690] using the Resource Type (rt=) Link Target
Attribute "core.ky", where "ky" is shorthand for "layer-2 key
values". An authorized client uses this media type to query/ manage
layer-2 key values of a CoAP endpoint as defined in the following
subsections.
TODO: specify payload format and resource name "/coap-key2"
7. IANA Considerations
The document registers one new ICMPv6 "type" number under the
subregistry "ICMPv6 "type" Numbers":
o Bootstrap Request (xxx)
8. Security Considerations
o During the commissioning period, rogue nodes can use the network
and send requests to 6LR and thus compromise the nodes. It is
recommended that during the period from network start up till the
end of the secure bootstrapping, no resources can be accessed in
the 6LR. Consequently, the nodes can only exchange ICMP messages.
In this case the routing tables and the neighbour tables of the
6LR can be corrupted. Such corruption will be detrimental to the
bootstrap process and can be detected, after which the installer
SHOULD take measures to remove the rogue nodes.
o After all nodes in the network have been commissioned, the network
needs to be finally secured by setting ALL_SECURED to true for all
nodes. This final message needs to be securely sent by the CT
Kumar & van der Stok Expires September 5, 2015 [Page 16]
Internet-Draft Bootstrap March 2015
either in unicast or multicast to all the nodes in the network.
If additional nodes need to be added to the network at a later
point in time, a new secure message needs to be sent by the CT
with ALL_SECURED set to false. This message can either be sent to
the whole network or (if known) only to the neighbours of the
joining node. Both messages that change the ALL_SECURED state
should be authenticated by the CT and not re-playable.
o The large number of messages exchanged between the joining node
and CT can be misused by a rogue node to create a Denial-of-
Service (DoS) at nodes closer to the 6LBR, 6LBR itself or at the
CT. This can be limited by ensuring that the DTLS handshake is
only performed by the CT with a node that the commissioner has
presently chosen to bootstrap. Thus the rogue messages are only
limited to ICMP "Bootstrap Request" messages.
9. Acknowledgements
The authors would like to thank Peter Lenoir and Dee Denteneer for
the valuable discussions that helped in shaping the solution.
10. Change log
11. References
11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998.
[RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control
Message Protocol (ICMPv6) for the Internet Protocol
Version 6 (IPv6) Specification", RFC 4443, March 2006.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862, September 2007.
[RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6
over Low-Power Wireless Personal Area Networks (6LoWPANs):
Overview, Assumptions, Problem Statement, and Goals", RFC
4919, August 2007.
Kumar & van der Stok Expires September 5, 2015 [Page 17]
Internet-Draft Bootstrap March 2015
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
"Transmission of IPv6 Packets over IEEE 802.15.4
Networks", RFC 4944, September 2007.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008.
[RFC5889] Baccelli, E. and M. Townsley, "IP Addressing Model in Ad
Hoc Networks", RFC 5889, September 2010.
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, January 2012.
[RFC6775] Shelby, Z., Chakrabarti, S., Nordmark, E., and C. Bormann,
"Neighbor Discovery Optimization for IPv6 over Low-Power
Wireless Personal Area Networks (6LoWPANs)", RFC 6775,
November 2012.
11.2. Informative References
[CCM] National Institute of Standards and Technology, , "SP
800-38C Recommendation for Block Cipher Modes of
Operation: The CCM Mode for Authentication and
Confidentiality", May 2004.
[DALI] IEC, , "Digital Addressable Lighting Interface, IEC
62386", June 2009.
[EUI64] IEEE, "Guidelines for 64-bit Global Identifier (EUI-64)
Registration Authority",
<http://standards.ieee.org/regauth/oui/tutorials/
EUI64.html>.
[FIPS.197.2001]
National Institute of Standards and Technology, "Advanced
Encryption Standard (AES)", FIPS PUB 197, November 2001,
<http://csrc.nist.gov/publications/fips/fips197/
fips-197.pdf>.
[I-D.he-iot-security-bootstrapping]
ana.hedanping@huawei.com, a., "Security Bootstrapping of
IEEE 802.15.4 based Internet of Things", draft-he-iot-
security-bootstrapping-00 (work in progress), January
2015.
Kumar & van der Stok Expires September 5, 2015 [Page 18]
Internet-Draft Bootstrap March 2015
[I-D.ietf-core-resource-directory]
Shelby, Z. and C. Bormann, "CoRE Resource Directory",
draft-ietf-core-resource-directory-02 (work in progress),
November 2014.
[I-D.jennings-core-transitive-trust-enrollment]
Jennings, C., "Transitive Trust Enrollment for Constrained
Devices", draft-jennings-core-transitive-trust-
enrollment-01 (work in progress), October 2012.
[I-D.kumar-dice-dtls-relay]
Kumar, S., Keoh, S., and O. Garcia-Morchon, "DTLS Relay
for Constrained Environments", draft-kumar-dice-dtls-
relay-02 (work in progress), October 2014.
[I-D.ohba-6tisch-security]
Chasko, S., Das, S., Lopez, R., Ohba, Y., Thubert, P., and
A. Yegin, "Security Framework and Key Management Protocol
Requirements for 6TiSCH", draft-ohba-6tisch-security-01
(work in progress), March 2014.
[I-D.pritikin-anima-bootstrapping-keyinfra]
Pritikin, M., Behringer, M., and S. Bjarnason,
"Bootstrapping Key Infrastructures", draft-pritikin-anima-
bootstrapping-keyinfra-01 (work in progress), February
2015.
[I-D.richardson-6tisch--security-6top]
Richardson, M., "6tisch secure join using 6top", draft-
richardson-6tisch--security-6top-04 (work in progress),
November 2014.
[I-D.struik-6tisch-security-considerations]
Struik, R., "6TiSCH Security Architectural
Considerations", draft-struik-6tisch-security-
considerations-01 (work in progress), January 2015.
[I-D.vanderstok-core-comi]
Stok, P., Greevenbosch, B., Bierman, A., Schoenwaelder,
J., and A. Sehgal, "CoAP Management Interface", draft-
vanderstok-core-comi-06 (work in progress), February 2015.
[IDevID] IEEE Standard, , "IEEE 802.1AR Secure Device Identifier",
December 2009, <http://standards.ieee.org/findstds/
standard/802.1AR-2009.html>.
Kumar & van der Stok Expires September 5, 2015 [Page 19]
Internet-Draft Bootstrap March 2015
[RFC4279] Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites
for Transport Layer Security (TLS)", RFC 4279, December
2005.
[RFC5191] Forsberg, D., Ohba, Y., Patil, B., Tschofenig, H., and A.
Yegin, "Protocol for Carrying Authentication for Network
Access (PANA)", RFC 5191, May 2008.
[RFC5216] Simon, D., Aboba, B., and R. Hurst, "The EAP-TLS
Authentication Protocol", RFC 5216, March 2008.
[RFC6345] Duffy, P., Chakrabarti, S., Cragie, R., Ohba, Y., and A.
Yegin, "Protocol for Carrying Authentication for Network
Access (PANA) Relay Element", RFC 6345, August 2011.
[RFC6655] McGrew, D. and D. Bailey, "AES-CCM Cipher Suites for
Transport Layer Security (TLS)", RFC 6655, July 2012.
[RFC6690] Shelby, Z., "Constrained RESTful Environments (CoRE) Link
Format", RFC 6690, August 2012.
[RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service
Discovery", RFC 6763, February 2013.
[RFC7250] Wouters, P., Tschofenig, H., Gilmore, J., Weiler, S., and
T. Kivinen, "Using Raw Public Keys in Transport Layer
Security (TLS) and Datagram Transport Layer Security
(DTLS)", RFC 7250, June 2014.
[RFC7251] McGrew, D., Bailey, D., Campagna, M., and R. Dugal, "AES-
CCM Elliptic Curve Cryptography (ECC) Cipher Suites for
TLS", RFC 7251, June 2014.
[RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained
Application Protocol (CoAP)", RFC 7252, June 2014.
[RFC7390] Rahman, A. and E. Dijk, "Group Communication for the
Constrained Application Protocol (CoAP)", RFC 7390,
October 2014.
[ZigbeeIP]
ZigBee Alliance, , ""ZigBee IP Specification"", .
[ieee802.15.4]
Institute of Electrical and Electronics Engineers, , "IEEE
Standard 802.15.4-2006", 2006.
Kumar & van der Stok Expires September 5, 2015 [Page 20]
Internet-Draft Bootstrap March 2015
Authors' Addresses
Sandeep S. Kumar
Philips Research
High Tech Campus 34
Eindhoven 5656 AE
NL
Email: ietf.author@sandeep-kumar.org
Peter van der Stok
Consultant
Email: consultancy@vanderstok.org
Kumar & van der Stok Expires September 5, 2015 [Page 21]