idnits 2.17.1 draft-ietf-drip-rid-07.txt: -(8): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == There are 3 instances of lines with non-ascii characters in the document. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 6 instances of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. -- The draft header indicates that this document updates RFC7401, but the abstract doesn't seem to mention this, which it should. -- The draft header indicates that this document updates RFC7343, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (28 January 2021) is 1183 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'Appendix D' is mentioned on line 298, but not defined == Missing Reference: 'L' is mentioned on line 909, but not defined -- Possible downref: Non-RFC (?) normative reference: ref. 'F3411-19' ** Downref: Normative reference to an Informational RFC: RFC 8032 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 DRIP R. Moskowitz 3 Internet-Draft HTT Consulting 4 Updates: 7401, 7343 (if approved) S. Card 5 Intended status: Standards Track A. Wiethuechter 6 Expires: 1 August 2021 AX Enterprize, LLC 7 A. Gurtov 8 Linköping University 9 28 January 2021 11 UAS Remote ID 12 draft-ietf-drip-rid-07 14 Abstract 16 This document describes the use of Hierarchical Host Identity Tags 17 (HHITs) as self-asserting IPv6 addresses and thereby a trustable 18 Identifier for use as the UAS Remote ID. HHITs self-attest to the 19 included explicit hierarchy that provides Registrar discovery for 20 3rd-party ID attestation. 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on 1 August 2021. 39 Copyright Notice 41 Copyright (c) 2021 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 46 license-info) in effect on the date of publication of this document. 47 Please review these documents carefully, as they describe your rights 48 and restrictions with respect to this document. Code Components 49 extracted from this document must include Simplified BSD License text 50 as described in Section 4.e of the Trust Legal Provisions and are 51 provided without warranty as described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 56 1.1. Nontransferablity of HHITs . . . . . . . . . . . . . . . 4 57 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 4 58 2.1. Requirements Terminology . . . . . . . . . . . . . . . . 4 59 2.2. Notation . . . . . . . . . . . . . . . . . . . . . . . . 4 60 2.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 61 3. Hierarchical HITs as Remote ID . . . . . . . . . . . . . . . 5 62 3.1. Hierarchical HITs encoded as CTA-2063-A Serial Numbers . 6 63 3.2. Remote ID as one class of Hierarchical HITs . . . . . . . 6 64 3.3. Hierarchy in ORCHID Generation . . . . . . . . . . . . . 6 65 3.4. Hierarchical HIT Registry . . . . . . . . . . . . . . . . 6 66 3.5. Remote ID Authentication using HHITs . . . . . . . . . . 7 67 4. UAS ID HHIT in DNS . . . . . . . . . . . . . . . . . . . . . 7 68 5. Other UTM uses of HHITs . . . . . . . . . . . . . . . . . . . 8 69 6. DRIP Requirements addressed . . . . . . . . . . . . . . . . . 8 70 7. ASTM Considerations . . . . . . . . . . . . . . . . . . . . . 8 71 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 72 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 73 9.1. Hierarchical HIT Trust . . . . . . . . . . . . . . . . . 10 74 9.2. Collision risks with Hierarchical HITs . . . . . . . . . 10 75 9.3. Proofs Considerations . . . . . . . . . . . . . . . . . . 11 76 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 77 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 78 10.2. Informative References . . . . . . . . . . . . . . . . . 12 79 Appendix A. EU U-Space RID Privacy Considerations . . . . . . . 13 80 Appendix B. The Hierarchical Host Identity Tag (HHIT) . . . . . 14 81 B.1. HHIT prefix . . . . . . . . . . . . . . . . . . . . . . . 14 82 B.2. HHIT Suite IDs . . . . . . . . . . . . . . . . . . . . . 15 83 B.2.1. 8 bit HIT Suite IDs . . . . . . . . . . . . . . . . . 15 84 B.3. The Hierarchy ID (HID) . . . . . . . . . . . . . . . . . 15 85 B.3.1. The Registered Assigning Authority (RAA) . . . . . . 15 86 B.3.2. The Hierarchical HIT Domain Authority (HDA) . . . . . 16 87 B.4. Encoding HHITs in CTA 2063-A Serial Numbers . . . . . . . 16 88 Appendix C. ORCHIDs for Hierarchical HITs . . . . . . . . . . . 17 89 C.1. Adding additional information to the ORCHID . . . . . . . 17 90 C.2. ORCHID Encoding . . . . . . . . . . . . . . . . . . . . . 19 91 C.2.1. Encoding ORCHIDs for HITv2 . . . . . . . . . . . . . 19 92 C.3. ORCHID Decoding . . . . . . . . . . . . . . . . . . . . . 20 93 C.4. Decoding ORCHIDs for HITv2 . . . . . . . . . . . . . . . 20 94 Appendix D. Edward Digital Signature Algorithm for HITs . . . . 20 95 D.1. HOST_ID . . . . . . . . . . . . . . . . . . . . . . . . . 21 96 D.2. HIT_SUITE_LIST . . . . . . . . . . . . . . . . . . . . . 21 98 Appendix E. Example HHIT Self Attestation . . . . . . . . . . . 22 99 E.1. HHIT Offline Self Attestation . . . . . . . . . . . . . . 23 100 Appendix F. DRIP Proofs . . . . . . . . . . . . . . . . . . . . 24 101 F.1. Claim / Assertion: HHIT . . . . . . . . . . . . . . . . . 24 102 F.2. Self-Attestation: Attestation(X,X) . . . . . . . . . . . 24 103 F.2.1. Concise Self-Attestation: Attestation(X, ConciseX) . 26 104 F.3. Certificate(X, Y) . . . . . . . . . . . . . . . . . . . . 28 105 F.3.1. Concise Certificate(X, Concise Y) . . . . . . . . . . 29 106 F.4. Offline Broadcast Attestation: Attestation(X, Offline 107 Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 108 F.5. Timestamps . . . . . . . . . . . . . . . . . . . . . . . 32 109 F.6. Signatures . . . . . . . . . . . . . . . . . . . . . . . 32 110 Appendix G. Calculating Collision Probabilities . . . . . . . . 32 111 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 32 112 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 33 114 1. Introduction 116 [drip-requirements] describes a UAS ID as a "unique (ID-4), non- 117 spoofable (ID-5), and identify a registry where the ID is listed (ID- 118 2)"; all within a 20 character Identifier (ID-1). 120 This document describes the use of Hierarchical HITs (HHITs) 121 (Appendix B) as self-asserting IPv6 addresses and thereby a trustable 122 Identifier for use as the UAS Remote ID. HHITs include explicit 123 hierarchy to provide Registrar discovery for 3rd-party ID 124 attestation. 126 HITs are statistically unique through the cryptographic hash feature 127 of second-preimage resistance. The cryptographically-bound addition 128 of the Hierarchy and a HHIT registration process (TBD; e.g. based on 129 Extensible Provisioning Protocol, [RFC5730]) provide complete, global 130 HHIT uniqueness. This is in contrast to general IDs (e.g. a UUID or 131 device serial number) as the subject in an X.509 certificate. 133 In a multi-CA PKI, a subject can occur in multiple CAs, possibly 134 fraudulently. CAs within the PKI would need to implement an approach 135 to enforce assurance of uniqueness. 137 Hierarchical HITs provide self attestation of the HHIT registry. A 138 HHIT can only be in a single registry within a registry system (e.g. 139 EPP and DNS). 141 Hierarchical HITs are valid, though non-routable, IPv6 addresses. As 142 such, they fit in many ways within various IETF technologies. 144 1.1. Nontransferablity of HHITs 146 HIs and its HHITs SHOULD NOT be transferable between UA or even 147 between replacement electronics for a UA. The private key for the HI 148 SHOULD be held in a cryptographically secure component. 150 2. Terms and Definitions 152 2.1. Requirements Terminology 154 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 155 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 156 "OPTIONAL" in this document are to be interpreted as described in BCP 157 14 [RFC2119] [RFC8174] when, and only when, they appear in all 158 capitals, as shown here. 160 2.2. Notation 162 | Signifies concatenation of information - e.g., X | Y is the 163 concatenation of X and Y. 165 Claim(X,Y): 166 Form of a predicate (X is Y, X has property Y, and most 167 importantly X owns Y). 169 Assertion({X...}): 170 A set of one or more claims. This definition is borrowed from 171 JWT/CWT. 173 Attestation(X,Y): 174 A signed claim. X attests to Y. 176 Certificate(X,Y): 177 A claim or attestation, Y, signed exclusively by a third party, X, 178 and are only over identities. 180 2.3. Definitions 182 See [drip-requirements] for common DRIP terms. 184 cSHAKE (The customizable SHAKE function): 185 Extends the SHAKE scheme to allow users to customize their use of 186 the function. 188 HDA (Hierarchical HIT Domain Authority): 189 The 16 bit field identifying the HHIT Domain Authority under an 190 RAA. 192 HHIT 193 Hierarchical Host Identity Tag. A HIT with extra hierarchical 194 information not found in a standard HIT. 196 HI 197 Host Identity. The public key portion of an asymmetric keypair 198 used in HIP. 200 HID (Hierarchy ID): 201 The 32 bit field providing the HIT Hierarchy ID. 203 HIP 204 Host Identity Protocol. The origin of HI, HIT, and HHIT, required 205 for DRIP. Optional full use of HIP enables additional DRIP 206 functionality. 208 HIT 209 Host Identity Tag. A 128 bit handle on the HI. HITs are valid 210 IPv6 addresses. 212 Keccak (KECCAK Message Authentication Code): 213 The family of all sponge functions with a KECCAK-f permutation as 214 the underlying function and multi-rate padding as the padding 215 rule. 217 RAA (Registered Assigning Authority): 218 The 16 bit field identifying the business or organization that 219 manages a registry of HDAs. 221 RVS (Rendezvous Server): 222 The HIP Rendezvous Server for enabling mobility, as defined in 223 [RFC8004]. 225 SHAKE (Secure Hash Algorithm KECCAK): 226 A secure hash that allows for an arbitrary output length. 228 XOF (eXtendable-Output Function): 229 A function on bit strings (also called messages) in which the 230 output can be extended to any desired length. 232 3. Hierarchical HITs as Remote ID 234 Hierarchical HITs are a refinement on the Host Identity Tag (HIT) of 235 HIPv2 [RFC7401]. HHITs require a new ORCHID mechanism as described 236 in Appendix C. HHITs for UAS ID also use the new EdDSA/SHAKE128 HIT 237 suite defined in Appendix D (requirements GEN-2). This hierarchy, 238 cryptographically embedded within the HHIT, provides the information 239 for finding the UA's HHIT registry (ID-3). 241 The current ASTM [F3411-19] specifies three UAS ID types: 243 TYPE-1 A static, manufacturer assigned, hardware serial number per 244 ANSI/CTA-2063-A "Small Unmanned Aerial System Serial Numbers" 245 [CTA2063A]. 247 TYPE-2 A CAA assigned (presumably static) ID. 249 TYPE-3 A UTM system assigned UUID [RFC4122], which can but need not 250 be dynamic. 252 For HHITs to be used effectively as UAS IDs, F3411-19 SHOULD add UAS 253 ID type 4 as HHIT. 255 3.1. Hierarchical HITs encoded as CTA-2063-A Serial Numbers 257 In some cases it is advantageous to encode HHITs as a CTA 2063-A 258 Serial Number [CTA2063A]. For example, readings of the FAA Remote ID 259 Rules [FAA_RID] seem to state that a Remote ID Module (i.e. not 260 integrated with UA controller) must only use "the serial number of 261 the unmanned aircraft"; CTA 2063-A meets this requirement. The 262 encoding rules are defined in Appendix B.4. 264 3.2. Remote ID as one class of Hierarchical HITs 266 UAS Remote ID may be one of a number of uses of HHITs. As such these 267 follow-on uses need to be considered in allocating the RAAs 268 Appendix B.3.1 or HHIT prefix assignments Section 8. 270 3.3. Hierarchy in ORCHID Generation 272 ORCHIDS, as defined in [RFC7343], do not cryptographically bind the 273 IPv6 prefix nor the Orchid Generation Algorithm (OGA) ID (the HIT 274 Suite ID) to the hash of the HI. The justification then was attacks 275 against these fields are DoS attacks against protocols using them. 277 HHITs, as defined in Appendix C, cryptographically bind all content 278 in the ORCHID through the hashing function. Thus a recipient of a 279 HHIT that has the underlying HI can directly act on all content in 280 the HHIT. This provides a strong, self attestation for using the 281 hierarchy to find the HHIT Registry. 283 3.4. Hierarchical HIT Registry 285 HHITs are registered to Hierarchical HIT Domain Authorities (HDAs). 286 A registration process (TBD) ensures UAS ID global uniqueness (ID-4). 287 It also provides the mechanism to create UAS Public/Private data 288 associated with the HHIT UAS ID (REG-1 and REG-2). 290 The 2 levels of hierarchy within the HHIT allows for CAAs to have 291 their own Registered Assigning Authority (RAA) for their National Air 292 Space (NAS). Within the RAA, the CAAs can delegate HDAs as needed. 293 There may be other RAAs allowed to operate within a given NAS; this 294 is a policy decision by the CAA. 296 3.5. Remote ID Authentication using HHITs 298 The EdDSA25519 Host Identity (HI) [Appendix D] underlying the HHIT 299 can be used in an 84 byte self proof attestation as shown in 300 Appendix E to provide proof of Remote ID ownership (requirements GEN- 301 1). An Internet lookup service like DNS can provide the HI and 302 registration proof (requirements GEN-3). 304 Similarly the 200 byte offline self attestation shown in Appendix E.1 305 provide the same proofs without Internet access and with a small 306 cache that contains the HDA's HI/HHIT and HDA meta-data. These self 307 attestations are carried in the ASTM Authentication Message (Msg Type 308 0x2). 310 Hashes of previously sent ASTM messages can be placed in a signed 311 "Manifest" Authentication Message (requirements GEN-2). This can be 312 either a standalone Authentication Message, or an enhanced self 313 attestation Authentication Message. Alternatively the ASTM Message 314 Pack (Msg Type 0xF) can provide this feature, but only over Bluetooth 315 5 or WiFi NAN broadcasts. 317 4. UAS ID HHIT in DNS 319 There are 2 approaches for storing and retrieving the HHIT from DNS. 320 These are: 322 * As FQDNs in the .aero TLD. 324 * Reverse DNS lookups as IPv6 addresses per [RFC8005]. 326 The HHIT can be used to construct an FQDN that points to the USS that 327 has the Public/Private information for the UA (REG-1 and REG-2). For 328 example the USS for the HHIT could be found via the following. 329 Assume the RAA is 100 and the HDA is 50. The PTR record is 330 constructed as: 332 100.50.hhit.uas.aero IN PTR foo.uss.aero. 334 The individual HHITs are potentially too numerous (e.g. 60 - 600M) 335 and dynamic to actually store in a signed, DNS zone. The HDA SHOULD 336 provide DNS service for its zone and provide the HHIT detail 337 response. 339 The HHIT reverse lookup can be a standard IPv6 reverse look up, or it 340 can leverage off the HHIT structure. Assume a Prefix of 341 2001:30::/28, the RAA is 10 and the HDA is 20 and the HHIT is: 343 2001:30:a0:145:a3ad:1952:ad0:a69e 345 An HHIT reverse lookup could be to: 347 a69e.ad0.1952.a3ad.145.a0.30.2001.20.10.hhit.arpa. 349 A 'standard' ip6.arpa RR has the advantage of only one Registry 350 service supported. 352 $ORIGIN 5.4.1.0.0.a.0.0.0.3.0.0.1.0.0.2.ip6.arpa. 353 e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a IN PTR 355 5. Other UTM uses of HHITs 357 HHITs can be used extensively within the UTM architecture beyond UA 358 ID (and USS in UA ID registration and authentication). This includes 359 a GCS HHIT ID. The GCS could use its HIIT if it is the source of 360 Network Remote ID for securing the transport and for secure C2 361 transport [drip-secure-nrid-c2]. 363 Observers SHOULD have HHITs to facilitate UAS information retrieval 364 (e.g., for authorization to private UAS data). They could also use 365 their HHIT for establishing a HIP connection with the UA Pilot for 366 direct communications per authorization. Further, they can be used 367 by FINDER observers, [crowd-sourced-rid]. 369 6. DRIP Requirements addressed 371 This document provides solutions to GEN 1 - 3, ID 1 - 5, and REG 1 - 372 2. 374 7. ASTM Considerations 376 ASTM will need to make the following changes to the "UA ID" in the 377 Basic Message (Msg Type 0x0): 379 Type 4: 380 This document UA ID of Hierarchical HITs (see Section 3). 382 8. IANA Considerations 384 IANA will need to make the following changes to the "Host Identity 385 Protocol (HIP) Parameters" registries: 387 Host ID: 388 This document defines the new EdDSA Host ID (see Appendix D.1). 390 HIT Suite ID: 391 This document defines the new HIT Suite of EdDSA/cSHAKE (see 392 Appendix D.2). 394 HIT Suite ID: 395 This document defines two new HDA domain HIT Suites (see 396 Appendix B.2.1). 398 Because HHIT format is not compatible with [RFC7343], IANA is 399 requested to allocated a new 28-bit prefix out of the IANA IPv6 400 Special Purpose Address Block, namely 2001:0000::/23, as per 401 [RFC6890]. 403 9. Security Considerations 405 A 64 bit hash space presents a real risk of second pre-image attacks 406 Section 9.2. The HHIT Registry services effectively block attempts 407 to "take over" a HHIT. It does not stop a rogue attempting to 408 impersonate a known HHIT. This attack can be mitigated by the 409 receiver of the HHIT using DNS to find the HI for the HHIT. 411 Another mitigation of HHIT hijacking is if the HI owner (UA) supplies 412 an object containing the HHIT and signed by the HI private key of the 413 HDA such as Appendix E.1 as shown in Section 3.5. 415 The two risks with hierarchical HITs are the use of an invalid HID 416 and forced HIT collisions. The use of a DNS zone (e.g. 417 "hhit.arpa.") is a strong protection against invalid HIDs. Querying 418 an HDA's RVS for a HIT under the HDA protects against talking to 419 unregistered clients. The Registry service has direct protection 420 against forced or accidental HIT hash collisions. 422 Cryptographically Generated Addresses (CGAs) provide a unique 423 assurance of uniqueness. This is two-fold. The address (in this 424 case the UAS ID) is a hash of a public key and a Registry hierarchy 425 naming. Collision resistance (more important that it implied second- 426 preimage resistance) makes it statistically challenging to attacks. 427 A registration process (TBD) within the HDA provides a level of 428 assured uniqueness unattainable without mirroring this approach. 430 The second aspect of assured uniqueness is the digital signing 431 (attestation) process of the HHIT by the HI private key and the 432 further signing (attestation) of the HI public key by the Registry's 433 key. This completes the ownership process. The observer at this 434 point does not know WHAT owns the HHIT, but is assured, other than 435 the risk of theft of the HI private key, that this UAS ID is owned by 436 something and is properly registered. 438 9.1. Hierarchical HIT Trust 440 The HHIT UAS RID in the ASTM Basic Message (Msg Type 0x0, the actual 441 Remote ID message) does not provide any assertion of trust. The best 442 that might be done within this Basic Message is 4 bytes truncated 443 from a HI signing of the HHIT (the UA ID field is 20 bytes and a HHIT 444 is 16). This is not trustable. Minimally, it takes 84 bytes, 445 Appendix E, to prove ownership of a HHIT. 447 The ASTM Authentication Messages (Msg Type 0x2) as shown in 448 Section 3.5 can provide practical actual ownership proofs. These 449 attestations include timestamps to defend against replay attacks. 450 But in themselves, they do not prove which UA actually sent the 451 message. They could have been sent by a dog running down the street 452 with a Broadcast Remote ID device strapped to its back. 454 Proof of UA transmission comes when the Authentication Message 455 includes proofs for the ASTM Location/Vector Message (Msg Type 0x1) 456 and the observer can see the UA or that information is validated by 457 ground multilateration [crowd-sourced-rid]. Only then does an 458 observer gain full trust in the HHIT Remote ID. 460 HHIT Remote IDs obtained via the Network Remote ID path provides a 461 different approach to trust. Here the UAS SHOULD be securely 462 communicating to the USS (see [drip-secure-nrid-c2]), thus asserting 463 HHIT RID trust. 465 9.2. Collision risks with Hierarchical HITs 467 The 64 bit hash size does have an increased risk of collisions over 468 the 96 bit hash size used for the other HIT Suites. There is a 0.01% 469 probability of a collision in a population of 66 million. The 470 probability goes up to 1% for a population of 663 million. See 471 Appendix G for the collision probability formula. 473 However, this risk of collision is within a single "Additional 474 Information" value, i.e. a RAA/HDA domain. The UAS/USS registration 475 process should include registering the HHIT and MUST reject a 476 collision, forcing the UAS to generate a new HI and thus HHIT and 477 reapplying to the registration process. 479 9.3. Proofs Considerations 481 A major consideration is the optimization done in Certificate: X on Y 482 (Concise Form) to get its length down to 200 bytes. The truncation 483 of Certificate: HDA on HDA down to just its HHIT is one that could be 484 used against the system to act as a false Registry. For this to 485 occur an attacker would need to find a hash collision on that 486 Registry HHIT and then manage to spoof all of DNS being used in the 487 system. 489 The authors believe that the probability of such an attack is low 490 when Registry operators are using best practices in security. If 491 such an attack can occur (especially in the time frame of "one-time 492 use IDs") then there are more serious issues present in the system. 494 10. References 496 10.1. Normative References 498 [F3411-19] ASTM International, "Standard Specification for Remote ID 499 and Tracking", February 2020, 500 . 502 [NIST.SP.800-185] 503 Kelsey, J., Change, S., and R. Perlner, "SHA-3 derived 504 functions: cSHAKE, KMAC, TupleHash and ParallelHash", 505 National Institute of Standards and Technology report, 506 DOI 10.6028/nist.sp.800-185, December 2016, 507 . 509 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 510 Requirement Levels", BCP 14, RFC 2119, 511 DOI 10.17487/RFC2119, March 1997, 512 . 514 [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman, 515 "Special-Purpose IP Address Registries", BCP 153, 516 RFC 6890, DOI 10.17487/RFC6890, April 2013, 517 . 519 [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital 520 Signature Algorithm (EdDSA)", RFC 8032, 521 DOI 10.17487/RFC8032, January 2017, 522 . 524 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 525 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 526 May 2017, . 528 10.2. Informative References 530 [corus] CORUS, "U-space Concept of Operations", September 2019, 531 . 533 [crowd-sourced-rid] 534 Moskowitz, R., Card, S., Wiethuechter, A., Zhao, S., and 535 H. Birkholz, "Crowd Sourced Remote ID", Work in Progress, 536 Internet-Draft, draft-moskowitz-drip-crowd-sourced-rid-05, 537 15 November 2020, . 540 [CTA2063A] ANSI/CTA, "Small Unmanned Aerial Systems Serial Numbers", 541 September 2019, . 544 [drip-requirements] 545 Card, S., Wiethuechter, A., Moskowitz, R., and A. Gurtov, 546 "Drone Remote Identification Protocol (DRIP) 547 Requirements", Work in Progress, Internet-Draft, draft- 548 ietf-drip-reqs-06, 1 November 2020, 549 . 551 [drip-secure-nrid-c2] 552 Moskowitz, R., Card, S., Wiethuechter, A., and A. Gurtov, 553 "Secure UAS Network RID and C2 Transport", Work in 554 Progress, Internet-Draft, draft-moskowitz-drip-secure- 555 nrid-c2-02, 25 December 2020, 556 . 559 [FAA_RID] United States Federal Aviation Administration (FAA), 560 "Remote Identification of Unmanned Aircraft", 2020, 561 . 564 [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and 565 R. Van Keer, "The Keccak Function", 566 . 568 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 569 Unique IDentifier (UUID) URN Namespace", RFC 4122, 570 DOI 10.17487/RFC4122, July 2005, 571 . 573 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 574 STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, 575 . 577 [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay 578 Routable Cryptographic Hash Identifiers Version 2 579 (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September 580 2014, . 582 [RFC7401] Moskowitz, R., Ed., Heer, T., Jokela, P., and T. 583 Henderson, "Host Identity Protocol Version 2 (HIPv2)", 584 RFC 7401, DOI 10.17487/RFC7401, April 2015, 585 . 587 [RFC8004] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) 588 Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004, 589 October 2016, . 591 [RFC8005] Laganier, J., "Host Identity Protocol (HIP) Domain Name 592 System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005, 593 October 2016, . 595 Appendix A. EU U-Space RID Privacy Considerations 597 EU is defining a future of airspace management known as U-space 598 within the Single European Sky ATM Research (SESAR) undertaking. 599 Concept of Operation for EuRopean UTM Systems (CORUS) project 600 proposed low-level Concept of Operations [corus] for UAS in EU. It 601 introduces strong requirements for UAS privacy based on European GDPR 602 regulations. It suggests that UAs are identified with agnostic IDs, 603 with no information about UA type, the operators or flight 604 trajectory. Only authorized persons should be able to query the 605 details of the flight with a record of access. 607 Due to the high privacy requirements, a casual observer can only 608 query U-space if it is aware of a UA seen in a certain area. A 609 general observer can use a public U-space portal to query UA details 610 based on the UA transmitted "Remote identification" signal. Direct 611 remote identification (DRID) is based on a signal transmitted by the 612 UA directly. Network remote identification (NRID) is only possible 613 for UAs being tracked by U-Space and is based on the matching the 614 current UA position to one of the tracks. 616 The project lists "E-Identification" and "E-Registrations" services 617 as to be developed. These services can follow the privacy mechanism 618 proposed in this document. If an "agnostic ID" above refers to a 619 completely random identifier, it creates a problem with identity 620 resolution and detection of misuse. On the other hand, a classical 621 HIT has a flat structure which makes its resolution difficult. The 622 Hierarchical HITs provide a balanced solution by associating a 623 registry with the UA identifier. This is not likely to cause a major 624 conflict with U-space privacy requirements, as the registries are 625 typically few at a country level (e.g. civil personal, military, law 626 enforcement, or commercial). 628 Appendix B. The Hierarchical Host Identity Tag (HHIT) 630 The Hierarchical HIT (HHIT) is a small but important enhancement over 631 the flat HIT space. By adding two levels of hierarchical 632 administration control, the HHIT provides for device registration/ 633 ownership, thereby enhancing the trust framework for HITs. 635 HHITs represent the HI in only a 64 bit hash and uses the other 32 636 bits to create a hierarchical administration organization for HIT 637 domains. Hierarchical HIT construction is defined in Appendix C. 638 The input values for the Encoding rules are in Appendix C.1. 640 A HHIT is built from the following fields: 642 * IANA prefix (max 28 bit) 644 * 32 bit Hierarchy ID (HID) 646 * 4 (or 8) bit HIT Suite ID 648 * ORCHID hash (96 - prefix length - Suite ID length bits, e.g. 64) 649 See Appendix C 651 The Context ID for the ORCHID hash is: 653 Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 655 B.1. HHIT prefix 657 A unique IANA IPv6 prefix, no larger than 28 bit, for HHITs is 658 recommended. It clearly separates the flat-space HIT processing from 659 HHIT processing per Appendix C. 661 Without a unique prefix, the first 4 bits of the RRA would be 662 interpreted as the HIT Suite ID per HIPv2 [RFC7401]. 664 B.2. HHIT Suite IDs 666 The HIT Suite IDs specifies the HI and hash algorithms. Any HIT 667 Suite ID can be used for HHITs. The 8 bit format is supported (only 668 when the first 4 bits are ZERO), but this reduces the ORCHID hash 669 length. 671 B.2.1. 8 bit HIT Suite IDs 673 Support for 8 bit HIT Suite IDs is allowed in Sec 5.2.10, [RFC7401], 674 but not specified in how ORCHIDs are generated with these longer 675 OGAs. Appendix C provides the algorithmic flexiblity, allowing for 676 HDA custom HIT Suite IDs as follows: 678 HIT Suite Four-bit ID Eight-bit encoding 679 HDA Assigned 1 NA 0x0E 680 HDA Assigned 2 NA 0x0F 682 This feature may be used for large-scale experimenting with post 683 quantum computing hashes or similar domain specific needs. Note that 684 currently there is no support for domain specific HI algorithms. 686 B.3. The Hierarchy ID (HID) 688 The Hierarchy ID (HID) provides the structure to organize HITs into 689 administrative domains. HIDs are further divided into 2 fields: 691 * 16 bit Registered Assigning Authority (RAA) 693 * 16 bit Hierarchical HIT Domain Authority (HDA) 695 B.3.1. The Registered Assigning Authority (RAA) 697 An RAA is a business or organization that manages a registry of HDAs. 698 For example, the Federal Aviation Authority (FAA) could be an RAA. 700 The RAA is a 16 bit field (65,536 RAAs) assigned by a numbers 701 management organization, perhaps ICANN's IANA service. An RAA must 702 provide a set of services to allocate HDAs to organizations. It must 703 have a public policy on what is necessary to obtain an HDA. The RAA 704 need not maintain any HIP related services. It must maintain a DNS 705 zone minimally for discovering HID RVS servers. 707 As HHITs may be used in many different domains, RAA should be 708 allocated in blocks with consideration on the likely size of a 709 particular usage. Alternatively, different Prefixes can be used to 710 separate different domains of use of HHTs. 712 This DNS zone may be a PTR for its RAA. It may be a zone in a HHIT 713 specific DNS zone. Assume that the RAA is 100. The PTR record could 714 be constructed: 716 100.hhit.arpa IN PTR raa.bar.com. 718 B.3.2. The Hierarchical HIT Domain Authority (HDA) 720 An HDA may be an ISP or any third party that takes on the business to 721 provide RVS and other needed services for HIP enabled devices. 723 The HDA is an 16 bit field (65,536 HDAs per RAA) assigned by an RAA. 724 An HDA should maintain a set of RVS servers that its client HIP- 725 enabled customers use. How this is done and scales to the 726 potentially millions of customers is outside the scope of this 727 document. This service should be discoverable through the DNS zone 728 maintained by the HDA's RAA. 730 An RAA may assign a block of values to an individual organization. 731 This is completely up to the individual RAA's published policy for 732 delegation. 734 B.4. Encoding HHITs in CTA 2063-A Serial Numbers 736 In some cases it is advantageous to encode HHITs as a CTA 2063-A 737 Serial Number [CTA2063A]. For example, readings of the FAA Remote ID 738 Rules [FAA_RID] seem to state that a Remote ID Module (i.e. not 739 integrated with UA controller) must only use "the serial number of 740 the unmanned aircraft"; CTA 2063-A meets this requirement. 742 Encoding a HHIT within the 2063-A format is not simple. There is no 743 place for the HID; there will need to be a mapping service from 744 Manufacturer Code to HID. The HIT Suite ID and ORCHID hash will take 745 14 characters (see below), leaving only 1 character for the 746 Manufacturer's use of other information. 748 A character in a CTA 2063-A Serial Number "shall include any 749 combination of digits and uppercase letters, except the letters O and 750 I, but may include all digits". This would allow for a Base34 751 encoding of the binary HIT Suite ID and ORCHID hash. Although, 752 programatically, such a conversion is not hard, other technologies 753 (e.g. credit card payment systems) that have used such odd base 754 encoding have had performance challenges. Thus here a Base32 755 encoding will be used by also excluding the letters Z and S (too 756 similar to the digits 2 and 5). 758 The low-order 68 bits (HIT Suite ID | ORCHID hash) of the HHIT SHALL 759 be left-padded with 2 bits of ZERO. This 70 bit number will be 760 encoded into 14 characters using the digit/letters above. The 761 Manufacturer MAY use a Length Code of 14 or 15. If 15, the first 762 character after the Length Code is set by the Manufacturer with the 763 low order 14 characters for the encoded HIT Suite ID and ORCHID hash. 765 A mapping service (e.g. DNS) MUST provide a trusted (e.g. via 766 DNSSEC) conversion of the 4 character Manufacturer Code to high-order 767 60 bits (Prefix | HID) of the HHIT. Definition of this mapping 768 service is currently out of scope of this document. 770 Appendix C. ORCHIDs for Hierarchical HITs 772 This section improves on ORCHIDv2 [RFC7343] with three enhancements: 774 * Optional Info field between the Prefix and OGA ID. 776 * Increased flexibility on the length of each component in the 777 ORCHID construction, provided the resulting ORCHID is 128 bits. 779 * Use of cSHAKE, NIST SP 800-185 [NIST.SP.800-185], for the hashing 780 function. 782 The Keccak [Keccak] based cSHAKE XOF hash function is a variable 783 output length hash function. As such it does not use the truncation 784 operation that other hashes need. The invocation of cSHAKE specifies 785 the desired number of bits in the hash output. Further, cSHAKE has a 786 parameter 'S' as a customization bit string. This parameter will be 787 used for including the ORCHID Context Identifier in a standard 788 fashion. 790 This ORCHID construction includes the fields in the ORCHID in the 791 hash to protect them against substitution attacks. It also provides 792 for inclusion of additional information, in particular the 793 hierarchical bits of the Hierarchical HIT, in the ORCHID generation. 794 This should be viewed as an addendum to ORCHIDv2 [RFC7343], as it can 795 produce ORCHIDv2 output. 797 C.1. Adding additional information to the ORCHID 799 ORCHIDv2 [RFC7343] is currently defined as consisting of three 800 components: 802 ORCHID := Prefix | OGA ID | Encode_96( Hash ) 804 where: 806 Prefix : A constant 28-bit-long bitstring value 807 (IANA IPv6 assigned). 809 OGA ID : A 4-bit long identifier for the Hash_function 810 in use within the specific usage context. When 811 used for HIT generation this is the HIT Suite ID. 813 Encode_96( ) : An extraction function in which output is obtained 814 by extracting the middle 96-bit-long bitstring 815 from the argument bitstring. 817 This addendum will be constructed as follows: 819 ORCHID := Prefix (p) | Info (n) | OGA ID (o) | Hash (m) 821 where: 823 Prefix (p) : An IANA IPv6 assigned prefix (max 28-bit-long). 825 Info (n) : n bits of information that define a use of the 826 ORCHID. n can be zero, that is no additional 827 information. 829 OGA ID (o) : A 4 or 8 bit long identifier for the Hash_function 830 in use within the specific usage context. When 831 used for HIT generation this is the HIT Suite ID. 833 Hash (m) : An extraction function in which output is m bits. 835 p + n + o + m = 128 bits 837 With a 28 bit IPv6 Prefix, the remaining 100 bits can be divided in 838 any manner between the additional information, OGA ID, and the hash 839 output. Care must be taken in determining the size of the hash 840 portion, taking into account risks like pre-image attacks. Thus 64 841 bits as used in Hierarchical HITs may be as small as is acceptable. 843 C.2. ORCHID Encoding 845 This addendum adds a different encoding process to that currently 846 used in ORCHIDv2. The input to the hash function explicitly includes 847 all the header content plus the Context ID. The header content 848 consists of the Prefix, the Additional Information, and OGA ID (HIT 849 Suite ID). Secondly, the length of the resulting hash is set by sum 850 of the length of the ORCHID header fields. For example, a 28 bit 851 Prefix with 32 bits for the HID and 4 bits for the OGA ID leaves 64 852 bits for the hash length. 854 To achieve the variable length output in a consistent manner, the 855 cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. 856 The the cSHAKE function call for this addendum is: 858 cSHAKE128(Input, L, "", Context ID) 860 Input := Prefix | Additional Information | OGA ID | HOST_ID 861 L := Length in bits of hash portion of ORCHID 863 For full Suite ID support (those that use fixed length hashes like 864 SHA256), the following hashing can be used (Note: this does NOT 865 produce output Identical to ORCHIDv2 for Prefix of /28 and Additional 866 Information of ZERO length): 868 Hash[L](Context ID | Input) 870 Input := Prefix | Additional Information | OGA ID | HOST_ID 871 L := Length in bits of hash portion of ORCHID 873 Hash[L] := An extraction function in which output is obtained 874 by extracting the middle L-bit-long bitstring 875 from the argument bitstring. 877 Hierarchical HIT uses the same context as all other HIPv2 HIT Suites 878 as they are clearly separated by the distinct HIT Suite ID. 880 C.2.1. Encoding ORCHIDs for HITv2 882 This section is included to provide backwards compatibility for 883 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 885 For HITv2s, the Prefix MUST be 2001:20::/28. Info is length ZERO 886 (not included), and OGA ID is length 4. Thus the HI Hash is length 887 96. Further the Prefix and OGA ID are NOT included in the hash 888 calculation. Thus the following ORCHID calculations for fixed output 889 length hashes are used: 891 Hash[L](Context ID | Input) 893 Input := HOST_ID 894 L := 96 895 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 897 Hash[L] := An extraction function in which output is obtained 898 by extracting the middle L-bit-long bitstring 899 from the argument bitstring. 901 For variable output length hashes use: 903 Hash[L](Context ID | Input) 905 Input := HOST_ID 906 L := 96 907 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 909 Hash[L] := The L bit output from the hash function 911 Then the ORCHID is constructed as follows: 913 Prefix | OGA ID | Hash Output 915 C.3. ORCHID Decoding 917 With this addendum, the decoding of an ORCHID is determined by the 918 Prefix and OGA ID (HIT Suite ID). ORCHIDv2 [RFC7343] decoding is 919 selected when the Prefix is: 2001:20::/28. 921 For Hierarchical HITs, the decoding is determined by the presence of 922 the HHIT Prefix as specified in the HHIT document. 924 C.4. Decoding ORCHIDs for HITv2 926 This section is included to provide backwards compatibility for 927 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 929 HITv2s are identified by a Prefix of 2001:20::/28. The next 4 bits 930 are the OGA ID. is length 4. The remaining 96 bits are the HI Hash. 932 Appendix D. Edward Digital Signature Algorithm for HITs 934 Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] are 935 specified here for use as Host Identities (HIs) per HIPv2 [RFC7401]. 936 Further the HIT_SUITE_LIST is specified as used in [RFC7343]. 938 See Appendix B.2 for use of the HIT Suite for this document. 940 D.1. HOST_ID 942 The HOST_ID parameter specifies the public key algorithm, and for 943 elliptic curves, a name. The HOST_ID parameter is defined in 944 Section 5.2.19 of [RFC7401]. 946 Algorithm 947 profiles Values 949 EdDSA 13 [RFC8032] (RECOMMENDED) 951 For hosts that implement EdDSA as the algorithm, the following ECC 952 curves are available: 954 Algorithm Curve Values 956 EdDSA RESERVED 0 957 EdDSA EdDSA25519 1 [RFC8032] 958 EdDSA EdDSA25519ph 2 [RFC8032] 959 EdDSA EdDSA448 3 [RFC8032] 960 EdDSA EdDSA448ph 4 [RFC8032] 962 D.2. HIT_SUITE_LIST 964 The HIT_SUITE_LIST parameter contains a list of the supported HIT 965 suite IDs of the Responder. Based on the HIT_SUITE_LIST, the 966 Initiator can determine which source HIT Suite IDs are supported by 967 the Responder. The HIT_SUITE_LIST parameter is defined in 968 Section 5.2.10 of [RFC7401]. 970 The following HIT Suite ID is defined, and the relationship between 971 the four-bit ID value used in the OGA ID field and the eight-bit 972 encoding within the HIT_SUITE_LIST ID field is clarified: 974 HIT Suite Four-bit ID Eight-bit encoding 975 RESERVED 0 0x00 976 EdDSA/cSHAKE128 5 0x50 (RECOMMENDED) 978 The following table provides more detail on the above HIT Suite 979 combinations. The input for each generation algorithm is the 980 encoding of the HI as defined in this Appendix. 982 The output of cSHAKE128 is variable per the needs of a specific 983 ORCHID construction. It is at most 96 bits long and is directly used 984 in the ORCHID (without truncation). 986 +=======+===========+=========+===========+====================+ 987 | Index | Hash | HMAC | Signature | Description | 988 | | function | | algorithm | | 989 | | | | family | | 990 +=======+===========+=========+===========+====================+ 991 | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | 992 | | | | | with cSHAKE128, | 993 | | | | | output is variable | 994 +-------+-----------+---------+-----------+--------------------+ 996 Table 1: HIT Suites 998 Appendix E. Example HHIT Self Attestation 1000 This section shows example uses of HHIT RID to prove trustworthiness 1001 of the RID and attestation of registration to the RAA|HDA. These are 1002 examples only and other documents will provide fully specified 1003 attestations. Care has been taken in the example design to minimize 1004 the risk of replay attacks. 1006 This ownership/attestation of a HHIT can be proved in 84 bytes via 1007 the following HHIT Self Attestation following Appendix F.2.1 format: 1009 * 4 byte Signing Timestamp 1011 * 16 byte HHIT 1013 * 64 byte Signature (EdDSA25519 signature) 1015 The Timestamp MAY be the standard UNIX time at the time of signing. 1016 A protocol specific timestamp may be used to avoid programming 1017 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 1018 offset. 1020 To minimize the risk of replay, the UA SHOULD create a new Self 1021 Attestation, with a new timestamp, at least once a minute. The UA 1022 MAY precompute these attestations and transmit during the appropriate 1023 1 minute window. 1 minute is chosen as a balance between attestation 1024 compute time against risk. A shorter window of use lessens the risk 1025 of replay. 1027 The signature is over the 20 byte Timestamp + HHIT. 1029 The receiver of such an attestation would need access to the 1030 underlying public key (HI) to validate the signature. This may be 1031 obtained via a DNS query using the HHIT. A larger (116 bytes) Self 1032 Attestation could include the EdDSA25519 HI. This larger 116 1033 attestation allows for signature validation before HHIT lookup to 1034 prove registration attestation. 1036 E.1. HHIT Offline Self Attestation 1038 Ownership and RAA|HDA registration of a HHIT can be proved in 200 1039 bytes without Internet access and a small cache via the following 1040 HHIT Offline Self Attestation Appendix F.2 format: 1042 * 16 byte UA HHIT 1044 * 32 byte UA EdDSA25519 HI 1046 * 4 byte HDA Signing Expiry Timestamp 1048 * 16 byte HDA HHIT 1050 * 64 byte HDA Signature (EdDSA25519 signature) 1052 * 4 byte UA Signing Timestamp 1054 * 64 byte UA Signature (EdDSA25519 signature) 1056 The Timestamps MAY be the standard UNIX time at the time of signing. 1057 A protocol specific timestamp may be used to avoid programming 1058 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 1059 offset. 1061 The HDA signature is over the 68 byte UA HHIT + UA HI + HDA Expiry 1062 Timestamp + HDA HHIT. During the UA Registration process, the UA 1063 would provide a Self Attestation to the HDA. The HDA would construct 1064 its attestation of registry with an Expiry Timestamp, its own HHIT, 1065 and its signature, returning a 132 byte HDA Registry Attestation to 1066 the UA. The UA would use this much the same way as its HHIT only in 1067 the Self Attestation above, creating a 200 byte Offline Self 1068 Attestation. 1070 The receiver of such an attestation would need a cache of RAA ID, HDA 1071 ID, HDA HHIT, and HDA HI (min 80 bytes per RAA/HDA). 1073 Appendix F. DRIP Proofs 1075 The DRIP Proofs are a set of custom objects to be used in the USS/UTM 1076 system. They are created during the enrollment of an Operator and 1077 the provisioning of an Aircraft and are tied to the Operator ID and 1078 UAS RID. 1080 These structures, when chained together, create two distinct roots of 1081 trust. One back to the UAS manufacturer, back to the initial 1082 production of a given Aircraft. The other back to the authorizing 1083 CAA. These chains can also be used by authorized entities to trace 1084 an Aircraft through all owners and flights in the Aircraft's lifetime 1085 (something of interest to ICAO). 1087 The rest of this section will define the formats of proofs in DRIP as 1088 forms of certificates and attestations and their common uses. 1090 F.1. Claim / Assertion: HHIT 1092 The HHIT can be taken in its entirety as a single claim or broken 1093 into various claims and thus be classified as an assertion. 1095 There are a number of different claims that an HHIT can be broken 1096 into: 1098 * Valid ORCHID construction. To validate would require the Host 1099 Identity used. 1101 * Ownership of the asymmetric keypair used to generate the hash. 1103 * Being a member of a specified Registry. This is defined by the 1104 RAA and HDA pairing encoded. This is a baseless claim on its own 1105 that is attested to by the Registry. 1107 F.2. Self-Attestation: Attestation(X,X) 1109 This DRIP Proof is a self-signed attestation (by an entity known as 1110 'X') staking an unverified claim on a HHIT/HI pairing until an 1111 expiration date/time. 1113 0 1 2 3 1114 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 1115 +---------------+---------------+---------------+---------------+ 1116 | | 1117 | Hierarchical | 1118 | Host Identity Tag | 1119 | | 1120 +---------------+---------------+---------------+---------------+ 1121 | | 1122 | | 1123 | | 1124 | Host | 1125 | Identity | 1126 | | 1127 | | 1128 | | 1129 +---------------+---------------+---------------+---------------+ 1130 | Expiration Timestamp | 1131 +---------------+---------------+---------------+---------------+ 1132 | | 1133 | | 1134 | | 1135 | | 1136 | | 1137 | | 1138 | | 1139 | Signature | 1140 | | 1141 | | 1142 | | 1143 | | 1144 | | 1145 | | 1146 | | 1147 | | 1148 +---------------+---------------+---------------+---------------+ 1150 HHIT The HHIT of the entity, derived from the HI and 1151 other information. 1153 HI The HI of the entity. This is the public half of 1154 an EdDSA25519 asymmetric keypair. 1156 Expiration A timestamp signaling the expiration of the 1157 Timestamp attestation. 1159 Signature Generated using the asymmetric keypair of the entity. 1161 Figure 1: Self-Attestation: Attestation(X,X) 1163 This Self-Attestation is 116 bytes attesting to a number of claims 1164 and assertions. Overall the entire structure creates an assertion of 1165 the ownership of this first two claims (HHIT and HI), a binding 1166 (between HHIT and HI) and an upper time bound of relevance (the 1167 Expiration Timestamp). 1169 The offset of the Expiration Timestamp (ETS) SHOULD be of significant 1170 length (possibly years). 1172 These are 5 (five) Self-Attestations that can be created in a 1173 standard DRIP UAS RID system: 1175 * Attestation(Manufacturer, Manufacturer) 1177 * Attestation(RAA, RAA) 1179 * Attestation(HDA, HDA) or Attestation(Registry, Registry) 1181 * Attestation(Operator, Operator) 1183 * Attestation(Aircraft, Aircraft) 1185 This is not an exhaustive list as any entity with the DRIP UAS system 1186 SHOULD have a Self-Attestation for itself. 1188 The Timestamp formatting is covered in Appendix F.5. 1190 F.2.1. Concise Self-Attestation: Attestation(X, ConciseX) 1192 A smaller version of Attestation(X, X) exists where the Host Identity 1193 is removed allowing a claim to be made in 84 bytes. 1195 0 1 2 3 1196 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 1197 +---------------+---------------+---------------+---------------+ 1198 | | 1199 | Hierarchical | 1200 | Host Identity Tag | 1201 | | 1202 +---------------+---------------+---------------+---------------+ 1203 | Expiration Timestamp | 1204 +---------------+---------------+---------------+---------------+ 1205 | | 1206 | | 1207 | | 1208 | | 1209 | | 1210 | | 1211 | | 1212 | Signature | 1213 | | 1214 | | 1215 | | 1216 | | 1217 | | 1218 | | 1219 | | 1220 | | 1221 +---------------+---------------+---------------+---------------+ 1223 HHIT The HHIT of the entity, derived from the HI and 1224 other information. 1226 Expiration A timestamp signaling the expiration of the 1227 Timestamp attestation. 1229 Signature Generated using the asymmetric keypair of the entity. 1231 Figure 2: Concise Self-Attestation: Attestation(X, ConciseX) 1233 This form would require that the Host Identity associated with the 1234 HHIT be in a public Registry to be requested (nominally with a DNS 1235 lookup using a HIP RR type) and checked against. 1237 The Timestamp formatting is covered in Appendix F.5. 1239 F.3. Certificate(X, Y) 1241 This DRIP Proof is an attestation where Entity X asserts trust in the 1242 binding claimed by Entity Y (in Assertion Y) and signs this asserting 1243 with a timestamp and an expiration of when the binding is no longer 1244 asserted by Entity X. 1246 0 1 2 3 1247 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 1248 +---------------+---------------+---------------+---------------+ 1249 | Length Ax | Length Ay | 1250 +---------------+---------------+---------------+---------------+ 1251 | | 1252 . . 1253 . Assertion X . 1254 . . 1255 | | 1256 +---------------+---------------+---------------+---------------+ 1257 | | 1258 . . 1259 . Assertion Y . 1260 . . 1261 | | 1262 +---------------+---------------+---------------+---------------+ 1263 | Timestamp | 1264 +---------------+---------------+---------------+---------------+ 1265 | Expiration Timestamp | 1266 +---------------+---------------+---------------+---------------+ 1267 | | 1268 | | 1269 | | 1270 | | 1271 | | 1272 | | 1273 | | 1274 | Signature | 1275 | | 1276 | | 1277 | | 1278 | | 1279 | | 1280 | | 1281 | | 1282 | | 1283 +---------------+---------------+---------------+---------------+ 1285 Length Length in bytes of Assertion(X). Encoded as an 1286 Ax unsigned integer. 1288 Length Length in bytes of Assertion(Y). Encoded as an 1289 Ay unsigned integer. 1291 Assertion(X) The attestation/certificate of entity X. 1293 Assertion(Y) The attestation/certificate of entity Y. 1295 Timestamp A timestamp signalling the current time at 1296 signing of the certificate. 1298 Expiration A timestamp signaling the expiration of the 1299 Timestamp attestation. 1301 Signature Generated using the asymmetric keypair of the 1302 entity. 1304 Figure 3: Certificate(X, Y) 1306 Cxy Form wraps both Self-Attestations of the entities and is signed 1307 by Entity X. Two timestamps, one taken at the time of signing and 1308 one as an expiration time are used to set boundaries to the 1309 assertion. Care should be given to how far into the future the 1310 Expiration Timestamp is set, but is left up to system policy. 1312 Most attestations of this form have a length of 304 bytes; some may 1313 be 84 or 116 bytes. Certificate(Registry, 1314 Certificate(Operator,Aircraft)) is unique in that is 680 bytes long, 1315 binding of two Cxy forms (in this specific case Certificate(Registry, 1316 Operator) with Certificate(Operator, Aircraft). 1318 The Timestamp formatting is covered in Appendix F.5. 1320 F.3.1. Concise Certificate(X, Concise Y) 1321 0 1 2 3 1322 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 1323 +---------------+---------------+---------------+---------------+ 1324 | | 1325 | Hierarchical Host Identity Tag | 1326 | of Entity X | 1327 | | 1328 +---------------+---------------+---------------+---------------+ 1329 | | 1330 . . 1331 . Ayy . 1332 . . 1333 | | 1334 +---------------+---------------+---------------+---------------+ 1335 | Expiration Timestamp | 1336 +---------------+---------------+---------------+---------------+ 1337 | | 1338 | | 1339 | | 1340 | | 1341 | | 1342 | | 1343 | | 1344 | Signature | 1345 | | 1346 | | 1347 | | 1348 | | 1349 | | 1350 | | 1351 | | 1352 | | 1353 +---------------+---------------+---------------+---------------+ 1355 Figure 4: Concise Certificate(X, Concise Y) 1357 The short form of the Cxy this attestation is 200 bytes long and is 1358 designed to fit inside the framing of the ASTM F3411 Authentication 1359 Message. The HHIT of Entity X is used in place of the full Axx (see 1360 Section 9.3 for comments). The timestamp is removed and only an 1361 expiration timestamp is present. Ayy MUST NOT be the in Concise 1362 Form. 1364 During creation the Expiration Timestamp MUST be no later than the 1365 Expiration Timestamp found in Ayy. 1367 F.4. Offline Broadcast Attestation: Attestation(X, Offline Y) 1369 A special attestation that is the basis for a certificate finalized 1370 onboard the aircraft during flight. It is used in Broadcast RID to 1371 provide the trustworthiness of the Aircraft without the need of the 1372 Observer to be connected to the Internet. 1374 0 1 2 3 1375 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 1376 +---------------+---------------+---------------+---------------+ 1377 | | 1378 | Hierarchical Host Identity Tag | 1379 | of Entity X | 1380 | | 1381 +---------------+---------------+---------------+---------------+ 1382 | | 1383 | Hierarchical Host Identity Tag | 1384 | of Entity Y | 1385 | | 1386 +---------------+---------------+---------------+---------------+ 1387 | | 1388 | | 1389 | | 1390 | Host Identity of Entity Y | 1391 | | 1392 | | 1393 | | 1394 | | 1395 +---------------+---------------+---------------+---------------+ 1396 | Expiration Timestamp | 1397 +---------------+---------------+---------------+---------------+ 1398 | | 1399 | | 1400 | | 1401 | | 1402 | | 1403 | | 1404 | | 1405 | Signature | 1406 | | 1407 | | 1408 | | 1409 | | 1410 | | 1411 | | 1412 | | 1413 | | 1414 +---------------+---------------+---------------+---------------+ 1415 Figure 5: Offline Form: Attestation(X, Offline Y) 1417 The signature is generated using Entity X's keypair. 1419 F.5. Timestamps 1421 Timestamps MAY be the standard UNIX time or a protocol specific 1422 timestamp, to avoid programming complexities. For example [F3411-19] 1423 uses a 00:00:00 01/01/2019 offset. When a Expiration Timestamp is 1424 required a desired offset is added, setting the timestamp into the 1425 future. The amount of offset for specific timestamps is left to best 1426 practice. 1428 F.6. Signatures 1430 Signatures are ALWAYS taken over the preceding fields in the 1431 certificate/attestation. For DRIP the EdDSA25519 algorithm from 1432 [RFC8032] is used. 1434 Appendix G. Calculating Collision Probabilities 1436 The accepted formula for calculating the probability of a collision 1437 is: 1439 p = 1 - e^{-k^2/(2n)} 1441 P Collision Probability 1442 n Total possible population 1443 k Actual population 1445 The following table provides the approximate population size for a 1446 collision for a given total population. 1448 Deployed Population 1449 Total With Collision Risk of 1450 Population .01% 1% 1452 2^96 4T 42T 1453 2^72 1B 10B 1454 2^68 250M 2.5B 1455 2^64 66M 663M 1456 2^60 16M 160M 1458 Acknowledgments 1460 Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil 1461 Aviation Administration. 1463 Quynh Dang of NIST gave considerable guidance on using Keccak and the 1464 NIST supporting documents. Joan Deamen of the Keccak team was 1465 especially helpful in many aspects of using Keccak. 1467 Authors' Addresses 1469 Robert Moskowitz 1470 HTT Consulting 1471 Oak Park, MI 48237 1472 United States of America 1474 Email: rgm@labs.htt-consult.com 1476 Stuart W. Card 1477 AX Enterprize, LLC 1478 4947 Commercial Drive 1479 Yorkville, NY 13495 1480 United States of America 1482 Email: stu.card@axenterprize.com 1484 Adam Wiethuechter 1485 AX Enterprize, LLC 1486 4947 Commercial Drive 1487 Yorkville, NY 13495 1488 United States of America 1490 Email: adam.wiethuechter@axenterprize.com 1492 Andrei Gurtov 1493 Linköping University 1494 IDA 1495 SE-58183 Linköping 1496 Sweden 1498 Email: gurtov@acm.org