| < draft-ietf-6lo-ap-nd-06.txt | draft-ietf-6lo-ap-nd-07.txt > | |||
|---|---|---|---|---|
| 6lo P. Thubert, Ed. | 6lo P. Thubert, Ed. | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Updates: 6775 (if approved) B. Sarikaya | Updates: 6775 (if approved) B. Sarikaya | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: August 27, 2018 M. Sethi | Expires: March 7, 2019 M. Sethi | |||
| Ericsson | Ericsson | |||
| February 23, 2018 | September 3, 2018 | |||
| 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-06 | draft-ietf-6lo-ap-nd-07 | |||
| Abstract | Abstract | |||
| This document defines an extension to 6LoWPAN Neighbor Discovery (ND) | This document defines an extension to 6LoWPAN Neighbor Discovery (ND) | |||
| [RFC6775][I-D.ietf-6lo-rfc6775-update] called Address Protected ND | [RFC6775] [I-D.ietf-6lo-rfc6775-update] called Address Protected ND | |||
| (AP-ND); AP-ND protects the owner of an address against address theft | (AP-ND); AP-ND protects the owner of an address against address theft | |||
| and impersonation inside a low-power and lossy network (LLN). Nodes | and impersonation inside a low-power and lossy network (LLN). Nodes | |||
| supporting this extension compute a cryptographic Owner Unique | supporting this extension compute a cryptographic Owner Unique | |||
| Interface ID and associate it with one or more of their Registered | Interface ID and associate it with one or more of their Registered | |||
| Addresses. The Cryptographic ID uniquely identifies the owner of the | Addresses. The Cryptographic ID identifies the owner of the | |||
| Registered Address and can be used for proof-of-ownership. It is | Registered Address and can be used for proof-of-ownership. It is | |||
| used in 6LoWPAN ND in place of the EUI-64-based unique ID that is | used in 6LoWPAN ND in place of the EUI-64-based unique ID that is | |||
| associated with the registration. Once an address is registered with | associated with the registration. Once an address is registered with | |||
| a Cryptographic ID, only the owner of that ID can modify the anchor | a Cryptographic ID, only the owner of that ID can modify the | |||
| state information of the Registered Address, and Source Address | registration information of the Registered Address, and Source | |||
| Validation can be enforced. | Address 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on August 27, 2018. | This Internet-Draft will expire on March 7, 2019. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 5 | 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5 | 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.1. Encoding the Public Key . . . . . . . . . . . . . . . . . 5 | 2.3. 6LoWPAN sub-glossary . . . . . . . . . . . . . . . . . . 5 | |||
| 4.2. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 6 | 2.4. Crypto-ID . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.3. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Updating RFC 6775 . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.4. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 8 | 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.5. Nonce Option . . . . . . . . . . . . . . . . . . . . . . 9 | 4.1. Encoding the Public Key . . . . . . . . . . . . . . . . . 7 | |||
| 4.6. NDP Signature Option . . . . . . . . . . . . . . . . . . 9 | 4.2. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.3. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 10 | 4.4. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 9 | |||
| 6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 11 | 4.5. Nonce Option . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.6. NDP Signature Option . . . . . . . . . . . . . . . . . . 10 | ||||
| 5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
| 6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 12 | ||||
| 6.2. Multihop Operation . . . . . . . . . . . . . . . . . . . 13 | 6.2. Multihop Operation . . . . . . . . . . . . . . . . . . . 13 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
| 7.1. Inheriting from RTC 3971 . . . . . . . . . . . . . . . . 15 | 7.1. Inheriting from RFC 3971 . . . . . . . . . . . . . . . . 15 | |||
| 7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 16 | 7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 16 | |||
| 7.3. OUID Collisions . . . . . . . . . . . . . . . . . . . . . 16 | 7.3. ROVR Collisions . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17 | 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 17 | 8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 17 | |||
| 8.2. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 17 | 8.2. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 17 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 18 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 18 | |||
| 10.2. Informative references . . . . . . . . . . . . . . . . . 19 | 10.2. Informative references . . . . . . . . . . . . . . . . . 19 | |||
| Appendix A. Requirements Addressed in this Document . . . . . . 21 | Appendix A. Requirements Addressed in this Document . . . . . . 21 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 1. Introduction | 1. Introduction | |||
| "Neighbor Discovery Optimizations for 6LoWPAN networks" [RFC6775] | "Neighbor Discovery Optimizations for 6LoWPAN networks" [RFC6775] | |||
| (6LoWPAN ND) adapts the classical IPv6 ND protocol [RFC4861][RFC4862] | (6LoWPAN ND) adapts the IPv6 ND (NDv6) protocol [RFC4861][RFC4862] | |||
| (IPv6 ND) for operations over a constrained low-power and lossy | (IPv6 ND) for operations over a constrained low-power and lossy | |||
| network (LLN). In particular, 6LoWPAN ND introduces a unicast host | network (LLN). In particular, 6LoWPAN ND introduces a unicast host | |||
| address registration mechanism that contributes to reduce the use of | address registration mechanism that reduces the use of multicast | |||
| multicast messages that are present in the classical IPv6 ND | messages that are present in the NDv6 protocol. 6LoWPAN ND defines a | |||
| protocol. 6LoWPAN ND defines a new Address Registration Option (ARO) | new Address Registration Option (ARO) that is carried in the unicast | |||
| that is carried in the unicast Neighbor Solicitation (NS) and | Neighbor Solicitation (NS) and Neighbor Advertisement (NA) messages | |||
| Neighbor Advertisement (NA) messages between the 6LoWPAN Node (6LN) | exchanged between a 6LoWPAN Node (6LN) and a 6LoWPAN Router (6LR). | |||
| and the 6LoWPAN Router (6LR). Additionally, it also defines the | It also defines the Duplicate Address Request (DAR) and Duplicate | |||
| Duplicate Address Request (DAR) and Duplicate Address Confirmation | Address Confirmation (DAC) messages between the 6LR and the 6LoWPAN | |||
| (DAC) messages between the 6LR and the 6LoWPAN Border Router (6LBR). | Border Router (6LBR). In LLN networks, the 6LBR is the central | |||
| In LLN networks, the 6LBR is the central repository of all the | repository of all the registered addresses in its domain. | |||
| registered addresses in its domain. | ||||
| The registration mechanism in 6LoWPAN ND [RFC6775] prevents the use | The registration mechanism in 6LoWPAN ND [RFC6775] prevents the use | |||
| of an address if that address is already present in the subnet (first | of an address if that address is already registered in the subnet | |||
| come first serve). In order to validate address ownership, the | (first come first serve). In order to validate address ownership, | |||
| registration mechanism enables the 6LR and 6LBR to validate claims | the registration mechanism enables the 6LR and 6LBR to validate the | |||
| for a registered address with an associated Owner Unique Interface | association between a registered address and a Registration Ownership | |||
| IDentifier (OUID). 6LoWPAN ND specifies that the OUID is derived from | Verifier (ROVR). 6LoWPAN ND specifies that the ROVR is derived from | |||
| the MAC address of the device (using the 64-bit Extended Unique | the MAC address of the device (using the 64-bit Extended Unique | |||
| Identifier EUI-64 address format specified by IEEE), which can be | Identifier EUI-64 address format specified by IEEE), which can be | |||
| spoofed. Therefore, any node connected to the subnet and aware of a | spoofed. Therefore, any node connected to the subnet and aware of a | |||
| registered-address-to-OUID mapping could effectively fake the OUID, | registered-address-to-ROVR mapping could effectively fake the ROVR, | |||
| steal the address and redirect traffic for that address towards a | steal the address and redirect traffic for that address towards a | |||
| different 6LN. The "Update to 6LoWPAN ND" | different 6LN. The "Registration Extensions for 6LoWPAN Neighbor | |||
| [I-D.ietf-6lo-rfc6775-update] defines an Extended ARO (EARO) option | Discovery" [I-D.ietf-6lo-rfc6775-update] defines an Extended ARO | |||
| that allows to transport alternate forms of OUIDs, and is a | (EARO) option that allows to transport alternate forms of ROVRs, and | |||
| prerequisite for this specification. | is a prerequisite for this specification. | |||
| According to this specification, a 6LN generates a cryptographic ID | According to this specification, a 6LN generates a cryptographic ID | |||
| (Crypto-ID) and places it in the OUID field in the registration of | (Crypto-ID) and places it in the ROVR field in the registration of | |||
| one (or more) of its addresses with the 6LR(s) that the 6LN uses as | one (or more) of its addresses with the 6LR(s) that the 6LN uses as | |||
| default router(s). Proof of ownership of the cryptographic ID | default router(s). Proof of ownership of the cryptographic ID | |||
| (Crypto-ID) is passed with the first registration exchange to a new | (Crypto-ID) is passed with the first registration exchange to a new | |||
| 6LR, and enforced at the 6LR. The 6LR validates ownership of the | 6LR, and enforced at the 6LR. The 6LR validates ownership of the | |||
| cryptographic ID before it can create a registration state, or a | cryptographic ID before it can create a registration, or a change the | |||
| change the anchor information, that is the Link-Layer Address and | information, that is the Link-Layer Address and associated | |||
| associated parameters, in an existing registration state. | parameters, in an existing registration state. | |||
| 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 Source Address Validation (SAVI) [RFC7039], which ensures | |||
| [RFC7039], which ensures that only the correct owner uses a | that only the owner uses a registered address in the source address | |||
| registered address in the source address field in IPv6 packets. | field in IPv6 packets. Consequently, a 6LN that sources a packet has | |||
| Consequently, a 6LN that sources a packet has to use a 6LR to which | to use a 6LR to which the source address of the packet is registered | |||
| the source address of the packet is registered to forward the packet. | to forward the packet. The 6LR maintains state information for the | |||
| The 6LR maintains state information for the registered addressed, | registered addressed, including the MAC address, and a link-layer | |||
| including the MAC address, and a link-layer cryptographic key | cryptographic key associated with the 6LN. In SAVI-enforcement mode, | |||
| associated with the 6LN. In SAVI-enforcement mode, the 6LR allows | the 6LR allows only packets from a connected Host if the connected | |||
| only packets from a connected Host if the connected Host owns the | Host owns 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]) specifies | |||
| 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 key material. "Privacy Considerations for | |||
| Considerations for IPv6 Address Generation Mechanisms" [RFC7721] | IPv6 Address Generation Mechanisms" [RFC7721] 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 document specifies that a device may form and register addresses | This document specifies that a device may form and register addresses | |||
| at 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, Multiple | |||
| protect multiple addresses with a single cryptographic material and | addresses with a single ROVR, which only needs to be sent once to a | |||
| to send the proof only once to a given 6LR for multiple addresses and | given 6LR for multiple addresses and registration updates. | |||
| refresher registrations. | ||||
| 2. Terminology | 2. Terminology | |||
| 2.1. BCP 14 | ||||
| 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", "NOT RECOMMENDED", "MAY", and | |||
| document are to be interpreted as described in [RFC2119]. | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | ||||
| capitals, as shown here. | ||||
| Readers are expected to be familiar with all the terms and concepts | 2.2. References | |||
| that are discussed in [RFC3971], [RFC3972], [RFC4861], [RFC4919], | ||||
| [RFC6775], and [I-D.ietf-6lo-backbone-router] which proposes an | ||||
| evolution of [RFC6775] for wider applicability. | ||||
| This document defines Crypto-ID as an identifier of variable size | In this document, readers will encounter terms and concepts that are | |||
| which in most cases is 64 bits long. It is generated using | discussed in the following documents: | |||
| o "SEcure Neighbor Discovery (SEND)" [RFC3971], | ||||
| o "Cryptographically Generated Addresses (CGA)" [RFC3972], | ||||
| o "Neighbor Discovery for IP version 6" [RFC4861], | ||||
| o "IPv6 Stateless Address Autoconfiguration" [RFC4862], | ||||
| o "Problem Statement and Requirements for IPv6 over Low-Power | ||||
| Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606], | ||||
| o "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals" [RFC4919], | ||||
| o "Neighbor Discovery Optimization for Low-power and Lossy Networks" | ||||
| [RFC6775], | ||||
| o "Terms Used in Routing for Low-Power and Lossy Networks (LLNs)" | ||||
| [RFC7102], | ||||
| o "Terminology for Constrained-Node Networks" [RFC7228], and | ||||
| o "Registration Extensions for 6LoWPAN Neighbor Discovery" | ||||
| [I-D.ietf-6lo-rfc6775-update] | ||||
| 2.3. 6LoWPAN sub-glossary | ||||
| This document often uses the following acronyms: | ||||
| 6BBR: 6LoWPAN Backbone Router (proxy for the registration) | ||||
| [I-D.ietf-6lo-backbone-router] | ||||
| 6LBR: 6LoWPAN Border Router | ||||
| 6LN: 6LoWPAN Node | ||||
| 6LR: 6LoWPAN Router (relay to the registration process) | ||||
| CIPO: Crypto-ID Parameters Option | ||||
| (E)ARO: (Extended) Address Registration Option | ||||
| DAD: Duplicate Address Detection | ||||
| LLN: Low-Power and Lossy Network (a typical IoT network) | ||||
| NA: Neighbor Advertisement | ||||
| ND: Neighbor Discovery | ||||
| NDP: Neighbor Discovery Protocol | ||||
| NDPSO: NDP Signature Option | ||||
| NS: Neighbor Solicitation | ||||
| ROVR: Registration Ownership Verifier (pronounced rover) | ||||
| RA: Router Advertisement | ||||
| RS: Router Solicitation | ||||
| RSAO: RSA Signature Option | ||||
| TID: Transaction ID (a sequence counter in the EARO) | ||||
| 2.4. Crypto-ID | ||||
| This document defines a new Crypto-ID as an identifier of variable | ||||
| size which is 64 to 256 bits long. It is generated using | ||||
| cryptographic means explained later in this document Section 4.2. | cryptographic means explained later in this document Section 4.2. | |||
| "Elliptic Curves for Security" [RFC7748] and "Edwards-Curve Digital | "Elliptic Curves for Security" [RFC7748] and "Edwards-Curve Digital | |||
| Signature Algorithm (EdDSA)" [RFC8032] provides information on | Signature Algorithm (EdDSA)" [RFC8032] provides information on | |||
| Elliptic Curve Cryptography (ECC) and a (twisted) Edwards curve, | Elliptic Curve Cryptography (ECC) and a (twisted) Edwards curve, | |||
| Ed25519, which can be used with this specification. "Alternative | Ed25519, which can be used with this specification. "Alternative | |||
| Elliptic Curve Representations" | Elliptic Curve Representations" | |||
| [I-D.struik-lwig-curve-representations] provides additional | [I-D.struik-lwig-curve-representations] provides additional | |||
| information on how to represent Montgomery curves and (twisted) | information on how to represent Montgomery curves and (twisted) | |||
| Edwards curves as curves in short-Weierstrass form and illustrates | Edwards curves as curves in short-Weierstrass form and illustrates | |||
| how this can be used to implement elliptic curve computations using | how this can be used to implement elliptic curve computations using | |||
| existing implementations that already implement, e.g., ECDSA and ECDH | existing implementations that already implement, e.g., ECDSA and ECDH | |||
| using NIST [FIPS-186-4] prime curves. | using NIST [FIPS-186-4] prime curves. | |||
| The document also conforms to the terms and models described in | ||||
| [RFC5889] and uses the vocabulary and the concepts defined in | ||||
| [RFC4291] for the IPv6 Architecture. Finally, common terminology | ||||
| related to Low power And Lossy Networks (LLN) defined in [RFC7102] is | ||||
| also used. | ||||
| 3. Updating RFC 6775 | 3. Updating RFC 6775 | |||
| This specification defines a cryptographic identifier (Crypto-ID) | This specification defines a cryptographic identifier (Crypto-ID) | |||
| that can be used as a replacement to the MAC address in the OUID | that can be used as a replacement to the MAC address in the ROVR | |||
| field of the EARO option; the computation of the Crypto-ID is | field of the EARO option; the computation of the Crypto-ID is | |||
| detailed in Section 4.2. A node in possession of the necessary | detailed in Section 4.2. A node in possession of the necessary | |||
| cryptographic material SHOULD use Crypto-ID by default as OUID in its | cryptographic material SHOULD use Crypto-ID by default as ROVR in its | |||
| registration. Whether a OUID is a Crypto-ID is indicated by a new | registration. Whether a ROVR is a Crypto-ID is indicated by a new | |||
| "C" flag in the NS(EARO) message. | "C" flag in the NS(EARO) message. | |||
| In order to prove its ownership of a Crypto-ID, the registering node | In order to prove its ownership of a Crypto-ID, the registering node | |||
| needs to produce the parameters that where used to build it, as well | needs to supply certain parameters including a nonce and a signature | |||
| as a nonce and a signature that will prove that it has the private | that will prove that the node has the private key corresponding to | |||
| key that corresponds to the public key that was used to build the | the public key used to build the Crypto-ID. This specification adds | |||
| Crypto-ID. This specification adds the capability to carry new | the capability to carry new options in the NS(EARO) and the NA(EARO). | |||
| options in the NS(EARO) and the NBA(EARO). These options are a | The NS(EARO) carries a variation of the CGA Option (Section 4.4), a | |||
| variation of the CGA Option Section 4.4, a Nonce option and a | Nonce option and a variation of the RSA Signature option | |||
| variation of the RSA Signature option Section 4.6 in the NS(EARO) and | (Section 4.6) in the NS(EARO). The NA(EARO) carries a Nonce option. | |||
| a Nonce option in the NA(EARO). | ||||
| 4. New Fields and Options | 4. New Fields and Options | |||
| In order to avoid an inflation of ND option types, this specification | In order to avoid the need for new ND option types, this | |||
| reuses / extends options defined in SEND [RFC3971] and 6LoWPAN ND | specification reuses / extends options defined in SEND [RFC3971] and | |||
| [RFC6775][I-D.ietf-6lo-rfc6775-update]. This applies in particular | 6LoWPAN ND [RFC6775] [I-D.ietf-6lo-rfc6775-update]. This applies in | |||
| to the CGA option and the RSA Signature Option. This specification | particular to the CGA option and the RSA Signature Option. This | |||
| provides aliases for the specific variations of those options as used | specification provides aliases for the specific variations of those | |||
| in AP-ND. The presence of the EARO option in the NS/NA messages | options as used in AP-ND. The presence of the EARO option in the NS/ | |||
| indicates that the options are to be understood as specified in this | NA messages indicates that the crypto options are to be processed as | |||
| document. A router that would receive a NS(EARO) and try to process | specified in this document, not as a SEND message. | |||
| it as a SEND message will find that the signature does not match and | ||||
| drop the packet. | ||||
| 4.1. Encoding the Public Key | 4.1. Encoding the Public Key | |||
| Public Key is the most important parameter in CGA Parameters (sent by | A 6LN provides its public key in an NS message. The public key could | |||
| 6LN in an NS message). ECC Public Key could be in uncompressed form | be in uncompressed form or in compressed form where the first octet | |||
| or in compressed form where the first octet of the OCTET STRING is | of the OCTET STRING is 0x04 and 0x02 or 0x03, respectively. Point | |||
| 0x04 and 0x02 or 0x03, respectively. Point compression can further | compression can further reduce the key size by about 32 octets. | |||
| reduce the key size by about 32 octets. | ||||
| 4.2. New Crypto-ID | 4.2. New Crypto-ID | |||
| Elliptic Curve Cryptography (ECC) is used to calculate the Crypto-ID. | ||||
| Each 6LN using a Crypto-ID for registration MUST have a public/ | Each 6LN using a Crypto-ID for registration MUST have a public/ | |||
| private key pair. The digital signature is constructed by using the | private key pair. | |||
| 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]. | ||||
| NIST P-256 [FIPS186-4] that MUST be supported by all implementations. | ||||
| To support cryptographic algorithm agility [RFC7696], Edwards-Curve | ||||
| Digital Signature Algorithm (EdDSA) curve Ed25519ph (pre-hashing) | ||||
| [RFC8032] MAY be supported as an alternate. | ||||
| The Crypto-ID is computed as follows: | The Crypto-ID is computed as follows: | |||
| 1. An 8-bits modifier is selected, for instance, but not | 1. An 8-bit modifier is selected, enabling a device to form multiple | |||
| necessarily, randomly; the modifier enables a device to form | Crypto-IDs with a single key pair. This is useful for privacy | |||
| multiple Crypto-IDs with a single key pair. This may be useful | reasons in order to avoid the correlation of addresses based on | |||
| for privacy reasons in order to avoid the correlation of | their Crypto-ID; | |||
| addresses based on their Crypto-ID; | ||||
| 2. the modifier value and the DER-encoded public key (Section 4.1) | 2. the modifier value and the DER-encoded public key (Section 4.1) | |||
| are concatenated from left to right; | are concatenated from left to right; | |||
| 3. Digital signature (SHA-256 then either NIST P-256 or EdDSA) is | 3. The digital signature is constructed by using the 6LN's private | |||
| executed on the concatenation | key over its EUI-64 (MAC) address. The signature value is | |||
| computed using the ECDSA signature algorithm and the hash | ||||
| 4. the leftmost bits of the resulting signature are used as the | function used is SHA-256 [RFC6234]. | |||
| Crypto-ID; | ||||
| With this specification, only 64 bits are retained, but it could be | 4. the leftmost bits of the resulting hash are used as the Crypto- | |||
| expanded to more bits in the future by increasing the size of the | ID, up to the size of the ROVR field. | |||
| OUID field. | ||||
| 4.3. Updated EARO | 4.3. Updated EARO | |||
| This specification updates the EARO option as follows: | 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 | Opaque | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Reserved|C|R|T| TID | Registration Lifetime | | |Rsvd |C| I |R|T| TID | Registration Lifetime | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| + Owner Unique ID (EUI-64 or Crypto-ID) + | ... Registration Ownership Verifier (ROVR) ... | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: Enhanced Address Registration Option | Figure 1: Enhanced Address Registration Option | |||
| Type: 33 | Type: 33 | |||
| Length: 8-bit unsigned integer. The length of the option | Length: 8-bit unsigned integer. The length of the option | |||
| (including the type and length fields) in units of 8 | (including the type and length fields) in units of 8 | |||
| bytes. | bytes. | |||
| Status: 8-bit unsigned integer. Indicates the status of a | Status: 8-bit unsigned integer. Indicates the status of a | |||
| registration in the NA response. MUST be set to 0 in | registration in the NA response. MUST be set to 0 in | |||
| NS messages. This specification uses values | NS messages. | |||
| 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. | ||||
| Reserved: This field is unused. It MUST be initialized to zero | Opaque: Defined in [I-D.ietf-6lo-rfc6775-update]. | |||
| by the sender and MUST be ignored by the receiver. | ||||
| Rsvd (Reserved): This field is unused. It MUST be initialized to | ||||
| zero by the sender and MUST be ignored by the | ||||
| receiver. | ||||
| C: This "C" flag is set to indicate that the Owner | C: This "C" flag is set to indicate that the Owner | |||
| Unique ID field contains a Crypto-ID and that the 6LN | Unique ID field contains a Crypto-ID and that the 6LN | |||
| MAY be challenged for ownership as specified in this | MAY be challenged for ownership as specified in this | |||
| document. | document. | |||
| I: Defined in [I-D.ietf-6lo-rfc6775-update]. | ||||
| R: Defined in [I-D.ietf-6lo-rfc6775-update]. | R: Defined in [I-D.ietf-6lo-rfc6775-update]. | |||
| T and TID: Defined in [I-D.ietf-6lo-rfc6775-update]. | T and TID: Defined in [I-D.ietf-6lo-rfc6775-update]. | |||
| Owner Unique ID: When the "C" flag is set, this field contains a | Registration Ownership Verifier (ROVR): When the "C" flag is set, | |||
| Crypto-ID. | this field contains a Crypto-ID. | |||
| This specification uses Status values "Validation Requested" and | ||||
| "Validation Failed", which are defined in 6LoWPAN ND | ||||
| [I-D.ietf-6lo-rfc6775-update]. No other new Status values is | ||||
| defined. | ||||
| 4.4. Crypto-ID Parameters Option | 4.4. Crypto-ID Parameters Option | |||
| This specification defines the Crypto-ID Parameters Option (CIPO), as | This specification defines the Crypto-ID Parameters Option (CIPO), as | |||
| a variation of the CGA Option that carries the parameters used to | a variation of the CGA Option that carries the parameters used to | |||
| form a Crypto-ID. In order to provide cryptographic agility, AP-ND | form a Crypto-ID. In order to provide cryptographic agility | |||
| supports two possible signature algorithms, indicated by a Crypto- | [RFC7696], AP-ND supports two possible signature algorithms, | |||
| Type field. A value of 0 indicates that NIST P-256 is used for the | indicated by a Crypto-Type field. Elliptic Curve Cryptography (ECC) | |||
| signature operation and SHA-256 as the hash algorithm. NIST P-256 | is used to calculate the Crypto-ID. NIST P-256 [FIPS186-4] MUST be | |||
| MUST be supported by all implement A value of 1 indicates that | supported by all implementations. The Edwards-Curve Digital | |||
| Ed25519ph is used for the signature operation and SHA-256 as the hash | Signature Algorithm (EdDSA) curve Ed25519ph (pre-hashing) [RFC8032] | |||
| algorithm. | MAY be supported as an alternate. | |||
| 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 | Reserved | | | Type | Length | Pad Length | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Crypto-Type | Modifier | Reserved | | | Crypto-Type | Modifier | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | | | | | | |||
| | | | | | | |||
| skipping to change at page 9, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| Length: 8-bit unsigned integer. The length of the option in | Length: 8-bit unsigned integer. The length of the option in | |||
| units of 8 octets. | units of 8 octets. | |||
| Modifier: 8-bit unsigned integer. | Modifier: 8-bit unsigned integer. | |||
| Pad Length: 8-bit unsigned integer. The length of the Padding | Pad Length: 8-bit unsigned integer. The length of the Padding | |||
| field. | field. | |||
| Crypto-Type: The type of cryptographic algorithm used in | Crypto-Type: The type of cryptographic algorithm used in | |||
| calculation Crypto-ID. Default value of all zeros | calculation Crypto-ID. A value of 0 indicates NIST | |||
| indicate NIST P-256. A value of 1 is assigned for | P-256, with SHA-256 as the hash algorithm. A value | |||
| Ed25519ph. New values may be defined later. | of 1 is assigned for Ed25519ph, with SHA-256 as the | |||
| hash algorithm. | ||||
| Public Key: Public Key of 6LN. | Public Key: DER-Encoded Public Key. | |||
| Padding: A variable-length field making the option length a | Padding: A variable-length field making the option length a | |||
| multiple of 8, containing as many octets as specified | multiple of 8, containing as many octets as specified | |||
| in the Pad Length field. | in the Pad Length field. | |||
| 4.5. Nonce Option | 4.5. Nonce Option | |||
| This document reuses the Nonce Option defined in section 5.3.2. of | This document reuses the Nonce Option defined in section 5.3.2. of | |||
| SEND [RFC3971] without a change. | SEND [RFC3971] without a change. | |||
| 4.6. NDP Signature Option | 4.6. NDP Signature Option | |||
| This document reuses the RSA Signature Option (RSAO) defined in | This document reuses the RSA Signature Option (RSAO) defined in | |||
| section 5.2. of SEND [RFC3971]. Admittedly, the name is ill-chosen | section 5.2. of SEND [RFC3971]. Admittedly, the name is ill-chosen | |||
| since the option is extended for non-RSA Signatures and this | since the option is extended for non-RSA Signatures and this | |||
| specification defines an alias to avoid the confusion. | specification defines an alias to avoid the confusion. | |||
| The description of the operation on the option detailed in section | The description of the operation on the option detailed in section | |||
| skipping to change at page 9, line 46 ¶ | skipping to change at page 10, line 47 ¶ | |||
| signature indicated in the Crypto-Type field of the CIPO option | signature indicated in the Crypto-Type field of the CIPO option | |||
| using the private key associated with the public key in the CIPO. | using the private key associated with the public key in the CIPO. | |||
| o The alias NDP Signature Option (NDPSO) can be used to refer to the | o The alias NDP Signature Option (NDPSO) can be used to refer to the | |||
| RSAO when used as described in this specification. | RSAO when used as described in this specification. | |||
| 5. Protocol Scope | 5. 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]. A 6LBR has sufficient | |||
| capability to satisfy the needs of DAD. | ||||
| The 6LBR maintains a registration state for all devices in the | The 6LBR maintains registration state for all devices in its attached | |||
| attached LLN, and, in conjunction with the first-hop router (the | LLN. Together with the first-hop router (the 6LR), the 6LBR assures | |||
| 6LR), is in a position to validate uniqueness and grant ownership of | uniqueness and grants ownership of an IPv6 address before it can be | |||
| an IPv6 address before it can be used in the LLN. This is a | used in the LLN. This is in contrast to a traditional network that | |||
| fundamental difference with a classical network that relies on IPv6 | relies on IPv6 address auto-configuration [RFC4862], where there is | |||
| address auto-configuration [RFC4862], where there is no guarantee of | no guarantee of ownership from the network, and each IPv6 Neighbor | |||
| ownership from the network, and any IPv6 Neighbor Discovery packet | Discovery packet must be individually secured [RFC3971]. | |||
| must be individually secured [RFC3971]. | ||||
| ---+-------- ............ | ---+-------- ............ | |||
| | External Network | | External Network | |||
| | | | | |||
| +-----+ | +-----+ | |||
| | | 6LBR | | | 6LBR | |||
| +-----+ | +-----+ | |||
| o o o | o o o | |||
| o o o o | o o o o | |||
| o o LLN o o o | o o LLN o o o | |||
| o o o (6LR) | o o o (6LR) | |||
| o (6LN) | o (6LN) | |||
| Figure 3: Basic Configuration | Figure 3: Basic Configuration | |||
| In a mesh network, the 6LR is directly connected to the host device. | In a mesh network, the 6LR is directly connected to the host device. | |||
| This specification expects that the peer-wise layer-2 security is | This specification mandates 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 mandates 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. | |||
| 6. Protocol Flows | 6. Protocol Flows | |||
| The 6LR/6LBR ensures first-come/first-serve by storing the EARO | The 6LR/6LBR ensures first-come/first-serve by storing the EARO | |||
| information including the Crypto-ID correlated to the node being | information including the Crypto-ID associated to the node being | |||
| registered. The node is free to claim any address it likes as long | registered. The node can claim any address as long as it is the | |||
| as it is the first to make such a claim. After a successful | first to make such a claim. After a successful registration, the | |||
| registration, the node becomes the owner of the registered address | node becomes the owner of the registered address and the address is | |||
| and the address is bound to the Crypto-ID in the 6LR/6LBR registry. | bound to the Crypto-ID in the 6LR/6LBR registry. | |||
| This specification enables to verify the ownership of the binding at | This specification enables the 6LR to verify the ownership of the | |||
| any time assuming that the "C" flag is set. If it is not set, then | binding at any time assuming that the "C" flag is set. The | |||
| the verification methods presented in this specification cannot be | verification prevents other nodes from stealing the address and | |||
| applied. The verification prevents other nodes from stealing the | trying to attract traffic for that address or use it as their source | |||
| address and trying to attract traffic for that address or use it as | address. | |||
| their source address. | ||||
| A node may use multiple IPv6 addresses at the same time. The node | A node may use multiple IPv6 addresses at the same time. The node | |||
| may use a same Crypto-ID, or multiple crypto-IDs derived from a same | may use a same Crypto-ID, or multiple crypto-IDs derived from a same | |||
| key pair, to protect multiple IPv6 addresses. The separation of the | key pair, to protect multiple IPv6 addresses. The separation of the | |||
| address and the cryptographic material avoids the constrained device | address and the cryptographic material avoids the constrained device | |||
| to compute multiple keys for multiple addresses. The registration | to compute multiple keys for multiple addresses. The registration | |||
| process allows the node to bind all of its addresses to the same | process allows the node to use the same Crypto-ID for all of its | |||
| Crypto-ID. | addresses. | |||
| 6.1. First Exchange with a 6LR | 6.1. First Exchange with a 6LR | |||
| A 6LN registers to a 6LR that is one hop away from it with the "C" | A 6LN registers to a 6LR that is one hop away from it with the "C" | |||
| flag set in the EARO, indicating that the Owner Unique ID field | flag set in the EARO, indicating that the ROVR field contains a | |||
| contains a Crypto-ID. The on-link (local) protocol interactions are | Crypto-ID. The on-link (local) protocol interactions are shown in | |||
| shown in Figure 4 If the 6LR does not have a state with the 6LN that | Figure 4 If the 6LR does not have a state with the 6LN that is | |||
| is consistent with the NS(EARO), then it replies with a challenge NA | consistent with the NS(EARO), then it replies with a challenge NA | |||
| (EARO, status=Validation Requested) that contains a Nonce Option. | (EARO, status=Validation Requested) that contains a Nonce Option. | |||
| The Nonce option MUST contain a Nonce value that was never used with | The Nonce option MUST contain a Nonce value that was never used with | |||
| this device. | this device. | |||
| The 6LN replies to the challenge with a proof-of-ownership NS(EARO) | The 6LN replies to the challenge with an NS(EARO) that includes the | |||
| that includes the echoed Nonce option, the CIPO with all the | echoed Nonce option, the CIPO Section 4.4, and the NDPSO with the | |||
| parameters that where used to build EARO with a Crypto-ID, and as the | signature. The information associated to a crypto-ID stored by the | |||
| last option the NDPSO with the signature. The information associated | 6LR on the first NS exchange where it appears. The 6LR SHOULD store | |||
| to a crypto-ID is passed to and stored by the 6LR on the first NS | the CIPO parameters associated with the crypto-ID so it can be used | |||
| exchange where it appears. The 6LR SHOULD store the CIPO information | for more than one address. | |||
| associated with the crypto-ID so it can be used for more than one | ||||
| address. | ||||
| 6LN 6LR | 6LN 6LR | |||
| | | | | | | |||
| |<------------------------- RA -------------------------| | |<------------------------- RA -------------------------| | |||
| | | ^ | | | ^ | |||
| |---------------- NS with EARO (Crypto-ID) ------------>| | | |---------------- NS with EARO (Crypto-ID) ------------>| | | |||
| | | option | | | option | |||
| |<- NA with EARO (status=Validation Requested), Nonce --| | | |<- NA with EARO (status=Validation Requested), Nonce --| | | |||
| | | v | | | v | |||
| |-------- NS with EARO, CIPO, Nonce and NDPSO --------->| | |-------- NS with EARO, CIPO, Nonce and NDPSO --------->| | |||
| skipping to change at page 12, line 34 ¶ | skipping to change at page 13, line 7 ¶ | |||
| | | | | | | |||
| |--------------- NS with EARO (Crypto-ID) ------------->| | |--------------- NS with EARO (Crypto-ID) ------------->| | |||
| | | | | | | |||
| |<------------------- NA with EARO ---------------------| | |<------------------- NA with EARO ---------------------| | |||
| | | | | | | |||
| Figure 4: On-link Protocol Operation | Figure 4: On-link Protocol Operation | |||
| The steps for the registration to the 6LR are as follows: | The steps for the registration to the 6LR are as follows: | |||
| o Upon the first exchange with a 6LR, a 6LN may be challenged and | o Upon the first exchange with a 6LR, a 6LN may be challenged to | |||
| have to produce the proof of ownership of the Crypto-ID. However, | prove ownership of the Crypto-ID. The proof is not needed again | |||
| it is not expected that the proof is needed again in the periodic | in later registrations for that address, or when registering other | |||
| refresher registrations for that address, or when registering | addresses with the same ROVR. When a 6LR receives a NS(EARO) | |||
| other addresses with the same OUID. When a 6LR receives a | registration with a new Crypto-ID as a ROVR, it SHOULD challenge | |||
| NS(EARO) registration with a new Crypto-ID as a OUID, it SHOULD | by responding with a NA(EARO) with a status of "Validation | |||
| challenge by responding with a NA(EARO) with a status of | Requested". This process of validation MAY be skipped in networks | |||
| "Validation Requested". This process of validation MAY be skipped | where there is no mobility. | |||
| in networks where there is no mobility. | ||||
| o The challenge MUST also be triggered in the case of a registration | o The challenge is triggered when the registration for a Source | |||
| for which the Source Link-Layer Address is not consistent with a | Link-Layer Address is not verifiable either at the 6LR or the | |||
| state that already exists either at the 6LR or the 6LBR. In the | 6LBR. In the latter case, the 6LBR returns a status of | |||
| latter case, the 6LBR returns a status of "Validation Requested" | "Validation Requested" in the DAR/DAC exchange, which is echoed by | |||
| in the DAR/DAC exchange, which is echoed by the 6LR in the NA | the 6LR in the NA (EARO) back to the registering node. The | |||
| (EARO) back to the registering node. This flow should not alter a | challenge MUST NOT alter a valid registration in the 6LR or the | |||
| preexisting state in the 6LR or the 6LBR. | 6LBR. | |||
| o Upon receiving a NA(EARO) with a status of "Validation Requested", | o Upon receiving a NA(EARO) with a status of "Validation Requested", | |||
| the registering node SHOULD retry its registration with a Crypto- | the registering node SHOULD retry its registration with a Crypto- | |||
| ID Parameters Option (CIPO) Section 4.4 that contains all the | ID Parameters Option (CIPO) (Section 4.4) that contains all the | |||
| necessary material for building the Crypto-ID, the Nonce and the | necessary material for building the Crypto-ID, the Nonce and the | |||
| NDP signature Section 4.6 options that prove its ownership of the | NDP signature (Section 4.6) options that prove its ownership of | |||
| Crypto-ID. | the Crypto-ID. | |||
| o In order to validate the ownership, the 6LR performs the same | o In order to validate the ownership, the 6LR performs the same | |||
| steps as the 6LN and rebuilds the Crypto-ID based on the | steps as the 6LN and rebuilds the Crypto-ID based on the | |||
| parameters in the CIPO. If the result is different then the | parameters in the CIPO. If the result is different then the | |||
| validation fails. Else, the 6LR checks the signature in the NDPSO | validation fails. Else, the 6LR checks the signature in the NDPSO | |||
| using the public key in the CIPO. If it is correct then the | using the public key in the CIPO. If it is correct then the | |||
| validation passes, else it fails. | validation passes, else it fails. | |||
| o If the 6LR fails to validate the signed NS(EARO), it responds with | o If the 6LR fails to validate the signed NS(EARO), it responds with | |||
| a status of "Validation Failed". After receiving a NA(EARO) with | a status of "Validation Failed". After receiving a NA(EARO) with | |||
| a status of "Validation Failed", the registering node SHOULD try | a status of "Validation Failed", the registering node SHOULD try | |||
| an alternate Signature Algorithm and Crypto-ID. In any case, it | an alternate Crypto-ID. The registering node MUST NOT use the | |||
| MUST NOT use this Crypto-ID for registering with that 6LR again. | same Crypto-ID for subsequent registration attempts. | |||
| 6.2. Multihop Operation | 6.2. Multihop Operation | |||
| 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 6.2. If a chain of trust is present | to 6LBR as described in this section. If the 6LR and the 6LBR | |||
| between the 6LR and the 6LBR, then there is no need to propagate the | maintain a security association, then there is no need to propagate | |||
| proof of ownership to the 6LBR. All the 6LBR needs to know is that | the proof of ownership to the 6LBR. | |||
| this particular OUID is randomly generated, so as to enforce that any | ||||
| update via a different 6LR is also random. | ||||
| 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 a neighboring 6LR with an NS | |||
| that carries an Address Registration Option (EARO) [RFC6775]. The | message that carries an Address Registration Option (EARO) [RFC6775]. | |||
| 6LR validates the address with the central 6LBR using a DAR/DAC | The 6LR validates the address with an 6LBR using a DAR/DAC exchange, | |||
| exchange, and the 6LR confirms (or denies) the address ownership with | and the 6LR confirms (or denies) the address ownership with an NA | |||
| an NA message that also carries an Address Registration Option. | message that also carries an Address Registration Option. | |||
| Figure 5 illustrates a registration flow all the way to a 6LowPAN | Figure 5 illustrates a registration flow all the way to a 6LowPAN | |||
| Backbone Router (6BBR). | Backbone Router (6BBR). | |||
| 6LN 6LR 6LBR 6BBR | 6LN 6LR 6LBR 6BBR | |||
| | | | | | | | | | | |||
| | NS(EARO) | | | | | NS(EARO) | | | | |||
| |--------------->| | | | |--------------->| | | | |||
| | | Extended DAR | | | | | Extended DAR | | | |||
| | |-------------->| | | | |-------------->| | | |||
| skipping to change at page 14, line 37 ¶ | skipping to change at page 14, line 44 ¶ | |||
| Figure 5: (Re-)Registration Flow | Figure 5: (Re-)Registration Flow | |||
| In a multihop 6LoWPAN, a 6LBR sends RAs with prefixes downstream and | In a multihop 6LoWPAN, a 6LBR sends RAs with prefixes downstream and | |||
| the 6LR receives and relays them to the nodes. 6LR and 6LBR | the 6LR receives and relays them to the nodes. 6LR and 6LBR | |||
| communicate using ICMPv6 Duplicate Address Request (DAR) and | 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, but have different ICMPv6 type | the same message format as NS and NA, but have different ICMPv6 type | |||
| values. | values. | |||
| In AP-ND we extend DAR/DAC messages to carry cryptographically | In AP-ND we extend DAR/DAC messages to carry cryptographically | |||
| generated OUID. In a multihop 6LoWPAN, the node exchanges the | generated ROVR. In a multihop 6LoWPAN, the node exchanges the | |||
| messages shown in Figure 5. The 6LBR must identify who owns an | messages shown in Figure 5. The 6LBR must identify who owns an | |||
| address (EUI-64) to defend it, if there is an attacker on another | address (EUI-64) to defend it, if there is an attacker on another | |||
| 6LR. | 6LR. | |||
| Occasionally, a 6LR might miss the node's OUID (that it received in | 7. Security Considerations | |||
| ARO). 6LR should be able to ask for it again. This is done by | ||||
| restarting the exchanges shown in Figure 4. The result enables 6LR | ||||
| to refresh the information that was lost. The 6LR MUST send DAR | ||||
| message with ARO to 6LBR. The 6LBR replies with a DAC message with | ||||
| the information copied from the DAR, and the Status field is set to | ||||
| zero. With this exchange, the 6LBR can (re)validate and store the | ||||
| information to make sure that the 6LR is not a fake. | ||||
| In some cases, the 6LBR may use a DAC message to solicit a Crypto-ID | 7.1. Inheriting from RFC 3971 | |||
| from a 6LR and also requests 6LR to verify the EUI-64 6LR 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-64. Note | ||||
| that the detection in this case can only be done by 6LBR not by 6LR. | ||||
| 7. Security Considerations | Observations regarding the following threats to the local network in | |||
| [RFC3971] also apply to this specification. | ||||
| 7.1. Inheriting from RTC 3971 | Neighbor Solicitation/Advertisement Spoofing | |||
| The observations regarding the threats to the local network in | Threats in section 9.2.1 of RFC3971 apply. AP-ND counters the | |||
| [RFC3971] also apply to this specification. Considering RFC3971 | threats on NS(EARO) messages by requiring that the NDP Signature | |||
| security section subsection by subsection: | and CIPO options be present in these solicitations. | |||
| Neighbor Solicitation/Advertisement Spoofing Threats in section | Neighbor Unreachability Detection Failure | |||
| 9.2.1 of RFC3971 apply. AP-ND counters the threats on NS(EARO) | ||||
| messages by requiring that the NDP Signature and CIPO options be | ||||
| present in these solicitations. | ||||
| Neighbor Unreachability Detection Failure With RFC6775, a NUD can | With RFC6775, a NUD can still be used by the endpoint to assess | |||
| still be used by the endpoint to assess the liveliness of a | the liveness of a device. The NUD request may be protected by | |||
| device. The NUD request may be protected by SEND in which case | SEND in which case the provision in section 9.2 of RFC 3972 | |||
| the provision in section 92.2. of RFC 3972 applies. The response | applies. The response to the NUD may be proxied by a backbone | |||
| to the NUD may be proxied by a backbone router only if it has a | router only if it has a fresh registration state for it. For a | |||
| fresh registration state for it. The registration being protected | registration being protected by this specification, the proxied | |||
| by this specification, the proxied NUD response provides a | NUD response provides truthful information on the original owner | |||
| truthful information on the original owner of the address but it | of the address but it cannot be proven using SEND. If the NUD | |||
| cannot be proven using SEND. If the NUD response is not proxied, | response is not proxied, the 6LR will pass the lookup to the end | |||
| the 6LR will pass the lookup to the end device which will respond | device which will respond with a traditional NA. If the 6LR does | |||
| with a traditional NA. If the 6LR does not have a cache entry | not have a registration associated for the device, it can issue a | |||
| associated for the device, it can issue a NA with EARO | NA with EARO (status=Validation Requested) upon the NA from the | |||
| (status=Validation Requested) upon the NA from the device, which | device, which will trigger a NS that will recreate and revalidate | |||
| will trigger a NS that will recreate and revalidate the ND cache | the ND registration. | |||
| entry. | ||||
| Duplicate Address Detection DoS Attack Inside the LLN, Duplicate | Duplicate Address Detection DoS Attack | |||
| Addresses are sorted out using the OUID, which differentiates it | ||||
| from a movement. DAD coming from the backbone are not forwarded | ||||
| over the LLN so the LLN is protected by the backbone routers. | ||||
| Over the backbone, the EARO option is present in NS/NA messages. | ||||
| This protects against misinterpreting a movement for a | ||||
| duplication, and enables to decide which backbone router has the | ||||
| freshest registration and thus most possibly the device attached | ||||
| to it. But this specification does not guarantee that the | ||||
| backbone router claiming an address over the backbone is not an | ||||
| attacker. | ||||
| Router Solicitation and Advertisement Attacks This specification | Inside the LLN, Duplicate Addresses are sorted out using the ROVR, | |||
| does not change the protection of RS and RA which can still be | which differentiates it from a movement. DAD coming from the | |||
| protected by SEND. | backbone are not forwarded over the LLN, which provides some | |||
| protection against DoS attacks inside the resource-constrained | ||||
| part of the network. Over the backbone, the EARO option is | ||||
| present in NS/NA messages. This protects against misinterpreting | ||||
| a movement for a duplication, and enables the backbone routers to | ||||
| determine which one has the freshest registration and is thus the | ||||
| best candidate to validate the registration for the device | ||||
| attached to it. But this specification does not guarantee that | ||||
| the backbone router claiming an address over the backbone is not | ||||
| an attacker. | ||||
| Replay Attacks A Nonce given by the 6LR in the NA with EARO | Router Solicitation and Advertisement Attacks | |||
| (status=Validation Requested) and echoed in the signed NS | This specification does not change the protection of RS and RA | |||
| guarantees against replay attacks of the NS(EARO). The NA(EARO) | which can still be protected by SEND. | |||
| is not protected and can be forged by a rogue node that is not the | ||||
| 6LR in order to force the 6LN to rebuild a NS(EARO) with the proof | ||||
| of ownership, but that rogue node must have access to the L2 radio | ||||
| network next to the 6LN to perform the attack. | ||||
| Neighbor Discovery DoS Attack A rogue node that managed to access | Replay Attacks | |||
| the L2 network may form many addresses and register them using AP- | ||||
| ND. The perimeter of the attack os all the 6LRs in range of the | A Nonce given by the 6LR in the NA with EARO (status=Validation | |||
| attacker. The 6LR must protect itself against overflows and | Requested) and echoed in the signed NS guarantees against replay | |||
| reject excessive registration with a status 2 "Neighbor Cache | attacks of the NS(EARO). The NA(EARO) is not protected and can be | |||
| Full". This effectively blocks another (honest) 6LN from | forged by a rogue node that is not the 6LR in order to force the | |||
| registering to the same 6LR, but the 6LN may register to other | 6LN to rebuild a NS(EARO) with the proof of ownership, but that | |||
| 6LRs that are in its range but not in that of the rogue. | rogue node must have access to the L2 radio network next to the | |||
| 6LN to perform the attack. | ||||
| Neighbor Discovery DoS Attack | ||||
| A rogue node that managed to access the L2 network may form many | ||||
| addresses and register them using AP-ND. The perimeter of the | ||||
| attack is all the 6LRs in range of the attacker. The 6LR must | ||||
| protect itself against overflows and reject excessive registration | ||||
| with a status 2 "Neighbor Cache Full". This effectively blocks | ||||
| another (honest) 6LN from registering to the same 6LR, but the 6LN | ||||
| may register to other 6LRs that are in its range but not in that | ||||
| of the rogue. | ||||
| 7.2. Related to 6LoWPAN ND | 7.2. Related to 6LoWPAN ND | |||
| The threats discussed in 6LoWPAN ND [RFC6775] and its update | The threats discussed in 6LoWPAN ND [RFC6775] and its update | |||
| [I-D.ietf-6lo-rfc6775-update] also apply here. Compared with SeND, | [I-D.ietf-6lo-rfc6775-update] also apply here. Compared with SeND, | |||
| this specification saves about 1Kbyte in every NS/NA message. Also, | this specification saves about 1Kbyte in every NS/NA message. Also, | |||
| this specification separates the cryptographic identifier from the | this specification separates the cryptographic identifier from the | |||
| registered IPv6 address so that a node can have more than one IPv6 | registered IPv6 address so that a node can have more than one IPv6 | |||
| address protected by the same cryptographic identifier. SeND forces | address protected by the same cryptographic identifier. SeND forces | |||
| the IPv6 address to be cryptographic since it integrates the CGA as | the IPv6 address to be cryptographic since it integrates the CGA as | |||
| the IID in the IPv6 address. This specification frees the device to | the IID in the IPv6 address. This specification frees the device to | |||
| form its addresses in any fashion, so as to enable the classical | form its addresses in any fashion, thereby enabling not only 6LoWPAN | |||
| 6LoWPAN compression which derives IPv6 addresses from Layer-2 | compression which derives IPv6 addresses from Layer-2 addresses but | |||
| addresses, as well as privacy addresses. The threats discussed in | also privacy addresses. | |||
| Section 9.2 of [RFC3971] are countered by the protocol described in | ||||
| this document as well. | ||||
| 7.3. OUID Collisions | 7.3. ROVR Collisions | |||
| Collisions of Owner Unique Interface IDentifier (OUID) (which is the | A collision of Registration Ownership Verifiers (ROVR) (i.e., the | |||
| Crypto-ID in this specification) is a possibility that needs to be | Crypto-ID in this specification) is possible, but it is a rare event. | |||
| considered. The formula for calculating the probability of a | The formula for calculating the probability of a collision is 1 - | |||
| collision is 1 - e^{-k^2/(2n)} where n is the maximum population size | e^{-k^2/(2n)} where n is the maximum population size (2^64 here, | |||
| (2^64 here, 1.84E19) and K is the actual population (number of | 1.84E19) and K is the actual population (number of nodes). If the | |||
| nodes). If the Crypto-ID is 64-bit long, then the chance of finding | Crypto-ID is 64-bits, the chance of a collision is 0.01% when the | |||
| a collision is 0.01% when the network contains 66 million nodes. It | network contains 66 million nodes. Moreover, the collision is only | |||
| is important to note that the collision is only relevant when this | relevant when this happens within one stub network (6LBR). In the | |||
| happens within one stub network (6LBR). A collision of Crypto-ID is | case of such a collision, an attacker may be able to claim the | |||
| a rare event. In the case of a collision, an attacker may be able to | registered address of an another legitimate node. However for this | |||
| claim the registered address of an another legitimate node. However | to happen, the attacker would also need to know the address which was | |||
| for this to happen, the attacker would also need to know the address | registered by the legitimate node. This registered address is never | |||
| which was registered by the legitimate node. This registered address | broadcasted on the network and therefore providing an additional | |||
| is however never broadcasted on the network and therefore it provides | 64-bits that an attacker must correctly guess. To prevent address | |||
| an additional entropy of 64-bits that an attacker must correctly | disclosure, it is RECOMMENDED that nodes derive the address being | |||
| guess. To prevent such a scenario, it is RECOMMENDED that nodes | registered independently of the ROVR. | |||
| derive the address being registered independently of the OUID. | ||||
| 8. IANA considerations | 8. IANA considerations | |||
| 8.1. CGA Message Type | 8.1. CGA Message Type | |||
| This document defines a new 128-bit value under the CGA Message Type | This document defines a new 128-bit value under the CGA Message Type | |||
| [RFC3972] namespace, 0x8701 55c8 0cca dd32 6ab7 e415 f148 84d0. | [RFC3972] namespace, 0x8701 55c8 0cca dd32 6ab7 e415 f148 84d0. | |||
| 8.2. Crypto-Type Subregistry | 8.2. Crypto-Type Subregistry | |||
| skipping to change at page 18, line 17 ¶ | skipping to change at page 18, line 17 ¶ | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [FIPS-186-4] | [FIPS-186-4] | |||
| FIPS 186-4, "Digital Signature Standard (DSS), Federal | FIPS 186-4, "Digital Signature Standard (DSS), Federal | |||
| Information Processing Standards Publication 186-4", US | Information Processing Standards Publication 186-4", US | |||
| Department of Commerce/National Institute of Standards and | Department of Commerce/National Institute of Standards and | |||
| Technology Gaithersburg, MD, July 2013. | Technology Gaithersburg, MD, July 2013. | |||
| [I-D.ietf-6lo-rfc6775-update] | [I-D.ietf-6lo-rfc6775-update] | |||
| Thubert, P., Nordmark, E., Chakrabarti, S., and C. | Thubert, P., Nordmark, E., Chakrabarti, S., and C. | |||
| Perkins, "An Update to 6LoWPAN ND", draft-ietf-6lo- | Perkins, "Registration Extensions for 6LoWPAN Neighbor | |||
| rfc6775-update-13 (work in progress), February 2018. | Discovery", draft-ietf-6lo-rfc6775-update-21 (work in | |||
| progress), June 2018. | ||||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3279] Bassham, L., Polk, W., and R. Housley, "Algorithms and | ||||
| Identifiers for the Internet X.509 Public Key | ||||
| Infrastructure Certificate and Certificate Revocation List | ||||
| (CRL) Profile", RFC 3279, DOI 10.17487/RFC3279, April | ||||
| 2002, <https://www.rfc-editor.org/info/rfc3279>. | ||||
| [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, | |||
| <https://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, | |||
| <https://www.rfc-editor.org/info/rfc3972>. | <https://www.rfc-editor.org/info/rfc3972>. | |||
| [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | ||||
| Architecture", RFC 4291, DOI 10.17487/RFC4291, February | ||||
| 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, | |||
| <https://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, | |||
| <https://www.rfc-editor.org/info/rfc4862>. | <https://www.rfc-editor.org/info/rfc4862>. | |||
| [RFC5758] Dang, Q., Santesson, S., Moriarty, K., Brown, D., and T. | [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem | |||
| Polk, "Internet X.509 Public Key Infrastructure: | Statement and Requirements for IPv6 over Low-Power | |||
| Additional Algorithms and Identifiers for DSA and ECDSA", | Wireless Personal Area Network (6LoWPAN) Routing", | |||
| RFC 5758, DOI 10.17487/RFC5758, January 2010, | RFC 6606, DOI 10.17487/RFC6606, May 2012, | |||
| <https://www.rfc-editor.org/info/rfc5758>. | <https://www.rfc-editor.org/info/rfc6606>. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc6775>. | <https://www.rfc-editor.org/info/rfc6775>. | |||
| [RFC7228] Bormann, C., Ersue, M., and A. Keranen, "Terminology for | ||||
| Constrained-Node Networks", RFC 7228, | ||||
| DOI 10.17487/RFC7228, May 2014, | ||||
| <https://www.rfc-editor.org/info/rfc7228>. | ||||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
| 10.2. Informative references | 10.2. Informative references | |||
| [FIPS186-4] | [FIPS186-4] | |||
| "FIPS Publication 186-4: Digital Signature Standard", July | "FIPS Publication 186-4: Digital Signature Standard", July | |||
| 2013, <http://nvlpubs.nist.gov/nistpubs/FIPS/ | 2013, <http://nvlpubs.nist.gov/nistpubs/FIPS/ | |||
| NIST.FIPS.186-4.pdf>. | NIST.FIPS.186-4.pdf>. | |||
| [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-05 (work in progress), January 2018. | backbone-router-06 (work in progress), February 2018. | |||
| [I-D.struik-lwig-curve-representations] | [I-D.struik-lwig-curve-representations] | |||
| Struik, R., "Alternative Elliptic Curve Representations", | Struik, R., "Alternative Elliptic Curve Representations", | |||
| draft-struik-lwig-curve-representations-00 (work in | draft-struik-lwig-curve-representations-02 (work in | |||
| progress), November 2017. | progress), July 2018. | |||
| [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, | |||
| <https://www.rfc-editor.org/info/rfc4919>. | <https://www.rfc-editor.org/info/rfc4919>. | |||
| [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | |||
| "Transmission of IPv6 Packets over IEEE 802.15.4 | "Transmission of IPv6 Packets over IEEE 802.15.4 | |||
| Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | |||
| <https://www.rfc-editor.org/info/rfc4944>. | <https://www.rfc-editor.org/info/rfc4944>. | |||
| [RFC5889] Baccelli, E., Ed. and M. Townsley, Ed., "IP Addressing | ||||
| Model in Ad Hoc Networks", RFC 5889, DOI 10.17487/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, | |||
| <https://www.rfc-editor.org/info/rfc6234>. | <https://www.rfc-editor.org/info/rfc6234>. | |||
| [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | [RFC6282] Hui, J., Ed. and P. Thubert, "Compression Format for IPv6 | |||
| Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | Datagrams over IEEE 802.15.4-Based Networks", RFC 6282, | |||
| DOI 10.17487/RFC6282, September 2011, | DOI 10.17487/RFC6282, September 2011, | |||
| <https://www.rfc-editor.org/info/rfc6282>. | <https://www.rfc-editor.org/info/rfc6282>. | |||
| End of changes. 84 change blocks. | ||||
| 342 lines changed or deleted | 378 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/ | ||||