<?xml version="1.0" encoding="UTF-8"?>
  <!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.9 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc iprnotified="no"?>
<?rfc strict="no"?>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-moskowitz-drip-crowd-sourced-rid-14"
 category="std" consensus="true" submissionType="IETF" xml:lang="en" obsoletes="" updates=""
 tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    
<title abbrev="CS-RID">Crowd Sourced Remote ID</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-drip-crowd-sourced-rid-14"/>
	<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 initials="S." surname="Card" fullname="Stuart W. 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 initials="A." surname="Wiethuechter" fullname="Adam 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 initials="S." surname="Zhao" fullname="Shuai Zhao">
      <organization>Intel</organization>
      <address>
        <postal>
          <street>2200 Mission College Blvd</street>
          <city>Santa Clara</city>
          <region>CA</region>
          <code>95054</code>
          <country>USA</country>
        </postal>
        <email>shuai.zhao@ieee.org</email>
      </address>
    </author>
    <author initials="H." surname="Birkholz" fullname="Henk Birkholz">
      <organization abbrev="Fraunhofer SIT">Fraunhofer SIT</organization>
      <address>
        <postal>
          <street>Rheinstrasse 75</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>

    <date year="2025" />
    <area>Internet</area>
    <workgroup>DRIP</workgroup>
    <keyword>RFC</keyword>
<abstract>
<t>
	This document describes using the ASTM Broadcast Remote ID (B-RID) 
	specification in a "crowd sourced" smart phone or fixed receiver 
	asset environment to provide much of the ASTM and FAA envisioned 
	Network Remote ID (Net-RID) functionality. This crowd sourced B-RID 
	(CS-RID) data will use multilateration to add a level of 
	reliability in the location data on the Uncrewed Aircraft (UA). The 
	crowd sourced environment will also provide a monitoring coverage 
	map to authorized observers.
</t>
</abstract>
  </front>
  <middle>

<section anchor="introduction"><name>Introduction</name>
<t>
	This document defines a mechanism to capture the ASTM Broadcast 
	Remote ID messages (B-RID) <xref target="F3411-22a"/> on any 
	Internet connected device that receives them and can forward them 
	to the Supplemental Data Service Providers (SDSPs) responsible for 
	the geographic area the UA and receivers are in.  This crowd 
	sourced B-RID (CS-RID) will create a ecosystem that will meet most 
	if not all data collection requirements that Civil Aviation 
	Authorities (CAA) are placing on Network Remote ID (Net-RID).
</t>
<t>
	These Internet connected B-RID receivers are herein called 
	"Finders", as they find UAs by listening for B-RID messages.  The 
	Finders are B-RID forwarding proxies. Their potentially limited 
	spacial view of RID messages could result in bad decisions on what 
	messages to send to the SDSP and which to drop.  Thus they will 
	send all received messages and the SDSP will make any filtering 
	decisions in what it forwards into the UAS Traffic Management 
	(UTM).
</t> 
<t>
	Finders can be smartphones, tablets, connected cars, or any 
	computing platform with Internet connectivity that can meet the 
	requirements defined in this document.  It is not expected, nor 
	necessary, that Finders have any information about a UAS beyond the 
	content in the B-RID messages.
</t>
<t>
	The SDSPs are similar to, but different from the Surveillance SDSPs 
	in <xref target="F3623-23"/>.  <xref target="F3623-23"/> defines 
	sensors which are predominately radars, similar to <xref 
	target="LIDAR"/>.  The difference stems from <xref 
	target="F3623-23"/> orientation with ICAO Aircraft numbers and 
	aviation radar history of tracking objects in flight and trying to 
	feed that data into UTM.  It is likely that this document will act 
	as guidance to <xref target="F3623-23"/> for future revisions to 
	better align it with UTM over manned aviation Aircraft Traffic 
	Control (ATC).
</t>
<t>
	Finders MAY only need a loose association with the SDSP(s).  They 
	may only have the SDSP's Public Key and FQDN.  It would use these, 
	along with the Finder's Public Keypair to use Elliptic Curve 
	Integrated Encryption Scheme (ECIES), or other security methods, to 
	send the messages in a secure manner to the SDSP.  The SDSP MAY 
	require a stronger relationship to the Finders.  This may range 
	from the Finder's Public Key being registered to the SDSP with 
	other information so that the SDSP has some level of trust in the 
	Finders to requiring transmissions be sent over long-lived 
	transport connections like ESP <xref target="RFC4303"/> or DTLS 
	<xref target="RFC5238"/>.
</t>

<t>
	If a 1-way only secure packet forwarding method is used (e.g., not 
	a TCP connection), the Finder SHOULD receive periodic "heartbeats" 
	from the SDSP to inform it that its transmissions are being 
	received.  The SDSP sets the rules on when to send these heartbeats 
	as discuss below in <xref target="sdsp_heartbeats"/>.
</t>

<section anchor="role-of-supplemental-data-service-provider-sdsp"><name>Role of Supplemental Data Service Provider (SDSP)</name>

<t>The DRIP Architecture <xref target="RFC9434"/> introduces the basic CS-RID entities including CS-RID Finder and CS-RID SDSP. This document has minimal information about the actions of SDSPs. In general the SDSP is out of scope of this document. That said, the SDSPs should not simply proxy B-RID messages to the UTM(s). They should perform some minimal level of filtering and content checking before forwarding those messages that pass these tests in a secure manner to the UTM(s).</t>

<t>The SDSPs are also capable of maintaining a monitoring map, based on location of active Finders.  UTMs may use this information to notify authorized observers of where there is and there is not monitoring coverage.  They may also use this information of where to place pro-active monitoring coverage.</t>

<t>An SDSP should only forward Authenticated B-RID messages like those 
defined in <xref target="RFC9575" format="default"/> to the 
UTM(s). Further, the SDSP SHOULD validate the Remote ID (RID) and the 
Authentication signature before forwarding anything from the UA, and 
flagging those RIDs that were not validated.  The SDSP MAY forward all 
B-RID messages to the UTM, leaving all decision making on B-RID 
messages veracity to the UTM.</t>

<t>When 3 or more Finders are reporting to an SDSP on a specific UA, the SDSP is in a unique position to perform multilateration on these messages and compute the Finder's view of the UA location to compare with the UA Location/Vector messages.  This check against the UA's location claims is both a validation on the UA's reliability as well as the trustworthiness of the Finders.  Other than providing data to allow for multilateration, this SDSP feature is out of scope of this document.  This function is limited by the location accuracy for both the Finders and UA.</t>

</section>
<section anchor="draft-status"><name>Draft Status</name>

<t>This draft is still incomplete.  New features are being added as capabilities are researched.  The actual message formats also still need work.</t>

</section>
</section>
<section anchor="terms"><name>Terms and Definitions</name>

<section anchor="requirements-terminology"><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>

<t>This document uses terms defined in <xref target="RFC9153"/> and <xref target="RFC9434"/>.</t>

</section>
<section anchor="definitions"><name>Definitions</name>

<dl newline="true">
  <dt>B-RID:</dt>
  <dd>
    <t>Broadcast Remote ID. A method of sending RID messages as
1-way transmissions from the UA to any Observers within
radio range.</t>
  </dd>
</dl>

<!-- C2:

: Command and Control.  Previously mostly used in military contexts.
  Properly refers to a function that is exercisable over arbitrary
  communications, but in the small UAS context, often refers to the
  communications (typically RF data link) over which the GCS
  controls the UA. -->

<!-- CAA:

: Civil Aeronautics Administration. An example is the Federal
  Aviation Administration (FAA) in the United States of
  America. -->
<!-- 
DAA:

: Detect and Avoid. The process of a UA detecting obstacles,
  like other UAs and taking the necessary evasive action. -->

<dl>
  <dt>ECIES:</dt>
  <dd>
    <t>Elliptic Curve Integrated Encryption Scheme.  A hybrid
encryption scheme which provides semantic security against
an adversary who is allowed to use chosen-plaintext and
chosen-ciphertext attacks.</t>
  </dd>
</dl>

<!-- GCS:

: Ground Control Station. The part of the UAS that the remote
  pilot uses to exercise C2 over the UA, whether by remotely
  exercising UA flight controls to fly the UA, by setting GPS
  waypoints, or otherwise directing its flight. -->

<dl>
  <dt>Finder:</dt>
  <dd>
    <t>In Internet connected device that can receive B-RID
messages and forward them to a UTM.</t>
  </dd>
</dl>

<!-- Observer:

: Referred to in other UAS documents as a "user", but there
  are also other classes of RID users, so we prefer
  "observer" to denote an individual who has observed an UA
  and wishes to know something about it, starting with its
  RID. -->

<dl>
  <dt>Multilateration:</dt>
  <dd>
    <t>Multilateration (more completely, pseudo range
multilateration) is a navigation and surveillance technique
based on measurement of the times of arrival (TOAs) of
energy waves (radio, acoustic, seismic, etc.) having a
known propagation speed.</t>
  </dd>
</dl>

<!-- NETSP:

: Network RID Service Provider. USS receiving Network RID
  messages from UAS (UA or GCS), storing for a short
  specified time, making available to NETDP.

NETDP:

: Network RID Display Provider. Entity (might be USS)
  aggregating data from multiple NETSPs to answer query from
  observer (or other party) desiring Situational Awareness of
  UAS operating in a specific airspace volume. -->

<dl>
  <dt>Net-RID:</dt>
  <dd>
    <t>Network Remote ID. A method of sending RID messages via the
Internet connection of the UAS directly to the UTM.</t>
  </dd>
</dl>

<!-- UAS RID:

: Remote ID. A unique identifier found on all UA to be used
  in communication and in regulation of UA operation. -->

<!-- SDSP:

: Supplemental Data Service Provider. Entity providing
  information that is allowed, but not required to be present
  in the UTM system. -->

<!-- UA:

: Unmanned Aircraft. In this document UA's are typically
  though of as drones of commercial or military variety. This
  is a very strict definition which can be relaxed to include
  any and all aircraft that are uncrewed. -->
<!-- 
UAS:

: Unmanned Aircraft System. Composed of Unmanned Aircraft and
  all required on-board subsystems, payload, control station,
  other required off-board subsystems, any required launch
  and recovery equipment, all required crew members, and C2
  links between UA and the control station. -->

<!-- UTM:

: UAS Traffic Management. A "traffic management" ecosystem
  for uncontrolled operations that is separate from, but
  complementary to, the FAA's Air Traffic Management (ATM)
  system. -->

<!-- USS:

: UAS Service Supplier. Provide UTM services to support the
  UAS community, to connect Operators and other entities to
  enable information flow across the USS network, and to
  promote shared situational awareness among UTM
  participants. (From FAA UTM ConOps V1, May 2018). -->

</section>
</section>
<section anchor="prob-space"><name>Problem Space</name>

<section anchor="meeting-the-needs-of-network-remote-id"><name>Meeting the needs of Network Remote ID</name>

<t>The USA Federal Aviation Authority (FAA), in the January 2021 Remote ID Final rule <xref target="FAA-FR"/>, postponed Network Remote ID (Net-RID) and focused on Broadcast Remote ID.  This was in response to the UAS vendors comments that Net-RID places considerable demands on then currently used UAS.</t>

<t>However, Net-RID, or equivalent, is necessary for UTM and knowing what soon may be in an airspace.  A method that proxies B-RID into UTM can function as an interim approach to Net-RID and continue as a adjunct to Net-RID.</t>

</section>
<section anchor="advantages-of-broadcast-remote-id"><name>Advantages of Broadcast Remote ID</name>

<t>B-RID has its advantages over Net-RID.</t>

<t><list style="symbols">
  <t>B-RID can more readily be implemented directly in the UA. Net-RID will more frequently be provided by the GCS or a pilot's Internet connected device.
  <list style="symbols">
      <t>If Command and Control (C2) is bi-directional over a direct radio connection, B-RID could be a straight-forward addition.</t>
      <t>Small IoT devices can be mounted on UA to provide B-RID.</t>
    </list></t>
  <t>B-RID can also be used by the UA to assist in Detect and Avoid (DAA).</t>
  <t>B-RID is available to observers even in situations with no Internet like natural disaster situations.</t>
</list></t>

</section>
<section anchor="trustworthiness-of-proxied-data"><name>Trustworthiness of Proxied Data</name>

<t>When a proxy is introduced in any communication protocol, there is a risk of corrupted data and DOS attacks.</t>

<t>The Finders, in their role as proxies for B-RID, are authenticated 
to the SDSP (see <xref target="Finder_Sec"/>). The SDSP can compare the 
information from multiple Finders to isolate a Finder sending 
fraudulent information.  SDSPs can additionally verify authenticated 
messages that follow <xref target="RFC9575" 
format="default"/>.</t>

<t>The SPDP can manage the number of Finders in an area (see <xref target="Finder_Manage"/>) to limit DOS attacks from a group of clustered Finders.</t>

</section>
<section anchor="defense-against-fraudulent-rid-messages"><name>Defense against fraudulent RID Messages</name>

<t>The strongest defense against fraudulent RID messages is to focus on 
<xref target="RFC9575" format="default"/> conforming messages.  Unless 
this behavior is mandated, SPDPs will have to use assorted algorithms 
to isolate messages of questionable content.</t>

</section>
</section>
<section anchor="Finder_Sec"><name>The Finder - SDSP Security Relationship</name>

<t>
	The SDSP(s) and Finders SHOULD use EdDSA <xref target="RFC8032"/> 
	keys as their trusted Identities. The public keys SHOULD be 
	registered DRIP UAS Remote ID <xref target="RFC9374"/> and <xref 
	target="I-D.ietf-drip-registries"/>.  Other similar methods may be 
	used.
</t>

<t>
	During this registration, the Finder gets the SDSP's EdDSA Public 
	Key.  These Public Keys allow for the following options for 
	authenticated messaging from the Finder to the SDSP.
</t>

<t>
	The SDSP uses some process (out of scope here) to register the 
	Finders and their EdDSA Public Key.  During this registration, the 
	Finder gets the SDSP's EdDSA Public Key.  These Public Keys allow 
	for the following options for authenticated messaging from the 
	Finder to the SDSP.
</t>

<t><list style="numbers">
  <t>EdDSA keys are converted to X25519 keys per Curve25519 <xref 
  target="RFC7748"/> to use in ECIES.</t>

  <t>ECIES can be used with a unique nonce to authenticate each message 
  sent from a Finder to the SDSP.</t>
  
  <t>ECIES can be used at the start of some period (e.g. day) to 
  establish a shared secret that is then used to authenticate each 
  message sent from a Finder to the SDSP sent during that period.</t>
  
  <t>HIP <xref target="RFC7401"/> can be used to establish a session 
  secret that is then used with ESP <xref target="RFC4303"/> to 
  authenticate each message sent from a Finder to the SDSP.</t>
  
  <t>DTLS <xref target="RFC5238"/>  can be used to establish a secure 
  connection that is then used to authenticate each message sent from a 
  Finder to the SDSP.</t>

</list></t>

<section anchor="sdsp_heartbeats"><name>SDSP Heartbeats</name>

<t>If a 1-way messaging approach is used (e.g. not TCP-based), the SDSP SHOULD send a heartbeat at some periodicity to the Finders so that they get confirmation that there is a receiver of their transmissions.</t>

<t>A simple (see <xref target="sdsp_heartbeat_cddl"/>) message that identifies the SDSP is sent to the Finder per some published policy of the SDSP.  For example, at the first reception by the SDSP for the day, then the 1st for the hour.  It is NOT recommended for the SDSP to send a heartbeat for every message received, as this is a potential DOS attack against the SDSP.</t>

</section>
<section anchor="Finder_Map"><name>The Finder Map</name>

<t>The Finders are regularly providing their SDSP with their location. This is through the B-RID Proxy Messages and Finder Location Update
Messages.  With this information, the SDSP can maintain a monitoring map.  That is a map of where there Finder coverage.</t>

</section>
<section anchor="Finder_Manage"><name>Managing Finders</name>

<t>Finder density will vary over time and space.  For example, sidewalks outside an urban train station can be packed with pedestrians at rush hour, either coming or going to their commute trains.  An SDSP may want to proactively limit the number of active Finders in such situations.</t>

<t>Using the Finder mapping feature, the SDSP can instruct Finders to NOT proxy B-RID messages.  These Finders will continue to report their location and through that reporting, the SDSP can instruct them to again take on the proxying role.  For example a Finder moving slowly along with dozens of other slow-moving Finders may be instructed to suspend proxying.  Whereas a fast-moving Finder at the same location (perhaps a connected car or a pedestrian on a bus) would not be asked to suspend proxying as it will soon be out of the congested area.</t>

</section>
</section>
<section anchor="multilat"><name>UA location via multilateration</name>

<t>The SDSP can confirm/correct the UA location provided in the Location/Vector message by using multilateration on data provided by at least 3 Finders that reported a specific Location/Vector message (Note that 4 Finders are needed to get altitude sign correctly).  In fact, the SDSP can calculate the UA location from 3 observations of any B-RID message.  This is of particular value if the UA is only within reception range of the Finders for messages other than the  Location/Vector message.</t>

<t>This feature is of particular value when the Finders are fixed assets with highly reliable GPS location, around a high value site like an airport or large public venue.</t>

<section anchor="gps-inaccuracy"><name>GPS Inaccuracy</name>

<t>Single-band, consumer grade, GPS on small platforms is not accurate, particularly for altitude.  Longitude/latitude measurements can easily  be off by 3M based on satellite postion and clock accuracy.  Altitude accuracy is reported in product spec sheets and actual tests to be 3x  less accurate. Altitude accuracy is hindered by ionosphere activity. In fact, there are studies of ionospheric events (e.g. 2015 St. Patrick's  day <xref target="gps-ionosphere"/>) as measured by GPS devices at known locations.  Thus where a UA reports it is rarely accurate, but may be accurate enough to map to visual sightings of single UA.</t>

<t>Smartphones and particulary smartwatches are plagued with the same challenge, though some of these can combine other information like cell tower data to improve location accuracy.  FCC E911 accuracy, by FCC rules is NOT available to non-E911 applications due to privacy concerns, but general higher accuracy is found on some smart devices than reported for consumer UA.  The SDSP MAY have information on the Finder location accuracy that it can use in calculating the accuracy of a multilaterated location value.  When the Finders are fixed assets, the SDSP may have very high trust in their location for trusting the
multilateration calculation over the UA reported location.</t>

</section>
</section>
<section anchor="CSRID_messages"><name>The CS-RID Messages</name>

<t>The CS-RID messages between the Finders and the SDSPs primarily support the proxy role of the Finders in forwarding the B-RID messages.  There are also Finder registration and status messages.</t>

<t>CS-RID information is represented in CBOR <xref target="RFC7049"/>.
COSE <xref target="RFC8152"/> MAY be used for CS-RID MAC and COAP <xref target="RFC7252"/> for the CS-RID protocol.
The CDDL <xref target="RFC8610"/> specification is used for CS-RID message description.</t>

<t>The following is a general representation of the content in the CS-RID messages.</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    CS-RID MESSAGE CONTENT,
    CS-RID MAC
  )
]]></artwork></figure>

<t>The CS-RID MESSAGE CONTENT varies by MESSAGE TYPE.</t>

<section anchor="CS-RID_MESSAGE_TYPE"><name>CS-RID MESSAGE TYPE</name>

<t>The CS-RID MESSAGE TYPE is defined in <xref target="csrid-message"/>:</t>

<figure anchor="csrid-message"><artwork><![CDATA[
  Number   CS-RID Message Type
  ------   -----------------
  0        Reserved
  1        B-RID Forwarding
  2        Finder Registration
  3        SDSP Response
  4        Finder Location
  5        SDSP Heartbeat
]]></artwork></figure>

<section anchor="cddl-description-for-cs-rid-message-type"><name>CDDL description for CS-RID message type</name>

<t>The overall CS-RID CDDL description is structured in <xref target="csrid-object"/>.</t>

<figure anchor="csrid-object"><artwork><![CDATA[
CSRID_Object = {
  application-context,
  info                => info_message,
  proxy_message       => broadcast_rid_proxy_message,
  finder_registration => finder_registration_message,
  sdsp_response       => sdsp_response_message,
  location_update     => location_update_message,
  sdsp_heartbeat      => sdsp_heartbeat_message,
}

info_message = {
  common_message_members,
  message_content => tstr,
}

common_message_members = (
  message_type  => message_types,
  mac_address   => #6.37(bstr),
)

message_types = &(
  Reserved            : 0,
  BRD                 : 1,
  Finder-Registration : 2,
  SDSP-Response       : 3,
  Finder-Location     : 4,
)
]]></artwork></figure>

<t>The application context rule is defined in <xref target="csrid-app-context"/> for
CS-RID application identification and version negotiation.</t>

<figure anchor="csrid-app-context"><artwork><![CDATA[
application-context = (
  application => "DRIP-CSRID",
  ? version => uint .size(1..2),
)
]]></artwork></figure>

<t>The predefined CDDL text string labels (author note: for JSON currently, will move to CBOR uint keys in upcoming versions) used in the specification is listed in <xref target="csrid-variables"/>.</t>

<figure anchor="csrid-variables"><artwork><![CDATA[
application           = "application"
version               = "version"
info                  = "message_info"
proxy_message         = "proxy_message-type"
finder_registration   = "finder_registration"
sdsp_response         = "sdsp_response"
location_update       = "location_update"
sdsp_heartbeat        = "sdsp_heartbeat"
rid                   = "id"
message_type          = "message_type"
mac_address           = "mac_address"
message_content       = "message_content"
timestamp             = "timestamp"
gps                   = "gps"
radio_type            = "radio_type"
broadcast_mac_address = "broadcast_mac_address"
broadcast_message     = "broadcast_message"
sdsp_id               = "sdsp_id"
proxy_status_type     = "proxy_status_type"
update_interval       = "update_interval"
]]></artwork></figure>

</section>
</section>
<section anchor="CSRID_proxy"><name>The CS-RID B-RID Proxy Message</name>

<t>The Finders add their own information to the B-RID messages,
permitting the SDSP(s) to gain additional knowledge about the
UA(s).  The RID information is the B-RID message content plus the
MAC address.  The MAC address is critical, as it is the only
field that links a UA's B-RID messages together.  Only the ASTM
Basic ID Message and possibly the Authentication Message contain
the UAS ID field.</t>

<t>The Finders add an SDSP assigned ID, a 64 bit timestamp, GPS
information, and type of B-RID media to the B-RID message.  Both
the timestamp and GPS information are for when the B-RID
message(s) were received, not forwarded to the SDSP.  All this
content is MACed using a key shared between the Finder and SDSP.</t>

<t>The following is a representation of the content in the CS-RID
messages.</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    CS-RID ID,
    RECEIVE TIMESTAMP,
    RECEIVE GPS,
    RECEIVE RADIO TYPE,
    B-RID MAC ADDRESS,
    B-RID MESSAGE,
    CS-RID MAC
  )
]]></artwork></figure>

<section anchor="CS-RID_ID"><name>CS-RID ID</name>

<t>The CS-RID ID is the ID recognized by the SDSP.  This may be an HHIT <xref target="RFC9374"/>, or any ID used by the SDSP.</t>

</section>
<section anchor="cddl-description-for-cs-rid-b-rid-proxy-message"><name>CDDL description for CS-RID B-RID Proxy Message</name>

<t>The broadcast CS-RID proxy CDDL is defined in <xref target="csrid-brid-proxy"/></t>

<figure anchor="csrid-brid-proxy"><artwork><![CDATA[
broadcast_rid_proxy_message = {
  common_message_members,
  rid                   => tstr,
  timestamp             => tdate,
  gps                   => gps-coordinates,
  radio_type            => radio_types,
  broadcast_mac_address => #6.37(bstr),
  broadcast_message     => #6.37(bstr),
}

radio_types = &(
  EFL : 0,
  VLF : 1,
  LF  : 2,
  MF  : 3,
  HF  : 4,
  HF  : 5,
  VHF : 6,
  UHF : 7,
  SHF : 8,
  EHF : 9,
)

gps-coordinates = [
  latitude : float,
  longitude: float,
  altitude : float,
]
]]></artwork></figure>

</section>
</section>
<section anchor="CS-RID_Reg"><name>CS-RID Finder Registration</name>

<t>The CS-RID Finder MAY use <xref target="RFC7401"/> with the SDSP to establish a Security Association and a shared secret to use for the CS-RID MAC generation.  In this approach, the HIP mobility functionality and <xref target="RFC4303"/> support are not used.</t>

<t>When HIP is used as above, the Finder Registration is a SDSP "wake up".  It is sent prior to the Finder sending any proxied
B-RID messages to ensure that the SDSP is able to receive and process the messages.</t>

<t>In this usage, the CS-RID ID is the Finder HIT.  If the SDSP has lost state with the Finder, it initiates the HIP exchange with the
Finder to reestablish HIP state and a new shared secret for the CS-RID B-RID Proxy Messages.  In this case the Finder Registration
Message is:</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    CS-RID ID,
    CS-RID TIMESTAMP,
    CS-RID GPS,
    CS-RID MAC
  )
]]></artwork></figure>

<section anchor="cddl-description-for-finder-registration"><name>CDDL description for Finder Registration</name>
<t>The CDDL for CS-RID Finder Registration is defined in <xref target="csrid-finder-registration"/></t>

<figure anchor="csrid-finder-registration"><artwork><![CDATA[
finder_registration_message = {
  common_message_members,
  rid       => tstr,
  timestamp => tdate,
  gps       => gps-coordinates,
}

gps-coordinates = [
  latitude : float,
  longitude: float,
  altitude : float,
]
]]></artwork></figure>

</section>
</section>
<section anchor="SDSP_Reg_R"><name>CS-RID SDSP Response</name>

<t>The SDSP MAY respond to any Finder messages to instruct the Finder on its
behavior.</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    SDSP ID,
    CS-RID ID,
    CS-RID PROXY STATUS,
    CS-RID UPDATE INTERVAL,
    CS-RID MAC
  )
]]></artwork></figure>

<t>The Proxy Status instructs the Finder if it should actively proxy
B-RID messages, or suspend proxying and only report its location.</t>

<t>The Update Interval is the frequency that the Finder SHOULD notify
the SDSP of its current location using the Location Update message.</t>

<section anchor="cddl-description-for-sdsp-response"><name>CDDL description for SDSP Response</name>

<t>The CDDL for CS-RID SDSP response is defined in <xref target="csrid-sdsp-response"/></t>

<figure anchor="csrid-sdsp-response"><artwork><![CDATA[
sdsp_response_message = {
  common_message_members,
  sdsp_id           => tstr,
  rid               => tstr,
  proxy_status_type => proxy_status_types,
  update_interval   => uint,
}

gps-coordinates = [
  latitude : float,
  longitude: float,
  altitude : float,
]

proxy_status_types = &(
  0: "forward",
  1: "reverse",
  2: "bi-directional",
)
]]></artwork></figure>

</section>
</section>
<section anchor="CS-RID_Upd"><name>CS-RID Location Update</name>

<t>The Finder SHOULD provide regular location updates to the SDSP. The
interval is based on the Update Interval from <xref target="SDSP_Reg_R"/> plus a random slew less than
1 second.  The Location Update message is only sent when no other
CS-RID messages, containing the Finder's GPS location, have been
sent since the Update Interval.</t>

<t>If the Finder has not recieved a SDSP Registration Response, a
default of 5 minutes is used for the Update Interval.</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    CS-RID ID,
    CS-RID TIMESTAMP,
    CS-RID GPS,
    CS-RID MAC
  )
]]></artwork></figure>

<section anchor="cddl-description-for-location-update"><name>CDDL description for Location Update</name>

<t>The CDDL for CS-RID Location update is defined in <xref target="csrid-location-update"/>.</t>

<figure anchor="csrid-location-update"><artwork><![CDATA[
location_update_message = {
  common_message_members,
  rid       => tstr,
  timestamp => tdate,
  gps       => gps-coordinates,
}

gps-coordinates = [
  latitude : float,
  longitude: float,
  altitude : float,
]
]]></artwork></figure>

</section>
</section>
<section anchor="sdsp_heartbeat_cddl"><name>SDSP Heartbeat</name>

<t>The SDSP SHOULD send a heartbeat message at some periodicity to the Finders so that they get confirmation that their is a receiver of their transmissions.</t>

<figure><artwork><![CDATA[
  (
    CS-RID MESSAGE TYPE,
    SDSP ID,
    CS-RID TIMESTAMP,
  )
]]></artwork></figure>

<section anchor="cddl-description-for-sdsp-heartbeat"><name>CDDL description for SDSP Heartbeat</name>

<t>The CDDL for CS-RID Heartbeat is defined in <xref target="csrid-sdsp-heartbeat"/>.</t>

<figure anchor="csrid-sdsp-heartbeat"><artwork><![CDATA[
sdsp_heartbeat_messagege = {
  common_message_members,
  sdsp_id   => tstr,
  timestamp => tdate,
}

]]></artwork></figure>

</section>
</section>
</section>
<section anchor="the-full-cs-rid-cddl-specification"><name>The Full CS-RID CDDL specification</name>

<figure><sourcecode type="CDDL"><![CDATA[
<CODE BEGINS>
; CDDL specification for Crowd source RID
; It specifies a collection of CS message types
;

;
; The CSRID overall data structure

CSRID_Object = {
    application-context,
    info =>  info_message,
    proxy_message => broadcast_rid_proxy_message,
    finder_registration => finder_registration_message,
    sdsp_response => sdsp_response_message,
    location_update => location_update_message,
}

;
; Application context: general information about CSRID message 

application-context = (
    application => "DRIP-CSRID", ; TBD: consider CBOR tag 
    ? version => uint .size(1..2),
)

; These members are include in every message
common_message_members = (
    message_type => message_types,
    mac_address => #6.37(bstr),
)

;
; CSRID message general information

info_message = {
    common_message_members,
    message_content => tstr,
}

broadcast_rid_proxy_message = {
    common_message_members,
    rid => tstr,
    timestamp => tdate,
    gps => gps-coordinates,
    radio_type => radio_types,
    broadcast_mac_address => #6.37(bstr)
    broadcast_message => #6.37(bstr)
}

finder_registration_message = {
    common_message_members,
    rid => tstr,
    timestamp => tdate,
    gps => gps-coordinates,
}

sdsp_response_message = {
    common_message_members,
    sdsp_id => tstr,
    rid => tstr,
    proxy_status_type => proxy_status_types,
    update_interval => uint,
}

location_update_message = {
    common_message_members,
    rid => tstr,
    timestamp => tdate,
    gps => gps-coordinates,
}

;
; Common rule definition

message_types = &(
    Reserved            : 0,
    BRD                 : 1,
    Finder-Registration : 2,
    SDSP-Response       : 3,
    Finder-Location     : 4,
)

gps-coordinates = [
    lat: float,
    long: float,
    alt : float,
]

; Radio types, choose from one of radio_types (required)
radio_types = &(
    EFL : 0,
    VLF : 1,
    LF  : 2,
    MF  : 3,
    HF  : 4,
    HF  : 5,
    VHF : 6,
    UHF : 7,
    SHF : 8,
    EHF : 9,
)

proxy_status_types = &(
    0: "forward",
    1: "reverse",
    2: "bi",
)

;
; JSON label names

application = "application"
version = "version"
info = "message_info"
proxy_message = "proxy_message-type"
finder_registration = "finder_registration"
sdsp_response = "sdsp_response"
location_update = "location_update"
rid = "id"
message_type = "message_type"
mac_address = "mac_address"
message_content = "message_content"
timestamp = "timestamp"
gps = "gps"
radio_type = "radio_type"
broadcast_mac_address = "broadcast_mac_address"
broadcast_message = "broadcast_message"
sdsp_id = "sdsp_id"
proxy_status_type = "proxy_status_type"
update_interval = "update_interval"
 
<CODE ENDS>
]]></sourcecode></figure>

</section>
<section anchor="IANA"><name>IANA Considerations</name>

<t>TBD</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>TBD</t>

<section anchor="privacy-concerns"><name>Privacy Concerns</name>

<t>TBD</t>

</section>
</section>

  </middle>

  <back>
<displayreference target="I-D.ietf-drip-registries" to="drip-registries"/>

<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.8152.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.8610.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
</references>
<references title='Informative References'>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-drip-registries.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5238.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7049.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.7252.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7748.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.9374.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9434.xml"/>
	<xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9575.xml"/>

<reference anchor="F3411-22a" target="https://www.astm.org/f3411-22a.html">
  <front>
    <title>Standard Specification for Remote ID and Tracking</title>
    <author >
      <organization>ASTM International</organization>
    </author>
    <date year="2022" month="July"/>
  </front>
</reference>
<reference anchor="F3623-23" target="https://www.astm.org/f3623-23.html">
  <front>
    <title>Standard Specification for Surveillance Supplementary Data Service Providers</title>
    <author >
      <organization>ASTM International</organization>
    </author>
    <date year="2023" month="December"/>
  </front>
</reference>
<reference anchor="FAA-FR" target="https://www.govinfo.gov/content/pkg/FR-2021-01-15/pdf/2020-28948.pdf">
  <front>
    <title>FAA Remote Identification of Unmanned Aircraft</title>
    <author >
      <organization>United States Federal Aviation Administration (FAA)</organization>
    </author>
    <date year="2021" month="January"/>
  </front>
</reference>
<reference anchor="gps-ionosphere" target="https://doi.org/10.1002/2015JA021629">
  <front>
    <title>Ionospheric response to the 2015 St. Patrick's Day storm A global multi-instrumental overview</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015" month="September"/>
  </front>
</reference>
</references>

<section anchor="LIDAR"><name>Using LIDAR for UA location</name>
<t>
	If the Finder has LIDAR or similar detection equipment (e.g. on a 
	connected car) that has full sky coverage, the Finder can use this 
	equipment to locate UAs in its airspace.  The Finder would then be 
	able to detect non-participating UAs.  A non-participating UA is 
	one that the Finder can "see" with the LIDAR, but not "hear" any 
	B-RID messages.
</t>
<t>
	These Finders would then take the LIDAR data, construct appropriate 
	B-RID messages, and forward them to the SPDP as any real B-RID 
	messages.
</t>
<t>
	The MAC address for this messages SHOULD be a locally administered, 
	random address.  The Finder should make all effort to use the same 
	address for a UA detected in this manner.
</t>
<t>
	The UAS ID SHOULD be a UUIDv4 (Type=3).  The Finder should make all 
	effort to use the same UUID for a UA detected in this manner.
</t>
<t>
	The SDSP would do the work of linking information on a 
	non-participating UA that it has received from multiple Finders 
	with LIDAR detection.  In doing so, it would have to select a 
	RemoteID to use.
</t>
<t>
	A seemingly non-participating UA may actually be a UA that is 
	beyond range for its B-RID but in the LIDAR range.
</t>
<t>
	This would provide valuable information to SDSPs to forward to UTMs 
	on potential at-risk situations.
</t>
<t>
	At this time, research on LIDAR and other detection technology is 
	needed.  there are full-sky LIDAR for automotive use with ranges 
	varying from 20M to 250M.  Would more than UA location information 
	be available?  What information can be sent in a CS-RID message for 
	such "unmarked" UAs?
</t>
</section>
<section numbered="no" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The Crowd Sourcing idea in this document came from the Apple "Find
My Device" presentation at the International Association for
Cryptographic Research's Real World Crypto 2020 conference.</t>

</section>

  </back>

</rfc>

