1
$\begingroup$

Working on a boot process where the application image has to be verified before loading it into DRAM.

We found 2 strategies;

  1. RSA-1024, where the private key is secure in premises and the only public key is distributed with out boards. (Is it better if up-gradable to RSA-2048?)

  2. AES-256 with CMAC, same key available both board and premise.

As they are symmetric and asymmetric, it is difficult to compare them directly. Like to understand, which is best suited for binary signature verification during boot process?

$\endgroup$
1
$\begingroup$

The obvious flaw of approach 2. is that you need the same key to sign and verify. This means that whoever reverse-engineers one device and gets out the verification key can now sign their own application images which will be accepted as genuine by other devices.

The standard way of application signing is by using asymmetric algorithms (RSA-2048 is a minimum, or ECDSA-256). That way the device has only a public key (hopefully stored in a read-only memory so that it's not replaceable) and no one is able to sign application images even if devices get reverse engineered.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.