Hi Linux / David,
I suggest to sift again through the sMAVLink RFC which was discussed in the DroneCode TSC meeting:
The proposal there is an AES-GCM appended to each message, so essentially a cryptographically complete solution similar to what you’re proposing David.
@Linus: The solution you’re proposing is of course the easy way out - it essentially means deferring the issue to the transport layer. There are however a few issues with that:
- The current control model does not involve any authentication. Its like having no password for your email account / computer / bank account and just relying on the transport layer to make it secure. This however poses several issues:
a) If your network is compromised, the attacker gains control over your drone. With more drones on the internet, that is worrisome.
b) If the complete security relies on the transport layer, any party offering the transport layer becomes liable for the safety of the drone. This yields some interesting questions which I think will end up requiring a solution.
- It would leave tens of thousands of drones sold last year and this year vulnerable. Of course at the current pace of the technological development these will be flushed at some point out of use. But until then they remain at risk. A safe point to stop supporting the current radio generation in terms of security would be when the next generation is commonly available, which I don’t see quite happening yet.
All in all having some sort of reasonably safe authentication in the core flight control layer would allow us to simplify things on the higher layers, in particular on companion computers. Similar to how apps authenticate against the OS app armor layer on mobile phones it would allow to build some basic security / isolation into the system. Of course there is always the question where to set the layer for an API cut. Given that we can address several issues at once it seems worth a try though.
-Lorenz