<?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-16" 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="DRIP Auth Formats">DRIP Entity Tag Authentication Formats &amp; Protocols for Broadcast Remote ID</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-drip-auth-16"/>
    <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="August" day="08"/>
    <area>Internet</area>
    <workgroup>DRIP Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes how to add trust into the Broadcast Remote ID (RID) specification discussed in the DRIP Architecture. It defines a few message schemes (sent within the Authentication Message) that can be used to authenticate past messages sent by an 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) operate usually in a volatile environment when it comes to communication. Unmanned Aircraft (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 Broadcast Remote ID (RID) messages must be available to applications on these platforms without modifying the devices.</t>
      <t>As discussed in <xref target="RFC9153" format="default"/> two communication schemes to a UAS for Remote ID (RID) are considered: Broadcast and Network RID.</t>
      <t>This document focuses on adding trust to Broadcast RID (Section 3.2 of <xref target="RFC9153" format="default"/>) via the Authentication Message by combining dynamically signed data with an Attestation of the UA's identity from a DRIP Identity Management Entity (DIME).</t>
      <t>This authentication approach also provides the missing, but United States (US) Federal Aviation Administration (FAA) mandated, error correction for the Bluetooth 4.x transmissions (see <xref target="fec-details" format="default"/>). This is error correction not only for the authentication message itself, but indirectly, to other messages authenticated via the Manifest method (see <xref target="drip-manifest" format="default"/>).</t>
      <t>A summary of addressed DRIP requirements is provided in <xref target="req-sum" format="default"/></t>
      <section anchor="uas-observers-and-drip-authentication" numbered="true" toc="default">
        <name>UAS Observers and DRIP Authentication</name>
        <t>Without authentication, a UA Observer has no basis for trust. As the messages are sent via wireless broadcast, they may be sourced anywhere within wireless range and making any claims desired by the sender.  The ASTM Authentication Message <xref target="F3411" format="default"/>, as defined herein, provides a high level of trust on the message content and source. These messages are designed to provide the Observers with actionable information.</t>
        <section anchor="ua-attestation" numbered="true" toc="default">
          <name>UA Attestation</name>
          <t>When an Observer receives a DRIP-based Authentication Message (<xref target="drip-wrapper" format="default"/>, <xref target="drip-manifest" format="default"/>, <xref target="drip-frame" format="default"/>) that only contains the UA DET, timestamps, and signature; it SHOULD use the DRIP Entity Tag (DET) to retrieve the Host Identity (HI) from DNS (Section 5, <xref target="drip-registries" format="default"/>) or a local cache to validate the signature. Once the Observer has the DET/HI pair, all further (or cached previous) DRIP Authentication Messages can be validated. The content signed over can now be trusted but not the context of it.</t>
        </section>
        <section anchor="hda-attestation" numbered="true" toc="default">
          <name>DIME Attestation</name>
          <t>When an Observer receives a DRIP Link Authentication Message (<xref target="drip-link" format="default"/>), that contains Attestation Data of the UA DET DIME registration (Appendix B); it SHOULD use the DET of the DIME to retrieve the DIME HI from DNS (Section 5, <xref target="drip-registries" format="default"/>) or a local cache to validate the signature. The UA DET/HI pair is now known, as it is part of the Attestation Data, and all further (or cached previous) DRIP Authentication Messages using the UA DET can be validated.</t>
        </section>
        <section anchor="chain-of-dimes-to-trust-root" numbered="true" toc="default">
          <name>Chain of DIMEs to Trust Root</name>
          <t>An Observer can receive a series of DRIP Link Authentication Messages (<xref target="drip-link" format="default"/>) each one pertaining to a DIMEs registration on the registry chain. Similar to <xref target="hda-attestation" format="default"/>, each link can be validated. A chain of  DIME Attestations (<xref target="hda-attestation" format="default"/>) can also be obtained via DNS. This is done by decomposing the received DET and altering the HID values and performing CERT lookups containing a copy of DIME Attestations.</t>
        </section>
        <section anchor="authentication-content-correlation" numbered="true" toc="default">
          <name>Authentication Content Correlation</name>
          <t>While the content of DRIP Authentication Messages can be validated via their signature this does not resolves issues due to context of that information. After signature validation the Observer MUST use other sources of information, for example a visual confirmation of UA position, to correlate against and provided context. When a correlation does not make sense it SHOULD be rejected as if the signature failed to validate.</t>
        </section>
      </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>This document makes use of the terms defined in <xref target="RFC9153" format="default"/>. In addition, the following terms are defined:</t>
        <t>DRIP Entity Tag (DET):</t>
        <ul empty="true" spacing="normal">
          <li>An HHIT that is used as an identifier in DRIP as specified in <xref target="drip-rid" format="default"/>.</li>
        </ul>
        <t>DRIP Identity Management Entity:</t>
        <ul empty="true" spacing="normal">
          <li>Registry service for DETs and other information in DRIP as specified in <xref target="drip-registries" format="default"/>.</li>
        </ul>
        <t>Legacy Transports:</t>
        <ul empty="true" spacing="normal">
          <li>use of broadcast frames (Bluetooth 4.x) as specified in <xref target="F3411" format="default"/>.</li>
        </ul>
        <t>Extended Transports:</t>
        <ul empty="true" spacing="normal">
          <li>use of extended advertisements (Bluetooth 5.x), service info (Wi-Fi NaN) or vendor specific element information (Wi-Fi BEACON) in broadcast frames as specified in <xref target="F3411" format="default"/>. Must use ASTM Message Pack (Message Type 0xF).</li>
        </ul>
        <t>Hierarchial Host Identity Tag (HHIT):</t>
        <ul empty="true" spacing="normal">
          <li>A special-use, non-routable, IPv6 address constructed as specified in <xref target="drip-rid" format="default"/>.</li>
        </ul>
        <t>Hierarchial ID (HID):</t>
        <ul empty="true" spacing="normal">
          <li>Hierarchy ID associated with a DIME in the HHIT/DET.</li>
        </ul>
        <t>Host Identity (HI):</t>
        <ul empty="true" spacing="normal">
          <li>Public key have of an asymmetric keypair used in generating a HHIT as specified in <xref target="drip-rid" format="default"/>.</li>
        </ul>
      </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 initial standards for RID (<xref target="FAA-14CFR" format="default"/>, <xref target="F3411" format="default"/>) do not 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 for various different parties that have a stake in the UA industry.</t>
        <t>DRIPs goal as stated in <xref target="RFC9153" format="default"/> is:</t>
        <ul empty="true" spacing="normal">
          <li>to enable enhanced related services, and it will enable online and offline verification that RID information is trustworthy.</li>
        </ul>
        <t>This document focuses on providing the first observable "link" of this trust chain over Broadcast RID; with an importance of the observer being offline. This first link is the primary stepping stone for an observer to gain access and use "enhanced related services".</t>
        <section anchor="broadcast-rid-radio-frequency-options" numbered="true" toc="default">
          <name>Broadcast RID Radio Frequency 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 Civil Aviation Authorities (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 the CAA.</t>
          <t>Bluetooth 4.x presents a payload size challenge in that it can only transmit 25 bytes of payload where the others all can support larger 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"/> that require use of a multi-party online validator system. This has a heavy reliance on real-time connectivity onto the Internet (specifically into UTM) that is not always guaranteed.</t>
        <t>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. Per <xref target="drip-arch" format="default"/> in Section 5, there is a need to have Authentication formats to relay information for observers to determine trust. 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.x frame size. To address this, it is defined as a set of "pages" that each fits into a single Bluetooth 4.x 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>
          <!-- break page header out? -->

<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>The Authentication Message is structured as a set of up to 16 pages. Over Bluetooth 4.x, these pages are "fragmented" into separate Bluetooth 4.x 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 example 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">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), as the principal authentication container, defining a set of SAM Types in <xref target="drip-authentication-formats" format="default"/>. Message Set Signature (Authentication Type 0x3) is also used in parallel form to its use in <xref target="F3411" format="default"/>. However, the SAM formats provide a more complete authentication approach.</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 maximum 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>
            <!-- bring out 1 level? -->

<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)
    As defined in F3411.

Authentication Data / Signature: (255-bytes max)
    Opaque authentication data.

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

Additional Data: (255-bytes max):
    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 source data 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.x 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 the first 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). The Bluetooth 4.x Legacy Transport does not have supporting FEC so with DRIP Authentication the following application level FEC scheme is used to add FEC. This section is only used for Bluetooth 4.x transmission/reception.</t>
      <t>The data added during FEC is not included in the <tt>Authentication Data / Signature</tt> but instead in the <tt>Additional Data</tt> field of <xref target="astm-auth" format="default"/>. This may cause the Authentication Message to exceed 9-pages, up to a maximum of 16-pages.</t>
      <!-- rearrange per stu -->

<section anchor="encoding" numbered="true" toc="default">
        <name>Encoding</name>
        <t>For any encoding the FEC data MUST start on a new ASTM Authentication Page. To do this, null padding is added before the actual FEC data starts and the length of the whole blob (null padding and FEC) is used as the Additional Data Length. To properly fit FEC data into an Authentication Page the number of parity-bytes is limited to 23 or a multiple thereof (size of Authentication data per page). That is, the Page Header (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 23-byte Authentication Page data is used in the XOR operation.  For Page 0, a 23-byte null pad is used for the previous page. The resulting parity fills the last 23 bytes of the <tt>Additional Data</tt> field of <xref target="astm-auth" 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 variations: Frame Recovery and Page Recovery. Both follow a similar process, but are offset at what data is protected.</t>
          <t>For DRIP the polynomial to use for Reed Solomon is: <tt>1 + x^2 + x^3 + x^4 + x^8</tt>. This polynomial was selected as it commonly used in Reed Solomon implementations. A form of it was deployed by the National Aeronautics and Space Administration (NASA) for the Voyager probes <xref target="VOYAGER" format="default"/>; a problem space with far tight constraints than RID.</t>
          <section anchor="enc-page" numbered="true" toc="default">
            <name>Page Recovery</name>
            <t>Take the following example of an Authentication Message with 7 pages that 3 pages of parity are to be generated for. The first column is just the <tt>Page Header</tt> with a visual space here to show the boundary.</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
50 098960bf8c05042001001000a00145aac6b00abba268b7
51 2001001000a0014579d8a404d48f2ef9bb9a4470ada5b4
52 ff1352c7402af9d9ebd20034e8d7a12920f4d7e91c1a73
53 dca7d04e776150825863c512c6eb075a206a95c59b297e
54 f2935fd416f27b1b42fd5d9dfaa0dec79f32287f41b454
55 7101415def153a770d3e6c0b17ae560809bc634a822c1f
56 3b1064b80a000000000000000000000000000000000000
]]></artwork>
            <t>For Page Recovery the first column is ignored and the last 23-bytes of each page are extracted to have Reed Solomon performed on them in a column wise fashion to produce parity bytes. For the example the following 3-bytes of parity are generated with the first byte of each page:</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). Below is an example of the full parity generated and each 23-bytes of parity added into the additional pages as <tt>Additional Data</tt>:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
57 dc6657acd30b2ec4aa582049f52adf9f922e62c469563a
58 6c636a59145a55417a3895fd543f19e94200be4abc5e94
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. Up to 240 (255 minus 15 pages maximum of FEC data) messages can be protected using Frame Recovery.</t>
            <t>Below is an example of a number of messages. The first column is an additional ASTM Header that contain the Message Type; with a visual space for clarity. The last 24-bytes are the actual message contents; be it location information or an Authentication Page.</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
10 42012001001000a0014579d8a404d48f2ef9000000000000
11 249600006efeb019ee111ed37a097a0948081c10ffff0000
12 50098960bf8c05042001001000a00145aac6b00abba268b7
12 512001001000a0014579d8a404d48f2ef9bb9a4470ada5b4
12 52ff1352c7402af9d9ebd20034e8d7a12920f4d7e91c1a73
12 53dca7d04e776150825863c512c6eb075a206a95c59b297e
12 54f2935fd416f27b1b42fd5d9dfaa0dec79f32287f41b454
12 557101415def153a770d3e6c0b17ae560809bc634a822c1f
12 563b1064b80a000000000000000000000000000000000000
13 0052656372656174696f6e616c2054657374000000000000
14 02c2ffb019322d1ed3010000c008e40700fc080000000000
15 004e2e4f5031323334353600000000000000000000000000
]]></artwork>
            <t>A similar process is followed as in <xref target="enc-page" format="default"/>. Here every column of bytes has parity generated for it (even the ASTM Header). In the below example 5-bytes of parity are generated using the ASTM Header column:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
6c3f42b8a8 = ReedSolomon.encoder(101112121212121212131415)
]]></artwork>
            <t>After doing this to all columns the following pseudo-frames would have been generated:</t>
            <artwork name="" type="" align="left" alt=""><![CDATA[
6c86337bf7ab746f5d62bb7f8de954104b121585d3975f6e92
3f06c1bce165b0e25930d57a63c24f751145e1dd8dc115029b
42e9979580327a6a14d421c12a33aa2e1a2e517daaee581016
b8012a7b3964f7b2720d387bfa77e945556f1831cd477ef3a3
a85bb403aada89926fb8fc2a14a9caacb4ec2f3a6ed2d8e9f9
]]></artwork>
            <t>These 25-byte chunks are now concatenated together and are placed in Authentication Pages, using the <tt>Additional Data</tt>, 23-bytes at a time. In the below figure the first column is the ASTM Header as before, the second column is the <tt>Page Header</tt> for each Authentication Page and then last column is the 23-bytes of data for each page.</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>
          </section>
        </section>
      </section>
      <section anchor="decoding" numbered="true" toc="default">
        <name>Decoding</name>
        <t>Due to the nature of Bluetooth 4.x 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 into 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 avoided at all costs - in an effort to maintain efficiency.</t>
      </section>
    </section>
    <section anchor="drip-authentication-formats" numbered="true" toc="default">
      <name>DRIP Authentication Formats</name>
      <t>All formats defined in this section are the content for the <tt>Authentication Data / Signature</tt> field in <xref target="astm-auth" format="default"/> and uses the Specific Authentication Method (SAM, Authentication Type 0x5). The first byte of the <tt>Authentication Data / Signature</tt> of <xref target="astm-auth" format="default"/>, is used to multiplex between these various formats.</t>
      <t>When sending data over a medium that does not have underlying Forward Error Correction (FEC), for example Bluetooth 4.x, then <xref target="fec-details" format="default"/> MUST be used. <xref target="appendix-a" format="default"/> gives a high-level overview of a state machine for decoding and determining a trustworthiness state. <xref target="appendix-c" format="default"/> shows an example of using the formats defined in this section.</t>
      <section anchor="drip-authentication-field-definitions" numbered="true" toc="default">
        <name>DRIP Authentication Field Definitions</name>
        <t>ASTM Message (25-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Full ASTM Message as defined in <xref target="F3411" format="default"/> specifically Message Types 0x0, 0x1, 0x3, 0x4, and 0x5</li>
        </ul>
        <t>ASTM Message Hash (12-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Hash of a single full ASTM Message using hash operations described in (<xref target="hash-op" format="default"/>). Multiple hashes MUST be in Message Type order.</li>
        </ul>
        <t>Attestation Data (0 to 112 bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Opaque attestation data that the UA is attesting during its flight in <xref target="drip-data" format="default"/>.</li>
        </ul>
        <t>Broadcast Attestation (136-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>HDA HI over UA DET/HI. Generated by a DRIP Registry during Session ID registration. Used in <xref target="drip-link" format="default"/>.</li>
        </ul>
        <t>Current Manifest Hash (12-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>See <xref target="block-hashes" format="default"/>.</li>
        </ul>
        <t>Frame Type (1-byte):</t>
        <ul empty="true" spacing="normal">
          <li>Sub-type for future different DRIP Frame formats. See <xref target="frame-type" format="default"/>.</li>
        </ul>
        <t>Not Before Timestamp by UA (4-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Timestamp denoting recommended time to start trusting data in <xref target="drip-data" format="default"/>. 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.  MUST be set to the time the signature is generated.</li>
        </ul>
        <t>Not After Timestamp by UA (4-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Timestamp denoting recommended time to stop trusting data in <xref target="drip-data" format="default"/>. 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 with an additional offset is then added to push a short time into the future (relative to <tt>Not Before Timestamp</tt>) to avoid replay attacks. 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>.</li>
        </ul>
        <t>Previous Manifest Hash (12-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>See <xref target="block-hashes" format="default"/>.</li>
        </ul>
        <t>UA DRIP Entity Tag (16-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>The UA DET <xref target="drip-rid" format="default"/> in byte form (network byte order) and is part of <xref target="drip-data" format="default"/>.</li>
        </ul>
        <t>UA Signature (64-bytes):</t>
        <ul empty="true" spacing="normal">
          <li>Signature over preceding fields of <xref target="drip-data" format="default"/> using the HI of the UA.</li>
        </ul>
        <section anchor="bas" numbered="true" toc="default">
          <name>Broadcast Attestation Structure</name>
          <!-- Remove this section as the subsections really just fill this in? -->

<t>Variations of the <tt>Attestation Structure</tt> format of <xref target="drip-registries" format="default"/> SHOULD be used when running DRIP Authentication under the DRIP 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 minimally self-attesting its DET. It may be attesting the DET registration in a specific HID (see <xref target="link-example" format="default"/>). The HI 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                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
          </figure>
        </section>
        <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"/>. The Broadcast Attestation Structure (<xref target="bas" format="default"/>) SHOULD be used in this space.</t>
          </section>
        </section>
      </section>
      <section anchor="drip-link" numbered="true" toc="default">
        <name>DRIP Link</name>
        <t>The DRIP Link SAM Type is used to transmit Broadcast Attestations. For example, the Broadcast Attestation of the Registry (HDA) over the UA is sent (see <xref target="drip-recommendations" format="default"/>) as a DRIP Link message. The 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>
        <t>DRIP Link is important as its contents are used to provide trust in the DET/HI pair that the UA is currently broadcasting. This message does not require internet connectivity to perform signature validations of the contents when the registry DET/HI is in the receiver's cache. It also provides the UA HI so that connectivity is not required when performing validation of other DRIP Authentication Messages.</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                    .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
        </figure>
        <t>This DRIP Authentication Message is used in conjunction with other DRIP SAM Types (such as Manifest or Wrapper) that contain 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>
      <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                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
        </figure>
        <section anchor="wrapper-over-extended-transports" numbered="true" toc="default">
          <name>Wrapper over Extended Transports</name>
          <t>To send the DRIP Wrapper over Extended Transports the messages being wrapped are co-located with the Authentication Message in a Message Pack (0xF). The ASTM Messages are removed from the DRIP Wrapper after signing (as they are redundant) leaving the following structure that is placed into the <tt>SAM Authentication Data</tt> of <xref target="sam-frame" format="default"/> and sent in the same Message Pack.</t>
          <figure anchor="set-sig">
            <name>DRIP Wrapper under Extended Transports</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                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
          </figure>
          <t>To verify the signature the receiver must concatenate all the messages in the Message Pack (excluding Authentication Message found in the same Message Pack) in Message Type order and place them between the <tt>UA DRIP Entity Tag</tt> and <tt>Not Before Timestamp</tt> before performing signature verification.</t>
          <t>The functionality of Wrapper in this form is identical to Authentication Type 0x3 (Message Set Signature) when running over Extended Transports. What Wrapper provides is the same format but over both Extended and Legacy Transports allowing the transports to be similar. Message Set Signature also implies using the ASTM validator system architecture which relies on Internet connectivity for verification which the receiver may not have at the time of receipt of an Authentication Message. This is something Wrapper, and all DRIP Authentication Formats, avoids when the UA key is obtained via a DRIP Link Authentication Message.</t>
        </section>
        <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 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                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></artwork>
        </figure>
        <section anchor="hash-count" numbered="true" toc="default">
          <name>Hash Count</name>
          <t>The number of hashes in the Manifest can be variable (3-9). An easy way to determine the number of hashes is to take the length of the data between the end of the <tt>UA DRIP Entity Tag</tt> and <tt>Not Before Timestamp by UA</tt> and divide it by the hash length (12). If this value is not rational, the message is invalid.</t>
        </section>
        <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>Informative 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>
        </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 MUST 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   |                                               |
+---------------+                                               .
.                     Frame Attestation Data                    .
.                                                               .
|                                                               |
+---------------+---------------+---------------+---------------+
|                   Not Before Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                    Not After Timestamp by UA                  |
+---------------+---------------+---------------+---------------+
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                          UA Signature                         |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+---------------+---------------+---------------+---------------+
]]></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. It takes the first byte of <tt>Attestation Data</tt> in <xref target="bas" format="default"/> leaving 111-bytes for <tt>Frame Attestation Data</tt>.</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>
    </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. FEC (<xref target="fec-details" format="default"/>) MUST be used, per mandated Remote ID rules (for example the US FAA Remote ID Rule <xref target="FAA-14CFR" format="default"/>), when using Legacy Advertising methods (such as Bluetooth 4.x).</t>
        <t>Under ASTM Bluetooth 4.x rules, transmission of dynamic messages is 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.x extended frame (up to 9 single frame equivalent messages under Bluetooth 4). 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="RFC9153" 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 that is guaranteed to be unique and easily cross checked by the receiving device (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 that is guaranteed to be unique and easily cross checked by the receiving device (satisfying 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>
        <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"/>.  Sending them within the DRIP Wrapper makes 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="req-sum" numbered="true" toc="default">
      <name>Summary of Addressed DRIP Requirements</name>
      <t>The following <xref target="RFC9153" format="default"/> are addressed in this document:</t>
      <t>GEN-1: Provable Ownership</t>
      <ul empty="true" spacing="normal">
        <li>Addressed using the DRIP Link (<xref target="drip-link" format="default"/>) and DRIP Wrapper (<xref target="drip-wrapper" format="default"/>) or DRIP Manifest (<xref target="drip-manifest" format="default"/>).</li>
      </ul>
      <t>GEN-2: Provable Binding</t>
      <ul empty="true" spacing="normal">
        <li>Addressed using the DRIP Wrapper (<xref target="drip-wrapper" format="default"/>) or DRIP Manifest (<xref target="drip-manifest" format="default"/>).</li>
      </ul>
      <t>GEN-3: Provable Registration</t>
      <ul empty="true" spacing="normal">
        <li>Addressed using the DRIP Link (<xref target="drip-link" format="default"/>).</li>
      </ul>
    </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>
      <section anchor="iana-drip-registry" numbered="true" toc="default">
        <name>IANA DRIP Registry</name>
        <t>This document requests a new subregistry for Frame Type under the <eref target="https://datatracker.ietf.org/doc/html/draft-ietf-drip-rid-28#section-8.2">DRIP registry</eref>.</t>
        <dl newline="false" spacing="normal">
          <dt>DRIP Frame Type:</dt>
          <dd>
  This 8-bit valued subregistry is for Frame Types in DRIP Frame Authentication Messages. Future additions to this subregistry are to be made through Expert Review (Section 4.5 of <xref target="RFC8126" format="default"/>). The following values are defined:</dd>
        </dl>
        <artwork name="" type="" align="left" alt=""><![CDATA[
| Frame Type | Name         | Description      |
| ---------- | ------------ | ---------------- |
| 0x00       | Reserved     | Reserved         |
| 0xC0-0xFF  | Experimental | Experimental Use |
]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <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>
      <ul spacing="normal">
        <li>Ryan Quigley and James Mussi of AX Enterprize, LLC for early prototyping to find holes in the draft specifications.</li>
        <li>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 maximum page length of Authentication Data itself.</li>
        <li>Many thanks to Rick Salz for the secdir review.</li>
      </ul>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="F3411">
          <front>
            <title>F3411-22a: Standard Specification for Remote ID and Tracking</title>
            <author>
              <organization/>
            </author>
            <date year="2022" month="July"/>
          </front>
        </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="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="https://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" surname="Kelsey">
              <organization>Information Technology Laboratory</organization>
            </author>
            <author fullname="Shu-jen Change" surname="Change">
              <organization>Information Technology Laboratory</organization>
            </author>
            <author fullname="Ray Perlner" surname="Perlner">
              <organization>Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="December" year="2016"/>
          </front>
          <seriesInfo name="NIST Special Publications (General)" value="800-185"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-185"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters.  To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper.  For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed.  This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC9153" 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-arch" target="https://www.ietf.org/archive/id/draft-ietf-drip-arch-27.txt">
          <front>
            <title>Drone Remote Identification Protocol (DRIP) Architecture</title>
            <author fullname="Stuart W. Card">
              <organization>AX Enterprize</organization>
            </author>
            <author fullname="Adam Wiethuechter">
              <organization>AX Enterprize</organization>
            </author>
            <author fullname="Robert Moskowitz">
              <organization>HTT Consulting</organization>
            </author>
            <author fullname="Shuai Zhao">
              <organization>Intel</organization>
            </author>
            <author fullname="Andrei Gurtov">
              <organization>Linköping University</organization>
            </author>
            <date day="4" month="August" year="2022"/>
            <abstract>
              <t>   This document describes an architecture for protocols and services to
   support Unmanned Aircraft System (UAS) Remote Identification (RID)
   and tracking, plus UAS RID-related communications.  This architecture
   adheres to the requirements listed in the DRIP Requirements document
   (RFC9153).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-drip-arch-27"/>
        </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>
        <reference anchor="FAA-14CFR" target="https://www.govinfo.gov/content/pkg/FR-2021-01-15/pdf/2020-28948.pdf">
          <front>
            <title>Remote Identification of Unmanned Aircraft</title>
            <author>
              <organization/>
            </author>
            <date year="2021" month="January"/>
          </front>
        </reference>
        <reference anchor="VOYAGER" target="https://trs.jpl.nasa.gov/bitstream/handle/2014/34531/94-0881.pdf">
          <front>
            <title>Reed-Solomon Codes and the Exploration of the Solar System</title>
            <author>
              <organization/>
            </author>
            <date year="1993" month="August"/>
          </front>
        </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. The key of the HDA can be sent over Broadcast RID using the same mechanisms (see <xref target="drip-link" format="default"/> and <xref target="drip-recommendations" format="default"/>) but is not required due to potential operational constraints of sending multiple DRIP Link messages. 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-colors" numbered="true" toc="default">
        <name>State Colors</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. Note that the state diagrams do not have all error conditions mapped.</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="appendix-c" 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 (as described in <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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
2Fyl63UTDUsTGZV8Pcry5y3usRGJ91YkFbxTKc+rJGy1LM5PX4l/4YfI4fZs
Dme7J3a1DXOXvcNlaf8UGNYgZzUbvJT/t1YuruYJlj5Zy6Jut32y+qa9urj8
gfXN6pv3lhHjnlH9fo4uM32PpzjD+590zoqfyqzKB725iq3Cm2WVOwffoo41
xJFTBXDm83dqF/hAtkgirZiQZrKvX/8Dev8x2CO3n5N3+5Gw6EussAgQG3zR
fAgu8p+1KypIOme2Kun06dbn8QlS7eFyrLxrj5NqT7XP0ER7Nrw2xzTn4Y/2
E+bT5kZWVLGifXsYEyQYRBX7/Ee1hoZWH22WKNJizXSWP79Ak2hLrrZfKni1
If71CmHF7bTILZhRH+S3E/hrVLyr2Laer56/mtgfpr7fF8b6bs1T1Srpeqgq
YcI7aacCC2svbI8cf8MqV+FfcxOukARjz0Mj/vHJ1e67P62d5x5ttH/ylyIa
1j730Hkfux4au0AzFsLWbkdXbwfux18esRtbR1cP1gkeJca3b9dbJ/m4sl+V
496jgU0bMIHz5Lv3OBiQhygtPYzfZY0MISYhdrwni5LVlTxNtHzljekrfAE0
84G9Au1o0xtnb0iVlg43sE4T2epjf3Bm6zVrZpiV282dR+h6XXc34JkLPPzh
M3fzMl3WzHnBFH0IKycvMyOb5TSLVu2KmbvWOGVs5xbnqgPxx9VztebJZtHZ
ULwdVWsHGw2g+qeS8eCPkb7rbkHWojeI3UfNWNiR7T8FxlepmK/slvn1wXYp
DXWuVgN779kaSLdvyV6kI61LZfEjZq1UxO/Xo8T6awvAm17NfwqPF0b6bu1z
m3D+oEU/SBNBFA8KCB8W/trbqvp8LQRqMwbv1+NkrZl6k6m8cKGEBe5bC7Td
YPdPGnEF/OLPhsUUf27X4df8rD3fuKiDVbL9Q9k3+fQZVMleXFzVdqQVYR1Z
G1ClzG0fZT0Iv6t4Onf/3lc+Z9+qSS+qVonWcO6fWkla//NLWZg3/TzW+tyz
oM+l8jalaTsmuoMmSortTyIQ+XMExAP1p4cBUZJQa8w/+GwRiAeqUg8AYr+J
LHz7kwhE/tw9FrJWcydP005NZBKVFKMWliv61hp9z+KjTRQhG4HYs158HBAF
foZRmBbqitxuk5pJQOw/GQhrrRWejCImDsoPFIE4sF78Okzkq/3jCia6a28f
BMTIAuI0tU7pNmV7449huiuq9ioQtRcYUdKCmaurt4g5TGqXfXmuJGwwt3kE
EltPHMGqISzFc54Gw/afX0PV1p8Ok+uLO//3wOR/6QivsRz8KXW0567363bj
m17FLzrCL1tZuorP/NKVpX9RGB61F88jfPsj5Hr9GlL6BWB4HuHXOMLXc5ha
ufsDa26Hqt7d46LNDTKAYDMu/qpd+c77ta9Q95IKKQrP93v2869P+YtarSrD
Vp+N+kDxO4f0Uv49DB7rSj15Sip2g8GsFkru5SqJMcBzKQnl24bXPcJpHMmO
h/dwRcf2hby+V3wv/4YynOYY80WpRNQxqCpzHZZOb0qWVLtgYpq0nE/LtTW/
N12EKCRb951RV3/dvfireoXpF1ZSo4uFXqXoSqHY81iqFBDkpvTY+qpjVEu0
viZyYjWhvIEZzIQUymduwhSYo6yTgCT+0mrKJflk3DYMc58kZU4y8DDrcBJE
EqRulcfj+H9djNnE33FNLgAtXJrCAboQE6aLYei/TqHzrc49nHxeSqSqw53X
o/okE13Iy8oatZrZyE/5KPJxVKpNv6EdfYY1rQABQeJS5jH7BNo1bT2uHEEY
A1l5NJtQtkWtb34bmJH4b1XxO1y0lTo3f55bD1mf1gDgVot+z3+zf6ffampX
/U/5Kv9NFT+F6XL599Ka7sj8dlyr1XJaf+dkN+lhbgHRkZu17qFdpcj6Y7VA
VDlVutY/3PLAgPN7a7W8Mm5lTnEN2Jztm6u9PDS2jWZu7shNMc2SIYZqPhvz
UO2oNNyxwME1Z8ac5epMMNFan2Q8HWmB1u36bGoSU9nSInaczcsvVMlu1/4/
RFuklDU1AQA=

-->

</rfc>
