﻿<?xml version='1.0' encoding='utf-8'?>
<?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-moskowitz-drip-a2x-adhoc-session-06"
	category="std" ipr="trust200902" obsoletes="" submissionType="IETF"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front> <title abbrev="A2X AdHoc sessions">Aircraft to Anything AdHoc Broadcasts and Session</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-drip-a2x-adhoc-session-06"/>
	<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="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="2025" />
   <area>Internet</area>
   <workgroup>DRIP</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>DRIP</keyword>
<abstract>
<t>
	Aircraft-to-anything (A2X) communications are often single 
	broadcast messages that to be trustable, need to be signed with 
	expensive (in cpu and payload size) asymmetric cryptography.  There 
	are also frequent cases of extended exchanges between two devices 
	where trust can be maintained via a lower cost symmetric key 
	protect flow.
</t>
<t>
	This document shows both how to secure A2X broadcast messages with 
	DRIP Entity Tags (DET) and DRIP Endorsement objects and to leverage 
	these to create an AdHoc session key for just such a communication 
	flow.
</t>
<t>
	There is also provision for DETs within X.509 certificates, encoded 
	in c509, as an alternative DET trust model.
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<t> 
	Aircraft-to-anything (A2X) communications are currently an open 
	area of debate and research.  There are questions as to whether 
	air-to-ground-to-air or air-to-air will prevail as the driving 
	force and thus the impetus for solutions.  One real need is in 
	air-to-air Detect And Avoid (DAA).  There are current DAA 
	approaches for commercial/general aviation over Automatic Dependent 
	Surveillance–Broadcast (ADS-B); this is unlikely to scale to the 
	needs of Unmanned Aircraft (UA).  UA-to-UA and UA - to - General 
	Aviation will drive a different solution.
</t>
<t>
	ADS-B cannot, directly, be secured.  The data framing is too 
	constrained, and the Manifest approach in <xref target="RFC9575" 
	format="default"/> is also not possible within the ADS-B 
	constraints.  This is considered an acceptable risk, as these large 
	airframes can support radar systems to validate presense reported 
	by ADS-B along with crew visual sighting.  Neither of these are 
	options in UA-to-anything and thus a trustable messaging 
	environment is needed.
</t>
<t>
	Although all aspects of this document is applicable to all 
	aircraft, the language will be Uncrewed Aircraft (UA) slanted. This 
	is to avoid any confusion within the body of the document about 
	what type of aircraft is under discussion.
</t>
<t>
	A prevailing current approach for UA-to-anything messaging is to 
	leverage the Broadcast Remote ID (B-RID) messages, as they provide 
	situational awareness in the Vector/Location ASTM messages <xref 
	target="F3411-22a" format="default"/>.  But this message is not 
	adequate by itself for situational awareness as it does not 
	identify the UA (other than the wireless media MAC address).  Thus 
	although it is possible for UAs act on a set of B-RID messages, 
	this document will define specific, singular, messages that are 
	directly actionable by listening UAs.
</t>
<t>
	The messages defined in this document leverage the DRIP Entity Tags 
	(DET) <xref target="RFC9374" format="default"/> and its underlying 
	Ed25519 keypair.  It also relies on DET endorsement hierarchy for 
	trust in the DETs.
</t>
<t>
	ECDSA as in the ICAO defined International Aviation Common (IAC) 
	PKI can be used in DETs (DET Suite ID of 3).  With 
	point-compression, the P-256 keys would have Host Idenities (HI) 1 
	byte larger than Ed25519 (i.e. 33 bytes).  This increase may still 
	be usable.  It would also facilitate DAA between civil/general 
	aviation and UAs.
</t>
<section anchor="x509" numbered="true" toc="default"> <name>X.509 Certificate in place of DET Endorsements</name>
<t>
	The DRIP DET Public Key Infrastructure, <xref 
	target="I-D.moskowitz-drip-dki" section="4" format="default"/> 
	defines two X.509 certificates profiles, a "Lite" and a "Full" 
	profile to "shadow" the DET Endorsements.  Even the Lite X.509 
	certificates are much larger than the DET Endorsements (e.g. 256 
	bytes for Lite and 286 bytes for Full).  This may be too large for 
	some transmission media.
</t>
<t>
	There is an alternative C509 encoding for these X.509 certificates 
	per <xref target="I-D.ietf-cose-cbor-encoded-cert" 
	format="default"/>.  These C509 certificates in initial testing are 
	172 bytes and 192 bytes respectively.  This is still larger than 
	the DET Endorsements, but may be small enough.
</t>
<t>
	Author's Note: More content is needed for those that wish to 
	implement c509.
</t>
</section>
</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" title="Notation">
	<dl newline="true" spacing="normal">
		<dt>|</dt>
		<dd>
			Signifies concatenation of information (e.g., X | Y is the             
			concatenation of X with Y).
		</dd>
		<dt>Ltrunc (x, K)</dt>
		<dd>
			Denotes the lowest order K bits of the input x.
		</dd>
	</dl>
</section>
<section numbered="true" toc="default"> <name>Definitions</name>
<t>
	This document uses the terms defined in <xref target="RFC9153" 
	section="2.2" format="default">Drip Requirements and 
	Terminology</xref> and in <xref target="RFC9434" section="2" 
	format="default">Drip Architecture</xref>.  The following new terms 
	are used in the document:
</t>
	<dl newline="true" spacing="normal">
		<dt>A2X</dt>
		<dd>
			Communications from an aircraft to any other device.  Be it 
			another aircraft or some ground equipment.
		</dd>
		<dt>cSHAKE customizable SHAKE function (cSHAKE) <xref 
			target="DOI_10.6028_NIST.SP.800-185" format="default"/>:</dt>
		<dd>
			Extends the SHAKE scheme <xref target="DOI_10.6028_NIST.FIPS.202" 
			format="default"/> to allow users to customize their 
			use of the SHAKE function.
		</dd>
        <dt>KECCAK Message Authentication Code (KMAC) <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>
 	</dl>
</section>
</section>
<section anchor="BA2X" numbered="true" toc="default"> <name>Broadcast A2X messaging</name>
<t>
	The basic view of Aircraft-to-Anything (A2X) communications is 
	broadcast based.  What is there within radio range of a UA? In most 
	situations, the UA has no apriori knowledge of other systems around 
	it.  Thus the UA would just broadcast any information of general 
	knowledge, like "Hello, I am me and I am here. Oh, and I am out of 
	fuel and crashing."
</t>
<t>
	Thus the first concern is to be able to create a single, trusted 
	message from the UA for all devices around it.  The following 
	sections detail the pieces of such a trusted message.
</t>
<section anchor="CHDA-UA" numbered="true" toc="default"> <name>The Compressed DRIP HDA Endorsement of UA DET</name>
<t>
	The DRIP HDA Endorsement of UA DET is a DRIP Link authentication 
	message as defined in <xref target="RFC9575" section="4.2" 
	format="default"/>.  It is the primary trust proof of UA DETs.  
	This object is 136 bytes, but in the specific context where the UA 
	DET has the same first 64 bits as the HDA DET (typical case), the 
	16 byte UA DET can be derived from the HDA DET and the UA HI, 
	compressing the object to 120 bytes.
</t>
<table anchor="hda-ua-tbl"> <name>120-Byte Compressed HDA on UA Endorsement</name>
  <thead>
    <tr>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>

      <td>4</td>
      <td>VNB Timestamp</td>
      <td>Current time at signing, set by HDA</td>
    </tr>
    <tr>
      <td>4</td>
      <td>VNA Timestamp</td>
      <td>Timestamp denoting recommended time to trust Endorsement, 
          set by HDA</td>
    </tr>
    <tr>
      <td>32</td>
      <td>HI of UA</td>
      <td>Host Identity of UA</td>
    </tr>
    <tr>
      <td>16</td>
      <td>DET of HDA</td>
      <td>DRIP Entity Tag of HDA</td>
    </tr>
    <tr>
      <td>64</td>
      <td>Signature by HDA</td>
      <td>Signature over preceding fields using the keypair of the HDA DET</td>
    </tr>
  </tbody>
</table>
</section>
<section anchor="UA-A2X" numbered="true" toc="default"> <name>Full UA Signed Evidence of the A2X message</name>
<t>
	The UA can now fully endorse a A2X message by signing it, along 
	with the HDA Compressed Endorsement of the UA (<xref 
	target="CHDA-UA" format="default"/>).  A Message ID field is needed 
	to distinguish all the multiple messages for this datagram.  The 
	message also needs a Until timestamp for a total of 189 bytes plus 
	n bytes of the actual message:
</t>
<table anchor="ua-full-endors-tbl"> <name>189+n Byte Full UA Signed A2X message</name>
  <thead>
    <tr>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>4</td>
      <td>VNA Timestamp</td>
      <td>Timestamp denoting recommended time to trust Evidence</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Message ID</td>
      <td>A2X Message ID Number</td>
    </tr>
    <tr>
      <td>n</td>
      <td>A2X Message</td>
      <td>Actual A2X Message</td>
    </tr>
    <tr>
      <td>120</td>
      <td>HDA/UA Endorsement</td>
      <td>Compressed HDA on UA Endorsement</td>
    </tr>
    <tr>
      <td>64</td>
      <td>Signature by UA</td>
      <td>Signature over preceding fields using the keypair of the UA DET</td>
    </tr>
  </tbody>
</table>
</section>
<section anchor="CUA-A2X" numbered="true" toc="default"> <name>Compressed UA Signed Evidence of the A2X message</name>
<t>
	The UA also has the option to send a A2X message without the HDA 
	Endorsement (<xref target="CHDA-UA" format="default"/>).  These 
	shorter messages can be alternated with the full messages, based on 
	an assumption that the other parties will receive the full endorsed 
	message either prior or after this shorter message format.  Or a 
	block of these shorter messages could be sent based on other 
	assumptions.  This message is 85 bytes plus n bytes of the actual 
	message, with the average overhead of the 2 messages (1:1 
	transmission) is 137 bytes:
</t>
<table anchor="ua-cmprs-endors-tbl"> <name>85+n Byte Compressed UA Signed A2X message</name>
  <thead>
    <tr>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>4</td>
      <td>VNA Timestamp</td>
      <td>Timestamp denoting recommended time to trust Evidence</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Message ID</td>
      <td>A2X Message ID Number</td>
    </tr>
    <tr>
      <td>n</td>
      <td>A2X Message</td>
      <td>Actual A2X Message</td>
    </tr>
    <tr>
      <td>16</td>
      <td>DET of UA</td>
      <td>DRIP Entity Tag of UA</td>
    </tr>
    <tr>
      <td>64</td>
      <td>Signature by UA</td>
      <td>Signature over preceding fields using the keypair of the UA DET</td>
    </tr>
  </tbody>
</table>
</section>
<section anchor="ipv6-A2X" numbered="true" toc="default"> <name>IPv6 datagram for A2X message via SCHC</name>
<t>
	All the pieces are present in these messages for a SCHC <xref 
	target="RFC8724" format="default" /> process to expand them to 
	multicast addressed IPv6 datagrams.  The destination IPv6 address 
	would be ff02::1 (all nodes), the source address is the UA DET. The 
	protocol would be UDP with the port numbers are still TBD and 
	completely up to the receiving UA.
</t>
<t>
	Thus the A2X application would just be an IPv6 application and A2X 
	could be this broadcast method or a datagram that actually was 
	routed over an IPv6 network.  There is no transmission cost to 
	this, just the SCHC mechanism.  It is completely up to the 
	receiving UA and the sending UA needs not be concerned if this is 
	how its messages are processed.
</t>
</section>
</section>
<section anchor="A2A" numbered="true" toc="default"> <name>Using full Endorsement messaging to set up a A2A session</name>
<t>
	The Ed25519 keys used for DETs can be converted to Curve25519 keys 
	per <xref target="RFC7748" format="default"/> for use in an X25519 
	ECDH key establishment.  The P-256 keys in ECDSA can be directly 
	used in an ECDH key establishment <xref 
	target="DOI_10.6028_NIST.SP.800-56AR3" format="default"/>. However, 
	these keys are not enough for key establishment, nonces are needed 
	to make each encounter has a unique session key. These nonces need 
	to be at least 16 bytes each (from each party in the session). The 
	security concerns of using potentially static, rather than 
	ephemeral EC keys is discussed in <xref target="static_ECDH" 
	format="default"/>.
</t>
<t>
	One use case for this is in DAA. There may be a number of messages 
	between two UA during the DAA event.  The DAA event would probably 
	start when each party receives a Vector/Location message showing a 
	potential encounter. If we use the ASTM F3411-22a Vector/Location 
	message, less the timestamp information, along with a 16 byte 
	nonce, we have the beginning of the additional information for this 
	ECDH key establishment and use of the key in a authenticated 
	session.
</t>
<table anchor="ua-nonce-a2a-tbl"> <name>225-Byte Nonce enabled A2A message</name>
  <thead>
    <tr>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>4</td>
      <td>VNA Timestamp</td>
      <td>Timestamp denoting recommended time to trust Evidence</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Message ID</td>
      <td>A2X Message ID Number</td>
    </tr>
    <tr>
      <td>16</td>
      <td>Nonce</td>
      <td>Random Session Nonce</td>
    </tr>
    <tr>
      <td>20</td>
      <td>Vector/Location</td>
      <td>Extracted from ASTM Vector/Location message</td>
    </tr>
    <tr>
      <td>120</td>
      <td>HDA/UA Endorsement</td>
      <td>Compressed HDA on UA Endorsement</td>
    </tr>
    <tr>
      <td>64</td>
      <td>Signature by UA</td>
      <td>Signature over preceding fields using the keypair of the UA DET</td>
    </tr>
  </tbody>
</table>
<t>
	Such an authenticated session would look much like DTLS, needing a 
	Connection ID to map in the systems to the symmetric connection 
	keys and ending in a keyed-MAC.  Note that authentication may be 
	enough and encryption of the message content will rarely be of 
	value.  If specific data elements need confidentiality, they can be 
	encrypted in place using AES-CFB.
</t>
<t>
	Carefully constructed, though still random, nonces can be used to 
	construct a 1-byte Connection ID as follows.  Each V/L message 
	includes a 16 byte nonce that changes regularly, say once a second.  
	In a 16 (or 32) nonce window, the first 4 bits of the nonce MUST be 
	unique.  Then the Connection ID can be:
	.
</t>
<figure anchor="connection-id">
	<artwork align="center" name="" type="" alt="">
<![CDATA[
ConnectionID = ltrunc(othernonce,4)|ltrunc(mynonce,4)
]]>
</artwork>
</figure>
<t>
	Note that there is no provision in the above message for specifying 
	the session protection algorithm.  Table 5, below, does a KMAC on 
	the message; this does not provide for crypto agility.
</t>
<t>
	Note that a 1-byte approach could be support of 64 possible 
	algorithms and the above message provide a list of 4 choices in 
	order of preference.  This is similar to the DH_GROUP_LIST in the 
	HIPv2 I1 message; at least this list would be protected from tamper 
	by the message signature.
</t>
<section anchor="skdf" numbered="true" toc="default"> <name>Session Key Derivation</name>
<t>
	Each UA converts its Ed25519 private key to an Curve25519 private 
	key.  Likewise it converts the received Ed25519  key to an 
	Curve25519 public key (e.g. <xref target="Ed25519_Curve25519" 
	format="default"/>).  These are then used for each UA to compute 
	the X25519 derived shared secret.  Alternatively a P-256 key may 
	be used.
</t>
<t>
	Note that there is no way for one party to use P-256 and the other 
	Curve25519.  This method is reserved for cases where both have the 
	same key algorithm.
</t>
<t>
	Here, KMAC from <xref target="DOI_10.6028_NIST.SP.800-185" 
	format="default"/> is used with x25519.  This is a single pass 
	using the underlying cSHAKE function.  The function call is:
</t>
<figure anchor="ed25519_kdf"> <name>Session Key Derivation Function</name>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     OKM = KMAC128(salt | info, IKM, 128, S)

     Where
     
     IKM     = X25519 ECDH secret | sort(HI-my | HI-other)
     salt    = sort(nonce-my | nonce-other)
     info    = sort(DET-my | DET-other)
     S       = the byte string 01001011 | 01000100 | 01000110
                which is the characters "K", "D", and "F"
                in 8-bit ASCII.
]]>
</artwork>
</figure>
<t>
	Note that that for P-256, HKDF with SHA2 would be used.  TBA.
</t>
</section>
<section anchor="a2a-msg" numbered="true" toc="default"> <name>A2A Secure Message</name>
<t>
	Now a session message would be (33 bytes plus n bytes of the actual 
	message):
</t>
<table anchor="session-msg-tbl"> <name>31+n Byte A2A secure message</name>
  <thead>
    <tr>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>16</td>
      <td>Destination DET</td>
      <td>DRIP Entity Tag of the destination UA</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Connection ID</td>
      <td>Source UA Connection ID</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Sequence Number</td>
      <td>Source UA Sequence Number</td>
    </tr>
    <tr>
      <td>1</td>
      <td>Message ID</td>
      <td>A2X Message ID Number</td>
    </tr>
    <tr>
      <td>n</td>
      <td>A2A Message</td>
      <td>Actual A2A Message</td>
    </tr>
    <tr>
      <td>12</td>
      <td>MAC by Source</td>
      <td>KMAC on message by Source UA</td>
    </tr>
  </tbody>
</table>
<t>
	Author's Note:  Probably should explicitly include the source DET 
	(rather than a SCHC expansion rule) or at least make it explicit 
	ver part of the SCHC expansion rules.  This is to protect against 
	cases where multiple UA connected to one destination UA and how to 
	manage ConnectionID to avoid collisions in this 1-byte ID.
</t>
</section>
<section anchor="SID-negot" numbered="true" toc="default"> <name>Selection of Nonced Messages</name>
<t>
	Author's Note:  This section needs the state machine clearly drawn 
	out.  Otherwise too hard to follow and implement correctly.
</t>
<t>
	In theory once one UA sends its Nonce Enabled A2A message and 
	received a Nonce Enabled A2A message from a nearby UA, it can 
	immediately set up and use the A2A secure messages in <xref 
	target="a2a-msg" format="default"/>.  In practice messages will not 
	be received and one UA may operate on the basis that a secure 
	session is possible when the other UA does not have the needed 
	information for the secure session.  This section will detail a 
	procedure for UAs to follow to reach that point of common knowledge 
	and thus transition to a secure session.
</t>
<t>
	The Connection ID shown in <xref target="connection-id" 
	format="default"/> is unidirectional.  It is part of a tuple 
	(Source DET, Destination DET, Connection ID) that contains the 
	operational state of the unidirectional secure messages (e.g. 
	session key, sequence number).  Each UA in the secure session link 
	MUST have this tuple, but may have multiple such (at least two, one 
	for each direction) and could be using one Connection ID and 
	session for sending and another for receiving. the basis for the 
	tuple for the secured messaging.
</t>
<t>
	A Connection ID MUST NOT have each 4-bit component the same; this 
	would break the unidirectional feather of the secure connection. 
	When a UA receives a Nonce Enabled A2A message, it MUST send its 
	own and the contained nonce MUST NOT have the same first 4 bits as 
	the one received.  After sending its Nonce Enabled A2A message, it 
	MAY immediately switch to a secure session mode.
</t>
<t>
	If a UA receives a secure session message (addressed to its DET), 
	but does not have the security tuple for the contained Connection 
	ID and thus the source DET, it MUST continue to use the Nonce 
	Enabled A2A messages.  A UA that receives a Nonce Enabled A2A 
	message MUST work on the basis that the sending UA does not have 
	similar from it.  The UA MUST send a Nonce Enabled A2A message and 
	switch to these two messages as
</t>
<t>
	This process MAY be repeated for 4 attempts.  At which point it 
	should be assumed something is interfering with message 
	transmissions and act accordingly.
</t>
</section>
<section anchor="SCHC" numbered="true" toc="default"> <name>SCHC compression of DTLS datagram</name>
<t>
	Author Note: the above datagram was produced from a full IPv6|DTLS 
	message.  The MACing is on this original message.  The receiver 
	needs to reverse the SCHC before authenticating the message, but 
	this might be a DOS risk.
</t>
<t>
	TBD
</t>
</section>
</section>
<section anchor="Msgs" numbered="true" toc="default"> <name>A2X Messages</name>
<t>
	Below are the initial defined messages for use in A2X.
</t>
<table anchor="Msg-type"> <name>A2X Messages</name>
  <thead>
    <tr>
      <th>ID</th>
      <th>Bytes</th>
      <th>Name</th>
      <th>Explanation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>20</td>
      <td>Location/Vector</td>
      <td>ASTM Location/Vector Message less timestamp fields</td>
    </tr>
    <tr>
      <td>2</td>
      <td>36</td>
      <td>L/V and Nonce</td>
      <td>Msg 1 plus Nonce</td>
    </tr>
  </tbody>
</table>
</section>
<section anchor="Link" numbered="true" toc="default"> <name>Wireless Transport for A2X messaging</name>
<t>
	Author's Note:  Still need work on what wireless technologies are 
	practical for this approach and even if it is appropriate to 
	discuss actual wireless transport here.  There are messages here 
	that are too large for the ASTM Remote ID BT4 limit of 200 bytes, 
	but may well fit into the practical limits of 250 bytes over BT5 
	and WiFi Beacons.  It is even possible of a multi-RF approach, 
	separating the large messages from the short ones.
</t>
<t>
	Author's Note:  We define here a new ASTM Auth message content that 
	is only sent over BT5 and WiFi Beacons.
</t>
<t>
	Author's Note:  Using SCHC as an Ethertype we can position these 
	messages to work over multiple wireless tech.  Most noteably IEEE 
	802.11ah (HiLo) with 802.11bc (Enhanced Broadcast Service).  Also 
	802.16 and 802.15.16t (Licensed Narrowband) addendum to 802.16.
</t>
<t>
	TBD
</t>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	TBD
</t>
</section>
<section anchor="security-considerations" numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	Author's note:  We need to have a discussion on the size of the MAC 
	in the A2A (<xref target="session-msg-tbl" format="default"/>) 
	message. Currently a 12-byte MAC is specified.  Considering this is 
	an authentication MAC and the messages are timestamped, an 8-byte 
	MAC should be adequate.  But the discussion on this is needed and 
	other examples of 8-byte authentication MACs provided.
</t>
<t>
	TBD
</t>
<section anchor="static_ECDH" numbered="true" toc="default"> <name>Potentially static EC keys for ECDH</name>
<t>
	In <xref target="A2A" format="default"/> the UA Identity keys are 
	used in a ECDH key derivation operation.  The common practice is to 
	use "right now" ephemeral EC keys.  This is not practical in this 
	case, as there is very limited time and bandwidth to carry out a 
	full key exchange.  Another factor is in most cases the data 
	protected with the derived key is of only immediate value, rarely 
	having any historical worth.
</t>
<t>
	Additionally these Identity keys are normally specific to this 
	mission; new keys are typically used for each flight.  Thus, in 
	large measure, they are ephemeral.
</t>
<t>
	Finally, most uses of this approach is only to authenticate an 
	extended exchange between two UA rather than the more bandwidth 
	costly digitally signed messages.
</t>
<t>
	Thus, all factors considered, ECDH key establishment with these 
	Identity keys are practical and within reasonable security bounds.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.ietf-cose-cbor-encoded-cert" to="C509-Certificates"/>
<displayreference target="I-D.moskowitz-drip-dki" to="drip-dki"/>
<displayreference target="DOI_10.6028_NIST.FIPS.202" to="NIST.FIPS.202"/>
<displayreference target="DOI_10.6028_NIST.SP.800-56AR3" to="NIST.SP.800-56Ar3"/>
<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://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9374.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9575.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9434.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.FIPS.202.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-56Ar3.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-185.xml"/>
</references>
<references title="Informative References">
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-cose-cbor-encoded-cert.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-moskowitz-drip-dki.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8724.xml"/>
	<reference anchor="F3411-22a"  target="https://www.astm.org/f3411-22a.html">
		<front>
			<title>Standard Specification for Remote ID and Tracking - F3411−22a</title>
			<author><organization>ASTM International</organization></author>
			<date month="07" year="2022" />
		</front>
	</reference>
	<reference anchor="Ed25519_Curve25519"  target="https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519">
		<front>
			<title>Ed25519 to Curve25519</title>
			<author><organization>Libsodium Documentation</organization></author>
			<date year="2021"/>
		</front>
	</reference>
</references>
</references>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	Adam Wiethuechter of AX Enterprize provided review and 
	implementation insights.
</t>
</section>
</back>
</rfc>
