Help with security for Ethernet application: secure certificate storage etc on nRF52840

Hi,

Now that I've got my board with an external MAC/phy working with my nRF52840 to do a TLS-secure http_get from google.com, I'm trying to learn about how to do proper security for my IoT device.

I need to figure out how to load (and in the future, update) certificates to my device and store them securely - preferably with EC encryption, and just in general I could use a lesson on how security works with embedded devices these days. What happens when a certificate expires - does every user have to figure out how to hook up a terminal program and put on new certificates, or is there some way to update them remotely via some kind of bootload? I'm afraid I don't even know what questions to ask. I'm an experienced embedded developer but security stuff like this just hasn't come up much until now.

It looks like the nRF52840 does not have a KMU. I did find a graphic in the nRF52840 datasheet v1.7 (Figure 44: Block diagram for CRYPTOCELL) that shows a CRYPTOCELL library interface to the flash - maybe there's a secure way to store things in an encrypted way via CRYPTOCELL?

I'd appreciate both general info about security in IoT devices and specific help with my hardware/application if possible.

Thanks!

Glen

  • Hi, again Glen,

    I heard back from our experts on this, and I realize that in my answer I have assumed that your device will act as both a Server and a Client.

    To give you a bit more accurate information:
    Will your device only act as a client, or server also?

    Regards,
    Sigurd Hellesvik

  • In that case, you do not have a private device-specific certificate to protect.
    The main goal is to prevent the certificate from being overwritten or changed.

    To quote our security expert on this:

    "We have ACL-protectable flash storage on the nRF52840. I would just put the certificates in regular flash (together with the firmware code), and updating it by a firmware upgrade before it expires. If it part of the code image (not generic data storage), you would have the additional assurance that the certificate isn't erased. You will also be sure that only valid new certificates are introduced to the device based on the signature validation of the firmware upgrade, and that is already 'built in'. This means you don't need to do a protocol addition for the updates, which might be very convenient for the end-customer "

    Does this make sense?

    Regards,
    Sigurd Hellesvik

Related