idnits 2.17.1 draft-moskowitz-drip-uas-rid-05.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 2 instances of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (13 August 2020) is 1323 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 227, 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 (~~), 4 warnings (==), 2 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 Intended status: Standards Track S. Card 5 Expires: 14 February 2021 A. Wiethuechter 6 AX Enterprize 7 A. Gurtov 8 Linköping University 9 13 August 2020 11 UAS Remote ID 12 draft-moskowitz-drip-uas-rid-05 14 Abstract 16 This document describes the use of Hierarchical Host Identity Tags 17 (HHITs) as a self-asserting and thereby trustable Identifier for use 18 as the UAS Remote ID. HHITs include explicit hierarchy to provide 19 Registrar discovery for 3rd-party ID attestation. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on 14 February 2021. 38 Copyright Notice 40 Copyright (c) 2020 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 45 license-info) in effect on the date of publication of this document. 46 Please review these documents carefully, as they describe your rights 47 and restrictions with respect to this document. Code Components 48 extracted from this document must include Simplified BSD License text 49 as described in Section 4.e of the Trust Legal Provisions and are 50 provided without warranty as described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Terms and Definitions . . . . . . . . . . . . . . . . . . . . 3 56 2.1. Requirements Terminology . . . . . . . . . . . . . . . . 3 57 2.2. Notation . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . 3 59 3. Hierarchical HITs as Remote ID . . . . . . . . . . . . . . . 5 60 3.1. Hierarchy in ORCHID Generation . . . . . . . . . . . . . 5 61 3.2. Hierarchical HIT Registry . . . . . . . . . . . . . . . . 5 62 3.3. Remote ID Authentication using HHITs . . . . . . . . . . 6 63 4. UAS ID HHIT in DNS . . . . . . . . . . . . . . . . . . . . . 6 64 5. Other UTM uses of HHITs . . . . . . . . . . . . . . . . . . . 7 65 6. DRIP Requirements addressed . . . . . . . . . . . . . . . . . 7 66 7. ASTM Considerations . . . . . . . . . . . . . . . . . . . . . 7 67 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 68 9. Security Considerations . . . . . . . . . . . . . . . . . . . 7 69 9.1. Hierarchical HIT Trust . . . . . . . . . . . . . . . . . 8 70 9.2. Collision risks with Hierarchical HITs . . . . . . . . . 9 71 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 72 10.1. Normative References . . . . . . . . . . . . . . . . . . 9 73 10.2. Informative References . . . . . . . . . . . . . . . . . 10 74 Appendix A. EU U-Space RID Privacy Considerations . . . . . . . 11 75 Appendix B. The Hierarchical Host Identity Tag (HHIT) . . . . . 12 76 B.1. HHIT prefix . . . . . . . . . . . . . . . . . . . . . . . 13 77 B.2. HHIT Suite IDs . . . . . . . . . . . . . . . . . . . . . 13 78 B.3. The Hierarchy ID (HID) . . . . . . . . . . . . . . . . . 13 79 B.3.1. The Registered Assigning Authority (RAA) . . . . . . 13 80 B.3.2. The Hierarchical HIT Domain Authority (HDA) . . . . . 13 81 Appendix C. ORCHIDs for Hierarchical HITs . . . . . . . . . . . 14 82 C.1. Adding additional information to the ORCHID . . . . . . . 14 83 C.2. ORCHID Decoding . . . . . . . . . . . . . . . . . . . . . 15 84 C.3. ORCHID Encoding . . . . . . . . . . . . . . . . . . . . . 15 85 Appendix D. Edward Digital Signature Algorithm for HITs . . . . 16 86 D.1. HOST_ID . . . . . . . . . . . . . . . . . . . . . . . . . 16 87 D.2. HIT_SUITE_LIST . . . . . . . . . . . . . . . . . . . . . 17 88 Appendix E. Calculating Collision Probabilities . . . . . . . . 17 89 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 18 90 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 92 1. Introduction 94 [drip-requirements] describes a UAS ID as a "unique (ID-4), non- 95 spoofable (ID-5), and identify a registry where the ID is listed (ID- 96 2)"; all within a 20 character Identifier (ID-1). 98 This document describes the use of Hierarchical HITs (HHITs) 99 (Appendix B) as self-asserting and thereby a trustable Identifier for 100 use as the UAS Remote ID. HHITs include explicit hierarchy to 101 provide Registrar discovery for 3rd-party ID attestation. 103 HITs are statistically unique through the cryptographic hash feature 104 of second-preimage resistance. The cryptographically-bound addition 105 of the Hierarchy and thus HHIT Registries [hhit-registries] provide 106 complete, global HHIT uniqueness. This is in contrast to general IDs 107 (e.g. a UUID or device serial number) as the subject in an X.509 108 certificate. 110 In a multi-CA PKI, a subject can occur in multiple CAs, possibly 111 fraudulently. CAs within the PKI would need to implement an approach 112 to enforce assurance of uniqueness. 114 Hierarchical HITs are valid, though non-routable, IPv6 addresses. As 115 such, they fit in many ways within various IETF technologies. 117 2. Terms and Definitions 119 2.1. Requirements Terminology 121 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 122 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 123 "OPTIONAL" in this document are to be interpreted as described in BCP 124 14 [RFC2119] [RFC8174] when, and only when, they appear in all 125 capitals, as shown here. 127 2.2. Notation 129 | Signifies concatenation of information - e.g., X | Y is the 130 concatenation of X and Y. 132 2.3. Definitions 134 See [drip-requirements] for common DRIP terms. 136 cSHAKE (The customizable SHAKE function): 137 Extends the SHAKE scheme to allow users to customize their use of 138 the function. 140 HI 141 Host Identity. The public key portion of an asymmetric keypair 142 used in HIP. 144 HIP 145 Host Identity Protocol. The origin of HI, HIT, and HHIT, required 146 for DRIP. Optional full use of HIP enables additional DRIP 147 functionality. 149 HDA (Hierarchical HIT Domain Authority): 150 The 16 bit field identifying the HIT Domain Authority under an 151 RAA. 153 HHIT 154 Hierarchical Host Identity Tag. A HIT with extra hierarchical 155 information not found in a standard HIT. 157 HID (Hierarchy ID): 158 The 32 bit field providing the HIT Hierarchy ID. 160 HIT 161 Host Identity Tag. A 128 bit handle on the HI. HITs are valid 162 IPv6 addresses. 164 Keccak (KECCAK Message Authentication Code): 165 The family of all sponge functions with a KECCAK-f permutation as 166 the underlying function and multi-rate padding as the padding 167 rule. 169 RAA (Registered Assigning Authority): 170 The 16 bit field identifying the Hierarchical HIT Assigning 171 Authority. 173 RVS (Rendezvous Server): 174 The HIP Rendezvous Server for enabling mobility, as defined in 175 [RFC8004]. 177 SHAKE (Secure Hash Algorithm KECCAK): 178 A secure hash that allows for an arbitrary output length. 180 XOF (eXtendable-Output Function): 181 A function on bit strings (also called messages) in which the 182 output can be extended to any desired length. 184 3. Hierarchical HITs as Remote ID 186 Hierarchical HITs are a refinement on the Host Identity Tag (HIT) of 187 HIPv2 [RFC7401]. HHITs require a new ORCHID mechanism as described 188 in Appendix C. HHITs for UAS ID also use the new EdDSA/SHAKE128 HIT 189 suite defined in Appendix D (requirements GEN-2). This hierarchy, 190 cryptographically embedded within the HHIT, provides the information 191 for finding the UA's HHIT registry (ID-3). 193 The current ASTM [F3411-19] supports three types of UAS IDs, namely 194 the [CTA2063A] serial number, CAA registration ID, and UTM-provided 195 UUID session ID. For HHITs to be used effectively as UAS IDs, 196 F3411-19 SHOULD add HHIT as the fourth UAS ID type. 198 3.1. Hierarchy in ORCHID Generation 200 ORCHIDS, as defined in [RFC7343], do not cryptographically bind the 201 IPv6 prefix nor the Orchid Generation Algorithm (OGA) ID to the hash 202 of the HI. The justification then was attacks against these fields 203 are DoS attacks against protocols using them. 205 HHITs, as defined in Appendix C, cryptographically bind all content 206 in the ORCHID though the hashing function. Thus a recipient of a 207 HHIT that has the underlying HI can directly act on all content in 208 the HHIT. This is especially important to using the hierarchy to 209 find the HHIT Registry. 211 3.2. Hierarchical HIT Registry 213 HHITs are registered to Hierarchical HIT Domain Authorities (HDAs) as 214 described in [hhit-registries]. This registration process ensures 215 UAS ID global uniqueness (ID-4). It also provides the mechanism to 216 create UAS Public/Private data associated with the HHIT UAS ID (REG-1 217 and REG-2). 219 The 2 levels of hierarchy within the HHIT allows for CAAs to have 220 their own Registered Assigning Authority (RAA) for their National Air 221 Space (NAS). Within the RAA, the CAAs can delegate HDAs as needed. 222 There may be other RAAs allowed to operate within a given NAS; this 223 is a policy decision by the CAA. 225 3.3. Remote ID Authentication using HHITs 227 The EdDSA25519 Host Identity (HI) [Appendix D] underlying the HHIT is 228 used for the Message Wrapper, Sec 4.2 [drip-auth] (requirements GEN- 229 2). It and the HDA's HI/HHIT are used for the Auth Certificate, sec 230 5.1 [drip-auth] (requirements GEN-3). These messages also establish 231 that the UA owns the HHIT and that no other UA can assert ownership 232 of the HHIT (GEN-1). 234 The number of HDAs authorized to register UAs within an NAS 235 determines the size of the HDA credential cache a device processing 236 the Offline Authentication. This cache contains the HDA's HI/HHIT 237 and HDA meta-data; it could be very small. 239 4. UAS ID HHIT in DNS 241 There are 2 approaches for storing and retrieving the HHIT from DNS. 242 These are: 244 * As FQDNs in the .aero TLD. 246 * Reverse DNS lookups as IPv6 addresses per [RFC8005]. 248 The HHIT can be used to construct an FQDN that points to the USS that 249 has the Public/Private information for the UA (REG-1 and REG-2). For 250 example the USS for the HHIT could be found via the following. 251 Assume that the RAA is 100 and the HDA is 50. The PTR record is 252 constructed as: 254 100.50.hhit.uas.areo IN PTR foo.uss.areo. 256 The individual HHITs are potentially too numerous (e.g. 63M) and 257 dynamic to actually store in a signed, DNS zone. Rather the USS 258 would provide the HHIT detail response. 260 The HHIT reverse lookup can be a standard IPv6 reverse look up, or it 261 can leverage off the HHIT structure. Assume that the RAA is 10 and 262 the HDA is 20 and the HHIT is: 264 2001:14:28:14:a3ad:1952:ad0:a69e 266 An HHIT reverse lookup would be to is: 268 a69e.ad0.1952.a3ad14.28.14.2001.20.10.hhit.arpa. 270 5. Other UTM uses of HHITs 272 HHITs can be used extensively within the UTM architecture beyond UA 273 ID (and USS in UA ID registration and authentication). This includes 274 a GCS HHIT ID. It could use this if it is the source of Network 275 Remote ID for securing the transport and for secure C2 transport 276 [drip-secure-nrid-c2]. 278 Observers SHOULD have HHITs to facilitate UAS information retrieval 279 (e.g., for authorization to private UAS data). They could also use 280 their HHIT for establishing a HIP connection with the UA Pilot for 281 direct communications per authorization. Further, they can be used 282 by FINDER observers, [crowd-sourced-rid]. 284 6. DRIP Requirements addressed 286 This document provides solutions to GEN 1 - 3, ID 1 - 5, and REG 1 - 287 2. 289 7. ASTM Considerations 291 ASTM will need to make the following changes to the "UA ID" in the 292 Basic Message: 294 Type 4: 295 This document UA ID of Hierarchical HITs (see Section 3). 297 8. IANA Considerations 299 IANA will need to make the following changes to the "Host Identity 300 Protocol (HIP) Parameters" registries: 302 Host ID: 303 This document defines the new EdDSA Host ID (see Appendix D.1). 305 HIT Suite ID: 306 This document defines the new HIT Suite of EdDSA/cSHAKE (see 307 Appendix D.2). 309 9. Security Considerations 311 A 64 bit hash space presents a real risk of second pre-image attacks 312 Section 9.2. The HHIT Registry services effectively block attempts 313 to "take over" a HHIT. It does not stop a rogue attempting to 314 impersonate a known HHIT. This attack can be mitigated by the 315 receiver of the HHIT using DNS to find the HI for the HHIT. 317 Another mitigation of HHIT hijacking is if the HI owner supplies an 318 object containing the HHIT and signed by the HI private key of the 319 HDA. 321 The two risks with hierarchical HITs are the use of an invalid HID 322 and forced HIT collisions. The use of a DNS zone (e.g. 323 "hhit.arpa.") is a strong protection against invalid HIDs. Querying 324 an HDA's RVS for a HIT under the HDA protects against talking to 325 unregistered clients. The Registry service has direct protection 326 against forced or accidental HIT hash collisions. 328 Cryptographically Generated Addresses (CGAs) provide a unique 329 assurance of uniqueness. This is two-fold. The address (in this 330 case the UAS ID) is a hash of a public key and a Registry hierarchy 331 naming. Collision resistance (more important that it implied second- 332 preimage resistance) makes it statistically challenging to attacks. 333 A registration process as in HHIT Registries [hhit-registries] 334 provides a level of assured uniqueness unattainable without mirroring 335 this approach. 337 The second aspect of assured uniqueness is the digital signing 338 process of the HHIT by the HI private key and the further signing of 339 the HI public key by the Registry's key. This completes the 340 ownership process. The observer at this point does not know WHAT 341 owns the HHIT, but is assured, other than the risk of theft of the HI 342 private key, that this UAS ID is owned by something and is properly 343 registered. 345 9.1. Hierarchical HIT Trust 347 The HHIT UAS RID in the ASTM Basic Message (the actual Remote ID 348 message) does not provide any assertion of trust. The best that 349 might be done is 4 bytes truncated from a HI signing of the HHIT (the 350 UA ID field is 20 bytes and a HHIT is 16). It is in the ASTM 351 Authentication Messages as defined in [drip-auth] that provide all of 352 the actual ownership proofs. These claims include timestamps to 353 defend against replay attacks. But in themselves, they do not prove 354 which UA actually sent the message. They could have been sent by a 355 dog running down the street with a Broadcast Remote ID device 356 strapped to its back. 358 Proof of UA transmission comes when the Authentication Message 359 includes proofs for the Location/Vector Message and the observer can 360 see the UA or that information is validated by ground multilateration 361 [crowd-sourced-rid]. Only then does an observer gain full trust in 362 the HHIT Remote ID. 364 HHIT Remote IDs obtained via the Network Remote ID path provides a 365 different approach to trust. Here the UAS SHOULD be securely 366 communicating to the USS (see [drip-secure-nrid-c2]), thus asserting 367 HHIT RID trust. 369 9.2. Collision risks with Hierarchical HITs 371 The 64 bit hash size does have an increased risk of collisions over 372 the 96 bit hash size used for the other HIT Suites. There is a 0.01% 373 probability of a collision in a population of 66 million. The 374 probability goes up to 1% for a population of 663 million. See 375 Appendix E for the collision probability formula. 377 However, this risk of collision is within a single "Additional 378 Information" value. Some registration process should be used to 379 reject a collision, forcing the client to generate a new HI and thus 380 HIT and reapplying to the registration process. 382 10. References 384 10.1. Normative References 386 [F3411-19] ASTM International, "Standard Specification for Remote ID 387 and Tracking", February 2020, 388 . 390 [hhit-registries] 391 Moskowitz, R., Card, S., and A. Wiethuechter, 392 "Hierarchical HIT Registries", Work in Progress, Internet- 393 Draft, draft-moskowitz-hip-hhit-registries-02, 9 March 394 2020, . 397 [NIST.FIPS.202] 398 Dworkin, M., "SHA-3 Standard: Permutation-Based Hash and 399 Extendable-Output Functions", National Institute of 400 Standards and Technology report, 401 DOI 10.6028/nist.fips.202, July 2015, 402 . 404 [NIST.SP.800-185] 405 Kelsey, J., Change, S., and R. Perlner, "SHA-3 derived 406 functions: cSHAKE, KMAC, TupleHash and ParallelHash", 407 National Institute of Standards and Technology report, 408 DOI 10.6028/nist.sp.800-185, December 2016, 409 . 411 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 412 Requirement Levels", BCP 14, RFC 2119, 413 DOI 10.17487/RFC2119, March 1997, 414 . 416 [RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital 417 Signature Algorithm (EdDSA)", RFC 8032, 418 DOI 10.17487/RFC8032, January 2017, 419 . 421 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 422 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 423 May 2017, . 425 10.2. Informative References 427 [corus] CORUS, "U-space Concept of Operations", September 2019, 428 . 430 [crowd-sourced-rid] 431 Moskowitz, R., Card, S., Wiethuechter, A., Zhao, S., and 432 H. Birkholz, "Crowd Sourced Remote ID", Work in Progress, 433 Internet-Draft, draft-moskowitz-drip-crowd-sourced-rid-04, 434 20 May 2020, . 437 [CTA2063A] ANSI, "Small Unmanned Aerial Systems Serial Numbers", 438 September 2019. 440 [drip-auth] 441 Wiethuechter, A., Card, S., and R. Moskowitz, "DRIP 442 Authentication Formats", Work in Progress, Internet-Draft, 443 draft-wiethuechter-drip-auth-03, 27 July 2020, 444 . 447 [drip-requirements] 448 Card, S., Wiethuechter, A., Moskowitz, R., and A. Gurtov, 449 "Drone Remote Identification Protocol (DRIP) 450 Requirements", Work in Progress, Internet-Draft, draft- 451 ietf-drip-reqs-03, 13 July 2020, 452 . 454 [drip-secure-nrid-c2] 455 Moskowitz, R., Card, S., Wiethuechter, A., and A. Gurtov, 456 "Secure UAS Network RID and C2 Transport", Work in 457 Progress, Internet-Draft, draft-moskowitz-drip-secure- 458 nrid-c2-00, 6 April 2020, . 461 [Keccak] Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and 462 R. Van Keer, "The Keccak Function", 463 . 465 [RFC7343] Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay 466 Routable Cryptographic Hash Identifiers Version 2 467 (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September 468 2014, . 470 [RFC7401] Moskowitz, R., Ed., Heer, T., Jokela, P., and T. 471 Henderson, "Host Identity Protocol Version 2 (HIPv2)", 472 RFC 7401, DOI 10.17487/RFC7401, April 2015, 473 . 475 [RFC8004] Laganier, J. and L. Eggert, "Host Identity Protocol (HIP) 476 Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004, 477 October 2016, . 479 [RFC8005] Laganier, J., "Host Identity Protocol (HIP) Domain Name 480 System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005, 481 October 2016, . 483 Appendix A. EU U-Space RID Privacy Considerations 485 EU is defining a future of airspace management known as U-space 486 within the Single European Sky ATM Research (SESAR) undertaking. 487 Concept of Operation for EuRopean UTM Systems (CORUS) project 488 proposed low-level Concept of Operations [corus] for UAS in EU. It 489 introduces strong requirements for UAS privacy based on European GDPR 490 regulations. It suggests that UAs are identified with agnostic IDs, 491 with no information about UA type, the operators or flight 492 trajectory. Only authorized persons should be able to query the 493 details of the flight with a record of access. 495 Due to the high privacy requirements, a casual observer can only 496 query U-space if it is aware of a UA seen in a certain area. A 497 general observer can use a public U-space portal to query UA details 498 based on the UA transmitted "Remote identification" signal. Direct 499 remote identification (DRID) is based on a signal transmitted by the 500 UA directly. Network remote identification (NRID) is only possible 501 for UAs being tracked by U-Space and is based on the matching the 502 current UA position to one of the tracks. 504 The project lists "E-Identification" and "E-Registrations" services 505 as to be developed. These services can follow the privacy mechanism 506 proposed in this document. If an "agnostic ID" above refers to a 507 completely random identifier, it creates a problem with identity 508 resolution and detection of misuse. On the other hand, a classical 509 HIT has a flat structure which makes its resolution difficult. The 510 Hierarchical HITs provide a balanced solution by associating a 511 registry with the UA identifier. This is not likely to cause a major 512 conflict with U-space privacy requirements, as the registries are 513 typically few at a country level (e.g. civil personal, military, law 514 enforcement, or commercial). 516 Appendix B. The Hierarchical Host Identity Tag (HHIT) 518 The Hierarchical HIT (HHIT) is a small but important enhancement over 519 the flat HIT space. By adding two levels of hierarchical 520 administration control, the HHIT provides for device registration/ 521 ownership, thereby enhancing the trust framework for HITs. 523 HHITs represent the HI in only a 64 bit hash and uses the other 32 524 bits to create a hierarchical administration organization for HIT 525 domains. Hierarchical HITs are "Using cSHAKE in ORCHIDs" 526 (Appendix C). The input values for the Encoding rules are in 527 Appendix C.1. 529 A HHIT is built from the following fields: 531 * 28 bit IANA prefix 533 * 4 bit HIT Suite ID 535 * 32 bit Hierarchy ID (HID) 537 * 64 bit ORCHID hash 539 B.1. HHIT prefix 541 A unique 28 bit prefix for HHITs is recommended. It clearly 542 separates the flat-space HIT processing from HHIT processing per 543 "Using cSHAKE in ORCHIDs" (Appendix C). 545 B.2. HHIT Suite IDs 547 The HIT Suite IDs specifies the HI and hash algorithms. Any HIT 548 Suite ID can be used for HHITs, provided that the prefix for HHITs is 549 different from flat space HITs. Without a unique prefix, 550 Appendix B.1, additional HIT Suite IDs would be needed for HHITs. 551 This would risk exhausting the limited Suite ID space of only 15 IDs. 553 B.3. The Hierarchy ID (HID) 555 The Hierarchy ID (HID) provides the structure to organize HITs into 556 administrative domains. HIDs are further divided into 2 fields: 558 * 16 bit Registered Assigning Authority (RAA) 560 * 16 bit Hierarchical HIT Domain Authority (HDA) 562 B.3.1. The Registered Assigning Authority (RAA) 564 An RAA is a business or organization that manages a registry of HDAs. 565 For example, the Federal Aviation Authority (FAA) could be an RAA. 567 The RAA is a 16 bit field (65,536 RAAs) assigned by a numbers 568 management organization, perhaps ICANN's IANA service. An RAA must 569 provide a set of services to allocate HDAs to organizations. It must 570 have a public policy on what is necessary to obtain an HDA. The RAA 571 need not maintain any HIP related services. It must maintain a DNS 572 zone minimally for discovering HID RVS servers. 574 This DNS zone may be a PTR for its RAA. It may be a zone in a HHIT 575 specific DNS zone. Assume that the RAA is 100. The PTR record could 576 be constructed: 578 100.hhit.arpa IN PTR raa.bar.com. 580 B.3.2. The Hierarchical HIT Domain Authority (HDA) 582 An HDA may be an ISP or any third party that takes on the business to 583 provide RVS and other needed services for HIP enabled devices. 585 The HDA is an 16 bit field (65,536 HDAs per RAA) assigned by an RAA. 586 An HDA should maintain a set of RVS servers that its client HIP- 587 enabled customers use. How this is done and scales to the 588 potentially millions of customers is outside the scope of this 589 document. This service should be discoverable through the DNS zone 590 maintained by the HDA's RAA. 592 An RAA may assign a block of values to an individual organization. 593 This is completely up to the individual RAA's published policy for 594 delegation. 596 Appendix C. ORCHIDs for Hierarchical HITs 598 This section adds the [Keccak] based cSHAKE XOF hash function from 599 NIST SP 800-185 [NIST.SP.800-185] to ORCHIDv2 [RFC7343]. cSHAKE is a 600 variable output length hash function. As such it does not use the 601 truncation operation that other hashes need. The invocation of 602 cSHAKE specifies the desired number of bits in the hash output. 604 This ORCHID construction includes the Prefix in the hash to protect 605 against Prefix subsitution attacks. It also provides for inclusion 606 of additional information, in particular the hierarchical bits of the 607 Hierarchical HIT, in the ORCHID generation. It should be viewed as 608 an addendum to ORCHIDv2 [RFC7343]. 610 cSHAKE is used, rather than SHAKE from NIST FIPS 202 [NIST.FIPS.202], 611 as cSHAKE has a parameter 'S' as a customization bit string. This 612 parameter will be used for including the ORCHID Context Identifier in 613 a standard fashion. 615 C.1. Adding additional information to the ORCHID 617 ORCHIDv2 [RFC7343] is currently defined as consisting of three 618 components: 620 ORCHID := Prefix | OGA ID | Encode_96( Hash ) 622 where: 624 Prefix : A constant 28-bit-long bitstring value 625 (IANA IPv6 assigned). 627 OGA ID : A 4-bit long identifier for the Hash_function 628 in use within the specific usage context. 630 Encode_96( ) : An extraction function in which output is obtained 631 by extracting the middle 96-bit-long bitstring 632 from the argument bitstring. 634 This addendum will be constructed as follows: 636 ORCHID := Prefix | OGA ID | Info (n) | Hash (m) 638 where: 640 Prefix (p) : A (max 28-bit-long) bitstring value 641 (IANA IPv6 assigned). 643 OGA ID : A 4-bit long identifier for the Hash_function 644 in use within the specific usage context. 646 Info (n) : n bits of information that define a use of the 647 ORCHID. n can be zero, that is no additional 648 information. 650 Hash (m) : An extraction function in which output is m bits. 652 p + n + m = 124 bits 654 With a 28 bit IPv6 Prefix, the 96 bits currently allocated to the 655 Encode_96 function can be divided in any manner between the 656 additional information and the hash output. Care must be taken in 657 determining the size of the hash portion, taking into account risks 658 like pre-image attacks. Thus 64 bits as used in Hierarchical HITs 659 may be as small as is acceptable. 661 C.2. ORCHID Decoding 663 With this addendum, the decoding of an ORCHID is determined by the 664 Prefix and OGA ID. ORCHIDv2 [RFC7343] decoding is selected when the 665 Prefix is: 2001:20::/28. 667 For Heirarchical HITs, the decoding is determined by the presence of 668 the HHIT Prefix as specified in the HHIT document. 670 C.3. ORCHID Encoding 672 ORCHIDv2 has a number of inputs including a Context ID, some header 673 bits, the hash algorithm, and the input bitstream, normally just the 674 public key. The output is a 96 bit value. 676 This addendum adds a different encoding process to that currently 677 used. The input to the hash function explicitly includes all the 678 fixed header content plus the Context ID. The fixed header content 679 consists of the Prefix, OGA ID, and the Additional Information. 680 Secondly, the length of the resulting hash is set by the rules set by 681 the Prefix/OGA ID. In the case of Hierarchical HITs, this is 64 682 bits. 684 To achieve the variable length output in a consistent manner, the 685 cSHAKE hash is used. For this purpose, cSHAKE128 is appropriate. 686 The the cSHAKE function call for this addendum is: 688 cSHAKE128(Input, L, "", Context ID) 690 Input := Prefix | OGA ID | Additional Information | HOST_ID 691 L := Length in bits of hash portion of ORCHID 693 Hierarchical HIT uses the same context as all other HIPv2 HIT Suites 694 as they are clearly separated by the distinct HIT Suite ID. 696 Appendix D. Edward Digital Signature Algorithm for HITs 698 Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] are 699 specified here for use as Host Identities (HIs). 701 D.1. HOST_ID 703 The HOST_ID parameter specifies the public key algorithm, and for 704 elliptic curves, a name. The HOST_ID parameter is defined in 705 Section 5.2.19 of [RFC7401]. 707 Algorithm 708 profiles Values 710 EdDSA 13 [RFC8032] (RECOMMENDED) 712 For hosts that implement EdDSA as the algorithm, the following ECC 713 curves are available: 715 Algorithm Curve Values 717 EdDSA RESERVED 0 718 EdDSA EdDSA25519 1 [RFC8032] 719 EdDSA EdDSA25519ph 2 [RFC8032] 720 EdDSA EdDSA448 3 [RFC8032] 721 EdDSA EdDSA448ph 4 [RFC8032] 723 D.2. HIT_SUITE_LIST 725 The HIT_SUITE_LIST parameter contains a list of the supported HIT 726 suite IDs of the Responder. Based on the HIT_SUITE_LIST, the 727 Initiator can determine which source HIT Suite IDs are supported by 728 the Responder. The HIT_SUITE_LIST parameter is defined in 729 Section 5.2.10 of [RFC7401]. 731 The following HIT Suite ID is defined, and the relationship between 732 the four-bit ID value used in the OGA ID field and the eight-bit 733 encoding within the HIT_SUITE_LIST ID field is clarified: 735 HIT Suite Four-bit ID Eight-bit encoding 736 RESERVED 0 0x00 737 EdDSA/cSHAKE128 5 0x50 (RECOMMENDED) 739 The following table provides more detail on the above HIT Suite 740 combinations. The input for each generation algorithm is the 741 encoding of the HI as defined in this Appendix. The output is 96 742 bits long and is directly used in the ORCHID. 744 +=======+===========+=========+===========+===================+ 745 | Index | Hash | HMAC | Signature | Description | 746 | | function | | algorithm | | 747 | | | | family | | 748 +=======+===========+=========+===========+===================+ 749 | 5 | cSHAKE128 | KMAC128 | EdDSA | EdDSA HI hashed | 750 | | | | | with cSHAKE128, | 751 | | | | | output is 96 bits | 752 +-------+-----------+---------+-----------+-------------------+ 754 Table 1: HIT Suites 756 Appendix E. Calculating Collision Probabilities 758 The accepted formula for calculating the probability of a collision 759 is: 761 p = 1 - e^{-k^2/(2n)} 763 P Collision Probability 764 n Total possible population 765 k Actual population 767 Acknowledgments 769 Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil 770 Aviation Administration. 772 Quynh Dang of NIST gave considerable guidance on using Keccak and the 773 NIST supporting documents. Joan Deamen of the Keccak team was 774 especially helpful in many aspects of using Keccak. 776 Authors' Addresses 778 Robert Moskowitz 779 HTT Consulting 780 Oak Park, MI 48237 781 United States of America 783 Email: rgm@labs.htt-consult.com 785 Stuart W. Card 786 AX Enterprize 787 4947 Commercial Drive 788 Yorkville, NY 13495 789 United States of America 791 Email: stu.card@axenterprize.com 793 Adam Wiethuechter 794 AX Enterprize 795 4947 Commercial Drive 796 Yorkville, NY 13495 797 United States of America 799 Email: adam.wiethuechter@axenterprize.com 801 Andrei Gurtov 802 Linköping University 803 IDA 804 SE-58183 Linköping 805 Sweden 807 Email: gurtov@acm.org