﻿<?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-secure-nrid-c2-13"
	category="std" ipr="trust200902" obsoletes="" updates="" submissionType="IETF"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front>
<title abbrev="Secure UAS Transport">Secure UAS Network RID and C2 Transport</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-drip-secure-nrid-c2-13"/>
	<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="2023" />
   <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 defines a transport mechanism for Uncrewed Aircraft 
	System (UAS) Network Remote ID (Net-RID).  Either the Broadcast 
	Remote ID (B-RID) messages, or alternatively, appropriate MAVLink 
	Messages can be sent directly over UDP or via a more functional 
	protocol using CoAP/CBOR for the Net-RID messaging.  This is 
	secured via either HIP/ESP or DTLS. HIP/ESP or DTLS secure 
	messaging Command-and-Control (C2) for is also described.
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<t> 
	This document defines two sets of messages for Uncrewed Aircraft 
	System (UAS) Network Remote ID (Net-RID).  Minimal Net_RID 
	(MNet-RID) is derived from the ASTM Remote ID <xref 
	target="F3411-22a" format="default"/> broadcast messages and common 
	data dictionary.  MAVLink Net_RID (MVNet-RID) is derived from the 
	MAVLink protocol <xref target="MAVLINK" format="default"/>.
</t>
<t>
	These messages are transported from the UAS to its UAS Service 
	Supplier (USS) Network Service Provider (Net-RID SP) either 
	directly over UDP or via CoAP/CBOR (<xref target="RFC7252" 
	format="default" />/<xref target="RFC8949" format="default" />).
</t>
<t> 
	Direct UDP and CoAP/CBOR were selected for their low communication 
	"cost".  This may not be an issue if Net-RID originates from the 
	Ground Control Station (GCS, <xref target="NRID_GCS" 
	format="default"/>), but it may be an important determinant when 
	originating from the UA (<xref target="NRID_UA" 
	format="default"/>).  Particularly, very small messages may open 
	Net-RID transmissions over a variety of constrained wireless 
	technologies.
</t>
<t> 
	This document also defines mechanisms to provide secure transport 
	for these Net-RID messages and Command and Control (C2) messaging.
</t>
<t> 
	A secure end-to-end transport for Net-RID (UAS to Net-RID SP) also 
	should provide full Confidentiality, Integrity, and Authenticity 
	(CIA).  It may seem that confidentiality is optional, as most of 
	the information in Net-RID is sent in the clear in Broadcast Remote 
	ID (B-RID), but this is a potentially flawed analysis. Net-RID has 
	eavesdropping risks not in B-RID and may contain more sensitive 
	information than B-RID. The secure transport for Net-RID should 
	also manage IP address changes (IP mobility) for the UAS.
</t>
<t> 
	A secure end-to-end transport for C2 is critical for UAS especially 
	for Beyond Line of Sight (BLOS) operations.  It needs to provide 
	data CIA.  Depending on the underlying network technology, this 
	secure transport may need to manage IP address changes (IP 
	mobility) for both the UA and GCS.
</t>
<t>
	Two options for secure transport are provided:  HIP <xref 
	target="RFC7401" /> with ESP <xref target="RFC7402" /> and DTLS 1.3 
	<xref target="RFC9147" />. These options are generally 
	defined and their applicability is compared and contrasted.  It is 
	up to Net-RID and C2 to select which is preferred for their 
	situation.
</t>
<t>
	MOBIKE <xref target="RFC5266" /> is an alternative to HIP for ESP 
	key establishment.  It functions enough like HIP that it was left 
	out, but implied, for document simplicity.  There may be some 
	identity pieces needed to map HHITs and HIs to what MOBIKE uses.
</t>
<t> 
	To further reduce the communication cost, SCHC <xref 
	target="RFC8724" format="default" /> is defined for both the direct 
	UDP and CoAP layer <xref target="RFC8824" format="default" />. For 
	ESP "compression", ESP Implicit IV, <xref target="RFC8750" 
	format="default" /> and Diet ESP <xref 
	target="I-D.mglt-ipsecme-diet-esp" format="default"/> may be used 
	together. DTLS 1.3 <xref target="RFC9147" format="default" /> as 
	defined in <xref target="DTLS_TP" format="default" /> is fully 
	compressed.  DTLS for MNet-RID would only benefit from UDP 
	compression.  CoAP Net-RID and C2 could benefit from specific 
	application header compression.
</t>
<t>
	UDP SCHC compression is handled separately here from IP header as 
	is currently defined by IP carrier (e.g. LoRaWAN, <xref 
	target="RFC9011" format="default" />).  This is to allow for the 
	endpoints to not need to know what constrained carrier is in-path 
	and just design for worst case.
</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 numbered="true" toc="default"> <name>Definitions</name>
<t>
	See <xref target="RFC9153" section="2.2" format="default" /> for 
	common DRIP terms. The following new terms are used in the 
	document:
</t>
	<dl newline="true" spacing="normal">
		<dt>B-RID</dt>
		<dd>
			Broadcast Remote ID. A method of sending RID messages as 
			1-way transmissions from the UA to any Observers within 
			radio range.
		</dd>
		<dt>MNet-RID</dt>
		<dd>
			A Minimal implementation of Network Remote ID, based on 
			B-RID messages directly over UDP.
		</dd>
		<dt>Net-RID</dt>
		<dd>
			Network Remote ID. A method of sending RID messages via the 
			Internet connection of the UAS directly to the UTM.
		</dd>
		<dt>RID</dt>
		<dd>
			Remote ID. A unique identifier found on all UA to be used 
			in communication and in regulation of UA operation.
		</dd>
	</dl>
</section>
</section>
<section anchor="NRID" numbered="true" toc="default"> <name>Network Remote ID</name>
<t>
	In UAS Traffic Management (UTM), the purpose of Net-RID is to provide 
	situational awareness of UA (in the form of flight tracking) in a 
	user specified 4D volume.  The data needed for this is already 
	defined in <xref target="F3411-22a" format="default"/>, but a 
	standard message format, protocol, and secure communications 
	methodology are missing.  F3411, and other UTM based standards 
	going through ASTM and other SDOs, provide JSON objects and some of 
	the messages for passing information between various UTM entities 
	(e.g., Net-RID SP to Net-RID SP and Net-RID SP to Net-RID DP) but 
	does not specify how the data gets into UTM to begin with.  This 
	document will provide such an open standard.
</t>
<t>
	A full-function CoAP-based Net-RID protocol is defined in <xref 
	target="CoAP_Msg" format="default"/>.  This provides for either 
	transport of the appropriate B-RID messages and/or the <xref 
	target="F3411-22a" format="default"/> data elements encoded in CBOR.
</t>
<t>
	A minimal messaging approach (MNet-RID, <xref target="MN-RID" 
	format="default"/>), only using the Broadcast Remote ID (B-RID) 
	messages in <xref target="F3411-22a" format="default"/>, is 
	sufficient to meet the needs of Net-RID. These messages can be sent 
	to the Net-RID SP when their contents change.  Further, a UAS 
	supporting B-RID will have minimal development to add Net-RID 
	support.
</t>
<t>
	This approach has the added advantage of being very compact, 
	minimizing the Net-RID communications cost.
</t>
<t>
	Other messages may be needed in some Net-RID situations.  Thus a 
	simple message multiplexer is provided for MNet-RID and CoAP is 
	defined for a richer messaging environment.
</t>
<t>
	A MAVLink based messaging approach (MavNet-RID, <xref 
	target="MavN-RID" format="default"/>) is also provided.  It differs 
	from MNet-RID in message content, sending the appropriate MAVLink 
	messages, but uses the same security options.  At this time, this 
	approach is not complete; the minimal set of MAVLink messages need 
	to be added.
</t>
<t> 
	An example where MavNET-RID may be preferred is where the UAS 
	endpoint is the GCS with the Internet access.  Through C2, it has 
	all the MAVLink messages, and only needs forward appropriate 
	MAVLink messages on to the Net-RID SP.  This is particular value 
	when the UAS is operating in an area that does not require 
	Broadcast RID but mandates Network RID.
</t>
<section anchor="NRID_EP" numbered="true" toc="default"> <name>Network RID Endpoints</name>
<t>
	The US FAA defines the Network Remote ID endpoints as a USS Network 
	Service Provider (Net-RID SP) and the UAS.  Both of these are rather 
	nebulous items and what they actually are will impact how 
	communications flow between them.
</t>
<t>
	The Net-RID SP may be provided by the same entity serving as the 
	USS.  This simplifies a number of aspects of the Net-RID 
	communication flow.  The Net-RID SP is likely to be stable in the 
	network, that is its IP address will not change during a mission.  
	This simplifies maintaining the Net-RID communications.
</t>
<t>
	The UAS component in Net-RID may be either the UA, GCS, or the 
	Operator's Internet connected device (e.g. smartphone or tablet 
	that is not the GCS). In all cases, mobility MUST be assumed.  That 
	is the IP address of this end of the Net-RID communication may 
	change during an operation (generally called a flight or mission). 
	The Net-RID mechanism MUST support this. The UAS Identity for the 
	secure connection may vary based on the UAS endpoint.
</t>
<section anchor="NRID_UA" numbered="true" toc="default"> <name>Net-RID from the UA</name>
<t>
	Some UA will be equipped with direct Internet access.  These UA 
	will also tend to have multiple radios for their Internet access 
	(e.g., Cellular and WiFi). Thus multi-homing with "make before 
	break" behavior is needed. This is on top of any IP address changes 
	on any of the interfaces while in use.
</t>
<t>
	Multicast (GEN-10 in <xref target="RFC9153" format="default" />) 
	over multiple Internet connection technologies MAY be used improve 
	QOS (GEN-7 in <xref target="RFC9153" format="default" />) for 
	Net-RID.  (Author's question:  Does this really qualify as 
	multicast?)
</t>
</section>
<section anchor="NRID_GCS" numbered="true" toc="default"> <name>Net-RID from the GCS</name>
<t>
	Many UA will lack direct Internet access, but their GCS are 
	connected.  As an Operator is expected to register an operation 
	with its USS, this may be done via the Internet connected GCS. The 
	GCS could then be the source of the secure connection for Net-RID 
	(acting as a gateway).
</t>
<t>
	There are two sources of the RID messages for the GCS, both from 
	the UA.  These are UA B-RID messages, or content from C2 messages 
	that the GCS converts to RID message format (or sends as MAVLink 
	messages).  In either case, the GCS may be mobile with changing IP 
	addresses.  The GCS may be in a fast moving ground device (e.g. 
	delivery van), so it can have as mobility demanding connection 
	needs as the UA.
</t>
<t>
	In a constrained wireless environment for the UA that is not 
	functioning autonomously (i.e., at least C2 traffic to the GCS), 
	this approach may be the most economical.  It only uses the 
	wireless to send the UA status once, to the GCS, that then provides 
	the Net-RID functionality.
</t>
</section>
<section anchor="NRID_Op" numbered="true" toc="default"> <name>Net-RID from the Operator</name>
<t>
	Many UAS will have no Internet connectivity, but the UA is sending 
	B-RID messages and the Operator, when within RF range, can receive 
	these B-RID messages on an Internet Connected device that can act 
	as the proxy for these messages, turning them into Net-RID messages.
</t>
</section>
</section>
<section anchor="NRID_MSG" numbered="true" toc="default"> <name>Network RID Messaging</name>
<t>
	Net-RID messaging is tied to a UA operation.  This consists of an 
	initial secure link setup, followed by a set of mostly static 
	information related to the operation.  During the operation, 
	continuous location information is sent by the UA with any needed 
	updates to the mostly static operation information.
</t>
<t>
	The Net-RID SP SHOULD send regular "heartbeats" to the UAS.  If the 
	UAS does not receive these heartbeats for some policy set time, the 
	UA MUST take the policy set response to loss of Net-RID SP 
	connectivity.  For example, this could be a mandated immediate 
	landing.  There may be other messages from the Net-RID SP to the 
	UAS (e.g., call the USS operator at this number NOW!).  The UAS 
	MUST follow acknowledge policy for these messages.
</t>
<t>
	If the Net-RID SP stops receiving messages from the UAS (<xref 
	target="Loc_Msg" format="default"/>), it should notify the UTM of a 
	non-communicating UA while still in operation.
</t>
<section anchor="Secure_Start" numbered="true" toc="default"> <name>Secure Link Setup</name>
<t>
	The secure link setup MUST be done before the operation begins, 
	thus it can use a high capacity connection like WiFi.  It MAY use 
	the ASTM <xref target="F3411-22a" format="default"/> UAS ID for 
	this setup, including other data elements provided in the B-RID 
	Basic ID (Msg Type 0x0) Message. If the Basic ID information is NOT 
	included via the secure setup (including the Net-RID SP querying 
	the USS for this information), it MUST be sent as part of the 
	Static Messages (<xref target="Static_Msg" format="default"/>)
</t>
<section anchor="UAS_ID" numbered="true" toc="default"> <name>UAS Identity</name>
<t>
	The UAS MAY use its UAS ID if it is a HHIT (DET per <xref 
	target="RFC9374" format="default"/>).  It may use some 
	other Identity, based on the Net-RID SP policy.
</t>
<t>
	The GCS or Operator smart device may have a copy of the UA 
	credentials and use them in the connection to the Net-RID SP.  In 
	this case, they are indistinguishable from the UA as seen from the 
	Net-RID SP.  Alternatively, they may use their own credentials with 
	the Net-RID SP which would need some internal mechanism to tie that 
	to the UA.
</t>
</section>
<section anchor="DET_ID" numbered="true" toc="default"> <name>HIP for ESP Secure Link</name>
<t>
	HIP <xref target="RFC7401" format="default"/> for ESP Secure Link 
	is a natural choice for a DET UAS ID.  For this, the Net-RID SP would 
	also need a HHIT, possibly following the process in <xref 
	target="I-D.ietf-drip-registries" format="default"/>.
</t>
</section>
<section anchor="DTLS_ID" numbered="true" toc="default"> <name>DTLS Secure Link</name>
<t>
	There are two approaches for DTLS <xref target="RFC9147"/> secure 
	link.
</t>
<t>
	The DET's HI may be encoded in PKIX SubjectPublicKeyInfo 
	format, and then follow <xref target="RFC7250" format="default"/>.  
	Note that SubjectPublicKeyInfo only contains a DET's HI.  The 
	parties in the DTLS setup will have to have a unique mapping of HI 
	to DET (i.e. the HID value).
</t>
<t>
	Alternatively, DANCE <xref target="I-D.ietf-dance-client-auth" 
	format="default"/> may be used with a DET's DNS lookup to retrieve 
	a TLSA RR <xref target="RFC6698" format="default"/> with the DET's 
	HI encoded in PKIX SubjectPublicKeyInfo format (per <xref 
	target="RFC7250" format="default"/>).  This has the added advantage 
	of the full DET is sent in the DTLS exchange as part of the DET 
	FQDN for DANCE.
</t>
<t>
	The Net-RID SP DTLS credential may follow DANE <xref target="RFC6698" 
	format="default"/> or any other DTLS server credential method.
</t>
</section>
</section>
<section anchor="Static_Msg" numbered="true" toc="default"> <name>Static Messages</name>
<t>
	For simplicity, a class of UAS information is called here "Static", 
	though in practice any of it can change during the operation, but 
	will change infrequently.  This information is the contents of the 
	B-RID Self-ID (Msg Type 0x3), Operator ID (Msg Type 0x5), and 
	System Messages (Msg Type 0x4).  This information can simply be 
	sent in the same format as the B-RID messages. Alternatively the 
	individual data elements may be send as separate CBOR objects.
</t>
<t>
	The Basic ID (Msg Type 0x0) Message may be included as a static 
	message if this information was not used for the secure setup.  
	There may be more than one Basic ID Message needed if as in the 
	case where the Japan Civil Aviation Bureau (JCAB) has mandated that 
	the Civil Aviation Authority (CAA) assigned ID (UA ID type 2) and 
	Serial Number (UA ID type 1) be broadcasted.
</t>
<t>
	The information in the System Message is most likely to change 
	during an operation.  Notably the Operator Location data elements 
	are subject to change if the GCS is physically moving (e.g. 
	hand-held and the operator is walking or driving in a car).  The 
	whole System Message may be sent, or only the changing data 
	elements as CBOR objects.
</t>
<t>
	These static message elements may be sent before the operation 
	begins, thus their transmission can use a high capacity connection 
	like WiFi.  Once the operation is underway, any updates will have 
	to traverse the operational link which may be very constrained and 
	this will impact data element formatting.
</t>
<t>
	The Net-RID SP MUST acknowledge these messages.  The UAS MUST 
	receive these ACKs.  If no ACK is received, the UAS MUST resend the 
	message(s).  This send/ACK sequence continues either until ACK is 
	received, or some policy number of tries.  If this fails, the UAS 
	MUST act that the Net-RID SP connection is lost and MUST take the 
	policy set response to loss of Net-RID SP connectivity.  If the 
	information changes during this cycle, the latest information MUST 
	always be sent.
</t>
</section>
<section anchor="Loc_Msg" numbered="true" toc="default"> <name>Vector/Location Message</name>
<t>
	Many CAAs mandate that the UA Vector/Location information be 
	updated at least once per second.  Without careful message design, 
	this messaging volume would overwhelm many wireless technologies.  
	Thus to enable the widest deployment choices, a highly compressed 
	format is recommended.
</t>
<t>
	The B-RID Vector/Location Message (Msg Type 0x1) is the simplest 
	small object (24 bytes) for sending this information as a single 
	CBOR object or via MNet-RID.  It may be possible to send only those 
	data elements that changed in the last time interval.  This may 
	result in smaller individual transmissions, but should not be used 
	if the resulting message is larger than the Vector/Location 
	Message.
</t>
</section>
</section>
<section anchor="MN-RID" numbered="true" toc="default"> <name>The Minimal, UDP, Net-RID Protocol</name>
<t>
	The Minimal Network Remote ID protocol is a simple UDP messaging 
	consisting of a 1-byte message type field and a message field of 
	maximum 25-bytes length.
</t>
<t>
	The Message Type Field is defined as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Value        Type

     0            RESERVED         
     1            B-RID Message     [F3411]
     2            Net-RID SP ACK
     3            Net-RID SP Heartbeat
]]>
</artwork> 
<t>
	The B-RID Message is 25 bytes:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Bytes        Description

     1            B-RID Message Type/version
     24           B-RID Message
]]>
</artwork> 
<t>
	The Net-RID SP ACK is 5 bytes:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Bytes        Description

     4            Timestamp
     1            B-RID Message Type/version from message ACKed
     
     Should a 12byte hash of message be included as in Manifest?
]]>
</artwork> 
<t>
	The Net-RID SP Heartbeat is 4 bytes:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Bytes        Description

     4            Timestamp
]]>
</artwork> 
<section anchor="MN-comp" numbered="true" toc="default"> <name>Compressing the MNet-RID message headers</name>
<t>
	The security envelope (ESP of DTLS) and UDP headers may be 
	compressed to further minimize the communication cost of MNet-RID.
</t>
<section anchor="ESP-MN-comp" numbered="true" toc="default"> <name>Compressing ESP/UDP headers</name>
<t>
	A normal ESP/AES-GCM-12/UDP wrapper for the NMet-RID messages is 
	10+28+8=46 bytes.  By applying the SCHC compression via <xref 
	target="I-D.mglt-ipsecme-diet-esp" format="default"/> and using 
	<xref target="RFC8750" format="default"/> Implicit Cipher IVs, this 
	is reduced to 4+12+0=16 bytes.
</t>
<t>
	AES-CCM-12 has a smaller, but valuable, size reduction on 
	compression, as CCM's IV is only 8 bytes compared to GCM's 16-byte 
	IV.  Thus uncompressed, the wrapper is 10+20+8=38 bytes. Compressed 
	it is 4+12+0=16 bytes.  Or "over the wire", compressed CCM offers 
	no improvements to GCM and its 2-pass process will tend to result 
	in a poorer performance compared to GCM, even on these small 
	messages.  Thus GCM is the recommended mode-of-operation for AES.
</t>
<t>
	Note that <xref target="RFC8750" format="default"/> does not 
	provide implicit IV use for AES-GCM-12.  At the time of writing the 
	use case for the smaller ICV was not apparent.  Here, the smaller 
	hash is not a lower risk given the limited traffic within a single 
	operation.  If not provided elsewhere, this document will request 
	ENCR_AES_GCM_12_IIV for IKE and both AES_GCM_12 and AES_GCM_12_IIV 
	for HIP.
</t>
<t>
	<xref target="I-D.mglt-ipsecme-diet-esp" format="default"/> may be 
	completely statically configured, or may have HIP or IKE negotiated 
	values.  This will be determined by Net-RID SP policy.
</t>
<t>
	TBD: diet-esp context and rules.
</t>
</section>
<section anchor="DTLS-MN-comp" numbered="true" toc="default"> <name>Compressing UDP/DTLS message headers</name>
<t>
	DTLS 1.3 <xref target="RFC9147" format="default"/> is designed for 
	minimal header overhead.  <xref target="DTLS_TP" format="default"/> 
	defines the DTLS header fields to use for minimal header size.  The 
	only practical compression gain with SCHC would be the UDP header, 
	it could be compressed to zero bytes, but would require <xref 
	target="I-D.ietf-intarea-schc-protocol-numbers" format="default"/>.
</t>
<t>
	The DTLS header defined in <xref target="DTLS_TP" 
	format="default"/> with a 1-byte Sequence and no Length is 4 bytes. 
	Only AES-GCM-16 is defined for DTLS, but has an implicit IV for 16 
	bytes length.  This along with the 8-byte UDP header is 28 bytes 
	total. Using SCHC for UDP header compression to zero bytes (and an 
	implicit SCHC rule) would require adding the DTLS 2-byte Length 
	field.  This results in a further 6 byte header size reduction. The 
	resulting 22 bytes is similar to that in ESP compression above. 
	However the complexity of SCHC for only UDP compression may not be 
	of value in some implementations.
</t>
<t>
	TBD: udp context and rules.
</t>
</section>
</section>
</section>
<section anchor="MavN-RID" numbered="true" toc="default"> <name>The MAVLink Net-RID Protocol</name>
<t>
	The MAVLink Network Remote ID protocol is also a simple UDP 
	messaging consisting of a 1-byte message type field as in MNet-RID, 
	the 3-byte MAVLink Msg ID, 1-byte LEN, and a message field of 
	maximum 255-bytes length.
</t>
<t>
	The MAVLink Message Type Field is defined as follows:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Value        Type

     0            RESERVED         
     1            MAVLink Message
     2            Net-RID SP ACK
     3            Net-RID SP Heartbeat
]]>
</artwork> 
<t>
	It is initially identical to that in MNet-RID, but may deviate over 
	time, thus separately defined.
</t>
<t>
	The MAVLink Message format is:
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     Bytes        Description

     3            MAVLink ID
     1            MAVLink message length
     0-255        MAVLink Message
]]>
</artwork> 
<t>
	The MAVLink message length is included as this value may be needed 
	to successfully process some MAVLink messages.
</t>
<t>
	The Net-RID SP ACK and Net-RID SP Heartbeat are the same as defined 
	in MNet-RID.
</t>
<section anchor="MavN-comp" numbered="true" toc="default"> <name>Compressing the MavNet-RID message headers</name>
<t>
	The security envelope (ESP of DTLS) and UDP headers may be 
	compressed to further minimize the communication cost of 
	MavNet-RID.  This is the same as in MNet-RID with the added 
	potential rule to compress the MAVLink message length, as it can be 
	computed from the header length.
</t>
</section>
</section>
<section anchor="CoAP_Msg" numbered="true" toc="default"> <name>CoAP Net-RID messages</name>
<t>
	The CoAP based Net-RID protocol is intended for a richer 
	conversation between the UAS and USS.  The USS, through the Net-RID 
	SP, may compare actual UA progress against the filed flight plan 
	and against other UA actual traffic.  The USS may then send to the 
	UAS recommended changes to the flight plan to de-conflict traffic 
	or advise the UAS to avoid hazards (1st responder event, avoid 
	space).  The UAS may then negotiate changes to the plan, and act on 
	them, as appropriate.
</t>
<t>
	This sort of advanced UAS behavior is envisioned as part of total 
	UTM activities.  Discussions now ongoing in UTM will provide the 
	data models and transactional UAS/USS interactions, that will drive 
	UAS communications past the MNet-RID defined in <xref 
	target="MN-RID" format="default"/> toward this more functional CoAP 
	Net-RID protocol.
</t>
</section>
</section>
<section anchor="c2_End" numbered="true" toc="default"> <name>Command and Control</name>
<t>
	The Command and Control (C2) connection is between the UA and GCS. 
	This is often over a direct link radio.  Some times, particularly 
	for BLOS, it is via Internet connections.  In either case C2 SHOULD 
	be secure from eavesdropping and tampering.  For design and 
	implementation consistency it is best to treat the direct link as a 
	local link Internet connection and use constrained networking 
	compression standards.
</t>
<t>
	Both the UA and GCS need to be treated as fully mobile in the IP 
	networking sense.  Either one can have its IP address change and 
	both could change at the same time (the double jump problem).  It 
	is preferable to use a peer-to-peer (P2P) secure technology like 
	<xref target="RFC7401">HIPv2</xref>.
</t>
<t>
	Finally UA may also tend to have multiple radios for their C2 
	communications. Thus multi-homing with "make before break" behavior 
	is needed. This is on top of any IP address changes on any of the 
	interfaces while in use.
</t>
<section anchor="sMAVLINK" numbered="true" toc="default"> <name>Securing MAVLink</name>
<t>
	<xref target="MAVLINK">MAVLink</xref> is a commonly used protocol 
	for C2 that uses UDP port 14550 for transport over IP.  Message 
	authenticity was added in MAVLink 2 in the form of a SHA-256 
	(secret | message) left-truncated to 6 byte.  This does not 
	follow <xref target="RFC2104">HMAC</xref> security recommendations, 
	nor provides confidentiality.
</t>
<t>
	The MAVLink authentication only provides 24-bit collision 
	resistance but is not susceptible to a hash length attack.  By 
	following the security approach here, UAS C2 is superior to that 
	currently provided within MAVLink.  It provides 48-bit collision 
	resistance and full confidentiality.
</t>
<section anchor="ESP-MAVLINK" numbered="true" toc="default"> <name>Compressed ESP for MAVLink</name>
<t>
	The approach in <xref target="ESP-MN-comp" format="default"/> can 
	be used to fully secure MAVLink and include the UDP header for IP 
	transport.  Further, MAVLink itself can be compressed.
</t>
<t>
	MAVLink messages contain a 1-byte Seq number and 2-byte CRC.  Both 
	of these can be generated from SCHC rules.  These 3 bytes along 
	with the 13-byte MAVLink signature provides the 16 bytes so that 
	the over-the-wire cost is the same.
</t>
<t>
	This secure MAVLink format may be sent directly over a local 
	wireless link.  The UDP port processing adds little cost.  Sending 
	this over IP provides the needed confidentiality at 8 bytes less 
	than unencrypted messages.
</t>
<t>
	TBD: MAVLink SCHC context and rules.  These will be part of the 
	MAVLink ESP setup.
</t>
</section>
</section>
<section anchor="DTLS-C2-comp" numbered="true" toc="default"> <name>Compressed UDP/DTLS for MAVLink</name>
<t>
	At this time, DTLS is NOT recommended for C2 security, as it is 
	challenged with server mobility.  It may be added at a later time.
</t>
<t>
	DTLS may be viable when there is no possibility for an IP address 
	change for the GCS during an operation.  An example of this is 
	where the GCS is an Operations Center like might be used in a 
	package delivery business.
</t>
</section>
</section>
<section anchor="Sec_TP" numbered="true" toc="default"> <name>Secure Transports</name>
<t>
	Secure UDP-based protocols are preferred for both Network Remote ID 
	(Net-RID) and C2. Both HIPv2 and DTLS can be used.  It will be shown 
	below that HIPv2 is better suited in most cases.
</t>
<t>
	For IPv6 and CoAP over both WiFi and Bluetooth (or any other radio 
	link), SCHC <xref target="RFC8724" format="default" /> is defined 
	to significantly reduce the per packet transmission cost. SCHC is 
	used both within the secure envelope and before the secure envelope 
	as shown in <xref target="I-D.ietf-schc-architecture" 
	section="5.2.10" format="default"/>. For Bluetooth, there is also 
	IPv6 over Bluetooth LE <xref target="RFC7668" /> for more guidance.
</t>
<t>
	Local link (direct radio) C2 security is possible with the link's 
	MAC layer security.  SCHC SHOULD still be used as above.  Both WiFi 
	and Bluetooth link security can provide appropriate security, but 
	this would not provide trustworthy multi-homed security.
</t>
<section anchor="HIP_TP" numbered="true" toc="default"> <name>HIP for Secure Transport</name>
<t>
	HIP has already been used for C2 mobility, managing the ongoing 
	connectivity over WiFi at start of an operation, switching to LTE 
	once out of WiFi range, and returning to WiFi connectivity at the 
	end of the operation.  This functionality is especially important 
	for BLOS. HHITs are already defined for RID, and need only be added 
	to the GCS via a GCS Registration as part of the UAS to USS 
	registration to be usedfor C2 HIP.
</t>
<t>
	When the UA is the UAS endpoint for Net-RID (<xref target="NRID_UA" 
	format="default"/>), and particularly when HIP is used for C2, HIP 
	for Net-RID simplifies protocol use on the UA.  The Net-RID SP 
	endpoint may already support HIP if it is also the HHIT Registrar.  
	If the UA lacks any IP ability and the RID HHIT registration was 
	done via the GCS or Operator device, then they may also be set for 
	using HIP for Net-RID.
</t>
<t>
	Further, double jump and multi-homing support is mandatory for C2 
	mobility.  This is inherent in the HIP design.  The HIP address 
	update can be improved with <xref 
	target="I-D.moskowitz-hip-fast-mobility" format="default"/>.
</t>
</section>
<section anchor="DTLS_TP" numbered="true" toc="default"> <name>DTLS for Secure Transport</name>
<t>
	DTLS is a good fit for Net-RID for any of the possible UAS endpoints. 
	There are challenges in using it for C2.  To use DTLS for C2, the 
	GCS will need to be the DTLS server.  How does it 'push' commands 
	to the UA?  How does it reestablish DTLS security if state is lost?  
	And finally, how is the double jump scenario handled?
</t>
<t>
	All the above DTLS for C2 probably have solutions.  None of them 
	are inherent in the DTLS design.
</t>
<t>
	DTLS implementations SHOULD use a CID of 2 bytes.  This is to 
	support mobility and simplify SCHC rule handling.  The Sequence 
	Number size is a deployment choice.  For MNet-RID rate of one 
	Vector/Location update per second, a 1-byte value would result in a 
	rollover in 4 minutes.  This should not poise an operational 
	challenge.  The length field is recommended when SCHC is used as it 
	can provided an authenticated length to use to regenerate the UDP 
	header length field and any application length field like that in 
	MAVLink.
</t>
</section>
<section anchor="TP_Cipher" numbered="true" toc="default"> <name>Ciphers for Secure Transport</name>
<t>
	The cipher choice for either HIP or DTLS depends, in large measure, 
	on the UAS endpoint.  If the endpoint is computationally 
	constrained, the cipher computations become important. If any of 
	the links are constrained or expensive, then the over-the-wire cost 
	needs to be minimized.  AES-CCM and AES-GCM are the preferred, 
	modern, AEAD ciphers.  <xref target="ESP-MN-comp" format="default" 
	/> shows that proper compression can provide the more efficient GCM 
	at no over-the-wire cost.  Thus AES-GCM is the recommended AES 
	mode-of-operation.
</t>
<t>
	NIST has selected a new lightweight cipher, ASCON, that may be the 
	best choice for use on a UA.  Work will be needed to develop full 
	support for Ascon in both ESP and DTLS.
</t>
</section>
<section anchor="HIP_DTLS" numbered="true" toc="default"> <name>HIP and DTLS contrasted and compared</name>
<t>
	This document specifies the use of DTLS 1.3 for its 0-RTT mobility 
	feature and improved (over 1.2) handshake.  DTLS 1.3 is still an 
	IETF draft, so there is little data available to properly contrast 
	it with HIPv2.  This section will be based on the current DTLS 1.2.  
	The basic client-server model is unchanged.
</t>
<t>
	The use of DTLS vs HIPv2 (both over UDP, HIP in IPsec ESP BEET 
	mode) has pros and cons. DTLS is currently at version 1.2 and based 
	on TLS 1.2. It is a more common protocol than HIP, with many 
	different implementations available for various platforms and 
	languages.
</t>
<t>
	DTLS implements a client-server model, where the client initiates 
	the communication. In HIP, two parties are equal and either can be 
	an Initiator or Responder of the Base Exchange. HIP provides 
	separation between key management (base exchange) and secure 
	transport (for example IPsec ESP BEET) while both parts are tightly 
	coupled in DTLS.
</t>
<t>
	DTLS 1.2 still has quite chatty connection establishment taking 3-5 
	RTTs and 15 packets. HIP connection establishment requires 4 
	packets (I1,R1,I2,R2) over 2 RTTs. This is beneficial for 
	constrained environments of UAs. HIPv2 supports cryptoagility with 
	possibility to negotiate cryptography mechanisms during the Base 
	Exchange.
</t>
<t>
	Both DTLS and HIP support mobility with a change of IP address. 
	However, in DTLS only client mobility is well supported, while in 
	HIP either party can be mobile. The double-jump problem 
	(simultaneous mobility) is supported in HIP with a help of 
	Rendezvous Server <xref target="RFC8004">(RVS)</xref>. HIP can 
	implement secure mobility with IP source address validation in 2 
	RTTs, and in 1 RTT with fast mobility extension.
</t>
<t>
	One study comparing DTLS and IPsec-ESP performance concluded that 
	DTLS is recommended for memory-constrained applications while 
	IPSec-ESP for battery power-constrained <xref target="Vignesh" 
	format="default"/>.
</t>
</section>
</section>

<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	TBD:  May need ESP ciphers defined.
</t>
<t>
	TBD:  Add MNet-RID Message Type Field to DRIP registry.
</t>
</section>
<section numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	Designing secure transports is challenging.  Where possible, 
	existing technologies SHOULD be used.  Both ESP and DTLS have stood 
	"the test of time" against many attack scenarios. Their use here 
	for Net-RID and C2 do not represent new uses, but rather variants on 
	existing deployments.
</t>
<t>
	The same can be said for both key establishment, using HIPv2 and 
	DTLS, and the actual cipher choice for per packet encryption and 
	authentication.  Net-RID and C2 do not present new challenges, rather 
	new opportunities to provide communications security using well 
	researched technologies.
</t>
</section>
<section numbered="true" toc="default"> <name>Acknowledgments</name>
<t>
	Stuart Card and Adam Wiethuechter provided information on their 
	use of HIP for C2 at the Syracuse NY UAS test corridor.  This, in 
	large measure, was the impetus to develop this document.
</t>
</section>
</middle>
<back>
<displayreference target="I-D.ietf-dance-client-auth" to="dane-clients"/>
<displayreference target="I-D.ietf-drip-registries" to="drip-registries"/>
<displayreference target="I-D.ietf-schc-architecture" to="schc-architecture"/>
<displayreference target="I-D.mglt-ipsecme-diet-esp" to="diet-esp"/>
<displayreference target="I-D.moskowitz-hip-fast-mobility" to="hip-fast-mobility"/>
<displayreference target="I-D.ietf-intarea-schc-protocol-numbers" to="schc-protocol-numbers"/>
<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.7252.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/bibxml/reference.RFC.8949.xml"/>
</references>
<references title="Informative References">
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5266.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6698.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7250.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.7402.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7668.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.8724.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8750.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8824.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9011.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9374.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-dance-client-auth.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-drip-registries.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-schc-architecture.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-mglt-ipsecme-diet-esp.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-moskowitz-hip-fast-mobility.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-intarea-schc-protocol-numbers.xml"/>
	<reference anchor="F3411-22a"  target="http://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="MAVLINK"  target="http://mavlink.io/">
		<front>
			<title>Micro Air Vehicle Communication Protocol</title>
			<author/>
			<date year="2021"/>
		</front>
	</reference>
	<reference anchor="Vignesh"  target="http://www.diva-portal.org/smash/get/diva2:1157047/FULLTEXT02">
		<front>
			<title>Performance analysis of end-to-end DTLS and IPsec-based communication in IoT environments</title>
            <author fullname="Kuna Vignesh" initials="K." surname="Vignesh">
              <organization>Blekinge Institute of Technology</organization>
              <address/>
            </author>
			<date month="" year="2017" />
        </front>
		<seriesInfo name='Thesis no.' value='MSEE-2017: 42'/>
	</reference>
</references>
</references>
</back>
</rfc>
