| < draft-ietf-6lo-ap-nd-01.txt | draft-ietf-6lo-ap-nd-02.txt > | |||
|---|---|---|---|---|
| 6lo B. Sarikaya, Ed. | 6lo B. Sarikaya | |||
| Internet-Draft Huawei USA | Internet-Draft Huawei USA | |||
| Updates: 6775 (if approved) P. Thubert | Updates: 6775 (if approved) P. Thubert | |||
| Intended status: Standards Track Cisco | Intended status: Standards Track Cisco | |||
| Expires: November 16, 2017 M. Sethi, Ed. | Expires: November 25, 2017 M. Sethi | |||
| Ericsson | Ericsson | |||
| May 15, 2017 | May 24, 2017 | |||
| Address Protected Neighbor Discovery for Low-power and Lossy Networks | Address Protected Neighbor Discovery for Low-power and Lossy Networks | |||
| draft-ietf-6lo-ap-nd-01 | draft-ietf-6lo-ap-nd-02 | |||
| Abstract | Abstract | |||
| This document defines an extension to 6LoWPAN Neighbor Discovery. | This document defines an extension to 6LoWPAN Neighbor Discovery, RFC | |||
| This extension is designed for low-power and lossy network | 6775. Nodes supporting this extension compute a cryptographic Owner | |||
| environments and it supports multi-hop operation. Nodes supporting | Unique Interface ID and associate it with one or more of their | |||
| this extension compute a Cryptographically Unique Interface ID and | Registered Addresses. Once an address is registered with a | |||
| associate it with one or more of their Registered Addresses. The | Cryptographic ID, only the owner of that ID can modify the anchor | |||
| Cryptographic ID (Crypto-ID) uniquely identifies the owner of the | state information of the Registered Address, and Source Address | |||
| Registered Address. It is used in place of the EUI-64 address that | Validation can be enforced. | |||
| is specified in RFC 6775. Once an address is registered with a | ||||
| Cryptographic ID, only the owner of that ID can modify the state | ||||
| information of the Registered Address in the 6LR and 6LBR. | ||||
| 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 http://datatracker.ietf.org/drafts/current/. | Drafts is at http://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 November 16, 2017. | This Internet-Draft will expire on November 25, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 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 | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://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 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. Protocol Interactions . . . . . . . . . . . . . . . . . . . . 5 | 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2.1. Crypto-ID Calculation . . . . . . . . . . . . . . . . 10 | 4.3. New Crypto-ID Parameters Option . . . . . . . . . . . . . 7 | |||
| 4.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 13 | 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5. Security Considerations . . . . . . . . . . . . . . . . . . . 14 | 5.1. Protocol Scope . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 6. IANA considerations . . . . . . . . . . . . . . . . . . . . . 14 | 5.2. Protocol Flows . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 14 | 5.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9.2. Informative references . . . . . . . . . . . . . . . . . 16 | 9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 13 | ||||
| 10.2. Informative references . . . . . . . . . . . . . . . . . 14 | ||||
| Appendix A. Requirements Addressed in this Document . . . . . . 16 | ||||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 1. Introduction | 1. Introduction | |||
| Neighbor discovery for IPv6 [RFC4861] and stateless address | Neighbor discovery for IPv6 [RFC4861] and stateless address | |||
| autoconfiguration [RFC4862] are together referred to as neighbor | autoconfiguration [RFC4862] and their extensions are collectively | |||
| discovery protocols (NDP). They are defined for regular hosts that | referred to as the IPv6 Neighbor Discovery Protocol (IPv6 NDP). In | |||
| have sufficient memory and computation capabilities. These protocols | order to enable IPv6 NDP operations over a constrained low-power and | |||
| are however not suitable for resource-constrained devices. | lossy network (LLN), "Neighbor Discovery optimizations for 6LoWPAN | |||
| Therefore, they require adaptation to work on resource-constrained | networks" [RFC6775] (6LoWPAN ND), reduces the use of multicast in the | |||
| hosts operating over a low-power and lossy network (LLN). Neighbor | original protocol and introduces a unicast host address registration | |||
| Discovery optimizations for 6LoWPAN networks include simple | technique. The registration mechanism leverages a new Address | |||
| optimizations such as a host address registration feature. This | Registration Option (ARO) that is carried in the unicast Neighbor | |||
| feature uses the address registration option (ARO) which is sent in | Solicitation (NS) and Neighbor Advertisement (NA) messages between | |||
| the unicast Neighbor Solicitation (NS) and Neighbor Advertisement | the 6LoWPAN Node (6LN) and the 6LoWPAN Router (6LR), as well as the | |||
| (NA) messages [RFC6775]. | Duplicate Address Request (DAR) and Duplicate Address Confirmation | |||
| (DAC) messages between the 6LR and the 6LoWPAN Border Router (6LBR), | ||||
| which is the central repository of all the registered addresses in | ||||
| its domain. | ||||
| With 6LoWPAN ND [RFC6775], the ARO option includes a EUI-64 interface | The registration mechanism in 6LoWPAN ND [RFC6775] was created for | |||
| ID to uniquely identify the interface of the Registered Address on | the original purpose of Duplicate Address Detection (DAD), whereby | |||
| the registering device, so as to correlate further registrations for | use of an address would be granted as long as the address is not | |||
| the same address and avoid address duplication. The EUI-64 interface | already present in the subnet (first come first serve). In order to | |||
| ID is not secure and its ownership cannot be verified. Consequently, | validate address ownership, the registration mechanism enables the | |||
| any device claiming the same EUI-64 interface ID may take over an | 6LR and 6LBR to correlate further claims for a registered address | |||
| existing registration and attract the traffic for that address. The | from the device to which it is granted with a Owner Unique Interface | |||
| address registration mechanism in [RFC6775] is limited as it does not | IDentifier (OUID). With 6LoWPAN ND, the OUID is derived from the MAC | |||
| require a node to prove its ownership of the EUI-64 Interface ID. | address of the device (EUI-64), which can be spoofed. Therefore, any | |||
| Therefore, any node connected to the subnet and aware of the | node connected to the subnet and aware of a registered-address-to- | |||
| registered address to EUI-64 interface ID mapping may effectively | OUID mapping may effectively fake the OUID, steal the address and | |||
| fake the same interface ID and steal an address. | attract the traffic for that address towards a different Node. In | |||
| order to allow a more secured registration mechanism, the "Update to | ||||
| 6LoWPAN ND" [I-D.ietf-6lo-rfc6775-update] opens the semantics of the | ||||
| ARO option and allows to transport alternate forms of OUIDs. | ||||
| In this document, we extend 6LoWPAN ND to protect the address | With this specification, a 6LN generates a cryptographic ID (Crypto- | |||
| ownership with cryptographic material, but as opposed to Secure | ID) and places it in the OUID field in the registration of one (or | |||
| Neighbor Discovery (SEND) [RFC3971] and Cryptographically Generated | more) of its addresses with the 6LR(s) that it uses as default | |||
| Addresses (CGAs) [RFC3972], the cryptographic material generated is | router(s). Proof of ownership of the cryptographic ID (Crypto-ID) is | |||
| not embedded in the Interface ID (IID) as an IPv6 address. Instead, | passed with the first registration to a given 6LR, and enforced at | |||
| the generated cryptographic ID is used as a correlator associated | the 6LR, in a new Crypto-ID Parameters Option (CIPO). The 6LR | |||
| with the registration of the IP address. This approach is made | validates ownership of the cryptographic ID upon the creation of a | |||
| possible with 6LoWPAN ND [RFC6775], where the 6LR and the 6LBR | registration state, or a change in the anchor information, such as | |||
| maintain state information for each Registered Address. If a | Link-Layer Address and associated Layer-2 cryptographic material. | |||
| cryptographic ID is associated with the first 6LoWPAN ND | ||||
| registration, then it can be used to validate any future updates to | ||||
| the registration. | ||||
| In order to achieve this ownership verification, in this extension | The protected address registration protocol proposed in this document | |||
| specification, the EUI-64 interface ID used in 6LoWPAN ND is replaced | enables the enforcement of Source Address Validation (SAVI) | |||
| with cryptographic material whose ownership can be verified. The | [RFC7039], which ensures that only the correct owner uses a | |||
| extension also provides new means for the 6LR to validate ownership | registered address in the source address field in IPv6 packets. With | |||
| of the registration, and thus, the ownership of registered address. | this specification, a 6LN that sources a packet has to use a 6LR to | |||
| The resulting protocol is called Protected Address Registration | which the source address of the packet is registered to forward the | |||
| protocol (ND-PAR). | packet. The 6LR maintains state information for the registered | |||
| addressed along with the MAC address, and link-layer cryptographic | ||||
| key associated with that node. In SAVI-enforcement mode, the 6LR | ||||
| allows only packets from a connected Host if the connected Host owns | ||||
| the registration of the source address of the packet. | ||||
| In ND-PAR, a node typically generates one 64-bit cryptographic ID | The 6lo adaptation layer framework ([RFC4944], [RFC6282]) expects | |||
| (Crypto-ID) and uses it as Unique Interface ID in the registration of | that a device forms its IPv6 addresses based on Layer-2 address, so | |||
| one (or more) of its addresses with the 6LR, which it attaches to and | as to enable a better compression. This is incompatible with "Secure | |||
| uses as default router. The 6LR validates ownership of the | Neighbor Discovery (SEND)" [RFC3971] and "Cryptographically Generated | |||
| cryptographic ID typically upon creation or update of a registration | Addresses (CGAs)" [RFC3972], which derive the Interface ID (IID) in | |||
| state, for instance following an apparent movement from one point of | the IPv6 addresses from cryptographic material. "Privacy | |||
| attachment to another. The ARO option is modified to carry the | Considerations for IPv6 Address Generation Mechanisms" | |||
| Unique Interface ID, and through the DAR/DAC exchange. | [I-D.ietf-6man-ipv6-address-generation-privacy] places additional | |||
| recommendations on the way addresses should be formed and renewed. | ||||
| Compared with SeND, this specification saves ~1Kbyte in every NS/NA | This specification allows a device to form and register addresses at | |||
| message. Also SeND requires one cryptographic address per IPv6 | will, without a constraint on the way the address is formed or the | |||
| address. This specification separates the cryptographic identifier | number of addresses that are registered in parallel. It enables to | |||
| from the IPv6 address so that a node can have more than one IPv6 | protect multiple addresses with a single cryptographic material and | |||
| address protected by the same cryptographic identifier. SeND forces | to send the proof only once to a given 6LR for multiple addresses and | |||
| the IPv6 address to be cryptographic since it integrates the CGA as | refresher registrations. | |||
| an IID. 6LoWPAN derives the IPv6 address from other things like a | ||||
| short address in 802.15.4 to enable a better compression. | ||||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
| Readers are expected to be familiar with all the terms and concepts | Readers are expected to be familiar with all the terms and concepts | |||
| that are discussed in [RFC3971], [RFC3972], [RFC4861], [RFC4919], | that are discussed in [RFC3971], [RFC3972], [RFC4861], [RFC4919], | |||
| [RFC6775], and [I-D.ietf-6lo-backbone-router] which proposes an | [RFC6775], and [I-D.ietf-6lo-backbone-router] which proposes an | |||
| skipping to change at page 4, line 27 ¶ | skipping to change at page 4, line 34 ¶ | |||
| which in most cases is 64 bits long. It is generated using | which in most cases is 64 bits long. It is generated using | |||
| cryptographic means explained later in this document. | cryptographic means explained later in this document. | |||
| The document also conforms to the terms and models described in | The document also conforms to the terms and models described in | |||
| [RFC5889] and uses the vocabulary and the concepts defined in | [RFC5889] and uses the vocabulary and the concepts defined in | |||
| [RFC4291] for the IPv6 Architecture. | [RFC4291] for the IPv6 Architecture. | |||
| This document uses [RFC7102] for Terminology in Low power And Lossy | This document uses [RFC7102] for Terminology in Low power And Lossy | |||
| Networks. | Networks. | |||
| 3. Requirements | 3. Updating RFC 6775 | |||
| In this section we state requirements of a secure neighbor discovery | ||||
| protocol for low-power and lossy networks. | ||||
| o The protocol MUST be based on the Neighbor Discovery Optimization | ||||
| for Low-power and Lossy Networks protocol defined in [RFC6775]. | ||||
| RFC6775 utilizes optimizations such as host-initiated interactions | ||||
| for sleeping resource-constrained hosts and elimination of | ||||
| multicast address resolution. | ||||
| o New options to be added to Neighbor Solicitation messages MUST | ||||
| lead to small packet sizes, especially compared with existing | ||||
| protocols such as SEcure Neighbor Discovery (SEND). Smaller | ||||
| packet sizes facilitate low-power transmission by resource- | ||||
| constrained nodes on lossy links. | ||||
| o The support for this registration mechanism SHOULD be extensible | ||||
| to more LLN links than IEEE 802.15.4 only. Support for at least | ||||
| the LLN links for which a 6lo "IPv6 over foo" specification | ||||
| exists, as well as Low-Power Wi-Fi SHOULD be possible. | ||||
| o As part of this extension, a mechanism to compute a unique | ||||
| Identifier should be provided with the capability to form a Link | ||||
| Local Address that SHOULD be unique at least within the LLN | ||||
| connected to a 6LBR. | ||||
| o The Address Registration Option used in the ND registration SHOULD | ||||
| be extended to carry the relevant forms of Unique Interface | ||||
| IDentifier. | ||||
| o The Neighbour Discovery should specify the formation of a site- | ||||
| local address that follows the security recommendations from | ||||
| [RFC7217]. | ||||
| 4. Protocol Interactions | ||||
| Protected address and registration neighbor discovery protocol (ND- | ||||
| PAR) modifies Neighbor Discovery Optimization for Low-power and Lossy | ||||
| Networks [RFC6775] as explained in this section. | ||||
| 4.1. Overview | ||||
| The scope of the present work is a 6LoWPAN Low Power Lossy Network | ||||
| (LLN), typically a stub network connected to a larger IP network via | ||||
| a Border Router called a 6LBR per [RFC6775]. | ||||
| ---+-------- ............ | ||||
| | External Network | ||||
| | | ||||
| +-----+ | ||||
| | | LLN Border | ||||
| | | router | ||||
| +-----+ | ||||
| o o o | ||||
| o o o o | ||||
| o o LLN o o o | ||||
| o o o o | ||||
| o | ||||
| Figure 1: Basic Configuration | ||||
| The 6LBR maintains a registration state for all devices in the | ||||
| attached LLN, and, in conjunction with the first-hop router (the | ||||
| 6LR), is in a position to validate uniqueness and grant ownership of | ||||
| an IPv6 address before it can be used in the LLN. This is a | ||||
| fundamental difference with a classical network that relies on IPv6 | ||||
| address auto-configuration [RFC4862], where there is no guarantee of | ||||
| ownership from the network, and any IPv6 Neighbor Discovery packet | ||||
| must be individually secured [RFC3971]. | ||||
| In a mesh network, the 6LR is directly connected to the host device. | ||||
| This specification expects that the peer-wise layer-2 security is | ||||
| deployed so that all the packets from a particular host are securely | ||||
| identifiable by the 6LR. The 6LR may be multiple hops away from the | ||||
| 6LBR. Packets are routed between the 6LR and the 6LBR via other | ||||
| 6LRs. This specification expects that a chain of trust is | ||||
| established so that a packet that was validated by the first 6LR can | ||||
| be safely routed by the next 6LRs to the 6LBR. | ||||
| [I-D.ietf-6tisch-architecture] suggests to use of RPL [RFC6550] as | ||||
| the routing protocol between the 6LRs and the 6LBR, and leveraging a | ||||
| backbone router [I-D.ietf-6lo-backbone-router] to extend the LLN in a | ||||
| larger multilink subnet [RFC4903]. In that model, a registration | ||||
| flow happens as shown in Figure 2. Note that network beyond the 6LBR | ||||
| is out of scope for this document. | ||||
| 6LoWPAN Node 6LR 6LBR | ||||
| (RPL leaf) (router) (root) | ||||
| | | | | ||||
| | 6LoWPAN ND |6LoWPAN ND+RPL | Efficient ND | ||||
| | LLN link |Route-Over mesh| IPv6 link | ||||
| | | | | ||||
| | NS(ARO) | | | ||||
| |-------------->| | | ||||
| | 6LoWPAN ND | DAR (then DAO)| | ||||
| | |-------------->| | ||||
| | | | | ||||
| | | | | ||||
| | | | | ||||
| | | | | ||||
| | | | | ||||
| | | | | ||||
| | | | | ||||
| | | DAC | | ||||
| | |<--------------| | ||||
| | NA(ARO) | | | ||||
| |<--------------| | | ||||
| Figure 2: (Re-)Registration Flow over Multi-Link Subnet | ||||
| A new device that joins the network auto-configures an address and | ||||
| performs an initial registration to an on-link 6LR with an NS message | ||||
| that carries a new Address Registration Option (ARO) [RFC6775]. The | ||||
| 6LR validates the address with the central 6LBR using a DAR/DAC | ||||
| exchange, and the 6LR confirms (or denies) the address ownership with | ||||
| an NA message that also carries an Address Registration Option. | ||||
| The registration mechanism in [RFC6775] was created for the original | ||||
| purpose of Duplicate Address Detection (DAD), whereby use of an | ||||
| address would be granted as long as the address is not already | ||||
| present in the subnet. But [RFC6775] does not require that the 6LR | ||||
| use the registration for source address validation (SAVI) [RFC7039]. | ||||
| Protected address registration protocol proposed in this document | ||||
| enforces SAVI. With this we ensure that only the correct owner uses | ||||
| the registered address in the source address field. Therefore a | ||||
| destination node can trust that the source is the real owner without | ||||
| using SeND. All packets destined for a node go through the 6LR to | ||||
| which it is attached. The 6LR maintains state information for the | ||||
| registered addressed along with the MAC address, and link-layer | ||||
| cryptographic key associated with that node. The 6LR therefore only | ||||
| delivers packets to the real owner based on its state information. | ||||
| In order to validate address ownership, the registration mechanism | ||||
| (that goes all the way to the 6LBR with the DAR/DAC) enables the 6LBR | ||||
| to correlate further claims for a registered address from the device | ||||
| to which it is granted, based on a Unique Interface IDentifier (UID). | ||||
| This UID is derived from the MAC address of the device (EUI-64). | ||||
| This document uses a randomly generated value as an alternate UID for | ||||
| the registration. Proof of ownership of the UID is passed with the | ||||
| first registration to a given 6LR, and enforced at the 6LR, which | ||||
| validates the proof. With this new operation, the 6LR allows only | ||||
| packets from a connected host if the connected host owns the | ||||
| registration of the source address of the packet. | ||||
| In a multihop 6LoWPAN, the registration with Crypto-ID is propagated | ||||
| to 6LBR as described in Section 4.3. If a chain of trust is present | ||||
| between the 6LR and the 6LBR, then there is no need to propagate the | ||||
| proof of ownership to the 6LBR. All the 6LBR needs to know is that | ||||
| this particular UID is randomly generated, so as to enforce that any | ||||
| update via a different 6LR is also random. | ||||
| 4.2. Updating RFC 6775 | ||||
| Protocol interactions are as defined in Figure 2. The Crypto-ID is | ||||
| calculated as described in Section 4.2.1. | ||||
| The Target Address field in NS message is set to the prefix | ||||
| concatenated with the node's address. This address does not need | ||||
| duplicate address detection as Crypto-ID is globally unique. So a | ||||
| host cannot steal an address that is already registered unless it has | ||||
| the key used for generating the Crypto-ID. The same Crypto-ID can | ||||
| thus be used to protect multiple addresses e.g. when the node | ||||
| receives a different prefix. | ||||
| Local or on-link protocol interactions are shown in Figure 3. | ||||
| Crypto-ID and ARO are passed to and stored by the 6LR/6LBR on the | ||||
| first NS and not sent again in the next NS. The operation starts | ||||
| with 6LR sending a Router Advertisement (RA) message to 6LN. | ||||
| The 6LR/6LBR ensures first-come/first-serve by storing the ARO and | ||||
| the Crypto-ID correlated to the node being registered. The node is | ||||
| free to claim any address it likes as long as it is the first to make | ||||
| such a claim. The node becomes owner of that address and the address | ||||
| is bound to the Crypto-ID in the 6LR/6LBR registry. This procedure | ||||
| avoids the constrained device to compute multiple keys for multiple | ||||
| addresses. The registration process allows the node to tie all the | ||||
| addresses to the same Crypto-ID and have the 6LR/6LBR enforce first- | ||||
| come first-serve after that. | ||||
| A condition where a 6LN uses multiple IPv6 addresses may happen when | With this specification, a node SHOULD use a cryptographic identifier | |||
| the node moves at a different place and receives a different prefix. | (Crypto-ID) as OUID in its registration; the Crypto-ID is calculated | |||
| In this scenario, the node uses the same Crypto-ID to protect its new | as described in Section 4.1. The fact that a OUID is a Crypto-ID is | |||
| IPv6 address. This prevents other nodes from stealing the address | indicated in a new 'C' flag in the NS(ARO) message. | |||
| and trying to use it as their source address. | ||||
| Note that if the device that moves always forms new MAC and IP | This specification also introduces a new option, the CIPO, that is | |||
| address [RFC6775], then this new address can be used for | used to prove ownership of the Crypto-ID. A node that registers for | |||
| registration. In case of a collision of the new MAC and therefore IP | the first time to a 6LR SHOULD place a CIPO option to its | |||
| address, the node can easily form a new IPv6 address. This is one | registration but is not expected to place the option in the next | |||
| case where the use of Crypto-ID would not be needed. Crypto-ID or | periodic refresher registrations for that address, or for the | |||
| ND-PAR should be activated when the IP address is claimed at another | registration of other addresses with the same OUID. When a 6LR | |||
| place, or for a different MAC address at the same place, e.g. for MAC | receives a NS(ARO) registration with a new Crypto-ID as a OUID, then | |||
| address privacy [I-D.ietf-6man-ipv6-address-generation-privacy]. | it SHOULD challenge by responding with a NA(ARO) with a status of | |||
| "Proof requested". This whole process MAY be skipped in networks | ||||
| where there is no or ultra low expectations of mobility. | ||||
| 6LN 6LR | The challenge will also be triggered in the case of a registration | |||
| | | | for which the Source Link-Layer Address is not consistent with a | |||
| |<------------------- RA --------------------------| | state that already exists either at the 6LR or the 6LBR. In the | |||
| | | | latter case, the 6LBR returns a status of "Proof requested" in the | |||
| |----------- NS with ARO and Crypto-ID ----------->| | DAR/DAC exchange, which is echoed by the 6LR in the NA (ARO) back to | |||
| | | | the registering node. This flow should not alter a preexisting state | |||
| |<---------- NA with ARO (status=req-proof) -------| | in the 6LR or the 6LBR. | |||
| | | | ||||
| |----------- NS with ARO and Crypto-ID ----------->| | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| | | | ||||
| ... ... | ||||
| | | | ||||
| |------------ NS with ARO and Crypto-ID ---------->| | ||||
| | | | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| ... ... | ||||
| | | | ||||
| |----------- NS with ARO and Crypto-ID ----------->| | ||||
| | | | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| Figure 3: On-link Protocol Operation | Upon a NA(ARO) with a status of "Proof requested", the registering | |||
| node SHOULD retry its registration with a CIPO option that proves its | ||||
| ownership of the Crypto-ID. | ||||
| Elliptic Curve Cryptography (ECC) is used in the calculation of | If the 6LR cannot validate the proof, it responds with a status of | |||
| cryptographic identifier (Crypto-ID). The digital signature is | "Incorrect Proof". Upon a NA(ARO) with a status of "Incorrect | |||
| constructed by using the 6LN's private key over its EUI-64 (MAC) | Proof", the registering node SHOULD NOT use this Crypto-ID for | |||
| address. The signature value is computed using the ECDSA signature | registering with that 6LR anymore. | |||
| algorithm and the hash function used is SHA-256 [RFC6234]. Public | ||||
| Key is the most important parameter in CGA Parameters (sent by 6LN in | ||||
| an NS message). ECC Public Key could be in uncompressed form or in | ||||
| compressed form where the first octet of the OCTET STRING is 0x04 and | ||||
| 0x02 or 0x03, respectively. Point compression can further reduce the | ||||
| key size by about 32 octets. | ||||
| After calculating its Crypto-ID, a 6LN sends it along with the CGA | 4. New Fields and Options | |||
| parameters in the first NS message, see Figure 3. In order to send | ||||
| Crypto-ID, a modified address registration option called Enhanced | ||||
| Address Registration Option (EARO) is defined in Figure 4. As | ||||
| defined in the figure this ID is variable length, varying between 64 | ||||
| to 128 bits. This ID is 128 bits long only if it is used as IPv6 | ||||
| address. This may happen when some application uses one IP address | ||||
| of the device as device ID. It would make sense in that case to | ||||
| build a real CGA IPv6 address. The prefix of the address would be | ||||
| obtained from prefix information option (PIO in RA) [RFC4861]. | ||||
| 6LN also sends some other parameters to enable 6LR or 6LBR to verify | 4.1. New Crypto-ID | |||
| the Crypto-ID. The option shown in Figure 5 can be used. In the | ||||
| figure, CGA Parameters field contains the public key, prefix and some | ||||
| other values. It is a simplified form of CGA Option defined in | ||||
| [RFC3971]. | ||||
| 4.2.1. Crypto-ID Calculation | Elliptic Curve Cryptography (ECC) is used in the calculation of the | |||
| Crypto-ID. The digital signature is constructed by using the 6LN's | ||||
| private key over its EUI-64 (MAC) address. The signature value is | ||||
| computed using the ECDSA signature algorithm and the hash function | ||||
| used is SHA-256 [RFC6234]. Public Key is the most important | ||||
| parameter in CGA Parameters (sent by 6LN in an NS message). ECC | ||||
| Public Key could be in uncompressed form or in compressed form where | ||||
| the first octet of the OCTET STRING is 0x04 and 0x02 or 0x03, | ||||
| respectively. Point compression can further reduce the key size by | ||||
| about 32 octets. | ||||
| First, the modifier is set to a random or pseudo-random 128-bit | First, the modifier is set to a random or pseudo-random 128-bit | |||
| value. Next, concatenate from left to right the modifier, 9 zero | value. Next, concatenate from left to right the modifier, 9 zero | |||
| octets and the ECC public key. SHA-256 algorithm is applied on the | octets and the ECC public key. SHA-256 algorithm is applied on the | |||
| concatenation. The 112 leftmost bits of the hash value is taken. | concatenation. The 112 leftmost bits of the hash value is taken. | |||
| Concatenate from left to right the modifier value, the subnet prefix | Concatenate from left to right the modifier value, the subnet prefix | |||
| and the encoded public key. NIST P-256 is executed on the | and the encoded public key. NIST P-256 is executed on the | |||
| concatenation. The leftmost bits of the result is used as the | concatenation. The leftmost bits of the result is used as the | |||
| Crypto-ID. The length is normally 64 bits, however it could be 128 | Crypto-ID. With this specification, the last 64 bits are retained, | |||
| bits. | but it could be expanded to more bits in the future by increasing the | |||
| size of the OUID field. | ||||
| In respecting the cryptographical algorithm agility [RFC7696], Curve | In respecting the cryptographic algorithm agility [RFC7696], Curve | |||
| 25519 [RFC7748] can also be used instead of NIST P-256. This is | 25519 [RFC7748] can also be used instead of NIST P-256. This is | |||
| indicated by 6LN by setting the Crypto Type field in CGA Parameters | indicated by 6LN by setting the Crypto Type field in the CIPO option | |||
| Option to a value of 1. If 6LBR does not support Curve 25519, it | to a value of 1. If 6LBR does not support Curve 25519, it will set | |||
| will set Crypto Type field to zero. This means that the default | Crypto Type field to zero. This means that the default algorithm | |||
| algorithm (NIST P-256) will be used. | (NIST P-256) will be used. | |||
| 4.2. Updated EARO | ||||
| 0 1 2 3 | 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 | 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 | Length | Status | Reserved | | | Type | Length | Status | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved |C|T| TID | Registration Lifetime | | | Reserved |C|T| TID | Registration Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + Owner Unique ID (EUI-64 or equivalent) + | + Owner Unique ID (EUI-64 or equivalent) + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: Enhanced Address Registration Option | Figure 1: Enhanced Address Registration Option | |||
| Type: | Type: | |||
| TBA1 | 33 | |||
| Length: | Length: | |||
| 8-bit unsigned integer. The length of the option (including the | 8-bit unsigned integer. The length of the option (including the | |||
| type and length fields) in units of 8 bytes. The value 0 is | type and length fields) in units of 8 bytes. | |||
| invalid. A value of 3 with the C flag set indicates a Crypto-ID | ||||
| of 128 bits. | ||||
| Status: | Status: | |||
| 8-bit unsigned integer. Indicates the status of a registration in | 8-bit unsigned integer. Indicates the status of a registration in | |||
| the NA response. MUST be set to 0 in NS messages. See below. | the NA response. MUST be set to 0 in NS messages. This | |||
| specification leverages values introduced in the Update to 6LoWPAN | ||||
| ND [I-D.ietf-6lo-rfc6775-update], such as 5: Proof Requested, and | ||||
| does not require additional values to be defined. | ||||
| Reserved: | Reserved: | |||
| This field is unused. It MUST be initialized to zero by the | This field is unused. It MUST be initialized to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| C: | C: | |||
| C bit when set is used to indicate that Owner Unique ID fields | This specification introduces a C bit, which is set to indicate | |||
| contains Crypto-ID. | that the Owner Unique ID field contains a Crypto-ID. | |||
| T and TID: | T and TID: | |||
| Defined in [I-D.ietf-6lo-backbone-router]. | Defined in [I-D.ietf-6lo-rfc6775-update]. | |||
| Owner Unique ID: | Owner Unique ID: | |||
| In this specification, this field contains Crypto-ID, a variable | When using this specification, this field contains a Crypto-ID. | |||
| length field to carry the Crypto-ID or random UID. This field is | ||||
| normally 64 bits long. It could be 128 bits long if IPv6 address | 4.3. New Crypto-ID Parameters Option | |||
| is used as the Crypto-ID. | ||||
| This specification introduces a new option, the Crypto-ID Parameters | ||||
| Option (CIPO), that carries the proof of ownership of a crypto-ID. | ||||
| 0 1 2 3 | 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 | 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 | Length | Pad Length | Crypto Type | | | Type | Length | Pad Length | Crypto Type | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + + | + + | |||
| | | | | | | |||
| + Modifier (16 octets) + | + Modifier (16 octets) + | |||
| skipping to change at page 12, line 35 ¶ | skipping to change at page 7, line 48 ¶ | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| . . | . . | |||
| . Padding . | . Padding . | |||
| . . | . . | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: CGA Parameters Option | Figure 2: Crypto-ID Parameters Option | |||
| Type: | Type: | |||
| TBA2 | CIPO, to be assigned by IANA. | |||
| Length: | Length: | |||
| The length of the option in units of 8 octets. | The length of the option in units of 8 octets. | |||
| Pad Length: | Pad Length: | |||
| The length of the Padding field. | The length of the Padding field. | |||
| Crypto Type: | Crypto Type: | |||
| skipping to change at page 13, line 26 ¶ | skipping to change at page 8, line 38 ¶ | |||
| Public Key: | Public Key: | |||
| ECC public key of 6LN. | ECC public key of 6LN. | |||
| Padding: | Padding: | |||
| A variable-length field making the option length a multiple of 8, | A variable-length field making the option length a multiple of 8, | |||
| containing as many octets as specified in the Pad Length field. | containing as many octets as specified in the Pad Length field. | |||
| 4.3. Multihop Operation | 5. Protocol Overview | |||
| 5.1. Protocol Scope | ||||
| The scope of the present work is a 6LoWPAN Low Power Lossy Network | ||||
| (LLN), typically a stub network connected to a larger IP network via | ||||
| a Border Router called a 6LBR per [RFC6775]. | ||||
| The 6LBR maintains a registration state for all devices in the | ||||
| attached LLN, and, in conjunction with the first-hop router (the | ||||
| 6LR), is in a position to validate uniqueness and grant ownership of | ||||
| an IPv6 address before it can be used in the LLN. This is a | ||||
| fundamental difference with a classical network that relies on IPv6 | ||||
| address auto-configuration [RFC4862], where there is no guarantee of | ||||
| ownership from the network, and any IPv6 Neighbor Discovery packet | ||||
| must be individually secured [RFC3971]. | ||||
| ---+-------- ............ | ||||
| | External Network | ||||
| | | ||||
| +-----+ | ||||
| | | 6LBR | ||||
| +-----+ | ||||
| o o o | ||||
| o o o o | ||||
| o o LLN o o o | ||||
| o o o (6LR) | ||||
| o (6LN) | ||||
| Figure 3: Basic Configuration | ||||
| In a mesh network, the 6LR is directly connected to the host device. | ||||
| This specification expects that the peer-wise layer-2 security is | ||||
| deployed so that all the packets from a particular host are securely | ||||
| identifiable by the 6LR. The 6LR may be multiple hops away from the | ||||
| 6LBR. Packets are routed between the 6LR and the 6LBR via other | ||||
| 6LRs. This specification expects that a chain of trust is | ||||
| established so that a packet that was validated by the first 6LR can | ||||
| be safely routed by the next 6LRs to the 6LBR. | ||||
| 5.2. Protocol Flows | ||||
| The 6TiSCH Architecture [I-D.ietf-6tisch-architecture] suggests to | ||||
| use of RPL [RFC6550] as the routing protocol between the 6LRs and the | ||||
| 6LBR. In that model, a registration flow happens as shown in | ||||
| Figure 4. | ||||
| 6LoWPAN Node 6LR 6LBR | ||||
| (RPL leaf) (router) (RPL root) | ||||
| | | | | ||||
| | 6LoWPAN ND | 6LoWPAN ND | | ||||
| | | | | ||||
| | | | | ||||
| | NS(ARO) | | | ||||
| |-------------->| | | ||||
| | 6LoWPAN ND | DAR | | ||||
| | |-------------->| | ||||
| | |(then RPL DAO) | | ||||
| | | | | ||||
| | | DAC | | ||||
| | |<--------------| | ||||
| | NA(ARO) | | | ||||
| |<--------------| | | ||||
| | | | | ||||
| | | | | ||||
| Figure 4: (Re-)Registration Flow | ||||
| A new device that joins the network auto-configures an address and | ||||
| performs an initial registration to an on-link 6LR with an NS message | ||||
| that carries an Address Registration Option (ARO) [RFC6775]. The 6LR | ||||
| validates the address with the central 6LBR using a DAR/DAC exchange, | ||||
| and the 6LR confirms (or denies) the address ownership with an NA | ||||
| message that also carries an Address Registration Option. | ||||
| In a multihop 6LoWPAN, the registration with Crypto-ID is propagated | ||||
| to 6LBR as described in Section 5.3. If a chain of trust is present | ||||
| between the 6LR and the 6LBR, then there is no need to propagate the | ||||
| proof of ownership to the 6LBR. All the 6LBR needs to know is that | ||||
| this particular OUID is randomly generated, so as to enforce that any | ||||
| update via a different 6LR is also random. | ||||
| Local or on-link protocol interactions are shown in Figure 5. | ||||
| Crypto-ID and ARO are passed to and stored by the 6LR/6LBR on the | ||||
| first NS and not sent again in the next NS. The operation starts | ||||
| with 6LR sending a Router Advertisement (RA) message to 6LN. | ||||
| The 6LR/6LBR ensures first-come/first-serve by storing the ARO and | ||||
| the Crypto-ID correlated to the node being registered. The node is | ||||
| free to claim any address it likes as long as it is the first to make | ||||
| such a claim. After a successful registration, the node becomes the | ||||
| owner of the registered address and the address is bound to the | ||||
| Crypto-ID in the 6LR/6LBR registry. This binding can be verified | ||||
| later, which prevents other nodes from stealing the address and | ||||
| trying to attract traffic for that address or use it as their source | ||||
| address. | ||||
| A node may uses multiple IPv6 addresses at any time. This condition | ||||
| may happen for privacy reasons | ||||
| [I-D.ietf-6man-ipv6-address-generation-privacy], or when the node | ||||
| moves at a different place and auto-configures an new address from a | ||||
| different prefix. In those situations, the node may use the same | ||||
| Crypto-ID to protect multiple IPv6 addresses. The separation of the | ||||
| address and the Crypto-ID avoids the constrained device to compute | ||||
| multiple keys for multiple addresses. The registration process | ||||
| allows the node to tie all of its addresses to the same Crypto-ID and | ||||
| have the 6LR/6LBR enforce first-come first-serve after that. | ||||
| 6LN 6LR | ||||
| | | | ||||
| |<------------------- RA --------------------------| | ||||
| | | | ||||
| |----------- NS with ARO and Crypto-ID ----------->| | ||||
| | | | ||||
| |<---------- NA with ARO (status=proof requested) -| | ||||
| | | | ||||
| |----------- NS with ARO and Crypto-ID ----------->| | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| | | | ||||
| ... ... | ||||
| | | | ||||
| |------------ NS with ARO and Crypto-ID ---------->| | ||||
| | | | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| ... ... | ||||
| | | | ||||
| |----------- NS with ARO and Crypto-ID ----------->| | ||||
| | | | ||||
| | | | ||||
| |<---------------- NA with ARO --------------------| | ||||
| Figure 5: On-link Protocol Operation | ||||
| 5.3. Multihop Operation | ||||
| In multihop 6LoWPAN, 6LBR sends RAs with prefixes downstream and it | In multihop 6LoWPAN, 6LBR sends RAs with prefixes downstream and it | |||
| is the 6LR that receives and relays them to the nodes. 6LR and 6LBR | is the 6LR that receives and relays them to the nodes. 6LR and 6LBR | |||
| communicate with the ICMPv6 Duplicate Address Request (DAR) and the | communicate with the ICMPv6 Duplicate Address Request (DAR) and the | |||
| Duplicate Address Confirmation (DAC) messages. The DAR and DAC use | Duplicate Address Confirmation (DAC) messages. The DAR and DAC use | |||
| the same message format as NS and NA with different ICMPv6 type | the same message format as NS and NA with different ICMPv6 type | |||
| values. | values. | |||
| In ND-PAR we extend DAR/DAC messages to carry cryptographically | In ND-PAR we extend DAR/DAC messages to carry cryptographically | |||
| generated UID. In a multihop 6LoWPAN, the node exchanges the | generated OUID. In a multihop 6LoWPAN, the node exchanges the | |||
| messages shown in Figure 2. The 6LBR must be aware of who owns an | messages shown in Figure 4. The 6LBR must be aware of who owns an | |||
| address (EUI-64) to defend the first node if there is an attacker on | address (EUI-64) to defend the first node if there is an attacker on | |||
| another 6LR. Because of this the content that the source signs and | another 6LR. Because of this the content that the source signs and | |||
| the signature needs to be propagated to the 6LBR in DAR message. For | the signature needs to be propagated to the 6LBR in DAR message. For | |||
| this purpose the DAR message sent by 6LR to 6LBR MUST contain CGA | this purpose the DAR message sent by 6LR to 6LBR MUST contain the | |||
| Parameters and Digital Signature Option carrying the CGA that the | CIPO option. DAR message also contains ARO. | |||
| node calculates and its public key. DAR message also contains ARO. | ||||
| It is possible that occasionally, 6LR may miss the node's UID (that | It is possible that occasionally, a 6LR may miss the node's OUID | |||
| it received in ARO). 6LR should be able to ask for it again. This is | (that it received in ARO). 6LR should be able to ask for it again. | |||
| done by restarting the exchanges shown in Figure 3. The result | This is done by restarting the exchanges shown in Figure 5. The | |||
| enables 6LR to refresh the information that was lost. 6LR MUST send | result enables 6LR to refresh the information that was lost. 6LR MUST | |||
| DAR message with ARO to 6LBR. 6LBR as a reply forms a DAC message | send DAR message with ARO to 6LBR. 6LBR as a reply forms a DAC | |||
| with the information copied from the DAR and the Status field is set | message with the information copied from the DAR and the Status field | |||
| to zero. With this exchange, the 6LBR can (re)validate and store the | is set to zero. With this exchange, the 6LBR can (re)validate and | |||
| information to make sure that the 6LR is not a fake. | store the information to make sure that the 6LR is not a fake. | |||
| In some cases 6LBR may use DAC message to signal to 6LR that it | In some cases 6LBR may use DAC message to signal to 6LR that it | |||
| expects Crypto-ID from 6LR also asks 6LR to verify the EUI-64 6LR | expects Crypto-ID from 6LR also asks 6LR to verify the EUI-64 6LR | |||
| received from 6LN. This may happen when a 6LN node is compromised | received from 6LN. This may happen when a 6LN node is compromised | |||
| and a fake node is sending the Crypto-ID as if it is the node's EUI- | and a fake node is sending the Crypto-ID as if it is the node's EUI- | |||
| 64. Note that the detection in this case can only be done by 6LBR | 64. Note that the detection in this case can only be done by 6LBR | |||
| not by 6LR. | not by 6LR. | |||
| 5. Security Considerations | 6. Security Considerations | |||
| The same considerations regarding the threats to the Local Link | The observations regarding the threats to the Local Link Network in | |||
| Network covered in [RFC3971] apply. | [RFC3971] also apply to this specification. | |||
| This document inherits threats discussed in 6LoWPAN ND [RFC6775] and | ||||
| its update [I-D.ietf-6lo-rfc6775-update] and addresses the potential | ||||
| attacks related to address stealing and spoofing within a LLN. | ||||
| Compared with SeND, this specification saves about 1Kbyte in every | ||||
| NS/NA message. Also, this specification separates the cryptographic | ||||
| identifier from the registered IPv6 address so that a node can have | ||||
| more than one IPv6 address protected by the same cryptographic | ||||
| identifier. SeND forces the IPv6 address to be cryptographic since | ||||
| it integrates the CGA as the IID in the IPv6 address. This | ||||
| specification frees the device to form its addresses in any fashion, | ||||
| so as to enable the classical 6LoWPAN compression which derives IPv6 | ||||
| addresses from Layer-2 addresses, as well as privacy addresses. | ||||
| The threats discussed in Section 9.2 of [RFC3971] are countered by | The threats discussed in Section 9.2 of [RFC3971] are countered by | |||
| the protocol described in this document as well. | the protocol described in this document as well. | |||
| Collisions of Crypto-ID is a possibility that needs to be considered. | Collisions of Crypto-ID is a possibility that needs to be considered. | |||
| The formula for calculating probability of a collision is 1 - | The formula for calculating probability of a collision is 1 - | |||
| e^{-k^2/(2n)}. If the Crypto-ID is 64-bit long, then the chance of | e^{-k^2/(2n)}. If the Crypto-ID is 64-bit long, then the chance of | |||
| finding a collision is 0.01% when the network contains 66 million | finding a collision is 0.01% when the network contains 66 million | |||
| nodes. It is important to note that the collision is only relevant | nodes. It is important to note that the collision is only relevant | |||
| when this happens within one stub network (6LBR). A collision of ID | when this happens within one stub network (6LBR). A collision of ID | |||
| in ND-PAR is a rare event. However, when such a collision does | in ND-PAR is a rare event. However, when such a collision does | |||
| happen, the protocol operation is not affected, although it opens a | happen, the protocol operation is not affected, although it opens a | |||
| window for a node to hijack an address from another. The link-layer | window for a node to hijack an address from another. The link-layer | |||
| security ensures that the nodes would normally not be aware of a | security ensures that the nodes would normally not be aware of a | |||
| collision on the subnet. If a malicious node is able to gain | collision on the subnet. If a malicious node is able to gain | |||
| knowledge of a collision through other means, the only thing that it | knowledge of a collision through other means, the only thing that it | |||
| could do is to steal addresses from the other honest node. This | could do is to steal addresses from the other honest node. This | |||
| would be no different from what is already possible in a 6lo network | would be no different from what is already possible in a 6lo network | |||
| today. | today. | |||
| 6. IANA considerations | 7. IANA considerations | |||
| IANA is requested to assign two new option type values, TBA1 and TBA2 | IANA is requested to assign two new option type values for the CIPO | |||
| under the subregistry "IPv6 Neighbor Discovery Option Formats". | under the subregistry "IPv6 Neighbor Discovery Option Formats". | |||
| 7. Acknowledgements | 8. Acknowledgements | |||
| We are grateful to Rene Struik and Robert Moskowitz for their | We are grateful to Rene Struik and Robert Moskowitz for their | |||
| comments that lead to many improvements to this document. | comments that lead to many improvements to this document. | |||
| 8. Change Log | 9. Change Log | |||
| o submitted version -00 as a working group draft after adoption, and | o submitted version -00 as a working group draft after adoption, and | |||
| corrected the order of authors | corrected the order of authors | |||
| o submitted version -01 with no changes | o submitted version -01 with no changes | |||
| 9. References | o submitted version -02 with these changes: Moved Requirements to | |||
| Appendix A, Section 4.2 moved to Section 3, New section 4 on New | ||||
| Fields and Options, Section 4 changed to Protocol Overview as | ||||
| Section 5 with Protocol Scope and Flows subsections. | ||||
| 9.1. Normative References | 10. References | |||
| 10.1. Normative References | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, | ||||
| "SEcure Neighbor Discovery (SEND)", RFC 3971, | ||||
| DOI 10.17487/RFC3971, March 2005, | ||||
| <http://www.rfc-editor.org/info/rfc3971>. | ||||
| [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | ||||
| RFC 3972, DOI 10.17487/RFC3972, March 2005, | ||||
| <http://www.rfc-editor.org/info/rfc3972>. | ||||
| [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
| Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
| 2006, <http://www.rfc-editor.org/info/rfc4291>. | 2006, <http://www.rfc-editor.org/info/rfc4291>. | |||
| [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, | |||
| "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, | |||
| DOI 10.17487/RFC4861, September 2007, | DOI 10.17487/RFC4861, September 2007, | |||
| <http://www.rfc-editor.org/info/rfc4861>. | <http://www.rfc-editor.org/info/rfc4861>. | |||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | |||
| Address Autoconfiguration", RFC 4862, | Address Autoconfiguration", RFC 4862, | |||
| DOI 10.17487/RFC4862, September 2007, | DOI 10.17487/RFC4862, September 2007, | |||
| <http://www.rfc-editor.org/info/rfc4862>. | <http://www.rfc-editor.org/info/rfc4862>. | |||
| [RFC4903] Thaler, D., "Multi-Link Subnet Issues", RFC 4903, | [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | |||
| DOI 10.17487/RFC4903, June 2007, | Bormann, "Neighbor Discovery Optimization for IPv6 over | |||
| <http://www.rfc-editor.org/info/rfc4903>. | Low-Power Wireless Personal Area Networks (6LoWPANs)", | |||
| RFC 6775, DOI 10.17487/RFC6775, November 2012, | ||||
| <http://www.rfc-editor.org/info/rfc6775>. | ||||
| [I-D.ietf-6lo-rfc6775-update] | ||||
| Thubert, P., Nordmark, E., and S. Chakrabarti, "An Update | ||||
| to 6LoWPAN ND", draft-ietf-6lo-rfc6775-update-05 (work in | ||||
| progress), May 2017. | ||||
| 10.2. Informative references | ||||
| [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, | ||||
| "SEcure Neighbor Discovery (SEND)", RFC 3971, | ||||
| DOI 10.17487/RFC3971, March 2005, | ||||
| <http://www.rfc-editor.org/info/rfc3971>. | ||||
| [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | ||||
| RFC 3972, DOI 10.17487/RFC3972, March 2005, | ||||
| <http://www.rfc-editor.org/info/rfc3972>. | ||||
| [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | ||||
| "Transmission of IPv6 Packets over IEEE 802.15.4 | ||||
| Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | ||||
| <http://www.rfc-editor.org/info/rfc4944>. | ||||
| [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | ||||
| Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | ||||
| DOI 10.17487/RFC6282, September 2011, | ||||
| <http://www.rfc-editor.org/info/rfc6282>. | ||||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | |||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | over Low-Power Wireless Personal Area Networks (6LoWPANs): | |||
| Overview, Assumptions, Problem Statement, and Goals", | Overview, Assumptions, Problem Statement, and Goals", | |||
| RFC 4919, DOI 10.17487/RFC4919, August 2007, | RFC 4919, DOI 10.17487/RFC4919, August 2007, | |||
| <http://www.rfc-editor.org/info/rfc4919>. | <http://www.rfc-editor.org/info/rfc4919>. | |||
| [RFC5889] Baccelli, E., Ed. and M. Townsley, Ed., "IP Addressing | [RFC5889] Baccelli, E., Ed. and M. Townsley, Ed., "IP Addressing | |||
| Model in Ad Hoc Networks", RFC 5889, DOI 10.17487/RFC5889, | Model in Ad Hoc Networks", RFC 5889, DOI 10.17487/RFC5889, | |||
| September 2010, <http://www.rfc-editor.org/info/rfc5889>. | September 2010, <http://www.rfc-editor.org/info/rfc5889>. | |||
| skipping to change at page 16, line 17 ¶ | skipping to change at page 15, line 27 ¶ | |||
| DOI 10.17487/RFC6234, May 2011, | DOI 10.17487/RFC6234, May 2011, | |||
| <http://www.rfc-editor.org/info/rfc6234>. | <http://www.rfc-editor.org/info/rfc6234>. | |||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | |||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | |||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | |||
| Low-Power and Lossy Networks", RFC 6550, | Low-Power and Lossy Networks", RFC 6550, | |||
| DOI 10.17487/RFC6550, March 2012, | DOI 10.17487/RFC6550, March 2012, | |||
| <http://www.rfc-editor.org/info/rfc6550>. | <http://www.rfc-editor.org/info/rfc6550>. | |||
| [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | ||||
| Bormann, "Neighbor Discovery Optimization for IPv6 over | ||||
| Low-Power Wireless Personal Area Networks (6LoWPANs)", | ||||
| RFC 6775, DOI 10.17487/RFC6775, November 2012, | ||||
| <http://www.rfc-editor.org/info/rfc6775>. | ||||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | |||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | |||
| 2014, <http://www.rfc-editor.org/info/rfc7102>. | 2014, <http://www.rfc-editor.org/info/rfc7102>. | |||
| [RFC7039] Wu, J., Bi, J., Bagnulo, M., Baker, F., and C. Vogt, Ed., | [RFC7039] Wu, J., Bi, J., Bagnulo, M., Baker, F., and C. Vogt, Ed., | |||
| "Source Address Validation Improvement (SAVI) Framework", | "Source Address Validation Improvement (SAVI) Framework", | |||
| RFC 7039, DOI 10.17487/RFC7039, October 2013, | RFC 7039, DOI 10.17487/RFC7039, October 2013, | |||
| <http://www.rfc-editor.org/info/rfc7039>. | <http://www.rfc-editor.org/info/rfc7039>. | |||
| [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | |||
| skipping to change at page 16, line 47 ¶ | skipping to change at page 16, line 5 ¶ | |||
| [RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm | [RFC7696] Housley, R., "Guidelines for Cryptographic Algorithm | |||
| Agility and Selecting Mandatory-to-Implement Algorithms", | Agility and Selecting Mandatory-to-Implement Algorithms", | |||
| BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015, | BCP 201, RFC 7696, DOI 10.17487/RFC7696, November 2015, | |||
| <http://www.rfc-editor.org/info/rfc7696>. | <http://www.rfc-editor.org/info/rfc7696>. | |||
| [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | |||
| for Security", RFC 7748, DOI 10.17487/RFC7748, January | for Security", RFC 7748, DOI 10.17487/RFC7748, January | |||
| 2016, <http://www.rfc-editor.org/info/rfc7748>. | 2016, <http://www.rfc-editor.org/info/rfc7748>. | |||
| 9.2. Informative references | ||||
| [I-D.ietf-6lo-backbone-router] | [I-D.ietf-6lo-backbone-router] | |||
| Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | |||
| backbone-router-03 (work in progress), January 2017. | backbone-router-03 (work in progress), January 2017. | |||
| [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-11 (work | of IEEE 802.15.4", draft-ietf-6tisch-architecture-11 (work | |||
| in progress), January 2017. | in progress), January 2017. | |||
| [I-D.ietf-6man-ipv6-address-generation-privacy] | [I-D.ietf-6man-ipv6-address-generation-privacy] | |||
| Cooper, A., Gont, F., and D. Thaler, "Privacy | Cooper, A., Gont, F., and D. Thaler, "Privacy | |||
| Considerations for IPv6 Address Generation Mechanisms", | Considerations for IPv6 Address Generation Mechanisms", | |||
| draft-ietf-6man-ipv6-address-generation-privacy-08 (work | draft-ietf-6man-ipv6-address-generation-privacy-08 (work | |||
| in progress), September 2015. | in progress), September 2015. | |||
| Appendix A. Requirements Addressed in this Document | ||||
| In this section we state requirements of a secure neighbor discovery | ||||
| protocol for low-power and lossy networks. | ||||
| o The protocol MUST be based on the Neighbor Discovery Optimization | ||||
| for Low-power and Lossy Networks protocol defined in [RFC6775]. | ||||
| RFC6775 utilizes optimizations such as host-initiated interactions | ||||
| for sleeping resource-constrained hosts and elimination of | ||||
| multicast address resolution. | ||||
| o New options to be added to Neighbor Solicitation messages MUST | ||||
| lead to small packet sizes, especially compared with existing | ||||
| protocols such as SEcure Neighbor Discovery (SEND). Smaller | ||||
| packet sizes facilitate low-power transmission by resource- | ||||
| constrained nodes on lossy links. | ||||
| o The support for this registration mechanism SHOULD be extensible | ||||
| to more LLN links than IEEE 802.15.4 only. Support for at least | ||||
| the LLN links for which a 6lo "IPv6 over foo" specification | ||||
| exists, as well as Low-Power Wi-Fi SHOULD be possible. | ||||
| o As part of this extension, a mechanism to compute a unique | ||||
| Identifier should be provided with the capability to form a Link | ||||
| Local Address that SHOULD be unique at least within the LLN | ||||
| connected to a 6LBR. | ||||
| o The Address Registration Option used in the ND registration SHOULD | ||||
| be extended to carry the relevant forms of Unique Interface | ||||
| IDentifier. | ||||
| o The Neighbour Discovery should specify the formation of a site- | ||||
| local address that follows the security recommendations from | ||||
| [RFC7217]. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Behcet Sarikaya (editor) | Behcet Sarikaya | |||
| Huawei USA | Huawei USA | |||
| 5340 Legacy Dr. Building 3 | 5340 Legacy Dr. Building 3 | |||
| Plano, TX 75024 | Plano, TX 75024 | |||
| Email: sarikaya@ieee.org | Email: sarikaya@ieee.org | |||
| Pascal Thubert | Pascal Thubert | |||
| Cisco Systems, Inc | Cisco Systems, Inc | |||
| Building D | Building D | |||
| 45 Allee des Ormes - BP1200 | 45 Allee des Ormes - BP1200 | |||
| MOUGINS - Sophia Antipolis 06254 | MOUGINS - Sophia Antipolis 06254 | |||
| FRANCE | FRANCE | |||
| Phone: +33 497 23 26 34 | Phone: +33 497 23 26 34 | |||
| Email: pthubert@cisco.com | Email: pthubert@cisco.com | |||
| Mohit Sethi (editor) | Mohit Sethi | |||
| Ericsson | Ericsson | |||
| Hirsalantie | Hirsalantie | |||
| Jorvas 02420 | Jorvas 02420 | |||
| Email: mohit@piuha.net | Email: mohit@piuha.net | |||
| End of changes. 53 change blocks. | ||||
| 398 lines changed or deleted | 405 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/ | ||||