draft-ietf-roll-enrollment-priority-02.txt   draft-ietf-roll-enrollment-priority-03.txt 
ROLL Working Group M. Richardson ROLL Working Group M. Richardson
Internet-Draft Sandelman Software Works Internet-Draft Sandelman Software Works
Intended status: Informational April 25, 2020 Intended status: Standards Track R. Jadhav
Expires: October 27, 2020 Expires: March 29, 2021 Huawei Tech
September 25, 2020
Enabling secure network enrollment in RPL networks Controlling Secure Network Enrollment in RPL networks
draft-ietf-roll-enrollment-priority-02 draft-ietf-roll-enrollment-priority-03
Abstract Abstract
[I-D.ietf-6tisch-enrollment-enhanced-beacon] defines a method by [I-D.ietf-6tisch-enrollment-enhanced-beacon] defines a method by
which a potential [I-D.ietf-6tisch-minimal-security] join proxy can which a potential [I-D.ietf-6tisch-minimal-security] enrollment proxy
announce itself as a available for new Pledges to enroll on a can announce itself as a available for new Pledges to enroll on a
network. The announcement includes a priority for enrollment. This network. The announcement includes a priority for enrollment. This
document provides a mechanism by which a RPL DODAG root can disable document provides a mechanism by which a RPL DODAG root can disable
enrollment announcements, or adjust the base priority for enrollment enrollment announcements, or adjust the base priority for enrollment
operation. operation.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 27, 2020. This Internet-Draft will expire on March 29, 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
2. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 3 2. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 4
2.1. Upwards compatibility . . . . . . . . . . . . . . . . . . 4 2.1. Upwards compatibility . . . . . . . . . . . . . . . . . . 4
3. Security Considerations . . . . . . . . . . . . . . . . . . . 5 3. Security Considerations . . . . . . . . . . . . . . . . . . . 5
4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 6 4. Privacy Considerations . . . . . . . . . . . . . . . . . . . 6
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.1. Normative References . . . . . . . . . . . . . . . . . . 6 7.1. Normative References . . . . . . . . . . . . . . . . . . 6
7.2. Informative References . . . . . . . . . . . . . . . . . 7 7.2. Informative References . . . . . . . . . . . . . . . . . 7
Appendix A. Change history . . . . . . . . . . . . . . . . . . . 8 Appendix A. Change history . . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
[RFC7554] describes the use of the time-slotted channel hopping [RFC7554] describes the use of the time-slotted channel hopping
(TSCH) mode of [ieee802154]. [I-D.ietf-6tisch-minimal-security] and (TSCH) mode of [ieee802154]. [I-D.ietf-6tisch-minimal-security] and
[I-D.ietf-6tisch-dtsecurity-secure-join] describe mechanisms by which [I-D.ietf-6tisch-dtsecurity-secure-join] describe mechanisms by which
a new node (the "pledge)" can use a friendly router as a Join Proxy. a new node (the "pledge)" can use a friendly router as a Join Proxy.
[I-D.ietf-6tisch-enrollment-enhanced-beacon] describes an extension [I-D.ietf-6tisch-enrollment-enhanced-beacon] describes an extension
to the 802.15.4 Enhanced Beacon that is used by a Join Proxy to to the 802.15.4 Enhanced Beacon that is used by a Join Proxy to
announce its existence such that Pledges can find them. announce its existence such that Pledges can find them.
skipping to change at page 2, line 43 skipping to change at page 2, line 44
The term (1)"Join" has been used in documents like The term (1)"Join" has been used in documents like
[I-D.ietf-6tisch-minimal-security] to denote the activity of a new [I-D.ietf-6tisch-minimal-security] to denote the activity of a new
node authenticating itself to the network in order to obtain node authenticating itself to the network in order to obtain
authorization to become a member of the network. This typically authorization to become a member of the network. This typically
involves a cryptographic authentication protocol in which a network involves a cryptographic authentication protocol in which a network
credential is provided. credential is provided.
In the context of the [RFC6550] RPL protocol, the term (2)"Join" has In the context of the [RFC6550] RPL protocol, the term (2)"Join" has
an alternate meaning: that of a node (already authenticating to the an alternate meaning: that of a node (already authenticating to the
network, and already authorized to be a member of the network), network, and already authorized to be a member of the network),
deciding which part of the RPL DODAG to attach to. The term "Join" deciding which part of the RPL DODAG to attach to. This term "Join"
has to do with parent selection processes. has to do with parent selection processes.
In order to avoid the ambiguity of this term, this document refers to In order to avoid the ambiguity of this term, this document refers to
the process (1)"Join" as enrollment, leaving the term "Join" to mean the process (1)"Join" as enrollment, leaving the term "Join" to mean
(2)"Join". The term "onboarding" (or IoT Onboarding) is sometimes (2)"Join". The term "onboarding" (or IoT Onboarding) is sometimes
used to describe this process. The term Join Proxy is retained with used to describe the enrollment process. However, the term _Join
it's meaning from [I-D.ietf-6tisch-minimal-security]. Proxy_ is retained with it's meaning from
[I-D.ietf-6tisch-minimal-security].
It has become clear that not every routing member of the mesh ought It has become clear that not every routing member of the mesh ought
to announce itself as a Join Proxy. There are a variety of local to announce itself as a _Join Proxy_. There are a variety of local
reasons by which a 6LR might not want to provide the Join Proxy reasons by which a 6LR might not want to provide the _Join Proxy_
function. They include available battery power, already committed function. They include available battery power, already committed
network bandwidth, and also total available memory available for Join network bandwidth, and also total available memory available for
proxy neighbor cache slots. Neighbor Cache Entry slots.
There are other situations where the operator of the network would There are other situations where the operator of the network would
like to selective enable or disable the enrollment process in a like to selective enable or disable the enrollment process in a
particular DODAG. particular DODAG.
As the enrollment process involves permitting unencrypted traffic As the enrollment process involves permitting unencrypted traffic
into the best effort part of a (TSCH) network, it would be better to into the best effort part of a (TSCH) network, it would be better to
have the enrollment process off when no new nodes are expected. have the enrollment process off when no new nodes are expected.
A network operator might also be able to recognize when certain parts A network operator might also be able to recognize when certain parts
of the network are overloaded and can not accomodate additional of the network are overloaded and can not accomodate additional
enrollment traffic, and it would like to adjust the enrollment enrollment traffic, and it would like to adjust the enrollment
priority (the proxy priority field of priority (the proxy priority field of
[I-D.ietf-6tisch-enrollment-enhanced-beacon]) among all nodes in the [I-D.ietf-6tisch-enrollment-enhanced-beacon]) among all nodes in the
subtree of a congested link. subtree of a congested link.
This document describes an RPL DIO option that can be used to This document describes an RPL DIO option that can be used to
announce a minimum enrollment priority. Each potential Join Proxy announce a minimum enrollment priority. Each potential _Join Proxy_
would this value as a base on which to add values relating to local would this value as a base on which to add values relating to local
conditions. As explained in conditions. As explained in
[I-D.ietf-6tisch-enrollment-enhanced-beacon], higher values decrease [I-D.ietf-6tisch-enrollment-enhanced-beacon], higher values decrease
the likelyhood of an unenrolled node sending enrollment traffic via the likelyhood of an unenrolled node sending enrollment traffic via
this path. this path.
A network operator can set this value to the maximum value allowed, A network operator can set this value to the maximum value allowed,
effectively disable all new enrollment traffic. effectively disable all new enrollment traffic.
1.1. Terminology 1.1. Terminology
skipping to change at page 4, line 7 skipping to change at page 4, line 14
2. Protocol Definition 2. Protocol Definition
The following option is defined to transmission in the DIO issued by The following option is defined to transmission in the DIO issued by
the DODAG root. It may also be added by a router on part of the sub- the DODAG root. It may also be added by a router on part of the sub-
tree as a result of some (out of scope for this document) management tree as a result of some (out of scope for this document) management
function. function.
6LRs that see this DIO Option SHOULD increment their minimum 6LRs that see this DIO Option SHOULD increment their minimum
enrollment priority if they observe congestion on the channel used enrollment priority if they observe congestion on the channel used
for join traffic. The exact mechanism is a local decision, and may for enrollment traffic. The exact mechanism is a local decision, and
be the subject for future work. may be the subject for future work.
A 6LR which would otherwise be willing to act as a Join Proxy, will A 6LR which would otherwise be willing to act as a _Join Proxy_, will
examine the minimum priority field, and to that number, add any examine the minimum priority field, and to that number, add any
additional local consideration (such as upstream congestion). additional local consideration (such as upstream congestion).
The Join Priority can only be increased by each each 6LR in value, to The Enrollment Priority can only be increased by each 6LR in value,
the maximum value of 0x7f. to the maximum value of 0x7f.
The resulting priority, if less than 0x7f should enable the Join The resulting priority, if less than 0x7f should enable the _Join
Proxy function. Proxy_ function.
0 1 2 0 1 2
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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type = TBD01|Opt Length = 1|R| min. priority | | Type = TBD01|Opt Length = 1|R| min. priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
min.priority a 7 bit field which provides a base value for the min.priority a 7 bit field which provides a base value for the
Enhanced Beacon Join priority. A value of 0x7f (127) disables the Enhanced Beacon Join priority. A value of 0x7f (127) disables the
Join Proxy function entirely. _Join Proxy_ function entirely.
R a reserved bit that SHOULD be set to 0 by senders, and MUST be R a reserved bit that SHOULD be set to 0 by senders, and MUST be
ignored by receivers. This reserved bit SHOULD be copied to ignored by receivers. This reserved bit SHOULD be copied to
options created. options created.
This document uses the extensions mechanism designed into [RFC6550]. This document uses the extensions mechanism designed into [RFC6550].
It does not need any mechanism to enable it. It does not need any mechanism to enable it.
Future work like [I-D.ietf-roll-capabilities] will enable collection Future work like [I-D.ietf-roll-capabilities] will enable collection
of capabilities such as this one in reports to the DODAG root. of capabilities such as this one in reports to the DODAG root.
skipping to change at page 5, line 25 skipping to change at page 5, line 30
introduced. The 0x40 is only the half-way point, so if such an introduced. The 0x40 is only the half-way point, so if such an
amount of congestion was present, then this sub-tree of the DODAG amount of congestion was present, then this sub-tree of the DODAG
simply winds up being more cautious than it needed to be. simply winds up being more cautious than it needed to be.
It is possible that the temporal alternation of the above two It is possible that the temporal alternation of the above two
situations might introduce cycles of accepting and then rejecting situations might introduce cycles of accepting and then rejecting
enrollment traffic. This is something an operator should consider if enrollment traffic. This is something an operator should consider if
when they incrementally deploy this option to an existing LLN. In when they incrementally deploy this option to an existing LLN. In
addition, an operator would be unable to turn off enrollment traffic addition, an operator would be unable to turn off enrollment traffic
by sending a maximum value enrollment priority to the sub-tree. This by sending a maximum value enrollment priority to the sub-tree. This
situation is unfortunately, but would be exactly the situation situation is unfortunate, but without this option, the the situation
without this option. would occur all over the DODAG, rather than just in the sub-tree
where the option was omitted.
3. Security Considerations 3. Security Considerations
As per [RFC7416], RPL control frames either run over a secured layer As per [RFC7416], RPL control frames either run over a secured layer
2, or use the [RFC6550] Secure DIO methods. This option can be 2, or use the [RFC6550] Secure DIO methods. This option can be
placed into either a "clear" (layer-2 secured) DIO, or a layer-3 placed into either a "clear" (layer-2 secured) DIO, or a layer-3
Secure DIO. As such this option will have both integrity and Secure DIO. As such this option will have both integrity and
confidentiality mechanisms applied to it. confidentiality mechanisms applied to it.
A malicious node (that was part of the RPL control plane) could see A malicious node (that was part of the RPL control plane) could see
these options and could, based upon the observed minimal enrollment these options and could, based upon the observed minimal enrollment
priority signal a confederate that it was a good time to send priority signal a confederate that it was a good time to send
malicious join traffic. malicious join traffic.
A malicious node (that was part of the RPL control plane) could also Such as a malicious node, being already part of the RPL control
send DIOs with a different minimal enrollment priority which would plane, could also send DIOs with a different minimal enrollment
cause downstream mesh routers to change their Join Proxy behaviour. priority which would cause downstream mesh routers to change their
_Join Proxy_ behaviour.
Lower minimal priorities would cause downstream nodes to accept more Lower minimal priorities would cause downstream nodes to accept more
pledges than the network was expecting, and higher minimal priorities pledges than the network was expecting, and higher minimal priorities
cause the join process to stall. cause the enrollment process to stall.
The use of layer-2 or layer-3 security for RPL control messages The use of layer-2 or layer-3 security for RPL control messages
prevents the above two attacks, by preventing malicious nodes from prevents the above two attacks, by preventing malicious nodes from
becoming part of the control plane. A node that is attacked and has becoming part of the control plane. A node that is attacked and has
malware placed on it creates vulnerabilities in the same way such an malware placed on it creates vulnerabilities in the same way such an
attack on any node involved in Internet routing protocol does. The attack on any node involved in Internet routing protocol does. The
rekeying provisions of [I-D.ietf-6tisch-minimal-security] exist to rekeying provisions of [I-D.ietf-6tisch-minimal-security] exist to
permit an operator to remove such nodes from the network. permit an operator to remove such nodes from the network easily.
4. Privacy Considerations 4. Privacy Considerations
There are no new privacy issues caused by this extension. There are no new privacy issues caused by this extension.
5. IANA Considerations 5. IANA Considerations
Allocate a new number TBD01 from Registry RPL Control Message Allocate a new number TBD01 from Registry RPL Control Message
Options. This entry should be called Minimum Enrollment Priority. Options. This entry should be called Minimum Enrollment Priority.
skipping to change at page 7, line 32 skipping to change at page 7, line 37
<https://www.rfc-editor.org/info/rfc7554>. <https://www.rfc-editor.org/info/rfc7554>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
7.2. Informative References 7.2. Informative References
[I-D.ietf-6tisch-architecture] [I-D.ietf-6tisch-architecture]
Thubert, P., "An Architecture for IPv6 over the TSCH mode Thubert, P., "An Architecture for IPv6 over the TSCH mode
of IEEE 802.15.4", draft-ietf-6tisch-architecture-28 (work of IEEE 802.15.4", draft-ietf-6tisch-architecture-29 (work
in progress), October 2019. in progress), August 2020.
[I-D.ietf-6tisch-dtsecurity-secure-join] [I-D.ietf-6tisch-dtsecurity-secure-join]
Richardson, M., "6tisch Secure Join protocol", draft-ietf- Richardson, M., "6tisch Secure Join protocol", draft-ietf-
6tisch-dtsecurity-secure-join-01 (work in progress), 6tisch-dtsecurity-secure-join-01 (work in progress),
February 2017. February 2017.
[I-D.ietf-6tisch-terminology] [I-D.ietf-6tisch-terminology]
Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, Palattella, M., Thubert, P., Watteyne, T., and Q. Wang,
"Terms Used in IPv6 over the TSCH mode of IEEE 802.15.4e", "Terms Used in IPv6 over the TSCH mode of IEEE 802.15.4e",
draft-ietf-6tisch-terminology-10 (work in progress), March draft-ietf-6tisch-terminology-10 (work in progress), March
2018. 2018.
[I-D.ietf-roll-capabilities] [I-D.ietf-roll-capabilities]
Jadhav, R., Thubert, P., Richardson, M., and R. Sahoo, Jadhav, R., Thubert, P., Richardson, M., and R. Sahoo,
"RPL Capabilities", draft-ietf-roll-capabilities-02 (work "RPL Capabilities", draft-ietf-roll-capabilities-07 (work
in progress), March 2020. in progress), September 2020.
[RFC8137] Kivinen, T. and P. Kinney, "IEEE 802.15.4 Information [RFC8137] Kivinen, T. and P. Kinney, "IEEE 802.15.4 Information
Element for the IETF", RFC 8137, DOI 10.17487/RFC8137, May Element for the IETF", RFC 8137, DOI 10.17487/RFC8137, May
2017, <https://www.rfc-editor.org/info/rfc8137>. 2017, <https://www.rfc-editor.org/info/rfc8137>.
[RFC8366] Watsen, K., Richardson, M., Pritikin, M., and T. Eckert, [RFC8366] Watsen, K., Richardson, M., Pritikin, M., and T. Eckert,
"A Voucher Artifact for Bootstrapping Protocols", "A Voucher Artifact for Bootstrapping Protocols",
RFC 8366, DOI 10.17487/RFC8366, May 2018, RFC 8366, DOI 10.17487/RFC8366, May 2018,
<https://www.rfc-editor.org/info/rfc8366>. <https://www.rfc-editor.org/info/rfc8366>.
Appendix A. Change history Appendix A. Change history
version 00. version 00.
Author's Address Authors' Addresses
Michael Richardson Michael Richardson
Sandelman Software Works Sandelman Software Works
Email: mcr+ietf@sandelman.ca Email: mcr+ietf@sandelman.ca
Rahul Arvind Jadhav
Huawei Tech
Email: rahul.ietf@gmail.com
 End of changes. 24 change blocks. 
37 lines changed or deleted 42 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/