This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Cybersecurity features for NRF52 chips

Good day!

I'm interesting in ability to support of some required Cybersecurity features by NRF52832 or/and NRF52840:

  1. Is it possible to fully disable JTAG and/or SWD?
  2. Is it possible to implement Flash protection (from rewriting/erasing/readaback)?
  3. Is it possible to implement secure boot? (encrypted bootloader with CRC checking of flash area)

Thanks in advance!

Regards

  • (oh lord, CS buzzword;)

    Hi,

    1. Yes, read about that in the product specification.
    2. Yes, see the link above and this.
    3. What do you mean by that? Neither nRF52832 nor nRF52840 has any HW security feature to protect tempering with the processor/memory/inputs during the run-time so how you would achieve any security during the boot? The only thing you could use is ARM CryptoCell features for HW accelerated crypto in nRF52840 but that won't guarantee that FW you are going to execute is "genuine". You can indeed implement it in your app code (e.g. store some checksum in one-time programmable UICR registers and then as first action verify that flash content - or at least content of some flash pages - matches that). But without any HW protection you cannot be sure that someone haven't hacked flash read/write protection so it has very limited effect...

    Edit 2-july-2017:

    Thanks to Bjørn's confirmation there actually IS Secure Boot possibility with ARM CryptoCell Root-of-Trust feature on nRF52840, more resources on that to be released;) Still to be seen how really temper-resistant this mechanism is.

  • Oh that's ok! Many thanks to you.

    And how about support something like ARM TrustZone? www.arm.com/.../trustzone

    I need to prevent any unauthorized or maliciously modified software from running.

    Does nRF52832 or nRF52840 support something like this? infocenter.arm.com/.../index.jsp

  • Oh yes, TrustZone, it looks so secure on these colorful boxes, doesn't it?:) From my point of view you are putting hope into things which sound better on paper then in the lab during penetration tests. Anyway back to nRF52: no, it doesn't provide any HW routines to verify some memory against some key/signature/checksum. As I said, you could implement something like that in your APP FW but that won't be the first code running on the MCU. To be as close to start-up as possible you could develop your stack which would reside at the beginning of flash (normally there is Nordic stack with their MBR segment) and write this in early code (typically in ASM). But still there are doubts how much is such SW protection valid when the HW itself isn't protected against things like glitch/fault attacks, EM eavesdropping etc...

  • Thank you very much! Your answers are very helpful!

    I also read that nRF52840 has ARM Crypto Cell with secure boot support www.nordicsemi.com/.../ARM-CryptoCell-310

    Also there are few examples in SDK v13 named Secure Boot, I will try to understand them. It is better than nothing :)

  • You are right, there seems to be this phrase however there were no resources to that when I was trying to evaluate back in winter during release time of preview DK. All what I see in nRF5 SDk V13.1.0 is Secure bootloader for Nordic Device Firmware Upgrade, no real secure boot (= attestation of memory and other HW components before any custom SW is run on MCU) as far as I cn see... but I would very much like to learn the details if I'm wrong!

Related