SLAAE29 January 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1
While the boot image manager provided in the MSPM0 SDK supports both asymmetric and symmetric secure boot, there are trade-offs between the two implementations which should be carefully weighed for a given application. Table 3-1 gives the trade-offs between the two alternatives.
Parameter | Asymmetric (SHA2+ECDSA) | Symmetric (CMAC) |
---|---|---|
Authentication time | Longer, due to software hash computation and public key arithmetic | Shorter, due to simplicity of algorithm and ability to leverage hardware AES acceleration when available |
Code size | Larger, due to SHA and ECDSA algorithms | Smaller, especially if AES acceleration is available on the target device |
Key integrity | Public keys must be provisioned into the device and must be immutable | Shared keys must be provisioned into the device and must be immutable |
Key confidentiality | Public keys have no confidentiality requirement and there is no need for protecting the public key from vulnerabilities in application code | Shared keys must be kept confidential, and should be wrapped when not in use and secured with a static read firewall (if supported by the target device) to protect the shared key from vulnerabilities in application code |
TI recommends the asymmetric implementation in most situations. In cases where code size is limited and/or authentication time must be kept to a minimum, the symmetric implementation may be used, with the trade-off that the shared key must be managed carefully. Not all devices provide secure storage to protect shared symmetric keys from software vulnerabilities.