Drola - NamalJayasuriya/drola GitHub Wiki

Introduction

DroLa is a Secured Drone Monitoring System using LORA. Nowadays Drones are flying here and there and this may cause a security and privacy issues. No authority to monitor and and identified the drones who flying and where. There is a significant requirement of a system by authorities to know who are flying and whether they are registered or not. This system should be a secure system otherwise others may take the sensitive details of drones. Then it may cause for a drone hijack. Nowadays there are many kinds of commercial and noncommercial drones, then it required a common way to get drone id and location without accessing to the drone firmware. So we are introducing a simple secured system to monitor drones. This contains separate hardware units for drones which can easily mount on any kind of commercial or non-commercial drones. Then there is a server system and Web base application for authorities to monitor drones.

LoRa for Drone

Lora is a low power communication mechanism which is available long communication range more than 10 meters. It is easy to setup a LoRa WAN and cover a large area. Some countries already have LoRa Networks which covers whole country. So LoRa communication is a deployable solution. We are going to separately mount a module on drone so this also should be powered separately. So power consumption is more considerable and LoRa is a good option for Low power Long Range Communication.

Secure Message protocol

Why AES

To monitor the drones End node modules should transmit their id and location. This is a one way communication. We are using a micro-controller which has a low processing power and low memory, as the central processing unit of end node. So it is hard to run a heavy security protocol like RSA. At the current stage we are not using separate processing unit for security requirements, so AES is the greedy solution with currently available resources. But we can use a dedicated hardware for security purposes as a further development.

Secure message flow

Each drone has a public unique id. At the Base station a private unique key is generate for each drone using base station master key and drone's unique id. Drone sends unique id as plain text and sensitive data as cipher text. Base station can identify the drone using plain texted unique id and then it can decrypt data using the relavant key to the unique id. This provides both encryption and authentication.

Payload structure

We are using Ebyte E45-TTL-100_EN LoRa modules. We configured module as describe in sections "Base station" and "End Node". Ebyte LoRa enables 56 bytes of payload for a packet. So we think to pack the sensitive data to a single packet to improve the efficiency. Packet payload structure is describes as below. packet payload structure

We are using AES 256 CBC to encrypt sensitive data. It allows 32 bytes per a cycle. So we encrypt the last 32 bytes except the unique id. So this takes only one cycle to encrypt the whole packet.

End Point Nodes

This is the Hardware module prototype for the Drola End Node which is designed to mount on a Drone. End Node hardware module This is the Lora module Parameters currently set for the Drola end node, but this is not the optimized parameter selection. End Node Lora Params

This is shematic of the end node circuit design. End Node Shematic

You can get the shematic file for the Drola End Node, designed using eagle here.

you can access the firmware for Drole end node here

Drola Base Station

This is the current parameter settings for the Drola base node LoRa module. But this is not the optimized selection of parameters. Base node Loara params

This the shematic for the circuit design of LoRa Base node. You can just use a TTL module or rs232 module. but note that you need to pull up the M0 and M1 pins for Ebyte Lora Modules or you can use the the customised USB TTL provided with Ebyte LoRa modules. Drola Base schematic

You can get the shematic file for the Drola Base node, designed using eagle here.

Drola base node consist of two servers, a web server and a web-socket server. Web Application is host on web server. Web Application client shows the locations of the drones which send their locations to this system.

API

There is a API with a python web socket server and a python web socket client. Each web client send a request to the web socket server when it starts, then web socket server add them to its connection list. The web socket client receives the drone detail through serial port and decrypts the message using the key relavant to the unique id. Then it send that drone detail as a json object to the web socket server. Web socket server broadcast received drone detail jsons to all the connected web clients.

Drola Demo

At the current stage, this demo uses two end nodes only. Those two noes are placed nearby locations inside the university premises. This snapshot shows that how it receives locations from end nodes and how they are marked on the map. Drola Base schematic

There is a demo video which shows the locations of a flying drone. Demo Video path,
Demo Videos

Further Developments

Use a trusted zone as a key storage for both end nodes and Base stations.

Try to use a dedicated hardware for message encryption at the End Node level.

Implement Key derivation and key transmission(to End node via a wired connection) option to web client.

Extent to send more details like speed of the drone.

Improve web application to make it more user friendly.