Hi everyone,
I have this problem with the firmware protection method in nRF52833. As far as I know, when using secure boot-loader, it can prevent other programmers to flash their own codes to our products without having the public key as well as using the APPPROTECT register to stop the access to debug port . However, this means that every time i need to update the code I have to do it by erase all the code first then flash the whole thing again. This is a little bit too much for me since we produce thousands of unit and if there is any update, the amount of work to Bluetooth OTA them in the field would be tremendous. Also I want to protect our hardware to be used by others.
So I notice that in ESP32 SoC there is a method to secure firmware by flash encryption that is it store encrypting keys inside the SoC in a one time programing block and then the SoC will decrypt the encrypted firmware to run the program (i have tested it in development mode). (it can be seen here ESP Flash Encryption). So when the key is set, even after a fully erase the flash memory, the eFuse block is till there and other firmware without the key can not be used with the hardware.
So I have 2 questions in mind,
1) Is using Bootloader APP_SIGN_CHECK and APPPROTECT are the only method to protect the firmware? If not can you give me some other methods.
2) Is there a hack or a walk-around to have the equivalent of flash encryption in ESP32? If yes please let me know.
Hope to receive your response soon, good day to you all.
Best regards,
Hoang Ngoc Tu