idnits 2.17.1 draft-ietf-drip-rid-06.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 (31 December 2020) is 1212 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 287, but not defined == Missing Reference: 'L' is mentioned on line 857, 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: 4 July 2021 AX Enterprize, LLC 7 A. Gurtov 8 Linköping University 9 31 December 2020 11 UAS Remote ID 12 draft-ietf-drip-rid-06 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 4 July 2021. 39 Copyright Notice 41 Copyright (c) 2020 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. Remote ID as one class of Hierarchical HITs . . . . . . . 6 63 3.2. Hierarchy in ORCHID Generation . . . . . . . . . . . . . 6 64 3.3. Hierarchical HIT Registry . . . . . . . . . . . . . . . . 6 65 3.4. Remote ID Authentication using HHITs . . . . . . . . . . 7 66 4. UAS ID HHIT in DNS . . . . . . . . . . . . . . . . . . . . . 7 67 5. Other UTM uses of HHITs . . . . . . . . . . . . . . . . . . . 8 68 6. DRIP Requirements addressed . . . . . . . . . . . . . . . . . 8 69 7. ASTM Considerations . . . . . . . . . . . . . . . . . . . . . 8 70 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 71 9. Security Considerations . . . . . . . . . . . . . . . . . . . 9 72 9.1. Hierarchical HIT Trust . . . . . . . . . . . . . . . . . 10 73 9.2. Collision risks with Hierarchical HITs . . . . . . . . . 10 74 9.3. Proofs Considerations . . . . . . . . . . . . . . . . . . 11 75 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 76 10.1. Normative References . . . . . . . . . . . . . . . . . . 11 77 10.2. Informative References . . . . . . . . . . . . . . . . . 12 78 Appendix A. EU U-Space RID Privacy Considerations . . . . . . . 13 79 Appendix B. The Hierarchical Host Identity Tag (HHIT) . . . . . 14 80 B.1. HHIT prefix . . . . . . . . . . . . . . . . . . . . . . . 14 81 B.2. HHIT Suite IDs . . . . . . . . . . . . . . . . . . . . . 14 82 B.2.1. 8 bit HIT Suite IDs . . . . . . . . . . . . . . . . . 15 83 B.3. The Hierarchy ID (HID) . . . . . . . . . . . . . . . . . 15 84 B.3.1. The Registered Assigning Authority (RAA) . . . . . . 15 85 B.3.2. The Hierarchical HIT Domain Authority (HDA) . . . . . 16 86 Appendix C. ORCHIDs for Hierarchical HITs . . . . . . . . . . . 16 87 C.1. Adding additional information to the ORCHID . . . . . . . 16 88 C.2. ORCHID Encoding . . . . . . . . . . . . . . . . . . . . . 18 89 C.2.1. Encoding ORCHIDs for HITv2 . . . . . . . . . . . . . 18 90 C.3. ORCHID Decoding . . . . . . . . . . . . . . . . . . . . . 19 91 C.4. Decoding ORCHIDs for HITv2 . . . . . . . . . . . . . . . 19 92 Appendix D. Edward Digital Signature Algorithm for HITs . . . . 19 93 D.1. HOST_ID . . . . . . . . . . . . . . . . . . . . . . . . . 20 94 D.2. HIT_SUITE_LIST . . . . . . . . . . . . . . . . . . . . . 20 95 Appendix E. Example HHIT Self Attestation . . . . . . . . . . . 21 96 E.1. HHIT Offline Self Attestation . . . . . . . . . . . . . . 22 98 Appendix F. DRIP Proofs . . . . . . . . . . . . . . . . . . . . 23 99 F.1. Claim / Assertion: HHIT . . . . . . . . . . . . . . . . . 23 100 F.2. Self-Attestation: Attestation(X,X) . . . . . . . . . . . 23 101 F.2.1. Concise Self-Attestation: Attestation(X, ConciseX) . 25 102 F.3. Certificate(X, Y) . . . . . . . . . . . . . . . . . . . . 27 103 F.3.1. Concise Certificate(X, Concise Y) . . . . . . . . . . 28 104 F.4. Offline Broadcast Attestation: Attestation(X, Offline 105 Y) . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 106 F.5. Timestamps . . . . . . . . . . . . . . . . . . . . . . . 31 107 F.6. Signatures . . . . . . . . . . . . . . . . . . . . . . . 31 108 Appendix G. Calculating Collision Probabilities . . . . . . . . 31 109 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 31 110 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 32 112 1. Introduction 114 [drip-requirements] describes a UAS ID as a "unique (ID-4), non- 115 spoofable (ID-5), and identify a registry where the ID is listed (ID- 116 2)"; all within a 20 character Identifier (ID-1). 118 This document describes the use of Hierarchical HITs (HHITs) 119 (Appendix B) as self-asserting IPv6 addresses and thereby a trustable 120 Identifier for use as the UAS Remote ID. HHITs include explicit 121 hierarchy to provide Registrar discovery for 3rd-party ID 122 attestation. 124 HITs are statistically unique through the cryptographic hash feature 125 of second-preimage resistance. The cryptographically-bound addition 126 of the Hierarchy and a HHIT registration process (TBD; e.g. based on 127 Extensible Provisioning Protocol, [RFC5730]) provide complete, global 128 HHIT uniqueness. This is in contrast to general IDs (e.g. a UUID or 129 device serial number) as the subject in an X.509 certificate. 131 In a multi-CA PKI, a subject can occur in multiple CAs, possibly 132 fraudulently. CAs within the PKI would need to implement an approach 133 to enforce assurance of uniqueness. 135 Hierarchical HITs provide self attestation of the HHIT registry. A 136 HHIT can only be in a single registry within a registry system (e.g. 137 EPP and DNS). 139 Hierarchical HITs are valid, though non-routable, IPv6 addresses. As 140 such, they fit in many ways within various IETF technologies. 142 1.1. Nontransferablity of HHITs 144 HIs and its HHITs SHOULD NOT be transferable between UA or even 145 between replacement electronics for a UA. The private key for the HI 146 SHOULD be held in a cryptographically secure component. 148 2. Terms and Definitions 150 2.1. Requirements Terminology 152 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 153 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 154 "OPTIONAL" in this document are to be interpreted as described in BCP 155 14 [RFC2119] [RFC8174] when, and only when, they appear in all 156 capitals, as shown here. 158 2.2. Notation 160 | Signifies concatenation of information - e.g., X | Y is the 161 concatenation of X and Y. 163 Claim(X,Y): 164 Form of a predicate (X is Y, X has property Y, and most 165 importantly X owns Y). 167 Assertion({X...}): 168 A set of one or more claims. This definition is borrowed from 169 JWT/CWT. 171 Attestation(X,Y): 172 A signed claim. X attests to Y. 174 Certificate(X,Y): 175 A claim or attestation, Y, signed exclusively by a third party, X, 176 and are only over identities. 178 2.3. Definitions 180 See [drip-requirements] for common DRIP terms. 182 cSHAKE (The customizable SHAKE function): 183 Extends the SHAKE scheme to allow users to customize their use of 184 the function. 186 HDA (Hierarchical HIT Domain Authority): 187 The 16 bit field identifying the HHIT Domain Authority under an 188 RAA. 190 HHIT 191 Hierarchical Host Identity Tag. A HIT with extra hierarchical 192 information not found in a standard HIT. 194 HI 195 Host Identity. The public key portion of an asymmetric keypair 196 used in HIP. 198 HID (Hierarchy ID): 199 The 32 bit field providing the HIT Hierarchy ID. 201 HIP 202 Host Identity Protocol. The origin of HI, HIT, and HHIT, required 203 for DRIP. Optional full use of HIP enables additional DRIP 204 functionality. 206 HIT 207 Host Identity Tag. A 128 bit handle on the HI. HITs are valid 208 IPv6 addresses. 210 Keccak (KECCAK Message Authentication Code): 211 The family of all sponge functions with a KECCAK-f permutation as 212 the underlying function and multi-rate padding as the padding 213 rule. 215 RAA (Registered Assigning Authority): 216 The 16 bit field identifying the business or organization that 217 manages a registry of HDAs. 219 RVS (Rendezvous Server): 220 The HIP Rendezvous Server for enabling mobility, as defined in 221 [RFC8004]. 223 SHAKE (Secure Hash Algorithm KECCAK): 224 A secure hash that allows for an arbitrary output length. 226 XOF (eXtendable-Output Function): 227 A function on bit strings (also called messages) in which the 228 output can be extended to any desired length. 230 3. Hierarchical HITs as Remote ID 232 Hierarchical HITs are a refinement on the Host Identity Tag (HIT) of 233 HIPv2 [RFC7401]. HHITs require a new ORCHID mechanism as described 234 in Appendix C. HHITs for UAS ID also use the new EdDSA/SHAKE128 HIT 235 suite defined in Appendix D (requirements GEN-2). This hierarchy, 236 cryptographically embedded within the HHIT, provides the information 237 for finding the UA's HHIT registry (ID-3). 239 The current ASTM [F3411-19] specifies three UAS ID types: 241 TYPE-1 A static, manufacturer assigned, hardware serial number per 242 ANSI/CTA-2063-A "Small Unmanned Aerial System Serial Numbers" 243 [CTA2063A]. 245 TYPE-2 A CAA assigned (presumably static) ID. 247 TYPE-3 A UTM system assigned UUID [RFC4122], which can but need not 248 be dynamic. 250 For HHITs to be used effectively as UAS IDs, F3411-19 SHOULD add UAS 251 ID type 4 as HHIT. 253 3.1. Remote ID as one class of Hierarchical HITs 255 UAS Remote ID may be one of a number of uses of HHITs. As such these 256 follow-on uses need to be considered in allocating the RAAs 257 Appendix B.3.1 or HHIT prefix assignments Section 8. 259 3.2. Hierarchy in ORCHID Generation 261 ORCHIDS, as defined in [RFC7343], do not cryptographically bind the 262 IPv6 prefix nor the Orchid Generation Algorithm (OGA) ID (the HIT 263 Suite ID) to the hash of the HI. The justification then was attacks 264 against these fields are DoS attacks against protocols using them. 266 HHITs, as defined in Appendix C, cryptographically bind all content 267 in the ORCHID through the hashing function. Thus a recipient of a 268 HHIT that has the underlying HI can directly act on all content in 269 the HHIT. This provides a strong, self attestation for using the 270 hierarchy to find the HHIT Registry. 272 3.3. Hierarchical HIT Registry 274 HHITs are registered to Hierarchical HIT Domain Authorities (HDAs). 275 A registration process (TBD) ensures UAS ID global uniqueness (ID-4). 276 It also provides the mechanism to create UAS Public/Private data 277 associated with the HHIT UAS ID (REG-1 and REG-2). 279 The 2 levels of hierarchy within the HHIT allows for CAAs to have 280 their own Registered Assigning Authority (RAA) for their National Air 281 Space (NAS). Within the RAA, the CAAs can delegate HDAs as needed. 282 There may be other RAAs allowed to operate within a given NAS; this 283 is a policy decision by the CAA. 285 3.4. Remote ID Authentication using HHITs 287 The EdDSA25519 Host Identity (HI) [Appendix D] underlying the HHIT 288 can be used in an 84 byte self proof attestation as shown in 289 Appendix E to provide proof of Remote ID ownership (requirements GEN- 290 1). An Internet lookup service like DNS can provide the HI and 291 registration proof (requirements GEN-3). 293 Similarly the 200 byte offline self attestation shown in Appendix E.1 294 provide the same proofs without Internet access and with a small 295 cache that contains the HDA's HI/HHIT and HDA meta-data. These self 296 attestations are carried in the ASTM Authentication Message (Msg Type 297 0x2). 299 Hashes of previously sent ASTM messages can be placed in a signed 300 "Manifest" Authentication Message (requirements GEN-2). This can be 301 either a standalone Authentication Message, or an enhanced self 302 attestation Authentication Message. Alternatively the ASTM Message 303 Pack (Msg Type 0xF) can provide this feature, but only over Bluetooth 304 5 or WiFi NAN broadcasts. 306 4. UAS ID HHIT in DNS 308 There are 2 approaches for storing and retrieving the HHIT from DNS. 309 These are: 311 * As FQDNs in the .aero TLD. 313 * Reverse DNS lookups as IPv6 addresses per [RFC8005]. 315 The HHIT can be used to construct an FQDN that points to the USS that 316 has the Public/Private information for the UA (REG-1 and REG-2). For 317 example the USS for the HHIT could be found via the following. 318 Assume the RAA is 100 and the HDA is 50. The PTR record is 319 constructed as: 321 100.50.hhit.uas.aero IN PTR foo.uss.aero. 323 The individual HHITs are potentially too numerous (e.g. 60 - 600M) 324 and dynamic to actually store in a signed, DNS zone. The HDA SHOULD 325 provide DNS service for its zone and provide the HHIT detail 326 response. 328 The HHIT reverse lookup can be a standard IPv6 reverse look up, or it 329 can leverage off the HHIT structure. Assume a Prefix of 330 2001:30::/28, the RAA is 10 and the HDA is 20 and the HHIT is: 332 2001:30:a0:145:a3ad:1952:ad0:a69e 334 An HHIT reverse lookup could be to: 336 a69e.ad0.1952.a3ad.145.a0.30.2001.20.10.hhit.arpa. 338 A 'standard' ip6.arpa RR has the advantage of only one Registry 339 service supported. 341 $ORIGIN 5.4.1.0.0.a.0.0.0.3.0.0.1.0.0.2.ip6.arpa. 342 e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a IN PTR 344 5. Other UTM uses of HHITs 346 HHITs can be used extensively within the UTM architecture beyond UA 347 ID (and USS in UA ID registration and authentication). This includes 348 a GCS HHIT ID. The GCS could use its HIIT if it is the source of 349 Network Remote ID for securing the transport and for secure C2 350 transport [drip-secure-nrid-c2]. 352 Observers SHOULD have HHITs to facilitate UAS information retrieval 353 (e.g., for authorization to private UAS data). They could also use 354 their HHIT for establishing a HIP connection with the UA Pilot for 355 direct communications per authorization. Further, they can be used 356 by FINDER observers, [crowd-sourced-rid]. 358 6. DRIP Requirements addressed 360 This document provides solutions to GEN 1 - 3, ID 1 - 5, and REG 1 - 361 2. 363 7. ASTM Considerations 365 ASTM will need to make the following changes to the "UA ID" in the 366 Basic Message (Msg Type 0x0): 368 Type 4: 369 This document UA ID of Hierarchical HITs (see Section 3). 371 8. IANA Considerations 373 IANA will need to make the following changes to the "Host Identity 374 Protocol (HIP) Parameters" registries: 376 Host ID: 377 This document defines the new EdDSA Host ID (see Appendix D.1). 379 HIT Suite ID: 380 This document defines the new HIT Suite of EdDSA/cSHAKE (see 381 Appendix D.2). 383 HIT Suite ID: 384 This document defines two new HDA domain HIT Suites (see 385 Appendix B.2.1). 387 Because HHIT format is not compatible with [RFC7343], IANA is 388 requested to allocated a new 28-bit prefix out of the IANA IPv6 389 Special Purpose Address Block, namely 2001:0000::/23, as per 390 [RFC6890]. 392 9. Security Considerations 394 A 64 bit hash space presents a real risk of second pre-image attacks 395 Section 9.2. The HHIT Registry services effectively block attempts 396 to "take over" a HHIT. It does not stop a rogue attempting to 397 impersonate a known HHIT. This attack can be mitigated by the 398 receiver of the HHIT using DNS to find the HI for the HHIT. 400 Another mitigation of HHIT hijacking is if the HI owner (UA) supplies 401 an object containing the HHIT and signed by the HI private key of the 402 HDA such as Appendix E.1 as shown in Section 3.4. 404 The two risks with hierarchical HITs are the use of an invalid HID 405 and forced HIT collisions. The use of a DNS zone (e.g. 406 "hhit.arpa.") is a strong protection against invalid HIDs. Querying 407 an HDA's RVS for a HIT under the HDA protects against talking to 408 unregistered clients. The Registry service has direct protection 409 against forced or accidental HIT hash collisions. 411 Cryptographically Generated Addresses (CGAs) provide a unique 412 assurance of uniqueness. This is two-fold. The address (in this 413 case the UAS ID) is a hash of a public key and a Registry hierarchy 414 naming. Collision resistance (more important that it implied second- 415 preimage resistance) makes it statistically challenging to attacks. 416 A registration process (TBD) within the HDA provides a level of 417 assured uniqueness unattainable without mirroring this approach. 419 The second aspect of assured uniqueness is the digital signing 420 (attestation) process of the HHIT by the HI private key and the 421 further signing (attestation) of the HI public key by the Registry's 422 key. This completes the ownership process. The observer at this 423 point does not know WHAT owns the HHIT, but is assured, other than 424 the risk of theft of the HI private key, that this UAS ID is owned by 425 something and is properly registered. 427 9.1. Hierarchical HIT Trust 429 The HHIT UAS RID in the ASTM Basic Message (Msg Type 0x0, the actual 430 Remote ID message) does not provide any assertion of trust. The best 431 that might be done within this Basic Message is 4 bytes truncated 432 from a HI signing of the HHIT (the UA ID field is 20 bytes and a HHIT 433 is 16). This is not trustable. Minimally, it takes 84 bytes, 434 Appendix E, to prove ownership of a HHIT. 436 The ASTM Authentication Messages (Msg Type 0x2) as shown in 437 Section 3.4 can provide practical actual ownership proofs. These 438 attestations include timestamps to defend against replay attacks. 439 But in themselves, they do not prove which UA actually sent the 440 message. They could have been sent by a dog running down the street 441 with a Broadcast Remote ID device strapped to its back. 443 Proof of UA transmission comes when the Authentication Message 444 includes proofs for the ASTM Location/Vector Message (Msg Type 0x1) 445 and the observer can see the UA or that information is validated by 446 ground multilateration [crowd-sourced-rid]. Only then does an 447 observer gain full trust in the HHIT Remote ID. 449 HHIT Remote IDs obtained via the Network Remote ID path provides a 450 different approach to trust. Here the UAS SHOULD be securely 451 communicating to the USS (see [drip-secure-nrid-c2]), thus asserting 452 HHIT RID trust. 454 9.2. Collision risks with Hierarchical HITs 456 The 64 bit hash size does have an increased risk of collisions over 457 the 96 bit hash size used for the other HIT Suites. There is a 0.01% 458 probability of a collision in a population of 66 million. The 459 probability goes up to 1% for a population of 663 million. See 460 Appendix G for the collision probability formula. 462 However, this risk of collision is within a single "Additional 463 Information" value, i.e. a RAA/HDA domain. The UAS/USS registration 464 process should include registering the HHIT and MUST reject a 465 collision, forcing the UAS to generate a new HI and thus HHIT and 466 reapplying to the registration process. 468 9.3. Proofs Considerations 470 A major consideration is the optimization done in Certificate: X on Y 471 (Concise Form) to get its length down to 200 bytes. The truncation 472 of Certificate: HDA on HDA down to just its HHIT is one that could be 473 used against the system to act as a false Registry. For this to 474 occur an attacker would need to find a hash collision on that 475 Registry HHIT and then manage to spoof all of DNS being used in the 476 system. 478 The authors believe that the probability of such an attack is low 479 when Registry operators are using best practices in security. If 480 such an attack can occur (especially in the time frame of "one-time 481 use IDs") then there are more serious issues present in the system. 483 10. References 485 10.1. Normative References 487 [F3411-19] ASTM International, "Standard Specification for Remote ID 488 and Tracking", February 2020, 489 . 491 [NIST.SP.800-185] 492 Kelsey, J., Change, S., and R. Perlner, "SHA-3 derived 493 functions: cSHAKE, KMAC, TupleHash and ParallelHash", 494 National Institute of Standards and Technology report, 495 DOI 10.6028/nist.sp.800-185, December 2016, 496 . 498 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 499 Requirement Levels", BCP 14, RFC 2119, 500 DOI 10.17487/RFC2119, March 1997, 501 . 503 [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman, 504 "Special-Purpose IP Address Registries", BCP 153, 505 RFC 6890, DOI 10.17487/RFC6890, April 2013, 506 . 508 [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital 509 Signature Algorithm (EdDSA)", RFC 8032, 510 DOI 10.17487/RFC8032, January 2017, 511 . 513 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 514 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 515 May 2017, . 517 10.2. Informative References 519 [corus] CORUS, "U-space Concept of Operations", September 2019, 520 . 522 [crowd-sourced-rid] 523 Moskowitz, R., Card, S., Wiethuechter, A., Zhao, S., and 524 H. Birkholz, "Crowd Sourced Remote ID", Work in Progress, 525 Internet-Draft, draft-moskowitz-drip-crowd-sourced-rid-05, 526 15 November 2020, . 529 [CTA2063A] ANSI/CTA, "Small Unmanned Aerial Systems Serial Numbers", 530 September 2019, . 533 [drip-requirements] 534 Card, S., Wiethuechter, A., Moskowitz, R., and A. Gurtov, 535 "Drone Remote Identification Protocol (DRIP) 536 Requirements", Work in Progress, Internet-Draft, draft- 537 ietf-drip-reqs-06, 1 November 2020, 538 . 540 [drip-secure-nrid-c2] 541 Moskowitz, R., Card, S., Wiethuechter, A., and A. Gurtov, 542 "Secure UAS Network RID and C2 Transport", Work in 543 Progress, Internet-Draft, draft-moskowitz-drip-secure- 544 nrid-c2-02, 25 December 2020, 545 . 548 [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and 549 R. Van Keer, "The Keccak Function", 550 . 552 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 553 Unique IDentifier (UUID) URN Namespace", RFC 4122, 554 DOI 10.17487/RFC4122, July 2005, 555 . 557 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 558 STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, 559 . 561 [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay 562 Routable Cryptographic Hash Identifiers Version 2 563 (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September 564 2014, . 566 [RFC7401] Moskowitz, R., Ed., Heer, T., Jokela, P., and T. 567 Henderson, "Host Identity Protocol Version 2 (HIPv2)", 568 RFC 7401, DOI 10.17487/RFC7401, April 2015, 569 . 571 [RFC8004] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) 572 Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004, 573 October 2016, . 575 [RFC8005] Laganier, J., "Host Identity Protocol (HIP) Domain Name 576 System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005, 577 October 2016, . 579 Appendix A. EU U-Space RID Privacy Considerations 581 EU is defining a future of airspace management known as U-space 582 within the Single European Sky ATM Research (SESAR) undertaking. 583 Concept of Operation for EuRopean UTM Systems (CORUS) project 584 proposed low-level Concept of Operations [corus] for UAS in EU. It 585 introduces strong requirements for UAS privacy based on European GDPR 586 regulations. It suggests that UAs are identified with agnostic IDs, 587 with no information about UA type, the operators or flight 588 trajectory. Only authorized persons should be able to query the 589 details of the flight with a record of access. 591 Due to the high privacy requirements, a casual observer can only 592 query U-space if it is aware of a UA seen in a certain area. A 593 general observer can use a public U-space portal to query UA details 594 based on the UA transmitted "Remote identification" signal. Direct 595 remote identification (DRID) is based on a signal transmitted by the 596 UA directly. Network remote identification (NRID) is only possible 597 for UAs being tracked by U-Space and is based on the matching the 598 current UA position to one of the tracks. 600 The project lists "E-Identification" and "E-Registrations" services 601 as to be developed. These services can follow the privacy mechanism 602 proposed in this document. If an "agnostic ID" above refers to a 603 completely random identifier, it creates a problem with identity 604 resolution and detection of misuse. On the other hand, a classical 605 HIT has a flat structure which makes its resolution difficult. The 606 Hierarchical HITs provide a balanced solution by associating a 607 registry with the UA identifier. This is not likely to cause a major 608 conflict with U-space privacy requirements, as the registries are 609 typically few at a country level (e.g. civil personal, military, law 610 enforcement, or commercial). 612 Appendix B. The Hierarchical Host Identity Tag (HHIT) 614 The Hierarchical HIT (HHIT) is a small but important enhancement over 615 the flat HIT space. By adding two levels of hierarchical 616 administration control, the HHIT provides for device registration/ 617 ownership, thereby enhancing the trust framework for HITs. 619 HHITs represent the HI in only a 64 bit hash and uses the other 32 620 bits to create a hierarchical administration organization for HIT 621 domains. Hierarchical HIT construction is defined in Appendix C. 622 The input values for the Encoding rules are in Appendix C.1. 624 A HHIT is built from the following fields: 626 * IANA prefix (max 28 bit) 628 * 32 bit Hierarchy ID (HID) 630 * 4 (or 8) bit HIT Suite ID 632 * ORCHID hash (96 - prefix length - Suite ID length bits, e.g. 64) 633 See Appendix C 635 The Context ID for the ORCHID hash is: 637 Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 639 B.1. HHIT prefix 641 A unique IANA IPv6 prefix, no larger than 28 bit, for HHITs is 642 recommended. It clearly separates the flat-space HIT processing from 643 HHIT processing per Appendix C. 645 Without a unique prefix, the first 4 bits of the RRA would be 646 interpreted as the HIT Suite ID per HIPv2 [RFC7401]. 648 B.2. HHIT Suite IDs 650 The HIT Suite IDs specifies the HI and hash algorithms. Any HIT 651 Suite ID can be used for HHITs. The 8 bit format is supported (only 652 when the first 4 bits are ZERO), but this reduces the ORCHID hash 653 length. 655 B.2.1. 8 bit HIT Suite IDs 657 Support for 8 bit HIT Suite IDs is allowed in Sec 5.2.10, [RFC7401], 658 but not specified in how ORCHIDs are generated with these longer 659 OGAs. Appendix C provides the algorithmic flexiblity, allowing for 660 HDA custom HIT Suite IDs as follows: 662 HIT Suite Four-bit ID Eight-bit encoding 663 HDA Assigned 1 NA 0x0E 664 HDA Assigned 2 NA 0x0F 666 This feature may be used for large-scale experimenting with post 667 quantum computing hashes or similar domain specific needs. Note that 668 currently there is no support for domain specific HI algorithms. 670 B.3. The Hierarchy ID (HID) 672 The Hierarchy ID (HID) provides the structure to organize HITs into 673 administrative domains. HIDs are further divided into 2 fields: 675 * 16 bit Registered Assigning Authority (RAA) 677 * 16 bit Hierarchical HIT Domain Authority (HDA) 679 B.3.1. The Registered Assigning Authority (RAA) 681 An RAA is a business or organization that manages a registry of HDAs. 682 For example, the Federal Aviation Authority (FAA) could be an RAA. 684 The RAA is a 16 bit field (65,536 RAAs) assigned by a numbers 685 management organization, perhaps ICANN's IANA service. An RAA must 686 provide a set of services to allocate HDAs to organizations. It must 687 have a public policy on what is necessary to obtain an HDA. The RAA 688 need not maintain any HIP related services. It must maintain a DNS 689 zone minimally for discovering HID RVS servers. 691 As HHITs may be used in many different domains, RAA should be 692 allocated in blocks with consideration on the likely size of a 693 particular usage. Alternatively, different Prefixes can be used to 694 separate different domains of use of HHTs. 696 This DNS zone may be a PTR for its RAA. It may be a zone in a HHIT 697 specific DNS zone. Assume that the RAA is 100. The PTR record could 698 be constructed: 700 100.hhit.arpa IN PTR raa.bar.com. 702 B.3.2. The Hierarchical HIT Domain Authority (HDA) 704 An HDA may be an ISP or any third party that takes on the business to 705 provide RVS and other needed services for HIP enabled devices. 707 The HDA is an 16 bit field (65,536 HDAs per RAA) assigned by an RAA. 708 An HDA should maintain a set of RVS servers that its client HIP- 709 enabled customers use. How this is done and scales to the 710 potentially millions of customers is outside the scope of this 711 document. This service should be discoverable through the DNS zone 712 maintained by the HDA's RAA. 714 An RAA may assign a block of values to an individual organization. 715 This is completely up to the individual RAA's published policy for 716 delegation. 718 Appendix C. ORCHIDs for Hierarchical HITs 720 This section improves on ORCHIDv2 [RFC7343] with three enhancements: 722 * Optional Info field between the Prefix and OGA ID. 724 * Increased flexibility on the length of each component in the 725 ORCHID construction, provided the resulting ORCHID is 128 bits. 727 * Use of cSHAKE, NIST SP 800-185 [NIST.SP.800-185], for the hashing 728 function. 730 The Keccak [Keccak] based cSHAKE XOF hash function is a variable 731 output length hash function. As such it does not use the truncation 732 operation that other hashes need. The invocation of cSHAKE specifies 733 the desired number of bits in the hash output. Further, cSHAKE has a 734 parameter 'S' as a customization bit string. This parameter will be 735 used for including the ORCHID Context Identifier in a standard 736 fashion. 738 This ORCHID construction includes the fields in the ORCHID in the 739 hash to protect them against substitution attacks. It also provides 740 for inclusion of additional information, in particular the 741 hierarchical bits of the Hierarchical HIT, in the ORCHID generation. 742 This should be viewed as an addendum to ORCHIDv2 [RFC7343], as it can 743 produce ORCHIDv2 output. 745 C.1. Adding additional information to the ORCHID 747 ORCHIDv2 [RFC7343] is currently defined as consisting of three 748 components: 750 ORCHID := Prefix | OGA ID | Encode_96( Hash ) 752 where: 754 Prefix : A constant 28-bit-long bitstring value 755 (IANA IPv6 assigned). 757 OGA ID : A 4-bit long identifier for the Hash_function 758 in use within the specific usage context. When 759 used for HIT generation this is the HIT Suite ID. 761 Encode_96( ) : An extraction function in which output is obtained 762 by extracting the middle 96-bit-long bitstring 763 from the argument bitstring. 765 This addendum will be constructed as follows: 767 ORCHID := Prefix (p) | Info (n) | OGA ID (o) | Hash (m) 769 where: 771 Prefix (p) : An IANA IPv6 assigned prefix (max 28-bit-long). 773 Info (n) : n bits of information that define a use of the 774 ORCHID. n can be zero, that is no additional 775 information. 777 OGA ID (o) : A 4 or 8 bit long identifier for the Hash_function 778 in use within the specific usage context. When 779 used for HIT generation this is the HIT Suite ID. 781 Hash (m) : An extraction function in which output is m bits. 783 p + n + o + m = 128 bits 785 With a 28 bit IPv6 Prefix, the remaining 100 bits can be divided in 786 any manner between the additional information, OGA ID, and the hash 787 output. Care must be taken in determining the size of the hash 788 portion, taking into account risks like pre-image attacks. Thus 64 789 bits as used in Hierarchical HITs may be as small as is acceptable. 791 C.2. ORCHID Encoding 793 This addendum adds a different encoding process to that currently 794 used in ORCHIDv2. The input to the hash function explicitly includes 795 all the header content plus the Context ID. The header content 796 consists of the Prefix, the Additional Information, and OGA ID (HIT 797 Suite ID). Secondly, the length of the resulting hash is set by sum 798 of the length of the ORCHID header fields. For example, a 28 bit 799 Prefix with 32 bits for the HID and 4 bits for the OGA ID leaves 64 800 bits for the hash length. 802 To achieve the variable length output in a consistent manner, the 803 cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. 804 The the cSHAKE function call for this addendum is: 806 cSHAKE128(Input, L, "", Context ID) 808 Input := Prefix | Additional Information | OGA ID | HOST_ID 809 L := Length in bits of hash portion of ORCHID 811 For full Suite ID support (those that use fixed length hashes like 812 SHA256), the following hashing can be used (Note: this does NOT 813 produce output Identical to ORCHIDv2 for Prefix of /28 and Additional 814 Information of ZERO length): 816 Hash[L](Context ID | Input) 818 Input := Prefix | Additional Information | OGA ID | HOST_ID 819 L := Length in bits of hash portion of ORCHID 821 Hash[L] := An extraction function in which output is obtained 822 by extracting the middle L-bit-long bitstring 823 from the argument bitstring. 825 Hierarchical HIT uses the same context as all other HIPv2 HIT Suites 826 as they are clearly separated by the distinct HIT Suite ID. 828 C.2.1. Encoding ORCHIDs for HITv2 830 This section is included to provide backwards compatibility for 831 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 833 For HITv2s, the Prefix MUST be 2001:20::/28. Info is length ZERO 834 (not included), and OGA ID is length 4. Thus the HI Hash is length 835 96. Further the Prefix and OGA ID are NOT included in the hash 836 calculation. Thus the following ORCHID calculations for fixed output 837 length hashes are used: 839 Hash[L](Context ID | Input) 841 Input := HOST_ID 842 L := 96 843 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 845 Hash[L] := An extraction function in which output is obtained 846 by extracting the middle L-bit-long bitstring 847 from the argument bitstring. 849 For variable output length hashes use: 851 Hash[L](Context ID | Input) 853 Input := HOST_ID 854 L := 96 855 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 857 Hash[L] := The L bit output from the hash function 859 Then the ORCHID is constructed as follows: 861 Prefix | OGA ID | Hash Output 863 C.3. ORCHID Decoding 865 With this addendum, the decoding of an ORCHID is determined by the 866 Prefix and OGA ID (HIT Suite ID). ORCHIDv2 [RFC7343] decoding is 867 selected when the Prefix is: 2001:20::/28. 869 For Hierarchical HITs, the decoding is determined by the presence of 870 the HHIT Prefix as specified in the HHIT document. 872 C.4. Decoding ORCHIDs for HITv2 874 This section is included to provide backwards compatibility for 875 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 877 HITv2s are identified by a Prefix of 2001:20::/28. The next 4 bits 878 are the OGA ID. is length 4. The remaining 96 bits are the HI Hash. 880 Appendix D. Edward Digital Signature Algorithm for HITs 882 Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] are 883 specified here for use as Host Identities (HIs) per HIPv2 [RFC7401]. 884 Further the HIT_SUITE_LIST is specified as used in [RFC7343]. 886 See Appendix B.2 for use of the HIT Suite for this document. 888 D.1. HOST_ID 890 The HOST_ID parameter specifies the public key algorithm, and for 891 elliptic curves, a name. The HOST_ID parameter is defined in 892 Section 5.2.19 of [RFC7401]. 894 Algorithm 895 profiles Values 897 EdDSA 13 [RFC8032] (RECOMMENDED) 899 For hosts that implement EdDSA as the algorithm, the following ECC 900 curves are available: 902 Algorithm Curve Values 904 EdDSA RESERVED 0 905 EdDSA EdDSA25519 1 [RFC8032] 906 EdDSA EdDSA25519ph 2 [RFC8032] 907 EdDSA EdDSA448 3 [RFC8032] 908 EdDSA EdDSA448ph 4 [RFC8032] 910 D.2. HIT_SUITE_LIST 912 The HIT_SUITE_LIST parameter contains a list of the supported HIT 913 suite IDs of the Responder. Based on the HIT_SUITE_LIST, the 914 Initiator can determine which source HIT Suite IDs are supported by 915 the Responder. The HIT_SUITE_LIST parameter is defined in 916 Section 5.2.10 of [RFC7401]. 918 The following HIT Suite ID is defined, and the relationship between 919 the four-bit ID value used in the OGA ID field and the eight-bit 920 encoding within the HIT_SUITE_LIST ID field is clarified: 922 HIT Suite Four-bit ID Eight-bit encoding 923 RESERVED 0 0x00 924 EdDSA/cSHAKE128 5 0x50 (RECOMMENDED) 926 The following table provides more detail on the above HIT Suite 927 combinations. The input for each generation algorithm is the 928 encoding of the HI as defined in this Appendix. 930 The output of cSHAKE128 is variable per the needs of a specific 931 ORCHID construction. It is at most 96 bits long and is directly used 932 in the ORCHID (without truncation). 934 +=======+===========+=========+===========+====================+ 935 | Index | Hash | HMAC | Signature | Description | 936 | | function | | algorithm | | 937 | | | | family | | 938 +=======+===========+=========+===========+====================+ 939 | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | 940 | | | | | with cSHAKE128, | 941 | | | | | output is variable | 942 +-------+-----------+---------+-----------+--------------------+ 944 Table 1: HIT Suites 946 Appendix E. Example HHIT Self Attestation 948 This section shows example uses of HHIT RID to prove trustworthiness 949 of the RID and attestation of registration to the RAA|HDA. These are 950 examples only and other documents will provide fully specified 951 attestations. Care has been taken in the example design to minimize 952 the risk of replay attacks. 954 This ownership/attestation of a HHIT can be proved in 84 bytes via 955 the following HHIT Self Attestation following Appendix F.2.1 format: 957 * 4 byte Signing Timestamp 959 * 16 byte HHIT 961 * 64 byte Signature (EdDSA25519 signature) 963 The Timestamp MAY be the standard UNIX time at the time of signing. 964 A protocol specific timestamp may be used to avoid programming 965 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 966 offset. 968 To minimize the risk of replay, the UA SHOULD create a new Self 969 Attestation, with a new timestamp, at least once a minute. The UA 970 MAY precompute these attestations and transmit during the appropriate 971 1 minute window. 1 minute is chosen as a balance between attestation 972 compute time against risk. A shorter window of use lessens the risk 973 of replay. 975 The signature is over the 20 byte Timestamp + HHIT. 977 The receiver of such an attestation would need access to the 978 underlying public key (HI) to validate the signature. This may be 979 obtained via a DNS query using the HHIT. A larger (116 bytes) Self 980 Attestation could include the EdDSA25519 HI. This larger 116 981 attestation allows for signature validation before HHIT lookup to 982 prove registration attestation. 984 E.1. HHIT Offline Self Attestation 986 Ownership and RAA|HDA registration of a HHIT can be proved in 200 987 bytes without Internet access and a small cache via the following 988 HHIT Offline Self Attestation Appendix F.2 format: 990 * 16 byte UA HHIT 992 * 32 byte UA EdDSA25519 HI 994 * 4 byte HDA Signing Expiry Timestamp 996 * 16 byte HDA HHIT 998 * 64 byte HDA Signature (EdDSA25519 signature) 1000 * 4 byte UA Signing Timestamp 1002 * 64 byte UA Signature (EdDSA25519 signature) 1004 The Timestamps MAY be the standard UNIX time at the time of signing. 1005 A protocol specific timestamp may be used to avoid programming 1006 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 1007 offset. 1009 The HDA signature is over the 68 byte UA HHIT + UA HI + HDA Expiry 1010 Timestamp + HDA HHIT. During the UA Registration process, the UA 1011 would provide a Self Attestation to the HDA. The HDA would construct 1012 its attestation of registry with an Expiry Timestamp, its own HHIT, 1013 and its signature, returning a 132 byte HDA Registry Attestation to 1014 the UA. The UA would use this much the same way as its HHIT only in 1015 the Self Attestation above, creating a 200 byte Offline Self 1016 Attestation. 1018 The receiver of such an attestation would need a cache of RAA ID, HDA 1019 ID, HDA HHIT, and HDA HI (min 80 bytes per RAA/HDA). 1021 Appendix F. DRIP Proofs 1023 The DRIP Proofs are a set of custom objects to be used in the USS/UTM 1024 system. They are created during the enrollment of an Operator and 1025 the provisioning of an Aircraft and are tied to the Operator ID and 1026 UAS RID. 1028 These structures, when chained together, create two distinct roots of 1029 trust. One back to the UAS manufacturer, back to the initial 1030 production of a given Aircraft. The other back to the authorizing 1031 CAA. These chains can also be used by authorized entities to trace 1032 an Aircraft through all owners and flights in the Aircraft's lifetime 1033 (something of interest to ICAO). 1035 The rest of this section will define the formats of proofs in DRIP as 1036 forms of certificates and attestations and their common uses. 1038 F.1. Claim / Assertion: HHIT 1040 The HHIT can be taken in its entirety as a single claim or broken 1041 into various claims and thus be classified as an assertion. 1043 There are a number of different claims that an HHIT can be broken 1044 into: 1046 * Valid ORCHID construction. To validate would require the Host 1047 Identity used. 1049 * Ownership of the asymmetric keypair used to generate the hash. 1051 * Being a member of a specified Registry. This is defined by the 1052 RAA and HDA pairing encoded. This is a baseless claim on its own 1053 that is attested to by the Registry. 1055 F.2. Self-Attestation: Attestation(X,X) 1057 This DRIP Proof is a self-signed attestation (by an entity known as 1058 'X') staking an unverified claim on a HHIT/HI pairing until an 1059 expiration date/time. 1061 0 1 2 3 1062 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 1063 +---------------+---------------+---------------+---------------+ 1064 | | 1065 | Hierarchical | 1066 | Host Identity Tag | 1067 | | 1068 +---------------+---------------+---------------+---------------+ 1069 | | 1070 | | 1071 | | 1072 | Host | 1073 | Identity | 1074 | | 1075 | | 1076 | | 1077 +---------------+---------------+---------------+---------------+ 1078 | Expiration Timestamp | 1079 +---------------+---------------+---------------+---------------+ 1080 | | 1081 | | 1082 | | 1083 | | 1084 | | 1085 | | 1086 | | 1087 | Signature | 1088 | | 1089 | | 1090 | | 1091 | | 1092 | | 1093 | | 1094 | | 1095 | | 1096 +---------------+---------------+---------------+---------------+ 1098 HHIT The HHIT of the entity, derived from the HI and 1099 other information. 1101 HI The HI of the entity. This is the public half of 1102 an EdDSA25519 asymmetric keypair. 1104 Expiration A timestamp signaling the expiration of the 1105 Timestamp attestation. 1107 Signature Generated using the asymmetric keypair of the entity. 1109 Figure 1: Self-Attestation: Attestation(X,X) 1111 This Self-Attestation is 116 bytes attesting to a number of claims 1112 and assertions. Overall the entire structure creates an assertion of 1113 the ownership of this first two claims (HHIT and HI), a binding 1114 (between HHIT and HI) and an upper time bound of relevance (the 1115 Expiration Timestamp). 1117 The offset of the Expiration Timestamp (ETS) SHOULD be of significant 1118 length (possibly years). 1120 These are 5 (five) Self-Attestations that can be created in a 1121 standard DRIP UAS RID system: 1123 * Attestation(Manufacturer, Manufacturer) 1125 * Attestation(RAA, RAA) 1127 * Attestation(HDA, HDA) or Attestation(Registry, Registry) 1129 * Attestation(Operator, Operator) 1131 * Attestation(Aircraft, Aircraft) 1133 This is not an exhaustive list as any entity with the DRIP UAS system 1134 SHOULD have a Self-Attestation for itself. 1136 The Timestamp formatting is covered in Appendix F.5. 1138 F.2.1. Concise Self-Attestation: Attestation(X, ConciseX) 1140 A smaller version of Attestation(X, X) exists where the Host Identity 1141 is removed allowing a claim to be made in 84 bytes. 1143 0 1 2 3 1144 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 1145 +---------------+---------------+---------------+---------------+ 1146 | | 1147 | Hierarchical | 1148 | Host Identity Tag | 1149 | | 1150 +---------------+---------------+---------------+---------------+ 1151 | Expiration Timestamp | 1152 +---------------+---------------+---------------+---------------+ 1153 | | 1154 | | 1155 | | 1156 | | 1157 | | 1158 | | 1159 | | 1160 | Signature | 1161 | | 1162 | | 1163 | | 1164 | | 1165 | | 1166 | | 1167 | | 1168 | | 1169 +---------------+---------------+---------------+---------------+ 1171 HHIT The HHIT of the entity, derived from the HI and 1172 other information. 1174 Expiration A timestamp signaling the expiration of the 1175 Timestamp attestation. 1177 Signature Generated using the asymmetric keypair of the entity. 1179 Figure 2: Concise Self-Attestation: Attestation(X, ConciseX) 1181 This form would require that the Host Identity associated with the 1182 HHIT be in a public Registry to be requested (nominally with a DNS 1183 lookup using a HIP RR type) and checked against. 1185 The Timestamp formatting is covered in Appendix F.5. 1187 F.3. Certificate(X, Y) 1189 This DRIP Proof is an attestation where Entity X asserts trust in the 1190 binding claimed by Entity Y (in Assertion Y) and signs this asserting 1191 with a timestamp and an expiration of when the binding is no longer 1192 asserted by Entity X. 1194 0 1 2 3 1195 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 1196 +---------------+---------------+---------------+---------------+ 1197 | Length Ax | Length Ay | 1198 +---------------+---------------+---------------+---------------+ 1199 | | 1200 . . 1201 . Assertion X . 1202 . . 1203 | | 1204 +---------------+---------------+---------------+---------------+ 1205 | | 1206 . . 1207 . Assertion Y . 1208 . . 1209 | | 1210 +---------------+---------------+---------------+---------------+ 1211 | Timestamp | 1212 +---------------+---------------+---------------+---------------+ 1213 | Expiration Timestamp | 1214 +---------------+---------------+---------------+---------------+ 1215 | | 1216 | | 1217 | | 1218 | | 1219 | | 1220 | | 1221 | | 1222 | Signature | 1223 | | 1224 | | 1225 | | 1226 | | 1227 | | 1228 | | 1229 | | 1230 | | 1231 +---------------+---------------+---------------+---------------+ 1233 Length Length in bytes of Assertion(X). Encoded as an 1234 Ax unsigned integer. 1236 Length Length in bytes of Assertion(Y). Encoded as an 1237 Ay unsigned integer. 1239 Assertion(X) The attestation/certificate of entity X. 1241 Assertion(Y) The attestation/certificate of entity Y. 1243 Timestamp A timestamp signalling the current time at 1244 signing of the certificate. 1246 Expiration A timestamp signaling the expiration of the 1247 Timestamp attestation. 1249 Signature Generated using the asymmetric keypair of the 1250 entity. 1252 Figure 3: Certificate(X, Y) 1254 Cxy Form wraps both Self-Attestations of the entities and is signed 1255 by Entity X. Two timestamps, one taken at the time of signing and 1256 one as an expiration time are used to set boundaries to the 1257 assertion. Care should be given to how far into the future the 1258 Expiration Timestamp is set, but is left up to system policy. 1260 Most attestations of this form have a length of 304 bytes; some may 1261 be 84 or 116 bytes. Certificate(Registry, 1262 Certificate(Operator,Aircraft)) is unique in that is 680 bytes long, 1263 binding of two Cxy forms (in this specific case Certificate(Registry, 1264 Operator) with Certificate(Operator, Aircraft). 1266 The Timestamp formatting is covered in Appendix F.5. 1268 F.3.1. Concise Certificate(X, Concise Y) 1269 0 1 2 3 1270 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 1271 +---------------+---------------+---------------+---------------+ 1272 | | 1273 | Hierarchical Host Identity Tag | 1274 | of Entity X | 1275 | | 1276 +---------------+---------------+---------------+---------------+ 1277 | | 1278 . . 1279 . Ayy . 1280 . . 1281 | | 1282 +---------------+---------------+---------------+---------------+ 1283 | Expiration Timestamp | 1284 +---------------+---------------+---------------+---------------+ 1285 | | 1286 | | 1287 | | 1288 | | 1289 | | 1290 | | 1291 | | 1292 | Signature | 1293 | | 1294 | | 1295 | | 1296 | | 1297 | | 1298 | | 1299 | | 1300 | | 1301 +---------------+---------------+---------------+---------------+ 1303 Figure 4: Concise Certificate(X, Concise Y) 1305 The short form of the Cxy this attestation is 200 bytes long and is 1306 designed to fit inside the framing of the ASTM F3411 Authentication 1307 Message. The HHIT of Entity X is used in place of the full Axx (see 1308 Section 9.3 for comments). The timestamp is removed and only an 1309 expiration timestamp is present. Ayy MUST NOT be the in Concise 1310 Form. 1312 During creation the Expiration Timestamp MUST be no later than the 1313 Expiration Timestamp found in Ayy. 1315 F.4. Offline Broadcast Attestation: Attestation(X, Offline Y) 1317 A special attestation that is the basis for a certificate finalized 1318 onboard the aircraft during flight. It is used in Broadcast RID to 1319 provide the trustworthiness of the Aircraft without the need of the 1320 Observer to be connected to the Internet. 1322 0 1 2 3 1323 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 1324 +---------------+---------------+---------------+---------------+ 1325 | | 1326 | Hierarchical Host Identity Tag | 1327 | of Entity X | 1328 | | 1329 +---------------+---------------+---------------+---------------+ 1330 | | 1331 | Hierarchical Host Identity Tag | 1332 | of Entity Y | 1333 | | 1334 +---------------+---------------+---------------+---------------+ 1335 | | 1336 | | 1337 | | 1338 | Host Identity of Entity Y | 1339 | | 1340 | | 1341 | | 1342 | | 1343 +---------------+---------------+---------------+---------------+ 1344 | Expiration Timestamp | 1345 +---------------+---------------+---------------+---------------+ 1346 | | 1347 | | 1348 | | 1349 | | 1350 | | 1351 | | 1352 | | 1353 | Signature | 1354 | | 1355 | | 1356 | | 1357 | | 1358 | | 1359 | | 1360 | | 1361 | | 1362 +---------------+---------------+---------------+---------------+ 1363 Figure 5: Offline Form: Attestation(X, Offline Y) 1365 The signature is generated using Entity X's keypair. 1367 F.5. Timestamps 1369 Timestamps MAY be the standard UNIX time or a protocol specific 1370 timestamp, to avoid programming complexities. For example [F3411-19] 1371 uses a 00:00:00 01/01/2019 offset. When a Expiration Timestamp is 1372 required a desired offset is added, setting the timestamp into the 1373 future. The amount of offset for specific timestamps is left to best 1374 practice. 1376 F.6. Signatures 1378 Signatures are ALWAYS taken over the preceding fields in the 1379 certificate/attestation. For DRIP the EdDSA25519 algorithm from 1380 [RFC8032] is used. 1382 Appendix G. Calculating Collision Probabilities 1384 The accepted formula for calculating the probability of a collision 1385 is: 1387 p = 1 - e^{-k^2/(2n)} 1389 P Collision Probability 1390 n Total possible population 1391 k Actual population 1393 The following table provides the approximate population size for a 1394 collision for a given total population. 1396 Deployed Population 1397 Total With Collision Risk of 1398 Population .01% 1% 1400 2^96 4T 42T 1401 2^72 1B 10B 1402 2^68 250M 2.5B 1403 2^64 66M 663M 1404 2^60 16M 160M 1406 Acknowledgments 1408 Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil 1409 Aviation Administration. 1411 Quynh Dang of NIST gave considerable guidance on using Keccak and the 1412 NIST supporting documents. Joan Deamen of the Keccak team was 1413 especially helpful in many aspects of using Keccak. 1415 Authors' Addresses 1417 Robert Moskowitz 1418 HTT Consulting 1419 Oak Park, MI 48237 1420 United States of America 1422 Email: rgm@labs.htt-consult.com 1424 Stuart W. Card 1425 AX Enterprize, LLC 1426 4947 Commercial Drive 1427 Yorkville, NY 13495 1428 United States of America 1430 Email: stu.card@axenterprize.com 1432 Adam Wiethuechter 1433 AX Enterprize, LLC 1434 4947 Commercial Drive 1435 Yorkville, NY 13495 1436 United States of America 1438 Email: adam.wiethuechter@axenterprize.com 1440 Andrei Gurtov 1441 Linköping University 1442 IDA 1443 SE-58183 Linköping 1444 Sweden 1446 Email: gurtov@acm.org