idnits 2.17.1 draft-ietf-drip-rid-03.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 5 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 (October 27, 2020) is 1275 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 256, but not defined == Missing Reference: 'L' is mentioned on line 799, 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: April 30, 2021 AX Enterprize, LLC 7 A. Gurtov 8 Linköping University 9 October 27, 2020 11 UAS Remote ID 12 draft-ietf-drip-rid-03 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 include explicit 19 hierarchy to provide Registrar discovery for 3rd-party ID 20 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 April 30, 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 . . . . . . . . . . . . . . . 3 57 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 3 58 2.1. Requirements Terminology . . . . . . . . . . . . . . . . 3 59 2.2. Notation . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 4 61 3. Hierarchical HITs as Remote ID . . . . . . . . . . . . . . . 5 62 3.1. Remote ID as one class of Hierarchical HITs . . . . . . . 5 63 3.2. Hierarchy in ORCHID Generation . . . . . . . . . . . . . 5 64 3.3. Hierarchical HIT Registry . . . . . . . . . . . . . . . . 6 65 3.4. Remote ID Authentication using HHITs . . . . . . . . . . 6 66 4. UAS ID HHIT in DNS . . . . . . . . . . . . . . . . . . . . . 6 67 5. Other UTM uses of HHITs . . . . . . . . . . . . . . . . . . . 7 68 6. DRIP Requirements addressed . . . . . . . . . . . . . . . . . 7 69 7. ASTM Considerations . . . . . . . . . . . . . . . . . . . . . 7 70 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 71 9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 72 9.1. Hierarchical HIT Trust . . . . . . . . . . . . . . . . . 9 73 9.2. Collision risks with Hierarchical HITs . . . . . . . . . 9 74 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 75 10.1. Normative References . . . . . . . . . . . . . . . . . . 10 76 10.2. Informative References . . . . . . . . . . . . . . . . . 10 77 Appendix A. EU U-Space RID Privacy Considerations . . . . . . . 12 78 Appendix B. The Hierarchical Host Identity Tag (HHIT) . . . . . 12 79 B.1. HHIT prefix . . . . . . . . . . . . . . . . . . . . . . . 13 80 B.2. HHIT Suite IDs . . . . . . . . . . . . . . . . . . . . . 13 81 B.2.1. 8 bit HIT Suite IDs . . . . . . . . . . . . . . . . . 13 82 B.3. The Hierarchy ID (HID) . . . . . . . . . . . . . . . . . 13 83 B.3.1. The Registered Assigning Authority (RAA) . . . . . . 14 84 B.3.2. The Hierarchical HIT Domain Authority (HDA) . . . . . 14 85 Appendix C. ORCHIDs for Hierarchical HITs . . . . . . . . . . . 14 86 C.1. Adding additional information to the ORCHID . . . . . . . 15 87 C.2. ORCHID Encoding . . . . . . . . . . . . . . . . . . . . . 16 88 C.2.1. Encoding ORCHIDs for HITv2 . . . . . . . . . . . . . 17 89 C.3. ORCHID Decoding . . . . . . . . . . . . . . . . . . . . . 18 90 C.4. Decoding ORCHIDs for HITv2 . . . . . . . . . . . . . . . 18 91 Appendix D. Edward Digital Signature Algorithm for HITs . . . . 18 92 D.1. HOST_ID . . . . . . . . . . . . . . . . . . . . . . . . . 18 93 D.2. HIT_SUITE_LIST . . . . . . . . . . . . . . . . . . . . . 19 94 Appendix E. Example HHIT Self Claim . . . . . . . . . . . . . . 20 95 E.1. HHIT Offline Self Claim . . . . . . . . . . . . . . . . . 20 96 Appendix F. Calculating Collision Probabilities . . . . . . . . 21 97 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 22 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 100 1. Introduction 102 [drip-requirements] describes a UAS ID as a "unique (ID-4), non- 103 spoofable (ID-5), and identify a registry where the ID is listed (ID- 104 2)"; all within a 20 character Identifier (ID-1). 106 This document describes the use of Hierarchical HITs (HHITs) 107 (Appendix B) as self-asserting IPv6 addresses and thereby a trustable 108 Identifier for use as the UAS Remote ID. HHITs include explicit 109 hierarchy to provide Registrar discovery for 3rd-party ID 110 attestation. 112 HITs are statistically unique through the cryptographic hash feature 113 of second-preimage resistance. The cryptographically-bound addition 114 of the Hierarchy and a HHIT registration process (TBD; e.g. based on 115 Extensible Provisioning Protocol, [RFC5730]) provide complete, global 116 HHIT uniqueness. This is in contrast to general IDs (e.g. a UUID or 117 device serial number) as the subject in an X.509 certificate. 119 In a multi-CA PKI, a subject can occur in multiple CAs, possibly 120 fraudulently. CAs within the PKI would need to implement an approach 121 to enforce assurance of uniqueness. 123 Hierarchical HITs are valid, though non-routable, IPv6 addresses. As 124 such, they fit in many ways within various IETF technologies. 126 1.1. Nontransferablity of HHITs 128 HIs and its HHITs SHOULD NOT be transferable between UA or even 129 between replacement electronics for a UA. The private key for the HI 130 SHOULD be held in a cryptographically secure component. 132 2. Terms and Definitions 134 2.1. Requirements Terminology 136 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 137 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 138 "OPTIONAL" in this document are to be interpreted as described in BCP 139 14 [RFC2119] [RFC8174] when, and only when, they appear in all 140 capitals, as shown here. 142 2.2. Notation 144 | Signifies concatenation of information - e.g., X | Y is the 145 concatenation of X and Y. 147 2.3. Definitions 149 See [drip-requirements] for common DRIP terms. 151 cSHAKE (The customizable SHAKE function): 152 Extends the SHAKE scheme to allow users to customize their use of 153 the function. 155 HDA (Hierarchical HIT Domain Authority): 156 The 16 bit field identifying the HHIT Domain Authority under an 157 RAA. 159 HHIT 160 Hierarchical Host Identity Tag. A HIT with extra hierarchical 161 information not found in a standard HIT. 163 HI 164 Host Identity. The public key portion of an asymmetric keypair 165 used in HIP. 167 HID (Hierarchy ID): 168 The 32 bit field providing the HIT Hierarchy ID. 170 HIP 171 Host Identity Protocol. The origin of HI, HIT, and HHIT, required 172 for DRIP. Optional full use of HIP enables additional DRIP 173 functionality. 175 HIT 176 Host Identity Tag. A 128 bit handle on the HI. HITs are valid 177 IPv6 addresses. 179 Keccak (KECCAK Message Authentication Code): 180 The family of all sponge functions with a KECCAK-f permutation as 181 the underlying function and multi-rate padding as the padding 182 rule. 184 RAA (Registered Assigning Authority): 185 The 16 bit field identifying the business or organization that 186 manages a registry of HDAs. 188 RVS (Rendezvous Server): 189 The HIP Rendezvous Server for enabling mobility, as defined in 190 [RFC8004]. 192 SHAKE (Secure Hash Algorithm KECCAK): 193 A secure hash that allows for an arbitrary output length. 195 XOF (eXtendable-Output Function): 196 A function on bit strings (also called messages) in which the 197 output can be extended to any desired length. 199 3. Hierarchical HITs as Remote ID 201 Hierarchical HITs are a refinement on the Host Identity Tag (HIT) of 202 HIPv2 [RFC7401]. HHITs require a new ORCHID mechanism as described 203 in Appendix C. HHITs for UAS ID also use the new EdDSA/SHAKE128 HIT 204 suite defined in Appendix D (requirements GEN-2). This hierarchy, 205 cryptographically embedded within the HHIT, provides the information 206 for finding the UA's HHIT registry (ID-3). 208 The current ASTM [F3411-19] specifies three UAS ID types: 210 TYPE-1 A static, manufacturer assigned, hardware serial number per 211 ANSI/CTA-2063-A "Small Unmanned Aerial System Serial Numbers" 212 [CTA2063A]. 214 TYPE-2 A CAA assigned (presumably static) ID. 216 TYPE-3 A UTM system assigned UUID [RFC4122], which can but need not 217 be dynamic. 219 For HHITs to be used effectively as UAS IDs, F3411-19 SHOULD add UAS 220 ID type 4 as HHIT. 222 3.1. Remote ID as one class of Hierarchical HITs 224 UAS Remote ID may be one of a number of uses of HHITs. As such these 225 follow-on uses need to be considered in allocating the RAAs 226 Appendix B.3.1 or HHIT prefix assignments Section 8. 228 3.2. Hierarchy in ORCHID Generation 230 ORCHIDS, as defined in [RFC7343], do not cryptographically bind the 231 IPv6 prefix nor the Orchid Generation Algorithm (OGA) ID (the HIT 232 Suite ID) to the hash of the HI. The justification then was attacks 233 against these fields are DoS attacks against protocols using them. 235 HHITs, as defined in Appendix C, cryptographically bind all content 236 in the ORCHID through the hashing function. Thus a recipient of a 237 HHIT that has the underlying HI can directly act on all content in 238 the HHIT. This is especially important to using the hierarchy to 239 find the HHIT Registry. 241 3.3. Hierarchical HIT Registry 243 HHITs are registered to Hierarchical HIT Domain Authorities (HDAs). 244 A registration process (TBD) ensures UAS ID global uniqueness (ID-4). 245 It also provides the mechanism to create UAS Public/Private data 246 associated with the HHIT UAS ID (REG-1 and REG-2). 248 The 2 levels of hierarchy within the HHIT allows for CAAs to have 249 their own Registered Assigning Authority (RAA) for their National Air 250 Space (NAS). Within the RAA, the CAAs can delegate HDAs as needed. 251 There may be other RAAs allowed to operate within a given NAS; this 252 is a policy decision by the CAA. 254 3.4. Remote ID Authentication using HHITs 256 The EdDSA25519 Host Identity (HI) [Appendix D] underlying the HHIT 257 can be used in an 84 byte self proof claim as shown in Appendix E to 258 provide proof of Remote ID ownership (requirements GEN-1). An 259 Internet lookup service like DNS can provide the HI and registration 260 proof (requirements GEN-3). 262 Similarly the 200 byte offline self claim shown in Appendix E.1 263 provide the same proofs without Internet access and with a small 264 cache that contains the HDA's HI/HHIT and HDA meta-data. These self 265 claims are carried in the ASTM Authentication Message (Msg Type 0x2). 267 Hashes of previously sent ASTM messages can be placed in a signed 268 "Manifest" Authentication Message (requirements GEN-2). This can be 269 either a standalone Authentication Message, or an enhanced self claim 270 Authentication Message. Alternatively the ASTM Message Pack (Msg 271 Type 0xF) can provide this feature, but only over Bluetooth 5 or WiFi 272 NAN broadcasts. 274 4. UAS ID HHIT in DNS 276 There are 2 approaches for storing and retrieving the HHIT from DNS. 277 These are: 279 * As FQDNs in the .aero TLD. 281 * Reverse DNS lookups as IPv6 addresses per [RFC8005]. 283 The HHIT can be used to construct an FQDN that points to the USS that 284 has the Public/Private information for the UA (REG-1 and REG-2). For 285 example the USS for the HHIT could be found via the following. 286 Assume that the RAA is 100 and the HDA is 50. The PTR record is 287 constructed as: 289 100.50.hhit.uas.aero IN PTR foo.uss.aero. 291 The individual HHITs are potentially too numerous (e.g. 60 - 600M) 292 and dynamic to actually store in a signed, DNS zone. Rather the USS 293 would provide the HHIT detail response. 295 The HHIT reverse lookup can be a standard IPv6 reverse look up, or it 296 can leverage off the HHIT structure. Assume that the RAA is 10 and 297 the HDA is 20 and the HHIT is: 299 2001:14:28:14:a3ad:1952:ad0:a69e 301 An HHIT reverse lookup would be to is: 303 a69e.ad0.1952.a3ad.14.28.14.2001.20.10.hhit.arpa. 305 5. Other UTM uses of HHITs 307 HHITs can be used extensively within the UTM architecture beyond UA 308 ID (and USS in UA ID registration and authentication). This includes 309 a GCS HHIT ID. It could use this if it is the source of Network 310 Remote ID for securing the transport and for secure C2 transport 311 [drip-secure-nrid-c2]. 313 Observers SHOULD have HHITs to facilitate UAS information retrieval 314 (e.g., for authorization to private UAS data). They could also use 315 their HHIT for establishing a HIP connection with the UA Pilot for 316 direct communications per authorization. Further, they can be used 317 by FINDER observers, [crowd-sourced-rid]. 319 6. DRIP Requirements addressed 321 This document provides solutions to GEN 1 - 3, ID 1 - 5, and REG 1 - 322 2. 324 7. ASTM Considerations 326 ASTM will need to make the following changes to the "UA ID" in the 327 Basic Message (Msg Type 0x0): 329 Type 4: 330 This document UA ID of Hierarchical HITs (see Section 3). 332 8. IANA Considerations 334 IANA will need to make the following changes to the "Host Identity 335 Protocol (HIP) Parameters" registries: 337 Host ID: 338 This document defines the new EdDSA Host ID (see Appendix D.1). 340 HIT Suite ID: 341 This document defines the new HIT Suite of EdDSA/cSHAKE (see 342 Appendix D.2). 344 HIT Suite ID: 345 This document defines two new HDA domain HIT Suites (see 346 Appendix B.2.1). 348 Because HHIT format is not compatible with [RFC7343], IANA is 349 requested to allocated a new 28-bit prefix out of the IANA IPv6 350 Special Purpose Address Block, namely 2001:0000::/23, as per 351 [RFC6890]. 353 9. Security Considerations 355 A 64 bit hash space presents a real risk of second pre-image attacks 356 Section 9.2. The HHIT Registry services effectively block attempts 357 to "take over" a HHIT. It does not stop a rogue attempting to 358 impersonate a known HHIT. This attack can be mitigated by the 359 receiver of the HHIT using DNS to find the HI for the HHIT. 361 Another mitigation of HHIT hijacking is if the HI owner (UA) supplies 362 an object containing the HHIT and signed by the HI private key of the 363 HDA such as Appendix E.1 as shown in Section 3.4. 365 The two risks with hierarchical HITs are the use of an invalid HID 366 and forced HIT collisions. The use of a DNS zone (e.g. 367 "hhit.arpa.") is a strong protection against invalid HIDs. Querying 368 an HDA's RVS for a HIT under the HDA protects against talking to 369 unregistered clients. The Registry service has direct protection 370 against forced or accidental HIT hash collisions. 372 Cryptographically Generated Addresses (CGAs) provide a unique 373 assurance of uniqueness. This is two-fold. The address (in this 374 case the UAS ID) is a hash of a public key and a Registry hierarchy 375 naming. Collision resistance (more important that it implied second- 376 preimage resistance) makes it statistically challenging to attacks. 377 A registration process (TBD) within the HDA provides a level of 378 assured uniqueness unattainable without mirroring this approach. 380 The second aspect of assured uniqueness is the digital signing 381 process of the HHIT by the HI private key and the further signing of 382 the HI public key by the Registry's key. This completes the 383 ownership process. The observer at this point does not know WHAT 384 owns the HHIT, but is assured, other than the risk of theft of the HI 385 private key, that this UAS ID is owned by something and is properly 386 registered. 388 9.1. Hierarchical HIT Trust 390 The HHIT UAS RID in the ASTM Basic Message (Msg Type 0x0, the actual 391 Remote ID message) does not provide any assertion of trust. The best 392 that might be done within this Basic Message is 4 bytes truncated 393 from a HI signing of the HHIT (the UA ID field is 20 bytes and a HHIT 394 is 16). This is not trustable. Minimally, it takes 84 bytes, 395 Appendix E, to prove ownership of a HHIT. 397 The ASTM Authentication Messages (Msg Type 0x2) as shown in 398 Section 3.4 can provide practical actual ownership proofs. These 399 claims include timestamps to defend against replay attacks. But in 400 themselves, they do not prove which UA actually sent the message. 401 They could have been sent by a dog running down the street with a 402 Broadcast Remote ID device strapped to its back. 404 Proof of UA transmission comes when the Authentication Message 405 includes proofs for the ASTM Location/Vector Message (Msg Type 0x1) 406 and the observer can see the UA or that information is validated by 407 ground multilateration [crowd-sourced-rid]. Only then does an 408 observer gain full trust in the HHIT Remote ID. 410 HHIT Remote IDs obtained via the Network Remote ID path provides a 411 different approach to trust. Here the UAS SHOULD be securely 412 communicating to the USS (see [drip-secure-nrid-c2]), thus asserting 413 HHIT RID trust. 415 9.2. Collision risks with Hierarchical HITs 417 The 64 bit hash size does have an increased risk of collisions over 418 the 96 bit hash size used for the other HIT Suites. There is a 0.01% 419 probability of a collision in a population of 66 million. The 420 probability goes up to 1% for a population of 663 million. See 421 Appendix F for the collision probability formula. 423 However, this risk of collision is within a single "Additional 424 Information" value, i.e. a RAA/HDA domain. The UAS/USS registration 425 process should include registering the HHIT and MUST reject a 426 collision, forcing the UAS to generate a new HI and thus HHIT and 427 reapplying to the registration process. 429 10. References 431 10.1. Normative References 433 [F3411-19] ASTM International, "Standard Specification for Remote ID 434 and Tracking", February 2020, 435 . 437 [NIST.SP.800-185] 438 Kelsey, J., Change, S., and R. Perlner, "SHA-3 derived 439 functions: cSHAKE, KMAC, TupleHash and ParallelHash", 440 National Institute of Standards and Technology report, 441 DOI 10.6028/nist.sp.800-185, December 2016, 442 . 444 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 445 Requirement Levels", BCP 14, RFC 2119, 446 DOI 10.17487/RFC2119, March 1997, 447 . 449 [RFC6890] Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman, 450 "Special-Purpose IP Address Registries", BCP 153, 451 RFC 6890, DOI 10.17487/RFC6890, April 2013, 452 . 454 [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital 455 Signature Algorithm (EdDSA)", RFC 8032, 456 DOI 10.17487/RFC8032, January 2017, 457 . 459 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 460 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 461 May 2017, . 463 10.2. Informative References 465 [corus] CORUS, "U-space Concept of Operations", September 2019, 466 . 468 [crowd-sourced-rid] 469 Moskowitz, R., Card, S., Wiethuechter, A., Zhao, S., and 470 H. Birkholz, "Crowd Sourced Remote ID", Work in Progress, 471 Internet-Draft, draft-moskowitz-drip-crowd-sourced-rid-04, 472 May 20, 2020, . 475 [CTA2063A] ANSI, "Small Unmanned Aerial Systems Serial Numbers", 476 September 2019. 478 [drip-requirements] 479 Card, S., Wiethuechter, A., Moskowitz, R., and A. Gurtov, 480 "Drone Remote Identification Protocol (DRIP) 481 Requirements", Work in Progress, Internet-Draft, draft- 482 ietf-drip-reqs-04, August 25, 2020, 483 . 485 [drip-secure-nrid-c2] 486 Moskowitz, R., Card, S., Wiethuechter, A., and A. Gurtov, 487 "Secure UAS Network RID and C2 Transport", Work in 488 Progress, Internet-Draft, draft-moskowitz-drip-secure- 489 nrid-c2-01, September 27, 2020, 490 . 493 [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and 494 R. Van Keer, "The Keccak Function", 495 . 497 [RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally 498 Unique IDentifier (UUID) URN Namespace", RFC 4122, 499 DOI 10.17487/RFC4122, July 2005, 500 . 502 [RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", 503 STD 69, RFC 5730, DOI 10.17487/RFC5730, August 2009, 504 . 506 [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay 507 Routable Cryptographic Hash Identifiers Version 2 508 (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September 509 2014, . 511 [RFC7401] Moskowitz, R., Ed., Heer, T., Jokela, P., and T. 512 Henderson, "Host Identity Protocol Version 2 (HIPv2)", 513 RFC 7401, DOI 10.17487/RFC7401, April 2015, 514 . 516 [RFC8004] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) 517 Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004, 518 October 2016, . 520 [RFC8005] Laganier, J., "Host Identity Protocol (HIP) Domain Name 521 System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005, 522 October 2016, . 524 Appendix A. EU U-Space RID Privacy Considerations 526 EU is defining a future of airspace management known as U-space 527 within the Single European Sky ATM Research (SESAR) undertaking. 528 Concept of Operation for EuRopean UTM Systems (CORUS) project 529 proposed low-level Concept of Operations [corus] for UAS in EU. It 530 introduces strong requirements for UAS privacy based on European GDPR 531 regulations. It suggests that UAs are identified with agnostic IDs, 532 with no information about UA type, the operators or flight 533 trajectory. Only authorized persons should be able to query the 534 details of the flight with a record of access. 536 Due to the high privacy requirements, a casual observer can only 537 query U-space if it is aware of a UA seen in a certain area. A 538 general observer can use a public U-space portal to query UA details 539 based on the UA transmitted "Remote identification" signal. Direct 540 remote identification (DRID) is based on a signal transmitted by the 541 UA directly. Network remote identification (NRID) is only possible 542 for UAs being tracked by U-Space and is based on the matching the 543 current UA position to one of the tracks. 545 The project lists "E-Identification" and "E-Registrations" services 546 as to be developed. These services can follow the privacy mechanism 547 proposed in this document. If an "agnostic ID" above refers to a 548 completely random identifier, it creates a problem with identity 549 resolution and detection of misuse. On the other hand, a classical 550 HIT has a flat structure which makes its resolution difficult. The 551 Hierarchical HITs provide a balanced solution by associating a 552 registry with the UA identifier. This is not likely to cause a major 553 conflict with U-space privacy requirements, as the registries are 554 typically few at a country level (e.g. civil personal, military, law 555 enforcement, or commercial). 557 Appendix B. The Hierarchical Host Identity Tag (HHIT) 559 The Hierarchical HIT (HHIT) is a small but important enhancement over 560 the flat HIT space. By adding two levels of hierarchical 561 administration control, the HHIT provides for device registration/ 562 ownership, thereby enhancing the trust framework for HITs. 564 HHITs represent the HI in only a 64 bit hash and uses the other 32 565 bits to create a hierarchical administration organization for HIT 566 domains. Hierarchical HIT construction is defined in Appendix C. 567 The input values for the Encoding rules are in Appendix C.1. 569 A HHIT is built from the following fields: 571 * IANA prefix (max 28 bit) 572 * 32 bit Hierarchy ID (HID) 574 * 4 (or 8) bit HIT Suite ID 576 * ORCHID hash (96 - prefix length - Suite ID length bits, e.g. 64) 577 See Appendix C 579 B.1. HHIT prefix 581 A unique IANA IPv6 prefix, no larger than 28 bit, for HHITs is 582 recommended. It clearly separates the flat-space HIT processing from 583 HHIT processing per Appendix C. 585 Without a unique prefix, the first 4 bits of the RRA would be 586 interpreted as the HIT Suite ID per HIPv2 [RFC7401]. 588 B.2. HHIT Suite IDs 590 The HIT Suite IDs specifies the HI and hash algorithms. Any HIT 591 Suite ID can be used for HHITs. The 8 bit format is supported (only 592 when the first 4 bits are ZERO), but this reduces the ORCHID hash 593 length. 595 B.2.1. 8 bit HIT Suite IDs 597 Support for 8 bit HIT Suite IDs is allowed in Sec 5.2.10, [RFC7401], 598 but not specified in how ORCHIDs are generated with these longer 599 OGAs. Appendix C provides the algorithmic flexiblity, allowing for 600 HDA custom HIT Suite IDs as follows: 602 HIT Suite Four-bit ID Eight-bit encoding 603 HDA Assigned 1 NA 0x0E 604 HDA Assigned 2 NA 0x0F 606 This feature may be used for large-scale experimenting with post 607 quantum computing hashes or similar domain specific needs. Note that 608 currently there is no support for domain specific HI algorithms. 610 B.3. The Hierarchy ID (HID) 612 The Hierarchy ID (HID) provides the structure to organize HITs into 613 administrative domains. HIDs are further divided into 2 fields: 615 * 16 bit Registered Assigning Authority (RAA) 617 * 16 bit Hierarchical HIT Domain Authority (HDA) 619 B.3.1. The Registered Assigning Authority (RAA) 621 An RAA is a business or organization that manages a registry of HDAs. 622 For example, the Federal Aviation Authority (FAA) could be an RAA. 624 The RAA is a 16 bit field (65,536 RAAs) assigned by a numbers 625 management organization, perhaps ICANN's IANA service. An RAA must 626 provide a set of services to allocate HDAs to organizations. It must 627 have a public policy on what is necessary to obtain an HDA. The RAA 628 need not maintain any HIP related services. It must maintain a DNS 629 zone minimally for discovering HID RVS servers. 631 As HHITs may be used in many different domains, RAA should be 632 allocated in blocks with consideration on the likely size of a 633 particular usage. Alternatively, different Prefixes can be used to 634 separate different domains of use of HHTs. 636 This DNS zone may be a PTR for its RAA. It may be a zone in a HHIT 637 specific DNS zone. Assume that the RAA is 100. The PTR record could 638 be constructed: 640 100.hhit.arpa IN PTR raa.bar.com. 642 B.3.2. The Hierarchical HIT Domain Authority (HDA) 644 An HDA may be an ISP or any third party that takes on the business to 645 provide RVS and other needed services for HIP enabled devices. 647 The HDA is an 16 bit field (65,536 HDAs per RAA) assigned by an RAA. 648 An HDA should maintain a set of RVS servers that its client HIP- 649 enabled customers use. How this is done and scales to the 650 potentially millions of customers is outside the scope of this 651 document. This service should be discoverable through the DNS zone 652 maintained by the HDA's RAA. 654 An RAA may assign a block of values to an individual organization. 655 This is completely up to the individual RAA's published policy for 656 delegation. 658 Appendix C. ORCHIDs for Hierarchical HITs 660 This section improves on ORCHIDv2 [RFC7343] with three enhancements: 662 * Optional Info field between the Prefix and OGA ID. 664 * Increased flexibility on the length of each component in the 665 ORCHID construction, provided the resulting ORCHID is 128 bits. 667 * Use of cSHAKE, NIST SP 800-185 [NIST.SP.800-185], for the hashing 668 function. 670 The [Keccak] based cSHAKE XOF hash function is a variable output 671 length hash function. As such it does not use the truncation 672 operation that other hashes need. The invocation of cSHAKE specifies 673 the desired number of bits in the hash output. Further, cSHAKE has a 674 parameter 'S' as a customization bit string. This parameter will be 675 used for including the ORCHID Context Identifier in a standard 676 fashion. 678 This ORCHID construction includes the fields in the ORCHID in the 679 hash to protect them against substitution attacks. It also provides 680 for inclusion of additional information, in particular the 681 hierarchical bits of the Hierarchical HIT, in the ORCHID generation. 682 This should be viewed as an addendum to ORCHIDv2 [RFC7343], as it can 683 produce ORCHIDv2 output. 685 C.1. Adding additional information to the ORCHID 687 ORCHIDv2 [RFC7343] is currently defined as consisting of three 688 components: 690 ORCHID := Prefix | OGA ID | Encode_96( Hash ) 692 where: 694 Prefix : A constant 28-bit-long bitstring value 695 (IANA IPv6 assigned). 697 OGA ID : A 4-bit long identifier for the Hash_function 698 in use within the specific usage context. When 699 used for HIT generation this is the HIT Suite ID. 701 Encode_96( ) : An extraction function in which output is obtained 702 by extracting the middle 96-bit-long bitstring 703 from the argument bitstring. 705 This addendum will be constructed as follows: 707 ORCHID := Prefix (p) | Info (n) | OGA ID (o) | Hash (m) 709 where: 711 Prefix (p) : An IANA IPv6 assigned prefix (max 28-bit-long). 713 Info (n) : n bits of information that define a use of the 714 ORCHID. n can be zero, that is no additional 715 information. 717 OGA ID (o) : A 4 or 8 bit long identifier for the Hash_function 718 in use within the specific usage context. When 719 used for HIT generation this is the HIT Suite ID. 721 Hash (m) : An extraction function in which output is m bits. 723 p + n + o + m = 128 bits 725 With a 28 bit IPv6 Prefix, the remaining 100 bits can be divided in 726 any manner between the additional information, OGA ID, and the hash 727 output. Care must be taken in determining the size of the hash 728 portion, taking into account risks like pre-image attacks. Thus 64 729 bits as used in Hierarchical HITs may be as small as is acceptable. 731 C.2. ORCHID Encoding 733 This addendum adds a different encoding process to that currently 734 used in ORCHIDv2. The input to the hash function explicitly includes 735 all the header content plus the Context ID. The header content 736 consists of the Prefix, the Additional Information, and OGA ID (HIT 737 Suite ID). Secondly, the length of the resulting hash is set by sum 738 of the length of the ORCHID header fields. For example, a 28 bit 739 Prefix with 32 bits for the HID and 4 bits for the OGA ID leaves 64 740 bits for the hash length. 742 To achieve the variable length output in a consistent manner, the 743 cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. 744 The the cSHAKE function call for this addendum is: 746 cSHAKE128(Input, L, "", Context ID) 748 Input := Prefix | Additional Information | OGA ID | HOST_ID 749 L := Length in bits of hash portion of ORCHID 750 Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 752 For full Suite ID support (those that use fixed length hashes like 753 SHA256), the following hashing can be used (Note: this does NOT 754 produce output Identical to ORCHIDv2 for Prefix of /28 and Additional 755 Information of ZERO length): 757 Hash[L](Context ID | Input) 759 Input := Prefix | Additional Information | OGA ID | HOST_ID 760 L := Length in bits of hash portion of ORCHID 761 Context ID := 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 763 Hash[L] := An extraction function in which output is obtained 764 by extracting the middle L-bit-long bitstring 765 from the argument bitstring. 767 Hierarchical HIT uses the same context as all other HIPv2 HIT Suites 768 as they are clearly separated by the distinct HIT Suite ID. 770 C.2.1. Encoding ORCHIDs for HITv2 772 This section is included to provide backwards compatibility for 773 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 775 For HITv2s, the Prefix MUST be 2001:20::/28. Info is length ZERO 776 (not included), and OGA ID is length 4. Thus the HI Hash is length 777 96. Further the Prefix and OGA ID are NOT included in the hash 778 calculation. Thus the following ORCHID calculations for fixed output 779 length hashes are used: 781 Hash[L](Context ID | Input) 783 Input := HOST_ID 784 L := 96 785 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 787 Hash[L] := An extraction function in which output is obtained 788 by extracting the middle L-bit-long bitstring 789 from the argument bitstring. 791 For variable output length hashes use: 793 Hash[L](Context ID | Input) 795 Input := HOST_ID 796 L := 96 797 Context ID := 0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA 799 Hash[L] := The L bit output from the hash function 801 Then the ORCHID is constructed as follows: 803 Prefix | OGA ID | Hash Output 805 C.3. ORCHID Decoding 807 With this addendum, the decoding of an ORCHID is determined by the 808 Prefix and OGA ID (HIT Suite ID). ORCHIDv2 [RFC7343] decoding is 809 selected when the Prefix is: 2001:20::/28. 811 For Hierarchical HITs, the decoding is determined by the presence of 812 the HHIT Prefix as specified in the HHIT document. 814 C.4. Decoding ORCHIDs for HITv2 816 This section is included to provide backwards compatibility for 817 ORCHIDv2 [RFC7343] as used for HITv2 [RFC7401]. 819 HITv2s are identified by a Prefix of 2001:20::/28. The next 4 bits 820 are the OGA ID. is length 4. The remaining 96 bits are the HI Hash. 822 Appendix D. Edward Digital Signature Algorithm for HITs 824 Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] are 825 specified here for use as Host Identities (HIs) per HIPv2 [RFC7401]. 826 Further the HIT_SUITE_LIST is specified as used in [RFC7343]. 828 See Appendix B.2 for use of the HIT Suite for this document. 830 D.1. HOST_ID 832 The HOST_ID parameter specifies the public key algorithm, and for 833 elliptic curves, a name. The HOST_ID parameter is defined in 834 Section 5.2.19 of [RFC7401]. 836 Algorithm 837 profiles Values 839 EdDSA 13 [RFC8032] (RECOMMENDED) 841 For hosts that implement EdDSA as the algorithm, the following ECC 842 curves are available: 844 Algorithm Curve Values 846 EdDSA RESERVED 0 847 EdDSA EdDSA25519 1 [RFC8032] 848 EdDSA EdDSA25519ph 2 [RFC8032] 849 EdDSA EdDSA448 3 [RFC8032] 850 EdDSA EdDSA448ph 4 [RFC8032] 852 D.2. HIT_SUITE_LIST 854 The HIT_SUITE_LIST parameter contains a list of the supported HIT 855 suite IDs of the Responder. Based on the HIT_SUITE_LIST, the 856 Initiator can determine which source HIT Suite IDs are supported by 857 the Responder. The HIT_SUITE_LIST parameter is defined in 858 Section 5.2.10 of [RFC7401]. 860 The following HIT Suite ID is defined, and the relationship between 861 the four-bit ID value used in the OGA ID field and the eight-bit 862 encoding within the HIT_SUITE_LIST ID field is clarified: 864 HIT Suite Four-bit ID Eight-bit encoding 865 RESERVED 0 0x00 866 EdDSA/cSHAKE128 5 0x50 (RECOMMENDED) 868 The following table provides more detail on the above HIT Suite 869 combinations. The input for each generation algorithm is the 870 encoding of the HI as defined in this Appendix. 872 The output of cSHAKE128 is variable per the needs of a specific 873 ORCHID construction. It is at most 96 bits long and is directly used 874 in the ORCHID (without truncation). 876 +=======+===========+=========+===========+====================+ 877 | Index | Hash | HMAC | Signature | Description | 878 | | function | | algorithm | | 879 | | | | family | | 880 +=======+===========+=========+===========+====================+ 881 | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | 882 | | | | | with cSHAKE128, | 883 | | | | | output is variable | 884 +-------+-----------+---------+-----------+--------------------+ 886 Table 1: HIT Suites 888 Appendix E. Example HHIT Self Claim 890 This section shows example uses of HHIT RID to prove trustworthiness 891 of the RID. These are examples only and other documents will provide 892 fully specified claims. Care has been taken in the example design to 893 minimize the risk of replay attacks. 895 Ownership of a HHIT can be proved in 84 bytes via the following HHIT 896 Self Claim: 898 * 4 byte Signing Timestamp 900 * 16 byte HHIT 902 * 64 byte Signature (EdDSA25519 signature) 904 The Timestamp MAY be the standard UNIX time at the time of signing. 905 A protocol specific timestamp may be used to avoid programming 906 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 907 offset. 909 To minimize the risk of replay, the UA SHOULD create a new Self 910 Claim, with a new timestamp, at least once a minute. The UA MAY 911 precompute these claims and transmit during the appropriate 1 minute 912 window. 1 minute is chosen as a balance between claim compute time 913 against risk. A shorter window of use lessens the risk of replay. 915 The signature is over the 20 byte Timestamp + HHIT. 917 The receiver of such a claim would need access to the underlying 918 public key (HI) to validate the signature. This may be obtained via 919 a DNS query using the HHIT. A larger (116 bytes) Self Claim could 920 include the EdDSA25519 HI. 922 E.1. HHIT Offline Self Claim 924 Ownership of a HHIT can be proved in 200 bytes without Internet 925 access and a small cache via the following HHIT Offline Self Claim: 927 * 16 byte UA HHIT 929 * 32 byte UA EdDSA25519 HI 931 * 4 byte HDA Signing Expiry Timestamp 933 * 16 byte HDA HHIT 935 * 64 byte HDA Signature (EdDSA25519 signature) 936 * 4 byte UA Signing Timestamp 938 * 64 byte UA Signature (EdDSA25519 signature) 940 The Timestamps MAY be the standard UNIX time at the time of signing. 941 A protocol specific timestamp may be used to avoid programming 942 complexities. For example, [F3411-19] uses a 00:00:00 01/01/2019 943 offset. 945 The HDA signature is over the 68 byte UA HHIT + UA HI + HDA Expiry 946 Timestamp + HDA HHIT. During the UA Registration process, the UA 947 would provide a Self Claim to the HDA. The HDA would construct its 948 claim of registry with an Expiry Timestamp, its own HHIT, and its 949 signature, returning a 132 byte HDA Registry Claim to the UA. The UA 950 would use this much the same way as its HHIT only in the Self Claim 951 above, creating a 200 byte Offline Self Claim. 953 The receiver of such a claim would need a cache of RAA ID, HDA ID, 954 HDA HHIT, and HDA HI (min 80 bytes per RAA/HDA). 956 Appendix F. Calculating Collision Probabilities 958 The accepted formula for calculating the probability of a collision 959 is: 961 p = 1 - e^{-k^2/(2n)} 963 P Collision Probability 964 n Total possible population 965 k Actual population 967 The following table provides the approximate population size for a 968 collision for a given total population. 970 Deployed Population 971 Total With Collision Risk of 972 Population .01% 1% 974 2^96 4T 42T 975 2^72 1B 10B 976 2^68 250M 2.5B 977 2^64 66M 663M 978 2^60 16M 160M 980 Acknowledgments 982 Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil 983 Aviation Administration. 985 Quynh Dang of NIST gave considerable guidance on using Keccak and the 986 NIST supporting documents. Joan Deamen of the Keccak team was 987 especially helpful in many aspects of using Keccak. 989 Authors' Addresses 991 Robert Moskowitz 992 HTT Consulting 993 Oak Park, MI 48237 994 United States of America 996 Email: rgm@labs.htt-consult.com 998 Stuart W. Card 999 AX Enterprize, LLC 1000 4947 Commercial Drive 1001 Yorkville, NY 13495 1002 United States of America 1004 Email: stu.card@axenterprize.com 1006 Adam Wiethuechter 1007 AX Enterprize, LLC 1008 4947 Commercial Drive 1009 Yorkville, NY 13495 1010 United States of America 1012 Email: adam.wiethuechter@axenterprize.com 1014 Andrei Gurtov 1015 Linköping University 1016 IDA 1017 SE-58183 Linköping 1018 Sweden 1020 Email: gurtov@acm.org