IP Library › Granted Patent US 11,956,369
Granted Patent B2
US 11,956,369 · App. 17/388,940 · Granted Apr 9, 2024

Accelerated verification of automotive software in vehicles

Inventor: Robert M. Kaster (White Lake, MI)
Assignee: Robert Bosch GmbH
H04L9/3242G06F21/577G06F21/604H04L9/0894H04L9/3247
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,956,369
App. No.
17/388,940
Granted
Apr 9, 2024
Kind
B2
Abstract

Systems, methods, and vehicles for verifying integrity of automotive software. In one implementation, an electronic processor is configured to receive a power-up signal and randomly select one of a plurality of fingerprints. The electronic processor is also configured to retrieve a set of data stored in the memory cells of the selected fingerprint. The electronic processor is further configured to calculate a pre-boot verification value for the selected fingerprint using a one-way cryptographic function with a secret key and the retrieved set of data. The electronic processor is also configured to compare the pre-boot verification value to a reference verification value for the selected fingerprint. The electronic processor is further configured to release a security halt on the software image when the pre-boot verification value matches the reference verification value for the selected fingerprint.

Claims (66)

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.

2. The system of claim 1 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of fingerprints includes all of the memory cells from one of the columns.

3. The system of claim 1 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of fingerprints includes one of the memory cells from at least two of the columns.

4. The system of claim 1 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of memory cells are included in at least one of the plurality of fingerprints.

5. The system of claim 1 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that a sampling variation is less than a threshold.

6. The system of claim 5 , wherein the sampling variation includes at least one of an oversampling, skipping, or hybrid approach.

7. The system of claim 1 , wherein the electronic processor is further configured to determine whether the total number of memory cells in each of the rows is less than or equal to a minimum compromised code length.

8. The system of claim 1 , wherein the one-way cryptographic function includes at least one of a message authentication code or a hash.

9. The system of claim 1 , wherein the electronic processor is further configured to:

store the secret key in a protected portion of the memory, and store the reference verification values for the plurality of fingerprints in an unprotected portion of the memory.

10. A method for verifying integrity of automotive software in a vehicle, the method comprising:

receiving a software image at an electronic controller of the vehicle;

storing the software image in a plurality of memory cells;

organizing the plurality of memory cells into rows and columns;

generating a secret key;

determining 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;

calculating 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;

receiving a power-up signal;

randomly selecting one of the plurality of fingerprints after receiving the power-up signal;

retrieving a set of data stored in the memory cells of the selected fingerprint;

calculating 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;

comparing the pre-boot verification value to the reference verification value for the selected fingerprint;

releasing a security halt on the software image when the pre-boot verification value matches the reference verification value for the selected fingerprint; and

generating a security warning signal when the pre-boot verification value does not match the reference verification value for the selected fingerprint.

11. The method of claim 10 , wherein the plurality of fingerprints is further determined such that each of the plurality of fingerprints includes all of the memory cells from one of the columns.

12. The method of claim 10 , wherein the plurality of fingerprints is further determined such that each of the plurality of fingerprints includes one of the memory cells from at least two of the columns.

13. The method of claim 10 , wherein the plurality of fingerprints is further determined such that each of the plurality of memory cells are included in at least one of the plurality of fingerprints.

14. The method of claim 10 , wherein the plurality of fingerprints is further determined such that a sampling variation is less than a threshold.

15. The method of claim 10 , further comprising:

determining whether the total number of memory cells in each of the rows is less than or equal to a minimum compromised code length.

16. The method of claim 10 , wherein the one-way cryptographic function includes at least one of a message authentication code or a hash.

17. The method of claim 10 , further comprising:

storing the secret key in a protected memory; and

storing the reference verification values for the plurality of fingerprints in an unprotected memory.

18. A vehicle 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 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.

19. The vehicle of claim 18 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of fingerprints includes all of the memory cells from one of the columns.

20. The vehicle of claim 18 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of fingerprints includes one of the memory cells from at least two of the columns.

21. The vehicle of claim 18 , wherein the electronic processor is further configured to determine the plurality of fingerprints such that each of the plurality of memory cells are included in at least one of the plurality of fingerprints.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2021
From: KASTER, ROBERT M
To: ROBERT BOSCH GMBH
Reel/Frame 057031/0636 →
Continuity (2)
Provisional Application 63065419 · Aug 13, 2020
Related Publication 20220052854A1 · Feb 17, 2022