We're in the final stages of launching a moderatley complex IoT solution, and unfortunately there's nothing resembling a security expert on board. But so far everything looks reasonably secured... everything except for the SD-cards in the distributed devices, that is, and I'm debating whether it is worth to encrypt them, or if it's wasted effort. Which is where I need advice from people more experienced than I am.
Basically, if somebody were to steal a device and/or its SD card, he'd have access to the following things:
A root CA certificate common to all devices that is used in a two-way handshake with an MQTT broker. A public and private key used for encrypting that communication, only used by the specific device. These two can be revoked as soon as we know that a device disappeared.
A root CA certificate common to all devices that is used in a two-way handshake with a VPN server, used for remote maintenance. A public and private key used for encrypting communication with the VPN, only used by the specific device and bound to its hostname. Again, these two can be revoked in a heartbeat without changing anything in the rest of the system.
A public SSH-key common to all devices used for remote maintenance.
As far as I understood things, the encryption keys for vpn and mqtt-broker are worthless once revoked, and the public SSH-key does not compromise the security of the other devices even if they share it. What I am unsure about are the CAs... From what I've read they are useless without the private key and valid encryption certificates, but I'd really like to be certain on that point.
Given the situation, what would you recommend? To encrypt or not to encrypt the SD-card? Since this is an already rather computation-heavy IoT solution running mostly on RasPis, I don't want to take the additional overhead of an encrypted partition unless security would really be compromised if somebody got a hold of it.