Internet-Draft | Operator Privacy | May 2020 |
Moskowitz, et al. | Expires 9 November 2020 | [Page] |
This document describes a method of providing privacy for UAS Operator/Pilot information specified in the ASTM UAS Remote ID and Tracking messages. This is achieved by encrypting, in place, those fields containing Operator sensitive data using a hybrid ECIES.¶
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 9 November 2020.¶
Copyright (c) 2020 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.¶
This document defines a mechanism to provide privacy in the ASTM Remote ID and Tracking messages [F3411-19] by encrypting, in place, those fields that contain sensitive UAS Operator/Pilot information. Encrypting in place means that the ciphertext is exactly the same length as the cleartext, and directly replaces it.¶
An example of and an initial application of this mechanism is the 8 bytes of UAS Operator/Pilot (hereafter called simply Operator) longitude and latitude location in the System Message. This meets the Drip Requirements [drip-requirements], Priv-01.¶
It is assumed that the Operator registers a mission with a USS. During this mission registration, the Operator and USS exchange public keys to use in the hybrid ECIES. The USS key may be long lived, but the Operator key SHOULD be unique to a specific mission. This provides protection if the ECIES secret is exposed from prior missions.¶
The actual Tracking message field encryption MUST be an "encrypt in place" cipher. There is rarely any room in the tracking messages for a cipher IV or encryption MAC. There is rarely any data in the messages that can be used as an IV. A some AES modes of operation are proposed here that can encrypt a multiple of 4 bytes.¶
The System Message is not a simple, one-time, encrypt the PII with the ECIES derived key. The Operator may move during a mission and these fields change, correspondingly. Further, not all messages will be received by the USS, so each message's encryption must stand on its own and not be at risk of attack by the content of other messages.¶
Another candidate message is the optional Operator ID Message with its 20 character Operator ID field. The Operator ID does not change during a mission, so this is a one-time encryption operation for the mission. The same cipher SHOULD be used for all messages from the UAS and this will influence the cipher selection.¶
Future applications of this mechanism may be provided. The content of the System Message may change to meet CAA requirements, requiring encrypting a different amount of data. At that time, they will be added to this document.¶
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.¶
All CAAs have rules defining which UAS must be registered to operate in their National Airspace. This includes UAS and Operator registration in a USS. Further, operator's are expected to report flight missions to their USS. This mission reporting provides a mechanism for the USS and operator to establish a mission security context. Here it will be used to exchange public keys for use in ECIES.¶
The operator's ECIES public key SHOULD be unique for each mission. The USS ECIES public key may be unique for each operator and mission, but not required. For best post-compromise security (PCS), even the USS ECIES public key should be changed over some operational window.¶
The public key algorithm should be Curve25519 [RFC7748]. Correspondingly, the ECIES 128 bit shared secret should be generated using KMAC as specified in sec 5 of [new-crypto].¶
The System Message contains 8 bytes of Operator specific information: Longitude and Latitude of the Remote Operator (Pilot in the field description) of the UA. The GCS MAY encrypt these as follows.¶
The 8 bytes of Operator information are encrypted, using the ECIES derived 128 bit shared secret, with one of the cipher's specified below. The choice of cipher is based on USS policy and is agreed to as part of the mission registration. AES-CFB16 is the recommended default cipher.¶
ASTM Remote ID and Tracking messages [F3411-19] SHOULD be updated to allow Bit 2 of the Flags byte in the System Message set to "1" to indicate the Operator information is encrypted.¶
The USS similarly decrypts these 8 bytes and provides the information to authorized entities.¶
If the Operator location is encrypted the encrypted bit flag MUST be set to 1.¶
The Operator MAY be notified by the USS that the mission has entered a location or time where privacy of Operator location is not allowed. In this case the Operator MUST disable this privacy feature and send the location unencrypted or land the UA or route around the restricted area.¶
If the Operator looses connectivity to the USS, the privacy feature SHOULD be disabled or land the UA.¶
If the mission is in an area or time with no Internet Connectivity, the privacy feature MUST NOT be used.¶
An Observer receives a System Message with the encrypt bit set to 1. The Observer sends a query to its USS Display Provider containing the UA's ID and the encrypted fields.¶
The USS Display Provider MAY deny the request if the Observer does not have the proper authorization.¶
The USS Display Provider MAY reply to the request with the decrypted fields if the Observer has the proper authorization.¶
The USS Display Provider MAY reply to the request with the decrypting key if the Observer has the proper authorization.¶
The Observer MAY notify the USS through its USS Display Provider that content privacy for a UAS in this location/time is not allowed. If the Observer has the proper authorization for this action, the USS notifies the Operator to disable this privacy feature.¶
The Operator ID Message contains 20 bytes for Operator the ID. The GCS MAY encrypt these as follows.¶
The 20 bytes Operator ID is encrypted, using the ECIES derived 128 bit shared secret, with one of the cipher's specified below. The choice of cipher is based on USS policy and is agreed to as part of the mission registration. AES-CFB16 is the recommended default cipher.¶
ASTM Remote ID and Tracking messages [F3411-19] SHOULD be updated to allow Operator ID Type in the Operator ID Message set to "1" to indicate the Operator ID is encrypted.¶
The USS similarly decrypts these 20 bytes and provides the information to authorized entities.¶
If the Operator ID is encrypted the Operator ID Type field MUST be set to 1.¶
The Operator MAY be notified by the USS that the mission has entered a location or time where privacy of Operator ID is not allowed. In this case the Operator MUST disable this privacy feature and send the ID unencrypted or land the UA or route around the restricted area.¶
If the Operator looses connectivity to the USS, the privacy feature SHOULD be disabled or land the UA.¶
If the mission is in an area or time with no Internet Connectivity, the privacy feature MUST NOT be used.¶
An Observer receives a Operator ID Message with the Operator ID Type field set to 1. The Observer sends a query to its USS Display Provider containing the UA's ID and the encrypted fields.¶
The USS Display Provider MAY deny the request if the Observer does not have the proper authorization.¶
The USS Display Provider MAY reply to the request with the decrypted fields if the Observer has the proper authorization.¶
The USS Display Provider MAY reply to the request with the decrypting key if the Observer has the proper authorization.¶
The Observer MAY notify the USS through its USS Display Provider that content privacy for a UAS in this location/time is not allowed. If the Observer has the proper authorization for this action, the USS notifies the Operator to disable this privacy feature.¶
CFB16 is defined in [NIST.SP.800-38A], Section 6.3. This is the Cipher Feedback (CFB) mode operating on 16 bits at a time. This variant of CFB can be used to encrypt any multiple of 2 bytes of cleartext.¶
The Operator includes a 64 bit UNIX timestamp for the mission time, along with its mission pubic key. The Operator also includes the UA MAC address (or multiple addresses if flying multiple UA).¶
The 128 bit IV for AES-CFB16 is constructed by the Operator and USS as: SHAKE128(MAC|UTCTime|Message_Type, 128). Inclusion of the ASTM Message_Type ensures a unique IV for each Message type that contains PII to encrypt.¶
AES-CFB16 would then be used to encrypt the Operator information.¶
If the encryption speed doesn't matter, we can use the following approach based on the Feistel scheme. This approach is already being used in format-preserving encryption (e.g. credit card numbers). The Feistal scheme is explained in Appendix A.¶
If 2 bytes of the Message can be set aside to contain a counter that is incremented each time the Operator information changes, AES-CTR can be used as follows.¶
The Operator includes a 64 bit UNIX timestamp for the mission time, along with its mission pubic key. The Operator also includes the UA MAC address (or multiple addresses if flying multiple UA).¶
The high order bits of an AES-CTR counter is constructed by the Operator and USS as: SHAKE128(MAC|UTCTime|Message_Type, 112). Inclusion of the ASTM Message_Type ensures a unique IV for each Message type that contains PII to encrypt.¶
AES-CTR would then be used to encrypt the Operator information.¶
This document provides solution to PRIV-1 for PII in the ASTM System Message.¶
ASTM will need to make the following changes to the "Flags" in the System Message:¶
ASTM will need to make the following changes to the "Operator ID Type" in the Operator ID Message:¶
An attacker has no known text after decrypting to determine a successful attack. An attacker can make assumptions about the high order byte values for Operator Longitude and Latitude that may substitute for known cleartext. There is no knowledge of where the operator is in relation to the UA. Only if changing location values "make sense" might an attacker assume to have revealed the operator's location.¶
Using the same IV for different Operator information values with CFB16 presents a cyptoanalysis risk. Typically only the low order bits would change as the Operators position changes. Thus the first 2 encrypted bytes would not change, and only subsequent bytes would. The risk is mitigated due to the short-term value of the data. Further analysis is need to properly place risk.¶
The ASTM Remote ID Messages do not provide any space for a crypto suite indicator or any other method to manage crypto agility.¶
All crypto agility is left to the USS policy and the relation between the USS and operator. The selection of the ECIES public key algorithm, the shared secret key derivation function, and the actual symmetric cipher used for on the System Message are set by the USS which informs the operator what to do.¶
TBD¶
This approach is already being used in format-preserving encryption.¶
According to the theory, to provide CCA security guarantees (CCA = Chosen Ciphertext Attacks) for m-bit encryption X |-> Y, we should choose d >= 6. It seems very ineffective that when shortening the block length, we have to use 6 times more block encryptions. On the other hand, we preserve both the block cipher interface and security guarantees in a simple way.¶
How to encrypt an m-bit plaintext X using an n-bit block cipher E = {E_K} for n > m? Enc(X, K): 1. Y <- X. 2. Split Y into 2 equal parts: Y = Y1 || Y2 (let us assume for simplicity that m is even). 3. For i = 1, 2, ..., d do: Y <- Y2 || (Y1 ^ first_m/2_bits(E_K(Y2 || Ci)), where Ci is a (n - m/2)-bit round constant. 4. Y <- Y2 || Y1. 5. Return Y. Dec(Y, K): 1. X <- Y. 2. Split X into 2 equal parts: X = X1 || X2. 3. For i = d, ..., 2, 1 do: X <- X2 || (X1 ^ first_m/2_bits(E_K(X2 || Ci)). 4. X <- X2 || X1. 5. Return X.¶