IP Library Granted Patent US 10,776,488
Granted Patent B2
US 10,776,488 · App. 16/139,353 · Granted Sep 15, 2020

Extend root of trust to include firmware of individual components of a device

Inventors: Balasingh P. Samuel (Round Rock, TX); Richard M. Tonry (Austin, TX)
Assignee: Dell Products L.P.
G06F21/572G06F9/4401G06F11/0793G06F21/51G06F21/575G06F21/64
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 10,776,488
App. No.
16/139,353
Granted
Sep 15, 2020
Kind
B2
Abstract

In some examples, a boot process of a computing device may be initiated. The computing device may include a plurality of hardware components. The process may select a component of the plurality of hardware components, read a firmware of the component, calculate a measurement (e.g., hash) of the firmware, and perform a comparison of the measurement with a pre-determined measurement stored in a table of approved firmware. The table may be stored in a basic input output system (BIOS) of the computing device. The process may determine, based on the comparison, that the measurement does not match the pre-determined measurement stored in the table, acquiring a new table from a server, verify an authenticity of the new table, determine that the measurement does not match a current measurement stored in the new table, and perform one or more remedial actions based on a policy.

Claims (121)

1. A method comprising:

initiating, by one or more processors, a boot process of a computing device comprising a plurality of hardware components;

selecting, by the one or more processors, a component of the plurality of hardware components;

reading, by the one or more processors, a firmware of the component;

determining, by the one or more processors, a measurement of the firmware;

performing, by the one or more processors, a comparison of the measurement with a pre-determined measurement stored in a table of approved firmware that is stored in a basic input output system (BIOS) of the computing device;

determining, by the one or more processors and based on the comparison, that the measurement does not match the pre-determined measurement stored in the table of approved firmware;

acquiring, by the one or more processors, a new table of approved firmware from a server;

retrieving, by the one or more processors, a public key stored in the BIOS of the computing device;

determining, by the one or more processors, that the new table is authentic by verifying a digital signature of the new table using the public key;

replacing, by the one or more processors, the table of approved firmware with the new table after determining that the new table is authentic;

determining, by the one or more processors, that the measurement does not match a current measurement stored in the new table;

acquiring, by the one or more processors, a new firmware of the component from the server;

installing, by the one or more processors, the new firmware to replace the firmware of the component; and

performing, by the one or more processors, one or more actions based on a policy.

2. The method of claim 1 , wherein performing the one or more actions based on the policy comprises performing at least one of:

indicating that the firmware of the component is corrupted;

disabling the component and resuming the boot process;

halting the boot process; or

resuming the boot process.

3. The method of claim 1 , further comprising:

reading a second firmware of a second component of the plurality of hardware components;

determining a second measurement of the second firmware;

determining that the second measurement matches a second pre-determined measurement stored in the new table; and

resuming the boot process.

4. The method of claim 1 , wherein:

the public key is stored in a non-volatile random access memory (NVRAM) of the BIOS of the computing device.

5. The method of claim 1 , further comprising:

verifying a digital signature of the pre-determined measurement before performing the comparison of the measurement with the pre-determined measurement stored in the table of approved firmware.

6. The method of claim 1 , further comprising:

determining, from the server, that an updated firmware of a particular component of the plurality of hardware components is available;

downloading the updated firmware from the server;

verifying an authenticity of the updated firmware; and

installing the updated firmware of the particular component.

7. The method of claim 6 , further comprising:

receiving, from the server, an updated measurement associated with the updated firmware; and

modifying the table of approved firmware to include the updated measurement.

8. A computing device comprising:

a basic input output system (BIOS) comprising:

a table of approved firmware; and

a public key;

a plurality of hardware components;

one or more processors; and

one or more non-transitory computer readable media storing instructions executable by the one or more processors to perform operations comprising:

initiating a boot process of the computing device;

selecting a component of the plurality of hardware components;

reading a firmware of the component;

determining a measurement of the firmware;

performing a comparison of the measurement with a pre-determined measurement stored in the table of approved firmware;

determining, based on the comparison, that the measurement does not match the pre-determined measurement stored in the table of approved firmware;

acquiring a new table of approved firmware from a server;

determining that the new table is authentic by verifying, using the public key, a digital signature of the new table;

replacing the table of approved firmware with the new table after determining that the new table is authentic;

determining that the measurement does not match a current measurement stored in the new table;

acquiring, by the one or more processors, a new firmware of the component from the server;

installing, by the one or more processors, the new firmware to replace the firmware of the component; and

performing one or more actions based on a policy.

9. The computing device of claim 8 , wherein performing the one or more actions based on the policy comprises performing at least one of:

indicating that the firmware of the component is corrupted;

disabling the component and resuming the boot process;

halting the boot process; or

resuming the boot process.

10. The computing device of claim 8 , wherein the operations further comprise:

reading a second firmware of a second component of the plurality of hardware components;

determining a second measurement of the second firmware;

determining that the second measurement matches a second pre-determined measurement stored in the new table; and

resuming the boot process.

11. The computing device of claim 8 , wherein the operations further comprise:

verifying, using the public key, a digital signature of the pre-determined measurement.

12. The computing device of claim 8 , wherein the operations further comprise:

determining, from the server, that an updated firmware of a particular component of the plurality of hardware components is available;

downloading the updated firmware from the server;

verifying an authenticity of the updated firmware;

installing the updated firmware of the particular component;

receiving, from the server, an updated measurement associated with the updated firmware; and

modifying the table of approved firmware to include the updated measurement.

13. The computing device of claim 8 , wherein the plurality of hardware components include at least two of:

an imaging device;

a keyboard;

a universal serial bus (USB) controller;

a display device;

a video card;

an audio card;

a hard disk drive;

a solid-state disk (SSD) drive;

a network interface card (NIC).

14. One or more non-transitory computer readable media storing instructions of a basic input output system (BIOS) of a computing device, the instructions executable by one or more processors to perform operations comprising:

initiating a boot process of a computing device comprising a plurality of hardware components;

selecting a component of the plurality of hardware components;

reading a firmware of the component;

determining a measurement of the firmware;

performing a comparison of the measurement with a pre-determined measurement stored in a table of approved firmware that is stored in the BIOS of the computing device;

determining, based on the comparison, that the measurement does not match the pre-determined measurement stored in the table of approved firmware;

acquiring a new table of approved firmware from a server;

retrieving a public key stored in the BIOS of the computing device;

of determining that the new table is authentic by verifying a digital signature of the new table using the public key;

replacing the table of approved firmware with the new table after determining that the new table is authentic;

determining that the measurement does not match a current measurement stored in the new table; acquiring a new firmware of the component from the server;

installing the new firmware to replace the firmware of the component; and

performing one or more actions based on a policy.

15. The one or more non-transitory computer readable media of claim 14 , wherein the one or more actions comprise one or more of:

indicating that the firmware of the component is corrupted;

disabling the component and resuming the boot process;

halting the boot process; or

resuming the boot process.

16. The one or more non-transitory computer readable media of claim 14 , wherein the operations further comprise:

reading a second firmware of a second component of the plurality of hardware components;

determining a second measurement of the second firmware;

determining that the second measurement matches a second pre-determined measurement stored in the new table; and

resuming the boot process.

17. The one or more non-transitory computer readable media of claim 14 , wherein:

the public key is stored in a program hub controller (PCH) of the computing device.

18. The one or more non-transitory computer readable media of claim 14 , wherein the operations further comprise:

verifying a digital signature of the pre-determined measurement before performing the comparison of the measurement with the pre-determined measurement stored in the table of approved firmware.

19. The one or more non-transitory computer readable media of claim 14 , wherein the operations further comprise:

downloading, from the server, an updated firmware of a particular component of the plurality of hardware components;

verifying an authenticity of the updated firmware; and

installing the updated firmware of the particular component.

20. The one or more non-transitory computer readable media of claim 19 , wherein the operations further comprise:

receiving, from the server, an updated measurement associated with the updated firmware; and

modifying the table of approved firmware to include the updated measurement.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2018
From: SAMUEL, BALASINGH P.; TONRY, RICHARD M.
To: DELL PRODUCTS L. P.
Reel/Frame 046949/0816 →
Continuity (1)
Related Publication 20200097658A1 · Mar 26, 2020
Cited By (1)
US 12,204,417