Our medical device has embedded processors and a USB port used for firmware updates and logfile transfers. The usual USB viruses are not a concern (no mechanism to load or execute them, wouldn't run in our unique environment). However a secure upgrade method is required by a regulatory agency, in case of malicious attack by someone with a copy of the source code, build environment and schematics.
In learning about security, our current concept is to use signing and encryption for upgrades and to embed the public key. Then we have to keep the private key private for the product lifetime, hopefully on the order of twenty years.
Is there a standard way to do that? Keep it on a secure build server?