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. |