Firmware security and protection
I've developed an IOT device and now I'm concerned about security. Uses ethernet, tls and mqtt to upload cloud data. Checks a directory on the web for firmware updates. The mqtt is well sanitized and i'm not extremely worried about attack vectors coming from a compromised IOT device. I'm more concerned about software IP theft and attacks on the IOT devices themselves that would damage their operation. I’m also not after perfect security, just enough to be an enormous pain in the *** to anyone who gets the idea to try. The data sent and received apart from the firmware itself isn’t private in any sense.
I have not setup or implemented IAP yet for firmware updating so I have some questions about that. Does IAP erase and replace the entire firmware or only the piece after where IAP runs? Can I have a persistent key saved on the chip [stm32f427] that survives the IAP so that firmware would not have to ship with it? All devices have sd cards.
Delivering the firmware unencrypted is not an option because it could include credentials. There are other layers of defence that would make leaked credentials not critical but annoying. So, some sort of encryption is required for the firmware as that seems the easiest attack vector [at least what I would use]. Firmware is not always delivered over ethernet and in some case would be delivered by sd card. So, protecting the key used to unpack the firmware seems to be the game at foot I keep coming back to. I know this would be easier if I moved over the stm32L4 and that isn’t off the cards here if I MUST. The budget is there to add a crypto chip like the following and this is where I’m leaning towards. https://www.digikey.com.au/product-detail/en/microchip-technology/ATECC608A-SSHCZ-T/ATECC608A-SSHCZ-TCT-ND/7928237
Can someone please explain how one would use such a chip to implement protection of the firmware during the IAP procedure. Or am I totally off the reservation because data can be sniffed on the i2c bus. I might add that the quantities are low, and we handle loading the firmware for every unit shipped.
I know this is a lot to ask. I’ve been reading for days and can’t get my head completely around it. Thanks in advance.
