﻿<?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" docName="draft-moskowitz-drip-uas-rid-06"
	category="std" ipr="trust200902" obsoletes="" updates="" submissionType="IETF"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front>
<title abbrev="UAS Remote ID">UAS Remote ID</title>
	<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</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</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="2020" />
   <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) as a self-asserting and thereby trustable Identifier for 
	use as the UAS Remote ID.  HHITs include explicit hierarchy to 
	provide Registrar discovery for 3rd-party ID attestation.
<!--	Further, 
	HHITs can also be used elsewhere in the UTM architecture to 
	facilitate UAS communications.-->
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<t> 
	<xref target="I-D.ietf-drip-reqs" format="default" /> describes a 
	UAS ID as a "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 HITs (HHITs)</xref> as 
	self-asserting and thereby a trustable Identifier for use as the 
	UAS Remote ID. HHITs include explicit hierarchy to provide 
	Registrar discovery for 3rd-party ID attestation.
</t>
<t> 
	HITs are statistically unique through the cryptographic hash 
	feature of second-preimage resistance.  The cryptographically-bound 
	addition of the Hierarchy and thus <xref 
	target="I-D.moskowitz-hip-hhit-registries" format="default">HHIT 
	Registries</xref> provide complete, global HHIT uniqueness.  This 
	is in contrast to general IDs (e.g. a UUID or device serial number) 
	as the subject in an X.509 certificate.
</t>
<t>
	In a multi-CA PKI, a subject can occur in multiple CAs, possibly 
	fraudulently.  CAs within the PKI would need to implement an 
	approach to enforce assurance of uniqueness.
</t>
<t> 
	Hierarchical HITs are valid, though non-routable, IPv6 addresses.  
	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>Notation</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>
	See <xref target="I-D.ietf-drip-reqs" format="default" /> for 
	common DRIP terms.
</t>
	  <dl newline="true" spacing="normal">
<!--		<dt>CS-RID</dt>
		<dd>
			Crowd Sourced Remote Identification.  An optional DRIP WG 
			service that gateways Broadcast RID to Network RID, and 
			supports verification of RID positon/velocity claims with 
			independent measurements (e.g. by multilateration), via a 
			SDSP.
		</dd> -->
		<dt>cSHAKE (The customizable SHAKE function):</dt>
		<dd>
			Extends the SHAKE scheme to allow users to customize their 
			use of the function.
		</dd>
		<dt>HI</dt>
		<dd>
			Host Identity.  The public key portion of an asymmetric 
			keypair used in HIP.
		</dd>
		<dt>HIP</dt>
		<dd>
			Host Identity Protocol.  The origin of HI, HIT, and HHIT, 
			required for DRIP. Optional full use of HIP enables 
			additional DRIP functionality.
		</dd>
		<dt>HDA (Hierarchical HIT Domain Authority):</dt>
		<dd>
			The 16 bit field identifying the HIT Domain Authority under 
			an RAA.
		</dd>
		<dt>HHIT</dt>
		<dd>
			Hierarchical Host Identity Tag.  A HIT with extra 
			hierarchical information not found in a standard HIT.
		</dd>
		<dt>HID (Hierarchy ID):</dt>
		<dd>
			The 32 bit field providing the HIT Hierarchy ID.
		</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.
		</dd>
		<dt>RAA (Registered Assigning Authority):</dt>
		<dd>
			The 16 bit field identifying the Hierarchical HIT Assigning 
			Authority.
		</dd>
		<dt>RVS (Rendezvous Server):</dt>
		<dd>
			The HIP Rendezvous Server for enabling mobility, as defined 
			in <xref target="RFC8004" format="default"/>.
		</dd>
		<dt>SHAKE (Secure Hash Algorithm KECCAK):</dt>
		<dd>
			A secure hash that allows for an arbitrary output length.
		</dd>
		<dt>XOF (eXtendable-Output Function):</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_RID" numbered="true" toc="default"> <name>Hierarchical HITs as Remote ID</name>
<t>
	Hierarchical HITs are a refinement on the Host Identity Tag (HIT) 
	of <xref target="RFC7401" format="default">HIPv2</xref>.  HHITs 
	require a new ORCHID mechanism as described in <xref 
	target="ORCHIDs" format="default"/>.  HHITs for UAS ID also use the 
	new EdDSA/SHAKE128 HIT suite defined in <xref 
	target="EdDSA" format="default"/> (requirements GEN-2).  This 
	hierarchy, cryptographically embedded within the HHIT, provides the 
	information for finding the UA's HHIT registry (ID-3).
</t>
<t anchor="IDtypes">
	The current ASTM <xref target="F3411-19" format="default"/> 
	specifies three 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"/>, which can but need not be dynamic.
	</li>
	</ol>
<t>
	For HHITs to be used effectively as UAS IDs, F3411-19 SHOULD add 
	UAS ID type 4 as HHIT.
</t>
<section numbered="true" toc="default"> <name>Remote ID as one class of Hierarchical HITs</name>
<t> 
	UAS Remote ID may be one of a number of 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 the IPv6 prefix nor the Orchid 
	Generation Algorithm (OGA) ID (the HIT Suite ID) to the hash of the 
	HI.  The justification then was attacks against these fields are 
	DoS attacks against protocols using them.
</t>
<t> 
	HHITs, as defined in <xref target="ORCHIDs" 
	format="default"/>, cryptographically bind all content in the 
	ORCHID though the hashing function.  Thus a recipient of a HHIT 
	that has the underlying HI can directly act on all content in the 
	HHIT. This is especially important to using the hierarchy to find 
	the HHIT Registry.
</t>
</section>
<section numbered="true" toc="default"> <name>Hierarchical HIT Registry</name>
<t> 
	HHITs are registered to Hierarchical HIT Domain Authorities (HDAs) 
	as described in <xref target="I-D.moskowitz-hip-hhit-registries" 
	format="default"/>.  This registration process ensures UAS ID global 
	uniqueness (ID-4).  It also provides the mechanism to create UAS 
	Public/Private data associated with the HHIT UAS ID (REG-1 and 
	REG-2).
</t>
<t> 
	The 2 levels of hierarchy within the HHIT 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 numbered="true" toc="default"> <name>Remote ID Authentication using HHITs</name>
<t> 
	The EdDSA25519 Host Identity (HI) [<xref target="EdDSA" 
	format="default"/>] underlying the HHIT is used for the Message 
	Wrapper, Sec 4.2 <xref target="I-D.wiethuechter-drip-auth" 
	format="default"/> (requirements GEN-2).  It and the HDA's HI/HHIT 
	are used for the Auth Certificate, sec 5.1 <xref 
	target="I-D.wiethuechter-drip-auth" format="default"/> 
	(requirements GEN-3).  These messages also establish that the UA 
	owns the HHIT and that no other UA can assert ownership of the HHIT 
	(GEN-1).
</t>
<t> 
	The number of HDAs authorized to register UAs within an NAS 
	determines the size of the HDA credential cache a device processing 
	the Offline Authentication.  This cache contains the HDA's HI/HHIT 
	and HDA meta-data; it could be very small.
</t>
</section>
</section>
<section anchor="HHIT_DNS" numbered="true" toc="default"> <name>UAS ID HHIT in DNS</name>
<t>
	There are 2 approaches for storing and retrieving the HHIT from 
	DNS.  These are:
</t>
<ul>
	<li>
		As FQDNs in the .aero TLD.
	</li>
	<li>
		Reverse DNS lookups as IPv6 addresses per <xref 
		target="RFC8005" format="default"/>.
	</li>
</ul>
<t>
	The HHIT 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).  For example the USS for the  HHIT could be found via the 
	following.  Assume that the RAA is 100 and the HDA is 50.  The PTR 
	record is constructed as:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    100.50.hhit.uas.areo   IN PTR      foo.uss.areo.
]]>
</artwork>
<t>
	The individual HHITs are potentially too numerous (e.g. 60 - 600M) 
	and dynamic to actually store in a signed, DNS zone.  Rather the 
	USS would provide the HHIT detail response.
</t>
<t>
	The HHIT reverse lookup can be a standard IPv6 reverse look up, or 
	it can leverage off the HHIT structure.  Assume that the RAA is 10 
	and the HDA is 20 and the HHIT is:
    </t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    2001:14:28:14:a3ad:1952:ad0:a69e
]]>
</artwork>
<t>
	An HHIT reverse lookup would be to is:
    </t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    a69e.ad0.1952.a3ad14.28.14.2001.20.10.hhit.arpa.
]]>
</artwork>
</section>
<section anchor="Other_HHIT" numbered="true" toc="default"> <name>Other UTM uses of HHITs</name>
<t>
	HHITs can be used extensively within the UTM architecture beyond 
	UA ID (and USS in UA ID registration and authentication).  This 
	includes a GCS HHIT ID.  It could use this if it is the source of 
	Network Remote ID for securing the transport and for secure C2 
	transport <xref target="I-D.moskowitz-drip-secure-nrid-c2" 
	format="default"/>.
</t>
<t>
	Observers SHOULD have 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.  Further, they can be used by FINDER 
	observers, <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 provides solutions to GEN 1 - 3, ID 1 - 5, and REG 1 
	- 2.
</t>
</section>

<section anchor="ASTM" numbered="true" toc="default"> <name>ASTM Considerations</name>
<t>
	  ASTM will need to make the following changes to the "UA 
	  ID" in the Basic Message:
</t>
	<dl newline="true">
		<dt>Type 4:</dt>
		<dd>
			This document UA ID of Hierarchical HITs (see <xref 
			target="HHIT_RID" format="default"/>).
		</dd>
	</dl>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	  IANA will need to make the following changes to the "Host 
	  Identity Protocol (HIP) Parameters" registries:
</t>
	<dl newline="true">
		<dt>Host ID:</dt>
		<dd>
			This document defines the new EdDSA Host ID (see <xref 
			target="host_id" format="default"/>).
		</dd>
		<dt>HIT Suite ID:</dt>
		<dd>
			This document defines the new HIT Suite of EdDSA/cSHAKE 
			(see <xref target="hit_suite_list" format="default"/>).
		</dd>
	</dl>
<t>
	Because HHIT use of ORCHIDv2 format is not compatible with <xref 
	target="RFC7343" format="default"> </xref>, IANA is requested to 
	allocated a new 28-bit prefix out of the IANA IPv6 Special Purpose 
	Address Block, namely 2001:0000::/23, as per <xref target="RFC6890" 
	format="default"> </xref>.
</t>
</section>
<section numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	A 64 bit hash space presents a real risk of second pre-image 
	attacks <xref target="Collision" format="default"/>.  The HHIT 
	Registry services effectively block attempts to "take over" a HHIT.  
	It does not stop a rogue attempting to impersonate a known HHIT.  
	This attack can be mitigated by the receiver of the HHIT using DNS 
	to find the HI for the HHIT.
</t>
<t>
	Another mitigation of HHIT hijacking is if the HI owner supplies an 
	object containing the HHIT and signed by the HI private key of the 
	HDA.
</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. 
	"hhit.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 has direct 
	protection against forced or accidental HIT hash collisions.
</t>
<t>
	Cryptographically Generated Addresses (CGAs) provide a unique 
	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 as in <xref 
	target="I-D.moskowitz-hip-hhit-registries" format="default">HHIT 
	Registries</xref> provides a level of assured uniqueness 
	unattainable without mirroring this approach.
</t>
<t>
	The second aspect of assured uniqueness is the digital signing 
	process of the HHIT by the HI private key and the further signing 
	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 HHIT, 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="HHIT_trust" numbered="true" toc="default"> <name>Hierarchical HIT Trust</name>
<t>
	The HHIT UAS RID in the ASTM Basic Message (the actual Remote ID 
	message) does not provide any assertion of trust.  The best that 
	might be done is 4 bytes truncated from a HI signing of the HHIT 
	(the UA ID field is 20 bytes and a HHIT is 16).  It is in the ASTM 
	Authentication Messages as defined in <xref 
	target="I-D.wiethuechter-drip-auth" format="default"/> that provide 
	all of the actual ownership proofs.  These claims include 
	timestamps to defend against replay attacks.  But in themselves, 
	they do not prove which UA actually sent the message.   They could 
	have been sent by a dog running down the street with a Broadcast 
	Remote ID device strapped to its back.
</t>
<t>
	Proof of UA transmission comes when the Authentication Message 
	includes proofs for the Location/Vector Message 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 HHIT Remote ID.
</t>
<t>
	HHIT Remote IDs obtained via the Network Remote ID 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 HHIT RID trust.
</t>
</section>
<section anchor="Collision" numbered="true" toc="default"> <name>Collision risks with Hierarchical HITs</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. Some registration process should be used to 
	reject a collision, forcing the client to generate a new HI and 
	thus HIT and reapplying to the registration process.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.moskowitz-hip-hhit-registries" to="hhit-registries"/>
<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-auth" to="drip-auth"/>
<displayreference target="I-D.ietf-drip-reqs" to="drip-requirements"/>
<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.8032.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/bibxml3/reference.I-D.moskowitz-hip-hhit-registries.xml?anchor=hhit-registries"/>
    <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.FIPS.202.xml?anchor=NIST.FIPS.202"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-185.xml?anchor=NIST.SP.800-185"/>
	<reference anchor="F3411-19"  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>
			<date month="02" year="2020" />
		</front>
	</reference>
</references>
<references title="Informative References">
	<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.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.8004.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/bibxml3/reference.I-D.ietf-drip-reqs.xml?anchor=drip-reqs"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.moskowitz-drip-secure-nrid-c2.xml?anchor=drip-secure-nrid-c2"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.moskowitz-drip-crowd-sourced-rid.xml?anchor=drip-crowd-sourced-rid"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.wiethuechter-drip-auth.xml?anchor=drip-auth"/>
	<reference anchor="CTA2063A" target="">
	<front>
		<title>Small Unmanned Aerial Systems Serial Numbers</title>
		<author>
			<organization>ANSI</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>
</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="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.  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 and uses the other 32 
	bits to create a hierarchical administration organization for HIT 
	domains.  Hierarchical HITs are <xref target="ORCHIDs" 
	format="default" >"Using cSHAKE in ORCHIDs"</xref>. The input 
	values for the Encoding rules are in <xref target="HCGA" 
	format="default"/>.
</t>
<t>
	A HHIT is built from the following fields:
</t>
      <ul spacing="normal">
        <li>
			28 bit IANA prefix
		</li>
        <li>
			4 bit HIT Suite ID
		</li>
        <li>
			32 bit Hierarchy ID (HID)
		</li>
        <li>
			64 bit ORCHID hash
		</li>
      </ul>
<section anchor="Prefix" numbered="true" toc="default"> <name>HHIT prefix</name>
<t>
	A unique 28 bit prefix for HHITs is recommended.  It clearly 
	separates the flat-space HIT processing from HHIT processing per 
	<xref target="ORCHIDs" format="default" >"Using cSHAKE in 
	ORCHIDs"</xref>. 
</t>
</section>
<section anchor="HHIT_Suite" numbered="true" toc="default"> <name>HHIT Suite IDs</name>
<t>
	The HIT Suite IDs specifies the HI and hash algorithms.  Any HIT 
	Suite ID can be used for HHITs, provided that the prefix for HHITs 
	is different from flat space HITs.  Without a unique prefix, <xref 
	target="Prefix" format="default"/>, additional HIT Suite IDs would 
	be needed for HHITs.  This would risk exhausting the limited Suite 
	ID space of only 15 IDs.
</t>
</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 2 fields:
  </t>
        <ul spacing="normal">
          <li>
			16 bit Registered Assigning Authority (RAA)
		</li>
          <li>
			16 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 16 bit field (65,536 RAAs) assigned by a numbers 
	management organization, perhaps ICANN's IANA service.  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>
	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 HHTs.
</t>
<t>
	This DNS zone may be a PTR for its RAA.  It may be a zone in a HHIT 
	specific DNS zone.  Assume that the RAA is 100.  The PTR record 
	could be constructed:
</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 for HIP enabled devices.
</t>
<t>
	The HDA is an 16 bit field (65,536 HDAs per RAA) assigned by an 
	RAA.  An HDA should maintain a set of RVS servers that its client 
	HIP-enabled customers use.  How this is done and scales to the 
	potentially millions of customers is 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.
</t>
</section>
<!-- <section anchor="HCGA" numbered="true" toc="default"> <name>Changes to ORCHIDv2 to support Hierarchical HITs</name>
<t>
	A new format for ORCHIDs to support Hierarchical HITs is defined in 
	<xref target="ORCHIDs" format="default" >"Using cSHAKE in 
	ORCHIDs"</xref>.  For this use the following values apply:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
    Prefix     :=  HHIT Prefix
                   Note: per section 4.1, this should be different
                         than the Prefix for RFC 7401
    OGA ID     :=  4-bit Orchid Generation Algorithm identifier
                   The HHIT Suite ID
    Context ID :=  0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40
    Info (n)   :=  32 bit HID (Hierarchy ID)
    Hash       :=  Hash_function specified in OGA ID
                       If hash is not a variable length output hash,
                       then en Encode_m, similar to ORCHID Encode_96
                       is used
    m          :=  64
]]>
</artwork>
</section> -->
<!-- <section anchor="Collision" numbered="true" toc="default"> <name>Collision risks with Hierarchical HITs</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 HDA.  Further, 
	all HDAs are expected to provide a registration process for reverse 
	lookup validation.  This registration process would reject a 
	collision, forcing the client to generate a new HI and thus 
	hierarchical HIT and reapplying to the registration process.
</t>
</section> -->
</section>
</section>
<section anchor="ORCHIDs" numbered="true" toc="default"> <name>ORCHIDs for Hierarchical HITs</name>
<t> 
	This section adds the <xref target="Keccak" 
	format="default">Keccak</xref> based cSHAKE XOF hash function from 
	<xref target="NIST.SP.800-185" format="default">NIST SP 
	800-185</xref> to <xref target="RFC7343" 
	format="default">ORCHIDv2</xref>. cSHAKE 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.
</t>
<t>
	This ORCHID construction includes the Prefix in the hash to protect 
	against Prefix subsitution attacks.  It also provides for inclusion 
	of additional information, in particular the hierarchical bits of 
	the Hierarchical HIT, in the ORCHID generation.  It should be 
	viewed as an addendum to <xref target="RFC7343" 
	format="default">ORCHIDv2</xref>.
</t>
<t>
	cSHAKE is used, rather than SHAKE from <xref target="NIST.FIPS.202" 
	format="default">NIST FIPS 202</xref>, as 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>
<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 | OGA ID | Info (n) | Hash (m)

where:

Prefix (p)      : A (max 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.

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

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

p + n + m = 124 bits

]]>
</artwork>
<t>
	With a 28 bit IPv6 Prefix, the 96 bits currently allocated to the 
	Encode_96 function can be divided in any manner between the 
	additional information 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.
</t>
</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 (HIT Suite ID).  ORCHIDv2 <xref target="RFC7343" 
	format="default"/> decoding is selected when the Prefix is: 
	2001:20::/28.
</t>
<t>
	For Heirarchical HITs, the decoding is determined by the presence 
	of the HHIT Prefix as specified in the HHIT document.
</t>
</section>
<section anchor="Encode" numbered="true" toc="default"> <name>ORCHID Encoding</name>
<t>
	ORCHIDv2 has a number of inputs including a Context ID, some header 
	bits, the hash algorithm, and the input bitstream, normally just 
	the public key. The output is a 96 bit value.
</t>
<t>
	This addendum adds a different encoding process to that currently 
	used.  The input to the hash function explicitly includes all the 
	fixed header content plus the Context ID.  The fixed header content 
	consists of the Prefix, OGA ID (HIT Suite ID), and the Additional 
	Information. Secondly, the length of the resulting hash is set by 
	the rules set by the Prefix/OGA ID.  In the case of Hierarchical 
	HITs, this is 64 bits.
</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 | OGA ID | Additional Information | HOST_ID
    L          :=  Length in bits of hash portion of ORCHID
]]>
</artwork>
<t>
	Hierarchical HIT uses the same context as all other HIPv2 HIT 
	Suites as they are clearly separated by the distinct HIT Suite ID.
</t>
</section>
</section>
<section anchor="EdDSA" numbered="true" toc="default"> <name>Edward Digital Signature Algorithm for HITs</name>
<t>
	Edwards-Curve Digital Signature Algorithm (EdDSA) <xref 
	target="RFC8032" format="default"> </xref> are specified here for 
	use as Host Identities (HIs).
</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 
	Section 5.2.19 of <xref target="RFC7401" format="default"/>.
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm
     profiles         Values

     EdDSA            13 [RFC8032]       (RECOMMENDED)
]]>
</artwork>
<t>
	For hosts that implement EdDSA as the algorithm, the following ECC 
	curves are available:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Algorithm    Curve            Values

     EdDSA        RESERVED         0
     EdDSA        EdDSA25519       1 [RFC8032]
     EdDSA        EdDSA25519ph     2 [RFC8032]
     EdDSA        EdDSA448         3 [RFC8032]
     EdDSA        EdDSA448ph       4 [RFC8032]
]]>
</artwork>
</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 Responder. Based on the HIT_SUITE_LIST, the 
	Initiator can determine which source HIT Suite IDs are supported by 
	the Responder. The HIT_SUITE_LIST parameter is defined in Section 
	5.2.10 of <xref target="RFC7401" 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       Four-bit ID    Eight-bit encoding
     RESERVED            0             0x00
     EdDSA/cSHAKE128     5             0x50           (RECOMMENDED)
]]>
</artwork>
<t>
	The following table provides more detail on the above HIT Suite 
	combinations.  The input for each generation algorithm is the 
	encoding of the HI as defined in this Appendix. The output is 96 
	bits long and is directly used in the ORCHID.
</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 96 bits</td>
		</tr>
	</tbody>
</table>
</section>
	</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>
</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.
</t>
</section>
</back>
</rfc>
