Internet-Draft | DETIM Architecture | March 2023 |
Wiethuechter & Reid | Expires 29 September 2023 | [Page] |
This document describes the high level architecture for the registration and discovery of DRIP Entity Tags (DETs) using DNS. Discovery of DETs and their artifacts are through the existing DNS structure and methods. A general overview of the interfaces required between involved components is described in this document with future supporting documents giving technical specifications.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 29 September 2023.¶
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
Registries are fundamental to Unmanned Aircraft System (UAS) Remote ID (RID). Only very limited operational information can be Broadcast, but extended information is sometimes needed. The most essential element of information sent is the UAS ID itself, the unique key for lookup of extended information in relevant registries (see Figure 4 of [drip-arch]).¶
While it is expected that DIME functions will be integrated with UAS Service Supplier (USS) (Appendix A.2 of [drip-arch]), who will provide them is not yet determined in most, and is expected to vary between jurisdictions. However this evolves, the essential DIME functions (including the management of identifiers) are expected to remain the same, so are specified herein.¶
While most data to be sent via Broadcast RID (Section 1.2.1 of [drip-arch]) or Network RID (Section 1.2.2 of [drip-arch]) is public, much of the extended information in registries will be private. As discussed in Section 7 of [drip-arch], Authentication, Attestation, Authorization, Access Control, Accounting, Attribution, and Audit (AAA) for registries is essential, not just to ensure that access is granted only to strongly authenticated, duly authorized parties, but also to support subsequent attribution of any leaks, audit of who accessed information when and for what purpose, etc. As specific AAA requirements will vary by jurisdictional regulation, provider choices, customer demand, etc., they are left to specification in policies, which should be human readable to facilitate analysis and discussion, and machine readable to enable automated enforcement, using a language amenable to both (e.g., eXtensible Access Control Markup Language (XACML)).¶
The intent of the access control requirements on registries is to ensure that no member of the public would be hindered from accessing public information, while only duly authorized parties would be enabled to access private information. Mitigation of Denial of Service (DoS) attacks and refusal to allow database mass scraping would be based on those behavior, not on identity or role of the party submitting the query per se, but querant identity information might be gathered (by security systems protecting DRIP implementations) on such misbehavior.¶
Registration under DRIP is vital to manage the inevitable collisions in the hash portion of the DRIP Entity Tags (DETs). Forgery of the DETs is still possible, but including it as a part of a public registration mitigates this risk. This document creates the DRIP DET registration and discovery ecosystem. This includes all components in the ecosystem (e.g., Unmanned Aircraft (UA), Registered Assigning Authority (RAA), Hierarchical HIT Domain Authority (HDA), Ground Control Station (GCS), and USS).¶
This document uses the Concise Data Definition Language (CDDL) [RFC8610] for describing the registration data.¶
In DRIP each entity (DIME, Operator, UA, etc.) is expected to generate a full DRIP Entity Tag [RFC9374] on the local device their key is expected to be used. These are registered with a Public Information Registry within the hierarchy along with whatever data is required by the cognizant CAA and the DIME. Any Personally Identifiable Information (PII) is stored in a Private Information Registry protected through industry practice AAA or stronger. In response, the entity will obtain an endorsement from the DIME proving such registration.¶
Manufacturers that wish to participate in DRIP should not only support DRIP as a Session ID type for their aircraft but could also generate a DET then encode it as a Serial Number. This would allow aircraft under CAA mandates to fly only ID Type 1 (Serial Number) could still use DRIP and most of its benefits. Even if DRIP is not supported for Serial Numbers by a Manufacturer it is hoped that they would still run a DIME to store their Serial Numbers and allow look ups for generic model information. This look up could be especially helpful in UTM for Situational Awareness when an aircraft flying with a Serial Number is detected and allow for an aircraft profile to be displayed.¶
Operators are registered with a number of registries or their regional RAA. This acts as a verification check when a user performs other registration operations; such as provisioning an aircraft with a new Session ID. It is an open question if an Operator registers to their CAA (the RAA) or multiple USS's (HDA's). PII of the Operator would vary based on the CAA they are under and the DIME.¶
Finally, aircraft that support using a DET would provision per flight to a USS, proposing a DET to the DIME to generate a binding between the aircraft (Session ID, Serial Number, and Operational Intent), operator and DIME. The aircraft then follows [drip-auth] to meet various requirements from [RFC9153] during a flight.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
[drip-arch] defines the DRIP Identity Management Entity (DIME) as an entity that vets Claims and/or Evidence from a registrant and delivers back Endorsements and/or Certificates in response. The DIME encompasses various logical components and can be classified to serve a number of different roles, which are detailed in the following subsections. The general hierarchy of these roles are illustrated in Figure 1.¶
The Apex is a special DIME role that holds the value of RAA=0 and HDA=0. It serves as the branch point from the larger DNS system in which DETs are defined. The Apex generally has as the prefix portion of the HHIT associated with it (such as 2001:30/28) which is assigned by IANA from the non-routable special IPv6 address space for ORCHIDs.¶
The Apex manages all delegations and allocations of the DET's RAA to various parties. For DRIP and the UAS use case it is hoped that ICAO will handle the role of registering RAAs as an Apex.¶
RAA's are the upper hierarchy in DRIP (denoted by a 14-bit field (16,384 RAAs) of an DET). An RAA is a business or organization that manages a DIME of HDAs (Section 4.3). Most are contemplated to be Civil Aviation Authorities (CAA), such as the Federal Aviation Authority (FAA), that then delegate HDAs to manage their National Air Space (NAS). This is does not preclude other entities to operate an RAA if the Apex allows it.¶
An RAA must provide a set of services to allocate HDAs to organizations. It must have a public policy on what is necessary to obtain an HDA. It must maintain a DNS zone minimally for discovering HID RVS servers. All RAA's have two reserved HDA values. 0 (0x0000) for itself in its role as an RAA and 1 (0x0001) if it wishes to offer HDA services. Other HDA values can be allocated or reserved per RAA policy.¶
An RAA-level DIME that hands out HDA values to participating Manufacturer's that hold an ICAO Manufacturer Code used in [CTA2063A].¶
To manage the large ICAO Manufacturer Code space (34 character set; 4 characters; 1,336,336 possible codes) a range of RAA values are set aside for the DRIP use case. These are the RAA values of 2 (0x0002) up to 96 (0x0060). This allows a single HDA for each Manufacturer Code.¶
An HDA may be an USS, ISP, or any third party that takes on the business to register the actual UAS entities that need DETs. This includes, but is not limited to UA, GCS, and Operators. It should also provide needed UAS services including those required for HIP-enabled devices (e.g. RVS).¶
The HDA is a 14-bit field (16,384 HDAs per RAA) of a DET assigned by an RAA. An HDA should maintain a set of RVS servers for UAS clients that may use HIP. How this is done and scales to the potentially millions of customers are outside the scope of this document. This service should be discoverable through the DNS zone maintained by the HDA's RAA.¶
An RAA may assign a block of values to an individual organization. This is completely up to the individual RAA's published policy for delegation. Such policy is out of scope.¶
An HDA-level DIME run by a manufacturer of UAS systems that participate in Remote ID. Stores UAS Serial Numbers under a specific ICAO Manufacturer Code (assigned to the manufacturer by ICAO).¶
A DET can be encoded into a Serial Number (see [RFC9374], Section 4.2) and this DIME would hold a mapping from the Serial Number to the DET and its artifacts.¶
An HDA-level DIME that holds the binding between a UAS Session ID (for DRIP the DET) and the UA Serial Number. The Serial Number MUST have its access protected to allow only authorized parties to obtain. The Serial Number SHOULD be encrypted in a way only the authorized party can decrypt.¶
As part of the UTM system they also hold a binding between a UAS ID (Serial Number or Session ID) and an Operational Intent. They may either be a direct logical part of a UAS Service Supplier (USS) or be a UTM wide service to USS's.¶
On receiver devices a DET can be translated to a more human readable form such as: {RAA Abbreviation} {HDA Abbreviation} {Last 4 Characters of DET Hash}
. An example of this would be US FAA FE23
. To support this DIMEs are RECOMMENDED to have an abbreviation that could be used for this form. These abbreviations SHOULD be a maximum of six characters in length. Spaces SHOULD NOT be used and be replaced with either underscores (_
) or dashes (-
). For RAAs the abbreviation is RECOMMENDED to be set to the ISO 3166 country code (either Alpha-2 or Alpha-3) when allocated to a CAA.¶
If a DIME does not have an abbreviation or it can not be looked up then the receiver SHOULD use the uppercase 4-character hexadecimal encoding of the field it is missing.¶
When talking about a DIME in documents it should be referred to as the role it is serving. For example a CAA level DIME running services both as an RAA (its primary role in the hierarchy) and as an HDA (optionally) would be be referred to "RAA" when performing its RAA duties and "HDA" when performing its HDA duties.¶
The DIME, in any of its roles (Section 4), is comprised of a number of logical components that are depicted in Figure 2. Any of these components could be delegated to other entities as a service both co-located or remote. For example:¶
The Name Server component could be handled by a well-established DNS registrar/registry with the DRIP Provisioning Agent (DPA) (Section 5.1) interfacing to them¶
The DPA performs the important task of vetting information (such as the DRIP Endorsements) coming from clients wishing to register and then delegate (internally or externally) various items to other components in the DIME.¶
A standard interface over HTTPS MUST be provided for clients to access with JSON or CBOR encoding of objects being sent to the DPA. This interface specification is out of scope for this document.¶
There MUST be an interface from the DPA to a Registry (Section 5.2) component which handles the DNS specific requirements of the DIME as defined by the Registry. There MAY also be interface from the DPA to a DRIP Information Agent (Section 5.4) as defined by the DIA.¶
The Registry component handles all the required DNS based requirements of the DIME to function for DRIP. This includes the registration and maintenance of various DNS Resource Records.¶
A standardized interface MUST be implemented for interactions with the DPA (Section 5.1). This interface MAY be over HTTPS using JSON/CBOR encoding or MAY use the Extensional Provisioning Protocol (EPP) [RFC5730]. The detailed specification of either of these interfaces is out of scope for this document.¶
There MAY be interface from the Registry to a DRIP Information Agent (Section 5.4) as defined by the DIA.¶
The interface of the Name Server to any component (nominally the Registry) in a DIME is out of scope as typically they are implementation specific.¶
The DIA is the main component handling requests for information from entities outside of the DIME. Typically this is when an Observer looks up a Session ID from an UA and gets pointed to the DIA to obtain information not available publicly (i.e. via DNS).¶
The information contained in the DIA is generally more oriented around the Operator of a given UAS and is thus classified as Personally Identifiable Information (PII). To protect the privacy of an Operator of the UAS this information is not publicly accessible and is only available behind policy driven differentiated access mechanisms. As an example the Serial Number, under the FAA, is classified as PII and can only be accessed by federal entities (such as the FAA themselves).¶
For DRIP the Registration Data Access Protocol (RDAP) ([RFC7480], [RFC9082] and [RFC9083]) is the selected protocol to provide policy driven differentiated access for queries of information.¶
A standard interface over HTTPS MUST be provided for clients to access with JSON/CBOR encoding of objects being sent to the DIA. There MUST also be a standardized interface for the DPA or Registry to add, update or delete information into the DIA. Specific details for these interfaces are out of scope for this document.¶
An interface defined by the Registration Data Directory Service (RDDS) (Section 5.5) is also required as specified by the RDDS.¶
This is the primary information database for the DIA. An interface MUST be provided to the DIA but its specification is out of scope for this document.¶
The general process for a registering party is as follows:¶
In the following subsections an abbreviated form of Section 5 using co-located components is used to describe the flow of information. The data elements being transmitted between entities is marked accordingly in each figure for the specific examples.¶
There are four ways a Serial Number is supported (by DRIP):¶
(1) is where a UA is provisioned with a Serial Number by the manufacturer. The manufacturer is runs an MAA and uses the mechanisms of this document to provide additional information.¶
(2) is where a UAS is provisioned with a Serial Number and DET by the manufacturer enabling their devices to use [drip-auth] and provide additional information. A public mapping of the Serial Number to DET and all public artifacts MUST be provided by the manufacturer. This document RECOMMENDS the manufacturer use an MAA for this task.¶
(3) is where a UAS has a Serial Number (from the manufacturer) and the user has a mechanism to generate and map a DET to the Serial Number after production. This can provide dynamic signing keys for DRIP Authentication Messages via [drip-auth] for UAS that MUST fly only using Serial Numbers. Registration SHOULD be allowed to any relevant DIME that supports it.¶
(4) is where a UAS manufacturer chooses to use the Serial Number scheme defined in [RFC9374] to create Serial Numbers, their associated DETs for [drip-auth] and provide additional information. This document RECOMMENDED that the manufacturer "locks" the device from changing its authentication method so identifiers in both the Basic ID and Authentication Message do not de-sync. The manufacturer MUST use an MAA for this task, with the mapping between their Manufacturer Code and the upper portion of the DET publicly available.¶
The unmanned aircraft, intending to use DRIP, generates a keypair, DET and Self-Endorsement: UA
using the RAA and HDA values specified by the manufacturers DIME (running as an MAA). The DET is converted into a Serial Number (per [RFC9374]) or the manufacturer creates their own Serial Number.¶
The Serial Number, UA information and the Self-Endorsement: UA
are sent to the manufacturers DIME. The DIME validates the Self-Endorsement and checks for DET and HI collisions in the Name Server/DIA. A Broadcast Endorsement: DIME on UA
is generated which is provisioned into the aircraft for use when using the Serial Number as its UAS ID. In the Name Server HIP RRs are created using the DET FQDN while a CNAME points the Serial Number FQDN to the DET FQDN.¶
Additional UA Information has a set of valid item keys defined in Section 11.1.1. The items present for a given interaction is defined by future documents, local regulations and implementation specific capabilities.¶
Provided either by USS or CAA run HDAs. Regulation might require interaction between them. An Operator can request that certain information normally generated and provisioned into DNS be omitted due to privacy concerns.¶
The Operator generates a keypair and DET as specified in [RFC9374] along with a self-signed endorsement (Self-Endorsement: Operator
). The RAA and HDA values used in the DET generation for the Operator are found by referencing their selected DIME of choice (in Figure 4 an HDA).¶
The self-signed endorsement along with other relevant information (such as Operator PII) is sent to the DIME over a secure channel. The specification of this secure channel is out of scope for this document.¶
The DIME cross checks any personally identifiable information as required. Self-Endorsement: Operator
is verified. The DET and HI is searched in the DIME DIA and Name Server to confirm that no collisions occur. A new endorsement is generated (Generic Endorsement: DIME on Operator
) and sent securely back to the Operator. Resource Records for the HI and Endorsements are added to the DIME Registry/Name Server.¶
With the receipt of Generic Endorsement: DIME on Operator
the registration of the Operator is complete.¶
The definition of Operator Information is out of scope of this document and left to local regulations (both in its format and contents).¶
Session IDs are generally handled by HDAs, specifically SIDAs. In Figure 5 the UAS comprises of an unmanned aircraft and a Ground Control Station (GCS). Both parties are involved in the registration process.¶
Through mechanisms not specified in this document the Operator should have methods (via the GCS) to instruct the unmanned aircraft onboard systems to generate a keypair, DET and Self-Endorsement: UA
. The Self-Endorsement: UA
is extracted by the Operator onto the GCS.¶
The GCS is already pre-provisioned and registered to the DIME with its own keypair, DET, Self-Endorsement: GCS
and Generic Endorsement: SIDA on GCS
. The GCS creates a new Generic Endorsement: GCS on UA
and also creates Mutual Endorsement: SIDA on GCS
. These new endorsements along with Session ID Information are sent to the DIME via a secure channel.¶
The DIME validates all the endorsements and checks for DET and HI collisions in the Name Server/DIA using the proposed UA DET. A Broadcast Endorsement: DIME on UA
is generated. An Generic Endorsement: SIDA on UAS
is generated using the Generic Endorsement: GCS on UA
. HIP and CERT RRs are provisioned into the Registry/Name server. Both endorsements are back to the GCS on a secure channel.¶
The GCS then injects the Broadcast Endorsement: SIDA on UA
securely into the unmanned aircraft. Endorsement: SIDA on GCS
is securely stored by the GCS.¶
Session ID Information is defined as the current model:¶
sessionid_info = { serial: tstr .size 20, session_id: tstr, operational_intent: tstr, intent_src: tstr, operator_id: tstr, * tstr: any }¶
Future standards or implementations MAY add other keys to this list (for local features and/or local regulation).¶
There may be some unmanned aircraft that have their own Internet connectivity allowing them to register a Session ID themselves without outside help from other devices such as a GCS. When such a system is in use its imperative that the Operator has some method to create the Generic Endorsement: Operator on UA
to send to the DIME. The process and methods to perform this are out of scope for this document but MUST be done in a secure fashion.¶
Most unmanned aircraft will not have their own Internet connectivity but will have a connection to a GCS. Typically a GCS is an application on a user device (such as smartphone) that allow the user to fly their aircraft. For the Session ID registration the DIME MUST be provided with an Generic Endorsement: GCS on UA
which implies there is some mechanism extracting and inserting information from the unmanned aircraft to the GCS. These methods MUST be secure but are out of scope for this document.¶
With this system it is also possible to have the GCS generate the DET based Session ID and insert it securely into the unmanned aircraft after registration is done. This is NOT RECOMMENDED as this invalidates the objective of the asymmetric cryptography in the underlying DET as the private key MAY get in the possession of another entity other than the unmanned aircraft. See Section 12.2 for more details.¶
Handled by the Apex and RAA's. This is an endpoint that handles dynamic registration (or key roll-over) of lower-level DIMEs (RAAs to Apex and HDAs to RAAs) in the hierarchy.¶
It should be noted that this endpoint DOES NOT hand out dynamically RAA/HDA values to systems that hit the endpoint. This is done out-of-band through processes specified by local regulations and performed by cognizant authorities. The endpoint MUST NOT accept queries it is not previously informed of being expected via mechanisms not defined in this document.¶
It is OPTIONAL to implement this endpoint. This MAY be used to handle lower-level DIME key roll-over.¶
Per [drip-arch] all information classified as public is stored in a datastore protected using some form of differentiated access (i.e. AAA) to satisfy REG-2 from [RFC9153].¶
Differentiated access, as a process, is a requirement for DIMEs as defined in [RFC9153] by the combination of PRIV-1, PRIV-3, PRIV-4, REG-2 and REG-4. [drip-arch] further elaborates on the concept by citing RDAP (from [RFC7480], [RFC9082] and [RFC9083]) as a potential means of fulfilling this requirement.¶
Typically the cognizant authority is the primary querant of private information from a DIME if a Session ID is reported (the case of the owner of the private information is ignored for the moment). This capability MAY be delegated to other parties at the authorities discretion (be it to a single user or many), thus requiring a flexible system to delegate, determine and revoke querent access rights for information. XACML MAY be a good technology choice for this flexibility.¶
It is noted by the authors that as this system scales the problem becomes a, well known and tricky, key management problem. While recommendations for key management are useful they are not necessarily in scope for this document as best common practices around key management should already be mandated and enforced by the cognizant authorities in their existing systems. This document instead focuses on finding a balance for generic wide-spread interoperability between DIMEs with authorities and their existing systems in a Differentiated Access Process (DAP).¶
A system where cognizant authorities would require individual credentials to each HDA is not scalable, nor practical. Any change in policy would require the authority to interact with every single HDA (active or inactive) to grant or revoke access; this would be tedious and prone to mistakes. A single credential for a given authority is also strongly NOT RECOMMENDED due to the security concerns it would entail if it leaked.¶
A zero-trust model would be the most appropriate for a DAP; being highly flexible and robust. Most authorities however use "oracle" based systems with specific user credentials and the oracle knowing the access rights for a given user. This would require the DAP the have some standard mechanism to locate and query a given oracle for information on the querent to determine if access is granted.¶
DRIP has no intention to develop a new "art" of key management, instead hoping to leverage existing systems and be flexible enough to adapt as new ones become popular.¶
Per [drip-arch] all information classified as public is stored in the DNS to satisfy REG-1 from [RFC9153].¶
The apex for domain names MUST be under the administrative control of ICAO, the international treaty organization providing the critical coordination platform for civil aviation. ICAO SHOULD be responsible for the operation of the DNS-related infrastructure for these domain name apexes. It MAY chose to run that infrastructure directly or outsource it to competent third parties or some combination of the two. ICAO SHOULD specify the technical and administrative criteria for the provision of these services: contractual terms (if any), reporting, uptime, SLAs (if any), DNS query handling capacity, response times incident handling, complaints, law enforcement interaction and so on.¶
ICAO SHOULD delegate domains beneath these apexes to national civil aviation authorities. This ensures DRIP complies with national law and regulation since these are matters of national sovereignty. The HHIT has a designated field, the RAA, for this exact purpose and SHOULD be used instead of a ISO-3166 entries: ie a two- or three-letter or a three digit country code.¶
Each national aviation authority SHOULD be responsible for the operation of the DNS-related infrastructure for their delegated subdomains. As with the domain apexes overseen by ICAO, each national aviation authority MAY chose to run that infrastructure directly or outsource it to competent third parties or some combination of the two. National aviation authorities SHOULD specify the technical and administrative criteria for the provision of these services: contractual terms (if any), reporting, uptime, SLAs (if any), DNS query handling capacity, response times, incident handling, complaints, law enforcement interaction and so on. These are National Matters where national law/regulation prevail. National policy and reguations will define how long DNS data are stored or archived.¶
DNSSEC is strongly RECOMMENDED (especially for RAA-level and higher zones). When a DIME decides to use DNSSEC they SHOULD define a framework for cryptographic algorithms and key management [RFC6841]. This may be influenced by frequency of updates, size of the zone, and policies (both DIME-level and national-level).¶
This document specifies the creation and delegation to ICAO of the subdomain uas.icao.arpa
. To enable lookup of Serial Numbers a subdomains of sn.uas.icao.arpa
is maintained. All entries under sn.uas.icao.arpa
are to follow the convention found in Appendix A.2. This is to enable a singular lookup point for Serial Numbers for UAS.¶
Note that other subdomains under uas.icao.arpa
can be made to support other identifiers in UAS. The creation and use of other such other subdomains are out of scope for this document. The further use and creation of items under icao.arpa
is the authority of ICAO (which has been delegated control).¶
DETs MUST not have a subdomain in uas.icao.arpa
(such as det.uas.icao.arpa
) as they fit within the predefined ip6.arpa
as they are IPv6 addresses.¶
DRIP Endorsements are defined in a CDDL [RFC8610] structure (Figure 7) that can be encoded to CBOR, JSON or have their CDDL keys removed and be sent as a binary blob. When the latter is used very specific forms are defined with naming conventions to know the data fields and their lengths for parsing and constrained envirornments. CBOR is the preferred encoding format.¶
The CDDL was derived from the more specific structure developed for [drip-auth]. As such the structures found in [drip-auth], such as the UA Signed Evidence and the contents of DRIP Link (known as a Broadcast Endorsement), are a subset of the below definition in a strict binary form.¶
Appendix B specifies specific Endorsement structures for the UAS RID use-case.¶
The scope
section is more formally "the scope of validity of the endorsement". The scope can come in various forms but MUST always have a "valid not before" (vnb
) and "valid not after" (vna
) timestamps.¶
Other forms of the scope could for example be a 4-dimensional volume definition. This could be in raw latitude, longitude, altitude pairs or may be a URI pointing to scope information. Additional scope fields are out of scope for this document and should be defined for specific Endorsement structures if they are desired.¶
The evidence
section contain a byte string of evidence. Specific content of evidence (such as subfields, length and ordering) is defined in specific Endorsement structures.¶
The identity
section is where the main identity information of the signer of the Endorsement is found. The identity can take many forms such as a handle to the identity (e.g. an HHIT), or can include more explicit data such as the public key (e.g. an HI). Other keys, for different identifiers, can be provided and MUST be defined in their specific Endorsement.¶
The length of the hi
can be determined when using hhit
by decoding the provided IPv6 address. The prefix will inform of the ORCHID construction being used, which informs the locations of the OGA ID in the address. The OGA ID will then inform the user of the key algorithm selected which has the key length defined.¶
The signature
section contain the signature data for the endorsement. The signature itself MUST be provided under the sig
key. Other forms or data elements could also be present in the signature
section if specified in a specific endorsement. Signatures MUST be generated using the preceding sections in their binary forms (i.e. as a bytestring with no keys).¶
X.509 certificates are optional for the DRIP entities covered in this document. DRIP endpoint entities (EE) (i.e., UA, GCS, and Operators) may benefit from having X.509 certificates. Most of these certificates will be for their DET and some will be for other UAS identities. To provide for these certificates, some of the other entities covered in this document will also have certificates to create and manage the necessary PKI structure.¶
Any Certificate Authority (CA) supporting DRIP entities SHOULD adhere to the ICAO's International Aviation Trust Framework (IATF) Certificate Policy [ICAO-IATF-CP-draft]. The CA(s) supporting this CP MUST either be a part of the IATF Bridge PKI or part of the IATF CA Trust List.¶
EEs may use their X.509 certificates, rather than their rawPublicKey (i.e. HI) in authentication protocols (as not all may support rawPublicKey identities). Some EE HI may not be 'worth' supporting the overhead of X.509. Short lived DETs like those used for a single operation or even for a day's operations may not benefit from X.509. Creating then almost immediately revoking these certificates is a considerable burden on all parts of the system. Even using a short not AfterDate will completely mitigate the burden of managing these certificates. That said, many EEs will benefit to offset the effort. It may also be a regulator requirement to have these certificates.¶
Typically an HDA either does or does not issue a certificate for all its DETs. An RAA may specifically have some HDAs for DETs that do not want/need certificates and other HDAs for DETs that do need them. These types of HDAs could be managed by a single entity thus providing both environments for its customers.¶
It is recommended that DRIP X.509 certificates be stored as DNS TLSA Resource Records. This not only generally improves certificate lookups, but also enables use of DANE [RFC6698] for the various servers in the UTM and particularly DIME environment and DANCE [dane-clients] for EEs (e.g. [drip-secure-nrid-c2]). All DRIP certificates MUST be available via RDAP. LDAP/OCSP access for other UTM and ICAO uses SHOULD also be provided.¶
(mostly TBD still)¶
PKIX standard X.509 issuance practices should be used. The certificate request SHOULD be included in the DET registration request. A successful DET registration then MUST include certificate creation, store, and return to the DET registrant.¶
Certificate revocation will parallel DET revocation. TLSA RR MUST be deleted from DNS and RDAP, LDAP, and OCSP return revoked responses. CRLs SHOULD be maintained per the CP.¶
Details of this are left out, as there are a number of approaches and further research and experience will be needed.¶
(CBOR encoded certs here. TBD)¶
This document requests a new registry for aircraft information fields under the DRIP registry group.¶
UA Information
during a UA registration to a DIME. Future additions to this registry are to be made through First Come First Served (Section 4.4 of [RFC8126]). The following values are defined:¶
Key Name | Type | Description |
---|---|---|
length | float | length, in millimeters |
width | float | width, in millimeters |
height | float | height, in millimeters |
constructionMaterial | tstr | materials, comma separated if multiple |
color | tstr | colors, comma separated if multiple |
serial | tstr | ANSI CTA 2063-A Serial Number |
manufacturer | tstr | manufacturer name |
make | tstr | aircraft make |
model | tstr | aircraft model |
dryWeight | float | weight of aircraft with no payloads |
numRotors | int | Number of rotators |
propLength | float | Length of props, in centimeters |
numBatteries | int | |
batteryCapacity | float | in milliampere hours |
batteryWeight | float | in kilograms |
batteryVoltage | float | in volts |
batteryChemistry | tstr | |
maxTakeOffWeight | float | in kilograms |
maxPayloadWeight | float | in kilograms |
maxFlightTime | float | in minutes |
minOperatingTemp | float | in Celsius |
maxOperatingTemp | float | in Celsius |
ipRating | tstr | standard IP rating |
engineType | tstr | |
fuelType | tstr | |
fuelCapacity | float | in liters |
previousSerial | tstr | legacy serial number(s) |
During key rollover the DIME MUST inform all children and parents of the change - using best standard practices of a key rollover. At time of writing this is signing over the new key with the previous key in a secure fashion and it being validated by others before changing any links in DNS.¶
A DET has a natural ability for a single DIME to hold different cryptographic identities under the same HID values. This is due to the lower 64-bits of the DET being a hash of the public key and the HID of the DET being generated. As such during key rollover, only the lower 64-bits would change and a check for a collision would be required.¶
This attribute of the DET to have different identities could also allow for a single DIME to be "federated" across them if they share the same HID value. This method of deployment has not been thoroughly studied at this time. An endpoint such as in Section 6.4 is a possible place to have these functions.¶
Under the FAA [NPRM], it is expecting that IDs for UAS are assigned by the UTM and are generally one-time use. The methods for this however are unspecified leaving two options.¶
Option 1:¶
Option 2:¶
Keypairs are expected to be generated on the device hardware it will be used on. Due to hardware limitations and connectivity it is acceptable, though not recommended, under DRIP to generate keypairs for the Aircraft on Operator devices and later securely inject them into the Aircraft. The methods to securely inject and store keypair information in a "secure element" of the Aircraft is out of scope of this document.¶
Thanks to Stuart Card (AX Enterprize, LLC) and Bob Moskowitz (HTT Consulting, LLC) for their early work on the DRIP registries concept. Their early contributions laid the foundations for the content and processes of this architecture and document. Bob Moskowitz is also instrumental in the PKIX work defined in this document with his parallel work in ICAO.¶
When building a DET FQDN it MUST must be built using the exploded (all padding present) form of the IPv6 address.¶
Apex: .det.uas.icao.arpa. DET: 2001:0030:0280:1405:c465:1542:a33f:dc26 ID: c4651542a33fdc26 OGA: 05 HID: 0028014 HDA: 0014 RAA: 000a Prefix: 2001003 FQDN: c4651542a33fdc26.05.0014.000a.2001003.det.uas.icao.arpa.¶
Apex: .sn.uas.icao.arpa. Serial: MFR0ADR1P1SC00L Manufacturer Code: MFR0 Length: A ID: DR1P1SC00L FQDN: dr1p1sc00l.a.mfr0.sn.uas.icao.arpa.¶
Used during registration process as an input. evidence
is filled with the corresponding HI of the hhit
.¶
Defined by [drip-auth] in a binary format to support Authentication over F3411 constrained links. Used in DRIP Wrapper, Manifest and Frame formats. evidence
is a binary string with specified contents (in format and ordering) by specific use-cases.¶
Defined by [drip-auth] in a binary format to support Authentication over F3411 constrained links. Used in DRIP Link format. A required output of registration to a DIME at any level. evidence
is a binary string of the concatination of a child entities (e.g. a UA) HHIT and its associated HI. hhit
is of the parent entity (e.g. a DIME).¶