IP Library Granted Patent US 12,105,822
Granted Patent B2
US 12,105,822 · App. 17/901,708 · Granted Oct 1, 2024

Immutable bootloader and firmware validator

Inventor: James Douglas Beecham (Austin, TX)
Assignee: ALTR Solutions, Inc.
G06F21/6218G06F16/9014G06F16/9024H04L9/3239G06F2221/2107
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 12,105,822
App. No.
17/901,708
Filed
Sep 1, 2022
Granted
Oct 1, 2024
Kind
B2
Examiner
VO, TRUONG V
Art Unit
2156
USPC
713/165
Abstract

Provided is a process, including: accessing, with a processor of an embedded computing device, immutable executable code stored in read-only memory of the embedded computing device; executing, with the processor of the embedded computing device, instructions of the immutable executable code that retrieve, from the read-only memory, a network-layer address of a tamper-evident, immutable data repository and an application-layer address of firmware of the embedded computing device stored in the tamper-evident, immutable data repository; executing, with the processor of the embedded computing device, instructions of the immutable executable code that, using the network-layer address and the application-layer address, download the firmware of the embedded computing device from the tamper-evident, immutable data repository; and executing, with the processor of the embedded computing device, instructions of the immutable executable code that store the downloaded firmware in re-writeable memory of the embedded computing device.

Claims (56)

1. A method, comprising:

obtaining, with an embedded computing device, a request to execute firmware of the embedded computing device;

determining, with the embedded computing device, after obtaining the request, a first hash value based on code of the firmware of the embedded computing device, at least some of the code of the firmware being stored in re-writable memory of the embedded computing device;

retrieving, with the embedded computing device, from read-only memory of the embedded computing device, information by which a network address is identifiable;

determining, with the embedded computing device, that the code of the firmware is trusted in response to matching the first hash value with a second hash value corresponding to a trusted version of the code of the firmware, wherein the second hash value or the trusted version of the code of the firmware is rendered tamper-evident by a directed acyclic graph of cryptographic hash pointers accessible, at least in part, via the network address; and

in response to the determination, executing the firmware of the embedded computing device with the embedded computing device.

2. The method of claim 1 , wherein:

the second hash value or the trusted version of the code of the firmware is stored by one or more entries in the directed acyclic graph of cryptographic hash pointers.

3. The method of claim 2 , wherein:

the one or more entries within the directed acyclic graph of cryptographic hash pointers are rendered ramper-evident by internal consistency of the cryptographic hash pointers within the directed acyclic graph.

4. The method of claim 1 , wherein:

the directed acyclic graph of cryptographic hash pointers stores a plurality of records, one or more of the records comprising the second hash value or the trusted version of the code of the firmware.

5. The method of claim 1 , wherein:

the second hash value is based on the trusted version of the code of the firmware.

6. The method of claim 1 , wherein:

the code of the firmware is a firmware image, and

the firmware image or a portion of the firmware image is hashed with a hashing function to determine the first hash value.

7. The method of claim 6 , wherein:

a trusted version of the firmware image or a corresponding portion of the trusted version of the firmware image is hashed with the hashing function to generate the second hash value.

8. The method of claim 1 , wherein:

determining a first hash value comprises determining a first hash digest based on the code of the firmware, and

the second hash value is a second hash digest based on the trusted version of the code of the firmware.

9. The method of claim 8 , wherein determining that the code of the firmware is trusted comprises:

determining that the first hash digest matches the second hash digest.

10. The method of claim 9 , wherein determining that the first hash digest matches the second hash digest comprises:

determining that one or more hashes of the first hash digest match corresponding one or more hashes of the second hash digest.

11. The method of claim 1 , wherein:

matching the first hash value with the second hash value verifies that the code of the firmware has not been subject to tampering.

12. The method of claim 1 , retrieving from read-only memory of the embedded computing device, information by which a network address is identifiable comprises:

accessing the read-only memory of the embedding computing device; and

reading, from the read-only memory, the information by which the network address is identifiable.

13. The method of claim 12 , further comprising:

requesting, based on the network address, the second hash value or the trusted version of the code of the firmware from the directed acyclic graph of cryptographic hash pointers.

14. The method of claim 1 , further comprising:

obtaining, based on the network address, the second hash value or the trusted version of the code of the firmware from the directed acyclic graph of cryptographic hash pointers.

15. The method of claim 1 , further comprising:

retrieving, with the embedded computing device, from the read-only memory of the embedded computing device, information by which one or more records of trusted versions of the code of the firmware are identifiable.

16. The method of claim 15 , further comprising:

requesting, based on the network address, the one or more records from the directed acyclic graph of cryptographic hash pointers to obtain the second hash value or the trusted version of the code of the firmware.

17. The method of claim 1 , wherein:

the embedded computing device is resident to a host system,

the host system comprises memory distinct from the re-writable memory and the read-only memory of the embedded computing device, and

the host system comprises a processor distinct from a processor of the embedded computing device.

18. The method of claim 17 , wherein:

the embedded computing device obtains the request to execute the firmware of the embedded computing device from the host system, and

the embedded computing device executes the firmware of the embedded computing device with the processor of the embedded computing device in response to the determination and the request, after obtaining the request.

19. The method of claim 1 , wherein:

the embedded computing device is one of two or more embedded computing devices resident to a host system.

20. The method of claim 1 , wherein:

the code of the firmware is sub-OS-level executable code comprising one or more of microcode, Unified Extensible Firmware Interface (UEFI) code, or Basic Input Output System (BIOS) code.

21. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

obtaining, with an embedded computing device, a request to execute firmware of the embedded computing device;

determining, with the embedded computing device, after obtaining the request, a first hash value based on code of the firmware of the embedded computing device, at least some of the code of the firmware being stored in re-writable memory of the embedded computing device;

retrieving, with the embedded computing device, from read-only memory of the embedded computing device, information by which a network address is identifiable;

determining, with the embedded computing device, that the code of the firmware is trusted in response to matching the first hash value with a second hash value corresponding to a trusted version of the code of the firmware, wherein the second hash value or the trusted version of the code of the firmware is rendered tamper-evident by a directed acyclic graph of cryptographic hash pointers accessible, at least in part, via the network address; and

in response to the determination, executing the firmware of the embedded computing device with the embedded computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2022
From: BEECHAM, JAMES DOUGLAS
To: ALTR SOLUTIONS, INC.
Reel/Frame 061577/0982 →
Continuity (7)
Continuation 16516152 · Jul 18, 2019
Continuation In Part 16267290 · Feb 4, 2019
Continuation 15845436 · Dec 18, 2017
Continuation 15675490 · Aug 11, 2017
Provisional Application 62699884 · Jul 18, 2018
Provisional Application 62374278 · Aug 12, 2016
Related Publication 20220414252A1 · Dec 29, 2022
Cited By (1)
US 12,711,222