Authentication of the M4 Firmware
Hi There,
before I go into detail regarding my question I´d like to give some background infos. I have an application in mind that seems like a perfect fit for the STM32MP1 as it would enable me to merge a device which is currently split onto two separate PCBs into a one single board.
What´s different in this application is, that I need to be able to autenticate the integrity of the coprocessor firmware and have a mechanism that allows updating of the fw only if a self-adhesive seal is broken, e.g. by sticking it on top of a dipswitch.
So what I´d like to discuss are possible solutions to this whole chain of problems. As far as I understood the documentation and the slides from the hands on workshop, this all has to be implemented into the ssbl (u-boot) as it is the only modifieable piece of software to be run before execution of the coprocessor firmware starts.
I could imagine doing something like signing the M4 firmware by means of async crypto and storing the signatue alongside with the firmware file. When U-Boot starts, it computes the signature and checks it against the existing and denies further operations if they dont´t match.
Updating the FW would consist of uploading a new one to the completely booted system which then moves it to the uboot flash partition and issues a reboot. During that reboot, uboot recognizes the new file and checks weather are specified switch is flipped and replaces the files and the signatures.
What I´d like to know is if somebody here came across a similar problem and maybe found a different and/or better solution to this problem and weather there is anything planned by ST in this direction in the near future.
