# SENTINEL: A Secure and Efficient Authentication Framework for Unmanned Aerial Vehicles
## 5 Security Protocols in SENTINEL
### Mutual Authentication and Key Agreement Protocol  
Figure 3 shows the mutual authentication and key agreement protocol initially performed between a drone and a ground station. We assume that both the drone and the ground station already have their certificates issued by a legitimate CA (described in Figure 2). In this protocol, the ground station checks whether the drone is an authorized drone by verifying the validity of the drone's certificate and generates a flight session key with the drone, which will be used for authenticating the drone during the drone's actual flight.  
That is, before taking off, the drone \(d\) tries to ask the approval from the ground station \(gs\) described in Figure 3 through the mutual authentication and key agreement protocol. During the protocol, \(d\) and \(gs\) perform mutual authentication with their certificates and verifies each other's certificate by checking the signature on the certificate. Optionally, both the drone and ground station can check whether the certificate is revoked using a certificate validation service such as an online certificate status protocol (OCSP). The details of the procedure for the key generation are as follows.  
1. When a drone \(d\) tries to start a flight, \(d\) first chooses a random nonce \(n_{d}\) using a cryptographically secure pseudorandom function, and sends the message including drone's identity \(id_{d}\), \(n_{d}\), drone's certificate \(cert_{d}\), and drone's flight plan \(fp_{d}\) to a predesignated ground station \(gs\).
2. On receiving the message from \(d\), \(gs\) also chooses its random nonce \(n_{gs}\). Then, \(gs\) signs \"\(n_{d}\) and \(n_{gs}\)\" with the ground station's private key \(sk_{gs}\). We use \(Sig(sk_{gs},n_{d},n_{gs})\) to represent the signed message of \"\(n_{d}\) and \(n_{gs}\)\" with \(sk_{gs}\). \(gs\) sends the message including the signed value \(Sig(sk_{gs},n_{d},n_{gs})\) and the ground station's certificate \(cert_{gs}\).
3. After sending the messages, \(gs\) checks the validity of \(cert_{d}\) received from \(d\). At the same time, \(d\) also checks the validity of \(cert_{gs}\). Then, \(d\) extracts the ground station's public key \(pk_{gs}\) from \(cert_{gs}\) to check the validity of \(Sig(sk_{gs},n_{d},n_{gs})\). As a result, \(d\) has a valid \(n_{gs}\) which will be used for generating the flight session key.
4. \(gs\) extracts the public key of \(pk_{d}\) from \(cert_{d}\). After extracting \(pk_{d}\),\(gs\) generates a pre-master-secret key \(pms\) using a cryptographically secure pseudorandom function and then encrypts \(pms\) with \(pk_{d}\), which resulted in \(Enc(pk_{d},pms)\). Then, \(gs\) signs \(Enc(pk_{d},pms)\) with \(sk_{gs}\) and sends \(Sig(sk_{gs},Enc(pk_{d},pms))\) to \(d\).  
Figure 2: Overall process of SENTINEL.  
As for the last step, \(gs\) concatenates \(n_{d}\) and \(n_{gs}\) denoted as \(n_{d}\parallel n_{gs}\). Here, random nonces are used to prevent replay attacks. Then, \(gs\) computes a flight session key \(k_{d}\) using a key derivation functions (e.g., PBKDF2 [26] with 10,000 iteration) with \(pms\) and \(n_{d}\parallel n_{gs}\) together. At the side of the drone, \(d\) first checks the validity of \(Sig(sk_{gs},Enc(pk_{d},pms))\) with \(pk_{gs}\). If the signature is valid, then \(d\) decrypts \(Enc(pk_{d},pms)\) with its private key \(sk_{d}\). Finally, \(d\) also computes the flight session key \(k_{d}\) using a key derivation function with \(pms\) and \(n_{d}\parallel n_{gs}\), which is the exactly same as the key generation by \(gs\).
6. After completing the generation of the flight session key \(k_{d}\), \(gs\) registers the drone \(d\)'s identity \(id_{d}\), flight session key \(k_{d}\) and flight plan \(fp_{d}\) to the flight information database.  
If we complete this protocol without errors, \(gs\) and \(d\) commonly share a flight session key. We will formally verify the security analysis of this protocol in Section 8.