| < draft-ietf-6lo-ap-nd-20.txt | draft-ietf-6lo-ap-nd-21.txt > | |||
|---|---|---|---|---|
| 6lo P. Thubert, Ed. | 6lo P. Thubert, Ed. | |||
| Internet-Draft Cisco | Internet-Draft Cisco | |||
| Updates: 8505 (if approved) B. Sarikaya | Updates: 8505 (if approved) B. Sarikaya | |||
| Intended status: Standards Track | Intended status: Standards Track | |||
| Expires: 10 September 2020 M. Sethi | Expires: 22 October 2020 M. Sethi | |||
| Ericsson | Ericsson | |||
| R. Struik | R. Struik | |||
| Struik Security Consultancy | Struik Security Consultancy | |||
| 9 March 2020 | 20 April 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-20 | draft-ietf-6lo-ap-nd-21 | |||
| 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 10 September 2020. | This Internet-Draft will expire on 22 October 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 | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Simplified BSD License text | extracted from this document must include Simplified BSD License text | |||
| as described in Section 4.e of the Trust Legal Provisions and are | as described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Simplified BSD License. | provided without warranty as described in the Simplified BSD License. | |||
| 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. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 4 | 2.2. Additional References . . . . . . . . . . . . . . . . . . 4 | |||
| 2.3. Additional References . . . . . . . . . . . . . . . . . . 5 | 2.3. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 3. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Updating RFC 8505 . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 6 | 4. New Fields and Options . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. New Crypto-ID . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 6 | 4.2. Updated EARO . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 7 | 4.3. Crypto-ID Parameters Option . . . . . . . . . . . . . . . 8 | |||
| 4.4. NDP Signature Option . . . . . . . . . . . . . . . . . . 9 | 4.4. NDP Signature Option . . . . . . . . . . . . . . . . . . 10 | |||
| 5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 11 | 4.5. Extensions to the Capability Indication Option . . . . . 11 | |||
| 6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 12 | 5. Protocol Scope . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 13 | 6. Protocol Flows . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 6.2. NDPSO generation and verification . . . . . . . . . . . . 15 | 6.1. First Exchange with a 6LR . . . . . . . . . . . . . . . . 14 | |||
| 6.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 16 | 6.2. NDPSO generation and verification . . . . . . . . . . . . 16 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 17 | 6.3. Multihop Operation . . . . . . . . . . . . . . . . . . . 17 | |||
| 7.1. Inheriting from RFC 3971 . . . . . . . . . . . . . . . . 17 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 18 | |||
| 7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 18 | 7.1. Inheriting from RFC 3971 . . . . . . . . . . . . . . . . 18 | |||
| 7.3. ROVR Collisions . . . . . . . . . . . . . . . . . . . . . 19 | 7.2. Related to 6LoWPAN ND . . . . . . . . . . . . . . . . . . 19 | |||
| 7.4. Implementation Attacks . . . . . . . . . . . . . . . . . 19 | 7.3. ROVR Collisions . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 7.5. Cross-Algorithm and Cross-Protocol Attacks . . . . . . . 20 | 7.4. Implementation Attacks . . . . . . . . . . . . . . . . . 20 | |||
| 7.6. Compromised 6LR . . . . . . . . . . . . . . . . . . . . . 20 | 7.5. Cross-Algorithm and Cross-Protocol Attacks . . . . . . . 21 | |||
| 7.6. Compromised 6LR . . . . . . . . . . . . . . . . . . . . . 21 | ||||
| 7.7. Correlating Registrations . . . . . . . . . . . . . . . . 21 | 7.7. Correlating Registrations . . . . . . . . . . . . . . . . 21 | |||
| 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 21 | 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 21 | 8.1. CGA Message Type . . . . . . . . . . . . . . . . . . . . 22 | |||
| 8.2. IPv6 ND option types . . . . . . . . . . . . . . . . . . 21 | 8.2. IPv6 ND option types . . . . . . . . . . . . . . . . . . 22 | |||
| 8.3. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 22 | 8.3. Crypto-Type Subregistry . . . . . . . . . . . . . . . . . 22 | |||
| 8.4. New Codepoints Associated to JWK Encoding . . . . . . . . 22 | 8.4. New Codepoints Associated to JWK Encoding . . . . . . . . 23 | |||
| 8.4.1. COSE Elliptic Curves Registration . . . . . . . . . . 23 | 8.4.1. JOSE Elliptic Curves Registration . . . . . . . . . . 23 | |||
| 8.4.2. COSE Algorithms Registration . . . . . . . . . . . . 23 | 8.4.2. JOSE Algorithms Registration . . . . . . . . . . . . 24 | |||
| 8.4.3. JOSE Elliptic Curves Registration . . . . . . . . . . 23 | ||||
| 8.4.4. JOSE Algorithms Registration . . . . . . . . . . . . 24 | ||||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 10. Normative References . . . . . . . . . . . . . . . . . . . . 24 | 10. Normative References . . . . . . . . . . . . . . . . . . . . 24 | |||
| 11. Informative references . . . . . . . . . . . . . . . . . . . 25 | 11. Informative references . . . . . . . . . . . . . . . . . . . 26 | |||
| Appendix A. Requirements Addressed in this Document . . . . . . 28 | Appendix A. Requirements Addressed in this Document . . . . . . 28 | |||
| Appendix B. Representation Conventions . . . . . . . . . . . . . 28 | Appendix B. Representation Conventions . . . . . . . . . . . . . 29 | |||
| B.1. Signature Schemes . . . . . . . . . . . . . . . . . . . . 28 | B.1. Signature Schemes . . . . . . . . . . . . . . . . . . . . 29 | |||
| B.2. Integer Representation for ECDSA signatures . . . . . . . 29 | B.2. Integer Representation for ECDSA signatures . . . . . . . 30 | |||
| B.3. Alternative Representations of Curve25519 . . . . . . . . 30 | B.3. Alternative Representations of Curve25519 . . . . . . . . 30 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 31 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 | |||
| 1. Introduction | 1. Introduction | |||
| Neighbor Discovery Optimizations for 6LoWPAN networks [RFC6775] | Neighbor Discovery Optimizations for 6LoWPAN networks [RFC6775] | |||
| (6LoWPAN ND) adapts the original IPv6 Neighbor Discovery (IPv6 ND) | (6LoWPAN ND) adapts the original IPv6 Neighbor Discovery (IPv6 ND) | |||
| protocols defined in [RFC4861] and [RFC4862] for constrained low- | protocols defined in [RFC4861] and [RFC4862] for constrained low- | |||
| power and lossy network (LLN). In particular, 6LoWPAN ND introduces | power and lossy network (LLN). In particular, 6LoWPAN ND introduces | |||
| a unicast host Address Registration mechanism that reduces the use of | a unicast host Address Registration mechanism that reduces the use of | |||
| 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 | |||
| skipping to change at page 3, line 44 ¶ | skipping to change at page 3, line 44 ¶ | |||
| use of an address if that address is already registered in the subnet | 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). The ROVR is defined in | Registration Ownership Verifier (ROVR). The ROVR is defined in | |||
| "Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505] | "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 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 transports alternate forms of ROVRs, and is a pre- | |||
| pre-requisite for this specification. | requisite for this specification. | |||
| In this specification, a 6LN generates a cryptographic ID (Crypto-ID) | In this specification, a 6LN generates a cryptographic ID (Crypto-ID) | |||
| and places it in the ROVR field during the registration of one (or | and places it in the ROVR field during the registration of one (or | |||
| more) of its addresses with the 6LR(s). Proof of ownership of the | more) of its addresses with the 6LR(s). Proof of ownership of the | |||
| 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 creates any new registration state, or | cryptographic ID before it creates any new registration state, or | |||
| changes existing information. | changes existing information. | |||
| The protected address registration protocol proposed in this document | The protected address registration protocol proposed in this document | |||
| skipping to change at page 4, line 38 ¶ | skipping to change at page 4, line 37 ¶ | |||
| 2. Terminology | 2. Terminology | |||
| 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. Abbreviations | 2.2. Additional References | |||
| The reader may get additional context for this specification from the | ||||
| following references: | ||||
| * "SEcure Neighbor Discovery (SEND)" [RFC3971], | ||||
| * "Cryptographically Generated Addresses (CGA)" [RFC3972], | ||||
| * "Neighbor Discovery for IP version 6" [RFC4861] , | ||||
| * "IPv6 Stateless Address Autoconfiguration" [RFC4862], and | ||||
| * "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals " [RFC4919]. | ||||
| 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 | |||
| CGA: Cryptographically Generated Address | ||||
| EARO: Extended Address Registration Option | EARO: Extended Address Registration Option | |||
| ECDH: Elliptic curve Diffie-Hellman | ||||
| ECDSA: Elliptic Curve Digital Signature Algorithm | ||||
| CIPO: Crypto-ID Parameters Option | CIPO: Crypto-ID Parameters Option | |||
| LLN: Low-Power and Lossy Network | LLN: Low-Power and Lossy Network | |||
| JSON: JavaScript Object Notation | ||||
| JOSE: JavaScript Object Signing and Encryption | ||||
| JWK: JSON Web Key | ||||
| JWS: JSON Web Signature | ||||
| NA: Neighbor Advertisement | NA: Neighbor Advertisement | |||
| ND: Neighbor Discovery | ND: Neighbor Discovery | |||
| NDP: Neighbor Discovery Protocol | ||||
| NDPSO: Neighbor Discovery Protocol Signature Option | NDPSO: Neighbor Discovery Protocol Signature Option | |||
| NS: Neighbor Solicitation | NS: Neighbor Solicitation | |||
| ROVR: Registration Ownership Verifier | ROVR: Registration Ownership Verifier | |||
| RA: Router Advertisement | RA: Router Advertisement | |||
| RS: Router Solicitation | RS: Router Solicitation | |||
| RSAO: RSA Signature Option | RSAO: RSA Signature Option | |||
| SHA: Secure Hash Algorithm | ||||
| SLAAC: Stateless Address Autoconfiguration | ||||
| TID: Transaction ID | TID: Transaction ID | |||
| 2.3. Additional References | ||||
| The reader may get additional context for this specification from the | ||||
| following references: | ||||
| * "SEcure Neighbor Discovery (SEND)" [RFC3971], | ||||
| * "Cryptographically Generated Addresses (CGA)" [RFC3972], | ||||
| * "Neighbor Discovery for IP version 6" [RFC4861] , | ||||
| * "IPv6 Stateless Address Autoconfiguration" [RFC4862], and | ||||
| * "IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals " [RFC4919]. | ||||
| 3. Updating RFC 8505 | 3. Updating RFC 8505 | |||
| Section 5.3 of [RFC8505] introduces the ROVR that is used to detect | Section 5.3 of [RFC8505] introduces the ROVR that is used to detect | |||
| and reject duplicate registrations in the DAD process. The ROVR is a | and reject duplicate registrations in the DAD process. The ROVR is a | |||
| generic object that is designed for both backward compatibility and | generic object that is designed for both backward compatibility and | |||
| the capability to introduce new computation methods in the future. | the capability to introduce new computation methods in the future. | |||
| Using a Crypto-ID per this specification is the RECOMMENDED method. | Using a Crypto-ID per this specification is the RECOMMENDED method. | |||
| Section 7.3 discusses collisions when heterogeneous methods to | Section 7.3 discusses collisions when heterogeneous methods to | |||
| compute the ROVR field coexist inside a same network. | compute the ROVR field coexist inside a same network. | |||
| skipping to change at page 9, line 19 ¶ | skipping to change at page 9, line 25 ¶ | |||
| 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. | |||
| EARO Length: 8-bit unsigned integer. The option length of the EARO | EARO Length: 8-bit unsigned integer. The option length of the EARO | |||
| that contains the Crypto-ID associated with the CIPO. | that contains the Crypto-ID associated with the CIPO. | |||
| Reserved2: 16-bit unsigned integer. It MUST be set to zero by the | Reserved2: 8-bit unsigned integer. It MUST be set to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| Public Key: A variable-length field, size indicated in the Public | Public Key: A variable-length field, size indicated in the Public | |||
| Key Length field. JWK-Encoded Public Key [RFC7517]. | Key Length field. JWK-encoded Public Key [RFC7517]. | |||
| Padding: A variable-length field completing the Public Key field to | Padding: A variable-length field completing the Public Key field to | |||
| align to the next 8-bytes boundary. It MUST be set to zero by the | align to the next 8-bytes boundary. It MUST be set to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| 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. This | devices may consume excessive amounts of program memory. This | |||
| specification enables the use of SHA-256 [RFC6234] for all the | specification enables the use of SHA-256 [RFC6234] for all the | |||
| supported ECC curves. | supported ECC curves. | |||
| Some code factorization is also possible for the ECC computation | Some code factorization is also possible for the ECC computation | |||
| itself. [CURVE-REPRESENTATIONS] provides information on how to | itself. [CURVE-REPR] 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. For more details on representation conventions, we | curves. For more details on representation conventions, we refer to | |||
| refer to Appendix B. | Appendix B. | |||
| 4.4. NDP Signature Option | 4.4. NDP Signature Option | |||
| This specification defines the NDP Signature Option (NDPSO). The | This specification defines the NDP Signature Option (NDPSO). The | |||
| NDPSO carries the signature that proves the ownership of the Crypto- | NDPSO carries the signature that proves the ownership of the Crypto- | |||
| ID. The format of the NDPSO is illustrated in Figure 3. | ID. The format of the NDPSO is illustrated in 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. | of SEND [RFC3971], the NDPSO does not have a key hash field. | |||
| Instead, the leftmost 128 bits of the ROVR field in the EARO are used | Instead, the leftmost 128 bits of the ROVR field in the EARO are used | |||
| skipping to change at page 11, line 11 ¶ | skipping to change at page 11, line 19 ¶ | |||
| Reserved1: 5-bit unsigned integer. It MUST be set to zero by the | Reserved1: 5-bit unsigned integer. It MUST be set to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| Digital Signature Length: 11-bit unsigned integer. The length of | Digital Signature Length: 11-bit unsigned integer. The length of | |||
| the Digital Signature field in bytes. | the Digital Signature field in bytes. | |||
| Reserved2: 32-bit unsigned integer. It MUST be set to zero by the | Reserved2: 32-bit unsigned integer. It MUST be set to zero by the | |||
| sender and MUST be ignored by the receiver. | sender and MUST be ignored by the receiver. | |||
| Digital Signature: A variable-length field containing a digital | Digital Signature: A variable-length field containing the JWS- | |||
| signature. The length and computation of the digital signature | encoded digital signature[RFC7515]. The length and computation of | |||
| both depend on the Crypto-Type which is found in the associated | the digital signature both depend on the Crypto-Type which is | |||
| CIPO. For the values of the Crypto-Type that are defined in this | found in the associated CIPO, see Appendix B.2. For the values of | |||
| specification, and unless specified otherwise for a future value | the Crypto-Type defined in this specification, and for future | |||
| of the Crypto-Type, the signature is computed as detailed in | values of the Crypto-Type unless specified otherwise, the | |||
| Section 6.2. | signature is computed as detailed in Section 6.2. | |||
| Padding: A variable-length field completing the Digital Signature | Padding: A variable-length field completing the Digital Signature | |||
| field to align to the next 8-bytes boundary. It MUST be set to | field to align to the next 8-bytes boundary. It MUST be set to | |||
| zero by the sender and MUST be ignored by the receiver. | zero by the sender and MUST be ignored by the receiver. | |||
| 4.5. Extensions to the Capability Indication Option | ||||
| This specification defines 2 new capability bits in the 6CIO, defined | ||||
| by [RFC7400] for use by the 6LR and 6LBR in IPv6 ND RA messages. | ||||
| The "A" flag indicates that AP-ND is enabled in the network. It is | ||||
| set by the 6LBR that serves the network and propagated by the 6LRs. | ||||
| The "J" flag indicates that the 6LR supports JWK-encoded keys in the | ||||
| CIPO option. | ||||
| 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 | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Type | Length = 1 | Reserved |J|A|D|L|B|P|E|G| | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| | Reserved | | ||||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Figure 4: New Capability Bits in the 6CIO | ||||
| New Option Fields: | ||||
| J: 1-bit flag. This 6LR supports AP-ND with JWK encoding | ||||
| A: 1-bit flag. This network supports AP-ND | ||||
| 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 | |||
| satisfy the needs of duplicate address detection. | satisfy the needs of duplicate address detection. | |||
| The 6LBR maintains registration state for all devices in its attached | The 6LBR maintains registration state for all devices in its attached | |||
| LLN. Together with the first-hop router (the 6LR), the 6LBR assures | LLN. Together with the first-hop router (the 6LR), the 6LBR assures | |||
| uniqueness and grants ownership of an IPv6 address before it can be | uniqueness and grants ownership of an IPv6 address before it can be | |||
| skipping to change at page 11, line 50 ¶ | skipping to change at page 12, line 38 ¶ | |||
| | | | | |||
| +-----+ | +-----+ | |||
| | | 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 4: Basic Configuration | Figure 5: 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 mandates 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 mandates that a chain of trust is | 6LRs. | |||
| established so that a packet that was validated by the first 6LR can | ||||
| be safely routed by other on-path 6LRs to the 6LBR. | This specification mandates that a chain of trust is established so | |||
| that a packet that was validated by the first 6LR can be safely | ||||
| routed by other on-path 6LRs to the 6LBR. | ||||
| 6. Protocol Flows | 6. Protocol Flows | |||
| The 6LR/6LBR ensures first-come/first-serve by storing the ROVR | The 6LR/6LBR ensures first-come/first-serve by storing the ROVR | |||
| associated to the address being registered upon the first | associated to the address being registered upon the first | |||
| registration and rejecting a registration with a different ROVR | registration and rejecting a registration with a different ROVR | |||
| value. A 6LN can claim any address as long as it is the first to | value. A 6LN can claim any address as long as it is the first to | |||
| make that claim. After a successful registration, the 6LN becomes | make that claim. After a successful registration, the 6LN becomes | |||
| the owner of the registered address and the address is bound to the | the owner of the registered address and the address is bound to the | |||
| ROVR value in the 6LR/6LBR registry. | ROVR value in the 6LR/6LBR registry. | |||
| This specification protects the ownership of the address. Its use in | ||||
| a network is signaled by the 6LBR by setting the 'A' flag in the | ||||
| 6CIO. This is echoed by the 6LRs, that also indicate the key | ||||
| encoding format that they support in another 6CIO flag, currently the | ||||
| 'J' flag for JWK. | ||||
| When using a ROVR that is a Crypto-ID, a 6LN MUST use a 6LR that | ||||
| supports the key encoding used in the CIPO. If the 6LR does not | ||||
| support the Crypto-Type, it MUST reply with an EARO Status 10 | ||||
| "Validation Failed" without a challenge. In that case, the 6LN may | ||||
| try another Crypto-Type until it falls back to Crypto-Type 0 that | ||||
| MUST be supported by all 6LRs. | ||||
| This specification enables the 6LR to challenge the 6LN to verify its | This specification enables the 6LR to challenge the 6LN to verify its | |||
| ownership of the binding by placing a Crypto-ID in the ROVR. The | ownership of the binding by placing a Crypto-ID in the ROVR. The | |||
| challenge can happen at any time at the discretion of the 6LR. The | challenge can happen at any time at the discretion of the 6LR. The | |||
| 6LR MUST challenge the 6LN when it creates a binding and when a new | 6LR MUST challenge the 6LN when it creates a binding and when a new | |||
| registration attempts to change a parameter of the binding that | registration attempts to change a parameter of the binding that | |||
| identifies the 6LN, for instance its Source Link-Layer Address. The | identifies the 6LN, for instance its Source Link-Layer Address. The | |||
| verification protects against a rogue that would steal an address and | verification protects against a rogue that would steal an address and | |||
| attract its traffic, or use it as source address. | attract its traffic, or use it as source address. | |||
| The challenge can also triggered by the 6LBR, e.g., to enforce a | The challenge can also triggered by the 6LBR, e.g., to enforce a | |||
| skipping to change at page 13, line 11 ¶ | skipping to change at page 14, line 11 ¶ | |||
| addresses. The 6LN MAY use the same Crypto-ID to prove the ownership | addresses. The 6LN MAY use the same Crypto-ID to prove the ownership | |||
| of multiple IPv6 addresses. The 6LN MAY also derive multiple Crypto- | of multiple IPv6 addresses. The 6LN MAY also derive multiple Crypto- | |||
| IDs from a same key. | IDs from a same key. | |||
| 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 [RFC8505]. The on-link | address that the 6LN is trying to register [RFC8505]. The on-link | |||
| (local) protocol interactions are shown in Figure 5. If the 6LR does | (local) protocol interactions are shown in Figure 6. If the 6LR does | |||
| not have a state with the 6LN that is consistent with the NS(EARO), | not have a state with the 6LN that is consistent with the NS(EARO), | |||
| then it replies with a challenge NA (EARO, status=Validation | then it replies with a challenge NA (EARO, status=Validation | |||
| Requested) that contains a Nonce Option (shown as NonceLR in | Requested) that contains a Nonce Option (shown as NonceLR in | |||
| Figure 5). | Figure 6). | |||
| The Nonce option contains a nonce value that, to the extent possible | ||||
| for the implementation, was never employed in association with the | ||||
| key pair used to generate the Crypto-ID. This specification inherits | ||||
| from [RFC3971] that simply indicates that the nonce is a random | ||||
| value. Ideally, an implementation uses an unpredictable | ||||
| cryptographically random value [BCP 106]. 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 the nonce value or as a component to its | ||||
| computation. | ||||
| 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), | ||||
| and the NDPSO containing the signature. Both Nonces are included in | ||||
| the signed material. This provides a "contributory behavior", so | ||||
| that either party that knows it generates a good quality nonce knows | ||||
| that the protocol will be secure. | ||||
| The 6LR MUST store the information associated to a Crypto-ID on the | ||||
| first NS exchange where it appears in a fashion that the CIPO | ||||
| parameters can be retrieved from the Crypto-ID alone. | ||||
| 6LN 6LR | 6LN 6LR | |||
| | | | | | | |||
| |<------------------------- RA -------------------------| | |<------------------------- RA -------------------------| | |||
| | | ^ | | | ^ | |||
| |---------------- NS with EARO (Crypto-ID) ------------>| | | |---------------- NS with EARO (Crypto-ID) ------------>| | | |||
| | | option | | | option | |||
| |<- NA with EARO (status=Validation Requested), NonceLR-| | | |<- NA with EARO (status=Validation Requested), NonceLR-| | | |||
| | | v | | | v | |||
| |------- NS with EARO, CIPO, NonceLN and NDPSO -------->| | |------- NS with EARO, CIPO, NonceLN and NDPSO -------->| | |||
| skipping to change at page 14, line 30 ¶ | skipping to change at page 14, line 42 ¶ | |||
| | | | | | | |||
| |<------------------- NA with EARO ---------------------| | |<------------------- NA with EARO ---------------------| | |||
| | | | | | | |||
| ... | ... | |||
| | | | | | | |||
| |--------------- NS with EARO (Crypto-ID) ------------->| | |--------------- NS with EARO (Crypto-ID) ------------->| | |||
| | | | | | | |||
| |<------------------- NA with EARO ---------------------| | |<------------------- NA with EARO ---------------------| | |||
| | | | | | | |||
| Figure 5: On-link Protocol Operation | Figure 6: On-link Protocol Operation | |||
| The Nonce option contains a nonce value that, to the extent possible | ||||
| for the implementation, was never employed in association with the | ||||
| key pair used to generate the Crypto-ID. This specification inherits | ||||
| from [RFC3971] that simply indicates that the nonce is a random | ||||
| value. Ideally, an implementation uses an unpredictable | ||||
| cryptographically random value [BCP 106]. 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 the nonce value or | ||||
| as a component to its computation. | ||||
| The 6LN replies to the challenge with an NS(EARO) that includes a new | ||||
| Nonce option (shown as NonceLN in Figure 6), the CIPO (Section 4.3), | ||||
| and the NDPSO containing the signature. Both Nonces are included in | ||||
| the signed material. This provides a "contributory behavior", so | ||||
| that either party that knows it generates a good quality nonce knows | ||||
| that the protocol will be secure. | ||||
| The 6LR MUST store the information associated to a Crypto-ID on the | ||||
| first NS exchange where it appears in a fashion that the CIPO | ||||
| parameters can be retrieved from the Crypto-ID alone. | ||||
| The steps for the registration to the 6LR are as follows: | The steps for the registration to the 6LR are as follows: | |||
| * Upon the first exchange with a 6LR, a 6LN will be challenged to | * Upon the first exchange with a 6LR, a 6LN will be challenged to | |||
| prove ownership of the Crypto-ID and the Target Address being | prove ownership of the Crypto-ID and the Target Address being | |||
| registered in the Neighbor Solicitation message. When a 6LR | registered in the Neighbor Solicitation message. When a 6LR | |||
| receives a NS(EARO) registration with a new Crypto-ID as a ROVR, | receives a NS(EARO) registration with a new Crypto-ID as a ROVR, | |||
| and unless the registration is rejected for another reason, it | and unless the registration is rejected for another reason, it | |||
| MUST challenge by responding with a NA(EARO) with a status of | MUST challenge by responding with a NA(EARO) with a status of | |||
| "Validation Requested". | "Validation Requested". | |||
| skipping to change at page 15, line 16 ¶ | skipping to change at page 16, line 8 ¶ | |||
| 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 rebuilt Crypto-ID matches the | parameters in the CIPO. If the rebuilt Crypto-ID matches the | |||
| ROVR, the 6LN also verifies the signature contained in the NDPSO | ROVR, the 6LN also verifies the signature contained in the NDPSO | |||
| option. If at that point the signature in the NDPSO option can be | option. If at that point the signature in the NDPSO option can be | |||
| verified, then the validation succeeds. Otherwise the validation | verified, then the validation succeeds. Otherwise the validation | |||
| fails. | fails. | |||
| * If the 6LR fails to validate the signed NS(EARO), it responds with | * 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 | |||
| to register an alternate target address in the NS message. | and alternate Crypto-Type and if even Crypto-Type 0 fails, it may | |||
| try to register a different 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 | 1. The 128-bit Message Type tag [RFC3972] (in network byte | |||
| order). For this specification the tag is 0x8701 55c8 0cca | order). For this specification the tag is 0x8701 55c8 0cca | |||
| dd32 6ab7 e415 f148 84d0. (The tag value has been generated | dd32 6ab7 e415 f148 84d0. (The tag value has been generated | |||
| by the editor of this specification on random.org). | by the editor of this specification on random.org). | |||
| 2. JWK-encoded public key | 2. the CIPO | |||
| 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 | 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 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 nonce is at least 6 | Neighbor Advertisement (NA) message. The nonce is at 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 nonce | 5. NonceLN sent from the 6LN (in network byte order). The nonce | |||
| is at least 6 bytes long as defined in [RFC3971]. | is at least 6 bytes long as defined in [RFC3971]. | |||
| 6. 1-byte Option Length of the EARO containing the Crypto-ID. | 6. 1-byte Option Length of the EARO containing the Crypto-ID. | |||
| 7. 1-byte Crypto-Type value sent in the CIPO. | ||||
| * Apply the hash function (if any) specified by the Crypto-Type to | * Apply the hash function (if any) specified by the Crypto-Type to | |||
| the concatenated data, e.g., hash the resulting data using SHA- | the concatenated data, e.g., hash the resulting data using SHA- | |||
| 256. | 256. | |||
| * Apply the signature algorithm specified by the Crypto-Type, e.g., | * Apply the signature algorithm specified by the Crypto-Type, e.g., | |||
| sign the hash output with ECDSA (if curve P-256 is used) or sign | sign the hash output with ECDSA (if curve P-256 is used) or sign | |||
| the hash with EdDSA (if curve Ed25519 (PureEdDSA)). | the hash with EdDSA (if curve Ed25519 (PureEdDSA)). | |||
| The 6LR on receiving the NDPSO and CIPO options first checks that the | The 6LR on receiving the NDPSO and CIPO options first checks that the | |||
| EARO Length in the CIPO matches the length of the EARO. If so it | EARO Length in the CIPO matches the length of the EARO. If so it | |||
| regenerates the Crypto-ID based on the CIPO to make sure that the | regenerates the Crypto-ID based on the CIPO to make sure that the | |||
| leftmost bits up to the size of the ROVR match. | leftmost bits up to the size of the ROVR match. | |||
| If and only if the check is successful, it tries to verify the | If and only if the check is successful, it tries to verify the | |||
| signature in the NDPSO option using the following: | signature in the NDPSO option 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. The 128-bit Message Type tag specified above (in network byte | |||
| 2. JWK-encoded public key received in the CIPO | order) | |||
| 2. the CIPO | ||||
| 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 | the Neighbor Solicitation (NS) message. It is the address | |||
| which the 6LN is registering with the 6LR and 6LBR. | which 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 | |||
| 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 | 5. NonceLN received from the 6LN (in network byte order) in the | |||
| NS message. The nonce is at least 6 bytes long as defined in | NS message. The nonce is at least 6 bytes long as defined in | |||
| [RFC3971]. | [RFC3971]. | |||
| 6. 1-byte EARO Length received in the CIPO. | 6. 1-byte EARO Length received in the CIPO. | |||
| 7. 1-byte Crypto-Type value received in the CIPO. | ||||
| * Apply the hash function (if any) specified by the Crypto-Type | * Apply the hash function (if any) specified by the Crypto-Type | |||
| indicated by the 6LN in the CIPO to the concatenated data. | indicated by the 6LN in the CIPO to the concatenated data. | |||
| * Verify the signature with the public-key in the CIPO and the | * Verify the signature with the public-key in the CIPO and the | |||
| locally computed values using the signature algorithm specified by | locally computed values using the signature algorithm specified by | |||
| the Crypto-Type. If the verification succeeds, the 6LR propagates | the Crypto-Type. If the verification succeeds, the 6LR propagates | |||
| the information to the 6LBR using a EDAR/EDAC flow. | the information to the 6LBR using a EDAR/EDAC flow. | |||
| * Due to the first-come/first-serve nature of the registration, if | * Due to the first-come/first-serve nature of the registration, if | |||
| skipping to change at page 16, line 49 ¶ | skipping to change at page 17, line 39 ¶ | |||
| ID and Target Address being registered to their respective | ID and Target Address being registered to their respective | |||
| abstract database. | abstract database. | |||
| 6.3. Multihop Operation | 6.3. Multihop Operation | |||
| A new 6LN that joins the network auto-configures an address and | A new 6LN 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]. | |||
| 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 shown in Figure 6, which illustrates the registration flow | to 6LBR as shown in Figure 7, which illustrates the registration flow | |||
| all the way to a 6LowPAN Backbone Router (6BBR) [BACKBONE-ROUTER]. | all the way to a 6LowPAN Backbone Router (6BBR) [BACKBONE-ROUTER]. | |||
| The 6LR and the 6LBR communicate using ICMPv6 Extended Duplicate | The 6LR and the 6LBR communicate using ICMPv6 Extended Duplicate | |||
| Address Request (EDAR) and Extended Duplicate Address Confirmation | Address Request (EDAR) and Extended Duplicate Address Confirmation | |||
| (EDAC) messages [RFC8505] as shown in Figure 6. This specification | (EDAC) messages [RFC8505] as shown in Figure 7. This specification | |||
| extends EDAR/EDAC messages to carry cryptographically generated ROVR. | extends EDAR/EDAC messages to carry cryptographically generated ROVR. | |||
| The assumption is that the 6LR and the 6LBR maintain a security | The assumption is that the 6LR and the 6LBR maintain a security | |||
| association to authenticate and protect the integrity of the EDAR and | association to authenticate and protect the integrity of the EDAR and | |||
| EDAC messages, so there is no need to propagate the proof of | EDAC messages, so there is no need to propagate the proof of | |||
| ownership to the 6LBR. The 6LBR implicitly trusts that the 6LR | ownership to the 6LBR. The 6LBR implicitly trusts that the 6LR | |||
| performs the verification when the 6LBR requires it, and if there is | performs the verification when the 6LBR requires it, and if there is | |||
| no further exchange from the 6LR to remove the state, that the | no further exchange from the 6LR to remove the state, that the | |||
| verification succeeded. | verification succeeded. | |||
| skipping to change at page 17, line 40 ¶ | skipping to change at page 18, line 35 ¶ | |||
| | | | | <wait> | | | | | <wait> | |||
| | | | | | | | | | | |||
| | | | proxy NA(EARO) | | | | | proxy NA(EARO) | | |||
| | | |<---------------| | | | |<---------------| | |||
| | | Extended DAC | | | | | Extended DAC | | | |||
| | |<--------------| | | | |<--------------| | | |||
| | NA(EARO) | | | | | NA(EARO) | | | | |||
| |<---------------| | | | |<---------------| | | | |||
| | | | | | | | | | | |||
| Figure 6: (Re-)Registration Flow | Figure 7: (Re-)Registration Flow | |||
| 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) | |||
| skipping to change at page 22, line 15 ¶ | skipping to change at page 23, line 5 ¶ | |||
| 8.3. Crypto-Type Subregistry | 8.3. Crypto-Type Subregistry | |||
| IANA is requested to create a new subregistry "Crypto-Type | IANA is requested to create a new subregistry "Crypto-Type | |||
| Subregistry" in the "Internet Control Message Protocol version 6 | Subregistry" in the "Internet Control Message Protocol version 6 | |||
| (ICMPv6) Parameters". The registry is indexed by an integer in the | (ICMPv6) Parameters". The registry is indexed by an integer in the | |||
| interval 0..255 and contains an Elliptic Curve, a Hash Function, a | interval 0..255 and contains an Elliptic Curve, a Hash Function, a | |||
| Signature Algorithm, and Representation Conventions, as shown in | Signature Algorithm, and Representation Conventions, as shown in | |||
| Table 2, which together specify a signature scheme. The following | Table 2, which together specify a signature scheme. The following | |||
| Crypto-Type values are defined in this document: | Crypto-Type values are defined in this document: | |||
| +----------------+---------------+---------------+---------------+ | +----------------+----------------+----------------+----------------+ | |||
| | Crypto-Type | 0 (ECDSA256) | 1 (Ed25519) | 2 | | | Crypto-Type | 0 (ECDSA256) | 1 (Ed25519) | 2 | | |||
| | value | | | (ECDSA25519) | | | value | | | (ECDSA25519) | | |||
| +================+===============+===============+===============+ | +================+================+================+================+ | |||
| | Elliptic curve | NIST P-256 | Curve25519 | Curve25519 | | | Elliptic curve | NIST P-256 | Curve25519 | Curve25519 | | |||
| | | [FIPS186-4] | [RFC7748] | [RFC7748] | | | | [FIPS186-4] | [RFC7748] | [RFC7748] | | |||
| +----------------+---------------+---------------+---------------+ | +----------------+----------------+----------------+----------------+ | |||
| | Hash function | SHA-256 | SHA-512 | SHA-256 | | | Hash function | SHA-256 | SHA-512 | SHA-256 | | |||
| | | [RFC6234] | [RFC6234] | [RFC6234] | | | | [RFC6234] | [RFC6234] | [RFC6234] | | |||
| +----------------+---------------+---------------+---------------+ | +----------------+----------------+----------------+----------------+ | |||
| | Signature | ECDSA | Ed25519 | ECDSA | | | Signature | ECDSA | Ed25519 | ECDSA | | |||
| | algorithm | [FIPS186-4] | [RFC8032] | [FIPS186-4] | | | algorithm | [FIPS186-4] | [RFC8032] | [FIPS186-4] | | |||
| +----------------+---------------+---------------+---------------+ | +----------------+----------------+----------------+----------------+ | |||
| | Representation | Weierstrass, | Edwards, | Weierstrass, | | | Representation | Weierstrass, | Edwards, | Weierstrass, | | |||
| | conventions | uncompressed, | compressed, | compressed, | | | conventions | uncompressed, | compressed, | compressed, | | |||
| | | MSB/msb first | LSB/lsb first | MSB/msb first | | | | MSB/msb first, | LSB/lsb first, | MSB/msb | | |||
| +----------------+---------------+---------------+---------------+ | | | [RFC7518] | [RFC8037] | first, | | |||
| | Defining | This document | This document | This document | | | | | | [CURVE-REPR] | | |||
| | specification | | | | | +----------------+----------------+----------------+----------------+ | |||
| +----------------+---------------+---------------+---------------+ | | Defining | This document | This document | This | | |||
| | specification | | | document | | ||||
| +----------------+----------------+----------------+----------------+ | ||||
| Table 2: Crypto-Types | Table 2: Crypto-Types | |||
| New Crypto-Type values providing similar or better security may be | New Crypto-Type values providing similar or better security may be | |||
| defined in the future. | 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 either "Specification Required" or "IESG Approval" as | IANA with either "Specification Required" or "IESG Approval" as | |||
| defined in BCP 26 [RFC8126]. | defined in BCP 26 [RFC8126]. | |||
| The "Defining specification" column indicates the document that | The "Defining specification" column indicates the document that | |||
| defines the length and computation of the digital signature, which | defines the length and computation of the digital signature, which | |||
| could be this for values defined through "IESG Approval". | could be this for values defined through "IESG Approval". | |||
| 8.4. New Codepoints Associated to JWK Encoding | 8.4. New Codepoints Associated to JWK Encoding | |||
| Code points are requested for curve Wei25519 and its use with ECDSA, | Code points are requested for curve Wei25519 and its use with ECDSA, | |||
| using the representation conventions of this document. | using the representation conventions of this document. | |||
| 8.4.1. COSE Elliptic Curves Registration | 8.4.1. JOSE Elliptic Curves Registration | |||
| This section registers the following value in the IANA "COSE Elliptic | ||||
| Curves" registry [IANA.COSE.Curves]. | ||||
| Name: Wei25519 | ||||
| Value: TBD (Requested value: -1) | ||||
| Key Type: EC2 or OKP (where OKP uses the MSB/msb representation of | ||||
| this specification) | ||||
| Description: short-Weierstrass curve Wei25519 | ||||
| Change Controller: IESG | ||||
| Reference: Appendix E.3 of [CURVE-REPRESENTATIONS] | ||||
| Recommended: Yes. | ||||
| (Note that The "kty" value for Wei25519 may be "OKP" or "EC2".) | ||||
| 8.4.2. COSE Algorithms Registration | ||||
| This section registers the following value in the IANA "COSE | ||||
| Algorithms" registry [IANA.COSE.Algorithms]. | ||||
| Name: ECDSA25519 | ||||
| Value: TBD (Requested value: -1) | ||||
| Description: ECDSA using SHA-256 and curve Wei25519 | ||||
| Change Controller: IESG | ||||
| Reference: Section 4.3 of [CURVE-REPRESENTATIONS] | ||||
| Recommended: Yes. | ||||
| 8.4.3. JOSE Elliptic Curves Registration | ||||
| This section registers the following value in the IANA "JSON Web Key | This section registers the following value in the IANA "JSON Web Key | |||
| Elliptic Curve" registry [IANA.JOSE.Curves]. | Elliptic Curve" registry [IANA.JOSE.Curves]. | |||
| Curve Name: Wei25519 | Curve Name: Wei25519 | |||
| Curve Description: short-Weierstrass curve Wei25519 | Curve Description: short-Weierstrass curve Wei25519 | |||
| JOSE Implementation Requirements: Optional | JOSE Implementation Requirements: Optional | |||
| Change Controller: IESG | Change Controller: IESG | |||
| Reference: Appendix E.3 of [CURVE-REPRESENTATIONS] | Reference: Appendix E.3 of [CURVE-REPR] | |||
| 8.4.4. JOSE Algorithms Registration | 8.4.2. JOSE Algorithms Registration | |||
| This section registers the following value in the IANA "JSON Web | This section registers the following value in the IANA "JSON Web | |||
| Signature and Encryption Algorithms" registry [IANA.JOSE.Algorithms]. | Signature and Encryption Algorithms" registry [IANA.JOSE.Algorithms]. | |||
| Algorithm Name: ECDSA25519 | Algorithm Name: ECDSA25519 | |||
| Algorithm Description: ECDSA using SHA-256 and curve Wei25519 | Algorithm Description: ECDSA using SHA-256 and curve Wei25519 | |||
| Algorithm Usage Locations: alg | Algorithm Usage Locations: alg | |||
| JOSE Implementation Requirements: Optional | JOSE Implementation Requirements: Optional | |||
| Change Controller: IESG | Change Controller: IESG | |||
| Reference: Section 4.3 of [CURVE-REPRESENTATIONS] | Reference: Section 4.3 of [CURVE-REPR] | |||
| Algorithm Analysis Document(s): Section 4.3 of | Algorithm Analysis Document(s): Section 4.3 of [CURVE-REPR] | |||
| [CURVE-REPRESENTATIONS] | ||||
| 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 and Benjamin Kaduk for their comments and | to Robert Moskowitz and Benjamin Kaduk for their comments and | |||
| discussions that led to many improvements. The authors wish to also | discussions that led to many improvements. The authors wish to also | |||
| thank Roman Danyliw, Alissa Cooper, Mirja Kuhlewind, Eric Vyncke, | thank Roman Danyliw, Alissa Cooper, Mirja Kuhlewind, Eric Vyncke, | |||
| Vijay Gurbani, Al Morton and Adam Montville for their constructive | Vijay Gurbani, Al Morton and Adam Montville for their constructive | |||
| reviews during the IESG process. | 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>. | ||||
| [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | ||||
| (SHA and SHA-based HMAC and HKDF)", RFC 6234, | ||||
| DOI 10.17487/RFC6234, May 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6234>. | ||||
| [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>. | |||
| [RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for | ||||
| IPv6 over Low-Power Wireless Personal Area Networks | ||||
| (6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November | ||||
| 2014, <https://www.rfc-editor.org/info/rfc7400>. | ||||
| [RFC7515] Jones, M., Bradley, J., and N. Sakimura, "JSON Web | ||||
| Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May | ||||
| 2015, <https://www.rfc-editor.org/info/rfc7515>. | ||||
| [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 | ||||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/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>. | ||||
| [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>. | |||
| [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>. | ||||
| [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>. | |||
| [RFC6234] Eastlake 3rd, D. and T. Hansen, "US Secure Hash Algorithms | ||||
| (SHA and SHA-based HMAC and HKDF)", RFC 6234, | ||||
| DOI 10.17487/RFC6234, May 2011, | ||||
| <https://www.rfc-editor.org/info/rfc6234>. | ||||
| [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 | |||
| [IANA.COSE.Algorithms] | ||||
| IANA, "COSE Algorithms", IANA, | ||||
| https://www.iana.org/assignments/cose/ | ||||
| cose.xhtml#algorithms. | ||||
| [IANA.COSE.Curves] | ||||
| IANA, "COSE Elliptic Curves", IANA, | ||||
| https://www.iana.org/assignments/cose/cose.xhtml#elliptic- | ||||
| curves. | ||||
| [IANA.JOSE.Algorithms] | [IANA.JOSE.Algorithms] | |||
| IANA, "JSON Web Signature and Encryption Algorithms", | IANA, "JSON Web Signature and Encryption Algorithms", | |||
| IANA, | IANA, | |||
| https://www.iana.org/assignments/jose/jose.xhtml#web- | https://www.iana.org/assignments/jose/jose.xhtml#web- | |||
| signature-encryption-algorithms. | signature-encryption-algorithms. | |||
| [IANA.JOSE.Curves] | [IANA.JOSE.Curves] | |||
| IANA, "JSON Web Key Elliptic Curve", IANA, | IANA, "JSON Web Key Elliptic Curve", IANA, | |||
| https://www.iana.org/assignments/jose/jose.xhtml#web-key- | https://www.iana.org/assignments/jose/jose.xhtml#web-key- | |||
| elliptic-curve. | elliptic-curve. | |||
| [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>. | |||
| [BCP 106] 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>. | ||||
| [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>. | |||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | ||||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals", | ||||
| RFC 4919, DOI 10.17487/RFC4919, August 2007, | ||||
| <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>. | |||
| [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>. | |||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | ||||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | ||||
| Overview, Assumptions, Problem Statement, and Goals", | ||||
| RFC 4919, DOI 10.17487/RFC4919, August 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4919>. | ||||
| [BCP 106] 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 | ||||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [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>. | |||
| [RFC7518] Jones, M., "JSON Web Algorithms (JWA)", RFC 7518, | ||||
| DOI 10.17487/RFC7518, May 2015, | ||||
| <https://www.rfc-editor.org/info/rfc7518>. | ||||
| [BCP 201] Housley, R., "Guidelines for Cryptographic Algorithm | [BCP 201] 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>. | |||
| [RFC8037] Liusvaara, I., "CFRG Elliptic Curve Diffie-Hellman (ECDH) | ||||
| and Signatures in JSON Object Signing and Encryption | ||||
| (JOSE)", RFC 8037, DOI 10.17487/RFC8037, January 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8037>. | ||||
| [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, | [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, | |||
| "Recommendation on Stable IPv6 Interface Identifiers", | "Recommendation on Stable IPv6 Interface Identifiers", | |||
| RFC 8064, DOI 10.17487/RFC8064, February 2017, | RFC 8064, DOI 10.17487/RFC8064, February 2017, | |||
| <https://www.rfc-editor.org/info/rfc8064>. | <https://www.rfc-editor.org/info/rfc8064>. | |||
| [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- | [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- | |||
| Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, | Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, | |||
| February 2017, <https://www.rfc-editor.org/info/rfc8065>. | February 2017, <https://www.rfc-editor.org/info/rfc8065>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | ||||
| Writing an IANA Considerations Section in RFCs", BCP 26, | ||||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | ||||
| <https://www.rfc-editor.org/info/rfc8126>. | ||||
| [BACKBONE-ROUTER] | [BACKBONE-ROUTER] | |||
| Thubert, P., Perkins, C., and E. Levy-Abegnoli, "IPv6 | 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-19, 3 March 2020, | ietf-6lo-backbone-router-20, 23 March 2020, | |||
| <https://tools.ietf.org/html/draft-ietf-6lo-backbone- | <https://tools.ietf.org/html/draft-ietf-6lo-backbone- | |||
| router-19>. | router-20>. | |||
| [CURVE-REPRESENTATIONS] | [CURVE-REPR] | |||
| 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-09, 9 March 2020, | |||
| <https://tools.ietf.org/html/draft-ietf-lwig-curve- | <https://tools.ietf.org/html/draft-ietf-lwig-curve- | |||
| representations-08>. | representations-09>. | |||
| [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, | |||
| <https://link.springer.com/ | <https://link.springer.com/ | |||
| chapter/10.1007/978-3-319-76953-0_1>. | chapter/10.1007/978-3-319-76953-0_1>. | |||
| Appendix A. Requirements Addressed in this Document | Appendix A. Requirements Addressed in this Document | |||
| skipping to change at page 30, line 19 ¶ | skipping to change at page 30, line 30 ¶ | |||
| 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 transformations | [FIPS186-4]. For details of the coordinate transformations | |||
| referenced above, see [RFC7748] and [CURVE-REPRESENTATIONS]. | referenced above, see [RFC7748] and [CURVE-REPR]. | |||
| 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. 66 change blocks. | ||||
| 224 lines changed or deleted | 247 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/ | ||||