Hello,
I'm trying to get an idea of the level of security provided by various security features described in the nRF52840 specification and several of the application notes. I'm hoping to get a bit more insight on how some protections work. Though they aren't published often, some other MCU manufacturers have had advertised security features compromised, and I'm trying to get an idea of how susceptible this part might be to similar attacks. My end goal is to determine whether the protections offered by the nRF52840 are sufficient for my application or if I should plan for including additional security ICs.
- What is the actual mechanism that prevents the debugger from accessing the AHB when APPROTECT is enabled? In documentation it appears as a disconnected line. Is it made by some sort of gate, or is it enacted by some microcode on system boot before reaching user bootloader?
- Is there a way to disable the TPIU/ETM/ITM? Can the flash patch and breakpoint unit be disabled? Specification isn't clear on whether disabling debug disables these units as well.
- Is there any conflict with using the MPU and ACL concurrently? It seems they cover RAM and flash respectively, but I'd just like to confirm they won't have issues with one another.
- Are there any in-system options for quickly erasing RAM outside of explicitly overwriting address contents individually?
- Communicating with the CC310 portion of the system using the crypto library is shown to use some amount of RAM. Are those addresses explicitly cleared after use? Do any of them place data on the stack? Is it possible to know which ranges those addresses occupy, so they can be protected with the MPU or otherwise?
- ERASEALL is a mechanism to clear all flash memory on the system, including UICR. I am curious how it actually functions. Are flash banks erased sequentially or all at once? If sequentially, which banks are first? Does ERASEALL explicitly clear RAM as well or is it assumed that RAM is cleared on reset?
I understand that some of the answers to the above may involve trade secrets, but I'm interested in whatever information can be shared publicly. I may also misunderstand how some system features function, so please correct me if so. If nothing else, I hope there can be a good discussion about using nRF products for secure applications.
Thanks,
~Omni