<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.2 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-drip-auth-09" category="std" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.7.0 -->
  <front>
    <title abbrev="auth-formats">DRIP Authentication Formats &amp; Protocols for Broadcast Remote ID</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-drip-auth-09"/>
    <author initials="A." surname="Wiethuechter (Editor)" fullname="Adam Wiethuechter">
      <organization>AX Enterprize, LLC</organization>
      <address>
        <postal>
          <street>4947 Commercial Drive</street>
          <city>Yorkville</city>
          <region>NY</region>
          <code>13495</code>
          <country>USA</country>
        </postal>
        <email>adam.wiethuechter@axenterprize.com</email>
      </address>
    </author>
    <author initials="S." surname="Card" fullname="Stuart Card">
      <organization>AX Enterprize, LLC</organization>
      <address>
        <postal>
          <street>4947 Commercial Drive</street>
          <city>Yorkville</city>
          <region>NY</region>
          <code>13495</code>
          <country>USA</country>
        </postal>
        <email>stu.card@axenterprize.com</email>
      </address>
    </author>
    <author initials="R." surname="Moskowitz" fullname="Robert Moskowitz">
      <organization>HTT Consulting</organization>
      <address>
        <postal>
          <street/>
          <city>Oak Park</city>
          <region>MI</region>
          <code>48237</code>
          <country>USA</country>
        </postal>
        <email>rgm@labs.htt-consult.com</email>
      </address>
    </author>
    <date year="2022" month="April" day="30"/>
    <area>Internet</area>
    <workgroup>DRIP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes how to include trust into the ASTM Remote ID specification defined in ASTM F3411 under Broadcast Remote ID (RID). It defines a few message schemes (sent within the Authentication Message) that can be used to authenticate past messages sent by a unmanned aircraft (UA) and provide proof of UA trustworthiness even in the absence of Internet connectivity at the receiving node.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>Unmanned Aircraft Systems (UAS) are usually in a volatile environment when it comes to communication. UA are generally small with little computational (or flying) horsepower to carry standard communication equipment. This limits  the mediums of communication to few viable options.</t>
      <t>Observer systems (e.g. smartphones and tablets) place further constraints on the communication options. The Remote ID Broadcast messages MUST be available to applications on these platforms without modifying the devices.</t>
      <t>The ASTM <xref target="F3411" format="default"/> standard focuses on two ways of communicating to a UAS for Remote ID (RID): Broadcast and Network.</t>
      <t>This document will focus on adding trust to Broadcast RID via the Authentication Message by combining dynamically signed data with an Attestation of the UA's identity from a Registry.</t>
      <section anchor="drip-requirements-addressed" numbered="true" toc="default">
        <name>DRIP Requirements Addressed</name>
        <t>The following <xref target="drip-requirements" format="default"/> will be addressed:</t>
        <dl newline="false" spacing="normal">
          <dt>GEN 1: Provable Ownership</dt>
          <dd>
  This will be addressed using the DRIP Link and DRIP Wrapper or DRIP Manifest.</dd>
          <dt>GEN 2: Provable Binding</dt>
          <dd>
  This requirement is addressed using the DRIP Wrapper or DRIP Manifest.</dd>
          <dt>GEN 3: Provable Registration</dt>
          <dd>
  This requirement is addressed using the DRIP Link.</dd>
        </dl>
        <t>See <xref target="drip-recommendations" format="default"/> for further clarification.</t>
      </section>
    </section>
    <section anchor="terminology" numbered="true" toc="default">
      <name>Terminology</name>
      <section anchor="required-terminology" numbered="true" toc="default">
        <name>Required 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" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="definitions" numbered="true" toc="default">
        <name>Definitions</name>
        <t>See <xref target="drip-requirements" format="default"/> for common DRIP terms.</t>
        <dl newline="false" spacing="normal">
          <dt>Legacy Transports:</dt>
          <dd>
  uses broadcast frames (Bluetooth 4.x).</dd>
          <dt>Extended Transports:</dt>
          <dd>
  uses the extended advertisements (Bluetooth 5.X), service info (Wi-Fi NaN) or vendor specific element information (Wi-Fi BEACON). Must use ASTM <xref target="F3411" format="default"/> Message Pack (Message Type 0xF).</dd>
        </dl>
      </section>
    </section>
    <section anchor="background" numbered="true" toc="default">
      <name>Background</name>
      <section anchor="problem-space-and-focus" numbered="true" toc="default">
        <name>Problem Space and Focus</name>
        <t>The current standard for Remote ID does not, in any meaningful capacity, address the concerns of trust in the UA space with communication in the Broadcast RID environment. This is a requirement that will need to be addressed eventually for various different parties that have a stake in the UA industry.</t>
        <section anchor="broadcast-rid-rf-options" numbered="true" toc="default">
          <name>Broadcast RID RF Options</name>
          <t>A UA has the option of broadcasting using Bluetooth (4 and 5) or Wi-Fi (BEACON or NAN), see <xref target="reqs" format="default"/>.  With Bluetooth, FAA and other CAA mandate transmitting simultaneously over both 4 and 5. With Wi-Fi, use of BEACON is recommended. Wi-Fi NAN is another option, depending on CAA.</t>
          <t>Bluetooth 4 presents a payload size challenge in that it can only transmit 25 bytes of payload where the others all can support 252 byte payloads.</t>
        </section>
      </section>
      <section anchor="reasoning-for-ietf-drip-authentication" numbered="true" toc="default">
        <name>Reasoning for IETF DRIP Authentication</name>
        <t>The ASTM Authentication Message has provisions in <xref target="F3411" format="default"/> to allow for other organizations to standardize additional Authentication formats beyond those explicitly in <xref target="F3411" format="default"/>.  The standardization of specific formats to support the DRIP requirements in UAS RID for trustworthy communications over Broadcast RID is an important part of the chain of trust for a UAS ID.  No existing formats (defined in <xref target="F3411" format="default"/> or other organizations leveraging this feature) provide the functionality to satisfy this goal resulting in the work reflected in this document.</t>
      </section>
      <section anchor="astm-authentication-message" numbered="true" toc="default">
        <name>ASTM Authentication Message</name>
        <t>The ASTM Authentication Message (Message Type 0x2) is a unique message in the Broadcast <xref target="F3411" format="default"/> standard as it is the only one that is larger than the Bluetooth 4 frame size. To address this, it is defined as a set of "pages" that each fits into a single Bluetooth 4 broadcast frame. For other media these pages are still used but all in a single frame.</t>
        <section anchor="authentication-page" numbered="true" toc="default">
          <name>Authentication Page</name>
          <figure anchor="astm-auth-page">
            <name>Standard ASTM Authentication Message Page</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|  Page Header  |                                               |
+---------------+                                               |
|                                                               |
|                                                               |
|                     Authentication Payload                    |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

Page Header: (1 byte)
    Authentication Type (4 bits)
    Page Number (4 bits)
    
Authentication Payload: (23 bytes per page)
    Authentication Payload, including headers. Null padded.
]]></artwork>
          </figure>
          <t>A single Authentication Message is akin to a UDP packet. The Authentication Message is structured as a set of up to 16 pages. Over Bluetooth 4, these pages are "fragmented" into separate Bluetooth 4 broadcast frames.</t>
          <t>Either as a single Authentication Message or a set of fragmented Authentication Message Pages the structure(s) is further wrapped by outer ASTM framing and the specific link framing (Bluetooth or Wi-Fi).</t>
          <section anchor="authentication-type" numbered="true" toc="default">
            <name>Authentication Type</name>
            <t><xref target="F3411" format="default"/> has the following subset of Authentication Type's defined and that can be used in the <tt>Page Header</tt>:</t>
            <table align="center">
              <thead>
                <tr>
                  <th align="left">Authentication Type</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">0x2</td>
                  <td align="left">Operator ID Signature</td>
                </tr>
                <tr>
                  <td align="left">0x3</td>
                  <td align="left">Message Set Signature</td>
                </tr>
                <tr>
                  <td align="left">0x5</td>
                  <td align="left">Specific Authentication Method</td>
                </tr>
              </tbody>
            </table>
            <section anchor="specific-authentication-method-sam" numbered="true" toc="default">
              <name>Specific Authentication Method (SAM)</name>
              <t>This document leverages Authentication Type 0x5, Specific Authentication Method (SAM), defining a set of SAM Types in <xref target="specific-method" format="default"/>. Other Authentication Types are also used in DRIP and their use is defined in <xref target="drip-authentication-formats" format="default"/>.</t>
            </section>
          </section>
          <section anchor="page-number" numbered="true" toc="default">
            <name>Page Number</name>
            <t>There is a technical maximum of 16 pages (indexed 0 to 15 in the <tt>Page Header</tt>) that can be sent for a single Authentication Message, with each page carrying a max 23-byte <tt>Authentication Payload</tt>. See <xref target="drip-restrictions" format="default"/> for more details.</t>
          </section>
          <section anchor="authentication-payload-field" numbered="true" toc="default">
            <name>Authentication Payload Field</name>
            <t>The following is shown in its complete format.</t>
            <figure anchor="astm-auth">
              <name>ASTM Authentication Message Fields</name>
              <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                     Authentication Headers                    |
|                               +---------------+---------------+
|                               |                               |
+---------------+---------------+                               |
.                                                               .
.                Authentication Data / Signature                .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+
|      ADL      |                                               |
+---------------+                                               |
.                                                               .
.                       Additional Data                         .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+

Authentication Headers: (6 bytes)
    Contains other header information for the Authentication
    Message as defined in F3411.

Authentication Data / Signature: (0 to 255 bytes)
    Opaque authentication data.

Additional Data Length (ADL): (1 byte - unsigned)
    Length in bytes of Additional Data.

Additional Data: (0 to 255 bytes):
    Data that follows the Authentication Data / Signature but
    is not considered part of the Authentication Data.
]]></artwork>
            </figure>
            <t><xref target="astm-auth" format="default"/> is the abstract view of the data fields found in the Authentication Message as defined by <xref target="F3411" format="default"/>. This data is placed into <xref target="astm-auth-page" format="default"/>'s <tt>Authentication Payload</tt>, spanning multiple pages.</t>
            <t>When <tt>Additional Data</tt> is being sent, a single unsigned byte (<tt>Additional Data Length</tt>) directly follows the <tt>Authentication Data / Signature</tt> and has the length, in bytes, of the following <tt>Additional Data</tt>. For DRIP, this field is used to carry Forward Error Correction as defined in <xref target="fec-details" format="default"/>.</t>
          </section>
        </section>
        <section anchor="drip-restrictions" numbered="true" toc="default">
          <name>ASTM Constraints</name>
          <t>To keep consistent formatting across the different transports (Legacy and Extended) and their independent restrictions the authentication data being sent is REQUIRED to fit within the page limit of the most constrained existing transport can support. Under Broadcast RID the transport that can hold the least amount of authentication data is Bluetooth 5 and Wi-Fi BEACON at 9-pages.</t>
          <t>As such DRIP transmitters are REQUIRED to adhere to the following when using the Authentication Message:</t>
          <ol spacing="normal" type="1"><li>
              <tt>Authentication Data / Signature</tt> data MUST fit in a 9 pages (Page Numbers 0 through 8).</li>
            <li>The <tt>Length</tt> field in the <tt>Authentication Headers</tt> (which denotes the length in bytes of <tt>Authentication Data / Signature</tt> only) MUST NOT exceed the value of 201.</li>
          </ol>
        </section>
      </section>
    </section>
    <section anchor="fec-details" numbered="true" toc="default">
      <name>Forward Error Correction</name>
      <t>For Broadcast RID, Forward Error Correction (FEC) is provided by the lower layers in Extended Transports (Bluetooth 5.X, Wi-Fi NaN, and Wi-Fi BEACON). Legacy Transports do not have supporting FEC so with DRIP Authentication the following application level FEC scheme is used.</t>
      <section anchor="encoding" numbered="true" toc="default">
        <name>Encoding</name>
        <t>For any encoding the FEC data MUST start on new ASTM Authentication Page. To do this null padding is add before the actual FEC data starts and the length of the whole blob (null padding and FEC) is used as the <tt>Additional Data Length</tt>. To properly fit FEC data into an Authentication Page the number of parity-bytes is limited to 23 (or a multiple thereof). This means that the <tt>Page Header</tt> (and anything before it) is omitted in the FEC process.</t>
        <section anchor="enc-single-page" numbered="true" toc="default">
          <name>Single Page FEC</name>
          <t>To generate the parity a simple XOR operation using the previous and current page is used. Only the last 23-bytes are used during the XOR operation. For Page 0, a 23-byte null pad is used for the previous page. The resulting parity fills the <tt>Additional Data</tt> field of <xref target="F3411" format="default"/> with the <tt>Additional Data Length</tt> field being set to 23 or greater (depending on number of null pad bytes are needed to get onto the next page).</t>
          <figure anchor="single-fec">
            <name>Example Single Page FEC Encoding</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
Page N-1:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|  Page Header  |                                               |
+---------------+                                               |
|                Authentication Data / Signature                |
|                                                               |
|               +---------------+---------------+---------------+
|               |    ADL=33     |                               |
+---------------+---------------+                               |
|                          Null Padding                         |
|                                                               |
+---------------+---------------+---------------+---------------+

Page N:
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|  Page Header  |                                               |
+---------------+                                               |
|                                                               |
|                     Forward Error Correction                  |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
          </figure>
        </section>
        <section anchor="enc-multi-page" numbered="true" toc="default">
          <name>Multiple Page FEC</name>
          <t>For Multiple Page FEC there are two flavors: Frame Recovery and Page Recovery. Both follow a similar process, but are offset at what data is actually protected.</t>
          <t>(Editor Note: to improve interop should we explicitly select a polynomial for Reed Solomon that DRIP must use?)</t>
          <section anchor="enc-page" numbered="true" toc="default">
            <name>Page Recovery</name>
            <t>Take the following example of an Authentication Message that 3-pages of parity are to be generated for:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
12 50 098960bf8c05 042001001000a00145aac6b00abba268b7
12 51 2001001000a0014579d8a404d48f2ef9bb9a4470ada5b4
12 52 ff1352c7402af9d9ebd20034e8d7a12920f4d7e91c1a73
12 53 dca7d04e776150825863c512c6eb075a206a95c59b297e
12 54 f2935fd416f27b1b42fd5d9dfaa0dec79f32287f41b454
12 55 7101415def153a770d3e6c0b17ae560809bc634a822c1f
12 56 3b1064b80a000000000000000000000000000000000000
]]></artwork>
            <t>For Page Recovery the first two columns are ignored (being the <tt>Page Header</tt> and any data before it), the last 23 columns are extracted and have Reed Solomon performed on it to produce parity bytes. For the example the following 3-bytes of parity are generated:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
dc6c2b = ReedSolomon.encoder(0920ffdcf2713b)
]]></artwork>
            <t>Each set of parity is the placed into a pseudo-frame as follows (each byte in its own message in the same column):</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
00 00 dc00000000000000000000000000000000000000000000
00 00 6c00000000000000000000000000000000000000000000
00 00 2b00000000000000000000000000000000000000000000
]]></artwork>
            <t>The above data set produces the following full set of parity:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
00 00 dc6657acd30b2ec4aa582049f52adf9f922e62c469563a
00 00 6c636a59145a55417a3895fd543f19e94200be4abc5e94
00 00 02bba5e28f5896d754caf50016a983993b149b5c9e6eeb
]]></artwork>
            <t>The last 23-bytes are then added into the <tt>Additional Data</tt> fields of their respective pages:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
12 57 dc6657acd30b2ec4aa582049f52adf9f922e62c469563a
12 58 6c636a59145a55417a3895fd543f19e94200be4abc5e94
12 59 02bba5e28f5896d754caf50016a983993b149b5c9e6eeb
]]></artwork>
          </section>
          <section anchor="enc-frame" numbered="true" toc="default">
            <name>Frame Recovery</name>
            <t>Frame Recovery uses the full ASTM Message and performs Reed Solomon over each byte. Below is an example of a number of messages.</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
10 42012001001000a0014579d8a404d48f2ef9000000000000
11 249600006efeb019ee111ed37a097a0948081c10ffff0000
12 50 098960bf8c05 042001001000a00145aac6b00abba268b7
12 51 2001001000a0014579d8a404d48f2ef9bb9a4470ada5b4
12 52 ff1352c7402af9d9ebd20034e8d7a12920f4d7e91c1a73
12 53 dca7d04e776150825863c512c6eb075a206a95c59b297e
12 54 f2935fd416f27b1b42fd5d9dfaa0dec79f32287f41b454
12 55 7101415def153a770d3e6c0b17ae560809bc634a822c1f
12 56 3b1064b80a000000000000000000000000000000000000
13 0052656372656174696f6e616c2054657374000000000000
14 02c2ffb019322d1ed3010000c008e40700fc080000000000
15 004e2e4f5031323334353600000000000000000000000000
]]></artwork>
            <t>Each column is extracted and has Reed Solomon performed on it to produce parity bytes.  In the below example 5-bytes of parity are generated with Frame Recovery:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
6c3f42b8a8 = ReedSolomon.encoder(101112121212121212131415)
]]></artwork>
            <t>Each set of parity is the placed into a pseudo-frame as follows (each byte in its own message in the same column):</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
6c000000000000000000000000000000000000000000000000
3f000000000000000000000000000000000000000000000000
42000000000000000000000000000000000000000000000000
b8000000000000000000000000000000000000000000000000
a8000000000000000000000000000000000000000000000000
]]></artwork>
            <t>The above data set produces the following sets of parity:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
6c86337bf7ab746f5d62bb7f8de954104b121585d3975f6e92
3f06c1bce165b0e25930d57a63c24f751145e1dd8dc115029b
42e9979580327a6a14d421c12a33aa2e1a2e517daaee581016
b8012a7b3964f7b2720d387bfa77e945556f1831cd477ef3a3
a85bb403aada89926fb8fc2a14a9caacb4ec2f3a6ed2d8e9f9
]]></artwork>
            <t>For Frame Recovery the above data would be placed into Authentication Pages like below:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
12 57 6c86337bf7ab746f5d62bb7f8de954104b121585d3975f
12 58 6e923f06c1bce165b0e25930d57a63c24f751145e1dd8d
12 59 c115029b42e9979580327a6a14d421c12a33aa2e1a2e51
12 5a 7daaee581016b8012a7b3964f7b2720d387bfa77e94555
12 5b 6f1831cd477ef3a3a85bb403aada89926fb8fc2a14a9ca
12 5c acb4ec2f3a6ed2d8e9f900000000000000000000000000
]]></artwork>
            <t>Up to 240 (255 minus 15 pages max of FEC data) messages can be protected using Frame Recovery.</t>
          </section>
        </section>
      </section>
      <section anchor="decoding" numbered="true" toc="default">
        <name>Decoding</name>
        <t>Due to the nature of Bluetooth 4 and the existing ASTM paging structure an optimization can be used. If a Bluetooth frame fails its CRC check, then the frame is dropped without notification to the upper protocol layers. From the Remote ID perspective this means the loss of a complete frame/message/page. In Authentication Messages, each page is already numbered so the loss of a page allows the receiving application to build a "dummy" page filling the entire page with nulls.</t>
        <t>If Page 0 is being reconstructed an additional check of the <tt>Last Page Index</tt> to check against how many pages are actually present, MUST be performed for sanity. An additional check on the <tt>Length</tt> field SHOULD also be performed.</t>
        <t>To determine if Single Page FEC or Multiple Page FEC has been used a simple check of the <tt>Last Page Index</tt> can be used. If the number of pages left after the <tt>Length</tt> of Authentication Data is exhausted than it is clear that the remaining pages are all FEC. The <tt>Additional Data Length</tt> byte can further confirm this; taking into account any null padding needed for page alignment.</t>
        <section anchor="dec-single-page" numbered="true" toc="default">
          <name>Single Page FEC</name>
          <t>Using the same methods as encoding, an XOR operation is used between the previous and current page (a 23-byte null pad is used as the start). The resulting 23-bytes should be data of the missing page.</t>
        </section>
        <section anchor="dec-multi-page" numbered="true" toc="default">
          <name>Multiple Page FEC</name>
          <t>To determine if Page Recovery or Frame Recovery is used two modulo checks with the <tt>ADL</tt> after the length of the null-pad is removed are needed. One against the value of 23, and the other against the value of 25. If 23 comes back with a value of 0 then Page Recovery is being used. If 25 comes back with 0 then Frame Recovery is used. Any other combination indicates an error.</t>
          <section anchor="dec-page" numbered="true" toc="default">
            <name>Page Recovery</name>
            <t>To decode Page Recovery, dummy pages (pages with nulls as the data) are needed in the places no page was received. Then Reed Solomon can decode across the columns of the 23-bytes of each page. Erasures can be used as it is known which pages are missing and can improve the Reed Solomon results by specifying them.</t>
          </section>
          <section anchor="dec-frame" numbered="true" toc="default">
            <name>Frame Recovery</name>
            <t>To decode Frame Recovery, the receiver must first extract all FEC data from the pages; concatenate them and then break into 25-byte chunks. This will produce the pseudo-frames. Now Reed Solomon can be used to decode columns, with dummy frames inserted where needed.</t>
            <!-- Author Note (atw): for Page Recovery adding the nulls is easy - however how do we specify/know the order and number of messages for Frame Recovery to insert the null-Messages? -->

</section>
        </section>
      </section>
      <section anchor="fec-limitations" numbered="true" toc="default">
        <name>FEC Limitations</name>
        <t>The worst case scenario is when the <tt>Authentication Data / Signature</tt> ends perfectly on a page (Page N-1). This means the <tt>Additional Data Length</tt> would start the next page (Page N) and have 22-bytes worth of null padding to align the FEC in to the next page (Page N+1). In this scenario an entire page (Page N) is being wasted just to carry the <tt>Additional Data Length</tt>. This should be be avoided at all costs - in an effort to maintain efficiency.</t>
      </section>
    </section>
    <section anchor="bas" numbered="true" toc="default">
      <name>Broadcast Attestation Structure</name>
      <t>To directly support Broadcast RID a variation of the <tt>Attestation Structure</tt> format of <xref target="drip-registries" format="default"/> SHOULD be used when running DRIP under the various Authentication Types (filling the <tt>Authentication Data / Signature</tt> field of <xref target="astm-auth" format="default"/>) and SAM Types (filling the <tt>SAM Authentication Data</tt> field (<xref target="sam-authentication-data" format="default"/>)). The notable changes of the structure is that the timestamps are set by the UA and the <tt>Attestor Identity Information</tt> is set to the DET of the UA.</t>
      <t>When using this structure the UA is always self-attesting its DRIP Entity Tag (DET). The Host Identity of the UA DET can be looked up by mechanisms described in <xref target="drip-registries" format="default"/> or by extracting it from Broadcast Attestation (see <xref target="drip-link" format="default"/> and <xref target="drip-recommendations" format="default"/>).</t>
      <figure anchor="drip-data">
        <name>Broadcast Attestation Structure</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                              UA                               |
|                        DRIP Entity Tag                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
.                                                               .
.                        Attestation Data                       .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The UA DET in byte form (network byte order).

Attestation Data (0 to 112 bytes):
    Opaque attestation data.

Not Before Timestamp by UA (4-bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by UA (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

UA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the UA.
]]></artwork>
      </figure>
      <t><tt>Attestation Data</tt> is a field with a maximum of 112-bytes, containing data that the UA is attesting during its flight.</t>
      <t>The <tt>Not After Timestamp</tt> and <tt>Not Before Timestamp</tt> MUST follow the format defined in <xref target="F3411" format="default"/>. That is a Unix-style timestamp
but with an epoch of 01/01/2019 00:00:00. <tt>Not Before Timestamp</tt> MUST be set to the time the structure is signed over. An additional offset is then added to push the <tt>Not After Timestamp</tt> a short time into the future to avoid replay attacks.</t>
      <t>The offset used against the Unix-style timestamp is not defined in this document. Best practice identifying an acceptable offset should be used taking into consideration the UA environment, and propagation characteristics of the messages being sent and clock differences between the UA and Observers. A reasonable time would be to set <tt>Not After Timestamp</tt> 2 minutes ahead of <tt>Not Before Timestamp</tt>.</t>
    </section>
    <section anchor="drip-authentication-formats" numbered="true" toc="default">
      <name>DRIP Authentication Formats</name>
      <t>All formats defined in this section fill the <tt>Authentication Data / Signature</tt> field in <xref target="astm-auth" format="default"/>.</t>
      <t>When sending data over a medium that does not have underlying Forward Error Correction (FEC), for example Bluetooth 4, then <xref target="fec-details" format="default"/> MUST be used.</t>
      <section anchor="operator-id-signature" numbered="true" toc="default">
        <name>Operator ID Signature</name>
        <t>The existing ASTM <xref target="F3411" format="default"/> Authentication Type 0x2 can be used to send a static Self-Attestation of the Operator.</t>
        <figure anchor="op-sig">
          <name>DRIP Operator ID Signature</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                            Operator                           |
|                        DRIP Entity Tag                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                     Operator Host Identity                    |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
|                Not Before Timestamp by Operator               |
+---------------+---------------+---------------+---------------+
|                Not After Timestamp by Operator                |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                       Operator Signature                      |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The Operator DET in byte form (network byte order).

Operator Host Identity (32-bytes):
    HI of the Operator.

Not Before Timestamp by Operator (4 bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by Operator (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

Operator Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the Operator.
]]></artwork>
        </figure>
      </section>
      <section anchor="message-set-signature" numbered="true" toc="default">
        <name>Message Set Signature</name>
        <t>When running under Extended Transports, the existing ASTM <xref target="F3411" format="default"/> Authentication Type 0x3 can be used to sign over the adjacent ASTM Messages in the Message Pack (Message Type 0xF).</t>
        <t>The concatenation of all messages in the Message Pack (excluding Authentication) before signing MUST be in Message Type order and be placed between the <tt>UA DRIP Entity Tag</tt> and <tt>Not Before Timestamp</tt> field.</t>
        <figure anchor="set-sig">
          <name>DRIP Message Set Signature</name>
          <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                              UA                               |
|                        DRIP Entity Tag                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The UA DET in byte form (network byte order).

Not Before Timestamp by UA (4-bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by UA (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

UA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the UA.
]]></artwork>
        </figure>
      </section>
      <section anchor="specific-method" numbered="true" toc="default">
        <name>Specific Authentication Method</name>
        <t>For ASTM Specific Authentication Method (Authentication Type 0x5) a special SAM Type field, specified as the first byte of the <tt>Authentication Data / Signature</tt> by <xref target="F3411" format="default"/>, is used to multiplex between various formats.</t>
        <section anchor="sam-data-format" numbered="true" toc="default">
          <name>SAM Data Format</name>
          <t><xref target="sam-frame" format="default"/> is the general format to hold authentication data when using SAM and is placed inside the <tt>Authentication Data / Signature</tt> field in <xref target="astm-auth" format="default"/>.</t>
          <figure anchor="sam-frame">
            <name>SAM Data Format</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|   SAM Type    |                                               |
+---------------+                                               |
.                                                               .
.                     SAM Authentication Data                   .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+

SAM Type (1 byte):
    Byte defined by F3411 to multiplex SAMs

SAM Authentication Data (0 to 200 bytes):
    Opaque SAM authentication data.
]]></artwork>
          </figure>
          <section anchor="sam-type" numbered="true" toc="default">
            <name>SAM Type</name>
            <t>The SAM Type field is maintained by the International Civil Aviation Organization (ICAO) and for DRIP four are planned to be allocated:</t>
            <table align="center">
              <thead>
                <tr>
                  <th align="left">SAM Type</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">0x01</td>
                  <td align="left">DRIP Link (<xref target="drip-link" format="default"/>)</td>
                </tr>
                <tr>
                  <td align="left">0x02</td>
                  <td align="left">DRIP Wrapper (<xref target="drip-wrapper" format="default"/>)</td>
                </tr>
                <tr>
                  <td align="left">0x03</td>
                  <td align="left">DRIP Manifest (<xref target="drip-manifest" format="default"/>)</td>
                </tr>
                <tr>
                  <td align="left">0x04</td>
                  <td align="left">DRIP Frame (<xref target="drip-frame" format="default"/>)</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="sam-authentication-data" numbered="true" toc="default">
            <name>SAM Authentication Data</name>
            <t>This field has a maximum size of 200-bytes, as defined by <xref target="drip-restrictions" format="default"/>. When possible the Broadcast Attestation Structure (<xref target="bas" format="default"/>) should be used in this space.</t>
          </section>
        </section>
        <section anchor="drip-link" numbered="true" toc="default">
          <name>DRIP Link</name>
          <t>This SAM Type is used to transmit Broadcast Attestation's. The Broadcast Attestation of the Registry (HDA) over the UA MUST be sent (see <xref target="drip-recommendations" format="default"/>). Its structure is defined in <xref target="drip-registries" format="default"/> and an example of it can be found in <xref target="link-example" format="default"/>.</t>
          <figure anchor="link-fig">
            <name>DRIP Link</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
.                                                               .
.                      Broadcast Attestation                    .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+

Broadcast Attestation: (136-bytes)
    HDA over UA. Generated by a DRIP Registry during Session ID 
    registration.
]]></artwork>
          </figure>
          <t>This DRIP format MUST be used in conjunction with another DRIP SAM Type (such as Manifest or Wrapper) that contains data that is guaranteed to be unique and easily cross checked by the receiving device. A good candidate for this is using the DRIP Wrapper to encapsulate a Location Message (Message Type 0x2).</t>
          <section anchor="link-limitations" numbered="true" toc="default">
            <name>Link Limitations</name>
            <t>See <xref target="replay-attacks" format="default"/> for details on why this structure is not dynamically signed.</t>
          </section>
        </section>
        <section anchor="drip-wrapper" numbered="true" toc="default">
          <name>DRIP Wrapper</name>
          <t>This SAM Type is used to wrap and sign over a list of other <xref target="F3411" format="default"/> Broadcast RID messages. It MUST use the Broadcast Attestation Structure (<xref target="bas" format="default"/>).</t>
          <t>The <tt>Attestation Data</tt> field is filled with full (25-byte) <xref target="F3411" format="default"/> Broadcast RID messages. The minimum number being 1 and the maximum being 4. The encapsulated messages MUST be in Message Type order as defined by <xref target="F3411" format="default"/>. All message types except Authentication (Message Type 0x2) and Message Pack (Message Type 0xF) are allowed.</t>
          <t>To determine the number of messages wrapped the receiver can check that the length of the <tt>Attestation Data</tt> field of the DRIP Broadcast Attestation (<xref target="bas" format="default"/>) is a multiple of 25-bytes.</t>
          <figure anchor="wrapper-fig">
            <name>Example 4-Message DRIP Wrapper</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                              UA                               |
|                        DRIP Entity Tag                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                          ASTM Message                         |
|                                                               |
|                                                               |
|                                                               |
+               +---------------+---------------+---------------+
|               |                                               |
+---------------+                                               |
|                                                               |
|                          ASTM Message                         |
|                                                               |
|                                                               |
|                                                               |
+                               +---------------+---------------+
|                               |                               |
+---------------+---------------+                               |
|                                                               |
|                                                               |
|                          ASTM Message                         |
|                                                               |
|                                                               |
+                                               +---------------+
|                                               |               |
+---------------+---------------+---------------+               |
|                                                               |
|                                                               |
|                          ASTM Message                         |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The UA DET in byte form (network byte order).

ASTM Message (25 bytes):
    Full ASTM Message.

Not Before Timestamp by UA (4-bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by UA (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

UA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the UA.
]]></artwork>
          </figure>
          <section anchor="wrapper-limitations" numbered="true" toc="default">
            <name>Wrapper Limitations</name>
            <t>The primary limitation of the Wrapper format is the bounding of up to 4 ASTM Messages that can be sent within it. Another limitation is that the format can not be used as a surrogate for messages it is wrapping. This is due to high potential a receiver on the ground does not support DRIP. Thus when Wrapper is being used the wrapper data must effectively be sent twice; once as a single framed message (as specified in <xref target="F3411" format="default"/>) and then again wrapped within the Wrapper format.</t>
          </section>
        </section>
        <section anchor="drip-manifest" numbered="true" toc="default">
          <name>DRIP Manifest</name>
          <t>This SAM Type is used to create message manifests. It MUST use the Broadcast Attestation Structure (<xref target="bas" format="default"/>).</t>
          <t>By hashing previously sent messages and signing them we gain trust in UAs previous reports. An observer who has been listening for any considerable length of time can hash received messages and cross-check against listed hashes. This is a way to evade the limitation of a maximum of 4 messages in the Wrapper Format and reduce overhead.</t>
          <t>The <tt>Attestation Data</tt> field is filled with 12-byte hashes of previous <xref target="F3411" format="default"/> Broadcast messages. A receiver does not need to have received every message in the manifest to verify it. A manifest SHOULD typically encompass a single transmission cycle of messages being sent, see <xref target="operational" format="default"/>.</t>
          <figure anchor="manifest-fig">
            <name>Example DRIP Manifest</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                              UA                               |
|                        DRIP Entity Tag                        |

+---------------+---------------+---------------+---------------+
|                                                               |
|                     Previous Manifest Hash                    |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                     Current Manifest Hash                     |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                       ASTM Message Hash                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The UA DET in byte form (network byte order).

Previous Manifest Hash (12 bytes):
    See Section 6.3.4.3.

Current Manifest Hash (12 bytes):
    See Section 6.3.4.3.

ASTM Message Hash (12 bytes):
    Hash of a single full ASTM Message. Multiple hashes should
    be in Message Type order.

Not Before Timestamp by UA (4-bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by UA (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

UA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the UA.
]]></artwork>
          </figure>
          <section anchor="hash-op" numbered="true" toc="default">
            <name>Message Hash Algorithms and Operation</name>
            <t>The hash algorithm used for the Manifest Message is the same hash algorithm used in creation of the DET <xref target="drip-rid" format="default"/> that is signing the Manifest.</t>
            <t>An DET using cSHAKE128 <xref target="NIST.SP.800-185" format="default"/> computes the hash as follows:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
cSHAKE128(ASTM Message, 96, "", "Remote ID Auth Hash")
]]></artwork>
            <ul empty="true" spacing="normal">
              <li>
                <ul empty="true" spacing="normal">
                  <li>Note: <xref target="drip-rid" format="default"/> specifies cSHAKE128 but is open for the expansion of other OGAs.</li>
                </ul>
              </li>
            </ul>
            <section anchor="legacy-transport-hashing" numbered="true" toc="default">
              <name>Legacy Transport Hashing</name>
              <t>Under this transport DRIP hashes the full ASTM Message being sent over the Bluetooth Advertising frame. For Authentication Messages all the Authentication Message Pages are concatenated together and hashed as one object. For all other Message Types the 25-byte message is hashed.</t>
            </section>
            <section anchor="extended-transport-hashing" numbered="true" toc="default">
              <name>Extended Transport Hashing</name>
              <t>Under this transport DRIP hashes the full ASTM Message Pack (Message Type 0xF) - regardless of its content.</t>
            </section>
          </section>
          <section anchor="block-hashes" numbered="true" toc="default">
            <name>Pseudo-Blockchain Hashes</name>
            <t>Two special hashes are included in all Manifest messages; a previous manifest hash, which links to the previous manifest message, as well as a current manifest hash. This gives a pseudo-blockchain provenance to the manifest message that could be traced back if the observer was present for extended periods of time.</t>
            <dl newline="false" spacing="normal">
              <dt>Creation:</dt>
              <dd>
  During creation and signing of this message format this field MUST be set to 0. So the signature will be based on this field being 0, as well as its own hash. It is an open question of if we compute the hash, then sign or sign then compute.</dd>
              <dt>Cycling:</dt>
              <dd>
  There a few different ways to cycle this message. We can "roll up" the hash of 'current' to 'previous' when needed or to completely recompute the hash. This mostly depends on the previous note.</dd>
            </dl>
          </section>
          <section anchor="manifest-limitations" numbered="true" toc="default">
            <name>Manifest Limitations</name>
            <t>A potential limitation to this format is dwell time of the UA. If the UA is not sticking to a general area then most likely the Observer will not obtain many (if not all) of the messages in the manifest. Examples of such scenarios include delivery or survey UA.</t>
            <t>Another limitation is the length of hash, which is discussed in <xref target="manifest-hash-length" format="default"/>.</t>
          </section>
        </section>
        <section anchor="drip-frame" numbered="true" toc="default">
          <name>DRIP Frame</name>
          <t>This SAM Type is for when the authentication data does not fit in other defined formats under DRIP and is reserved for future expansion under DRIP if required. This SAM Type SHOULD use the Broadcast Attestation Structure (<xref target="bas" format="default"/>).</t>
          <figure anchor="frame-fig">
            <name>Example DRIP Frame</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                              UA                               |
|                        DRIP Entity Tag                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|  Frame Type   |                                               |
+---------------+                                               .
.                        Attestation Data                       .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

UA DRIP Entity Tag (16 bytes):
    The UA DET in byte form (network byte order).

Frame Type (1 byte):
    Sub-type for future different DRIP Frame formats.

Attestation Data (0 to 111 bytes):
    Opaque attestation data.

Not Before Timestamp by UA (4-bytes):
    Timestamp denoting recommended time to start trusting data.

Not After Timestamp by UA (4 bytes):
    Timestamp denoting recommended time to stop trusting data.

UA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the UA.
]]></artwork>
          </figure>
          <section anchor="frame-type" numbered="true" toc="default">
            <name>Frame Type</name>
            <t>Byte to sub-type for future different DRIP Frame formats.</t>
            <table align="center">
              <thead>
                <tr>
                  <th align="left">Frame Type</th>
                  <th align="left">Name</th>
                  <th align="left">Description</th>
                </tr>
              </thead>
              <tbody>
                <tr>
                  <td align="left">0x00</td>
                  <td align="left">Reserved</td>
                  <td align="left">Reserved</td>
                </tr>
                <tr>
                  <td align="left">0xC0-0xFF</td>
                  <td align="left">Experimental</td>
                  <td align="left">Experimental Use</td>
                </tr>
              </tbody>
            </table>
          </section>
          <section anchor="frame-limitations" numbered="true" toc="default">
            <name>Frame Limitations</name>
            <t>With the Broadcast Attestation Structure only 115-bytes of <tt>Attestation Data</tt> are free for use.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="reqs" numbered="true" toc="default">
      <name>Requirements &amp; Recommendations</name>
      <section anchor="legacy-transports" numbered="true" toc="default">
        <name>Legacy Transports</name>
        <t>With Legacy Advertisements the goal is to attempt to bring reliable receipt of the paged Authentication Message. Forward Error Correction (<xref target="fec-details" format="default"/>) MUST be used when using Legacy Advertising methods (such as Bluetooth 4.X).</t>
        <t>Under ASTM Bluetooth 4.X rules, transmission of dynamic messages are at least every 1 second. DRIP Authentication Messages typically contain dynamic data (such as the DRIP Manifest or DRIP Wrapper) and must be sent at the dynamic rate of 1 per second.</t>
      </section>
      <section anchor="extended-transports" numbered="true" toc="default">
        <name>Extended Transports</name>
        <t>Under the ASTM specification, Bluetooth 5.X Wi-Fi NaN, and Wi-Fi BEACON transport of Remote ID is to use the Message Pack (Message Type 0xF) format for all transmissions. Under Message Pack messages are sent together (in Message Type order) in a single Bluetooth 5 extended frame (up to 9 single frame equivalent messages under Bluetooth 4.X). Message Packs are required by ASTM to be sent at a rate of 1 per second (like dynamic messages).</t>
        <t>Without any fragmentation or loss of pages with transmission Forward Error Correction (<xref target="fec-details" format="default"/>) MUST NOT be used as it is impractical.</t>
      </section>
      <section anchor="drip-recommendations" numbered="true" toc="default">
        <name>Authentication</name>
        <t>It is REQUIRED that a UA send the following Authentication Formats to fulfill the <xref target="drip-requirements" format="default"/>:</t>
        <ol spacing="normal" type="1"><li>DRIP Link using the Broadcast Attestation of HDA and the UA (satisfying GEN-1 and GEN-3)</li>
          <li>Any other DRIP Authentication Format (RECOMMENDED: DRIP Manifest or DRIP Wrapper) where the UA is dynamically signing data (satisfying GEN-1 and GEN-2)</li>
        </ol>
        <t>It is RECOMMENDED the following set of Authentication Formats are sent for support of offline Observers:</t>
        <ol spacing="normal" type="1"><li>DRIP Link using the Broadcast Attestation of HID Root and the RAA (CAA) (satisfies GEN-3)</li>
          <li>DRIP Link using the Broadcast Attestation of RAA (CAA) and the HDA (USS) (satisfies GEN-3)</li>
          <li>DRIP Link using the Broadcast Attestation of HDA (USS) and the UA (satisfies GEN-1 and GEN-3)</li>
          <li>Any other DRIP Authentication Format (RECOMMENDED: DRIP Manifest or DRIP Wrapper) where the UA is dynamically signing data (satisfies GEN-1 and GEN-2)</li>
        </ol>
      </section>
      <section anchor="operational" numbered="true" toc="default">
        <name>Operational</name>
        <t>UAS operation may impact the frequency of sending DRIP Authentication messages. Where a UA is dwelling in one location, and the channel is heavily used by other devices, "occasional" message authentication may be sufficient for an observer. Contrast this with a UA traversing an area, and then every message should be authenticated as soon as possible for greatest success as viewed by the receiver.</t>
        <t>Thus how/when these DRIP authentication messages are sent is up to each implementation. Further complication comes in contrasting Legacy and Extended Transports.  In Legacy, each message is a separate hash within the Manifest. So, again in dwelling, may lean toward occasional message authentication. In Extended Transports, the hash is over the Message Pack so only few hashes need to be in a Manifest. A single Manifest can handle a potential two Message Packs (for a full set of messages) and a DRIP Link Authentication Message for the HDA UA assertion.</t>
        <t>A separate issue is the frequency of transmitting the DRIP Link Authentication Message for the HDA UA assertion when using a Manifest Message. This message content is static; its hash never changes radically. The only change is the 4-byte timestamp in the Authentication Message headers. Thus, potentially, in a dwelling operation it can be sent once per minute, where its hash is in every Manifest. A receiver can cache all DRIP Link Authentication Message for the HDA UA assertion to mitigate potential packet loss.</t>
        <t>The preferred mode of operation is to send the HDA UA assertion every 3 seconds and Manifest messages immediately after a set of UA operation messages (e.g. Basic, Location, and System messages).</t>
        <!-- Author Note (atw): is this really what we want? Manifest as the default and Wrapper as the secondary? Or should this language become looser to allow both as its six of one half a dozen the other to which is used. -->

<section anchor="wrapper-operations" numbered="true" toc="default">
          <name>DRIP Wrapper</name>
          <t>The DRIP Wrapper MUST NOT be used in place of sending the ASTM messages as is. All receivers MUST be able to process all the messages specified in <xref target="F3411" format="default"/>. Only sending them within the DRIP Wrapper will make them opaque to receivers lacking support for DRIP authentication messages. Thus messages within a Wrapper are sent twice: in the clear, and authenticated within the Wrapper. The DRIP Manifest format would seem to be a more efficient use of the transport channel.</t>
          <t>The DRIP Wrapper has a specific use case for DRIP aware receivers. For receiver plotting received Location Messages (Message Type 0x2) on a map display an embedded Location Message in a DRIP Wrapper can be colored differently to signify trust in the Location data - be it current or previous Location reports that are wrapped.</t>
        </section>
      </section>
    </section>
    <section anchor="icao-considerations" numbered="true" toc="default">
      <name>ICAO Considerations</name>
      <t>DRIP requests the following SAM Type's to be allocated:</t>
      <ol spacing="normal" type="1"><li>DRIP Link</li>
        <li>DRIP Wrapper</li>
        <li>DRIP Manifest</li>
        <li>DRIP Frame</li>
      </ol>
      <!-- Author Note (atw): need help on this section; how should this be formatted? -->

</section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document requests a new number field for Frame Type with initial values as defined in <xref target="frame-type" format="default"/>.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <section anchor="manifest-hash-length" numbered="true" toc="default">
        <name>Manifest Hash Length</name>
        <t>For DRIP Manifest an 12-byte hash length has been selected by the authors for a number of reasons.</t>
        <ol spacing="normal" type="1"><li>Hash lengths smaller than 8-bytes (for example 4-bytes) were originally contemplated but ruled out by comments by various cryptographers. The main concern raised in this forum was that the length of hash would not provide strong resistance against collision rate. The authors also after further review agreed with this and also realized operationally it was not necessarily viable. While 4-byte hashes would allow more messages to be filled into a single DRIP Manifest payload (up to 22 individual hashes) the length of time for the UA to stay in a single place where the Observer would receive all the originally messages to rehash to verify such a message was impractical.</li>
          <li>Hash lengths larger than 8-bytes (for example 12 or 16-bytes) were also considered by the authors. These got the approval of the cryptographers but the number of hashes to send became much lower (only 5 individual hashes). While this lower number is a more reasonable number of original messages the Observer would have to capture it would also mean that potentially more DRIP Manifests would need to be sent. Overall the increase length of the hash did not operationally justify the cost.</li>
          <li>Simplifying the current design and locking it into using the same hash as the HHIT instead of allowing for agility in either hash algorithm or length seemed more realistic to the authors today.</li>
        </ol>
      </section>
      <section anchor="replay-attacks" numbered="true" toc="default">
        <name>Replay Attacks</name>
        <t>The astute reader may note that the DRIP Link messages, which are recommended to be sent, are static in nature and contain various timestamps. These Attestation Link messages can easily be replayed by an attacker who has copied them from previous broadcasts. There are two things to mitigate this in DRIP:</t>
        <ol spacing="normal" type="1"><li>If an attacker (who is smart and spoofs more than just the UAS ID/data payloads) willing replays an Attestation Link message they have in principle actually helped by ensuring the message is sent more frequently and be received by potential Observers.</li>
          <li>It is RECOMMENDED to send more than just DRIP Link messages, specifically those that sign over changing data using the current session keypair, and those messages are sent more frequently. An UA beaconing these messages then actually signing other messages using the keypair validates the data receiver by an Observer. An UA who does not either run DRIP themselves or does not have possession of the same private key, would be clearly exposed upon signature verification.</li>
        </ol>
      </section>
      <section anchor="trust-timestamp-offsets" numbered="true" toc="default">
        <name>Trust Timestamp Offsets</name>
        <t>Note the discussion of Trust Timestamp Offsets here is in context of the DRIP Wrapper (<xref target="drip-wrapper" format="default"/>) and DRIP Manifest (<xref target="drip-manifest" format="default"/>) messages. For DRIP Link (<xref target="drip-link" format="default"/>) messages these offsets are set by the Attestor (typically a registry) and have their own set of considerations as seen in <xref target="drip-registries" format="default"/>.</t>
        <t>The offset of the Trust Timestamp (defined as a very short Expiration Timestamp) is one that needs careful consideration for any implementation. The offset should be shorter than any given flight duration (typically less than an hour) but be long enough to be received and processed by Observers (larger than a few seconds). It recommended that 3-5 minutes should be sufficient to serve this purpose in any scenario, but is not limited by design.</t>
      </section>
    </section>
    <section anchor="acknowledgments" numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>Ryan Quigley and James Mussi of AX Enterprize, LLC for early prototyping to find holes in the draft specifications.</t>
      <t>Soren Friis for pointing out that Wi-Fi implementations would not always give access to the MAC Address, originally used in calculation of the hashes for DRIP Manifest. Also, for confirming that Message Packs (0xF) can only carry up to 9 ASTM frames worth of data (9 Authentication pages) - this drove the requirement for max page length of Authentication Data itself.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="F3411">
          <front>
            <title>Standard Specification for Remote ID and Tracking</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="February"/>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="NIST.SP.800-185" target="http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf">
          <front>
            <title>SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash</title>
            <author fullname="John Kelsey" initials="J." surname="Kelsey">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <author fullname="Shu-jen Change" initials="S." surname="Change">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <author fullname="Ray Perlner" initials="R." surname="Perlner">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date month="December" year="2016"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="SP 800-185"/>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-185"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="drip-requirements" target="https://www.rfc-editor.org/info/rfc9153">
          <front>
            <title>Drone Remote Identification Protocol (DRIP) Requirements and Terminology</title>
            <author fullname="S. Card" initials="S." role="editor" surname="Card">
              <organization/>
            </author>
            <author fullname="A. Wiethuechter" initials="A." surname="Wiethuechter">
              <organization/>
            </author>
            <author fullname="R. Moskowitz" initials="R." surname="Moskowitz">
              <organization/>
            </author>
            <author fullname="A. Gurtov" initials="A." surname="Gurtov">
              <organization/>
            </author>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document defines terminology and requirements for solutions produced by the Drone Remote Identification Protocol (DRIP) Working Group. These solutions will support Unmanned Aircraft System Remote Identification and tracking (UAS RID) for security, safety, and other purposes (e.g., initiation of identity-based network sessions supporting UAS applications). DRIP will facilitate use of existing Internet resources to support RID and to enable enhanced related services, and it will enable online and offline verification that RID information is trustworthy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9153"/>
          <seriesInfo name="DOI" value="10.17487/RFC9153"/>
        </reference>
        <reference anchor="drip-rid" target="https://www.ietf.org/archive/id/draft-ietf-drip-uas-rid-01.txt">
          <front>
            <title>UAS Remote ID</title>
            <author fullname="Robert Moskowitz">
              <organization>HTT Consulting</organization>
            </author>
            <author fullname="Stuart W. Card">
              <organization>AX Enterprize</organization>
            </author>
            <author fullname="Adam Wiethuechter">
              <organization>AX Enterprize</organization>
            </author>
            <author fullname="Andrei Gurtov">
              <organization>Linköping University</organization>
            </author>
            <date day="9" month="September" year="2020"/>
            <abstract>
              <t>   This document describes the use of Hierarchical Host Identity Tags
   (HHITs) as a self-asserting and thereby trustable Identifier for use
   as the UAS Remote ID.  HHITs include explicit hierarchy to provide
   Registrar discovery for 3rd-party ID attestation.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-drip-uas-rid-01"/>
        </reference>
        <reference anchor="drip-registries" target="https://www.ietf.org/archive/id/draft-wiethuechter-drip-registries-01.txt">
          <front>
            <title>DRIP Registries</title>
            <author fullname="Adam Wiethuechter">
              <organization>AX Enterprize, LLC</organization>
            </author>
            <author fullname="Stuart Card">
              <organization>AX Enterprize, LLC</organization>
            </author>
            <author fullname="Robert Moskowitz">
              <organization>HTT Consulting</organization>
            </author>
            <date day="22" month="October" year="2021"/>
            <abstract>
              <t>   TODO

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wiethuechter-drip-registries-01"/>
        </reference>
      </references>
    </references>
    <section anchor="appendix-a" numbered="true" toc="default">
      <name>Authentication State Diagrams &amp; Color Scheme</name>
      <t>ASTM Authentication has only 3 states: None, Invalid or Valid. This is because under ASTM the idea is that Authentication is done by an external service hosted somewhere on the Internet so it is assumed you will always get some sort of answer back. With DRIP this classification becomes more complex with the support of "offline" scenarios where the receiver does not have Internet connectivity. With the use of asymmetric keys this means the public key (PK) must somehow be obtained - <xref target="drip-registries" format="default"/> gets more into detail how these keys are stored on DNS and one reason for DRIP Authentication is to send PK's over Broadcast RID.</t>
      <t>There are two keys of interest: the PK of the UA and the PK of the HDA (or Registry). This document gives a clear way to send the PK of the UA over the Broadcast RID messages - however the PK of the Registry is not. It can be using the same mechanism but is not required to do so due to potential operational constraints and implementation of a given UA transmitter. As such there are scenarios where you may have part of the key-chain but not all of it.</t>
      <t>The intent of this appendix is to give some kind of recommended way to classify these various states and convey it to the user through colors and state names/text.</t>
      <section anchor="state-table" numbered="true" toc="default">
        <name>State Table</name>
        <t>The table below lays out the RECOMMENDED colors to associate with state.</t>
        <table align="center">
          <thead>
            <tr>
              <th align="left">State</th>
              <th align="left">Color</th>
              <th align="left">Details</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">None</td>
              <td align="left">Black</td>
              <td align="left">No Authentication being received</td>
            </tr>
            <tr>
              <td align="left">Partial</td>
              <td align="left">Gray</td>
              <td align="left">Authentication being received but missing pages</td>
            </tr>
            <tr>
              <td align="left">Unsupported</td>
              <td align="left">Brown</td>
              <td align="left">Authentication Type/SAM Type of received message not supported</td>
            </tr>
            <tr>
              <td align="left">Unverifiable</td>
              <td align="left">Yellow</td>
              <td align="left">Data needed for verification missing</td>
            </tr>
            <tr>
              <td align="left">Verified</td>
              <td align="left">Green</td>
              <td align="left">Valid verification results</td>
            </tr>
            <tr>
              <td align="left">Trusted</td>
              <td align="left">Blue</td>
              <td align="left">Valid verification results and HDA is marked as trusted</td>
            </tr>
            <tr>
              <td align="left">Questionable</td>
              <td align="left">Orange</td>
              <td align="left">Inconsistent verification results</td>
            </tr>
            <tr>
              <td align="left">Unverified</td>
              <td align="left">Red</td>
              <td align="left">Invalid verification results</td>
            </tr>
            <tr>
              <td align="left">Conflicting</td>
              <td align="left">Purple</td>
              <td align="left">Inconsistent verification results and HDA is marked as trusted</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="state-diagrams" numbered="true" toc="default">
        <name>State Diagrams</name>
        <t>This section gives some RECOMMENDED state flows that DRIP should follow.</t>
        <section anchor="notations" numbered="true" toc="default">
          <name>Notations</name>
          <figure anchor="state-notations">
            <name>Diagram Notations</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
o--------------o
|   PROCESS    |
o--------------o

+--------------+
|    STATE     |
+--------------+

 ooooo
o  N  o    Transition N
 ooooo

+----->    Transition Option False/No

----->     Transition Option True/Yes

]]></artwork>
          </figure>
        </section>
        <section anchor="general" numbered="true" toc="default">
          <name>General</name>
          <figure anchor="std-state-fig">
            <name>Standard Authentication Colors/State</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
o---------------------o      ooooo        +------+
|        Start        |---->o  1  o+----->| None |
o---------------------o      ooooo        +------+
                               |
                               v
                             ooooo        +-------------+
                            o  2  o+----->| Unsupported |
                             ooooo        +-------------+
                               |             ^
                               v             |
          +---------+        ooooo           |
          | Partial |<-----+o  3  o          |
          +---------+        ooooo           |
                               |             |
                               v             +
                             ooooo         ooooo        o-------------o
                            o  4  o------>o  5  o------>| SAM Decoder |
                             ooooo         ooooo        o-------------o
                               +
                               |
                               v
                        o------------------o
                        | AuthType Decoder |
                        o------------------o
]]></artwork>
          </figure>
          <table align="center">
            <thead>
              <tr>
                <th align="left">Transition</th>
                <th align="left">Transition Query</th>
                <th align="left">Next State/Process/Transition (Yes, No)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">1</td>
                <td align="left">Receiving Authentication Pages?</td>
                <td align="left">2, None</td>
              </tr>
              <tr>
                <td align="left">2</td>
                <td align="left">Authentication Type Supported?</td>
                <td align="left">3, Unsupported</td>
              </tr>
              <tr>
                <td align="left">3</td>
                <td align="left">All Pages of Authentication Message Received?</td>
                <td align="left">4, Partial</td>
              </tr>
              <tr>
                <td align="left">4</td>
                <td align="left">Is Authentication Type received 5?</td>
                <td align="left">5, AuthType Decoder</td>
              </tr>
              <tr>
                <td align="left">5</td>
                <td align="left">Is SAM Type Supported?</td>
                <td align="left">SAM Decoder, Unsupported</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="drip-sam" numbered="true" toc="default">
          <name>DRIP SAM</name>
          <figure anchor="sam-state-fig">
            <name>DRIP SAM Decoder</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
o-------------o      ooooo        o-----------------------------o
| SAM Decoder |---->o  6  o------>| DRIP Wrapper/Manifest/Frame |
o-------------o      ooooo        o-----------------------------o
                       +                 |              ^
                       |                 |              |
                       v                 v              |
                o-----------o    o--------------------o |
                | DRIP Link |--->| Update State Cache | |
                o-----------o    o--------------------o |
                                   |                    |
                                   v                    |
        o--------------o         ooooo       o----------------------o
        | NOP / Return |<------+o  7  o----->| Extract Message from |
        o--------------o         ooooo       | Verification Queue   |
                                             o----------------------o
]]></artwork>
          </figure>
          <table align="center">
            <thead>
              <tr>
                <th align="left">Transition</th>
                <th align="left">Transition Query</th>
                <th align="left">Next State/Process/Transition (Yes, No)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">6</td>
                <td align="left">Is SAM Type DRIP Link?</td>
                <td align="left">DRIP Link, DRIP Wrapper/Manifest/Frame</td>
              </tr>
              <tr>
                <td align="left">7</td>
                <td align="left">Messages in Verification Queue?</td>
                <td align="left">Extract Message from Verification Queue, NOP / Return</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="link-diagram" numbered="true" toc="default">
          <name>DRIP Link</name>
          <figure anchor="drip-link-state-fig">
            <name>DRIP Link State Decoder</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
o-----------o       ooooo         ooooo        +--------------+
| DRIP Link |----->o  8  o+----->o  9  o+----->| Unverifiable |
o-----------o       ooooo         ooooo        +--------------+
                      |             |
                      |-------------'
                      v
                    ooooo        +------------+
                   o  10 o+----->| Unverified |
                    ooooo        +------------+
                      |
                      v
                o---------------------o
                | Add UA DET/PK       |
                | to Key Cache        |
                o---------------------o
                      |
                      v
                    ooooo         +----------+
                   o  11 o+------>| Verified |
                    ooooo         +----------+
                      |              ^
                      v              |
                o-------------------------o
                | Mark UA DET/PK          |
                | as Trusted in Key Cache |
                o-------------------------o
]]></artwork>
          </figure>
          <table align="center">
            <thead>
              <tr>
                <th align="left">Transition</th>
                <th align="left">Transition Query</th>
                <th align="left">Next State/Process/Transition (Yes, No)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">8</td>
                <td align="left">Registry DET/PK in Key Cache?</td>
                <td align="left">10, 9</td>
              </tr>
              <tr>
                <td align="left">9</td>
                <td align="left">Registry PK found Online?</td>
                <td align="left">10, Unverifiable</td>
              </tr>
              <tr>
                <td align="left">10</td>
                <td align="left">Registry Signature Verified?</td>
                <td align="left">Add UA DET/PK to Key Cache, Unverified</td>
              </tr>
              <tr>
                <td align="left">11</td>
                <td align="left">Registry DET/PK marked as Trusted in Key Cache?</td>
                <td align="left">Mark UA DET/PK as Trusted in Key Cache, Verified</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="drip-wrappermanifestframe" numbered="true" toc="default">
          <name>DRIP Wrapper/Manifest/Frame</name>
          <figure anchor="drip-state-fig">
            <name>DRIP Wrapper/Manifest/Frame State Decoder</name>
            <artwork align="center" name="" type="" alt=""><![CDATA[
o-----------------------------o         +--------------+
| DRIP Wrapper/Manifest/Frame |         | Unverifiable |
o-----------------------------o         +--------------+
           |                                   ^
           v                                   |
         ooooo         ooooo        o--------------------o
        o  12 o+----->o  13 o+----->| Add Message to     |
         ooooo         ooooo        | Verification Queue |
           |             |          o--------------------o
           |             |                    
           |-------------'             
           v                           
         ooooo         ooooo         ooooo        +------------+
        o  14 o+----->o  15 o+----->o  16 o+----->| Unverified |
         ooooo         ooooo         ooooo        +------------+
           |             |             |
           v             v             |
         ooooo        +-------------+  |
        o  17 o+----->| Conflicting |  |
         ooooo        +-------------+  |
           |                           |
           v                           v
         ooooo                  +--------------+
        o  18 o---------------->| Questionable |
         ooooo                  +--------------+
           +
           |
           v
         ooooo        +----------+
        o  19 o+----->| Verified |
         ooooo        +----------+
           |
           v
        +---------+
        | Trusted |
        +---------+
]]></artwork>
          </figure>
          <table align="center">
            <thead>
              <tr>
                <th align="left">Transition</th>
                <th align="left">Transition Query</th>
                <th align="left">Next State/Process/Transition (Yes, No)</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">12</td>
                <td align="left">UA DET/PK in Key Cache?</td>
                <td align="left">14, 13</td>
              </tr>
              <tr>
                <td align="left">13</td>
                <td align="left">UA PK found Online?</td>
                <td align="left">14, Add Message to Verification Queue</td>
              </tr>
              <tr>
                <td align="left">14</td>
                <td align="left">UA Signature Verified?</td>
                <td align="left">17, 15</td>
              </tr>
              <tr>
                <td align="left">15</td>
                <td align="left">Has past Messages of this type been marked as Trusted?</td>
                <td align="left">Conflicting, 16</td>
              </tr>
              <tr>
                <td align="left">16</td>
                <td align="left">Has past Messages of this type been marked as Questionable or Verified?</td>
                <td align="left">Questionable, Unverified</td>
              </tr>
              <tr>
                <td align="left">17</td>
                <td align="left">Has past Messages of this type been marked as Conflicting?</td>
                <td align="left">Conflicting, 18</td>
              </tr>
              <tr>
                <td align="left">18</td>
                <td align="left">Has past Messages of this type been marked as Questionable or Unverified?</td>
                <td align="left">Questionable, 19</td>
              </tr>
              <tr>
                <td align="left">19</td>
                <td align="left">Is UA DET/PK marked as Trusted in Key Cache?</td>
                <td align="left">Trusted, Verified</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
    </section>
    <section anchor="link-example" numbered="true" toc="default">
      <name>HDA-UA Broadcast Attestation</name>
      <figure anchor="b-axy-fig">
        <name>Example DRIP HDA-UA Broadcast Attestation</name>
        <artwork align="center" name="" type="" alt=""><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|                                                               |
|                             DRIP                              |
|                       Entity Tag of HDA                       |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                             DRIP                              |
|                       Entity Tag of UA                        |
|                                                               |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                      Host Identity of UA                      |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by HDA                 |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by HDA                 |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                       Signature by HDA                        |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+

DRIP Entity Tag of HDA: (16-bytes)
    DET of HDA.

DRIP Entity Tag of UA: (16-bytes)
    DET of UA.

Host Identity of UA: (32-bytes)
    HI of UA

Expiration Timestamp by HDA (4 bytes):
    Timestamp denoting recommended time to trust data to.

Signing Timestamp by HDA (4 bytes):
    Current time at signing.

HDA Signature (64 bytes):
    Signature over preceding fields using the keypair of 
    the HDA.
]]></artwork>
      </figure>
    </section>
    <section anchor="example-txrx-flow" numbered="true" toc="default">
      <name>Example TX/RX Flow</name>
      <t>In this example the UA is sending all DRIP Authentication Message formats (DRIP Link, DRIP Wrapper and DRIP Manifest) during flight, along with standard ASTM Messages. The objective is to show the combinations of messages that must be received to properly validate a DRIP equipped UA and examples of their various states (<xref target="appendix-a" format="default"/>).</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
        +-------------------+
  .-----| Unmanned Aircraft |-----.
  |     +-------------------+     |
  | 1       | 2         | 3       | 4
  |         |           |         |

  O         O           O         O
--|--     --|--       --|--     --|--
 / \       / \         / \       / \
  A         B           C         D


Broadcast Paths: Messages Received
1: DRIP Link
2: DRIP Link and DRIP Wrapper or DRIP Manifest
3: DRIP Wrapper or DRIP Manifest
4: None

Observers: Authentication State
A: Unverifiable
B: Verified, Trusted, Unverified, Questionable, or Conflicting
C: Unverifiable
D: None
]]></artwork>
      <t>As the above example shows to properly authenticate both a DRIP Link and a DRIP Wrapper or DRIP Manifest are required.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
