AnsweredAssumed Answered

Secure bootloading with LPC11U68?

Question asked by Matt Ferrari on Oct 17, 2016
Latest reply on Oct 20, 2016 by jeremyzhou

Regardless of whether you use CRP0, CRP1 or CRP2, anyone can destroy your product simply by erasing all the memory via the built-in bootloader.  There's no way to stop that.  CRP1 promises to protect Sector-0, but not if ALL the memory is erased.  Not secure.  The only way to be secure is to use CRP3, but then you lose the built-in bootloader.  


The only solution appears to be to (a) lock the part down using CRP3 and (b) code your own USB bootloader so that you have the chance to qualify any downloaded code before it is allowed to run.


I have seen many posts about this very concern, but have yet to see a definitive solution for the LPC11U68.


Via the LPCXpresso IDE, many code examples are offered for many peripherals.  Since this LPC11 security issue is such a concern, wouldn't it make sense for NXP to simply provide a code example for a secondary USB bootloader?  Then users could make simple modifications to it to protect certain sectors as needed.


Right now, LPC11 users need to choose between a completely vulnerable solution or lose their bootloading feature.  Not a great choice to have to make!   And many of us don't have the USB expertise to code our own USB bootloader.


Instead of requiring every user to re-invent the wheel, how about if NXP provides a secondary bootloader code example to address this shortcoming.  If there are already solutions, would someone please refer me to them?  Perhaps there IS already a code example available, or an App Note with code in it?  Or maybe someone has already coded it up and is willing to share?  That would be awesome!  If there is anything available, I would appreciate a reference to it.


Any help will be appreciated!  I was planning on CRP1 & Sector-0 to be my solution and was heartbroken when I realized that Sector-0 is in fact not secure with CRP-1 and can be easily blown away.  Some micros have the ability to apply security on a Sector basis, but sadly the LPC11U68 does not seem to have that capability (am I wrong about that?)



Thanks for any help with this issue - I really appreciate it!