CPC H04L 9/3242 (2013.01) [G06F 21/577 (2013.01); G06F 21/604 (2013.01); H04L 9/0894 (2013.01); H04L 9/3247 (2013.01)] | 21 Claims |
1. A system for verifying integrity of automotive software in a vehicle, the system comprising:
an electronic controller including a memory and an electronic processor configured to:
receive a software image,
store the software image in a plurality of memory cells included in the memory,
organize the plurality of memory cells into rows and columns,
generate a secret key,
determine a plurality of fingerprints such that each of the plurality of fingerprints includes at least one of the memory cells from each of the rows,
calculate reference verification values for the plurality of fingerprints, wherein each of the reference verification values is determined using a one-way cryptographic function with the secret key and data stored in the memory cells included in one of the plurality of fingerprints,
receive a power-up signal,
randomly select one of the plurality of fingerprints after receiving the power-up signal,
retrieve, from the memory, a set of data stored in the memory cells of the selected fingerprint,
calculate a pre-boot verification value for the selected fingerprint using the one-way cryptographic function with the secret key and the retrieved set of data,
compare the pre-boot verification value to the reference verification value for the selected fingerprint,
release a security halt on the software image when the pre-boot verification value matches the reference verification value for the selected fingerprint, and
generate a security warning signal when the pre-boot verification value does not match the reference verification value for the selected fingerprint.
|