﻿<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true" docName="draft-ietf-drip-rid-16"
	category="std" ipr="trust200902" obsoletes="" updates="7401, 7343" submissionType="IETF"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front> <title abbrev="DRIP Entity Tag (DET)">DRIP Entity Tag (DET) for Unmanned Aircraft System Remote Identification (UAS RID)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-drip-rid-16"/>
	<author fullname="Robert Moskowitz" initials="R" surname="Moskowitz">
    <organization>HTT Consulting</organization>
    <address>
      <postal> 
	    <street></street>
        <city>Oak Park</city>
        <region>MI</region>
        <code>48237</code>
        <country>USA</country>
      </postal>
      <email>rgm@labs.htt-consult.com</email>
	</address>
	</author>
	<author fullname="Stuart W. Card" initials="S." surname="Card">
	<organization>AX Enterprize, LLC</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>stu.card@axenterprize.com</email>
	</address>
	</author>
	<author fullname="Adam Wiethuechter" initials="A." surname="Wiethuechter">
	<organization>AX Enterprize, LLC</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>adam.wiethuechter@axenterprize.com</email>
	</address>
	</author>
	<author fullname="Andrei Gurtov" initials="A." surname="Gurtov">
	<organization>Linköping University</organization>
	<address>
	  <postal>
		<street>IDA</street>
		<city>Linköping</city>
		<code>58183</code>
		<country>Sweden</country>
	  </postal>
	  <email>gurtov@acm.org</email>
	</address>
	</author>
<date year="2022" />
   <area>Internet</area>
   <workgroup>DRIP</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>RID</keyword>
<abstract>
<t>
	This document describes the use of Hierarchical Host Identity Tags 
	(HHITs), updating both <xref target="RFC7401" /> and <xref 
	target="RFC7343" />, as self-asserting IPv6 addresses and thereby a 
	trustable identifier for use as the Unmanned Aircraft System Remote 
	Identification and tracking (UAS RID).  Within the context of RID, 
	HHITs will be called DRIP Entity Tags (DET).  HHITs self-attest to 
	the included explicit hierarchy that provides Registrar discovery 
	for 3rd-party identifier attestation.
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<t> 
	<xref target="RFC9153" format="default">DRIP Requirements</xref> 
	describes an Unmanned Aircraft System Remote Identification and 
	tracking (UAS ID) as unique (ID-4), non-spoofable (ID-5), and 
	identify a registry where the ID is listed (ID-2); all within a 20 
	character identifier (ID-1).
</t>
<t>
	This document describes the use of <xref target="HHIT" 
	format="default">Hierarchical Host Identity Tags (HHITs)</xref> as 
	self-asserting IPv6 addresses and thereby a trustable identifier 
	for use as the UAS Remote ID. HHITs include explicit hierarchy to 
	enable DNS HHIT queries (Host ID for authentication, e.g., <xref 
	target="I-D.ietf-drip-auth" format="default"/>) and for Extensible 
	Provisioning Protocol (EPP) Registrar discovery <xref 
	target="RFC7484" /> for 3rd-party identification attestation (e.g., 
	<xref target="I-D.ietf-drip-auth" format="default"/>).
</t>
<t>
	This addition of hierarchy to HITs requires updates to both <xref 
	target="RFC7401" /> and <xref target="RFC7343" />.
</t>
<t>
	HHITs as used within the context of UAS will be labeled as DRIP 
	Entity Tags (DET).  Throughout this document HHIT and DET will be 
	used appropriately.  HHIT will be used when covering the 
	technology, and DET for their context within UAS RID.
</t>
<t> 
	HHITs are statistically unique through the cryptographic hash 
	feature of second-preimage resistance.  The cryptographically-bound 
	addition of the hierarchy and a HHIT registration process <xref 
	target="I-D.wiethuechter-drip-registries" format="default"/> 
	provide complete, global HHIT uniqueness. This contrasts with using 
	general identifiers (e.g., a Universally Unique IDentifiers <xref 
	target="RFC4122" format="default">(UUID)</xref> or device serial 
	numbers) as the subject in an <xref target="RFC5280" 
	format="default">X.509</xref> certificate.
</t>
<t>
	In a multi Certificate Authority (multi-CA) PKI alternative to 
	HHITs, a Remote ID as the Subject (<xref target="RFC5280" 
	section="4.1.2.6" />) can occur in multiple CAs, possibly 
	fraudulently.  CAs within the PKI would need to implement an 
	approach to enforce assurance of the uniqueness achieved with 
	HHITs.
</t>
<t> 
	Hierarchical HITs provide self-attestation of the HHIT registry.  A 
	HHIT can only be in a single registry within a registry system 
	(e.g., EPP and DNS).
</t>
<t> 
	Hierarchical HITs are valid, though non-routable, IPv6 addresses 
	<xref target="RFC8200" />. As such, they fit in many ways within 
	various IETF technologies.
</t>
</section>
<section anchor="terms" numbered="true" toc="default"> <name>Terms and Definitions</name>
<section numbered="true" toc="default"> <name>Requirements Terminology</name>
	<t>
		The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
		NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 
		"MAY", and "OPTIONAL" in this document are to be interpreted as 
		described in BCP 14 <xref target="RFC2119" /> <xref 
		target="RFC8174" /> when, and only when, they appear in all 
		capitals, as shown here.
	</t>
</section>
<section anchor="notation" numbered="true" toc="default"> <name>Notations</name>
	<dl newline="false" spacing="normal">
		<dt>| </dt>
		<dd>
			Signifies concatenation of information - e.g., X | Y is the 
			concatenation of X and Y.
		</dd>
	</dl>
</section>
<section numbered="true" toc="default"> <name>Definitions</name>
<t>
	This document uses the terms defined in <xref target="RFC9153" 
	format="default">DRIP Requirements</xref>.  The following new terms 
	are used in the document:
</t>
	  <dl newline="true" spacing="normal">
		<dt>cSHAKE (The customizable SHAKE function <xref 
			target="DOI_10.6028_NIST.SP.800-185" format="default"/>):</dt>
		<dd>
			Extends the SHAKE <xref target="DOI_10.6028_NIST.FIPS.202" 
			format="default"/> scheme to allow users to customize their 
			use of the SHAKE function.
		</dd>
		<dt>HDA (Hierarchical HIT Domain Authority):</dt>
		<dd>
			The 14-bit field that identifies the HHIT Domain Authority
			under a Registered Assigning Authority (RAA).
		</dd>
		<dt>HHIT</dt>
		<dd>
			Hierarchical Host Identity Tag.  A HIT with extra 
			hierarchical information not found in a standard HIT <xref 
			target="RFC7401" format="default"/>.
		</dd>
		<dt>HI</dt>
		<dd>
			Host Identity.  The public key portion of an asymmetric key 
			pair as defined in <xref target="RFC9063" 
			format="default"/>.
		</dd>
		<dt>HID (Hierarchy ID):</dt>
		<dd>
			The 32-bit field providing the HIT Hierarchy ID.
		</dd>
		<dt>HIP (Host Identity Protocol)</dt>
		<dd>
			The origin of HI, HIT, and HHIT, required for DRIP.
		</dd>
		<dt>HIT</dt>
		<dd>
			Host Identity Tag.  A 128-bit handle on the HI.  HITs are 
			valid IPv6 addresses.
		</dd>
		<dt>Keccak (KECCAK Message Authentication Code):</dt>
		<dd>
			The family of all sponge functions with a KECCAK-f 
			permutation as the underlying function and multi-rate 
			padding as the padding rule.  In particular all the 
			functions referenced from <xref 
			target="DOI_10.6028_NIST.FIPS.202" format="default"/> and 
			<xref target="DOI_10.6028_NIST.SP.800-185" 
			format="default"/>.
		</dd>
        <dt>KMAC (KECCAK Message Authentication Code <xref 
			target="DOI_10.6028_NIST.SP.800-185" format="default"/>):</dt>
        <dd>
			A Pseudo Random Function (PRF) and keyed hash function 
			based on KECCAK.
		</dd>
		<dt>RAA (Registered Assigning Authority):</dt>
		<dd>
			The 14-bit field identifying the business or organization 
			that manages a registry of HDAs.
		</dd>
		<dt>RVS (Rendezvous Server):</dt>
		<dd>
			A Rendezvous Server such as the HIP Rendezvous Server for 
			enabling mobility, as defined in <xref target="RFC8004" 
			format="default"/>.
		</dd>
		<dt>SHAKE (Secure Hash Algorithm KECCAK <xref 
			target="DOI_10.6028_NIST.FIPS.202" format="default"/>):</dt>
		<dd>
			A secure hash that allows for an arbitrary output length.
		</dd>
		<dt>XOF (eXtendable-Output Function <xref 
			target="DOI_10.6028_NIST.FIPS.202" format="default"/>):</dt>
		<dd>
			A function on bit strings (also called messages) in which 
			the output can be extended to any desired length.
		</dd>
	  </dl>
</section>
</section>
<section anchor="HHIT" numbered="true" toc="default"> <name>The Hierarchical Host Identity Tag (HHIT)</name>
<t>
	The Hierarchical HIT (HHIT) is a small but important enhancement 
	over the flat HIT space, constructed as an Overlay Routable 
	Cryptographic Hash IDentifier (ORCHID) <xref target="RFC7343" 
	format="default"/>.  By adding two levels of hierarchical 
	administration control, the HHIT provides for device 
	registration/ownership, thereby enhancing the trust framework for 
	HITs.
</t>
<t>
	HHITs represent the HI in only a 64-bit hash, expand the Suite ID 
	to 8 bits, and use the other 28 bits to create a hierarchical 
	administration organization for HIT domains.  Hierarchical HIT 
	construction is defined in <xref target="ORCHIDs" 
	format="default"/>. The input values for the Encoding rules are 
	described in <xref target="HCGA" format="default"/>.
</t>
<t>
	A HHIT is built from the following fields:
</t>
      <ul spacing="normal">
        <li>
			p = IANA prefix (max 28 bit)
		</li>
        <li>
			28 bit Hierarchy ID (HID)
		</li>
        <li>
			8 bit HHIT Suite ID
		</li>
        <li>
			ORCHID hash (96 - prefix length - 8 for HHIT Suite ID, e.g., 64)
				See <xref target="ORCHIDs" format="default"/>
		</li>
      </ul>
<figure anchor="HHIT_Format">
<name>HHIT Format</name>
<artwork name="" type="ascii-art" align="left" alt="">
<![CDATA[
               14 bits| 14 bits              8 bits  
              +-------+-------+         +--------------+
              |  RAA  | HDA   |         |HHIT Suite ID |
              +-------+-------+         +--------------+
               \              |    ____/   ___________/
                \             \  _/    ___/
                 \             \/     /               
   |    p bits    |  28 bits   |8bits|   o=96-p-8 bits        |
   +--------------+------------+-----+------------------------+
   | IANA Prefix  |    HID     |HHSI |      ORCHID hash       |
   +--------------+------------+-----+------------------------+    

]]>
</artwork>
</figure>
<t>
	The Context ID for the ORCHID hash is:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Context ID :=  0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40
]]>
</artwork>
<t>
	Context IDs are allocated out of the namespace introduced for 
	Cryptographically Generated Addresses (CGA) Type Tags <xref 
	target="RFC3972" format="default"/>.
</t>
<t>
	A python script is available for generating HHITs <xref 
	target="hhit-gen" format="default"/>. 
</t>
<section anchor="Prefix" numbered="true" toc="default"> <name>HHIT Prefix for RID Purposes</name>
<t>
	A unique IANA IPv6 prefix, no larger than 28 bits, for HHITs is 
	recommended.  It clearly separates the flat-space HIT processing 
	from HHIT processing per <xref target="ORCHIDs" format="default"/>. 
</t>
<t>
	Without a unique prefix, the first 4 bits of the RAA would be 
	interpreted as the HIT Suite ID per <xref target="RFC7401" 
	format="default">HIPv2</xref>.
</t>
</section>
<section anchor="HHIT_Suite" numbered="true" toc="default"> <name>HHIT Suite IDs</name>
<t>
	The HHIT Suite IDs specify the HI and hash algorithms.  These are a 
	superset of the HIT Suite ID as defined in <xref target="RFC7401" 
	section="5.2.10" format="default"/>.
</t>
<t>
	The HHIT values of 1 - 15 map to the 4-bit HIT Suite IDs.  HHIT 
	values of 17 - 31 map to the 8-bit HIT Suite IDs.  HHIT values 
	unique to HHIT will start with value 32.
</t>
<t>
	As HHIT introduces a new Suite ID, EdDSA/cSHAKE128, and since this 
	is of value to HIPv2, it will be allocated out of the 4-bit HIT 
	space and result in an update to HIT Suite IDs.  Future HHIT Suite 
	IDs may be allocated similarly, or may come out of the additional 
	space made available by going to 8 bits.
</t>
<t>
	The following HHIT Suite IDs are defined:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     HHIT Suite          Value
     RESERVED            0
     RSA,DSA/SHA-256     1    [RFC7401]
     ECDSA/SHA-384       2    [RFC7401]
     ECDSA_LOW/SHA-1     3    [RFC7401]
     EdDSA/cSHAKE128     TBD3 (suggested value 5)   (RECOMMENDED)
     RESERVED            16
]]>
</artwork>
<section anchor="HDA_OGA" numbered="true" toc="default"> <name>HDA custom HIT Suite IDs</name>
<t>
	Support for 8 bit HHIT Suite IDs allows for HDA custom HIT Suite 
	IDs.  These will be assigned values greater than 15 as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     HIT Suite           Value
     HDA Assigned 1      TBD4 (suggested value 254)
     HDA Assigned 2      TBD5 (suggested value 255)
]]>
</artwork>
<t>
	This feature, for example, may be used for large-scale 
	experimenting with post quantum computing hashes or similar domain 
	specific needs.  Note that currently there is no support for 
	domain-specific HI algorithms.
</t>
</section>
</section>
<section anchor="HID" numbered="true" toc="default"> <name>The Hierarchy ID (HID)</name>
<t>
	The Hierarchy ID (HID) provides the structure to organize HITs into
	administrative domains.  HIDs are further divided into two fields:
</t>
        <ul spacing="normal">
          <li>
			14-bit Registered Assigning Authority (RAA)
		</li>
          <li>
			14-bit Hierarchical HIT Domain Authority (HDA)
		</li>
        </ul>
<section anchor="RAA" numbered="true" toc="default"> <name>The Registered Assigning Authority (RAA)</name>
<t>
	An RAA is a business or organization that manages a registry of 
	HDAs.  For example, the Federal Aviation Authority (FAA) could be 
	an RAA.
</t>
<t>
	The RAA is a 14-bit field (16,384 RAAs) assigned by ICAO.  An RAA 
	must provide a set of services to allocate HDAs to organizations. 
	It must have a public policy on what is necessary to obtain an HDA. 
	The RAA need not maintain any HIP related services. It must 
	maintain a DNS zone minimally for discovering HID RVS servers.
</t>
<t>
	The ICAO registration process will be available from ICAO.  Once 
	ICAO accepts an RAA, it will assign a number and create a zone 
	delegation under the uas.icao.int. DNS zone for the RAA.
</t>
<t>
	As HHITs may be used in many different domains, RAA should be 
	allocated in blocks with consideration on the likely size of a 
	particular usage.  Alternatively, different prefixes can be used to 
	separate different domains of use of HHITs.
</t>
<t>
	This DNS zone may be a PTR for its RAA.  It may be a zone in an 
	HHIT specific DNS zone.  Assume that the RAA is 100.  The PTR 
	record could be constructed as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
100.hhit.arpa   IN PTR      raa.bar.com.
]]>
</artwork>
</section>
<section anchor="HDA" numbered="true" toc="default"> <name>The Hierarchical HIT Domain Authority (HDA)</name>
<t>
	An HDA may be an ISP or any third party that takes on the business 
	to provide RVS and other needed services such as those required for 
	HIP-enabled devices.
</t>
<t>
	The HDA is an 14-bit field (16,384 HDAs per RAA) assigned by an 
	RAA.  An HDA should maintain a set of RVS servers for UAS clients 
	that may use HIP.  How this is done and scales to the potentially 
	millions of customers are outside the scope of this document.  This 
	service should be discoverable through the DNS zone maintained by 
	the HDA's RAA.
</t>
<t>
	An RAA may assign a block of values to an individual organization.  
	This is completely up to the individual RAA's published policy for 
	delegation.  Such policy is out of scope.
</t>
</section>
</section>
<section anchor="EdDSA" numbered="true" toc="default"> <name>Edward Digital Signature Algorithm for HHITs</name>
<t>
	The Edwards-Curve Digital Signature Algorithm (EdDSA) <xref 
	target="RFC8032" format="default"> </xref> is specified here for 
	use as Host Identities (HIs) per <xref target="RFC7401" 
	format="default">HIPv2</xref>.
</t>
<t>
	The intent in this document is to add EdDSA as a HI algortihm for 
	DETs, but doing so impacts the HIP parameters used in a HIP 
	exchange.  As such the following update HIP parameters.  Other than 
	the HIP DNS RR, these should not be needed in a DRIP implementation 
	that does not use HIP.
</t>
<t>
	See <xref target="HHIT_Suite" format="default"/> for use of the HIT 
	Suite in the context of this document.
</t>
	<section anchor="host_id" numbered="true" toc="default"> <name>HOST_ID</name>
<t>
	The HOST_ID parameter specifies the public key algorithm, and for 
	elliptic curves, a name.  The HOST_ID parameter is defined in 
	<xref target="RFC7401" section="5.2.19" format="default"/>.
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm
     profiles    Values

     EdDSA       TBD1 (suggested value 13) [RFC8032]    (RECOMMENDED)
]]>
</artwork>
<section anchor="HIP_EdDSA_Parm" numbered="true" toc="default"> <name>HIP Parameter support for EdDSA</name>
<t>
	The addition of EdDSA as a HI algorithm requires a subfield in the 
	HIP HOST_ID parameter <xref target="RFC7401" section="5.2.9" 
	format="default"/> as was done for ECDSA when used in a HIP 
	exchange.
</t>
<t>
	For HIP hosts that implement EdDSA as the algorithm, the following 
	EdDSA curves are represented by the following fields:
</t>
<figure>
<artwork>
<![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         EdDSA Curve           |                               /
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  /                         Public Key                            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  EdDSA Curve   Curve label
  Public Key    Represented in Octet-string format      [RFC8032]
]]>
</artwork>
</figure>
<t>
	For hosts that implement EdDSA as a HIP algorithm the following 
	EdDSA curves are required:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm    Curve            Values

     EdDSA        RESERVED         0
     EdDSA        EdDSA25519       1 [RFC8032]          (RECOMMENDED)
     EdDSA        EdDSA25519ph     2 [RFC8032]
     EdDSA        EdDSA448         3 [RFC8032]          (RECOMMENDED)
     EdDSA        EdDSA448ph       4 [RFC8032]
]]>
</artwork> 
</section>
<section anchor="HIP_DNS_RR" numbered="true" toc="default"> <name>HIP DNS RR support for EdDSA</name>
<t>
	The HIP DNS RR (Resource Record) is defined in <xref 
	target="RFC8005" format="default"/>.  It uses the values defined 
	for the 'Algorithm Type' of the IPSECKEY RR <xref target="RFC4025" 
	format="default"/> for its PK Algorithm field.
</t>
<t>
	The new EdDSA HI will use <xref target="RFC8080" format="default"/> 
	for the IPSECKEY RR encoding:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
   Value  Description

   TBD2 (suggested value 4)     
          An EdDSA key is present, in the format defined in [RFC8080]
]]>
</artwork> 
<!-- Editor's note:  When IANA sets values condense 
table so (RECOMMENDED) is on end of lines as in table above -->
</section>
</section>
<section anchor="hit_suite_list" numbered="true" toc="default"> <name>HIT_SUITE_LIST</name>
<t>
	The HIT_SUITE_LIST parameter contains a list of the supported HIT 
	suite IDs of the HIP Responder. Based on the HIT_SUITE_LIST, the 
	HIP Initiator can determine which source HIT Suite IDs are 
	supported by the Responder. The HIT_SUITE_LIST parameter is defined 
	in <xref target="RFC7401" section="5.2.10" format="default"/>.
</t>
<t>
	The following HIT Suite ID is defined, and the relationship between 
	the four-bit ID value used in the OGA ID field and the eight-bit 
	encoding within the HIT_SUITE_LIST ID field is clarified:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     HIT Suite        Value
     EdDSA/cSHAKE128  TBD3 (suggested value 5)   (RECOMMENDED)
]]>
</artwork>
<t>
	The following table provides more detail on the above HIT Suite 
	combination.
</t>
<t>
	The output of cSHAKE128 is variable per the needs of a specific 
	ORCHID construction.  It is at most 96 bits long and is directly 
	used in the ORCHID (without truncation).
</t>
<table anchor="table_hit_suites" align="center"> <name>HIT Suites</name>
	<thead>
		<tr>
			<th align="right">Index</th>
			<th align="left">Hash function</th>
			<th align="left">HMAC</th>
			<th align="left">Signature algorithm family</th>
			<th align="left">Description</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td align="right">5</td>
			<td align="left">cSHAKE128</td>
			<td align="left">KMAC128</td>
			<td align="left">EdDSA</td>
			<td align="left">EdDSA HI hashed with cSHAKE128, output is variable</td>
		</tr>
	</tbody>
</table>
</section>
	</section>
<section anchor="ORCHIDs" numbered="true" toc="default"> <name>ORCHIDs for Hierarchical HITs</name>
<t> 
	This section improves on <xref target="RFC7343" 
	format="default">ORCHIDv2</xref> with three enhancements:
</t>
	<ul spacing="normal">
		<li>
			Optional Info field between the Prefix and OGA ID.
		</li>
		<li>
			Increased flexibility on the length of each component in the 
			ORCHID construction, provided the resulting ORCHID is 128 
			bits.
		</li>
		<li>
			Use of cSHAKE, <xref target="DOI_10.6028_NIST.SP.800-185" 
			format="default">NIST SP 800-185</xref>, for the hashing 
			function.
		</li>
	</ul>
<t> 
	The <xref target="Keccak" format="default">Keccak</xref> based 
	cSHAKE XOF hash function is a variable output length hash function.  
	As such it does not use the truncation operation that other hashes 
	need.  The invocation of cSHAKE specifies the desired number of 
	bits in the hash output.  Further, cSHAKE has a parameter 'S' as a 
	customization bit string.  This parameter will be used for 
	including the ORCHID Context Identifier in a standard fashion.
</t>
<t>
	This ORCHID construction includes the fields in the ORCHID in the 
	hash to protect them against substitution attacks.  It also provides 
	for inclusion of additional information, in particular the 
	hierarchical bits of the Hierarchical HIT, in the ORCHID 
	generation.  This should be viewed as an addendum to <xref 
	target="RFC7343" format="default">ORCHIDv2</xref>, as it can 
	produce ORCHIDv2 output.
</t>
<section anchor="HCGA" numbered="true" toc="default"> <name>Adding additional information to the ORCHID</name>
<t>
	ORCHIDv2 <xref target="RFC7343" format="default"/> is currently 
	defined as consisting of three components:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
ORCHID     :=  Prefix | OGA ID | Encode_96( Hash )

where:

Prefix          : A constant 28-bit-long bitstring value 
                  (IANA IPv6 assigned).

OGA ID          : A 4-bit long identifier for the Hash_function
                  in use within the specific usage context.  When
                  used for HIT generation this is the HIT Suite ID.

Encode_96( )    : An extraction function in which output is obtained
                  by extracting the middle 96-bit-long bitstring
                  from the argument bitstring. 

]]>
</artwork>
<t>
	This addendum will be constructed as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
ORCHID     :=  Prefix (p) | Info (n) | OGA ID (o) | Hash (m)

where:

Prefix (p)      : An IANA IPv6 assigned prefix (max 28-bit-long).

Info (n)        : n bits of information that define a use of the
                  ORCHID.  n can be zero, that is no additional
                  information.

OGA ID (o)      : A 4 or 8 bit long identifier for the Hash_function
                  in use within the specific usage context.  When
                  used for HIT generation this is the HIT Suite ID.
                  When used for HHIT generation this is the 
                  HHIT Suite ID.

Hash (m)        : An extraction function in which output is m bits.

p + n + o + m = 128 bits

]]>
</artwork>
<t>
	With a 28-bit IPv6 Prefix, the remaining 100 bits can be divided in 
	any manner between the additional information, OGA ID, and the hash 
	output.  Care must be taken in determining the size of the hash 
	portion, taking into account risks like pre-image attacks. Thus 64 
	bits as used in Hierarchical HITs may be as small as is acceptable. 
	The size of n is determined as what is left; in the case of the 
	8-bit OGA used for HHIT, this is 28 bits.
</t>
</section>
<section anchor="Encode" numbered="true" toc="default"> <name>ORCHID Encoding</name>
<t>
	This addendum adds a different encoding process to that currently 
	used in ORCHIDv2.  The input to the hash function explicitly 
	includes all the header content plus the Context ID.  The header 
	content consists of the Prefix, the Additional Information, and OGA 
	ID (HIT Suite ID). Secondly, the length of the resulting hash is 
	set by sum of the length of the ORCHID header fields.  For example, 
	a 28-bit Prefix with 28 bits for the HID and 8 bits for the OGA ID 
	leaves 64 bits for the hash length.
</t>
<t>
	To achieve the variable length output in a consistent manner, the 
	cSHAKE hash is used.  For this purpose, cSHAKE128 is appropriate.  
	The the cSHAKE function call for this addendum is:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    cSHAKE128(Input, L, "", Context ID)

    Input      :=  Prefix | Additional Information | OGA ID | HOST_ID
    L          :=  Length in bits of hash portion of ORCHID
]]>
</artwork>
<t>
	For full Suite ID support (those that use fixed length hashes like 
	SHA256), the following hashing can be used (Note: this does NOT 
	produce output Identical to ORCHIDv2 for Prefix of /28 and 
	Additional Information of ZERO length):
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Hash[L](Context ID | Input)

    Input      :=  Prefix | Additional Information | OGA ID | HOST_ID
    L          :=  Length in bits of hash portion of ORCHID

    Hash[L]    :=  An extraction function in which output is obtained
                   by extracting the middle L-bit-long bitstring
                   from the argument bitstring.
]]>
</artwork>
<t>
	Hierarchical HIT uses the same context as HIPv2 HIT as the ORCHID 
	generation is clearly separated by the distinct Prefix in HHIT.
</t>
<section anchor="HITv2_Encode" numbered="true" toc="default"> <name>Encoding ORCHIDs for HIPv2</name>
<t>
	This section is included to provide backwards compatibility for 
	<xref target="RFC7343" format="default">ORCHIDv2</xref> as used in 
	<xref target="RFC7401" format="default">HIPv2</xref>.
</t>
<t>
	For HIPv2, the Prefix is 2001:20::/28. Info is zero-length (i.e., 
	not included), and OGA ID is length 4.  Thus the HI Hash is length 
	96.  Further the Prefix and OGA ID are not included in the hash 
	calculation. Thus the following ORCHID calculations for fixed 
	output length hashes are used:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Hash[L](Context ID | Input)

    Input      :=  HOST_ID
    L          :=  96
    Context ID :=  0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA

    Hash[L]    :=  An extraction function in which output is obtained
                   by extracting the middle L-bit-long bitstring
                   from the argument bitstring.
]]>
</artwork>
<t>
	For variable output length 	hashes use:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Hash[L](Context ID | Input)

    Input      :=  HOST_ID
    L          :=  96
    Context ID :=  0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA

    Hash[L]    :=  The L bit output from the hash function
]]>
</artwork>
<t>
	Then the ORCHID is constructed as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Prefix | OGA ID | Hash Output
]]>
</artwork>
</section>
</section>
<section anchor="Decode" numbered="true" toc="default"> <name>ORCHID Decoding</name>
<t>
	With this addendum, the decoding of an ORCHID is determined by the 
	Prefix and OGA ID.  ORCHIDv2 <xref target="RFC7343" 
	format="default"/> decoding is selected when the Prefix is: 
	2001:20::/28.
</t>
<t>
	For Hierarchical HITs, the decoding is determined by the presence 
	of the HHIT Prefix as specified <xref target="IANA-DET-prefix" 
	format="default"/>.
</t>
</section>
<section anchor="HITv2_Decode" numbered="true" toc="default"> <name>Decoding ORCHIDs for HIPv2</name>
<t>
	This section is included to provide backwards compatibility for <xref 
	target="RFC7343" format="default">ORCHIDv2</xref> as used for <xref 
	target="RFC7401" format="default">HIPv2</xref>.
</t>
<t>
	HIPv2s are identified by a Prefix of 2001:20::/28. The next 4 bits 
	are the OGA ID.  The remaining 96 bits are the HI Hash.
</t>
</section>
</section>
</section>
<section anchor="HHIT_RID" numbered="true" toc="default"> <name>Hierarchical HITs as Remote ID DRIP Entity Tags (DET)</name>
<t>
	Hierarchical HITs are a refinement on the Host Identity Tag (HIT) 
	of HIPv2.  HHITs require a new ORCHID mechanism as described in 
	<xref target="ORCHIDs" format="default"/>.
</t>
<t>
	HHITs for UAS ID (called, DETs) also use the new EdDSA/SHAKE128 HIT 
	suite defined in <xref target="EdDSA" format="default"/> (GEN-2 in 
	<xref target="RFC9153" format="default" />).  This 
	hierarchy, cryptographically embedded within the HHIT, provides the 
	information for finding the UA's HHIT registry (ID-3 in <xref 
	target="RFC9153" format="default" />).
</t>
<t anchor="IDtypes">
	ASTM Standard Specification for Remote ID and Tracking <xref 
	target="F3411" format="default"/> specifies four UAS ID types:
</t>
	<ol spacing="normal" type="TYPE-%d" group="type">
	<li>
		A static, manufacturer assigned, hardware serial number per 
		ANSI/CTA-2063-A "Small Unmanned Aerial System Serial Numbers" 
		<xref target="CTA2063A" format="default"/>.
	</li>
	<li>
		A CAA assigned (presumably static) ID.
	</li>
	<li>
		A UTM system assigned UUID <xref target="RFC4122" 
		format="default"/>. These can be dynamic, but do not need to 
		be.
	</li>
	<li>
		Specific Session ID (SSI)
	</li>
	</ol>
<t>
	Note that Types 1 - 3 allow for an UAS ID with a maximum length of 
	20 bytes, the SSI (Type 4) uses the first byte of the ID for the 
	SSI value, thus restricting the UAS ID to a maximum of 19 bytes. 
	The SSI values initially assigned (as per 2021) are:
</t>
	<ol spacing="normal" type="ID %d" group="SSI">
	<li>
		IETF - DRIP Drone Remote Identification Protocol (DRIP) entity ID.
	</li>
	<li>
		3GPP - IEEE 1609.2-2016 HashedID8
	</li>
	</ol>
<section anchor="HHIT_Nontransfer" numbered="true" toc="default"> <name>Nontransferablity of DETs</name>
<t>
	A HI and its HHIT SHOULD NOT be transferable between UA or even 
	between replacement electronics (e.g., replacement of damaged 
	controller CPU) for a UA.  The private key for the HI SHOULD be 
	held in a cryptographically secure component.
</t>
</section>
<section anchor="CTA_Encode" numbered="true" toc="default"> <name>Encoding HHITs in CTA 2063-A Serial Numbers</name>
<t>
	In some cases, it is advantageous to encode HHITs as a CTA 2063-A 
	Serial Number <xref target="CTA2063A" format="default"/>.  For 
	example, the FAA Remote ID Rules <xref target="FAA_RID" 
	format="default"/> state that a Remote ID Module (i.e., not 
	integrated with UA controller) must only use "the serial number of 
	the unmanned aircraft"; CTA 2063-A meets this requirement.
</t>
<t>
	Encoding an HHIT within the CTA 2063-A format is not simple.  The 
	CTA 2063-A format is defined as:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
Serial Number   :=  MFR Code | Length Code | MFR SN

where:

MFR Code        : 4 character code assigned by ICAO.

Length Code     : 1 character Hex encoding of MFR SN length (1-F).

MFR SN          : Alphanumeric code (0-9, A-Z except O and I).
                  Maximum length of 15 characters.
]]>
</artwork>
<t>
	There is no place for the HID; there will need to be a mapping 
	service from Manufacturer Code to HID.  The HIT Suite ID and ORCHID 
	hash will take 14 characters (as described below), leaving 1 
	character to distinguish encoded DETs from other manufacturer use 
	of CTA 2063-A Serial Numbers.
</t>
<t>
	A character in a CTA 2063-A Serial Number "shall include any 
	combination of digits and uppercase letters, except the letters O 
	and I, but may include all digits".  This would allow for a Base34 
	encoding of the binary HIT Suite ID and ORCHID hash.  Although, 
	programmatically, such a conversion is not hard, other technologies 
	(e.g., credit card payment systems) that have used such odd base 
	encoding have had performance challenges.  Thus here a Base32 
	encoding will be used by also excluding the letters Z and S (too 
	similar to the digits 2 and 5).
</t>
<t>
	The low-order 68 bits (HIT Suite ID | ORCHID hash) of the HHIT 
	SHALL be left-padded with 2 bits of zeros.  This 70-bit number will 
	be encoded into 14 characters using the digit/letters above.  The 
	manufacturer MUST use a Length Code of F (15).  The first character 
	after the Length Code MUST be 'Z', followed by the 14 characters of 
	the encoded HIT Suite ID and ORCHID hash.  This construct allows 
	the manufacturer to construct other MFR SN of length 15 by avoiding 
	starting them with 'Z'.
</t>
<t>
	Using the sample DET from <xref target="HHIT_DNS" 
	format="default"/> that is for HDA=20 under RAA=10 and having the 
	ICAO CTA MFR Code of 8653, the 20-character CTA 2063-A Serial 
	Number would be:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    8653FZ2T7B8RA85D19LX
]]>
</artwork>
<t>
	A mapping service (e.g., DNS) MUST provide a trusted (e.g., via 
	DNSSEC) conversion of the 4-character Manufacturer Code to 
	high-order 60 bits (Prefix | HID) of the HHIT.  Definition of this 
	mapping service is currently out of scope of this document.
</t>
<t>
	It should be noted that this encoding would only be used in the 
	Basic ID Message.  The HHIT DET will still be used in the 
	Authentication Messages.
</t>
</section>
<section numbered="true" toc="default"> <name>Remote ID DET as one class of Hierarchical HITs</name>
<t> 
	UAS Remote ID DET may be one of a number of uses of HHITs.  
	However, it is out of the scope of the document to elaborate on 
	other uses of HHITs.  As such these follow-on uses need to be 
	considered in allocating the RAAs <xref target="RAA" 
	format="default"/> or HHIT prefix assignments <xref target="IANA" 
	format="default"/>.
</t>
</section>
<section numbered="true" toc="default"> <name>Hierarchy in ORCHID Generation</name>
<t> 
	ORCHIDS, as defined in <xref target="RFC7343" format="default"/>, 
	do not cryptographically bind an IPv6 prefix nor the Orchid 
	Generation Algorithm (OGA) ID (the HIT Suite ID) to the hash of the 
	HI.  The rational at the time of developing ORCHID was attacks 
	against these fields are DoS attacks against protocols using 
	ORCHIDs and thus up to those protocols to address the issue.
</t>
<t> 
	HHITs, as defined in <xref target="ORCHIDs" 
	format="default"/>, cryptographically bind all content in the 
	ORCHID through the hashing function.  A recipient of a DET that 
	has the underlying HI can directly trust and act on all content in 
	the HHIT. This provides a strong, self-attestation for using the 
	hierarchy to find the DET Registry based on the HID.
</t>
</section>
<section numbered="true" toc="default"> <name>DRIP Entity Tag (DET) Registry</name>
<t> 
	DETs are registered to HDAs.  A registration process, <xref 
	target="I-D.wiethuechter-drip-registries" format="default"/>, 
	ensures DET global uniqueness (ID-4 in <xref 
	target="RFC9153" format="default" />). It also provides 
	the mechanism to create UAS public/private data that are associated 
	with the DET (REG-1 and REG-2 in <xref target="RFC9153" 
	format="default" />).
</t>
<t> 
	The two levels of hierarchy within the DET allows for CAAs to have 
	their own Registered Assigning Authority (RAA) for their National 
	Air Space (NAS).  Within the RAA, the CAAs can delegate HDAs as 
	needed. There may be other RAAs allowed to operate within a given 
	NAS; this is a policy decision by the CAA.
</t>
</section>
<section anchor="RID_Auth" numbered="true" toc="default"> <name>Remote ID Authentication using DETs</name>
<t> 
	The EdDSA25519 HI (<xref target="EdDSA" format="default"/>) 
	underlying the DET can be used in an 84-byte self-proof attestation 
	(timestamp, HHIT, and signature of these) to provide proof of 
	Remote ID ownership (GEN-1 in <xref target="RFC9153" 
	format="default" />).  In practice, the Wrapper and Manifest 
	authentication formats in the ASTM Authentication Message (Msg Type 
	0x2) <xref target="I-D.ietf-drip-auth" format="default"/> 
	implicitly provide this self-attestation.  A lookup service like 
	DNS can provide the HI and registration proof (GEN-3 in <xref 
	target="RFC9153" format="default" />).
</t>
<t>
	Similarly, for Observers without Internet access, a 200-byte offline 
	self-attestation could provide the same Remote ID ownership proof. 
	This attestation would contain the HDA's signing of the UA's HHIT, 
	itself signed by the UA's HI.  Only a small cache that contains the 
	HDA's HI/HHIT and HDA meta-data is needed by the Observer. However, 
	such an object would just fit in the ASTM Authentication Message 
	with no room for growth.  In practice <xref 
	target="I-D.ietf-drip-auth" format="default"/> provides this 
	offline self-attestation in two authentication messages: the HDA's 
	certification of the UA's HHIT registration in a Link 
	authentication message whose hash is sent in a Manifest 
	authentication message.
</t>
<t> 
	Hashes of any previously sent ASTM messages can be placed in a 
	Manifest authentication message (GEN-2 in <xref 
	target="RFC9153" format="default" />).  When a Location/Vector 
	Message (Msg Type 0x1) hash along with the hash of the HDA's UA 
	HHIT attestation are sent in a Manifest authentication message and 
	the Observer can visually see a UA at the claimed location, the 
	Observer has a very strong proof of the UA's Remote ID.
</t>
<t> 
	All this behavior and how to mix these authentication messages into 
	the flow of UA operation messages are detailed in <xref 
	target="I-D.ietf-drip-auth" format="default"/>.
</t>
</section>
</section>
<section anchor="HHIT_DNS" numbered="true" toc="default"> <name>DRIP Entity Tags (DETs) in DNS</name>
<t>
	There are two approaches for storing and retrieving DETs using DNS.
</t>
<ul>
	<li>
		As FQDNs in ".icao.int.".
	</li>
	<li>
		Reverse DNS lookups as IPv6 addresses per <xref 
		target="RFC8005" format="default"/>.
	</li>
</ul>
<t>
	A DET can be used to construct an FQDN that points to the USS 
	that has the public/private information for the UA (REG-1 and REG-2 
	in <xref target="RFC9153" format="default" />).  For example, the 
	USS for the  HHIT could be found via the following: Assume the RAA 
	is 100 and the HDA is 50.  The PTR record is constructed as 
	follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    100.50.det.uas.icao.int   IN PTR      foo.uss.icao.int.
]]>
</artwork>
<t>
	The individual DETs may be potentially too numerous (e.g., 60 - 600M) 
	and dynamic (e.g., new DETs every minute for some HDAs) to store 
	in a signed, DNS zone.  The HDA SHOULD provide DNS service for its 
	zone and provide the HHIT detail response.  A secure connection 
	(e.g., DNS over TLS) to the authoritative zone may be a viable 
	alternative to DNSSEC.
</t>
<t>
	The DET reverse lookup can be a standard IPv6 reverse look up, or 
	it can leverage off the HHIT structure.  If we assume a prefix of 
	2001:30::/28, the RAA is 10 and the HDA is 20, the DET is:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    2001:30:a0:145:a3ad:1952:ad0:a69e
]]>
</artwork>
<t>
	A DET reverse lookup could be to:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    a69e.ad0.1952.a3ad.145.a0.30.2001.20.10.det.arpa.
]]>
</artwork>
<t>
	or:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    a3ad1952ad0a69e.5.20.10.30.2001.det.remoteid.icao.int.
]]>
</artwork>
<t>
	A 'standard' ip6.arpa RR has the advantage of only one Registry 
	service supported.
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    $ORIGIN  5.4.1.0.0.a.0.0.0.3.0.0.1.0.0.2.ip6.arpa.
    e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a    IN   PTR  

]]>
</artwork>
</section>
<section anchor="Other_HHIT" numbered="true" toc="default"> <name>Other UTM uses of HHITs beyond DET</name>
<t>
	HHITs might be used within the UTM architecture beyond DET (and USS 
	in UA ID registration and authentication).  For example as a GCS 
	HHIT ID.  The GCS may use its HIIT if it is the source of Network 
	Remote ID for securing the transport and for secure C2 transport 
	(e.g., <xref target="I-D.moskowitz-drip-secure-nrid-c2" 
	format="default"/>).
</t>
<t>
	Observers may have their own HHITs to facilitate UAS information 
	retrieval (e.g., for authorization to private UAS data).  They 
	could also use their HHIT for establishing a HIP connection with 
	the UA Pilot for direct communications per authorization (this use 
	is currently outside the scope of this document).  Further, they 
	can be used by FINDER observers, (e.g., <xref 
	target="I-D.moskowitz-drip-crowd-sourced-rid" format="default"/>).
</t>
</section>
<section anchor="Reqs" numbered="true" toc="default"> <name>DRIP Requirements addressed</name>
<t>
	This document in the previous sections provides the details to 
	solutions for GEN 1 - 3, ID 1 - 5, and REG 1 - 2 as described in 
	<xref target="RFC9153" format="default" />.
</t>
</section>
<section anchor="DET_privacy" numbered="true" toc="default"> <name>DET Privacy</name>
<t>
	There is no expectation of privacy for DETs; it is not part of the 
	Privacy Normative Requirements, <xref target="RFC9153" 
	section="4.3.1," format="default"/>.  DETs are broadcast in the 
	clear over the open air via Bluetooth and Wi-Fi.  They will be 
	collected and collated with other public information about the UAS. 
	This will include DET registration information and location and 
	times of operations for a DET.  A DET can be for the life of a UA 
	if there is no concern about DET/UA activity harvesting. 
</t>
<t>
	Further, the MAC address of the wireless interface used for Remote 
	ID broadcasts are a target for UA operation aggregation that may 
	not be mitigated through address randomization.  For Bluetooth 4 
	Remote ID messaging, the MAC address is used by observers to link 
	the Basic ID Message that contains the RID with other Remote ID 
	messages, thus must be constant for a UA operation.  This message 
	linkage use of MAC addresses may not be needed with the Bluetooth 5 
	or Wi-Fi PHYs. These PHYs provide for a larger message payload and 
	can use the Message Pack (Msg Type 0xF) and the Authentication 
	Message to transmit the RID with other Remote ID messages.  
	However, it is not mandatory to send the RID in a Message Pack or 
	Authentication Message, so allowance for using the MAC address for 
	UA message linking must be maintained.  That is, the MAC address 
	should be stable for at least a UA operation.
</t>
<t>
	Finally, it is not adequate to simply change the DET and MAC for a 
	UA per operation to defeat historically tracking a UA's activity.
</t>
<t>
	Any changes to the UA MAC may have impacts to C2 setup and 
	use.  A constant GCS MAC may well defeat any privacy gains in UA 
	MAC and RID changes.  UA/GCS binding is complicated with changing 
	MAC addresses; historically UAS design assumed these to be 
	"forever" and made setup a one-time process.  Additionally, if IP 
	is used for C2, a changing MAC may mean a changing IP address to 
	further impact the UAS bindings.  Finally, an encryption wrapper's 
	identifier (such as ESP <xref target="RFC4303"/> SPI) would need to 
	change per operation to insure operation tracking separation.
</t>
<t>
	Creating and maintaining UAS operational privacy is a multifaceted 
	problem.  Many communication pieces need to be considered to truly 
	create a separation between UA operations.  Simply changing the UAS 
	RID only starts the changes that need to be implemented.
</t>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<section anchor="IANA_DRIP_reg" numbered="true" toc="default"> <name>New IANA DRIP registry</name>
<t>
	  This document requests IANA to make a new registry for DRIP with 
	  initially one entry the, "Hierarchical HIT (HHIT) Suite ID" 
	  subregistry. This subregistry is a superset of the "HIT Suite ID" 
	  subregistry of the "Host Identity Protocol (HIP) Parameters" 
	  registry in  <xref target="IANA-HIP" format="default"/>.
</t>
<t>
	The following HHIT Suite IDs are defined:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     HHIT Suite          Value
     RESERVED            0
     RSA,DSA/SHA-256     1    [RFC7401]
     ECDSA/SHA-384       2    [RFC7401]
     ECDSA_LOW/SHA-1     3    [RFC7401]
     EdDSA/cSHAKE128     TBD3 (suggested value 5)   (RECOMMENDED)
     RESERVED            16
     HDA Assigned 1      TBD4 (suggested value 254)
     HDA Assigned 2      TBD5 (suggested value 255)
]]>
</artwork>
</section>
<section anchor="IANA_CGA_reg" numbered="true" toc="default"> <name>IANA CGA registry update</name>
<t>
	  This document requests IANA to make the following change to the 
	  IANA "CGA Extension Type Tags registry <xref target="IANA-CGA" 
	  format="default"/> registry:
</t>
	<dl newline="true">
        <dt>Context ID:</dt>
        <dd>
			The Context ID (<xref target="HHIT" format="default"/>) 
			shares the namespace introduced for CGA Type Tags. Defining 
			new Context IDs follow the rules in <xref target="RFC3972" 
			section="8" format="default"/>:
        </dd>
	</dl>
	<artwork name="" type="" align="left" alt="">
<![CDATA[
   Context ID :=  0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40
]]>
	</artwork>
</section>
<section anchor="IANA_HIP_reg" numbered="true" toc="default"> <name>IANA HIP registry updates</name>
<t>
	  This document requests IANA to make the following changes to the 
	  IANA "Host Identity Protocol (HIP) Parameters" <xref 
	  target="IANA-HIP" format="default"/> registry:
</t>
	<dl newline="true">
		<dt>Host ID:</dt>
		<dd>
			This document defines the new EdDSA Host ID with value TBD1 
			(suggested: 13) (<xref target="host_id" format="default"/>) 
			in the "HI Algorithm" subregistry of the "Host Identity 
			Protocol (HIP) Parameters" registry.
		</dd>
	</dl>
	<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm
     profiles    Values

     EdDSA       TBD1 (suggested value 13) [RFC8032]    (RECOMMENDED)
]]>
	</artwork>
	<dl newline="true">
        <dt>EdDSA Curve Label:</dt>
        <dd>
			This document specifies a new algorithm-specific 
			subregistry named "EdDSA Curve Label". The values for this 
			subregistry are defined in <xref target="HIP_EdDSA_Parm" 
			format="default"/>. 
        </dd>
	</dl>
	<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm    Curve            Values

     EdDSA        RESERVED         0
     EdDSA        EdDSA25519       1 [RFC8032]          (RECOMMENDED)
     EdDSA        EdDSA25519ph     2 [RFC8032]
     EdDSA        EdDSA448         3 [RFC8032]          (RECOMMENDED)
     EdDSA        EdDSA448ph       4 [RFC8032]
]]>
	</artwork> 
	<dl newline="true">
		<dt>HIT Suite ID:</dt>
		<dd>
			This document defines the new HIT Suite of EdDSA/cSHAKE 
			with value TBD3 (suggested: 5) (<xref 
			target="hit_suite_list" format="default"/>) in the "HIT 
			Suite ID" subregistry of the "Host Identity Protocol (HIP) 
			Parameters" registry.
		</dd>
	</dl>
	<artwork name="" type="" align="left" alt="">
<![CDATA[
     HIT Suite        Value
     EdDSA/cSHAKE128  TBD3 (suggested value 5)   (RECOMMENDED)
]]>
	</artwork>
<!--	<dl newline="true">
		<dt>HIT Suite ID eight-bit encoding:</dt>
		<dd>
			This document defines the first eight-bit encoded HIT Suite 
			IDs as defined in <xref target="RFC7401" section="5.2.10" 
			format="default"/>.  These are the new HDA domain HIT 
			Suites with values TBD4 and TBD5 (suggested values: 0xFE 
			and 0xFF) (<xref target="HDA_OGA" 
			format="default"/>). IANA is requested to expand the "HIT 
			Suite ID" subregistry of the "Host Identity Protocol (HIP) 
			Parameters" registry to show both the four-bit and 
			eight-bit values as shown in <xref target="RFC7401" 
			section="5.2.10" format="default"/> and add these new 
			values that only have 8-bit representations.
		</dd> -->
</section>
<section anchor="IANA_IPSECKEY_reg" numbered="true" toc="default"> <name>IANA IPSECKEY registry update</name>
<t>
	  This document requests IANA to make the following change to the 
	  "IPSECKEY Resource Record Parameters" <xref 
	  target="IANA-IPSECKEY" format="default"/> registry:
</t>
	<dl newline="true">
        <dt>IPSECKEY:</dt>
        <dd>
			This document defines the new IPSECKEY value TBD2 
			(suggested: 4) (<xref target="HIP_DNS_RR" 
			format="default"/>) in the "Algorithm Type Field" 
			subregistry of the "IPSECKEY Resource Record Parameters" 
			registry.
        </dd>
	</dl>
	<artwork name="" type="" align="left" alt="">
<![CDATA[
   Value  Description

   TBD2 (suggested value 4)     
          An EdDSA key is present, in the format defined in [RFC8080]
]]>
	</artwork> 
<!-- Editor's note:  When IANA sets values condense 
table so (RECOMMENDED) is on end of lines as in table above -->
</section>
<section anchor="IANA-DET-prefix" numbered="true" toc="default"> <name>New IPv6 prefix needed for DETs</name>
<t>
	Since the DET format is not compatible with <xref target="RFC7343" 
	format="default"> </xref>, IANA is requested to allocate a new 
	prefix following this template for the IPv6 Special-Purpose Address 
	Registry.
</t>
	<dl newline="true">
        <dt>Address Block:</dt>
        <dd>
			IANA is requested to allocate a new 28-bit prefix out of 
			the IANA IPv6 Special Purpose Address Block, namely 
			2001::/23, as per <xref target="RFC6890" format="default"> 
			</xref> (suggested: 2001:30::/28).
        </dd>
		<dt>Name:</dt>
		<dd>
			This block should be named "DRIP Device Entity Tags (DET)
			Prefix".
		</dd>
        <dt>RFC:</dt>
        <dd>
			This document. 
        </dd>
		<dt>Allocation Date:</dt>
		<dd>
			Date this document published.
		</dd>
		<dt>Termination Date:</dt>
		<dd>
			Forever.
		</dd>
        <dt>Source:</dt>
        <dd>
			False.
        </dd>
        <dt>Destination:</dt>
        <dd>
			False.
        </dd>
        <dt>Forwardable:</dt>
        <dd>
			False.
        </dd>
        <dt>Globally Reachable:</dt>
        <dd>
			False.
        </dd>
        <dt>Reserved-by-Protocol:</dt>
        <dd>
			False?
        </dd>
	</dl>
</section>
</section>
<section anchor="security-considerations" numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	The 64-bit hash in HHITs presents a real risk of second pre-image 
	cryptographic hash attack <xref target="Collision" 
	format="default"/>.  There are no known (to the authors) studies of 
	hash size to cryptographic hash attacks.  A Python script is 
	available to randomly generate 1M HHITs that did not produce a hash 
	collision which is a simpler attack than a first or second 
	pre-image attack.
</t>
<t>
	However, with today's computing power, producing 2^64 EdDSA 
	keypairs and then generating the corresponding HHIT is economically 
	feasible.  Consider that a *single* bitcoin mining ASIC can do on 
	the order of 2^46 sha256 hashes a second or about 2^62 hashes in a 
	single day.  The point being, 2^64 is not prohibitive, especially 
	as this can be done in parallel.
</t>
<t>
	Now it should be noted that the 2^64 attempts is for stealing a 
	specific HHIT.  Consider a scenario of a street photography company 
	with 1,024 UAs (each with its own HHIT); you'd be happy stealing 
	any one of them.  Then rather than needing to satisfy a 64-bit 
	condition on the cSHAKE128 output, you need only satisfy what is 
	equivalent to a 54-bit condition (since you have 2^10 more 
	opportunities for success).
</t>
<t>
	Thus, although the probability of a collision or pre-image attack 
	is low in a collection of 1,024 HHITs out of a total population of 
	2^64, per <xref target="Collision" format="default"/>, it is 
	computationally and economically feasible. Thus the HHIT 
	registration and HHIT/HI registration validation is strongly 
	recommended.
</t>
<t>
	The DET Registry services effectively block attempts to "take over" 
	or "hijack" a DET. It does not stop a rogue attempting to 
	impersonate a known DET. This attack can be mitigated by the 
	receiver of the DET using DNS to find the HI for the DET.  As such, 
	use of DNSSEC and DNS over TLS by the DET registries is 
	recommended.
</t>
<t>
	The 60-bit hash for DETs with 8-bit OGAs have a greater hash attack 
	risk.  As such its use should be restricted to testing and to 
	small, well managed UAS/USS.
</t>
<t>
	Another mitigation of HHIT hijacking is if the HI owner (UA) 
	supplies an object containing the HHIT and signed by the HI private 
	key of the HDA such as discussed in <xref target="RID_Auth" 
	format="default"/>.
</t>
<t>
	The two risks with hierarchical HITs are the use of an invalid HID 
	and forced HIT collisions.  The use of a DNS zone (e.g., 
	"det.arpa.") is a strong protection against invalid HIDs. Querying 
	an HDA's RVS for a HIT under the HDA protects against talking to 
	unregistered clients.  The Registry service <xref 
	target="I-D.wiethuechter-drip-registries" format="default"/>, 
	through its HHIT uniqueness enforcement, provides against forced or 
	accidental HHIT hash collisions.
</t>
<t>
	Cryptographically Generated Addresses (CGAs) provide an assurance 
	of uniqueness.  This is two-fold.  The address (in this case the 
	UAS ID) is a hash of a public key and a Registry hierarchy naming.  
	Collision resistance (more important that it implied 
	second-preimage resistance) makes it statistically challenging to 
	attacks.  A registration process (<xref 
	target="I-D.wiethuechter-drip-registries" format="default"/>) 
	within the HDA provides a level of assured uniqueness unattainable 
	without mirroring this approach.
</t>
<t>
	The second aspect of assured uniqueness is the digital signing 
	(attestation) process of the DET by the HI private key and the 
	further signing (attestation) of the HI public key by the 
	Registry's key.  This completes the ownership process.  The 
	observer at this point does not know what owns the DET, but is 
	assured, other than the risk of theft of the HI private key, that 
	this UAS ID is owned by something and is properly registered.
</t>
<section anchor="DET_trust" numbered="true" toc="default"> <name>DET Trust</name>
<t>
	The DET in the ASTM Basic ID Message (Msg Type 0x0, the actual 
	Remote ID message) does not provide any assertion of trust. The 
	best that might be done within this Basic ID Message is 4 bytes 
	truncated from a HI signing of the HHIT (the UA ID field is 20 
	bytes and a HHIT is 16).  This is not trustable; that is, too open 
	to a hash attack. Minimally, it takes 84 bytes, <xref 
	target="RID_Auth" format="default"/>, to prove ownership of 
	a DET with a full EdDSA signature.  Thus, no attempt has been made 
	to add DET trust directly within the very small Basic ID Message.
</t>
<t>
	The ASTM Authentication Message (Msg Type 0x2) as shown in <xref 
	target="RID_Auth" format="default"/> can provide practical actual 
	ownership proofs.  These attestations include timestamps to defend 
	against replay attacks.  But in themselves, they do not prove which 
	UA sent the message. They could have been sent by a dog running 
	down the street with a Broadcast Remote ID module strapped to its 
	back.
</t>
<t>
	Proof of UA transmission comes when the Authentication Message 
	includes proofs for the ASTM Location/Vector Message (Msg Type 0x1) 
	and the observer can see the UA or that information is validated by 
	ground multilateration <xref 
	target="I-D.moskowitz-drip-crowd-sourced-rid" format="default"/>. 
	Only then does an observer gain full trust in the DET of the UA.
</t>
<t>
	DETs obtained via the Network RID path provides a different 
	approach to trust.  Here the UAS SHOULD be securely communicating 
	to the USS (see <xref target="I-D.moskowitz-drip-secure-nrid-c2" 
	format="default"/>), thus asserting DET trust.
</t>
</section>
<section anchor="Collision" numbered="true" toc="default"> <name>Collision risks with DETs</name>
<t>
	The 64-bit hash size does have an increased risk of collisions over 
	the 96-bit hash size used for the other HIT Suites.  There is a 
	0.01% probability of a collision in a population of 66 million. The 
	probability goes up to 1% for a population of 663 million.  See 
	<xref target="Coll_Prob" format="default"/> for the collision 
	probability formula.
</t>
<t>
	However, this risk of collision is within a single "Additional 
	Information" value, i.e., a RAA/HDA domain. The UAS/USS registration 
	process should include registering the DET and MUST reject a 
	collision, forcing the UAS to generate a new HI and thus HHIT and 
	reapplying to the DET registration process.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.moskowitz-drip-secure-nrid-c2" to="drip-secure-nrid-c2"/>
<displayreference target="I-D.moskowitz-drip-crowd-sourced-rid" to="crowd-sourced-rid"/>
<displayreference target="I-D.wiethuechter-drip-registries" to="drip-registries"/>
<displayreference target="I-D.ietf-drip-auth" to="drip-authentication"/>
<displayreference target="DOI_10.6028_NIST.FIPS.202" to="NIST.FIPS.202"/>
<displayreference target="DOI_10.6028_NIST.SP.800-185" to="NIST.SP.800-185"/>
<references> <name>References</name>
<references title="Normative References">
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6890.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7343.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7401.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8005.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.FIPS.202.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-185.xml"/>
	<reference anchor="IANA-CGA"  target="https://www.iana.org/assignments/cga-message-types/cga-message-types.xhtml">
		<front>
			<title>Cryptographically Generated Addresses (CGA) Message Type Name Space</title>
			<author><organization>IANA</organization></author>
		</front>
	</reference>
	<reference anchor="IANA-HIP"  target="https://www.iana.org/assignments/hip-parameters/hip-parameters.xhtml">
		<front>
			<title>Host Identity Protocol (HIP) Parameters</title>
			<author><organization>IANA</organization></author>
		</front>
	</reference>
	<reference anchor="IANA-IPSECKEY"  target="https://www.iana.org/assignments/ipseckey-rr-parameters/ipseckey-rr-parameters.xhtml">
		<front>
			<title>IPSECKEY Resource Record Parameters</title>
			<author><organization>IANA</organization></author>
		</front>
	</reference>
</references>
<references title="Informative References">
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3972.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4025.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4122.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
<!--	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5730.xml"/> -->
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7484.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8004.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8080.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8200.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9063.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-drip-auth.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-moskowitz-drip-secure-nrid-c2.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-moskowitz-drip-crowd-sourced-rid.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-wiethuechter-drip-registries.xml"/>
	<reference anchor="F3411"  target="http://www.astm.org/cgi-bin/resolver.cgi?F3411">
		<front>
			<title>Standard Specification for Remote ID and Tracking</title>
			<author><organization>ASTM International</organization></author>
		</front>
	</reference>
	<reference anchor="hhit-gen" target="https://github.com/ietf-wg-drip/draft-ietf-drip-rid/blob/master/hhit-gen.py">
	<front>
	<title>Python script to generate HHITs</title>
    <author/>
		<date month="9" year="2021"/>
	</front>
	</reference>
	<reference anchor="cfrg-comment" target="https://mailarchive.ietf.org/arch/msg/cfrg/tAJJq60W6TlUv7_pde5cw5TDTCU/">
	<front>
	<title>A CFRG review of draft-ietf-drip-rid</title>
    <author/>
		<date month="9" year="2021"/>
	</front>
	</reference>
	<reference anchor="CTA2063A" target="https://shop.cta.tech/products/small-unmanned-aerial-systems-serial-numbers">
	<front>
		<title>Small Unmanned Aerial Systems Serial Numbers</title>
		<author>
			<organization>ANSI/CTA</organization>
		</author>
		<date month="09" year="2019"/>
	</front>
	</reference>
	<reference anchor="corus"  target="https://www.sesarju.eu/node/3411">
	<front>
		<title>U-space Concept of Operations</title>
		<author>
			<organization>CORUS</organization>
		</author>
	<date month="09" year="2019" />
	</front>
	</reference>
	<reference anchor="Keccak" target="https://keccak.team/index.html">
		<front>
          <title>The Keccak Function</title>
            <author fullname="Guido Bertoni" initials="G." surname="Bertoni">
              <address/>
            </author>
            <author fullname="Joan Daemen" initials="J." surname="Daemen">
              <organization>Radboud University</organization>
              <address/>
            </author>
            <author fullname="Michaël Peeters" initials="M." surname="Peeters">
              <organization>STMicroelectronics</organization>
              <address/>
            </author>
            <author fullname="Gilles Van Assche" initials="G." surname="Van Assche">
              <organization>STMicroelectronics</organization>
              <address/>
            </author>
            <author fullname="Ronny Van Keer" initials="R." surname="Van Keer">
              <organization>STMicroelectronics</organization>
              <address/>
            </author>
            <date/>
		</front>
	</reference>
<reference anchor="FAA_RID"  target="https://www.govinfo.gov/content/pkg/FR-2021-01-15/pdf/2020-28948.pdf">
  <front>
    <title>Remote Identification of Unmanned Aircraft</title>
    <author >
      <organization>United States Federal Aviation Administration (FAA)</organization>
    </author>
    <date year="2021"/>
  </front>
</reference>
</references>
</references>
<section anchor="Uspace" numbered="true" toc="default"> <name>EU U-Space RID Privacy Considerations</name>
<t>
	EU is defining a future of airspace management known as U-space 
	within the Single European Sky ATM Research (SESAR) undertaking. 
	Concept of Operation for EuRopean UTM Systems (CORUS) project 
	proposed low-level <xref target="corus" format="default">Concept of 
	Operations</xref> for UAS in EU. It introduces strong requirements 
	for UAS privacy based on European GDPR regulations.  It suggests 
	that UAs are identified with agnostic IDs, with no information 
	about UA type, the operators or flight trajectory.  Only authorized 
	persons should be able to query the details of the flight with a 
	record of access.
</t>
<t>
	Due to the high privacy requirements, a casual observer can only 
	query U-space if it is aware of a UA seen in a certain area. A 
	general observer can use a public U-space portal to query UA 
	details based on the UA transmitted "Remote identification" signal.  
	Direct remote identification (DRID) is based on a signal 
	transmitted by the UA directly.  Network remote identification 
	(NRID) is only possible for UAs being tracked by U-Space and is 
	based on the matching the current UA position to one of the tracks.
</t>
<t>
	The project lists "E-Identification" and "E-Registrations" services 
	as to be developed.  These services can follow the privacy 
	mechanism proposed in this document.  If an "agnostic ID" above 
	refers to a completely random identifier, it creates a problem with 
	identity resolution and detection of misuse.  On the other hand, a 
	classical HIT has a flat structure which makes its resolution 
	difficult.  The Hierarchical HITs provide a balanced solution by 
	associating a registry with the UA identifier. This is not likely 
	to cause a major conflict with U-space privacy requirements, as the 
	registries are typically few at a country level (e.g., civil 
	personal, military, law enforcement, or commercial).
</t>
</section>
<section anchor="Coll_Prob" numbered="true" toc="default"> <name>Calculating Collision Probabilities</name>
<t>
	The accepted formula for calculating the probability of a collision 
	is:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[

    p = 1 - e^{-k^2/(2n)}


    P   Collision Probability
    n   Total possible population
    k   Actual population


]]></artwork>
<t>
	The following table provides the approximate population size for a 
	collision for a given total population.
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
                       Deployed Population
     Total            With Collision Risk of
     Population         .01%            1%

     2^96                 4T           42T
     2^72                 1B           10B
     2^68               250M          2.5B
     2^64                66M          663M
     2^60                16M          160M
]]>
</artwork>
</section>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil 
	Aviation Administration.
</t>
<t>
	Quynh Dang of NIST gave considerable guidance on using Keccak and 
	the NIST supporting documents.  Joan Deamen of the Keccak team was 
	especially helpful in many aspects of using Keccak. Nicholas 
	Gajcowski <xref target="cfrg-comment" format="default"/> provided a 
	concise hash pre-image security assessment via the CFRG list.
</t>
<t>
	Many thanks to Michael Richardson for the iotdir review, Magnus 
	Nystrom for the secdir review and DRIP co-chair and draft shepherd, 
	Mohamed Boucadair for his extensive comments and help on document 
	clarity.
</t>
</section>
</back>
</rfc>
