draft-ietf-6lo-ap-nd-13.txt   draft-ietf-6lo-ap-nd-14.txt 
6lo P. Thubert, Ed. 6lo P. Thubert, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Updates: 8505 (if approved) B.S. Sarikaya Updates: 8505 (if approved) B.S. Sarikaya
Intended status: Standards Track Intended status: Standards Track
Expires: 9 July 2020 M.S. Sethi Expires: 3 August 2020 M.S. Sethi
Ericsson Ericsson
R.S. Struik R.S. Struik
Struik Security Consultancy Struik Security Consultancy
6 January 2020 31 January 2020
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-13 draft-ietf-6lo-ap-nd-14
Abstract Abstract
This document updates the 6LoWPAN Neighbor Discovery (ND) protocol This document updates the 6LoWPAN Neighbor Discovery (ND) protocol
defined in RFC 6775 and RFC 8505. The new extension is called defined in RFC 6775 and RFC 8505. The new extension is called
Address Protected Neighbor Discovery (AP-ND) and it protects the Address Protected Neighbor Discovery (AP-ND) and it protects the
owner of an address against address theft and impersonation attacks owner of an address against address theft and impersonation attacks
in a low-power and lossy network (LLN). Nodes supporting this in a low-power and lossy network (LLN). Nodes supporting this
extension compute a cryptographic identifier (Crypto-ID) and use it extension compute a cryptographic identifier (Crypto-ID) and use it
with one or more of their Registered Addresses. The Crypto-ID with one or more of their Registered Addresses. The Crypto-ID
skipping to change at page 1, line 46 skipping to change at page 1, line 46
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 9 July 2020. This Internet-Draft will expire on 3 August 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 28 skipping to change at page 2, line 28
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 2.3. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4
3. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 5 3. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 5
4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 5
4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 6 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6
4.3. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 7 4.3. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 7
4.4. NDP Signature Option . . . . . . . . . . . . . . . . . . 8 4.4. NDP Signature Option . . . . . . . . . . . . . . . . . . 9
5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 9 5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 10
6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 10 6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 11
6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 11 6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 11
6.2. NDPSO generation and verification . . . . . . . . . . . . 13 6.2. NDPSO generation and verification . . . . . . . . . . . . 13
6.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 14 6.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 15
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
7.1. Inheriting from RFC 3971 . . . . . . . . . . . . . . . . 15 7.1. Inheriting from RFC 3971 . . . . . . . . . . . . . . . . 16
7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 16 7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 17
7.3. ROVR Collisions . . . . . . . . . . . . . . . . . . . . . 17 7.3. ROVR Collisions . . . . . . . . . . . . . . . . . . . . . 17
7.4. Implementation Attacks . . . . . . . . . . . . . . . . . 17 7.4. Implementation Attacks . . . . . . . . . . . . . . . . . 17
7.5. Cross-Protocol Attacks . . . . . . . . . . . . . . . . . 17 7.5. Cross-Protocol Attacks . . . . . . . . . . . . . . . . . 18
8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 17 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 18
8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 17 8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 18
8.2. IPv6 ND option types . . . . . . . . . . . . . . . . . . 18 8.2. IPv6 ND option types . . . . . . . . . . . . . . . . . . 18
8.3. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 18 8.3. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 18
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19
10. Normative References . . . . . . . . . . . . . . . . . . . . 19 10. Normative References . . . . . . . . . . . . . . . . . . . . 19
11. Informative references . . . . . . . . . . . . . . . . . . . 20 11. Informative references . . . . . . . . . . . . . . . . . . . 20
Appendix A. Requirements Addressed in this Document . . . . . . 22 Appendix A. Requirements Addressed in this Document . . . . . . 22
Appendix B. Representation Conventions . . . . . . . . . . . . . 23 Appendix B. Representation Conventions . . . . . . . . . . . . . 23
B.1. Signature Schemes . . . . . . . . . . . . . . . . . . . . 23 B.1. Signature Schemes . . . . . . . . . . . . . . . . . . . . 23
B.2. Integer Representation for ECDSA signatures . . . . . . . 24 B.2. Integer Representation for ECDSA signatures . . . . . . . 24
B.3. Alternative Representations of Curve25519 . . . . . . . . 24 B.3. Alternative Representations of Curve25519 . . . . . . . . 24
skipping to change at page 3, line 25 skipping to change at page 3, line 25
multicast compared to the Duplicate Address Detection (DAD) mechanism multicast compared to the Duplicate Address Detection (DAD) mechanism
defined in IPv6 ND. 6LoWPAN ND defines a new Address Registration defined in IPv6 ND. 6LoWPAN ND defines a new Address Registration
Option (ARO) that is carried in the unicast Neighbor Solicitation Option (ARO) that is carried in the unicast Neighbor Solicitation
(NS) and Neighbor Advertisement (NA) messages exchanged between a (NS) and Neighbor Advertisement (NA) messages exchanged between a
6LoWPAN Node (6LN) and a 6LoWPAN Router (6LR). It also defines the 6LoWPAN Node (6LN) and a 6LoWPAN Router (6LR). It also defines 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).
In LLN networks, the 6LBR is the central repository of all the In LLN networks, the 6LBR is the central 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 "Neighbor Discovery Optimization for
of an address if that address is already registered in the subnet Low-power and Lossy Networks" [RFC6775] (aka 6LoWPAN ND) prevents the
use of an address if that address is already registered in the subnet
(first come first serve). In order to validate address ownership, (first come first serve). In order to validate address ownership,
the registration mechanism enables the 6LR and 6LBR to validate the the registration mechanism enables the 6LR and 6LBR to validate the
association between the registered address of a node, and its association between the registered address of a node, and its
Registration Ownership Verifier (ROVR). ROVR is defined in [RFC8505] Registration Ownership Verifier (ROVR). The ROVR is defined in
"Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505]
and it can be derived from the MAC address of the device (using the and it can be derived from the MAC address of the device (using the
64-bit Extended Unique Identifier EUI-64 address format specified by 64-bit Extended Unique Identifier EUI-64 address format specified by
IEEE). However, the EUI-64 can be spoofed, and therefore, any node IEEE). However, the EUI-64 can be spoofed, and therefore, any node
connected to the subnet and aware of a registered-address-to-ROVR connected to the subnet and aware of a registered-address-to-ROVR
mapping could effectively fake the ROVR. This would allow the an mapping could effectively fake the ROVR. This would allow the an
attacker to steal the address and redirect traffic for that address. attacker to steal the address and redirect traffic for that address.
[RFC8505] defines an Extended Address Registration Option (EARO) [RFC8505] defines an Extended Address Registration Option (EARO)
option that allows to transport alternate forms of ROVRs, and is a option that allows to transport alternate forms of ROVRs, and is a
pre-requisite for this specification. pre-requisite for this specification.
skipping to change at page 4, line 27 skipping to change at page 4, line 31
2.1. BCP 14 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", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2.2. References 2.2. References
Terms and concepts from the following documents are used in this The reader may get additional context for this specification from the
specification: following references:
* "Terms Used in Routing for Low-Power and Lossy Networks (LLNs)"
[RFC7102],
* "SEcure Neighbor Discovery (SEND)" [RFC3971], * "SEcure Neighbor Discovery (SEND)" [RFC3971],
* "Cryptographically Generated Addresses (CGA)" [RFC3972], * "Cryptographically Generated Addresses (CGA)" [RFC3972],
* "Neighbor Discovery for IP version 6" [RFC4861] , * "Neighbor Discovery for IP version 6" [RFC4861] ,
* "IPv6 Stateless Address Autoconfiguration" [RFC4862], * "IPv6 Stateless Address Autoconfiguration" [RFC4862], and
* "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): * "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs):
Overview, Assumptions, Problem Statement, and Goals " [RFC4919], Overview, Assumptions, Problem Statement, and Goals " [RFC4919].
* "Neighbor Discovery Optimization for Low-power and Lossy Networks"
[RFC6775], and
* "Registration Extensions for 6LoWPAN Neighbor Discovery"
[RFC8505].
2.3. Abbreviations 2.3. Abbreviations
This document uses the following abbreviations: This document uses the following abbreviations:
6BBR: 6LoWPAN Backbone Router 6BBR: 6LoWPAN Backbone Router
6LBR: 6LoWPAN Border Router 6LBR: 6LoWPAN Border Router
6LN: 6LoWPAN Node 6LN: 6LoWPAN Node
6LR: 6LoWPAN Router 6LR: 6LoWPAN Router
6CIO: Capability Indication Option
ARO: Address Registration Option ARO: Address Registration Option
EARO: Extended Address Registration Option
CIPO: Crypto-ID Parameters Option CIPO: Crypto-ID Parameters Option
LLN: Low-Power and Lossy Network LLN: Low-Power and Lossy Network
NA: Neighbor Advertisement NA: Neighbor Advertisement
NCE: Neighbor Cache Entry NCE: Neighbor Cache Entry
ND: Neighbor Discovery ND: Neighbor Discovery
NDP: Neighbor Discovery Protocol NDP: Neighbor Discovery Protocol
NDPSO: NDP Signature Option NDPSO: NDP Signature Option
NS: Neighbor Solicitation NS: Neighbor Solicitation
ROVR: Registration Ownership Verifier ROVR: Registration Ownership Verifier
RPL: IPv6 Routing Protocol for LLNs RPL: Routing Protocol for LLNs
RA: Router Advertisement RA: Router Advertisement
RS: Router Solicitation RS: Router Solicitation
RSAO: RSA Signature Option RSAO: RSA Signature Option
TID: Transaction ID TID: Transaction ID
3. Updating RFC 8505 3. Updating RFC 8505
This specification introduces a new token called a cryptographic This specification introduces a new token called a cryptographic
identifier (Crypto-ID) that is used to prove indirectly the ownership identifier (Crypto-ID) that is used to prove indirectly the ownership
of an address that is being registered by means of [RFC8505]. The of an address that is being registered by means of [RFC8505]. The
Crypto-ID is derived from a cryptographic public key and additional Crypto-ID is derived from a cryptographic public key and additional
parameters. The proof requires the support of Elliptic Curve parameters. The proof requires the support of Elliptic Curve
Cryptography (ECC) and that of a hash function as detailed in Cryptography (ECC) and that of a hash function as detailed in
Section 6.2. To enable the verification of the proof, the Section 6.2. To enable the verification of the proof, the
registering node needs to supply certain parameters including a nonce registering node needs to supply certain parameters including a Nonce
and a signature that will demonstrate that the node has the private- and a signature that will demonstrate that the node has the private-
key corresponding to the public-key used to build the Crypto-ID. key corresponding to the public-key used to build the Crypto-ID.
The elliptic curves and the hash functions that can be used with this The elliptic curves and the hash functions that can be used with this
specification are listed in Table 2 in Section 8.3. The signature specification are listed in Table 2 in Section 8.3. The signature
scheme that specifies which combination is used is signaled by a scheme that specifies which combination is used is signaled by a
Crypto-Type in the CIPO (see Section 4.3). Crypto-Type in the CIPO (see Section 4.3).
The NS(EARO) is extended to transport a new Crypto-ID Parameters The NS(EARO) is extended to transport a new Crypto-ID Parameters
Option (CIPO, see Section 4.3) that contains the parameters that are Option (CIPO, see Section 4.3) that contains the parameters that are
skipping to change at page 6, line 45 skipping to change at page 6, line 38
|Rsvd |C| I |R|T| TID | Registration Lifetime | |Rsvd |C| I |R|T| TID | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
... Registration Ownership Verifier (ROVR) ... ... 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 (including Length: 8-bit unsigned integer. The length of the option (including
the type and length fields) in units of 8 bytes. the type and length fields) in units of 8 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 NS messages. registration in the NA response. In NS messages it MUST be set to
0 by the sender and ignored by the receiver.
Opaque: Defined in [RFC8505]. Opaque: Defined in [RFC8505].
Rsvd (Reserved): This field is unused. It MUST be initialized to Rsvd (Reserved): 3-bit unsigned integer. It MUST be set to zero by
zero by the sender and MUST be ignored by the receiver. the sender and MUST be ignored by the receiver.
C: This "C" flag is set to indicate that the ROVR field contains a C: This "C" flag is set to indicate that the ROVR field contains a
Crypto-ID and that the 6LN MAY be challenged for ownership as Crypto-ID and that the 6LN MAY be challenged for ownership as
specified in this document. specified in this document.
I, R, T, and TID: Defined in [RFC8505]. I, R, T, and TID: Defined in [RFC8505].
Registration Ownership Verifier (ROVR): When the "C" flag is set, Registration Ownership Verifier (ROVR): When the "C" flag is set,
this field contains a Crypto-ID. this field contains a Crypto-ID.
This specification uses Status values "Validation Requested" and This specification uses Status values "Validation Requested" and
"Validation Failed", which are defined in [RFC8505]. No other new "Validation Failed", which are defined in [RFC8505]. No other new
Status values are defined. Status values are defined.
4.3. Crypto-ID Parameters Option 4.3. Crypto-ID Parameters Option
This specification defines the Crypto-ID Parameters Option (CIPO). This specification defines the Crypto-ID Parameters Option (CIPO).
skipping to change at page 7, line 31 skipping to change at page 7, line 31
It carries the parameters used to form a Crypto-ID. In order to It carries the parameters used to form a Crypto-ID. In order to
provide cryptographic agility [RFC7696], this specification supports provide cryptographic agility [RFC7696], this specification supports
different elliptic curves, indicated by a Crypto-Type field. NIST different elliptic curves, indicated by a Crypto-Type field. NIST
P-256 [FIPS186-4] MUST be supported by all implementations. The P-256 [FIPS186-4] MUST be supported by all implementations. The
Edwards-Curve Digital Signature Algorithm (EdDSA) curve Ed25519 Edwards-Curve Digital Signature Algorithm (EdDSA) curve Ed25519
(PureEdDSA) [RFC8032] MAY be supported as an alternate. (PureEdDSA) [RFC8032] 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 |Reserved1| Public Key Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Crypto-Type | Modifier | Reserved | | Crypto-Type | Modifier | Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| | | |
. . . .
. Public Key (variable length) . . Public Key (variable length) .
. . . .
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. Padding . . Padding .
. . . .
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Crypto-ID Parameters Option Figure 2: Crypto-ID Parameters Option
Type: to be assigned by IANA, see Table 1. Type: 8-bit unsigned integer. to be assigned by IANA, see Table 1.
Length: 8-bit unsigned integer. The length of the option in units Length: 8-bit unsigned integer. The length of the option in units
of 8 octets. of 8 octets.
Pad Length: 8-bit unsigned integer. The length of the Padding
field. Reserved1: 5-bit unsigned integer. It MUST be set to zero by the
Reserved: This field is unused. It MUST be initialized to zero by sender and MUST be ignored by the receiver.
the sender and MUST be ignored by the receiver.
Crypto-Type: The type of cryptographic algorithm used in calculation Public Key Length: 13-bit unsigned integer. The length of the
Crypto-ID (see Table 2 in Section 8.3). Although the different Public Key field in bytes.
signature schemes target similar cryptographic strength, they rely
on different curves, hash functions, signature algorithms, and/or Crypto-Type: 8-bit unsigned integer. The type of cryptographic
representation conventions. algorithm used in calculation Crypto-ID (see Table 2 in
Section 8.3). Although the different signature schemes target
similar cryptographic strength, they rely on different curves,
hash functions, signature algorithms, and/or representation
conventions.
Modifier: 8-bit unsigned integer. Set to an arbitrary value by the Modifier: 8-bit unsigned integer. Set to an arbitrary value by the
creator of the Crypto-ID. The role of the modifier is to enable creator of the Crypto-ID. The role of the modifier is to enable
the formation of multiple Crypto-IDs from a same key pair, which the formation of multiple Crypto-IDs from a same key pair, which
reduces the traceability and thus improves the privacy of a reduces the traceability and thus improves the privacy of a
constrained node that could not maintain many key-pairs. constrained node that could not maintain many key-pairs.
Public Key: JWK-Encoded Public Key [RFC7517].
Padding: A variable-length field making the option length a multiple Reserved2: 16-bit unsigned integer. It MUST be set to zero by the
of 8, containing as many octets as specified in the Pad Length sender and MUST be ignored by the receiver.
field.
Public Key: A variable-length field, size indicated in the Public
Key Length field. JWK-Encoded Public Key [RFC7517].
Padding: A variable-length field completing the Public Key field to
align to the next 8-bytes boundary.
The implementation of multiple hash functions in a constrained The implementation of multiple hash functions in a constrained
devices may consume excessive amounts of program memory. devices may consume excessive amounts of program memory.
[I-D.ietf-lwig-curve-representations] provides information on how to [CURVE-REPRESENTATIONS] provides information on how to represent
represent Montgomery curves and (twisted) Edwards curves as curves in Montgomery curves and (twisted) Edwards curves as curves in short-
short-Weierstrass form and illustrates how this can be used to Weierstrass form and illustrates how this can be used to implement
implement elliptic curve computations using existing implementations elliptic curve computations using existing implementations that
that already provide, e.g., ECDSA and ECDH using NIST [FIPS186-4] already provide, e.g., ECDSA and ECDH using NIST [FIPS186-4] prime
prime curves. curves.
For more details on representation conventions, we refer to For more details on representation conventions, we refer to
Appendix B. Appendix B.
4.4. NDP Signature Option 4.4. NDP Signature Option
The format of the NDP Signature Option (NDPSO) is illustrated in The format of the NDP Signature Option (NDPSO) is illustrated in
Figure 3. Figure 3.
As opposed to the RSA Signature Option (RSAO) defined in section 5.2. As opposed to the RSA Signature Option (RSAO) defined in section 5.2.
of SEND [RFC3971], the NDPSO does not have a key hash field. The of SEND [RFC3971], the NDPSO does not have a key hash field. The
hash that can be used as index is the 128 leftmost bits of the ROVR hash that can be used as index is the 128 leftmost bits of the ROVR
field in the EARO. The CIPO may be present in the same message as field in the EARO. The CIPO may be present in the same message as
the NDPSO. If not, it an be found in an abstract table that was the NDPSO. If not, it an be found in an abstract table that was
created by a previous message and indexed by the hash. created by a previous message and indexed by the hash.
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 | | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
| | | |
. . . .
. Digital Signature . . Digital Signature .
. . . .
| | | |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
skipping to change at page 9, line 30 skipping to change at page 9, line 42
| | | |
. . . .
. Padding . . Padding .
. . . .
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: NDP signature Option Figure 3: NDP signature Option
Type: to be assigned by IANA, see Table 1. Type: to be assigned by IANA, see Table 1.
Length: 8-bit unsigned integer. The length of the option in units Length: 8-bit unsigned integer. The length of the option in units
of 8 octets. of 8 octets.
Pad Length: 8-bit unsigned integer. The length of the Padding Pad Length: 8-bit unsigned integer. The length of the Padding
field. field.
Reserved: 40-bit unsigned integer. It MUST be set to zero by the
sender and MUST be ignored by the receiver.
Digital Signature: A variable-length field containing a digital Digital Signature: A variable-length field containing a digital
signature. The computation of the digital signature depends on signature. The computation of the digital signature depends on
the Crypto-Type which is found in the associated CIPO. For the the Crypto-Type which is found in the associated CIPO. For the
values of the Crypto-Type that are defined in ths specification, values of the Crypto-Type that are defined in ths specification,
the signature is computed as detailed in Section 6.2. the signature is computed as detailed in Section 6.2.
Padding: A variable-length field making the option length a multiple Padding: A variable-length field making the option length a multiple
of 8, containing as many octets as specified in the Pad Length of 8, containing as many octets as specified in the Pad Length
field. Typically there is no need of a padding and the field is field. Typically there is no need of a padding and the field is
NULL. NULL.
5. Protocol Scope 5. Protocol Scope
The scope of the protocol specified here is a 6LoWPAN LLN, typically The scope of the protocol specified here is a 6LoWPAN LLN, typically
a stub network connected to a larger IP network via a Border Router a stub network connected to a larger IP network via a Border Router
called a 6LBR per [RFC6775]. A 6LBR has sufficient capability to called a 6LBR per [RFC6775]. A 6LBR has sufficient capability to
skipping to change at page 11, line 6 skipping to change at page 11, line 23
node becomes the owner of the registered address and the address is node becomes the owner of the registered address 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 the 6LR to verify the ownership of the This specification enables the 6LR to verify the ownership of the
binding at any time assuming that the "C" flag is set. The binding at any time assuming that the "C" flag is set. The
verification prevents other nodes from stealing the address and verification 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 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, to prove the ownership of multiple IPv6 may use the same Crypto-ID, to prove the ownership of multiple IPv6
addresses. The separation of the address and the cryptographic addresses. The separation of the address and the cryptographic
material avoids the constrained device to compute multiple keys for material avoids the constrained device to compute multiple keys for
multiple addresses. The registration process allows the node to use multiple addresses. The registration process allows the node to use
the same Crypto-ID for all of its addresses. the same Crypto-ID for all of its 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 ROVR field contains a flag set in the EARO, indicating that the ROVR field contains a
Crypto-ID. The Target Address in the NS message indicates the IPv6 Crypto-ID. The Target Address in the NS message indicates the IPv6
address that the 6LN is trying to register. The on-link (local) address that the 6LN is trying to register. The on-link (local)
protocol interactions are shown in Figure 5. If the 6LR does not protocol interactions are shown in Figure 5. If the 6LR does not
have a state with the 6LN that is consistent with the NS(EARO), then have a state with the 6LN that is consistent with the NS(EARO), then
it replies with a challenge NA (EARO, status=Validation Requested) it replies with a challenge NA (EARO, status=Validation Requested)
that contains a Nonce Option (shown as NonceLR in Figure 5). The that contains a Nonce Option (shown as NonceLR in Figure 5). The
Nonce option MUST contain a random Nonce value that was never used Nonce option contains a Nonce value that, to the extent possible for
with this device. the implementation, was never employed in association with the key
pair used to generate the ROVR. This specification inherits from
[RFC3971] that simply indicates that the nonce is a random value.
Ideally, an implementation would use an unpredictable
cryptographically random value [RFC4086]. But that may be
impractical in some LLN scenarios where the devices do not have a
guaranteed sense of time and for which computing complex hashes is
detrimental to the battery lifetime. Alternatively, the device may
use an always-incrementing value saved in the same stable storage as
the key, so they are lost together, and starting at a best effort
random value, either as Nonce value or as a component to its
computation.
The 6LN replies to the challenge with an NS(EARO) that includes a new The 6LN replies to the challenge with an NS(EARO) that includes a new
Nonce option (shown as NonceLN in Figure 5), the CIPO (Section 4.3), Nonce option (shown as NonceLN in Figure 5), the CIPO (Section 4.3),
and the NDPSO containing the signature. The information associated and the NDPSO containing the signature. The information associated
to a Crypto-ID stored by the 6LR on the first NS exchange where it to a Crypto-ID stored by the 6LR on the first NS exchange where it
appears. The 6LR MUST store the CIPO parameters associated with the appears. The 6LR MUST store the CIPO parameters associated with the
Crypto-ID so it can be used for more than one address. Crypto-ID so it can be used for more than one address.
6LN 6LR 6LN 6LR
| | | |
skipping to change at page 13, line 29 skipping to change at page 13, line 40
a status of "Validation Failed", the registering node SHOULD try a status of "Validation Failed", the registering node SHOULD try
to register an alternate target address in the NS message. to register an alternate target address in the NS message.
6.2. NDPSO generation and verification 6.2. NDPSO generation and verification
The signature generated by the 6LN to provide proof-of-ownership of The signature generated by the 6LN to provide proof-of-ownership of
the private-key is carried in the NDP Signature Option (NDPSO). It the private-key is carried in the NDP Signature Option (NDPSO). It
is generated by the 6LN in a fashion that depends on the Crypto-Type is generated by the 6LN in a fashion that depends on the Crypto-Type
(see Table 2 in Section 8.3) chosen by the 6LN as follows: (see Table 2 in Section 8.3) chosen by the 6LN as follows:
Concatenate the following in the order listed: * Concatenate the following in the order listed:
1. The 128-bit Message Type tag [RFC3972] (in network byte order). 1. The 128-bit Message Type tag [RFC3972] (in network byte order).
For this specification the tag is 0x8701 55c8 0cca dd32 6ab7 e415 For this specification the tag is 0x8701 55c8 0cca dd32 6ab7 e415
f148 84d0. (The tag value has been generated by the editor of f148 84d0. (The tag value has been generated by the editor of
this specification on random.org). this specification on random.org).
2. JWK-encoded public key 2. JWK-encoded public key
3. the 16-byte Target Address (in network byte order) sent in the 3. the 16-byte Target Address (in network byte order) sent in the
Neighbor Solicitation (NS) message. It is the address which the Neighbor Solicitation (NS) message. It is the address which the
6LN is registering with the 6LR and 6LBR. 6LN is registering with the 6LR and 6LBR.
4. NonceLR received from the 6LR (in network byte order) in the 4. NonceLR received from the 6LR (in network byte order) in the
Neighbor Advertisement (NA) message. The random nonce is at Neighbor Advertisement (NA) message. The Nonce is at least 6
least 6 bytes long as defined in [RFC3971]. bytes long as defined in [RFC3971].
5. NonceLN sent from the 6LN (in network byte order). The random 5. NonceLN sent from the 6LN (in network byte order). The Nonce is
nonce is at least 6 bytes long as defined in [RFC3971]. at least 6 bytes long as defined in [RFC3971].
6. The length of the ROVR field in the NS message containing the 6. The length of the ROVR field in the NS message containing the
Crypto-ID that was sent. Crypto-ID that was sent.
7. 1-byte (in network byte order) Crypto-Type value sent in the CIPO 7. 1-byte (in network byte order) Crypto-Type value sent in the CIPO
option. option.
Depending on the Crypto-Type, apply the hash function on this * Depending on the Crypto-Type, apply the hash function on this
concatenation. concatenation.
Depending on the Crypto-Type, sign the hash output with ECDSA (if * Depending on the Crypto-Type, sign the hash output with ECDSA (if
curve P-256 is used) or sign the hash with EdDSA (if curve Ed25519 curve P-256 is used) or sign the hash with EdDSA (if curve Ed25519
(PureEdDSA)). (PureEdDSA)).
The 6LR on receiving the NDPSO and CIPO options first regenerates the The 6LR on receiving the NDPSO and CIPO options first regenerates the
Crypto-ID based on the CIPO option to make sure that the leftmost Crypto-ID based on the CIPO option to make sure that the leftmost
bits up to the size of the ROVR match. If and only if the check is bits up to the size of the ROVR match. If and only if the check is
successful, it tries to verify the signature in the NDPSO option successful, it tries to verify the signature in the NDPSO option
using the following. using the following:
Concatenate the following in the order listed: * Concatenate the following in the order listed:
1. 128-bit type tag (in network byte order) 1. 128-bit type tag (in network byte order)
2. JWK-encoded public key received in the CIPO option 2. JWK-encoded public key received in the CIPO option
3. the 16-byte Target Address (in network byte order) received in 3. the 16-byte Target Address (in network byte order) received in
the Neighbor Solicitation (NS) message. It is the address which the Neighbor Solicitation (NS) message. It is the address which
the 6LN is registering with the 6LR and 6LBR. the 6LN is registering with the 6LR and 6LBR.
4. NonceLR sent in the Neighbor Advertisement (NA) message. The 4. NonceLR sent in the Neighbor Advertisement (NA) message. The
random nonce is at least 6 bytes long as defined in [RFC3971]. Nonce is at least 6 bytes long as defined in [RFC3971].
5. NonceLN received from the 6LN (in network byte order) in the NS 5. NonceLN received from the 6LN (in network byte order) in the NS
message. The random nonce is at least 6 bytes long as defined in message. The Nonce is at least 6 bytes long as defined in
[RFC3971]. [RFC3971].
6. The length of the ROVR field in the NS message containing the 6. The length of the ROVR field in the NS message containing the
Crypto-ID that was received. Crypto-ID that was received.
7. 1-byte (in network byte order) Crypto-Type value received in the 7. 1-byte (in network byte order) Crypto-Type value received in the
CIPO option. CIPO option.
Depending on the Crypto-Type indicated by the (6LN) in the CIPO, * Depending on the Crypto-Type indicated by the (6LN) in the CIPO,
apply the hash function on this concatenation. apply the hash function on this concatenation.
Verify the signature with the public-key received and the locally * Verify the signature with the public-key received and the locally
computed values. If the verification succeeds, the 6LR and 6LBR add computed values. If the verification succeeds, the 6LR and 6LBR
the state information about the Crypto-ID, public-key and Target add the state information about the Crypto-ID, public-key and
Address being registered to their database. Target Address being registered to their database.
6.3. Multihop Operation 6.3. 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 this section. If the 6LR and the 6LBR to 6LBR as described in this section. If the 6LR and the 6LBR
maintain a security association, then there is no need to propagate maintain a security association, then there is no need to propagate
the proof of ownership to the 6LBR. the proof of ownership to the 6LBR.
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 a neighboring 6LR with an NS performs an initial registration to a neighboring 6LR with an NS
message that carries an Address Registration Option (EARO) [RFC8505]. message that carries an Address Registration Option (EARO) [RFC8505].
The 6LR validates the address with an 6LBR using a DAR/DAC exchange, The 6LR validates the address with an 6LBR using a DAR/DAC exchange,
and the 6LR confirms (or denies) the address ownership with an NA and the 6LR confirms (or denies) the address ownership with an NA
message that also carries an Address Registration Option. message that also carries an Address Registration Option.
Figure 6 illustrates a registration flow all the way to a 6LowPAN Figure 6 illustrates a registration flow all the way to a 6LowPAN
Backbone Router (6BBR) [6BBR]. Backbone Router (6BBR) [BACKBONE-ROUTER].
6LN 6LR 6LBR 6BBR 6LN 6LR 6LBR 6BBR
| | | | | | | |
| NS(EARO) | | | | NS(EARO) | | |
|--------------->| | | |--------------->| | |
| | Extended DAR | | | | Extended DAR | |
| |-------------->| | | |-------------->| |
| | | | | | | |
| | | proxy NS(EARO) | | | | proxy NS(EARO) |
| | |--------------->| | | |--------------->|
skipping to change at page 16, line 5 skipping to change at page 16, line 18
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.
7. Security Considerations 7. Security Considerations
7.1. Inheriting from RFC 3971 7.1. Inheriting from RFC 3971
Observations regarding the following threats to the local network in Observations regarding the following threats to the local network in
[RFC3971] also apply to this specification. [RFC3971] also apply to this specification.
Neighbor Solicitation/Advertisement Spoofing Threats in section Neighbor Solicitation/Advertisement Spoofing: Threats in section
9.2.1 of RFC3971 apply. AP-ND counters the threats on NS(EARO) 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 messages by requiring that the NDP Signature and CIPO options be
present in these solicitations. present in these solicitations.
Duplicate Address Detection DoS Attack Inside the LLN, Duplicate
Duplicate Address Detection DoS Attack: Inside the LLN, Duplicate
Addresses are sorted out using the ROVR, which differentiates it Addresses are sorted out using the ROVR, which differentiates it
from a movement. DAD coming from the backbone are not forwarded from a movement. DAD coming from the backbone are not forwarded
over the LLN, which provides some protection against DoS attacks over the LLN, which provides some protection against DoS attacks
inside the resource-constrained part of the network. Over the inside the resource-constrained part of the network. Over the
backbone, the EARO option is present in NS/NA messages. This backbone, the EARO option is present in NS/NA messages. This
protects against misinterpreting a movement for a duplication, and protects against misinterpreting a movement for a duplication, and
enables the backbone routers to determine which one has the enables the backbone routers to determine which one has the
freshest registration and is thus the best candidate to validate freshest registration and is thus the best candidate to validate
the registration for the device attached to it. But this the registration for the device attached to it. But this
specification does not guarantee that the backbone router claiming specification does not guarantee that the backbone router claiming
an address over the backbone is not an attacker. an address over the backbone is not an attacker.
Router Solicitation and Advertisement Attacks This specification
Router Solicitation and Advertisement Attacks: This specification
does not change the protection of RS and RA which can still be does not change the protection of RS and RA which can still be
protected by SEND. protected by SEND.
Replay Attacks Nonces (NonceLR and NonceLN) generated by the 6LR and Replay Attacks Nonces (NonceLR and NonceLN) generated by the 6LR and
6LN guarantees against replay attacks of the NS(EARO). 6LN guarantees against replay attacks of the NS(EARO).
Neighbor Discovery DoS Attack A rogue node that managed to access
Neighbor Discovery DoS Attack: A rogue node that managed to access
the L2 network may form many addresses and register them using AP- 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 ND. The perimeter of the attack is all the 6LRs in range of the
attacker. The 6LR MUST protect itself against overflows and attacker. The 6LR MUST protect itself against overflows and
reject excessive registration with a status 2 "Neighbor Cache reject excessive registration with a status 2 "Neighbor Cache
Full". This effectively blocks another (honest) 6LN from Full". This effectively blocks another (honest) 6LN from
registering to the same 6LR, but the 6LN may register to other 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. 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
skipping to change at page 19, line 33 skipping to change at page 19, line 33
| Defining | This document | This | This document | | Defining | This document | This | This document |
| specification | | document | | | specification | | document | |
+----------------+-----------------+-------------+-----------------+ +----------------+-----------------+-------------+-----------------+
Table 2: Crypto-Types Table 2: Crypto-Types
New Crypto-Type values providing similar or better security (with New Crypto-Type values providing similar or better security (with
less code) may be defined in the future. less code) may be defined in the future.
Assignment of new values for new Crypto-Type MUST be done through Assignment of new values for new Crypto-Type MUST be done through
IANA with "Specification Required" and "IESG Approval" as defined in IANA with either "Specification Required" or "IESG Approval" as
[RFC8126]. defined in [RFC8126].
9. Acknowledgments 9. Acknowledgments
Many thanks to Charlie Perkins for his in-depth review and Many thanks to Charlie Perkins for his in-depth review and
constructive suggestions. The authors are also especially grateful constructive suggestions. The authors are also especially grateful
to Robert Moskowitz for his comments that led to many improvements. to Robert Moskowitz for his comments that led to many improvements.
The authors wish to thank Vijay Gurbani, Al Morton and Adam Montville The authors wish to thank Eric Vyncke, Vijay Gurbani, Al Morton and
for their reviews during the IESG process. Adam Montville for their constructive reviews during the IESG
process.
10. Normative References 10. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971,
DOI 10.17487/RFC3971, March 2005,
<https://www.rfc-editor.org/info/rfc3971>.
[RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)",
RFC 3972, DOI 10.17487/RFC3972, March 2005,
<https://www.rfc-editor.org/info/rfc3972>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007,
<https://www.rfc-editor.org/info/rfc4861>.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862,
DOI 10.17487/RFC4862, September 2007,
<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,
<https://www.rfc-editor.org/info/rfc6775>. <https://www.rfc-editor.org/info/rfc6775>.
[RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517, [RFC7517] Jones, M., "JSON Web Key (JWK)", RFC 7517,
DOI 10.17487/RFC7517, May 2015, DOI 10.17487/RFC7517, May 2015,
<https://www.rfc-editor.org/info/rfc7517>. <https://www.rfc-editor.org/info/rfc7517>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander,
"SEcure Neighbor Discovery (SEND)", RFC 3971,
DOI 10.17487/RFC3971, March 2005,
<https://www.rfc-editor.org/info/rfc3971>.
[RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C. [RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C.
Perkins, "Registration Extensions for IPv6 over Low-Power Perkins, "Registration Extensions for IPv6 over Low-Power
Wireless Personal Area Network (6LoWPAN) Neighbor Wireless Personal Area Network (6LoWPAN) Neighbor
Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018, Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018,
<https://www.rfc-editor.org/info/rfc8505>. <https://www.rfc-editor.org/info/rfc8505>.
[FIPS186-4] [FIPS186-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 , July 2013. Technology , July 2013.
[SEC1] SEC1, "SEC 1: Elliptic Curve Cryptography, Version 2.0", [SEC1] SEC1, "SEC 1: Elliptic Curve Cryptography, Version 2.0",
Standards for Efficient Cryptography , June 2009. Standards for Efficient Cryptography , June 2009.
11. Informative references 11. Informative references
[RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)",
RFC 3972, DOI 10.17487/RFC3972, March 2005,
<https://www.rfc-editor.org/info/rfc3972>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007,
<https://www.rfc-editor.org/info/rfc4861>.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862,
DOI 10.17487/RFC4862, September 2007,
<https://www.rfc-editor.org/info/rfc4862>.
[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, <https://www.rfc-editor.org/info/rfc7748>. 2016, <https://www.rfc-editor.org/info/rfc7748>.
[RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
Signature Algorithm (EdDSA)", RFC 8032, Signature Algorithm (EdDSA)", RFC 8032,
DOI 10.17487/RFC8032, January 2017, DOI 10.17487/RFC8032, January 2017,
<https://www.rfc-editor.org/info/rfc8032>. <https://www.rfc-editor.org/info/rfc8032>.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
skipping to change at page 21, line 30 skipping to change at page 21, line 32
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>.
[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>.
[RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker,
"Randomness Requirements for Security", BCP 106, RFC 4086,
DOI 10.17487/RFC4086, June 2005,
<https://www.rfc-editor.org/info/rfc4086>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[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>.
[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>.
[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,
<https://www.rfc-editor.org/info/rfc7039>. <https://www.rfc-editor.org/info/rfc7039>.
[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,
<https://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,
<https://www.rfc-editor.org/info/rfc7696>. <https://www.rfc-editor.org/info/rfc7696>.
[6BBR] Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6 [BACKBONE-ROUTER]
Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6
Backbone Router", Work in Progress, Internet-Draft, draft- Backbone Router", Work in Progress, Internet-Draft, draft-
ietf-6lo-backbone-router-13, 26 September 2019, ietf-6lo-backbone-router-13, 26 September 2019,
<https://tools.ietf.org/html/draft-ietf-6lo-backbone- <https://tools.ietf.org/html/draft-ietf-6lo-backbone-
router-13>. router-13>.
[I-D.ietf-lwig-curve-representations] [CURVE-REPRESENTATIONS]
Struik, R., "Alternative Elliptic Curve Representations", Struik, R., "Alternative Elliptic Curve Representations",
Work in Progress, Internet-Draft, draft-ietf-lwig-curve- Work in Progress, Internet-Draft, draft-ietf-lwig-curve-
representations-08, 24 July 2019, representations-08, 24 July 2019,
<https://tools.ietf.org/html/draft-ietf-lwig-curve- <https://tools.ietf.org/html/draft-ietf-lwig-curve-
representations-08>. representations-08>.
[breaking-ed25519] [breaking-ed25519]
Samwel, N., Batina, L., Bertoni, G., Daemen, J., and R. Samwel, N., Batina, L., Bertoni, G., Daemen, J., and R.
Susella, "Breaking Ed25519 in WolfSSL", Cryptographers' Susella, "Breaking Ed25519 in WolfSSL", Cryptographers'
Track at the RSA Conference , 2018, Track at the RSA Conference , 2018,
skipping to change at page 24, line 36 skipping to change at page 24, line 40
represented as a point of a twisted Edwards curve or as a point of an represented as a point of a twisted Edwards curve or as a point of an
elliptic curve in short-Weierstrass form, via a coordinate elliptic curve in short-Weierstrass form, via a coordinate
transformation (a so-called isomorphic mapping). The parameters of transformation (a so-called isomorphic mapping). The parameters of
the Montgomery curve and the corresponding isomorphic curves in the Montgomery curve and the corresponding isomorphic curves in
twisted Edwards curve and short-Weierstrass form are as indicated twisted Edwards curve and short-Weierstrass form are as indicated
below. Here, the domain parameters of the Montgomery curve below. Here, the domain parameters of the Montgomery curve
Curve25519 and of the twisted Edwards curve Edwards25519 are as Curve25519 and of the twisted Edwards curve Edwards25519 are as
specified in [RFC7748]; the domain parameters of the elliptic curve specified in [RFC7748]; the domain parameters of the elliptic curve
Wei25519 in short-Weierstrass curve comply with Section 6.1.1 of Wei25519 in short-Weierstrass curve comply with Section 6.1.1 of
[FIPS186-4]. For details of the coordinate transformation referenced [FIPS186-4]. For details of the coordinate transformation referenced
above, see [RFC7748] and [I-D.ietf-lwig-curve-representations]. above, see [RFC7748] and [CURVE-REPRESENTATIONS].
General parameters (for all curve models): General parameters (for all curve models):
p 2^{255}-19 p 2^{255}-19
(=0x7fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff (=0x7fffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
ffffffed) ffffffed)
h 8 h 8
n n
723700557733226221397318656304299424085711635937990760600195093828 723700557733226221397318656304299424085711635937990760600195093828
5454250989 5454250989
 End of changes. 64 change blocks. 
117 lines changed or deleted 157 lines changed or added

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