| rfc9374.original | rfc9374.txt | |||
|---|---|---|---|---|
| DRIP R. Moskowitz | Internet Engineering Task Force (IETF) R. Moskowitz | |||
| Internet-Draft HTT Consulting | Request for Comments: 9374 HTT Consulting | |||
| Updates: 7401, 7343 (if approved) S. Card | Updates: 7401, 7343 S. Card | |||
| Intended status: Standards Track A. Wiethuechter | Category: Standards Track A. Wiethuechter | |||
| Expires: 5 June 2023 AX Enterprize, LLC | ISSN: 2070-1721 AX Enterprize, LLC | |||
| A. Gurtov | A. Gurtov | |||
| Linköping University | Linköping University | |||
| 2 December 2022 | March 2023 | |||
| DRIP Entity Tag (DET) for Unmanned Aircraft System Remote ID (UAS RID) | DRIP Entity Tag (DET) for Unmanned Aircraft System Remote ID (UAS RID) | |||
| draft-ietf-drip-rid-37 | ||||
| Abstract | Abstract | |||
| This document describes the use of Hierarchical Host Identity Tags | This document describes the use of Hierarchical Host Identity Tags | |||
| (HHITs) as self-asserting IPv6 addresses and thereby a trustable | (HHITs) as self-asserting IPv6 addresses, which makes them trustable | |||
| identifier for use as the Unmanned Aircraft System Remote | identifiers for use in Unmanned Aircraft System Remote Identification | |||
| Identification and tracking (UAS RID). | (UAS RID) and tracking. | |||
| This document updates RFC7401 and RFC7343. | This document updates RFCs 7401 and 7343. | |||
| Within the context of RID, HHITs will be called DRIP Entity Tags | Within the context of RID, HHITs will be called DRIP Entity Tags | |||
| (DETs). HHITs provide claims to the included explicit hierarchy that | (DETs). HHITs provide claims to the included explicit hierarchy that | |||
| provides registry (via, e.g., DNS, RDAP) discovery for 3rd-party | provides registry (via, for example, DNS, RDAP) discovery for third- | |||
| identifier endorsement. | party identifier endorsement. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 5 June 2023. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9374. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 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 | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction | |||
| 1.1. HHIT Statistical Uniqueness different from UUID or X.509 | 1.1. HHIT Statistical Uniqueness Different from UUID or X.509 | |||
| Subject . . . . . . . . . . . . . . . . . . . . . . . . . 4 | Subject | |||
| 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 4 | 2. Terms and Definitions | |||
| 2.1. Requirements Terminology . . . . . . . . . . . . . . . . 4 | 2.1. Requirements Terminology | |||
| 2.2. Notations . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Notation | |||
| 2.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 5 | 2.3. Definitions | |||
| 3. The Hierarchical Host Identity Tag (HHIT) . . . . . . . . . . 6 | 3. The Hierarchical Host Identity Tag (HHIT) | |||
| 3.1. HHIT Prefix for RID Purposes . . . . . . . . . . . . . . 7 | 3.1. HHIT Prefix for RID Purposes | |||
| 3.2. HHIT Suite IDs . . . . . . . . . . . . . . . . . . . . . 7 | 3.2. HHIT Suite IDs | |||
| 3.2.1. HDA custom HIT Suite IDs . . . . . . . . . . . . . . 8 | 3.2.1. HDA Custom HIT Suite IDs | |||
| 3.3. The Hierarchy ID (HID) . . . . . . . . . . . . . . . . . 8 | 3.3. The Hierarchy ID (HID) | |||
| 3.3.1. The Registered Assigning Authority (RAA) . . . . . . 9 | 3.3.1. The Registered Assigning Authority (RAA) | |||
| 3.3.2. The Hierarchical HIT Domain Authority (HDA) . . . . . 9 | 3.3.2. The HHIT Domain Authority (HDA) | |||
| 3.4. Edwards-Curve Digital Signature Algorithm for HHITs . . . 10 | 3.4. Edwards-Curve Digital Signature Algorithm for HHITs | |||
| 3.4.1. HOST_ID . . . . . . . . . . . . . . . . . . . . . . . 10 | 3.4.1. HOST_ID | |||
| 3.4.2. HIT_SUITE_LIST . . . . . . . . . . . . . . . . . . . 11 | 3.4.2. HIT_SUITE_LIST | |||
| 3.5. ORCHIDs for Hierarchical HITs . . . . . . . . . . . . . . 12 | 3.5. ORCHIDs for HHITs | |||
| 3.5.1. Adding Additional Information to the ORCHID . . . . . 13 | 3.5.1. Adding Additional Information to the ORCHID | |||
| 3.5.2. ORCHID Encoding . . . . . . . . . . . . . . . . . . . 14 | 3.5.2. ORCHID Encoding | |||
| 3.5.3. ORCHID Decoding . . . . . . . . . . . . . . . . . . . 16 | 3.5.3. ORCHID Decoding | |||
| 3.5.4. Decoding ORCHIDs for HIPv2 . . . . . . . . . . . . . 16 | 3.5.4. Decoding ORCHIDs for HIPv2 | |||
| 4. Hierarchical HITs as DRIP Entity Tags . . . . . . . . . . . . 16 | 4. HHITs as DRIP Entity Tags | |||
| 4.1. Nontransferablity of DETs . . . . . . . . . . . . . . . . 17 | 4.1. Nontransferablity of DETs | |||
| 4.2. Encoding HHITs in CTA 2063-A Serial Numbers . . . . . . . 17 | 4.2. Encoding HHITs in CTA 2063-A Serial Numbers | |||
| 4.3. Remote ID DET as one Class of Hierarchical HITs . . . . . 18 | 4.3. Remote ID DET as one Class of HHITs | |||
| 4.4. Hierarchy in ORCHID Generation . . . . . . . . . . . . . 18 | 4.4. Hierarchy in ORCHID Generation | |||
| 4.5. DRIP Entity Tag (DET) Registry . . . . . . . . . . . . . 19 | 4.5. DRIP Entity Tag (DET) Registry | |||
| 4.6. Remote ID Authentication using DETs . . . . . . . . . . . 19 | 4.6. Remote ID Authentication Using DETs | |||
| 5. DRIP Entity Tags (DETs) in DNS . . . . . . . . . . . . . . . 20 | 5. DRIP Entity Tags (DETs) in DNS | |||
| 6. Other UAS Traffic Management (UTM) Uses of HHITs Beyond | 6. Other UAS Traffic Management (UTM) Uses of HHITs Beyond DET | |||
| DET . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 7. Summary of Addressed DRIP Requirements | |||
| 7. Summary of Addressed DRIP Requirements . . . . . . . . . . . 21 | 8. IANA Considerations | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 21 | 8.1. New Well-Known IPv6 Prefix for DETs | |||
| 8.1. New Well-Known IPv6 prefix for DETs . . . . . . . . . . . 21 | 8.2. New IANA DRIP Registry | |||
| 8.2. New IANA DRIP Registry . . . . . . . . . . . . . . . . . 22 | 8.2.1. HHIT Prefixes | |||
| 8.3. IANA CGA Registry Update . . . . . . . . . . . . . . . . 23 | 8.2.2. HHIT Suite IDs | |||
| 8.4. IANA HIP Registry Updates . . . . . . . . . . . . . . . . 23 | 8.3. IANA CGA Registry Update | |||
| 9. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | 8.4. IANA HIP Registry Updates | |||
| 9.1. Post Quantum Computing out of scope . . . . . . . . . . . 26 | 9. Security Considerations | |||
| 9.2. DET Trust in ASTM messaging . . . . . . . . . . . . . . . 26 | 9.1. Post-Quantum Computing Is Out of Scope | |||
| 9.3. DET Revocation . . . . . . . . . . . . . . . . . . . . . 27 | 9.2. DET Trust in ASTM Messaging | |||
| 9.4. Privacy Considerations . . . . . . . . . . . . . . . . . 27 | 9.3. DET Revocation | |||
| 9.5. Collision Risks with DETs . . . . . . . . . . . . . . . . 28 | 9.4. Privacy Considerations | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 9.5. Collision Risks with DETs | |||
| 10.1. Normative References . . . . . . . . . . . . . . . . . . 28 | 10. References | |||
| 10.2. Informative References . . . . . . . . . . . . . . . . . 30 | 10.1. Normative References | |||
| Appendix A. EU U-Space RID Privacy Considerations . . . . . . . 32 | 10.2. Informative References | |||
| Appendix B. The 14/14 HID split . . . . . . . . . . . . . . . . 33 | Appendix A. EU U-Space RID Privacy Considerations | |||
| B.1. DET Encoding Example . . . . . . . . . . . . . . . . . . 34 | Appendix B. The 14/14 HID split | |||
| Appendix C. Base32 Alphabet . . . . . . . . . . . . . . . . . . 35 | B.1. DET Encoding Example | |||
| Appendix D. Calculating Collision Probabilities . . . . . . . . 35 | Appendix C. Base32 Alphabet | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 36 | Appendix D. Calculating Collision Probabilities | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 36 | Acknowledgments | |||
| Authors' Addresses | ||||
| 1. Introduction | 1. Introduction | |||
| Drone Remote ID Protocol (DRIP) Requirements [RFC9153] describe an | Drone Remote ID Protocol (DRIP) Requirements [RFC9153] describe an | |||
| Unmanned Aircraft System Remote ID (UAS ID) as unique (ID-4), non- | Unmanned Aircraft System Remote ID (UAS ID) as unique (ID-4), non- | |||
| spoofable (ID-5), and identify a registry where the ID is listed (ID- | spoofable (ID-5), and identify a registry where the ID is listed | |||
| 2); all within a 19-character identifier (ID-1). | (ID-2); all within a 19-character identifier (ID-1). | |||
| This DRIP foundational document (i.e., all else in DRIP enables or | This RFC is a foundational document of DRIP, as it describes the use | |||
| uses it) describes (per Section 3 of [drip-architecture]) the use of | of Hierarchical Host Identity Tags (HHITs) (Section 3) as self- | |||
| Hierarchical Host Identity Tags (HHITs) (Section 3) as self-asserting | asserting IPv6 addresses and thereby a trustable identifier for use | |||
| IPv6 addresses and thereby a trustable identifier for use as the UAS | as the UAS Remote ID (see Section 3 of [DRIP-ARCH]). All other DRIP- | |||
| Remote ID. HHITs add explicit hierarchy to the 128-bit HITs, | related technologies will enable or use HHITs as multipurpose remote | |||
| identifiers. HHITs add explicit hierarchy to the 128-bit HITs, | ||||
| enabling DNS HHIT queries (Host ID for authentication, e.g., | enabling DNS HHIT queries (Host ID for authentication, e.g., | |||
| [drip-authentication]) and for use with a Differentiated Access | [DRIP-AUTH]) and use with a Differentiated Access Control (e.g., | |||
| Control (e.g. Registration Data Access Protocol (RDAP) [RFC9224]) | Registration Data Access Protocol (RDAP) [RFC9224]) for 3rd-party | |||
| for 3rd-party identification endorsement (e.g., | identification endorsement (e.g., [DRIP-AUTH]). | |||
| [drip-authentication]). | ||||
| This addition of hierarchy to HITs is an extension to [RFC7401] and | The addition of hierarchy to HITs is an extension to [RFC7401] and | |||
| requires an update to [RFC7343]. As this document also adds EdDSA | requires an update to [RFC7343]. As this document also adds EdDSA | |||
| (Section 3.4) for Host Identities (HIs), a number of Host Identity | (Section 3.4) for Host Identities (HIs), a number of Host Identity | |||
| Protocol (HIP) parameters in [RFC7401] are updated, but these should | Protocol (HIP) parameters in [RFC7401] are updated, but these should | |||
| not be needed in a DRIP implementation that does not use HIP. | not be needed in a DRIP implementation that does not use HIP. | |||
| HHITs as used within the context of Unmanned Aircraft System (UAS) | HHITs as used within the context of UAS are labeled as DRIP Entity | |||
| are labeled as DRIP Entity Tags (DETs). Throughout this document | Tags (DETs). Throughout this document, HHIT and DET will be used | |||
| HHIT and DET will be used appropriately. HHIT will be used when | appropriately. HHIT will be used when covering the technology, and | |||
| covering the technology, and DET for their context within UAS RID. | DET will be used in the context of UAS RID. | |||
| Hierarchical HITs provide self-claims of the HHIT registry. A HHIT | HHITs provide self-claims of the HHIT registry. A HHIT can only be | |||
| can only be in a single registry within a registry system (e.g. | in a single registry within a registry system (e.g., DNS). | |||
| DNS). | ||||
| Hierarchical HITs are valid, though non-routable, IPv6 addresses | HHITs are valid, though non-routable, IPv6 addresses [RFC8200]. As | |||
| [RFC8200]. As such, they fit in many ways within various IETF | such, they fit in many ways within various IETF technologies. | |||
| technologies. | ||||
| 1.1. HHIT Statistical Uniqueness different from UUID or X.509 Subject | 1.1. HHIT Statistical Uniqueness Different from UUID or X.509 Subject | |||
| HHITs are statistically unique through the cryptographic hash feature | HHITs are statistically unique through the cryptographic hash feature | |||
| of second-preimage resistance. The cryptographically-bound addition | of second-preimage resistance. The cryptographically bound addition | |||
| of the hierarchy and a HHIT registration process [drip-registries] | of the hierarchy and a HHIT registration process [DRIP-REG] provide | |||
| provide complete, global HHIT uniqueness. If the HHITs cannot be | complete, global HHIT uniqueness. If the HHITs cannot be looked up | |||
| looked up with services provided by the DRIP Identity Management | with services provided by the DRIP Identity Management Entity (DIME) | |||
| Entity (DIME) identified via the embedded hierarchical information or | identified via the embedded hierarchical information or its | |||
| its registration validated by registration endorsement messages | registration validated by registration endorsement messages | |||
| [drip-authentication], then the HHIT is either fraudulent or revoked/ | [DRIP-AUTH], then the HHIT is either fraudulent or revoked/expired. | |||
| expired. In-depth discussion of these processes are out of scope for | In-depth discussion of these processes are out of scope for this | |||
| this document. | document. | |||
| This contrasts with using general identifiers (e.g., a Universally | This contrasts with using general identifiers (e.g., Universally | |||
| Unique IDentifiers (UUID) [RFC4122] or device serial numbers as the | Unique IDentifiers (UUID) [RFC4122] or device serial numbers) as the | |||
| subject in an X.509 [RFC5280] certificate. In either case, there can | subject in an X.509 [RFC5280] certificate. In either case, there can | |||
| be no unique proof of ownership/registration. | be no unique proof of ownership/registration. | |||
| For example, in a multi-Certificate Authority (multi-CA) PKI | For example, in a multi-Certificate Authority (multi-CA) PKI | |||
| alternative to HHITs, a Remote ID as the Subject (Section 4.1.2.6 of | alternative to HHITs, a Remote ID as the Subject (Section 4.1.2.6 of | |||
| [RFC5280]) can occur in multiple CAs, possibly fraudulently. CAs | [RFC5280]) can occur in multiple CAs, possibly fraudulently. CAs | |||
| within the PKI would need to implement an approach to enforce | within the PKI would need to implement an approach to enforce | |||
| assurance of the uniqueness achieved with HHITs. | assurance of the uniqueness achieved with HHITs. | |||
| 2. Terms and Definitions | 2. Terms and Definitions | |||
| 2.1. Requirements Terminology | 2.1. Requirements Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in | "SHOULD", "SHOULD NOT", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in | |||
| this document are to be interpreted as described in BCP 14 [RFC2119] | this document are to be interpreted as described in BCP 14 [RFC2119] | |||
| [RFC8174] when, and only when, they appear in all capitals, as shown | [RFC8174] when, and only when, they appear in all capitals, as shown | |||
| here. | here. | |||
| The document includes a set of algorithms with a guidance on the ones | The document includes a set of algorithms and recommends the ones | |||
| that are recommended to be supported by implementations. The | that should be supported by implementations. The following term is | |||
| following term is used for that purpose: RECOMMENDED. | used for that purpose: RECOMMENDED. | |||
| 2.2. Notations | 2.2. Notation | |||
| | Signifies concatenation of information - e.g., X | Y is the | | Signifies concatenation of information, e.g., X | Y is the | |||
| concatenation of X and Y. | concatenation of X and Y. | |||
| 2.3. Definitions | 2.3. Definitions | |||
| This document uses the terms defined in Section 2.2 of [RFC9153] and | This document uses the terms defined in Section 2.2 of [RFC9153] and | |||
| in Section 2 of [drip-architecture]. The following new terms are | in Section 2 of [DRIP-ARCH]. The following terms are used in the | |||
| used in the document: | document: | |||
| cSHAKE (The customizable SHAKE function [NIST.SP.800-185]): | cSHAKE (The customizable SHAKE function [NIST.SP.800-185]): | |||
| Extends the SHAKE [NIST.FIPS.202] scheme to allow users to | Extends the SHAKE scheme [NIST.FIPS.202] to allow users to | |||
| customize their use of the SHAKE function. | customize their use of the SHAKE function. | |||
| HDA (HHIT Domain Authority): | HDA (HHIT Domain Authority): | |||
| The 14-bit field that identifies the HHIT Domain Authority under a | The 14-bit field that identifies the HHIT Domain Authority under a | |||
| Registered Assigning Authority (RAA). See Figure 1. | Registered Assigning Authority (RAA). See Figure 1. | |||
| HHIT | HHIT (Hierarchical Host Identity Tag): | |||
| Hierarchical Host Identity Tag. A HIT with extra hierarchical | A HIT with extra hierarchical information not found in a standard | |||
| information not found in a standard HIT [RFC7401]. | HIT [RFC7401]. | |||
| HI | HI (Host Identity): | |||
| Host Identity. The public key portion of an asymmetric key pair | The public key portion of an asymmetric key pair as defined in | |||
| as defined in [RFC9063]. | [RFC9063]. | |||
| HID (Hierarchy ID): | HID (Hierarchy ID): | |||
| The 28-bit field providing the HIT Hierarchy ID. See Figure 1. | The 28-bit field providing the HIT Hierarchy ID. See Figure 1. | |||
| HIP (Host Identity Protocol) | HIP (Host Identity Protocol): | |||
| The origin [RFC7401] of HI, HIT, and HHIT. | The origin of HI, HIT, and HHIT [RFC7401]. | |||
| HIT | HIT (Host Identity Tag): | |||
| Host Identity Tag. A 128-bit handle on the HI. HITs are valid | A 128-bit handle on the HI. HITs are valid IPv6 addresses. | |||
| IPv6 addresses. | ||||
| Keccak (KECCAK Message Authentication Code): | Keccak (KECCAK Message Authentication Code): | |||
| The family of all sponge functions with a KECCAK-f permutation as | The family of all sponge functions with a KECCAK-f permutation as | |||
| the underlying function and multi-rate padding as the padding | the underlying function and multi-rate padding as the padding | |||
| rule. It refers in particular to all the functions referenced | rule. In particular, it refers to all the functions referenced | |||
| from [NIST.FIPS.202] and [NIST.SP.800-185]. | from [NIST.FIPS.202] and [NIST.SP.800-185]. | |||
| KMAC (KECCAK Message Authentication Code [NIST.SP.800-185]): | KMAC (KECCAK Message Authentication Code [NIST.SP.800-185]): | |||
| A Pseudo Random Function (PRF) and keyed hash function based on | A Pseudo Random Function (PRF) and keyed hash function based on | |||
| KECCAK. | KECCAK. | |||
| RAA (Registered Assigning Authority): | RAA (Registered Assigning Authority): | |||
| The 14-bit field identifying the business or organization that | The 14-bit field identifying the business or organization that | |||
| manages a registry of HDAs. See Figure 1. | manages a registry of HDAs. See Figure 1. | |||
| skipping to change at page 6, line 22 ¶ | skipping to change at line 250 ¶ | |||
| SHAKE (Secure Hash Algorithm KECCAK [NIST.FIPS.202]): | SHAKE (Secure Hash Algorithm KECCAK [NIST.FIPS.202]): | |||
| A secure hash that allows for an arbitrary output length. | A secure hash that allows for an arbitrary output length. | |||
| XOF (eXtendable-Output Function [NIST.FIPS.202]): | XOF (eXtendable-Output Function [NIST.FIPS.202]): | |||
| A function on bit strings (also called messages) in which the | A function on bit strings (also called messages) in which the | |||
| output can be extended to any desired length. | output can be extended to any desired length. | |||
| 3. The Hierarchical Host Identity Tag (HHIT) | 3. The Hierarchical Host Identity Tag (HHIT) | |||
| The Hierarchical HIT (HHIT) is a small but important enhancement over | The HHIT is a small but important enhancement over the flat Host | |||
| the flat Host Identity Tag (HIT) space, constructed as an Overlay | Identity Tag (HIT) space, constructed as an Overlay Routable | |||
| Routable Cryptographic Hash IDentifier (ORCHID) [RFC7343]. By adding | Cryptographic Hash IDentifier (ORCHID) [RFC7343]. By adding two | |||
| two levels of hierarchical administration control, the HHIT provides | levels of hierarchical administration control, the HHIT provides for | |||
| for device registration/ownership, thereby enhancing the trust | device registration/ownership, thereby enhancing the trust framework | |||
| framework for HITs. | for HITs. | |||
| The 128-bit HHITs represent the HI in only a 64-bit hash, rather than | The 128-bit HHITs represent the HI in only a 64-bit hash, rather than | |||
| the 96 bits in HITs. 4 of these 32 freed up bits expand the Suite ID | the 96 bits in HITs. 4 of these 32 freed up bits expand the Suite ID | |||
| to 8 bits, and the other 28 bits are used to create a hierarchical | to 8 bits, and the other 28 bits are used to create a hierarchical | |||
| administration organization for HIT domains. Hierarchical HIT | administration organization for HIT domains. HHIT construction is | |||
| construction is defined in Section 3.5. The input values for the | defined in Section 3.5. The input values for the encoding rules are | |||
| Encoding rules are described in Section 3.5.1. | described in Section 3.5.1. | |||
| A HHIT is built from the following fields (Figure 1): | A HHIT is built from the following fields (Figure 1): | |||
| * p = an IPV6 prefix (max 28 bit) | * p = an IPv6 prefix (max 28 bit) | |||
| * 28-bit Hierarchy ID (HID) which provides the structure to organize | * 28-bit HID which provides the structure to organize HITs into | |||
| HITs into administrative domains. HIDs are further divided into | administrative domains. HIDs are further divided into two fields: | |||
| two fields: | ||||
| - 14-bit Registered Assigning Authority (RAA) (Section 3.3.1) | - 14-bit Registered Assigning Authority (RAA) (Section 3.3.1) | |||
| - 14-bit Hierarchical HIT Domain Authority (HDA) (Section 3.3.2) | - 14-bit HHIT Domain Authority (HDA) (Section 3.3.2) | |||
| * 8-bit HHIT Suite ID (HHSI) | * 8-bit HHIT Suite ID (HHSI) | |||
| * ORCHID hash (92 - prefix length, e.g., 64) See Section 3.5 for | * ORCHID hash (92 - prefix length, e.g., 64) See Section 3.5 for | |||
| more details. | more details. | |||
| 14 bits| 14 bits 8 bits | 14 bits| 14 bits 8 bits | |||
| +-------+-------+ +--------------+ | +-------+-------+ +--------------+ | |||
| | RAA | HDA | |HHIT Suite ID | | | RAA | HDA | |HHIT Suite ID | | |||
| +-------+-------+ +--------------+ | +-------+-------+ +--------------+ | |||
| \ | ____/ ___________/ | \ | ____/ ___________/ | |||
| \ \ _/ ___/ | \ \ _/ ___/ | |||
| \ \/ / | \ \/ / | |||
| | p bits | 28 bits |8bits| o=92-p bits | | | p bits | 28 bits |8bits| o=92-p bits | | |||
| +--------------+------------+-----+------------------------+ | +--------------+------------+-----+------------------------+ | |||
| | IPV6 Prefix | HID |HHSI | ORCHID hash | | | IPv6 Prefix | HID |HHSI | ORCHID hash | | |||
| +--------------+------------+-----+------------------------+ | +--------------+------------+-----+------------------------+ | |||
| Figure 1: HHIT Format | Figure 1: HHIT Format | |||
| The Context ID (generated with openssl rand) for the ORCHID hash is: | The Context ID (generated with openssl rand) for the ORCHID hash is: | |||
| Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 | Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 | |||
| Context IDs are allocated out of the namespace introduced for | Context IDs are allocated out of the namespace introduced for | |||
| Cryptographically Generated Addresses (CGA) Type Tags [RFC3972]. | Cryptographically Generated Addresses (CGA) Type Tags [RFC3972]. | |||
| 3.1. HHIT Prefix for RID Purposes | 3.1. HHIT Prefix for RID Purposes | |||
| The IPv6 HHIT prefix MUST be distinct from that used in the flat- | The IPv6 HHIT prefix MUST be distinct from that used in the flat- | |||
| space HIT as allocated in [RFC7343]. Without this distinct prefix, | space HIT as allocated in [RFC7343]. Without this distinct prefix, | |||
| the first 4 bits of the RAA would be interpreted as the HIT Suite ID | the first 4 bits of the RAA would be interpreted as the HIT Suite ID | |||
| per HIPv2 [RFC7401]. | per HIPv2 [RFC7401]. | |||
| Initially, for DET use, one 28-bit prefix should be assigned out of | Initially, the IPv6 prefix listed in Table 1 is assigned for DET use. | |||
| the IANA IPv6 Special Purpose Address Block ([RFC6890]). | It has been registered in the "IANA IPv6 Special-Purpose Address | |||
| Registry" [RFC6890]. | ||||
| HHIT Use Bits Value | +==========+======+==============+ | |||
| DET 28 TBD6 (suggested value 2001:30::/28) | | HHIT Use | Bits | Value | | |||
| +==========+======+==============+ | ||||
| | DET | 28 | 2001:30::/28 | | ||||
| +----------+------+--------------+ | ||||
| Table 1: Initial DET IPv6 Prefix | ||||
| Other prefixes may be added in the future either for DET use or other | Other prefixes may be added in the future either for DET use or other | |||
| applications of HHITs. For a prefix to be added to the registry in | applications of HHITs. For a prefix to be added to the registry in | |||
| Section 8.2, its usage and HID allocation process have to be publicly | Section 8.2, its usage and HID allocation process have to be publicly | |||
| available. | available. | |||
| 3.2. HHIT Suite IDs | 3.2. HHIT Suite IDs | |||
| The HHIT Suite IDs specify the HI and hash algorithms. These are a | The HHIT Suite IDs specify the HI and hash algorithms. These are a | |||
| superset of the 4/8-bit HIT Suite ID as defined in Section 5.2.10 of | superset of the 4-bit and 8-bit HIT Suite IDs as defined in | |||
| [RFC7401]. | Section 5.2.10 of [RFC7401]. | |||
| The HHIT values of 1 - 15 map to the basic 4-bit HIT Suite IDs. HHIT | The HHIT values 1 - 15 map to the basic 4-bit HIT Suite IDs. HHIT | |||
| values of 17 - 31 map to the extended 8-bit HIT Suite IDs. HHIT | values 17 - 31 map to the extended 8-bit HIT Suite IDs. HHIT values | |||
| values unique to HHIT will start with value 32. | unique to HHIT will start with value 32. | |||
| As HHIT introduces a new Suite ID, EdDSA/cSHAKE128, and since this is | As HHIT introduces a new Suite ID, EdDSA/cSHAKE128, and because this | |||
| of value to HIPv2, it will be allocated out of the 4-bit HIT space | is of value to HIPv2, it will be allocated out of the 4-bit HIT space | |||
| and result in an update to HIT Suite IDs. Future HHIT Suite IDs may | and result in an update to HIT Suite IDs. Future HHIT Suite IDs may | |||
| be allocated similarly, or may come out of the additional space made | be allocated similarly, or they may come out of the additional space | |||
| available by going to 8 bits. | made available by going to 8 bits. | |||
| The following HHIT Suite IDs are defined: | The following HHIT Suite IDs are defined: | |||
| HHIT Suite Value | +=================+=============+ | |||
| RESERVED 0 | | HHIT Suite | Value | | |||
| RSA,DSA/SHA-256 1 [RFC7401] | +=================+=============+ | |||
| ECDSA/SHA-384 2 [RFC7401] | | RESERVED | 0 | | |||
| ECDSA_LOW/SHA-1 3 [RFC7401] | +-----------------+-------------+ | |||
| EdDSA/cSHAKE128 TBD3 (suggested value 5) | | RSA,DSA/SHA-256 | 1 [RFC7401] | | |||
| +-----------------+-------------+ | ||||
| | ECDSA/SHA-384 | 2 [RFC7401] | | ||||
| +-----------------+-------------+ | ||||
| | ECDSA_LOW/SHA-1 | 3 [RFC7401] | | ||||
| +-----------------+-------------+ | ||||
| | EdDSA/cSHAKE128 | 5 | | ||||
| +-----------------+-------------+ | ||||
| 3.2.1. HDA custom HIT Suite IDs | Table 2: Initial HHIT Suite IDs | |||
| Support for 8-bit HHIT Suite IDs allows for HDA custom HIT Suite IDs. | 3.2.1. HDA Custom HIT Suite IDs | |||
| These will be assigned values greater than 15 as follows: | ||||
| HHIT Suite Value | Support for 8-bit HHIT Suite IDs allows for HDA custom HIT Suite IDs | |||
| HDA Private Use 1 TBD4 (suggested value 254) | (see Table 3). | |||
| HDA Private Use 2 TBD5 (suggested value 255) | ||||
| +===================+=======+ | ||||
| | HHIT Suite | Value | | ||||
| +===================+=======+ | ||||
| | HDA Private Use 1 | 254 | | ||||
| +-------------------+-------+ | ||||
| | HDA Private Use 2 | 255 | | ||||
| +-------------------+-------+ | ||||
| Table 3: HDA Custom HIT | ||||
| Suite IDs | ||||
| These custom HIT Suite IDs, for example, may be used for large-scale | These custom HIT Suite IDs, for example, may be used for large-scale | |||
| experimenting with post quantum computing hashes or similar domain | experimentation with post-quantum computing hashes or similar domain- | |||
| specific needs. Note that currently there is no support for domain- | specific needs. Note that currently there is no support for domain- | |||
| specific HI algorithms. | specific HI algorithms. | |||
| They should not be used to create a "de facto standardization". | They should not be used to create a "de facto standardization". | |||
| Section 8.2 states that additional Suite IDs can be made through IETF | Section 8.2 states that additional Suite IDs can be made through IETF | |||
| Review. | Review. | |||
| 3.3. The Hierarchy ID (HID) | 3.3. The Hierarchy ID (HID) | |||
| The Hierarchy ID (HID) provides the structure to organize HITs into | The HID provides the structure to organize HITs into administrative | |||
| administrative domains. HIDs are further divided into two fields: | domains. HIDs are further divided into two fields: | |||
| * 14-bit Registered Assigning Authority (RAA) | * 14-bit Registered Assigning Authority (RAA) | |||
| * 14-bit Hierarchical HIT Domain Authority (HDA) | * 14-bit HHIT Domain Authority (HDA) | |||
| The rationale for the 14/14 HID split is described in Appendix B. | The rationale for splitting the HID into two 14-bit domains is | |||
| described in Appendix B. | ||||
| The two levels of hierarchy allows for Civil Aviation Authorities | The two levels of hierarchy allow for Civil Aviation Authorities | |||
| (CAAs) to have it least one RAA for their National Air Space (NAS). | (CAAs) to have it least one RAA for their National Air Space (NAS). | |||
| Within its RAA(s), the CAAs can delegate HDAs as needed. There may | Within its RAAs, the CAAs can delegate HDAs as needed. There may be | |||
| be other RAAs allowed to operate within a given NAS; this is a policy | other RAAs allowed to operate within a given NAS; this is a policy | |||
| decision of each CAA. | decision of each CAA. | |||
| 3.3.1. The Registered Assigning Authority (RAA) | 3.3.1. The Registered Assigning Authority (RAA) | |||
| An RAA is a business or organization that manages a registry of HDAs. | An RAA is a business or organization that manages a registry of HDAs. | |||
| For example, the Federal Aviation Authority (FAA) or Japan Civil | For example, the Federal Aviation Authority (FAA) or Japan Civil | |||
| Aviation Bureau (JCAB) could be an RAA. | Aviation Bureau (JCAB) could be RAAs. | |||
| The RAA is a 14-bit field (16,384 RAAs). The management of this | The RAA is a 14-bit field (16,384 RAAs). Management of this space is | |||
| space is further elaborated in [drip-registries]. An RAA MUST | further described in [DRIP-REG]. An RAA MUST provide a set of | |||
| provide a set of services to allocate HDAs to organizations. It | services to allocate HDAs to organizations. It SHOULD have a public | |||
| SHOULD have a public policy on what is necessary to obtain an HDA. | policy on what is necessary to obtain an HDA. The RAA need not | |||
| The RAA need not maintain any HIP related services. It MUST maintain | maintain any HIP-related services. At minimum, it MUST maintain a | |||
| a DNS zone minimally for the HDA zone delegation for discovering HIP | DNS zone for the HDA zone delegation for discovering HIP RVS servers | |||
| RVS servers [RFC8004] for the HID. The zone delegation is covered in | [RFC8004] for the HID. Zone delegation is covered in [DRIP-REG]. | |||
| [drip-registries]. | ||||
| As DETs under an administrative control may be used in many different | As DETs under administrative control may be used in many different | |||
| domains (e.g., commercial, recreation, military), RAAs should be | domains (e.g., commercial, recreation, military), RAAs should be | |||
| allocated in blocks (e.g. 16-19) with consideration on the likely | allocated in blocks (e.g., 16-19) with consideration of the likely | |||
| size of a particular usage. Alternatively, different prefixes can be | size of a particular usage. Alternatively, different prefixes can be | |||
| used to separate different domains of use of HHITs. | used to separate different domains of use of HHITs. | |||
| The RAA DNS zone within the UAS DNS tree may be a PTR for its RAA. | The RAA DNS zone within the UAS DNS tree may be a PTR for its RAA. | |||
| It may be a zone in an HHIT specific DNS zone. Assume that the RAA | It may be a zone in a HHIT-specific DNS zone. Assume that the RAA is | |||
| is decimal 100. The PTR record could be constructed as follows | decimal 100. The PTR record could be constructed as follows (where | |||
| (where 20010030 is the DET prefix): | 20010030 is the DET prefix): | |||
| 100.20010030.hhit.arpa. IN PTR raa.example.com. | 100.20010030.hhit.arpa. IN PTR raa.example.com. | |||
| Note that if the zone 20010030.hhit.arpa is ultimately used, some | Note that if the zone 20010030.hhit.arpa is ultimately used, a | |||
| registrar will need to manage this for all HHIT applications. Thus | registrar will need to manage this for all HHIT applications. Thus, | |||
| further thought will be needed in the actual zone tree and | further thought will be needed in the actual DNS zone tree and | |||
| registration process [drip-registries]. | registration process [DRIP-REG]. | |||
| 3.3.2. The Hierarchical HIT Domain Authority (HDA) | 3.3.2. The HHIT Domain Authority (HDA) | |||
| An HDA may be an Internet Service Provider (ISP), UAS Service | An HDA may be an Internet Service Provider (ISP), UAS Service | |||
| Supplier (USS), or any third party that takes on the business to | Supplier (USS), or any third party that takes on the business to | |||
| provide UAS services management, HIP RVSs or other needed services | provide UAS services management, HIP RVSs or other needed services | |||
| such as those required for HHIT and/or HIP-enabled devices. | such as those required for HHIT and/or HIP-enabled devices. | |||
| The HDA is a 14-bit field (16,384 HDAs per RAA) assigned by an RAA is | The HDA is a 14-bit field (16,384 HDAs per RAA) assigned by an RAA | |||
| further elaborated in [drip-registries]. An HDA must maintain public | and is further described in [DRIP-REG]. An HDA must maintain public | |||
| and private UAS registration information and should maintain a set of | and private UAS registration information and should maintain a set of | |||
| RVS servers for UAS clients that may use HIP. How this is done and | RVS servers for UAS clients that may use HIP. How this is done and | |||
| scales to the potentially millions of customers are outside the scope | scales to the potentially millions of customers are outside the scope | |||
| of this document, though covered in [drip-registries]. This service | of this document; they are covered in [DRIP-REG]. This service | |||
| should be discoverable through the DNS zone maintained by the HDA's | should be discoverable through the DNS zone maintained by the HDA's | |||
| RAA. | RAA. | |||
| An RAA may assign a block of values to an individual organization. | An RAA may assign a block of values to an individual organization. | |||
| This is completely up to the individual RAA's published policy for | This is completely up to the individual RAA's published policy for | |||
| delegation. Such policy is out of scope. | delegation. Such a policy is out of scope for this document. | |||
| 3.4. Edwards-Curve Digital Signature Algorithm for HHITs | 3.4. Edwards-Curve Digital Signature Algorithm for HHITs | |||
| The Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] is | The Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] is | |||
| specified here for use as HIs per HIPv2 [RFC7401]. | specified here for use as HIs per HIPv2 [RFC7401]. | |||
| The intent in this document is to add EdDSA as a HI algorithm for | The intent in this document is to add EdDSA as a HI algorithm for | |||
| DETs, but doing so impacts the HIP parameters used in a HIP exchange. | DETs, but doing so impacts the HIP parameters used in a HIP exchange. | |||
| The subsections of this section document the required updates of HIP | Sections 3.4.1 through 3.4.2 describe the required updates to HIP | |||
| parameters. Other than the HIP DNS RR (Resource Record) [RFC8005], | parameters. Other than the HIP DNS RR (Resource Record) [RFC8005], | |||
| these should not be needed in a DRIP implementation that does not use | these should not be needed in a DRIP implementation that does not use | |||
| HIP. | HIP. | |||
| See Section 3.2 for use of the HIT Suite in the context of DRIP. | See Section 3.2 for use of the HIT Suite in the context of DRIP. | |||
| 3.4.1. HOST_ID | 3.4.1. HOST_ID | |||
| The HOST_ID parameter specifies the public key algorithm, and for | The HOST_ID parameter specifies the public key algorithm, and for | |||
| elliptic curves, a name. The HOST_ID parameter is defined in | elliptic curves, a name. The HOST_ID parameter is defined in | |||
| Section 5.2.9 of [RFC7401]. | Section 5.2.9 of [RFC7401]. Table 4 adds a new HI Algorithm. | |||
| Algorithm | +===================+=======+===========+ | |||
| profile Value | | Algorithm profile | Value | Reference | | |||
| +===================+=======+===========+ | ||||
| | EdDSA | 13 | [RFC8032] | | ||||
| +-------------------+-------+-----------+ | ||||
| EdDSA TBD1 (suggested value 13) [RFC8032] | Table 4: New EdDSA Host ID | |||
| 3.4.1.1. HIP Parameter support for EdDSA | 3.4.1.1. HIP Parameter support for EdDSA | |||
| The addition of EdDSA as a HI algorithm requires a subfield in the | The addition of EdDSA as a HI algorithm requires a subfield in the | |||
| HIP HOST_ID parameter (Section 5.2.9 of [RFC7401]) as was done for | HIP HOST_ID parameter (Section 5.2.9 of [RFC7401]) as was done for | |||
| ECDSA when used in a HIP exchange. | ECDSA when used in a HIP exchange. | |||
| For HIP hosts that implement EdDSA as the algorithm, the following | For HIP hosts that implement EdDSA as the algorithm, the following | |||
| EdDSA curves are represented by the following fields: | EdDSA curves are represented by the fields in Figure 2 | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | EdDSA Curve | NULL | | | EdDSA Curve | NULL | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Public Key | | | Public Key | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| EdDSA Curve Curve label | Figure 2: EdDSA Curves Fields | |||
| Public Key Represented in Octet-string format [RFC8032] | ||||
| Figure 2 | EdDSA Curve: Curve label | |||
| For hosts that implement EdDSA as a HIP algorithm the following EdDSA | Public Key: Represented in Octet-string format [RFC8032] | |||
| curves are defined; recommended curves are tagged accordingly: | ||||
| Algorithm Curve Values | For hosts that implement EdDSA as a HIP algorithm, the following | |||
| EdDSA curves are defined. Recommended curves are tagged accordingly: | ||||
| EdDSA RESERVED 0 | +===========+==============+===========================+ | |||
| EdDSA EdDSA25519 1 [RFC8032] (RECOMMENDED) | | Algorithm | Curve | Values | | |||
| EdDSA EdDSA25519ph 2 [RFC8032] | +===========+==============+===========================+ | |||
| EdDSA EdDSA448 3 [RFC8032] (RECOMMENDED) | | EdDSA | RESERVED | 0 | | |||
| EdDSA EdDSA448ph 4 [RFC8032] | +-----------+--------------+---------------------------+ | |||
| | EdDSA | EdDSA25519 | 1 [RFC8032] (RECOMMENDED) | | ||||
| +-----------+--------------+---------------------------+ | ||||
| | EdDSA | EdDSA25519ph | 2 [RFC8032] | | ||||
| +-----------+--------------+---------------------------+ | ||||
| | EdDSA | EdDSA448 | 3 [RFC8032] (RECOMMENDED) | | ||||
| +-----------+--------------+---------------------------+ | ||||
| | EdDSA | EdDSA448ph | 4 [RFC8032] | | ||||
| +-----------+--------------+---------------------------+ | ||||
| Table 5: EdDSA Curves | ||||
| 3.4.1.2. HIP DNS RR support for EdDSA | 3.4.1.2. HIP DNS RR support for EdDSA | |||
| The HIP DNS RR is defined in [RFC8005]. It uses the values defined | The HIP DNS RR is defined in [RFC8005]. It uses the values defined | |||
| for the 'Algorithm Type' of the IPSECKEY RR [RFC4025] for its PK | for the 'Algorithm Type' of the IPSECKEY RR [RFC4025] for its PK | |||
| Algorithm field. | Algorithm field. | |||
| The new EdDSA HI uses [ipseckey-eddsa] for the IPSECKEY RR encoding. | The 'Algorithm Type' value and EdDSA HI encoding are assigned per | |||
| [RFC9373]. | ||||
| 3.4.2. HIT_SUITE_LIST | 3.4.2. HIT_SUITE_LIST | |||
| The HIT_SUITE_LIST parameter contains a list of the supported HIT | The HIT_SUITE_LIST parameter contains a list of the HIT suite IDs | |||
| suite IDs of the HIP Responder. Based on the HIT_SUITE_LIST, the HIP | that the HIP Responder supports. The HIT_SUITE_LIST allows the HIP | |||
| Initiator can determine which source HIT Suite IDs are supported by | Initiator to determine which source HIT Suite IDs are supported by | |||
| the Responder. The HIT_SUITE_LIST parameter is defined in | the Responder. The HIT_SUITE_LIST parameter is defined in | |||
| Section 5.2.10 of [RFC7401]. | Section 5.2.10 of [RFC7401]. | |||
| The following HIT Suite ID is defined: | The following HIT Suite ID is defined: | |||
| HIT Suite Value | +=================+=======+ | |||
| EdDSA/cSHAKE128 TBD3 (suggested value 5) | | HIT Suite | Value | | |||
| +=================+=======+ | ||||
| | EdDSA/cSHAKE128 | 5 | | ||||
| +-----------------+-------+ | ||||
| Table 1 provides more detail on the above HIT Suite combination. | Table 6: HIT Suite ID | |||
| Table 7 provides more detail on the above HIT Suite combination. | ||||
| The output of cSHAKE128 is variable per the needs of a specific | The output of cSHAKE128 is variable per the needs of a specific | |||
| ORCHID construction. It is at most 96 bits long and is directly used | ORCHID construction. It is at most 96 bits long and is directly used | |||
| in the ORCHID (without truncation). | in the ORCHID (without truncation). | |||
| +=======+===========+=========+===========+====================+ | +=======+===========+=========+===========+====================+ | |||
| | Index | Hash | HMAC | Signature | Description | | | Index | Hash | HMAC | Signature | Description | | |||
| | | function | | algorithm | | | | | function | | algorithm | | | |||
| | | | | family | | | | | | | family | | | |||
| +=======+===========+=========+===========+====================+ | +=======+===========+=========+===========+====================+ | |||
| | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | | | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | | |||
| | | | | | with cSHAKE128, | | | | | | | with cSHAKE128, | | |||
| | | | | | output is variable | | | | | | | output is variable | | |||
| +-------+-----------+---------+-----------+--------------------+ | +-------+-----------+---------+-----------+--------------------+ | |||
| Table 1: HIT Suites | Table 7: HIT Suites | |||
| 3.5. ORCHIDs for Hierarchical HITs | 3.5. ORCHIDs for HHITs | |||
| This section improves on ORCHIDv2 [RFC7343] with three enhancements: | This section improves on ORCHIDv2 [RFC7343] with three enhancements: | |||
| * Optional "Info" field between the Prefix and ORCHID Generation | * the inclusion of an optional "Info" field between the Prefix and | |||
| Algorithm (OGA) ID. | ORCHID Generation Algorithm (OGA) ID. | |||
| * Increased flexibility on the length of each component in the | * an increase in flexibility on the length of each component in the | |||
| ORCHID construction, provided the resulting ORCHID is 128 bits. | ORCHID construction, provided the resulting ORCHID is 128 bits. | |||
| * Use of cSHAKE, NIST SP 800-185 [NIST.SP.800-185], for the hashing | * the use of cSHAKE [NIST.SP.800-185] for the hashing function. | |||
| function. | ||||
| The Keccak [Keccak] based cSHAKE XOF hash function is a variable | The cSHAKE XOF hash function based on Keccak [Keccak] is a variable | |||
| output length hash function. As such it does not use the truncation | output length hash function. As such, it does not use the truncation | |||
| operation that other hashes need. The invocation of cSHAKE specifies | operation that other hashes need. The invocation of cSHAKE specifies | |||
| the desired number of bits in the hash output. Further, cSHAKE has a | the desired number of bits in the hash output. Further, cSHAKE has a | |||
| parameter 'S' as a customization bit string. This parameter will be | parameter 'S' as a customization bit string. This parameter will be | |||
| used for including the ORCHID Context Identifier in a standard | used for including the ORCHID Context Identifier in a standard | |||
| fashion. | fashion. | |||
| This ORCHID construction includes the fields in the ORCHID in the | This ORCHID construction includes the fields in the ORCHID in the | |||
| hash to protect them against substitution attacks. It also provides | hash to protect them against substitution attacks. It also provides | |||
| for inclusion of additional information, in particular the | for inclusion of additional information (in particular, the | |||
| hierarchical bits of the Hierarchical HIT, in the ORCHID generation. | hierarchical bits of the HHIT) in the ORCHID generation. This should | |||
| This should be viewed as an update to ORCHIDv2 [RFC7343], as it can | be viewed as an update to ORCHIDv2 [RFC7343], as it can produce | |||
| produce ORCHIDv2 output. | ORCHIDv2 output. | |||
| The follow sub-sections define the general, new, ORCHID construct | The following subsections define the new general ORCHID construct | |||
| with the specific application here for HHITs. Thus items like the | with the specific application for HHITs. Thus items like the hash | |||
| hash size is only discussed as it impacts HHIT's 64-bit hash. Other | size are only discussed in terms of how they impact the HHIT's 64-bit | |||
| hash sizes should be discussed in any other specific use of this new | hash. Other hash sizes should be discussed for other specific uses | |||
| ORCHID construct. | of this new ORCHID construct. | |||
| 3.5.1. Adding Additional Information to the ORCHID | 3.5.1. Adding Additional Information to the ORCHID | |||
| ORCHIDv2 [RFC7343] is defined as consisting of three components: | ORCHIDv2 [RFC7343] is defined as consisting of three components: | |||
| ORCHID := Prefix | OGA ID | Encode_96( Hash ) | ORCHID := Prefix | OGA ID | Encode_96( Hash ) | |||
| where: | where: | |||
| Prefix : A constant 28-bit-long bitstring value | Prefix | |||
| (IPV6 prefix) | A constant 28-bit-long bitstring value (IPv6 prefix) | |||
| OGA ID : A 4-bit long identifier for the Hash_function | OGA ID | |||
| in use within the specific usage context. When | A 4-bit-long identifier for the Hash_function in use within the | |||
| used for HIT generation this is the HIT Suite ID. | specific usage context. When used for HIT generation, this is the | |||
| HIT Suite ID. | ||||
| Encode_96( ) : An extraction function in which output is obtained | Encode_96( ) | |||
| by extracting the middle 96-bit-long bitstring | An extraction function in which output is obtained by extracting | |||
| from the argument bitstring. | the middle 96-bit-long bitstring from the argument bitstring. | |||
| The new ORCHID function is as follows: | The new ORCHID function is as follows: | |||
| ORCHID := Prefix (p) | Info (n) | OGA ID (o) | Hash (m) | ORCHID := Prefix (p) | Info (n) | OGA ID (o) | Hash (m) | |||
| where: | where: | |||
| Prefix (p) : An IPv6 prefix of length p (max 28-bit-long). | Prefix (p) | |||
| An IPv6 prefix of length p (max 28 bits long). | ||||
| Info (n) : n bits of information that define a use of the | ||||
| ORCHID. 'n' can be zero, that is no additional | ||||
| information. | ||||
| OGA ID (o) : A 4- or 8-bit long identifier for the Hash_function | Info (n) | |||
| in use within the specific usage context. When | n bits of information that define a use of the ORCHID. 'n' can be | |||
| used for HIT generation this is the HIT Suite ID | zero, which means no additional information. | |||
| [IANA-HIP]. When used for HHIT generation this is | ||||
| the HHIT Suite ID [TBC_DRIP_REGISTRY]. | ||||
| Note to the RFC Editor: Please replace [TBC_DRIP_REGISTRY] | OGA ID (o) | |||
| with the pointer to the IANA registry created in | A 4- or 8-bit long identifier for the Hash_function in use within | |||
| Section 8.2. | the specific usage context. When used for HIT generation, this is | |||
| the HIT Suite ID [IANA-HIP]. When used for HHIT generation, this | ||||
| is the HHIT Suite ID [HHSI]. | ||||
| Hash (m) : An extraction function in which output is 'm' bits. | Hash (m) | |||
| An extraction function in which output is 'm' bits. | ||||
| Sizeof(p + n + o + m) 128 bits | Sizeof(p + n + o + m) = 128 bits | |||
| The ORCHID length MUST be 128 bits. For HHITs with a 28-bit IPv6 | The ORCHID length MUST be 128 bits. For HHITs with a 28-bit IPv6 | |||
| prefix, there are 100 bits remaining to be divided in any manner | prefix, there are 100 bits remaining to be divided in any manner | |||
| between the additional information ("Info"), OGA ID, and the hash | between the additional information ("Info"), OGA ID, and the hash | |||
| output. Consideration must be given to the size of the hash portion, | output. Consideration must be given to the size of the hash portion, | |||
| taking into account risks like pre-image attacks. 64 bits, as used | taking into account risks like pre-image attacks. 64 bits, as used | |||
| here for HHITs, may be as small as is acceptable. The size of 'n', | here for HHITs, may be as small as is acceptable. The size of 'n', | |||
| for the HID, is then determined as what is left; in the case of the | for the HID, is then determined as what is left; in the case of the | |||
| 8-bit OGA used for HHIT, this is 28 bits. | 8-bit OGA used for HHIT, this is 28 bits. | |||
| 3.5.2. ORCHID Encoding | 3.5.2. ORCHID Encoding | |||
| This update adds a different encoding process to that currently used | This update adds a different encoding process to that currently used | |||
| in ORCHIDv2. The input to the hash function explicitly includes all | in ORCHIDv2. The input to the hash function explicitly includes all | |||
| the header content plus the Context ID. The header content consists | the header content plus the Context ID. The header content consists | |||
| of the Prefix, the Additional Information ("Info"), and OGA ID (HIT | of the Prefix, the Additional Information ("Info"), and the OGA ID | |||
| Suite ID). Secondly, the length of the resulting hash is set by sum | (HIT Suite ID). Secondly, the length of the resulting hash is set by | |||
| of the length of the ORCHID header fields. For example, a 28-bit | the sum of the length of the ORCHID header fields. For example, a | |||
| prefix with 28 bits for the HID and 8 bits for the OGA ID leaves 64 | 28-bit prefix with 28 bits for the HID and 8 bits for the OGA ID | |||
| bits for the hash length. | leaves 64 bits for the hash length. | |||
| To achieve the variable length output in a consistent manner, the | To achieve the variable length output in a consistent manner, the | |||
| cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. | cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. | |||
| The cSHAKE function call for this update is: | The cSHAKE function call is: | |||
| cSHAKE128(Input, L, "", Context ID) | cSHAKE128(Input, L, "", Context ID) | |||
| Input := Prefix | Additional Information | OGA ID | HOST_ID | Input := Prefix | Additional Information | OGA ID | HOST_ID | |||
| L := Length in bits of hash portion of ORCHID | L := Length in bits of the hash portion of ORCHID | |||
| For full Suite ID support (those that use fixed length hashes like | For full Suite ID support (those that use fixed length hashes like | |||
| SHA256), the following hashing can be used (Note: this does not | SHA256), the following hashing can be used (Note: this does not | |||
| produce output Identical to ORCHIDv2 for a /28 prefix and Additional | produce output identical to ORCHIDv2 for a /28 prefix and Additional | |||
| Information of zero-length): | Information of zero length): | |||
| Hash[L](Context ID | Input) | Hash[L](Context ID | Input) | |||
| Input := Prefix | Additional Information | OGA ID | HOST_ID | Input := Prefix | Additional Information | OGA ID | HOST_ID | |||
| L := Length in bits of hash portion of ORCHID | L := Length in bits of the hash portion of ORCHID | |||
| Hash[L] := An extraction function in which output is obtained | Hash[L] := An extraction function in which output is obtained | |||
| by extracting the middle L-bit-long bitstring | by extracting the middle L-bit-long bitstring | |||
| from the argument bitstring. | from the argument bitstring. | |||
| The middle L-bits are those bits from the source number where either | The middle L-bits are those bits from the source number where either | |||
| there is an equal number of bits before and after these bits, or | there is an equal number of bits before and after these bits, or | |||
| there is one more bit prior (when the difference between hash size | there is one more bit prior (when the difference between hash size | |||
| and L is odd). | and L is odd). | |||
| Hierarchical HITs use the Context ID defined in Section 3. | HHITs use the Context ID defined in Section 3. | |||
| 3.5.2.1. Encoding ORCHIDs for HIPv2 | 3.5.2.1. Encoding ORCHIDs for HIPv2 | |||
| This section discusses how to provide backwards compatibility for | This section discusses how to provide backwards compatibility for | |||
| ORCHIDv2 [RFC7343] as used in HIPv2 [RFC7401]. | ORCHIDv2 [RFC7343] as used in HIPv2 [RFC7401]. | |||
| For HIPv2, the Prefix is 2001:20::/28 (Section 6 of [RFC7343]). | For HIPv2, the Prefix is 2001:20::/28 (Section 6 of [RFC7343]). | |||
| 'Info' is zero-length (i.e., not included), and OGA ID is 4-bit. | 'Info' is zero-length (i.e., not included), and OGA ID is 4-bit. | |||
| Thus, the HI Hash is 96-bit length. Further, the Prefix and OGA ID | Thus, the HI Hash is 96 bits in length. Further, the Prefix and OGA | |||
| are not included in the hash calculation. Thus, the following ORCHID | ID are not included in the hash calculation. Thus, the following | |||
| calculations for fixed output length hashes are used: | ORCHID calculations for fixed output length hashes are used: | |||
| Hash[L](Context ID | Input) | Hash[L](Context ID | Input) | |||
| Input := HOST_ID | Input := HOST_ID | |||
| L := 96 | L := 96 | |||
| Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA | Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA | |||
| Hash[L] := An extraction function in which output is obtained | Hash[L] := An extraction function in which output is obtained | |||
| by extracting the middle L-bit-long bitstring | by extracting the middle L-bit-long bitstring | |||
| from the argument bitstring. | from the argument bitstring. | |||
| skipping to change at page 16, line 23 ¶ | skipping to change at line 737 ¶ | |||
| Then, the ORCHID is constructed as follows: | Then, the ORCHID is constructed as follows: | |||
| Prefix | OGA ID | Hash Output | Prefix | OGA ID | Hash Output | |||
| 3.5.3. ORCHID Decoding | 3.5.3. ORCHID Decoding | |||
| With this update, the decoding of an ORCHID is determined by the | With this update, the decoding of an ORCHID is determined by the | |||
| Prefix and OGA ID. ORCHIDv2 [RFC7343] decoding is selected when the | Prefix and OGA ID. ORCHIDv2 [RFC7343] decoding is selected when the | |||
| Prefix is: 2001:20::/28. | Prefix is: 2001:20::/28. | |||
| For Hierarchical HITs, the decoding is determined by the presence of | For HHITs, the decoding is determined by the presence of the HHIT | |||
| the HHIT Prefix as specified in Section 8.2. | Prefix as specified in Section 8.2. | |||
| 3.5.4. Decoding ORCHIDs for HIPv2 | 3.5.4. Decoding ORCHIDs for HIPv2 | |||
| This section is included to provide backwards compatibility for | This section is included to provide backwards compatibility for | |||
| ORCHIDv2 [RFC7343] as used for HIPv2 [RFC7401]. | ORCHIDv2 [RFC7343] as used for HIPv2 [RFC7401]. | |||
| HITs are identified by a Prefix of 2001:20::/28. The next 4 bits are | HITs are identified by a Prefix of 2001:20::/28. The next 4 bits are | |||
| the OGA ID. The remaining 96 bits are the HI Hash. | the OGA ID. The remaining 96 bits are the HI Hash. | |||
| 4. Hierarchical HITs as DRIP Entity Tags | 4. HHITs as DRIP Entity Tags | |||
| HHITs for UAS ID (called, DETs) use the new EdDSA/SHAKE128 HIT suite | HHITs for UAS ID (called, DETs) use the new EdDSA/SHAKE128 HIT suite | |||
| defined in Section 3.4 (GEN-2 in [RFC9153]). This hierarchy, | defined in Section 3.4 (GEN-2 in [RFC9153]). This hierarchy, | |||
| cryptographically bound within the HHIT, provides the information for | cryptographically bound within the HHIT, provides the information for | |||
| finding the UA's HHIT registry (ID-3 in [RFC9153]). | finding the UA's HHIT registry (ID-3 in [RFC9153]). | |||
| The ASTM Standard Specification for Remote ID and Tracking | The ASTM Standard Specification for Remote ID and Tracking | |||
| [F3411-22a] adds support for DETs. This is only available via the | [F3411-22a] adds support for DETs. This is only available via the | |||
| new UAS ID type 4, "Specific Session ID (SSI)". | new UAS ID type 4, "Specific Session ID (SSI)". | |||
| This new SSI uses the first byte of the 20-byte UAS ID for the SSI | This new SSI uses the first byte of the 20-byte UAS ID for the SSI | |||
| Type, thus restricting the UAS ID of this type to a maximum of 19 | Type, thus restricting the UAS ID of this type to a maximum of 19 | |||
| bytes. The SSI Types initially assigned are: | bytes. The SSI Types initially assigned are: | |||
| SSI 1 IETF - DRIP Drone Remote ID Protocol (DRIP) entity ID. | SSI 1: IETF - DRIP Drone Remote ID Protocol (DRIP) entity ID. | |||
| SSI 2 3GPP - IEEE 1609.2-2016 HashedID8 | SSI 2: 3GPP - IEEE 1609.2-2016 HashedID8 | |||
| 4.1. Nontransferablity of DETs | 4.1. Nontransferablity of DETs | |||
| A HI and its DET SHOULD NOT be transferable between UA or even | A HI and its DET SHOULD NOT be transferable between UA or even | |||
| between replacement electronics (e.g., replacement of damaged | between replacement electronics (e.g., replacement of damaged | |||
| controller CPU) for a UA. The private key for the HI SHOULD be held | controller CPU) for a UA. The private key for the HI SHOULD be held | |||
| in a cryptographically secure component. | in a cryptographically secure component. | |||
| 4.2. Encoding HHITs in CTA 2063-A Serial Numbers | 4.2. Encoding HHITs in CTA 2063-A Serial Numbers | |||
| In some cases, it is advantageous to encode HHITs as a CTA 2063-A | In some cases, it is advantageous to encode HHITs as a CTA 2063-A | |||
| Serial Number [CTA2063A]. For example, the FAA Remote ID Rules | Serial Number [CTA2063A]. For example, the FAA Remote ID Rules | |||
| [FAA_RID] state that a Remote ID Module (i.e., not integrated with UA | [FAA_RID] state that a Remote ID Module (i.e., not integrated with UA | |||
| controller) must only use "the serial number of the unmanned | controller) must only use "the serial number of the unmanned | |||
| aircraft"; CTA 2063-A meets this requirement. | aircraft"; CTA 2063-A meets this requirement. | |||
| Encoding an HHIT within the CTA 2063-A format is not simple. The CTA | Encoding a HHIT within the CTA 2063-A format is not simple. The CTA | |||
| 2063-A format is defined as follows: | 2063-A format is defined as follows: | |||
| Serial Number := MFR Code | Length Code | MFR SN | Serial Number := MFR Code | Length Code | MFR SN | |||
| where: | where: | |||
| MFR Code : 4 character code assigned by ICAO | MFR Code | |||
| (International Civil Aviation Organization, | 4 character code assigned by ICAO (International Civil Aviation | |||
| a UN Agency). | Organization, a UN Agency). | |||
| Length Code : 1 character Hex encoding of MFR SN length (1-F). | Length Code | |||
| 1 character Hex encoding of MFR SN length (1-F). | ||||
| MFR SN : US-ASCII alphanumeric code (0-9, A-Z except O and I). | MFR SN | |||
| Maximum length of 15 characters. | US-ASCII alphanumeric code (0-9, A-Z except O and I). Maximum | |||
| length of 15 characters. | ||||
| There is no place for the HID; there will need to be a mapping | There is no place for the HID; there will need to be a mapping | |||
| service from Manufacturer Code to HID. The HHIT Suite ID and ORCHID | service from Manufacturer Code to HID. The HHIT Suite ID and ORCHID | |||
| hash will take the full 15 characters (as described below) of the MFR | hash will take the full 15 characters (as described below) of the MFR | |||
| SN field. | SN field. | |||
| A character in a CTA 2063-A Serial Number "shall include any | A character in a CTA 2063-A Serial Number "shall include any | |||
| combination of digits and uppercase letters, except the letters O and | combination of digits and uppercase letters, except the letters O and | |||
| I, but may include all digits". This would allow for a Base34 | I, but may include all digits". This would allow for a Base34 | |||
| encoding of the binary HHIT Suite ID and ORCHID hash in 15 | encoding of the binary HHIT Suite ID and ORCHID hash in 15 | |||
| characters. Although, programmatically, such a conversion is not | characters. Although, programmatically, such a conversion is not | |||
| hard, other technologies (e.g., credit card payment systems) that | hard, other technologies (e.g., credit card payment systems) that | |||
| have used such odd base encoding have had performance challenges. | have used such odd base encoding have had performance challenges. | |||
| Thus, here a Base32 encoding will be used by also excluding the | Thus, here a Base32 encoding will be used by also excluding the | |||
| letters Z and S (too similar to the digits 2 and 5). See Appendix C | letters Z and S (because they are too similar to the digits 2 and 5, | |||
| for the encoding scheme. | respectively). See Appendix C for the encoding scheme. | |||
| The low-order 72 bits (HHIT Suite ID | ORCHID hash) of the HHIT SHALL | The low-order 72 bits (HHIT Suite ID | ORCHID hash) of the HHIT SHALL | |||
| be left-padded with 3 bits of zeros. This 75-bit number will be | be left-padded with 3 bits of zeros. This 75-bit number will be | |||
| encoded into the 15-character MFR SN field using the digit/letters | encoded into the 15-character MFR SN field using the digit/letters as | |||
| above. The manufacturer MUST use a Length Code of F (15). | described above. The manufacturer MUST use a Length Code of F (15). | |||
| Note: The manufacturer MAY use the same Manufacturer Code with a | Note: The manufacturer MAY use the same Manufacturer Code with a | |||
| Length Code of 1 - E (1 - 14) for other types of serial numbers. | Length Code of 1 - E (1 - 14) for other types of serial numbers. | |||
| Using the sample DET from Section 5 that is for HDA=20 under RAA=10 | Using the sample DET from Section 5 that is for HDA=20 under RAA=10 | |||
| and having the ICAO CTA MFR Code of 8653, the 20-character CTA 2063-A | and having the ICAO CTA MFR Code of 8653, the 20-character CTA 2063-A | |||
| Serial Number would be: | Serial Number would be: | |||
| 8653F02T7B8RA85D19LX | 8653F02T7B8RA85D19LX | |||
| skipping to change at page 18, line 30 ¶ | skipping to change at line 841 ¶ | |||
| DNSSEC [RFC4034]) conversion of the 4-character Manufacturer Code to | DNSSEC [RFC4034]) conversion of the 4-character Manufacturer Code to | |||
| high-order 58 bits (Prefix | HID) of the HHIT. That is, given a | high-order 58 bits (Prefix | HID) of the HHIT. That is, given a | |||
| Manufacturer Code, a returned Prefix|HID value is reliable. | Manufacturer Code, a returned Prefix|HID value is reliable. | |||
| Definition of this mapping service is out of scope of this document. | Definition of this mapping service is out of scope of this document. | |||
| It should be noted that this encoding would only be used in the Basic | It should be noted that this encoding would only be used in the Basic | |||
| ID Message (Section 2.2 of [RFC9153]). The DET is used in the | ID Message (Section 2.2 of [RFC9153]). The DET is used in the | |||
| Authentication Messages (i.e., the messages that provide framing for | Authentication Messages (i.e., the messages that provide framing for | |||
| authentication data only). | authentication data only). | |||
| 4.3. Remote ID DET as one Class of Hierarchical HITs | 4.3. Remote ID DET as one Class of HHITs | |||
| UAS Remote ID DET may be one of a number of uses of HHITs. However, | UAS Remote ID DET may be one of a number of uses of HHITs. However, | |||
| it is out of the scope of the document to elaborate on other uses of | it is out of the scope of the document to elaborate on other uses of | |||
| HHITs. As such these follow-on uses need to be considered in | HHITs. As such these follow-on uses need to be considered in | |||
| allocating the RAAs (Section 3.3.1) or HHIT prefix assignments | allocating the RAAs (Section 3.3.1) or HHIT prefix assignments | |||
| (Section 8). | (Section 8). | |||
| 4.4. Hierarchy in ORCHID Generation | 4.4. Hierarchy in ORCHID Generation | |||
| ORCHIDS, as defined in [RFC7343], do not cryptographically bind an | ORCHIDS, as defined in [RFC7343], do not cryptographically bind an | |||
| IPv6 prefix nor the OGA ID (the HIT Suite ID) to the hash of the HI. | IPv6 prefix or the OGA ID (the HIT Suite ID) to the hash of the HI. | |||
| The rationale at the time of developing ORCHID was attacks against | At the time ORCHID was being developed, the rationale was attacks | |||
| these fields are Denial-of-Service (DoS) attacks against protocols | against these fields are Denial-of-Service (DoS) attacks against | |||
| using ORCHIDs and thus up to those protocols to address the issue. | protocols using ORCHIDs and thus it was up to those protocols to | |||
| address the issue. | ||||
| HHITs, as defined in Section 3.5, cryptographically bind all content | HHITs, as defined in Section 3.5, cryptographically bind all content | |||
| in the ORCHID through the hashing function. A recipient of a DET | in the ORCHID through the hashing function. A recipient of a DET | |||
| that has the underlying HI can directly trust and act on all content | that has the underlying HI can directly trust and act on all content | |||
| in the HHIT. This provides a strong, self-claim for using the | in the HHIT. This provides a strong, self-claim for using the | |||
| hierarchy to find the DET Registry based on the HID (Section 4.5). | hierarchy to find the DET Registry based on the HID (Section 4.5). | |||
| 4.5. DRIP Entity Tag (DET) Registry | 4.5. DRIP Entity Tag (DET) Registry | |||
| DETs are registered to HDAs. A registration process, | DETs are registered to HDAs. The registration process defined in | |||
| [drip-registries], ensures DET global uniqueness (ID-4 in [RFC9153]). | [DRIP-REG] ensures DET global uniqueness (ID-4 in Section 4.2.1 of | |||
| It also provides the mechanism to create UAS public/private data that | [RFC9153]). It also allows the mechanism to create UAS public/ | |||
| are associated with the DET (REG-1 and REG-2 in [RFC9153]). | private data that are associated with the DET (REG-1 and REG-2 in | |||
| Section 4.4.1 of [RFC9153]). | ||||
| 4.6. Remote ID Authentication using DETs | 4.6. Remote ID Authentication Using DETs | |||
| The EdDSA25519 HI (Section 3.4) underlying the DET can be used in an | The EdDSA25519 HI (Section 3.4) underlying the DET can be used in an | |||
| 88-byte self-proof evidence (timestamp, HHIT, and signature of these) | 88-byte self-proof evidence (timestamps, HHIT, and signature of | |||
| to provide proof to Observers of Remote ID ownership (GEN-1 in | these) to provide proof to Observers of Remote ID ownership (GEN-1 in | |||
| [RFC9153]). In practice, the Wrapper and Manifest authentication | Section 4.1.1 of [RFC9153]). In practice, the Wrapper and Manifest | |||
| formats (Sections 6.3.3 and 6.3.4 of [drip-authentication]) | authentication formats (Sections 6.3.3 and 6.3.4 of [DRIP-AUTH]) | |||
| implicitly provide this self-evidence. A lookup service like DNS can | implicitly provide this self-proof evidence. A lookup service like | |||
| provide the HI and registration proof (GEN-3 in [RFC9153]). | DNS can provide the HI and registration proof (GEN-3 in [RFC9153]). | |||
| Similarly, for Observers without Internet access, a 200-byte offline | Similarly, for Observers without Internet access, a 200-byte offline | |||
| self-endorsement (Section 3.1.2 of [drip-authentication]) could | self-endorsement (Section 3.1.2 of [DRIP-AUTH]) could provide the | |||
| provide the same Remote ID ownership proof. This endorsement would | same Remote ID ownership proof. This endorsement would contain the | |||
| contain the HDA's signing of the UA's HHIT, itself signed by the UA's | HDA's signing of the UA's HHIT, itself signed by the UA's HI. Only a | |||
| HI. Only a small cache (also Section 3.1.2 of [drip-authentication]) | small cache (also Section 3.1.2 of [DRIP-AUTH]) that contains the | |||
| that contains the HDA's HI/HHIT and HDA meta-data is needed by the | HDA's HI/HHIT and HDA meta-data is needed by the Observer. However, | |||
| Observer. However, such an object would just fit in the ASTM | such an object would just fit in the ASTM Authentication Message | |||
| Authentication Message (Section 2.2 of [RFC9153]) with no room for | (Section 2.2 of [RFC9153]) with no room for growth. In practice, | |||
| growth. In practice, [drip-authentication] provides this offline | [DRIP-AUTH] provides this offline self-endorsement in two | |||
| self-endorsement in two authentication messages: the HDA's | authentication messages: the HDA's endorsement of the UA's HHIT | |||
| endorsement of the UA's HHIT registration in a Link authentication | registration in a Link authentication message whose hash is sent in a | |||
| message whose hash is sent in a Manifest authentication message. | Manifest authentication message. | |||
| Hashes of any previously sent ASTM messages can be placed in a | Hashes of any previously sent ASTM messages can be placed in a | |||
| Manifest authentication message (GEN-2 in [RFC9153]). When a | Manifest authentication message (GEN-2 in [RFC9153]). When a | |||
| Location/Vector Message (i.e., a message that provides UA location, | Location/Vector Message (i.e., a message that provides UA location, | |||
| altitude, heading, speed, and status) hash along with the hash of the | altitude, heading, speed, and status) hash along with the hash of the | |||
| HDA's UA HHIT endorsement are sent in a Manifest authentication | HDA's UA HHIT endorsement are sent in a Manifest authentication | |||
| message and the Observer can visually see a UA at the claimed | message and the Observer can visually see a UA at the claimed | |||
| location, the Observer has a very strong proof of the UA's Remote ID. | location, the Observer has very strong proof of the UA's Remote ID. | |||
| All this behavior and how to mix these authentication messages into | This behavior and how to mix these authentication messages into the | |||
| the flow of UA operation messages are detailed in | flow of UA operation messages are detailed in [DRIP-AUTH]. | |||
| [drip-authentication]. | ||||
| 5. DRIP Entity Tags (DETs) in DNS | 5. DRIP Entity Tags (DETs) in DNS | |||
| There are two approaches for storing and retrieving DETs using DNS. | There are two approaches for storing and retrieving DETs using DNS. | |||
| The following are examples of how this may be done. This will serve | The following are examples of how this may be done. This serves as | |||
| as guidance to the actual deployment of DETs in DNS. However, this | guidance to the actual deployment of DETs in DNS. However, this | |||
| document does not provide a recommendation. Further DNS-related | document does not provide a recommendation about which approach to | |||
| considerations are covered in [drip-registries]. | use. Further DNS-related considerations are covered in [DRIP-REG]. | |||
| * As FQDNs, for example, "20010030.hhit.arpa.". | * As FQDNs, for example, "20010030.hhit.arpa.". | |||
| * Reverse DNS lookups as IPv6 addresses per [RFC8005]. | * Reverse DNS lookups as IPv6 addresses per [RFC8005]. | |||
| A DET can be used to construct an FQDN that points to the USS that | A DET can be used to construct an FQDN that points to the USS that | |||
| has the public/private information for the UA (REG-1 and REG-2 in | has the public/private information for the UA (REG-1 and REG-2 in | |||
| [RFC9153]). For example, the USS for the HHIT could be found via the | Section 4.4.1 of [RFC9153]). For example, the USS for the HHIT could | |||
| following: assume the RAA is decimal 100 and the HDA is decimal 50. | be found via the following: assume the RAA is decimal 100 and the HDA | |||
| The PTR record is constructed as follows: | is decimal 50. The PTR record is constructed as follows: | |||
| 100.50.20010030.hhit.arpa. IN PTR foo.uss.example.org. | 100.50.20010030.hhit.arpa. IN PTR foo.uss.example.org. | |||
| The HDA SHOULD provide DNS service for its zone and provide the HHIT | The HDA SHOULD provide DNS service for its zone and provide the HHIT | |||
| detail response. | detail response. | |||
| The DET reverse lookup can be a standard IPv6 reverse look up, or it | The DET reverse lookup can be a standard IPv6 reverse look up, or it | |||
| can leverage off the HHIT structure. Using the allocated prefix for | can leverage off the HHIT structure. Using the allocated prefix for | |||
| HHITs TBD6 [suggested value 2001:30::/28] (See Section 3.1), the RAA | HHITs 2001:30::/28 (see Section 3.1), the RAA is decimal 10 and the | |||
| is decimal 10 and the HDA is decimal 20, the DET is: | HDA is decimal 20, the DET is: | |||
| 2001:30:280:1405:a3ad:1952:ad0:a69e | 2001:30:280:1405:a3ad:1952:ad0:a69e | |||
| See Appendix B.1 for how the upper 64 bits, above, are constructed. | See Appendix B.1 for how the upper 64 bits, above, are constructed. | |||
| A DET reverse lookup could be to: | A DET reverse lookup could be: | |||
| a69e.0ad0.1952.a3ad.1405.0280.20.10.20010030.hhit.arpa.. | a69e.0ad0.1952.a3ad.1405.0280.20.10.20010030.hhit.arpa. | |||
| or: | or: | |||
| a3ad19520ad0a69e.5.20.10.20010030.hhit.arpa. | a3ad19520ad0a69e.5.20.10.20010030.hhit.arpa. | |||
| A 'standard' ip6.arpa RR has the advantage of only one Registry | A 'standard' ip6.arpa RR has the advantage of only one Registry | |||
| service supported. | service supported. | |||
| $ORIGIN 5.0.4.1.0.8.2.0.0.3.0.0.1.0.0.2.ip6.arpa. | $ORIGIN 5.0.4.1.0.8.2.0.0.3.0.0.1.0.0.2.ip6.arpa. | |||
| e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a IN PTR | e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a IN PTR | |||
| a3ad1952ad0a69e.20.10.20010030.hhit.arpa. | a3ad1952ad0a69e.20.10.20010030.hhit.arpa. | |||
| This DNS entry for the DET can also provide a revocation service. | This DNS entry for the DET can also provide a revocation service. | |||
| For example, instead of returning the HI RR it may return some record | For example, instead of returning the HI RR it may return some record | |||
| showing that the HI (and thus DET) has been revoked. Guidance on | showing that the HI (and thus DET) has been revoked. Guidance on | |||
| revocation service will be provided in [drip-registries]. | revocation service will be provided in [DRIP-REG]. | |||
| 6. Other UAS Traffic Management (UTM) Uses of HHITs Beyond DET | 6. Other UAS Traffic Management (UTM) Uses of HHITs Beyond DET | |||
| HHITs will be used within the UTM architecture beyond DET (and USS in | HHITs will be used within the UTM architecture beyond DET (and USS in | |||
| UA ID registration and authentication), for example, as a Ground | UA ID registration and authentication), for example, as a Ground | |||
| Control Station (GCS) HHIT ID. Some GCS will use its HHIT for | Control Station (GCS) HHIT ID. Some GCS will use its HHIT for | |||
| securing its Network Remote ID (to USS HHIT) and Command and Control | securing its Network Remote ID (to USS HHIT) and Command and Control | |||
| (C2, Section 2.2.2 of [RFC9153]) transports. | (C2, Section 2.2.2 of [RFC9153]) transports. | |||
| Observers may have their own HHITs to facilitate UAS information | Observers may have their own HHITs to facilitate UAS information | |||
| retrieval (e.g., for authorization to private UAS data). They could | retrieval (e.g., for authorization to private UAS data). They could | |||
| also use their HHIT for establishing a HIP connection with the UA | also use their HHIT for establishing a HIP connection with the UA | |||
| Pilot for direct communications per authorization. Details about | Pilot for direct communications per authorization. Details about | |||
| such issues are out of the scope of this document). | such issues are out of the scope of this document. | |||
| 7. Summary of Addressed DRIP Requirements | 7. Summary of Addressed DRIP Requirements | |||
| This document provides the details to solutions for GEN 1 - 3, ID 1 - | This document provides the details to solutions for GEN 1 - 3, ID 1 - | |||
| 5, and REG 1 - 2 requirements that are described in [RFC9153]. | 5, and REG 1 - 2 requirements that are described in [RFC9153]. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 8.1. New Well-Known IPv6 prefix for DETs | 8.1. New Well-Known IPv6 Prefix for DETs | |||
| Since the DET format is not compatible with [RFC7343], IANA is | Since the DET format is not compatible with [RFC7343], IANA has | |||
| requested to allocate a new prefix following this template for the | allocated the following prefix per this template for the "IANA IPv6 | |||
| IPv6 Special-Purpose Address Registry. | Special-Purpose Address Registry" [IPv6-SPECIAL]. | |||
| Address Block: | Address Block: | |||
| IANA is requested to allocate a new 28-bit prefix out of the IANA | 2001:30::/28 | |||
| IPv6 Special Purpose Address Block, namely 2001::/23, as per | ||||
| [RFC6890] (TBD6, suggested: 2001:30::/28). | ||||
| Name: | Name: | |||
| This block should be named "DRIP Entity Tags (DETs) Prefix". | Drone Remote ID Protocol Entity Tags (DETs) Prefix | |||
| RFC: | Reference | |||
| This document. | This document | |||
| Allocation Date: | Allocation Date: | |||
| Date this document published. | 2022-12 | |||
| Termination Date: | Termination Date: | |||
| Forever. | N/A | |||
| Source: | Source: | |||
| False. | True | |||
| Destination: | Destination: | |||
| False. | True | |||
| Forwardable: | Forwardable: | |||
| False. | True | |||
| Globally Reachable: | Globally Reachable: | |||
| False. | True | |||
| Reserved-by-Protocol: | Reserved-by-Protocol: | |||
| False. | False | |||
| 8.2. New IANA DRIP Registry | 8.2. New IANA DRIP Registry | |||
| This document requests IANA to create a new registry titled "Drone | IANA has created the "Drone Remote ID Protocol" registry. The | |||
| Remote ID Protocol" registry. It is suggested that multiple | following two subregistries have been created within the "Drone | |||
| designated experts be appointed for registry change requests. | Remote ID Protocol" group. | |||
| Criteria that should be applied by the designated experts include | 8.2.1. HHIT Prefixes | |||
| Initially, for DET use, one 28-bit prefix has been assigned out of | ||||
| the IANA IPv6 Special Purpose Address Block, namely 2001::/23, as per | ||||
| [RFC6890]. Future additions to this subregistry are to be made | ||||
| through Expert Review (Section 4.5 of [RFC8126]). Entries with | ||||
| network-specific prefixes may be present in the registry. | ||||
| +==========+======+==============+===========+ | ||||
| | HHIT Use | Bits | Value | Reference | | ||||
| +==========+======+==============+===========+ | ||||
| | DET | 28 | 2001:30::/28 | RFC 9374 | | ||||
| +----------+------+--------------+-----------+ | ||||
| Table 8: Registered DET IPv6 Prefix | ||||
| Criteria that should be applied by the designated experts includes | ||||
| determining whether the proposed registration duplicates existing | determining whether the proposed registration duplicates existing | |||
| functionality and whether the registration description is clear and | functionality and whether the registration description is clear and | |||
| fits the purpose of this registry. | fits the purpose of this registry. | |||
| Registration requests MUST be sent to drip-reg-review@ietf.org and | Registration requests MUST be sent to drip-reg-review@ietf.org and be | |||
| are evaluated within a three-week review period on the advice of one | evaluated within a three-week review period on the advice of one or | |||
| or more designated experts. Within the review period, the designated | more designated experts. Within that review period, the designated | |||
| experts will either approve or deny the registration request, | experts will either approve or deny the registration request, and | |||
| communicating this decision to the review list and IANA. Denials | communicate their decision to the review list and IANA. Denials | |||
| should include an explanation and, if applicable, suggestions as to | should include an explanation and, if applicable, suggestions to | |||
| how to make the request successful. | successfully register the prefix. | |||
| Registration requests that are undetermined for a period longer than | Registration requests that are undetermined for a period longer than | |||
| 28 days can be brought to the IESG's attention for resolution. | 28 days can be brought to the IESG's attention for resolution. | |||
| The following two subregistries should be created under that | 8.2.2. HHIT Suite IDs | |||
| registry. | ||||
| Hierarchical HIT (HHIT) Prefixes: | ||||
| Initially, for DET use, one 28-bit prefix should be assigned out | ||||
| of the IANA IPv6 Special Purpose Address Block, namely 2001::/23, | ||||
| as per [RFC6890]. Future additions to this subregistry are to be | ||||
| made through Expert Review (Section 4.5 of [RFC8126]). Entries | ||||
| with network-specific prefixes may be present in the registry. | ||||
| HHIT Use Bits Value Reference | This 8-bit value subregistry is a superset of the 4/8-bit "HIT Suite | |||
| DET 28 TBD6 (suggested value 2001:30::/28) [This] | ID" subregistry of the "Host Identity Protocol (HIP) Parameters" | |||
| registry [IANA-HIP]. Future additions to this subregistry are to be | ||||
| made through IETF Review (Section 4.8 of [RFC8126]). The following | ||||
| HHIT Suite IDs are defined. | ||||
| Hierarchical HIT (HHIT) Suite ID: | +===================+=======+===========+ | |||
| This 8-bit valued subregistry is a superset of the 4/8-bit "HIT | | HHIT Suite | Value | Reference | | |||
| Suite ID" subregistry of the "Host Identity Protocol (HIP) | +===================+=======+===========+ | |||
| Parameters" registry in [IANA-HIP]. Future additions to this | | RESERVED | 0 | RFC 9374 | | |||
| subregistry are to be made through IETF Review (Section 4.8 of | +-------------------+-------+-----------+ | |||
| [RFC8126]). The following HHIT Suite IDs are defined: | | RSA,DSA/SHA-256 | 1 | [RFC7401] | | |||
| +-------------------+-------+-----------+ | ||||
| | ECDSA/SHA-384 | 2 | [RFC7401] | | ||||
| +-------------------+-------+-----------+ | ||||
| | ECDSA_LOW/SHA-1 | 3 | [RFC7401] | | ||||
| +-------------------+-------+-----------+ | ||||
| | EdDSA/cSHAKE128 | 5 | RFC 9374 | | ||||
| +-------------------+-------+-----------+ | ||||
| | HDA Private Use 1 | 254 | RFC 9374 | | ||||
| +-------------------+-------+-----------+ | ||||
| | HDA Private Use 2 | 255 | RFC 9374 | | ||||
| +-------------------+-------+-----------+ | ||||
| HHIT Suite Value Reference | Table 9: Registered HHIT Suite IDs | |||
| RESERVED 0 | ||||
| RSA,DSA/SHA-256 1 [RFC7401] | ||||
| ECDSA/SHA-384 2 [RFC7401] | ||||
| ECDSA_LOW/SHA-1 3 [RFC7401] | ||||
| EdDSA/cSHAKE128 TBD3 (suggested value 5) [This] | ||||
| HDA Private Use 1 TBD4 (suggested value 254) [This] | ||||
| HDA Private Use 2 TBD5 (suggested value 255) [This] | ||||
| The HHIT Suite ID values 1 - 31 are reserved for IDs that MUST be | The HHIT Suite ID values 1 - 31 are reserved for IDs that MUST be | |||
| replicated as HIT Suite IDs (Section 8.4) as is TBD3 here. Higher | replicated as HIT Suite IDs (Section 8.4) as is 5 here. Higher | |||
| values (32 - 255) are for those Suite IDs that need not or cannot | values (32 - 255) are for those Suite IDs that need not or cannot be | |||
| be accommodated as a HIT Suite ID. | accommodated as a HIT Suite ID. | |||
| 8.3. IANA CGA Registry Update | 8.3. IANA CGA Registry Update | |||
| This document requests that this document be added to the reference | This document has been added as a reference for the "CGA Extension | |||
| field for the "CGA Extension Type Tags" registry [IANA-CGA], where | Type Tags" registry [IANA-CGA]. IANA has the following Context ID in | |||
| IANA registers the following Context ID: | this registry: | |||
| Context ID: | Context ID: | |||
| The Context ID (Section 3) shares the namespace introduced for CGA | The Context ID (Section 3) shares the namespace introduced for CGA | |||
| Type Tags. Defining new Context IDs follow the rules in Section 8 | Type Tags. The following Context ID is defined per the rules in | |||
| of [RFC3972]: | Section 8 of [RFC3972]: | |||
| Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 [This] | +===========================================+===========+ | |||
| | CGA Type Tag | Reference | | ||||
| +===========================================+===========+ | ||||
| | 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 | RFC 9374 | | ||||
| +-------------------------------------------+-----------+ | ||||
| Table 10: CGA Extension Type Tags | ||||
| 8.4. IANA HIP Registry Updates | 8.4. IANA HIP Registry Updates | |||
| This document requests IANA to make the following changes to the IANA | IANA has updated the "Host Identity Protocol (HIP) Parameters" | |||
| "Host Identity Protocol (HIP) Parameters" [IANA-HIP] registry: | registry [IANA-HIP] as described below. | |||
| Host ID: | Host ID: | |||
| This document defines the new EdDSA Host ID with value TBD1 | This document defines the new EdDSA Host ID with value 13 | |||
| (suggested: 13) (Section 3.4.1) in the "HI Algorithm" subregistry | (Section 3.4.1) in the "HI Algorithm" subregistry of the "Host | |||
| of the "Host Identity Protocol (HIP) Parameters" registry. | Identity Protocol (HIP) Parameters" registry. | |||
| Algorithm | +===================+=======+===========+ | |||
| profile Value Reference | | Algorithm Profile | Value | Reference | | |||
| +===================+=======+===========+ | ||||
| | EdDSA | 13 | [RFC8032] | | ||||
| +-------------------+-------+-----------+ | ||||
| EdDSA TBD1 (suggested value 13) [RFC8032] | Table 11: Registered HI Algorithm | |||
| EdDSA Curve Label: | EdDSA Curve Label: | |||
| This document specifies a new algorithm-specific subregistry named | This document specifies a new algorithm-specific subregistry named | |||
| "EdDSA Curve Label". The values for this subregistry are defined | "EdDSA Curve Label". The values for this subregistry are defined | |||
| in Section 3.4.1.1. Future additions to this subregistry are to | in Section 3.4.1.1. Future additions to this subregistry are to | |||
| be made through IETF Review (Section 4.8 of [RFC8126]). | be made through IETF Review (Section 4.8 of [RFC8126]). | |||
| Algorithm Curve Values Reference | +===========+==============+=========+============+ | |||
| | Algorithm | Curve | Value | Reference | | ||||
| +===========+==============+=========+============+ | ||||
| | EdDSA | RESERVED | 0 | RFC 9374 | | ||||
| +-----------+--------------+---------+------------+ | ||||
| | EdDSA | EdDSA25519 | 1 | [RFC8032] | | ||||
| +-----------+--------------+---------+------------+ | ||||
| | EdDSA | EdDSA25519ph | 2 | [RFC8032] | | ||||
| +-----------+--------------+---------+------------+ | ||||
| | EdDSA | EdDSA448 | 3 | [RFC8032] | | ||||
| +-----------+--------------+---------+------------+ | ||||
| | EdDSA | EdDSA448ph | 4 | [RFC8032] | | ||||
| +-----------+--------------+---------+------------+ | ||||
| | | | 5-65535 | Unassigned | | ||||
| +-----------+--------------+---------+------------+ | ||||
| EdDSA RESERVED 0 | Table 12: Registered EdDSA Curve Labels | |||
| EdDSA EdDSA25519 1 [RFC8032] | ||||
| EdDSA EdDSA25519ph 2 [RFC8032] | ||||
| EdDSA EdDSA448 3 [RFC8032] | ||||
| EdDSA EdDSA448ph 4 [RFC8032] | ||||
| 5-65535 Unassigned | ||||
| HIT Suite ID: | HIT Suite ID: | |||
| This document defines the new HIT Suite of EdDSA/cSHAKE with value | This document defines the new HIT Suite of EdDSA/cSHAKE with value | |||
| TBD3 (suggested: 5) (Section 3.4.2) in the "HIT Suite ID" | 5 (Section 3.4.2) in the "HIT Suite ID" subregistry of the "Host | |||
| subregistry of the "Host Identity Protocol (HIP) Parameters" | Identity Protocol (HIP) Parameters" registry. | |||
| registry. | ||||
| HIT Suite Value Reference | +=================+=======+===========+ | |||
| EdDSA/cSHAKE128 TBD3 (suggested value 5) [This] | | Suite ID | Value | Reference | | |||
| +=================+=======+===========+ | ||||
| | EdDSA/cSHAKE128 | 5 | RFC 9374 | | ||||
| +-----------------+-------+-----------+ | ||||
| Table 13: Registered HIT Suite of | ||||
| EdDSA/cSHAKE | ||||
| The HIT Suite ID 4-bit values 1 - 15 and 8-bit values 0x00 - 0x0F | The HIT Suite ID 4-bit values 1 - 15 and 8-bit values 0x00 - 0x0F | |||
| MUST be replicated as HHIT Suite IDs (Section 8.2) as is TBD3 | MUST be replicated as HHIT Suite IDs (Section 8.2) as is 5 here. | |||
| here. | ||||
| 9. Security Considerations | 9. Security Considerations | |||
| The 64-bit hash in HHITs presents a real risk of second pre-image | The 64-bit hash in HHITs presents a real risk of second pre-image | |||
| cryptographic hash attack Section 9.5. There are no known (to the | cryptographic hash attack (see Section 9.5). There are no known (to | |||
| authors) studies of hash size to cryptographic hash attacks. | the authors) studies of hash size impact on cryptographic hash | |||
| attacks. | ||||
| However, with today's computing power, producing 2^64 EdDSA keypairs | However, with today's computing power, producing 2^64 EdDSA keypairs | |||
| and then generating the corresponding HHIT is economically feasible. | and then generating the corresponding HHIT is economically feasible. | |||
| Consider that a *single* bitcoin mining ASIC can do on the order of | Consider that a *single* bitcoin mining ASIC can do on the order of | |||
| 2^46 sha256 hashes a second or about 2^62 hashes in a single day. | 2^46 sha256 hashes per second or about 2^62 hashes in a single day. | |||
| The point being, 2^64 is not prohibitive, especially as this can be | The point being, 2^64 is not prohibitive, especially as this can be | |||
| done in parallel. | done in parallel. | |||
| Now it should be noted that the 2^64 attempts is for stealing a | Note that the 2^64 attempts is for stealing a specific HHIT. | |||
| specific HHIT. Consider a scenario of a street photography company | Consider a scenario of a street photography company with 1,024 UAs | |||
| with 1,024 UAs (each with its own HHIT); an attacker may well be | (each with its own HHIT); an attacker may well be satisfied stealing | |||
| satisfied stealing any one of them. Then rather than needing to | any one of them. Then, rather than needing to satisfy a 64-bit | |||
| satisfy a 64-bit condition on the cSHAKE128 output, an attacker needs | condition on the cSHAKE128 output, an attacker only needs to satisfy | |||
| only to satisfy what is equivalent to a 54-bit condition (since there | what is equivalent to a 54-bit condition (since there are 2^10 more | |||
| are 2^10 more opportunities for success). | opportunities for success). | |||
| Thus, although the probability of a collision or pre-image attack is | Thus, although the probability of a collision or pre-image attack is | |||
| low in a collection of 1,024 HHITs out of a total population of 2^64, | low in a collection of 1,024 HHITs out of a total population of 2^64 | |||
| per Section 9.5, it is computationally and economically feasible. | (per Section 9.5), it is computationally and economically feasible. | |||
| Therefore, the HHIT registration is a MUST and HHIT/HI registration | Therefore, the HHIT registration is a MUST and HHIT/HI registration | |||
| validation SHOULD be performed by Observers either through registry | validation SHOULD be performed by Observers either through registry | |||
| lookups or via broadcasted registration proofs (Section 3.1.2 of | lookups or via broadcasted registration proofs (Section 3.1.2 of | |||
| [drip-authentication]). | [DRIP-AUTH]). | |||
| The DET Registry services effectively block attempts to "take over" | The DET Registry services effectively block attempts to "take over" | |||
| or "hijack" a DET. It does not stop a rogue attempting to | or "hijack" a DET. It does not stop a rogue attempting to | |||
| impersonate a known DET. This attack can be mitigated by the | impersonate a known DET. This attack can be mitigated by the | |||
| receiver of messages containing DETs using DNS to find the HI for the | receiver of messages containing DETs using DNS to find the HI for the | |||
| DET. As such, use of DNSSEC by the DET registries is recommended to | DET. As such, use of DNSSEC by the DET registries is recommended to | |||
| provide trust in HI retrieval. | provide trust in HI retrieval. | |||
| Another mitigation of HHIT hijacking is if the HI owner (UA) supplies | Another mitigation of HHIT hijacking is when the HI owner (UA) | |||
| an object containing the HHIT and signed by the HI private key of the | supplies an object containing the HHIT that is signed by the HI | |||
| HDA such as detailed in [drip-authentication]. | private key of the HDA as detailed in [DRIP-AUTH]. | |||
| The two risks with hierarchical HITs are the use of an invalid HID | The two risks with HHITs are the use of an invalid HID and forced HIT | |||
| and forced HIT collisions. The use of a DNS zone (e.g., "det.arpa.") | collisions. The use of a DNS zone (e.g., "det.arpa.") is strong | |||
| is a strong protection against invalid HIDs. Querying an HDA's RVS | protection against invalid HIDs. Querying an HDA's RVS for a HIT | |||
| for a HIT under the HDA protects against talking to unregistered | under the HDA protects against talking to unregistered clients. The | |||
| clients. The Registry service [drip-registries], through its HHIT | Registry service [DRIP-REG], through its HHIT uniqueness enforcement, | |||
| uniqueness enforcement, provides against forced or accidental HHIT | provides against forced or accidental HHIT hash collisions. | |||
| hash collisions. | ||||
| Cryptographically Generated Addresses (CGAs) provide an assurance of | Cryptographically Generated Addresses (CGAs) provide an assurance of | |||
| uniqueness. This is two-fold. The address (in this case the UAS ID) | uniqueness. This is two-fold. The address (in this case the UAS ID) | |||
| is a hash of a public key and a Registry hierarchy naming. Collision | is a hash of a public key and a Registry hierarchy naming. Collision | |||
| resistance (more important that it implied second-preimage | resistance (and more importantly, the implied second-preimage | |||
| resistance) makes it statistically challenging to attacks. A | resistance) makes attacks statistically challenging. A registration | |||
| registration process [drip-registries] within the HDA provides a | process [DRIP-REG] within the HDA provides a level of assured | |||
| level of assured uniqueness unattainable without mirroring this | uniqueness unattainable without mirroring this approach. | |||
| approach. | ||||
| The second aspect of assured uniqueness is the digital signing | The second aspect of assured uniqueness is the digital signing | |||
| (evidence) process of the DET by the HI private key and the further | (evidence) process of the DET by the HI private key and the further | |||
| signing (evidence) of the HI public key by the Registry's key. This | signing (evidence) of the HI public key by the Registry's key. This | |||
| completes the ownership process. The observer at this point does not | completes the ownership process. The observer at this point does not | |||
| know what owns the DET, but is assured, other than the risk of theft | know what owns the DET but is assured, other than the risk of theft | |||
| of the HI private key, that this UAS ID is owned by something and is | of the HI private key, that this UAS ID is owned by something and it | |||
| properly registered. | is properly registered. | |||
| 9.1. Post Quantum Computing out of scope | 9.1. Post-Quantum Computing Is Out of Scope | |||
| As stated in Section 8.1 of [drip-architecture], there has been no | As stated in Section 8.1 of [DRIP-ARCH], there has been no effort to | |||
| effort, at this time, to address post quantum computing cryptography. | address post-quantum computing cryptography. UAs and Broadcast | |||
| UAs and Broadcast Remote ID communications are so constrained that | Remote ID communications are so constrained that current post-quantum | |||
| current post quantum computing cryptography is not applicable. Plus | computing cryptography is not applicable. In addition, because a UA | |||
| since a UA may use a unique DET for each operation, the attack window | may use a unique DET for each operation, the attack window could be | |||
| could be limited to the duration of the operation. | limited to the duration of the operation. | |||
| HHITs contain the ID for the cryptographic suite used in its | HHITs contain the ID for the cryptographic suite used in its | |||
| creation, a future post quantum computing safe algorithm that fits | creation, a future algorithm that is safe for post-quantum computing | |||
| the Remote ID constraints may readily be added. | that fits the Remote ID constraints may readily be added. | |||
| 9.2. DET Trust in ASTM messaging | 9.2. DET Trust in ASTM Messaging | |||
| The DET in the ASTM Basic ID Message (Msg Type 0x0, the actual Remote | The DET in the ASTM Basic ID Message (Msg Type 0x0, the actual Remote | |||
| ID message) does not provide any assertion of trust. The best that | ID message) does not provide any assertion of trust. Truncating 4 | |||
| might be done within this Basic ID Message is 4 bytes truncated from | bytes from a HI signing of the HHIT (the UA ID field is 20 bytes and | |||
| a HI signing of the HHIT (the UA ID field is 20 bytes and a HHIT is | a HHIT is 16) within this Basic ID Message is the best that can be | |||
| 16). This is not trustable; that is, too open to a hash attack. | done. This is not trustable, as it is too open to a hash attack. | |||
| Minimally, it takes 84 bytes (Section 4.6) to prove ownership of a | Minimally, it takes 88 bytes (Section 4.6) to prove ownership of a | |||
| DET with a full EdDSA signature. Thus, no attempt has been made to | DET with a full EdDSA signature. Thus, no attempt has been made to | |||
| add DET trust directly within the very small Basic ID Message. | add DET trust directly within the very small Basic ID Message. | |||
| The ASTM Authentication Message (Msg Type 0x2) as shown in | The ASTM Authentication Message (Msg Type 0x2) as shown in | |||
| Section 4.6 can provide practical actual ownership proofs. These | Section 4.6 can provide actual ownership proofs in a practical | |||
| endorsements and evidences include timestamps to defend against | manner. The endorsements and evidence include timestamps to defend | |||
| replay attacks. But in themselves, they do not prove which UA sent | against replay attacks, but they do not prove which UA sent the | |||
| the message. They could have been sent by a dog running down the | message. The messages could have been sent by a dog running down the | |||
| street with a Broadcast Remote ID module strapped to its back. | street with a Broadcast Remote ID module strapped to its back. | |||
| Proof of UA transmission comes when the Authentication Message | Proof of UA transmission comes, for example, when the Authentication | |||
| includes proofs for the ASTM Location/Vector Message (Msg Type 0x1) | Message includes proof of the ASTM Location/Vector Message (Msg Type | |||
| and the observer can see the UA or that information is validated by | 0x1) and a) the observer can see the UA or b) the location | |||
| ground multilateration. Only then does an observer gain full trust | information is validated by ground multilateration. Only then does | |||
| in the DET of the UA. | an observer gain full trust in the DET of the UA. | |||
| DETs obtained via the Network RID path provides a different approach | DETs obtained via the Network RID path provide a different approach | |||
| to trust. Here the UAS SHOULD be securely communicating to the USS, | to trust. Here the UAS SHOULD be securely communicating to the USS, | |||
| thus asserting DET trust. | thus asserting DET trust. | |||
| 9.3. DET Revocation | 9.3. DET Revocation | |||
| The DNS entry for the DET can also provide a revocation service. For | The DNS entry for the DET can also provide a revocation service. For | |||
| example, instead of returning the HI RR it may return some record | example, instead of returning the HI RR, it may return some record | |||
| showing that the HI (and thus DET) has been revoked. Guidance on | showing that the HI (and thus DET) has been revoked. Guidance on | |||
| revocation service will be provided in [drip-registries]. | revocation service will be provided in [DRIP-REG]. | |||
| 9.4. Privacy Considerations | 9.4. Privacy Considerations | |||
| There is no expectation of privacy for DETs; it is not part of the | There is no expectation of privacy for DETs; it is not part of the | |||
| privacy normative requirements listed in, Section 4.3.1, of | normative privacy requirements listed in Section 4.3.1 of [RFC9153]. | |||
| [RFC9153]. DETs are broadcast in the clear over the open air via | DETs are broadcast in the clear over the open air via Bluetooth and | |||
| Bluetooth and Wi-Fi. They will be collected and collated with other | Wi-Fi. They will be collected and collated with other public | |||
| public information about the UAS. This will include DET registration | information about the UAS. This will include DET registration | |||
| information and location and times of operations for a DET. A DET | information and location and times of operations for a DET. A DET | |||
| can be for the life of a UA if there is no concern about DET/UA | can be for the life of a UA if there is no concern about DET/UA | |||
| activity harvesting. | activity harvesting. | |||
| Further, the MAC address of the wireless interface used for Remote ID | Further, the Media Access Control (MAC) address of the wireless | |||
| broadcasts are a target for UA operation aggregation that may not be | interface used for Remote ID broadcasts are a target for UA operation | |||
| mitigated through MAC address randomization. For Bluetooth 4 Remote | aggregation that may not be mitigated through MAC address | |||
| ID messaging, the MAC address is used by observers to link the Basic | randomization. For Bluetooth 4 Remote ID messaging, the MAC address | |||
| ID Message that contains the RID with other Remote ID messages, thus | is used by observers to link the Basic ID Message that contains the | |||
| must be constant for a UA operation. This message linkage use of MAC | RID with other Remote ID messages, thus it must be constant for a UA | |||
| addresses may not be needed with the Bluetooth 5 or Wi-Fi PHYs. | operation. This use of MAC addresses to link messages may not be | |||
| These PHYs provide for a larger message payload and can use the | needed with the Bluetooth 5 or Wi-Fi PHYs. These PHYs provide for a | |||
| Message Pack (Msg Type 0xF) and the Authentication Message to | larger message payload and can use the Message Pack (Msg Type 0xF) | |||
| transmit the RID with other Remote ID messages. However, it is not | and the Authentication Message to transmit the RID with other Remote | |||
| mandatory to send the RID in a Message Pack or Authentication | ID messages. However, sending the RID in a Message Pack or | |||
| Message, so allowance for using the MAC address for UA message | Authentication Message is not mandatory, so using the MAC address for | |||
| linking must be maintained. That is, the MAC address should be | UA message linking must be allowed. That is, the MAC address should | |||
| stable for at least a UA operation. | be stable for at least a UA operation. | |||
| Finally, it is not adequate to simply change the DET and MAC for a UA | Finally, it is not adequate to simply change the DET and MAC for a UA | |||
| per operation to defeat historically tracking a UA's activity. | per operation to defeat tracking the history of the UA's activity. | |||
| Any changes to the UA MAC may have impacts to C2 setup and use. A | Any changes to the UA MAC may have impacts to C2 setup and use. A | |||
| constant GCS MAC may well defeat any privacy gains in UA MAC and RID | constant GCS MAC may well defeat any privacy gains in UA MAC and RID | |||
| changes. UA/GCS binding is complicated with changing MAC addresses; | changes. UA/GCS binding is complicated if the UA MAC address can | |||
| historically UAS design assumed these to be "forever" and made setup | change; historically, UAS design assumed these to be "forever" and | |||
| a one-time process. Additionally, if IP is used for C2, a changing | made setup a one-time process. Additionally, if IP is used for C2, a | |||
| MAC may mean a changing IP address to further impact the UAS | changing MAC may mean a changing IP address to further impact the UAS | |||
| bindings. Finally, an encryption wrapper's identifier (such as ESP | bindings. Finally, an encryption wrapper's identifier (such as ESP | |||
| [RFC4303] SPI) would need to change per operation to insure operation | [RFC4303] SPI) would need to change per operation to ensure operation | |||
| tracking separation. | tracking separation. | |||
| Creating and maintaining UAS operational privacy is a multifaceted | Creating and maintaining UAS operational privacy is a multifaceted | |||
| problem. Many communication pieces need to be considered to truly | problem. Many communication pieces need to be considered to truly | |||
| create a separation between UA operations. Simply changing the DET | create a separation between UA operations. Changing the DET is only | |||
| only starts the changes that need to be implemented. | the start of the changes that need to be implemented. | |||
| These privacy realities may present challenges for the EU U-space | These privacy realities may present challenges for the European Union | |||
| (Appendix A) program. | (EU) U-space (Appendix A) program. | |||
| 9.5. Collision Risks with DETs | 9.5. Collision Risks with DETs | |||
| The 64-bit hash size here for DETs does have an increased risk of | The 64-bit hash size here for DETs does have an increased risk of | |||
| collisions over the 96-bit hash size used for the ORCHID [RFC7343] | collisions over the 96-bit hash size used for the ORCHID [RFC7343] | |||
| construct. There is a 0.01% probability of a collision in a | construct. There is a 0.01% probability of a collision in a | |||
| population of 66 million. The probability goes up to 1% for a | population of 66 million. The probability goes up to 1% for a | |||
| population of 663 million. See Appendix D for the collision | population of 663 million. See Appendix D for the collision | |||
| probability formula. | probability formula. | |||
| However, this risk of collision is within a single "Additional | However, this risk of collision is within a single "Additional | |||
| Information" value, i.e., a RAA/HDA domain. The UAS/USS registration | Information" value, i.e., a RAA/HDA domain. The UAS/USS registration | |||
| process should include registering the DET and MUST reject a | process should include registering the DET and MUST reject a | |||
| collision, forcing the UAS to generate a new HI and thus HHIT and | collision, forcing the UAS to generate a new HI and thus HHIT and | |||
| reapplying to the DET registration process (Section 6 of | reapplying to the DET registration process (Section 6 of [DRIP-REG]). | |||
| [drip-registries]). | ||||
| Thus an adversary trying to generate a collision and 'steal' the DET | Thus an adversary trying to generate a collision and 'steal' the DET | |||
| would run afoul of this registration process and associated | would run afoul of this registration process and associated | |||
| validation process mentioned in Section 1.1. | validation process mentioned in Section 1.1. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [ipseckey-eddsa] | ||||
| Moskowitz, R., Kivinen, T., and M. Richardson, "EdDSA | ||||
| value for IPSECKEY", Work in Progress, Internet-Draft, | ||||
| draft-moskowitz-ipsecme-ipseckey-eddsa-06, 23 November | ||||
| 2022, <https://datatracker.ietf.org/doc/html/draft- | ||||
| moskowitz-ipsecme-ipseckey-eddsa-06>. | ||||
| [NIST.FIPS.202] | [NIST.FIPS.202] | |||
| Dworkin, M. J. and National Institute of Standards and | Dworkin, M. J. and National Institute of Standards and | |||
| Technology, "SHA-3 Standard: Permutation-Based Hash and | Technology, "SHA-3 Standard: Permutation-Based Hash and | |||
| Extendable-Output Functions", DOI 10.6028/nist.fips.202, | Extendable-Output Functions", DOI 10.6028/nist.fips.202, | |||
| July 2015, <http://dx.doi.org/10.6028/nist.fips.202>. | July 2015, <http://dx.doi.org/10.6028/nist.fips.202>. | |||
| [NIST.SP.800-185] | [NIST.SP.800-185] | |||
| Kelsey, J., Change, S., Perlner, R., and National | Kelsey, J., Change, S., Perlner, R., and National | |||
| Institute of Standards and Technology, "SHA-3 derived | Institute of Standards and Technology, "SHA-3 derived | |||
| functions: cSHAKE, KMAC, TupleHash and ParallelHash", | functions: cSHAKE, KMAC, TupleHash and ParallelHash", | |||
| skipping to change at page 30, line 9 ¶ | skipping to change at line 1396 ¶ | |||
| [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>. | |||
| [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>. | |||
| [RFC9373] Moskowitz, R., Kivinen, T., and M. Richardson, "EdDSA | ||||
| Value for IPSECKEY", RFC 9373, DOI 10.17487/RFC9373, | ||||
| February 2023, <https://www.rfc-editor.org/info/rfc9373>. | ||||
| 10.2. Informative References | 10.2. Informative References | |||
| [cfrg-comment] | [CFRG-COMMENT] | |||
| "A CFRG review of draft-ietf-drip-rid", September 2021, | Gajcowski, N., "Please review draft-ietf-drip-rid", | |||
| message to the CFRG mailing list, 23 September 2021, | ||||
| <https://mailarchive.ietf.org/arch/msg/cfrg/ | <https://mailarchive.ietf.org/arch/msg/cfrg/ | |||
| tAJJq60W6TlUv7_pde5cw5TDTCU/>. | tAJJq60W6TlUv7_pde5cw5TDTCU/>. | |||
| [corus] CORUS, "U-space Concept of Operations", September 2019, | [CORUS] CORUS, "SESAR Concept of Operations for U-space", 9 | |||
| <https://www.sesarju.eu/node/3411>. | September 2019, <https://www.sesarju.eu/node/3411>. | |||
| [CTA2063A] ANSI/CTA, "Small Unmanned Aerial Systems Serial Numbers", | [CTA2063A] ANSI/CTA, "Small Unmanned Aerial Systems Serial Numbers", | |||
| September 2019, <https://shop.cta.tech/products/small- | September 2019, <https://shop.cta.tech/products/small- | |||
| unmanned-aerial-systems-serial-numbers>. | unmanned-aerial-systems-serial-numbers>. | |||
| [drip-architecture] | [DRIP-ARCH] | |||
| Card, S. W., Wiethuechter, A., Moskowitz, R., Zhao, S., | Card, S. W., Wiethuechter, A., Moskowitz, R., Zhao, S., | |||
| and A. Gurtov, "Drone Remote Identification Protocol | and A. Gurtov, "Drone Remote Identification Protocol | |||
| (DRIP) Architecture", Work in Progress, Internet-Draft, | (DRIP) Architecture", Work in Progress, Internet-Draft, | |||
| draft-ietf-drip-arch-29, 16 August 2022, | draft-ietf-drip-arch-31, 6 March 2023, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-drip- | <https://datatracker.ietf.org/doc/html/draft-ietf-drip- | |||
| arch-29>. | arch-31>. | |||
| [drip-authentication] | [DRIP-AUTH] | |||
| Wiethuechter, A., Card, S. W., and R. Moskowitz, "DRIP | Wiethuechter, A., Card, S. W., and R. Moskowitz, "DRIP | |||
| Entity Tag Authentication Formats & Protocols for | Entity Tag Authentication Formats & Protocols for | |||
| Broadcast Remote ID", Work in Progress, Internet-Draft, | Broadcast Remote ID", Work in Progress, Internet-Draft, | |||
| draft-ietf-drip-auth-26, 14 October 2022, | draft-ietf-drip-auth-29, 15 February 2023, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-drip- | <https://datatracker.ietf.org/doc/html/draft-ietf-drip- | |||
| auth-26>. | auth-29>. | |||
| [drip-registries] | [DRIP-REG] Wiethuechter, A. and J. Reid, "DRIP Entity Tag (DET) | |||
| Wiethuechter, A. and J. Reid, "DRIP Entity Tag (DET) | ||||
| Identity Management Architecture", Work in Progress, | Identity Management Architecture", Work in Progress, | |||
| Internet-Draft, draft-ietf-drip-registries-06, 17 November | Internet-Draft, draft-ietf-drip-registries-07, 5 December | |||
| 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | 2022, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| drip-registries-06>. | drip-registries-07>. | |||
| [F3411-22a] | [F3411-22a] | |||
| ASTM International, "Standard Specification for Remote ID | ASTM International, "Standard Specification for Remote ID | |||
| and Tracking - F3411−22a", July 2022, | and Tracking - F3411−22a", July 2022, | |||
| <https://www.astm.org/f3411-22a.html>. | <https://www.astm.org/f3411-22a.html>. | |||
| [FAA_RID] United States Federal Aviation Administration (FAA), | [FAA_RID] United States Federal Aviation Administration (FAA), | |||
| "Remote Identification of Unmanned Aircraft", 2021, | "Remote Identification of Unmanned Aircraft", 15 January | |||
| <https://www.govinfo.gov/content/pkg/FR-2021-01-15/ | 2021, <https://www.govinfo.gov/content/pkg/FR-2021-01-15/ | |||
| pdf/2020-28948.pdf>. | pdf/2020-28948.pdf>. | |||
| [HHSI] IANA, "Hierarchical HIT (HHIT) Suite IDs", | ||||
| <https://www.iana.org/assignments/drip>. | ||||
| [IANA-CGA] IANA, "Cryptographically Generated Addresses (CGA) Message | [IANA-CGA] IANA, "Cryptographically Generated Addresses (CGA) Message | |||
| Type Name Space", <https://www.iana.org/assignments/cga- | Type Name Space", | |||
| message-types/cga-message-types.xhtml>. | <https://www.iana.org/assignments/cga-message-types>. | |||
| [IANA-HIP] IANA, "Host Identity Protocol (HIP) Parameters", | [IANA-HIP] IANA, "Host Identity Protocol (HIP) Parameters", | |||
| <https://www.iana.org/assignments/hip-parameters/hip- | <https://www.iana.org/assignments/hip-parameters>. | |||
| parameters.xhtml>. | ||||
| [IPv6-SPECIAL] | ||||
| IANA, "IANA IPv6 Special-Purpose Address Registry", | ||||
| <https://www.iana.org/assignments/iana-ipv6-special- | ||||
| registry/>. | ||||
| [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and | [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and | |||
| R. Van Keer, "The Keccak Function", | R. Van Keer, "Keccak Team", | |||
| <https://keccak.team/index.html>. | <https://keccak.team/index.html>. | |||
| [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>. | |||
| [RFC4025] Richardson, M., "A Method for Storing IPsec Keying | [RFC4025] Richardson, M., "A Method for Storing IPsec Keying | |||
| Material in DNS", RFC 4025, DOI 10.17487/RFC4025, March | Material in DNS", RFC 4025, DOI 10.17487/RFC4025, March | |||
| 2005, <https://www.rfc-editor.org/info/rfc4025>. | 2005, <https://www.rfc-editor.org/info/rfc4025>. | |||
| skipping to change at page 32, line 28 ¶ | skipping to change at line 1521 ¶ | |||
| <https://www.rfc-editor.org/info/rfc9153>. | <https://www.rfc-editor.org/info/rfc9153>. | |||
| [RFC9224] Blanchet, M., "Finding the Authoritative Registration Data | [RFC9224] Blanchet, M., "Finding the Authoritative Registration Data | |||
| Access Protocol (RDAP) Service", STD 95, RFC 9224, | Access Protocol (RDAP) Service", STD 95, RFC 9224, | |||
| DOI 10.17487/RFC9224, March 2022, | DOI 10.17487/RFC9224, March 2022, | |||
| <https://www.rfc-editor.org/info/rfc9224>. | <https://www.rfc-editor.org/info/rfc9224>. | |||
| Appendix A. EU U-Space RID Privacy Considerations | Appendix A. EU U-Space RID Privacy Considerations | |||
| The EU is defining a future of airspace management known as U-space | The EU is defining a future of airspace management known as U-space | |||
| within the Single European Sky ATM Research (SESAR) undertaking. | within the Single European Sky ATM Research (SESAR) undertaking. The | |||
| Concept of Operation for EuRopean UTM Systems (CORUS) project | Concept of Operation for EuRopean UTM Systems (CORUS) project | |||
| proposed low-level Concept of Operations [corus] for UAS in the EU. | proposed low-level Concept of Operations [CORUS] for UAS in the EU. | |||
| It introduces strong requirements for UAS privacy based on European | It introduces strong requirements for UAS privacy based on European | |||
| GDPR regulations. It suggests that UAs are identified with agnostic | General Data Protection Regulation (GDPR) regulations. It suggests | |||
| IDs, with no information about UA type, the operators or flight | that UAs are identified with agnostic IDs, with no information about | |||
| trajectory. Only authorized persons should be able to query the | UA type, the operators, or flight trajectory. Only authorized | |||
| details of the flight with a record of access. | persons should be able to query the details of the flight with a | |||
| record of access. | ||||
| Due to the high privacy requirements, a casual observer can only | Due to the high privacy requirements, a casual observer can only | |||
| query U-space if it is aware of a UA seen in a certain area. A | query U-space if it is aware of a UA seen in a certain area. A | |||
| general observer can use a public U-space portal to query UA details | general observer can use a public U-space portal to query UA details | |||
| based on the UA transmitted "Remote identification" signal. Direct | based on the UA transmitted "Remote identification" signal. Direct | |||
| remote identification (DRID) is based on a signal transmitted by the | remote identification (DRID) is based on a signal transmitted by the | |||
| UA directly. Network remote identification (NRID) is only possible | UA directly. Network remote identification (NRID) is only possible | |||
| for UAs being tracked by U-Space and is based on the matching the | for UAs being tracked by U-Space and is based on the matching the | |||
| current UA position to one of the tracks. | current UA position to one of the tracks. | |||
| skipping to change at page 33, line 12 ¶ | skipping to change at line 1552 ¶ | |||
| GDPR regulations. Still, DETs as defined here present a large step | GDPR regulations. Still, DETs as defined here present a large step | |||
| in the right direction for agnostic IDs. | in the right direction for agnostic IDs. | |||
| The project lists "E-Identification" and "E-Registrations" services | The project lists "E-Identification" and "E-Registrations" services | |||
| as to be developed. These services can use DETs and follow the | as to be developed. These services can use DETs and follow the | |||
| privacy considerations outlined in this document for DETs. | privacy considerations outlined in this document for DETs. | |||
| If an "agnostic ID" above refers to a completely random identifier, | If an "agnostic ID" above refers to a completely random identifier, | |||
| it creates a problem with identity resolution and detection of | it creates a problem with identity resolution and detection of | |||
| misuse. On the other hand, a classical HIT has a flat structure | misuse. On the other hand, a classical HIT has a flat structure | |||
| which makes its resolution difficult. The DET (Hierarchical HIT) | which makes its resolution difficult. The DET (HHIT) provides a | |||
| provides a balanced solution by associating a registry with the UA | balanced solution by associating a registry with the UA identifier. | |||
| identifier. This is not likely to cause a major conflict with | This is not likely to cause a major conflict with U-space privacy | |||
| U-space privacy requirements, as the registries are typically few at | requirements, as the registries are typically few at a country level | |||
| a country level (e.g., civil personal, military, law enforcement, or | (e.g., civil personal, military, law enforcement, or commercial). | |||
| commercial). | ||||
| Appendix B. The 14/14 HID split | Appendix B. The 14/14 HID split | |||
| The following explains the logic behind selecting to divide the 28 | The following explains the logic for dividing the 28 bits of the HID | |||
| bits of the HID into 2 14-bit components. | into two 14-bit components. | |||
| At this writing ICAO has 273 member "States", each may want to | At this writing, the International Civil Aviation Organization (ICAO) | |||
| control RID assignment within its National Air Space (NAS). Some | has 193 member "States", and each may want to control RID assignment | |||
| members may want separate RAAs to use for Civil, general Government, | within its National Air Space (NAS). Some members may want separate | |||
| and Military use. They may also want allowances for competing Civil | RAAs to use for Civil, general Government, and Military use. They | |||
| RAA operations. It is reasonable to plan for 8 RAAs per ICAO member | may also want allowances for competing Civil RAA operations. It is | |||
| (plus regional aviation organizations like in the European Union). | reasonable to plan for eight RAAs per ICAO member (plus regional | |||
| Thus at a start a 4,096 RAA space is advised. | aviation organizations like in the EU). Thus, as a start, a space of | |||
| 4,096 RAAs is advised. | ||||
| There will be requests by commercial entities for their own, RAA | There will be requests by commercial entities for their own RAA | |||
| allotments. Examples could include international organizations that | allotments. Examples could include international organizations that | |||
| will be using UAS and international delivery service associations. | will be using UAS and international delivery service associations. | |||
| These may be smaller than the RAA space needed by ICAO member States | These may be smaller than the RAA space needed by ICAO member States | |||
| and could be met with a 2,048 space allotment, but as will be seen, | and could be met with a 2,048 space allotment; however, as will be | |||
| might as well be 4,096 as well. | seen, these might as well be 4,096 as well. | |||
| This may well cover currently understood RAA entities. There will be | This may well cover currently understood RAA entities. In the | |||
| future new applications, branching off into new areas. So yet | future, there will be new applications, branching off into new areas, | |||
| another space allocation should be set aside. If this is equal to | so yet another space allocation should be set aside. If this is | |||
| all that has been reserved, we should allow for 16,384 (2^14) RAAs. | equal to all that has been reserved, we should allow for 16,384 | |||
| (2^14) RAAs. | ||||
| The HDA allocation follows a different logic from that of RAAs. Per | The HDA allocation follows a different logic from that of RAAs. Per | |||
| Appendix D, an HDA should be able to easily assign 63M RIDs and even | Appendix D, an HDA should be able to easily assign 63M RIDs and even | |||
| manage 663M with a "first come, first assigned" registration process. | manage 663M with a "first come, first assigned" registration process. | |||
| For most HDAs this is more than enough, and a single HDA assignment | For most HDAs, this is more than enough, and a single HDA assignment | |||
| within their RAA will suffice. Most RAAs will only delegate to a | within their RAA will suffice. Most RAAs will only delegate to a | |||
| couple HDAs for their operational needs. But there are major | couple of HDAs for their operational needs. But there are major | |||
| exceptions that point to some RAAs needing large numbers of HDA | exceptions that point to some RAAs needing large numbers of HDA | |||
| assignments. | assignments. | |||
| Delivery service operators like Amazon (est. 30K delivery vans) and | Delivery service operators like Amazon (est. 30K delivery vans) and | |||
| UPS (est. 500K delivery vans) may choose, for anti-tracking reasons, | UPS (est. 500K delivery vans) may choose, for anti-tracking reasons, | |||
| to use unique RIDs per day or even per operation. 30K delivery UA | to use unique RIDs per day or even per operation. 30K delivery UAs | |||
| could need 11M upwards to 44M RIDs. Anti-tracking would be hard to | could need between 11M and 44M RIDs. Anti-tracking would be hard to | |||
| provide if the HID were the same for a delivery service fleet, so | provide if the HID were the same for a delivery service fleet, so | |||
| such a company may turn to an HDA that provides this service to | such a company may turn to an HDA that provides this service to | |||
| multiple companies so that who's UA is who's is not evident in the | multiple companies so that who's UA is who's is not evident in the | |||
| HID. A USS providing this service could well use multiple HDA | HID. A USS providing this service could well use multiple HDA | |||
| assignments per year, depending on strategy. | assignments per year, depending on strategy. | |||
| Perhaps a single RAA providing HDAs for delivery service (or similar | Perhaps a single RAA providing HDAs for delivery service (or a | |||
| behaving) UAS could 'get by' with a 2048 HDA space (11-bits). So the | similar purpose) UAS could 'get by' with a 2048 HDA space (11-bits). | |||
| HDA space could well be served with only 12 bits allocated out of the | So the HDA space could well be served with only 12 bits allocated out | |||
| 28-bit HID space. But as this is speculation, and it will take years | of the 28-bit HID space. However, as this is speculation and | |||
| of deployment experience, a 14-bit HDA space has been selected. | deployment experience will take years, a 14-bit HDA space has been | |||
| selected. | ||||
| There may also be 'small' ICAO member States that opt for a single | There may also be 'small' ICAO member States that opt for a single | |||
| RAA and allocate their HDAs for all UA that are permitted in their | RAA and allocate their HDAs for all UAs that are permitted in their | |||
| NAS. The HDA space is large enough that some to use part for | NAS. The HDA space is large enough that a portion may be used for | |||
| government needs as stated above and for small commercial needs. Or | government needs as stated above and small commercial needs. | |||
| the State may use a separate, consecutive RAA for commercial users. | Alternatively, the State may use a separate, consecutive RAA for | |||
| Thus it would be 'easy' to recognize State-approved UA by HID high- | commercial users. Thus it would be 'easy' to recognize State- | |||
| order bits. | approved UA by HID high-order bits. | |||
| B.1. DET Encoding Example | B.1. DET Encoding Example | |||
| The DET upper 64 bits appear to be oddly constructed from nibbled | The upper 64 bits of DET appear to be oddly constructed from nibbled | |||
| fields, when typically seen in 8-bit representations. The following | fields, when typically seen in 8-bit representations. The following | |||
| works out the construction of the example in Section 5. | works out the construction of the example in Section 5. | |||
| In that example the prefix is 2001:30::/28, the RAA is decimal 10 and | In that example, the prefix is 2001:30::/28, the RAA is decimal 10, | |||
| the HDA is decimal 20. Below is the RAA and HDA in 14-bit format: | and the HDA is decimal 20. Below is the RAA and HDA in 14-bit | |||
| format: | ||||
| RAA 10 = 00000000001010 | RAA 10 = 00000000001010 | |||
| HDA 20 = 00000000010100 | HDA 20 = 00000000010100 | |||
| The left most 4 bits of the RAA, all zeros, combine with the prefix | The leftmost 4 bits of the RAA, all zeros, combine with the prefix to | |||
| to form 2001:0030:, leaving remaining RAA and HDA combined to: | form 2001:0030:, which leaves the remaining RAA and HDA to combine | |||
| to: | ||||
| 0000|0010|1000|0000|0001|0100| | 0000|0010|1000|0000|0001|0100| | |||
| Which, combined with the OGA of x05 is: 0280:1405, thus the whole | Which when combined with the OGA of x05 is 0280:1405, thus the whole | |||
| upper 64 bits are 2001:0030:0280:1405. | upper 64 bits are 2001:0030:0280:1405. | |||
| Appendix C. Base32 Alphabet | Appendix C. Base32 Alphabet | |||
| The alphabet used in CTA 2063-A Serial Number does not lend to using | The alphabet used in CTA 2063-A Serial Number does not map to any | |||
| any published Base32 encoding scheme. Thus the following Base32 | published Base32 encoding scheme. Therefore, the following Base32 | |||
| Alphabet is used. | Alphabet is used. | |||
| Each 5-bit group is used as an index into an array of 32 printable | Each 5-bit group is used as an index into an array of 32 printable | |||
| characters. The character referenced by the index is placed in the | characters. The character referenced by the index is placed in the | |||
| output string. These characters, identified below, are selected from | output string. These characters, identified below, are selected from | |||
| US-ASCII digits and uppercase letters. | US-ASCII digits and uppercase letters. | |||
| +=====+========+=====+==========+=====+==========+=====+==========+ | +=====+========+=====+==========+=====+==========+=====+==========+ | |||
| |Value|Encoding|Value| Encoding |Value| Encoding |Value| Encoding | | |Value|Encoding|Value| Encoding |Value| Encoding |Value| Encoding | | |||
| +=====+========+=====+==========+=====+==========+=====+==========+ | +=====+========+=====+==========+=====+==========+=====+==========+ | |||
| skipping to change at page 35, line 36 ¶ | skipping to change at line 1672 ¶ | |||
| +-----+--------+-----+----------+-----+----------+-----+----------+ | +-----+--------+-----+----------+-----+----------+-----+----------+ | |||
| | 4|4 | 12| C | 20| L | 28| V | | | 4|4 | 12| C | 20| L | 28| V | | |||
| +-----+--------+-----+----------+-----+----------+-----+----------+ | +-----+--------+-----+----------+-----+----------+-----+----------+ | |||
| | 5|5 | 13| D | 21| M | 29| W | | | 5|5 | 13| D | 21| M | 29| W | | |||
| +-----+--------+-----+----------+-----+----------+-----+----------+ | +-----+--------+-----+----------+-----+----------+-----+----------+ | |||
| | 6|6 | 14| E | 22| N | 30| X | | | 6|6 | 14| E | 22| N | 30| X | | |||
| +-----+--------+-----+----------+-----+----------+-----+----------+ | +-----+--------+-----+----------+-----+----------+-----+----------+ | |||
| | 7|7 | 15| F | 23| P | 31| Y | | | 7|7 | 15| F | 23| P | 31| Y | | |||
| +-----+--------+-----+----------+-----+----------+-----+----------+ | +-----+--------+-----+----------+-----+----------+-----+----------+ | |||
| Table 2: The Base 32 Alphabet | Table 14: The Base 32 Alphabet | |||
| Appendix D. Calculating Collision Probabilities | Appendix D. Calculating Collision Probabilities | |||
| The accepted formula for calculating the probability of a collision | The accepted formula for calculating the probability of a collision | |||
| is: | is: | |||
| p = 1 - e^{-k^2/(2n)} | p = 1 - e^({-k^2/(2n)}) | |||
| P Collision Probability | P: Collision Probability | |||
| n Total possible population | ||||
| k Actual population | n: Total possible population | |||
| k: Actual population | ||||
| The following table provides the approximate population size for a | The following table provides the approximate population size for a | |||
| collision for a given total population. | collision for a given total population. | |||
| Deployed Population | +==================+============================================+ | |||
| Total With Collision Risk of | | Total Population | Deployed Population With Collision Risk of | | |||
| Population .01% 1% | | +=====================================+======+ | |||
| | | .01% | 1% | | ||||
| +==================+=====================================+======+ | ||||
| | 2^96 | 4T | 42T | | ||||
| +------------------+-------------------------------------+------+ | ||||
| | 2^72 | 1B | 10B | | ||||
| +------------------+-------------------------------------+------+ | ||||
| | 2^68 | 250M | 2.5B | | ||||
| +------------------+-------------------------------------+------+ | ||||
| | 2^64 | 66M | 663M | | ||||
| +------------------+-------------------------------------+------+ | ||||
| | 2^60 | 16M | 160M | | ||||
| +------------------+-------------------------------------+------+ | ||||
| 2^96 4T 42T | Table 15: Approximate Population Size With Collision Risk | |||
| 2^72 1B 10B | ||||
| 2^68 250M 2.5B | ||||
| 2^64 66M 663M | ||||
| 2^60 16M 160M | ||||
| Acknowledgments | Acknowledgments | |||
| Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil | Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil | |||
| Aviation Administration. | Aviation Administration. | |||
| Quynh Dang of NIST gave considerable guidance on using Keccak and the | Quynh Dang of NIST gave considerable guidance on using Keccak and the | |||
| NIST supporting documents. Joan Deamen of the Keccak team was | supporting NIST documents. Joan Deamen of the Keccak team was | |||
| especially helpful in many aspects of using Keccak. Nicholas | especially helpful in many aspects of using Keccak. Nicholas | |||
| Gajcowski [cfrg-comment] provided a concise hash pre-image security | Gajcowski [CFRG-COMMENT] provided a concise hash pre-image security | |||
| assessment via the CFRG list. | assessment via the CFRG list. | |||
| Many thanks to Michael Richardson and Brian Haberman for the iotdir | Many thanks to Michael Richardson and Brian Haberman for the iotdir | |||
| review, Magnus Nystrom for the secdir review, Elwyn Davies for genart | review, Magnus Nystrom for the secdir review, Elwyn Davies for the | |||
| review and DRIP co-chair and draft shepherd, Mohamed Boucadair for | genart review, and the DRIP co-chair and document shepherd, Mohamed | |||
| his extensive comments and help on document clarity. And finally, | Boucadair for his extensive comments and help on document clarity. | |||
| many thanks to area directors: Roman Danyliw, Erik Kline, Murray | And finally, many thanks to the Area Directors: Roman Danyliw, Erik | |||
| Kucherawy, Warren Kumari, John Scudder, Paul Wouters, and Sarker | Kline, Murray Kucherawy, Warren Kumari, John Scudder, Paul Wouters, | |||
| Zaheduzzaman, for the IESG review. | and Sarker Zaheduzzaman, for the IESG review. | |||
| Authors' Addresses | Authors' Addresses | |||
| Robert Moskowitz | Robert Moskowitz | |||
| HTT Consulting | HTT Consulting | |||
| Oak Park, MI 48237 | Oak Park, MI 48237 | |||
| United States of America | United States of America | |||
| Email: rgm@labs.htt-consult.com | Email: rgm@labs.htt-consult.com | |||
| Stuart W. Card | Stuart W. Card | |||
| End of changes. 230 change blocks. | ||||
| 624 lines changed or deleted | 711 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||