Servers by jDrones

MAVLINK Encryption and other Security related aspects of Ardupilot


(Bilal Ahmed) #1

I’m an BS Electrical Engineering student. I’m also studying courses related to Computer Networking and Information Security. I have been working on Ardupilot related projects for two years which include Quadcopters for hobby flying as well as Fixed Wing Drones for Ariel Mapping and Research. I currently working on a VTOL Quadplane build.
I want to work on security aspects of drones for GSOC Project, so i have a few ideas in my mind that i would like to disuss.

First one is Application Layer based encryption of MAVLINK, if we can implement end to end encryption of mavlink on GCS and Autopilot, we do not need specialized telemetry hardware that supports encryption (as purposed encryption of RFD Modems). Then it can work regardless of which telemetry hardware we use. This is a very important aspect, as with current implementation drones can be hacked very simply using a telemetry radio.

Second one is addition of security related features in GCS and Autopilot, such as denying certain critical commands (which can be used for hijacking) when drone is armed, like disabling the radio or changing the channel mapping etc.
We can have several other such features introduced as well for safety and security.

Lastly, if we can possibly detect and protect against GPS Spoofing attacks, which can be used for drone hijacking.

I want to know if Ardupilot Team is interested in these aspects and how can I improve my ideas.

(MagicRuB) #2

You must not have seen MAVLINK v2.0 yet. One major feature is end to end encryption.

(Francisco Ferreira) #3

@MagicRuB MAVLink 2.0 has integrity and authentication but not confidentiality, there’s no encryption.

Not with MAVLink 2.0.

@bilal_tiger I can’t say if there is interest in adding confidentiality (and I have my doubts in a feasible implementation for all boards). Regarding denying specific commands, that would be a good optional feature, but, to me, it looks too easy for GSoC. GPS spoofing protection would be interesting, but can that be done inside ArduPilot? Wouldn’t that need to be inside the GPS?

(Francisco Ferreira) #4