| < draft-ietf-6lo-ap-nd-02.txt | draft-ietf-6lo-ap-nd-03.txt > | |||
|---|---|---|---|---|
| 6lo B. Sarikaya | 6lo B. Sarikaya | |||
| Internet-Draft Huawei USA | Internet-Draft | |||
| Updates: 6775 (if approved) P. Thubert | Updates: 6775 (if approved) P. Thubert | |||
| Intended status: Standards Track Cisco | Intended status: Standards Track Cisco | |||
| Expires: November 25, 2017 M. Sethi | Expires: March 25, 2018 M. Sethi | |||
| Ericsson | Ericsson | |||
| May 24, 2017 | September 21, 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-02 | draft-ietf-6lo-ap-nd-03 | |||
| Abstract | Abstract | |||
| This document defines an extension to 6LoWPAN Neighbor Discovery, RFC | This document defines an extension to 6LoWPAN Neighbor Discovery RFC | |||
| 6775. Nodes supporting this extension compute a cryptographic Owner | 6775. Nodes supporting this extension compute a cryptographic Owner | |||
| Unique Interface ID and associate it with one or more of their | Unique Interface ID and associate it with one or more of their | |||
| Registered Addresses. Once an address is registered with a | Registered Addresses. Once an address is registered with a | |||
| Cryptographic ID, only the owner of that ID can modify the anchor | Cryptographic ID, only the owner of that ID can modify the anchor | |||
| state information of the Registered Address, and Source Address | state information of the Registered Address, and Source Address | |||
| Validation can be enforced. | Validation can be enforced. | |||
| 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 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 November 25, 2017. | This Internet-Draft will expire on March 25, 2018. | |||
| 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 | (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 | |||
| skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
| 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5 | 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.3. New Crypto-ID Parameters Option . . . . . . . . . . . . . 7 | 4.3. New Crypto-ID Parameters Option . . . . . . . . . . . . . 7 | |||
| 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | 5. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Protocol Scope . . . . . . . . . . . . . . . . . . . . . 8 | 5.1. Protocol Scope . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Protocol Flows . . . . . . . . . . . . . . . . . . . . . 9 | 5.2. Protocol Flows . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 11 | 5.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 11 | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
| 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 | 7. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 7.1. Crypto Type Registry . . . . . . . . . . . . . . . . . . 13 | ||||
| 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 13 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 14 | |||
| 10.2. Informative references . . . . . . . . . . . . . . . . . 14 | 10.2. Informative references . . . . . . . . . . . . . . . . . 14 | |||
| Appendix A. Requirements Addressed in this Document . . . . . . 16 | 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 Optimizations for 6LoWPAN networks" [RFC6775] | |||
| autoconfiguration [RFC4862] and their extensions are collectively | (6LoWPAN ND) adapts the classical IPv6 ND protocol [RFC4861][RFC4862] | |||
| referred to as the IPv6 Neighbor Discovery Protocol (IPv6 NDP). In | (IPv6 ND) for operations over a constrained low-power and lossy | |||
| order to enable IPv6 NDP operations over a constrained low-power and | network (LLN). In particular, 6LoWPAN ND introduces a unicast host | |||
| lossy network (LLN), "Neighbor Discovery optimizations for 6LoWPAN | address registration mechanism that contributes to reduce the use of | |||
| networks" [RFC6775] (6LoWPAN ND), reduces the use of multicast in the | multicast messages that are present in the classical IPv6 ND | |||
| original protocol and introduces a unicast host address registration | protocol. 6LoWPAN ND defines a new Address Registration Option (ARO) | |||
| technique. The registration mechanism leverages a new Address | that is carried in the unicast Neighbor Solicitation (NS) and | |||
| Registration Option (ARO) that is carried in the unicast Neighbor | Neighbor Advertisement (NA) messages between the 6LoWPAN Node (6LN) | |||
| Solicitation (NS) and Neighbor Advertisement (NA) messages between | and the 6LoWPAN Router (6LR). Additionally, it also defines the | |||
| the 6LoWPAN Node (6LN) and the 6LoWPAN Router (6LR), as well as the | ||||
| Duplicate Address Request (DAR) and Duplicate Address Confirmation | Duplicate Address Request (DAR) and Duplicate Address Confirmation | |||
| (DAC) messages between the 6LR and the 6LoWPAN Border Router (6LBR), | (DAC) messages between the 6LR and the 6LoWPAN Border Router (6LBR). | |||
| which is the central repository of all the registered addresses in | In LLN networks, the 6LBR is the central repository of all the | |||
| its domain. | registered addresses in its domain. | |||
| The registration mechanism in 6LoWPAN ND [RFC6775] was created for | The registration mechanism in 6LoWPAN ND [RFC6775] prevents the use | |||
| the original purpose of Duplicate Address Detection (DAD), whereby | of an address if that address is already present in the subnet (first | |||
| use of an address would be granted as long as the address is not | come first serve). In order to validate address ownership, the | |||
| already present in the subnet (first come first serve). In order to | registration mechanism enables the 6LR and 6LBR to validate claims | |||
| validate address ownership, the registration mechanism enables the | for a registered address with an associated Owner Unique Interface | |||
| 6LR and 6LBR to correlate further claims for a registered address | IDentifier (OUID). 6LoWPAN ND specifies that the OUID is derived from | |||
| from the device to which it is granted with a Owner Unique Interface | the MAC address of the device (EUI-64), which can be spoofed. | |||
| IDentifier (OUID). With 6LoWPAN ND, the OUID is derived from the MAC | Therefore, any node connected to the subnet and aware of a | |||
| address of the device (EUI-64), which can be spoofed. Therefore, any | registered-address-to-OUID mapping could effectively fake the OUID, | |||
| node connected to the subnet and aware of a registered-address-to- | steal the address and redirect traffic for that address towards a | |||
| OUID mapping may effectively fake the OUID, steal the address and | different 6LN. The "Update to 6LoWPAN ND" | |||
| attract the traffic for that address towards a different Node. In | [I-D.ietf-6lo-rfc6775-update] defines an Extended ARO (EARO) option | |||
| order to allow a more secured registration mechanism, the "Update to | that allows to transport alternate forms of OUIDs, and is a | |||
| 6LoWPAN ND" [I-D.ietf-6lo-rfc6775-update] opens the semantics of the | prerequisite for this specification. | |||
| ARO option and allows to transport alternate forms of OUIDs. | ||||
| With this specification, a 6LN generates a cryptographic ID (Crypto- | According to this specification, a 6LN generates a cryptographic ID | |||
| ID) and places it in the OUID field in the registration of one (or | (Crypto-ID) and places it in the OUID field in the registration of | |||
| more) of its addresses with the 6LR(s) that it uses as default | one (or more) of its addresses with the 6LR(s) that the 6LN uses as | |||
| router(s). Proof of ownership of the cryptographic ID (Crypto-ID) is | default router(s). Proof of ownership of the cryptographic ID | |||
| passed with the first registration to a given 6LR, and enforced at | (Crypto-ID) is passed with the first registration to a given 6LR, and | |||
| the 6LR, in a new Crypto-ID Parameters Option (CIPO). The 6LR | enforced at the 6LR, in a new Crypto-ID Parameters Option (CIPO). | |||
| validates ownership of the cryptographic ID upon the creation of a | The 6LR validates ownership of the cryptographic ID upon the creation | |||
| registration state, or a change in the anchor information, such as | of a registration state, or a change in the anchor information, such | |||
| Link-Layer Address and associated Layer-2 cryptographic material. | as Link-Layer Address and associated Layer-2 cryptographic material. | |||
| The protected address registration protocol proposed in this document | The protected address registration protocol proposed in this document | |||
| enables the enforcement of Source Address Validation (SAVI) | enables the enforcement of Source Address Validation (SAVI) | |||
| [RFC7039], which ensures that only the correct owner uses a | [RFC7039], which ensures that only the correct owner uses a | |||
| registered address in the source address field in IPv6 packets. With | registered address in the source address field in IPv6 packets. | |||
| this specification, a 6LN that sources a packet has to use a 6LR to | Consequently, a 6LN that sources a packet has to use a 6LR to which | |||
| which the source address of the packet is registered to forward the | the source address of the packet is registered to forward the packet. | |||
| packet. The 6LR maintains state information for the registered | The 6LR maintains state information for the registered addressed, | |||
| addressed along with the MAC address, and link-layer cryptographic | including the MAC address, and a link-layer cryptographic key | |||
| key associated with that node. In SAVI-enforcement mode, the 6LR | associated with the 6LN. In SAVI-enforcement mode, the 6LR allows | |||
| allows only packets from a connected Host if the connected Host owns | only packets from a connected Host if the connected Host owns the | |||
| the registration of the source address of the packet. | registration of the source address of the packet. | |||
| The 6lo adaptation layer framework ([RFC4944], [RFC6282]) expects | The 6lo adaptation layer framework ([RFC4944], [RFC6282]) expects | |||
| that a device forms its IPv6 addresses based on Layer-2 address, so | that a device forms its IPv6 addresses based on Layer-2 address, so | |||
| as to enable a better compression. This is incompatible with "Secure | as to enable a better compression. This is incompatible with "Secure | |||
| Neighbor Discovery (SEND)" [RFC3971] and "Cryptographically Generated | Neighbor Discovery (SEND)" [RFC3971] and "Cryptographically Generated | |||
| Addresses (CGAs)" [RFC3972], which derive the Interface ID (IID) in | Addresses (CGAs)" [RFC3972], which derive the Interface ID (IID) in | |||
| the IPv6 addresses from cryptographic material. "Privacy | the IPv6 addresses from cryptographic material. "Privacy | |||
| Considerations for IPv6 Address Generation Mechanisms" | Considerations for IPv6 Address Generation Mechanisms" [RFC7721] | |||
| [I-D.ietf-6man-ipv6-address-generation-privacy] places additional | places additional recommendations on the way addresses should be | |||
| recommendations on the way addresses should be formed and renewed. | formed and renewed. | |||
| This specification allows a device to form and register addresses at | This document specifies that a device may form and register addresses | |||
| will, without a constraint on the way the address is formed or the | at will, without a constraint on the way the address is formed or the | |||
| number of addresses that are registered in parallel. It enables to | number of addresses that are registered in parallel. It enables to | |||
| protect multiple addresses with a single cryptographic material and | protect multiple addresses with a single cryptographic material and | |||
| to send the proof only once to a given 6LR for multiple addresses and | to send the proof only once to a given 6LR for multiple addresses and | |||
| refresher registrations. | refresher registrations. | |||
| 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 | |||
| evolution of [RFC6775] for wider applicability. | evolution of [RFC6775] for wider applicability. | |||
| This document defines Crypto-ID as an identifier of variable size | This document defines Crypto-ID as an identifier of variable size | |||
| 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 Section 4.1. | |||
| 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. Finally, common terminology | |||
| related to Low power And Lossy Networks (LLN) defined in [RFC7102] is | ||||
| This document uses [RFC7102] for Terminology in Low power And Lossy | also used. | |||
| Networks. | ||||
| 3. Updating RFC 6775 | 3. Updating RFC 6775 | |||
| With this specification, a node SHOULD use a cryptographic identifier | This specification defines a cryptographic identifier (Crypto-ID) | |||
| (Crypto-ID) as OUID in its registration; the Crypto-ID is calculated | that can be used as a replacement to the MAC address in the OUID | |||
| as described in Section 4.1. The fact that a OUID is a Crypto-ID is | field of the EARO option; the computation of the Crypto-ID is | |||
| indicated in a new 'C' flag in the NS(ARO) message. | detailed in Section 4.1. A node in possession of the necessary | |||
| cryptographic material SHOULD use Crypto-ID by default as OUID in its | ||||
| registration. Whether a OUID is a Crypto-ID is indicated by a new | ||||
| "C" flag in the NS(EARO) message. | ||||
| This specification also introduces a new option, the CIPO, that is | This specification introduces a new option, the CIPO, that is used to | |||
| used to prove ownership of the Crypto-ID. A node that registers for | prove ownership of the Crypto-ID. A node that registers for the | |||
| the first time to a 6LR SHOULD place a CIPO option to its | first time to a 6LR SHOULD place a CIPO option in its registration. | |||
| registration but is not expected to place the option in the next | However, it is not expected to place the option in the periodic | |||
| periodic refresher registrations for that address, or for the | refresher registrations for that address, or to register other | |||
| registration of other addresses with the same OUID. When a 6LR | addresses with the same OUID. When a 6LR receives a NS(EARO) | |||
| receives a NS(ARO) registration with a new Crypto-ID as a OUID, then | registration with a new Crypto-ID as a OUID, it SHOULD challenge by | |||
| it SHOULD challenge by responding with a NA(ARO) with a status of | responding with a NA(EARO) with a status of "Validation Requested". | |||
| "Proof requested". This whole process MAY be skipped in networks | This process of validation MAY be skipped in networks where there is | |||
| where there is no or ultra low expectations of mobility. | no mobility. | |||
| The challenge will also be triggered in the case of a registration | The challenge MUST also be triggered in the case of a registration | |||
| for which the Source Link-Layer Address is not consistent with a | for which the Source Link-Layer Address is not consistent with a | |||
| state that already exists either at the 6LR or the 6LBR. In the | 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 | latter case, the 6LBR returns a status of "Validation Requested" in | |||
| DAR/DAC exchange, which is echoed by the 6LR in the NA (ARO) back to | the DAR/DAC exchange, which is echoed by the 6LR in the NA (EARO) | |||
| the registering node. This flow should not alter a preexisting state | back to the registering node. This flow should not alter a | |||
| in the 6LR or the 6LBR. | preexisting state in the 6LR or the 6LBR. | |||
| Upon a NA(ARO) with a status of "Proof requested", the registering | Upon receiving a NA(EARO) with a status of "Validation Requested", | |||
| node SHOULD retry its registration with a CIPO option that proves its | the registering node SHOULD retry its registration with a CIPO option | |||
| ownership of the Crypto-ID. | that proves its ownership of the Crypto-ID. | |||
| If the 6LR cannot validate the proof, it responds with a status of | If the 6LR cannot validate the CIPO, it responds with a status of | |||
| "Incorrect Proof". Upon a NA(ARO) with a status of "Incorrect | "Validation Failed". After receiving a NA(EARO) with a status of | |||
| Proof", the registering node SHOULD NOT use this Crypto-ID for | "Validation Failed", the registering node MUST NOT use this Crypto-ID | |||
| registering with that 6LR anymore. | for registering with that 6LR. | |||
| 4. New Fields and Options | 4. New Fields and Options | |||
| 4.1. New Crypto-ID | 4.1. New Crypto-ID | |||
| Elliptic Curve Cryptography (ECC) is used in the calculation of the | Elliptic Curve Cryptography (ECC) is used to calculate the Crypto-ID. | |||
| Crypto-ID. The digital signature is constructed by using the 6LN's | Each 6LN using a Crypto-ID for registration MUST have a public/ | |||
| private key over its EUI-64 (MAC) address. The signature value is | private key pair. The digital signature is constructed by using the | |||
| computed using the ECDSA signature algorithm and the hash function | 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 | used is SHA-256 [RFC6234]. Public Key is the most important | |||
| parameter in CGA Parameters (sent by 6LN in an NS message). ECC | parameter in CGA Parameters (sent by 6LN in an NS message). ECC | |||
| Public Key could be in uncompressed form or in compressed form where | 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, | the first octet of the OCTET STRING is 0x04 and 0x02 or 0x03, | |||
| respectively. Point compression can further reduce the key size by | respectively. Point compression can further reduce the key size by | |||
| about 32 octets. | about 32 octets. | |||
| First, the modifier is set to a random or pseudo-random 128-bit | The Crypto-ID is computed as follows: | |||
| value. Next, concatenate from left to right the modifier, 9 zero | ||||
| octets and the ECC public key. SHA-256 algorithm is applied on the | ||||
| concatenation. The 112 leftmost bits of the hash value is taken. | ||||
| Concatenate from left to right the modifier value, the subnet prefix | ||||
| and the encoded public key. NIST P-256 is executed on the | ||||
| concatenation. The leftmost bits of the result is used as the | ||||
| Crypto-ID. With this specification, the last 64 bits are retained, | ||||
| but it could be expanded to more bits in the future by increasing the | ||||
| size of the OUID field. | ||||
| In respecting the cryptographic algorithm agility [RFC7696], Curve | 1. the modifier is set to a random or pseudo-random 128-bit value | |||
| 25519 [RFC7748] can also be used instead of NIST P-256. This is | ||||
| indicated by 6LN by setting the Crypto Type field in the CIPO option | 2. the modifier, 9 zero octets and the ECC public key are | |||
| to a value of 1. If 6LBR does not support Curve 25519, it will set | concatenated from left to right. | |||
| Crypto Type field to zero. This means that the default algorithm | ||||
| (NIST P-256) will be used. | 3. the SHA-256 algorithm is applied on the concatenation | |||
| 4. the 112 leftmost bits of the hash value are retained | ||||
| 5. the modifier value, the subnet prefix and the encoded public key | ||||
| are concatenated from left to right | ||||
| 6. NIST P-256 is executed on the concatenation | ||||
| 7. the leftmost bits of the result are used as the Crypto-ID. | ||||
| With this specification, the last 64 bits are retained, but it could | ||||
| be expanded to more bits in the future by increasing the size of the | ||||
| OUID field. | ||||
| To support cryptographic algorithm agility [RFC7696], Curve25519 | ||||
| [RFC7748] can also be used instead of NIST P-256. This is indicated | ||||
| by 6LN using the Crypto Type field in the CIPO option. The document | ||||
| currently only defines two possible values for the Crypto Type field. | ||||
| A value of 0 indicates that NIST P-256 is used for the signature | ||||
| operation and SHA-256 as the hash algorithm. A value of 1 indicates | ||||
| that Curve25519 is used for the signature operation and SHA-256 as | ||||
| the hash algorithm. New values for the Crypto Type maybe defined in | ||||
| the future for new curves. | ||||
| 4.2. Updated EARO | 4.2. Updated EARO | |||
| This specification updates the EARO option as follows: | ||||
| 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 1: Enhanced Address Registration Option | Figure 1: Enhanced Address Registration Option | |||
| Type: | Type: 33 | |||
| 33 | ||||
| Length: | ||||
| 8-bit unsigned integer. The length of the option (including the | ||||
| type and length fields) in units of 8 bytes. | ||||
| Status: | ||||
| 8-bit unsigned integer. Indicates the status of a registration in | ||||
| 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: | ||||
| This field is unused. It MUST be initialized to zero by the | ||||
| sender and MUST be ignored by the receiver. | ||||
| C: | Length: 8-bit unsigned integer. The length of the option | |||
| (including the type and length fields) in units of 8 | ||||
| bytes. | ||||
| This specification introduces a C bit, which is set to indicate | Status: 8-bit unsigned integer. Indicates the status of a | |||
| that the Owner Unique ID field contains a Crypto-ID. | registration in the NA response. MUST be set to 0 in | |||
| NS messages. This specification uses values | ||||
| introduced in the update to 6LoWPAN ND | ||||
| [I-D.ietf-6lo-rfc6775-update], such as "Validation | ||||
| Requested" and "Validation Failed". No additional | ||||
| value is defined. | ||||
| T and TID: | Reserved: This field is unused. It MUST be initialized to zero | |||
| by the sender and MUST be ignored by the receiver. | ||||
| Defined in [I-D.ietf-6lo-rfc6775-update]. | C: This "C" flag is set to indicate that the Owner | |||
| Unique ID field contains a Crypto-ID. | ||||
| Owner Unique ID: | T and TID: Defined in [I-D.ietf-6lo-rfc6775-update]. | |||
| When using this specification, this field contains a Crypto-ID. | Owner Unique ID: When the "C" flag is set, this field contains a | |||
| Crypto-ID. | ||||
| 4.3. New Crypto-ID Parameters Option | 4.3. New Crypto-ID Parameters Option | |||
| This specification introduces a new option, the Crypto-ID Parameters | This specification introduces a new option, the Crypto-ID Parameters | |||
| Option (CIPO), that carries the proof of ownership of a crypto-ID. | 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 | | |||
| skipping to change at page 7, line 50 ¶ | skipping to change at page 8, line 5 ¶ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| . . | . . | |||
| . Padding . | . Padding . | |||
| . . | . . | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: Crypto-ID Parameters Option | Figure 2: Crypto-ID Parameters Option | |||
| Type: | Type: CIPO, to be assigned by IANA. | |||
| CIPO, to be assigned by IANA. | ||||
| Length: | ||||
| The length of the option in units of 8 octets. | ||||
| Pad Length: | ||||
| The length of the Padding field. | ||||
| Crypto Type: | ||||
| The type of cryptographic algorithm used in calculation Crypto-ID. | ||||
| Default value of all zeros indicate NIST P-256. A value of 1 is | ||||
| assigned for Curve 25519. New values may be defined later. | ||||
| Modifier: | ||||
| 128 bit random value. | Length: The length of the option in units of 8 octets. | |||
| Subnet Prefix: | Pad Length: The length of the Padding field. | |||
| 64 bit subnet prefix. | Crypto Type: The type of cryptographic algorithm used in | |||
| calculation Crypto-ID. Default value of all zeros | ||||
| indicate NIST P-256. A value of 1 is assigned for | ||||
| Curve25519. New values may be defined later. | ||||
| Public Key: | Modifier: 128 bit random value. | |||
| ECC public key of 6LN. | Subnet Prefix: 64 bit subnet prefix. | |||
| Padding: | Public Key: ECC public key of 6LN. | |||
| A variable-length field making the option length a multiple of 8, | Padding: A variable-length field making the option length a | |||
| containing as many octets as specified in the Pad Length field. | multiple of 8, containing as many octets as specified | |||
| in the Pad Length field. | ||||
| 5. Protocol Overview | 5. Protocol Overview | |||
| 5.1. Protocol Scope | 5.1. Protocol Scope | |||
| The scope of the present work is a 6LoWPAN Low Power Lossy Network | 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 | (LLN), typically a stub network connected to a larger IP network via | |||
| a Border Router called a 6LBR per [RFC6775]. | a Border Router called a 6LBR per [RFC6775]. | |||
| The 6LBR maintains a registration state for all devices in the | The 6LBR maintains a registration state for all devices in the | |||
| skipping to change at page 9, line 32 ¶ | skipping to change at page 9, line 30 ¶ | |||
| This specification expects that the peer-wise layer-2 security is | This specification expects that the peer-wise layer-2 security is | |||
| deployed so that all the packets from a particular host are securely | 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 | 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 | 6LBR. Packets are routed between the 6LR and the 6LBR via other | |||
| 6LRs. This specification expects that a chain of trust is | 6LRs. This specification expects that a chain of trust is | |||
| established so that a packet that was validated by the first 6LR can | established so that a packet that was validated by the first 6LR can | |||
| be safely routed by the next 6LRs to the 6LBR. | be safely routed by the next 6LRs to the 6LBR. | |||
| 5.2. Protocol Flows | 5.2. Protocol Flows | |||
| The 6TiSCH Architecture [I-D.ietf-6tisch-architecture] suggests to | Figure 4 illustrates a registration flow all the way to a 6LowPAN | |||
| use of RPL [RFC6550] as the routing protocol between the 6LRs and the | Backbone Router (6BBR). | |||
| 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 | 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 | performs an initial registration to an on-link 6LR with an NS message | |||
| that carries an Address Registration Option (ARO) [RFC6775]. The 6LR | that carries an Address Registration Option (EARO) [RFC6775]. The | |||
| validates the address with the central 6LBR using a DAR/DAC exchange, | 6LR validates the address with the central 6LBR using a DAR/DAC | |||
| and the 6LR confirms (or denies) the address ownership with an NA | exchange, and the 6LR confirms (or denies) the address ownership with | |||
| message that also carries an Address Registration Option. | an NA message that also carries an Address Registration Option. | |||
| In a multihop 6LoWPAN, the registration with Crypto-ID is propagated | 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 | 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 | 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 | 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 | this particular OUID is randomly generated, so as to enforce that any | |||
| update via a different 6LR is also random. | update via a different 6LR is also random. | |||
| Local or on-link protocol interactions are shown in Figure 5. | 6LN 6LR 6LBR 6BBR | |||
| 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 | | NS(EARO) | | | | |||
| with 6LR sending a Router Advertisement (RA) message to 6LN. | |--------------->| | | | |||
| | | Extended DAR | | | ||||
| | |-------------->| | | ||||
| | | | | | ||||
| | | | proxy NS(EARO) | | ||||
| | | |--------------->| | ||||
| | | | | NS(DAD) | ||||
| | | | | ------> | ||||
| | | | | | ||||
| | | | | <wait> | ||||
| | | | | | ||||
| | | | proxy NA(EARO) | | ||||
| | | |<---------------| | ||||
| | | Extended DAC | | | ||||
| | |<--------------| | | ||||
| | NA(EARO) | | | | ||||
| |<---------------| | | | ||||
| | | | | | ||||
| Figure 4: (Re-)Registration Flow | ||||
| On-link (local) protocol interactions are shown in Figure 5. Crypto- | ||||
| ID and ARO are passed to and stored by the 6LR 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 6LR/6LBR ensures first-come/first-serve by storing the ARO and | |||
| the Crypto-ID correlated to the node being registered. The node is | 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 | 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 | such a claim. After a successful registration, the node becomes the | |||
| owner of the registered address and the address is bound to 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 | Crypto-ID in the 6LR/6LBR registry. This binding can be verified | |||
| later, which prevents other nodes from stealing the address and | later, which prevents other nodes from stealing the address and | |||
| trying to attract traffic for that address or use it as their source | trying to attract traffic for that address or use it as their source | |||
| address. | address. | |||
| A node may uses multiple IPv6 addresses at any time. This condition | A node may use multiple IPv6 addresses at the same time. The node | |||
| may happen for privacy reasons | may use the same Crypto-ID to protect multiple IPv6 addresses. The | |||
| [I-D.ietf-6man-ipv6-address-generation-privacy], or when the node | separation of the address and the Crypto-ID avoids the constrained | |||
| moves at a different place and auto-configures an new address from a | device to compute multiple keys for multiple addresses. The | |||
| different prefix. In those situations, the node may use the same | registration process allows the node to bind all of its addresses to | |||
| Crypto-ID to protect multiple IPv6 addresses. The separation of the | the same Crypto-ID. | |||
| 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 | 6LN 6LR | |||
| | | | | | | |||
| |<------------------- RA --------------------------| | |<------------------- RA --------------------------| | |||
| | | | | | | |||
| |----------- NS with ARO and Crypto-ID ----------->| | |----------- NS with ARO and Crypto-ID ----------->| | |||
| | | | | | | |||
| |<---------- NA with ARO (status=proof requested) -| | |<---------- NA with ARO (status=proof requested) -| | |||
| | | | | | | |||
| |----------- NS with ARO and Crypto-ID ----------->| | |----------- NS with ARO and Crypto-ID ----------->| | |||
| skipping to change at page 11, line 47 ¶ | skipping to change at page 11, line 34 ¶ | |||
| | | | | | | |||
| |----------- NS with ARO and Crypto-ID ----------->| | |----------- NS with ARO and Crypto-ID ----------->| | |||
| | | | | | | |||
| | | | | | | |||
| |<---------------- NA with ARO --------------------| | |<---------------- NA with ARO --------------------| | |||
| Figure 5: On-link Protocol Operation | Figure 5: On-link Protocol Operation | |||
| 5.3. Multihop Operation | 5.3. Multihop Operation | |||
| In multihop 6LoWPAN, 6LBR sends RAs with prefixes downstream and it | In a multihop 6LoWPAN, a 6LBR sends RAs with prefixes downstream and | |||
| is the 6LR that receives and relays them to the nodes. 6LR and 6LBR | the 6LR receives and relays them to the nodes. 6LR and 6LBR | |||
| communicate with the ICMPv6 Duplicate Address Request (DAR) and the | communicate using ICMPv6 Duplicate Address Request (DAR) and | |||
| 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, but have 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 OUID. In a multihop 6LoWPAN, the node exchanges the | generated OUID. In a multihop 6LoWPAN, the node exchanges the | |||
| messages shown in Figure 4. The 6LBR must be aware of who owns an | messages shown in Figure 4. The 6LBR must identify who owns an | |||
| address (EUI-64) to defend the first node if there is an attacker on | address (EUI-64) to defend it, if there is an attacker on another | |||
| another 6LR. Because of this the content that the source signs and | 6LR. Because of this the content that the source signs and the | |||
| the signature needs to be propagated to the 6LBR in DAR message. For | signature needs to be propagated to the 6LBR in the DAR message. For | |||
| this purpose the DAR message sent by 6LR to 6LBR MUST contain the | this purpose the DAR message sent by 6LR to 6LBR MUST contain the | |||
| CIPO option. DAR message also contains ARO. | CIPO option. The DAR message also contains ARO. | |||
| It is possible that occasionally, a 6LR may miss the node's OUID | Occasionally, a 6LR might miss the node's OUID (that it received in | |||
| (that it received in ARO). 6LR should be able to ask for it again. | ARO). 6LR should be able to ask for it again. This is done by | |||
| This is done by restarting the exchanges shown in Figure 5. The | restarting the exchanges shown in Figure 5. The result enables 6LR | |||
| result enables 6LR to refresh the information that was lost. 6LR MUST | to refresh the information that was lost. The 6LR MUST send DAR | |||
| send DAR message with ARO to 6LBR. 6LBR as a reply forms a DAC | message with ARO to 6LBR. The 6LBR replies with a DAC message with | |||
| message with the information copied from the DAR and the Status field | the information copied from the DAR, and the Status field is set to | |||
| is set to zero. With this exchange, the 6LBR can (re)validate and | zero. With this exchange, the 6LBR can (re)validate and store the | |||
| store the information to make sure that the 6LR is not a fake. | 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, the 6LBR may use a DAC message to solicit a Crypto-ID | |||
| expects Crypto-ID from 6LR also asks 6LR to verify the EUI-64 6LR | from a 6LR and also requests 6LR to verify the EUI-64 6LR received | |||
| received from 6LN. This may happen when a 6LN node is compromised | from 6LN. This may happen when a 6LN node is compromised and a fake | |||
| and a fake node is sending the Crypto-ID as if it is the node's EUI- | node is sending the Crypto-ID as if it is the node's EUI-64. Note | |||
| 64. Note that the detection in this case can only be done by 6LBR | that the detection in this case can only be done by 6LBR not by 6LR. | |||
| not by 6LR. | ||||
| 6. Security Considerations | 6. Security Considerations | |||
| The observations regarding the threats to the Local Link Network in | The observations regarding the threats to the local network in | |||
| [RFC3971] also apply to this specification. | [RFC3971] also apply to this specification. | |||
| This document inherits threats discussed in 6LoWPAN ND [RFC6775] and | The threats discussed in 6LoWPAN ND [RFC6775] and its update | |||
| its update [I-D.ietf-6lo-rfc6775-update] and addresses the potential | [I-D.ietf-6lo-rfc6775-update] also apply here. Compared with SeND, | |||
| attacks related to address stealing and spoofing within a LLN. | this specification saves about 1Kbyte in every NS/NA message. Also, | |||
| Compared with SeND, this specification saves about 1Kbyte in every | this specification separates the cryptographic identifier from the | |||
| NS/NA message. Also, this specification separates the cryptographic | registered IPv6 address so that a node can have more than one IPv6 | |||
| identifier from the registered IPv6 address so that a node can have | address protected by the same cryptographic identifier. SeND forces | |||
| more than one IPv6 address protected by the same cryptographic | the IPv6 address to be cryptographic since it integrates the CGA as | |||
| identifier. SeND forces the IPv6 address to be cryptographic since | the IID in the IPv6 address. This specification frees the device to | |||
| it integrates the CGA as the IID in the IPv6 address. This | form its addresses in any fashion, so as to enable the classical | |||
| specification frees the device to form its addresses in any fashion, | 6LoWPAN compression which derives IPv6 addresses from Layer-2 | |||
| so as to enable the classical 6LoWPAN compression which derives IPv6 | addresses, as well as privacy addresses. The threats discussed in | |||
| addresses from Layer-2 addresses, as well as privacy addresses. | Section 9.2 of [RFC3971] are countered by the protocol described in | |||
| this document as well. | ||||
| The threats discussed in Section 9.2 of [RFC3971] are countered by | ||||
| the protocol described in this document as well. | ||||
| Collisions of Crypto-ID is a possibility that needs to be considered. | Collisions of Owner Unique Interface IDentifier (OUID) (which is the | |||
| The formula for calculating probability of a collision is 1 - | Crypto-ID in this specification) is a possibility that needs to be | |||
| e^{-k^2/(2n)}. If the Crypto-ID is 64-bit long, then the chance of | considered. The formula for calculating the probability of a | |||
| finding a collision is 0.01% when the network contains 66 million | collision is 1 - e^{-k^2/(2n)} where n is the maximum population size | |||
| nodes. It is important to note that the collision is only relevant | (2^64 here, 1.84E19) and K is the actual population (number of | |||
| when this happens within one stub network (6LBR). A collision of ID | nodes). If the Crypto-ID is 64-bit long, then the chance of finding | |||
| in ND-PAR is a rare event. However, when such a collision does | a collision is 0.01% when the network contains 66 million nodes. It | |||
| happen, the protocol operation is not affected, although it opens a | is important to note that the collision is only relevant when this | |||
| window for a node to hijack an address from another. The link-layer | happens within one stub network (6LBR). A collision of Crypto-ID is | |||
| security ensures that the nodes would normally not be aware of a | a rare event. In the case of a collision, an attacker may be able to | |||
| collision on the subnet. If a malicious node is able to gain | claim the registered address of an another legitimate node. However | |||
| knowledge of a collision through other means, the only thing that it | for this to happen, the attacker would also need to know the address | |||
| could do is to steal addresses from the other honest node. This | which was registered by the legitimate node. This registered address | |||
| would be no different from what is already possible in a 6lo network | is however never broadcasted on the network and therefore it provides | |||
| today. | an additional entropy of 64-bits that an attacker must correctly | |||
| guess. To prevent such a scenario, it is RECOMMENDED that nodes | ||||
| derive the address being registered independently of the OUID. | ||||
| 7. IANA considerations | 7. IANA considerations | |||
| IANA is requested to assign two new option type values for the CIPO | 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.1. Crypto Type Registry | ||||
| The following Crypto Type values are defined in this document: | ||||
| +-------------------+-----------------------------------------+ | ||||
| | Crypto Type value | Algorithms | | ||||
| +-------------------+-----------------------------------------+ | ||||
| | 0 | NIST P-256, SHA-256 [RFC6234] | | ||||
| | 1 | Curve25519 [RFC7748], SHA-256 [RFC6234] | | ||||
| +-------------------+-----------------------------------------+ | ||||
| Table 1: Crypto Types | ||||
| Assignment of new values for new Crypto Type MUST be done through | ||||
| IANA with "Specification Required" and "IESG Approval" as defined in | ||||
| [RFC8126]. | ||||
| 8. Acknowledgements | 8. Acknowledgements | |||
| We are grateful to Rene Struik and Robert Moskowitz for their | Special thanks to Charlie Perkins for his in-depth review and | |||
| comments that lead to many improvements to this document. | constructive suggestions. We are also grateful to Rene Struik and | |||
| Robert Moskowitz for their comments that lead to many improvements to | ||||
| this document. | ||||
| 9. 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 | |||
| o submitted version -02 with these changes: Moved Requirements to | o submitted version -02 with these changes: Moved Requirements to | |||
| Appendix A, Section 4.2 moved to Section 3, New section 4 on New | Appendix A, Section 4.2 moved to Section 3, New section 4 on New | |||
| Fields and Options, Section 4 changed to Protocol Overview as | Fields and Options, Section 4 changed to Protocol Overview as | |||
| Section 5 with Protocol Scope and Flows subsections. | Section 5 with Protocol Scope and Flows subsections. | |||
| 10. References | o submitted version -03 addressing Charlie Perkins' comments | |||
| 10. References | ||||
| 10.1. Normative References | 10.1. Normative References | |||
| [I-D.ietf-6lo-rfc6775-update] | ||||
| Thubert, P., Nordmark, E., and S. Chakrabarti, "An Update | ||||
| to 6LoWPAN ND", draft-ietf-6lo-rfc6775-update-09 (work in | ||||
| progress), September 2017. | ||||
| [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>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [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, <https://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>. | <https://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>. | <https://www.rfc-editor.org/info/rfc4862>. | |||
| [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | [RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C. | |||
| Bormann, "Neighbor Discovery Optimization for IPv6 over | Bormann, "Neighbor Discovery Optimization for IPv6 over | |||
| Low-Power Wireless Personal Area Networks (6LoWPANs)", | Low-Power Wireless Personal Area Networks (6LoWPANs)", | |||
| RFC 6775, DOI 10.17487/RFC6775, November 2012, | RFC 6775, DOI 10.17487/RFC6775, November 2012, | |||
| <http://www.rfc-editor.org/info/rfc6775>. | <https://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 | 10.2. Informative references | |||
| [I-D.ietf-6lo-backbone-router] | ||||
| Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | ||||
| backbone-router-04 (work in progress), July 2017. | ||||
| [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, | [RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, | |||
| "SEcure Neighbor Discovery (SEND)", RFC 3971, | "SEcure Neighbor Discovery (SEND)", RFC 3971, | |||
| DOI 10.17487/RFC3971, March 2005, | DOI 10.17487/RFC3971, March 2005, | |||
| <http://www.rfc-editor.org/info/rfc3971>. | <https://www.rfc-editor.org/info/rfc3971>. | |||
| [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", | |||
| RFC 3972, DOI 10.17487/RFC3972, March 2005, | RFC 3972, DOI 10.17487/RFC3972, March 2005, | |||
| <http://www.rfc-editor.org/info/rfc3972>. | <https://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>. | <https://www.rfc-editor.org/info/rfc4919>. | |||
| [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, | ||||
| <https://www.rfc-editor.org/info/rfc4944>. | ||||
| [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, <https://www.rfc-editor.org/info/rfc5889>. | |||
| [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | |||
| (SHA and SHA-based HMAC and HKDF)", RFC 6234, | (SHA and SHA-based HMAC and HKDF)", RFC 6234, | |||
| DOI 10.17487/RFC6234, May 2011, | DOI 10.17487/RFC6234, May 2011, | |||
| <http://www.rfc-editor.org/info/rfc6234>. | <https://www.rfc-editor.org/info/rfc6234>. | |||
| [RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J., | ||||
| Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, | ||||
| JP., and R. Alexander, "RPL: IPv6 Routing Protocol for | ||||
| Low-Power and Lossy Networks", RFC 6550, | ||||
| DOI 10.17487/RFC6550, March 2012, | ||||
| <http://www.rfc-editor.org/info/rfc6550>. | ||||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | |||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | |||
| 2014, <http://www.rfc-editor.org/info/rfc7102>. | DOI 10.17487/RFC6282, September 2011, | |||
| <https://www.rfc-editor.org/info/rfc6282>. | ||||
| [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>. | <https://www.rfc-editor.org/info/rfc7039>. | |||
| [RFC7102] Vasseur, JP., "Terms Used in Routing for Low-Power and | ||||
| Lossy Networks", RFC 7102, DOI 10.17487/RFC7102, January | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7102>. | ||||
| [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | [RFC7217] Gont, F., "A Method for Generating Semantically Opaque | |||
| Interface Identifiers with IPv6 Stateless Address | Interface Identifiers with IPv6 Stateless Address | |||
| Autoconfiguration (SLAAC)", RFC 7217, | Autoconfiguration (SLAAC)", RFC 7217, | |||
| DOI 10.17487/RFC7217, April 2014, | DOI 10.17487/RFC7217, April 2014, | |||
| <http://www.rfc-editor.org/info/rfc7217>. | <https://www.rfc-editor.org/info/rfc7217>. | |||
| [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>. | <https://www.rfc-editor.org/info/rfc7696>. | |||
| [RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy | ||||
| Considerations for IPv6 Address Generation Mechanisms", | ||||
| RFC 7721, DOI 10.17487/RFC7721, March 2016, | ||||
| <https://www.rfc-editor.org/info/rfc7721>. | ||||
| [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, <https://www.rfc-editor.org/info/rfc7748>. | |||
| [I-D.ietf-6lo-backbone-router] | ||||
| Thubert, P., "IPv6 Backbone Router", draft-ietf-6lo- | ||||
| backbone-router-03 (work in progress), January 2017. | ||||
| [I-D.ietf-6tisch-architecture] | ||||
| Thubert, P., "An Architecture for IPv6 over the TSCH mode | ||||
| of IEEE 802.15.4", draft-ietf-6tisch-architecture-11 (work | ||||
| in progress), January 2017. | ||||
| [I-D.ietf-6man-ipv6-address-generation-privacy] | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Cooper, A., Gont, F., and D. Thaler, "Privacy | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| Considerations for IPv6 Address Generation Mechanisms", | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| draft-ietf-6man-ipv6-address-generation-privacy-08 (work | <https://www.rfc-editor.org/info/rfc8126>. | |||
| in progress), September 2015. | ||||
| Appendix A. Requirements Addressed in this Document | Appendix A. Requirements Addressed in this Document | |||
| In this section we state requirements of a secure neighbor discovery | In this section we state requirements of a secure neighbor discovery | |||
| protocol for low-power and lossy networks. | protocol for low-power and lossy networks. | |||
| o The protocol MUST be based on the Neighbor Discovery Optimization | o The protocol MUST be based on the Neighbor Discovery Optimization | |||
| for Low-power and Lossy Networks protocol defined in [RFC6775]. | for Low-power and Lossy Networks protocol defined in [RFC6775]. | |||
| RFC6775 utilizes optimizations such as host-initiated interactions | RFC6775 utilizes optimizations such as host-initiated interactions | |||
| for sleeping resource-constrained hosts and elimination of | for sleeping resource-constrained hosts and elimination of | |||
| skipping to change at page 17, line 12 ¶ | skipping to change at page 17, line 8 ¶ | |||
| be extended to carry the relevant forms of Unique Interface | be extended to carry the relevant forms of Unique Interface | |||
| IDentifier. | IDentifier. | |||
| o The Neighbour Discovery should specify the formation of a site- | o The Neighbour Discovery should specify the formation of a site- | |||
| local address that follows the security recommendations from | local address that follows the security recommendations from | |||
| [RFC7217]. | [RFC7217]. | |||
| Authors' Addresses | Authors' Addresses | |||
| Behcet Sarikaya | Behcet Sarikaya | |||
| Huawei USA | Plano, TX | |||
| 5340 Legacy Dr. Building 3 | USA | |||
| 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 | |||
| End of changes. 80 change blocks. | ||||
| 322 lines changed or deleted | 322 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/ | ||||