IP Library Granted Patent US 11,809,567
Granted Patent B2
US 11,809,567 · App. 17/076,371 · Granted Nov 7, 2023

System and method of authenticating firmware for an information handling system

Inventors: Wei G Liu (Austin, TX); Jayanth Raghuram (Austin, TX)
Assignee: Dell Products L.P.
G06F21/575H04L9/3236H04L9/3247H04L9/3263
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,809,567
App. No.
17/076,371
Granted
Nov 7, 2023
Kind
B2
Abstract

In one or more embodiments, one or more systems, one or more methods, and/or one or more processes may retrieve a first hash value of a key manifest public key from a one time programmable memory medium; determine a second hash value of the key manifest public key; retrieve a third hash value of an initial boot block from the boot policy manifest; determine a fourth hash value of the initial boot block; determine that the third hash matches the fourth hash value; execute the initial boot block; validate subordinate certificates with a root certificate; determine firmware hash values respectively from the firmware volumes; decrypt signatures respectively associated with the firmware volumes to obtain respective decrypted signatures, in which the signatures are decrypted with public encryption keys of the respective subordinate certificates; determine that the firmware hash values respectively match the decrypted signatures; and execute the firmware volumes.

Claims (115)

1. An information handling system, comprising:

at least one processor;

a one time programmable non-volatile memory medium coupled to the at least one processor; and

a memory medium, coupled to the at least one processor, that stores instructions executable by the at least one processor, which when executed by the at least one processor, cause the information handling system to:

retrieve a first hash value of a key manifest public encryption key from the one time programmable non-volatile memory medium;

determine a second hash value of the key manifest public encryption key;

determine that the first hash value matches the second hash value;

after determining that the first hash value matches the second hash value, retrieve a third hash value of an initial boot block from the boot policy manifest;

determine a fourth hash value of the initial boot block;

determine that the third hash matches the fourth hash value;

in response to determining that the third hash matches the fourth hash value, execute the initial boot block;

after executing the initial boot block:

validate a plurality of subordinate certificates, associated with a respective plurality of firmware volumes, with a root certificate;

fetch, for each subordinate certificate of the plurality of subordinate certificates, an object identifier (OID) value, stored by firmware, of a platform entity associated with the subordinate certificate;

compare, for each subordinate certificate of the plurality of subordinate certificates, an OID value of the subordinate certificate with the OID value of the platform entity associated with the subordinate certificate;

verify, based on the comparing, each of the subordinate certificates of the plurality of subordinate certificates;

in response to verifying each of the subordinate certificates of the plurality of subordinate certificates, determine a plurality of firmware hash values respectively from the plurality of firmware volumes;

decrypt a plurality of signatures respectively associated with the plurality of firmware volumes to obtain a respective plurality of decrypted signatures, wherein the plurality of signatures are decrypted with a plurality of public encryption keys of the respective plurality of subordinate certificates;

determine that the plurality of firmware hash values respectively match the plurality of decrypted signatures; and

in response to determining that the plurality of firmware hash values respectively match the plurality of decrypted signatures, execute the plurality of firmware volumes.

2. The information handling system of claim 1 , wherein the instructions further cause the information handling system to:

before validating the plurality of subordinate certificates, associated with the respective plurality of firmware volumes, with the root certificate:

retrieve a fifth hash value of a root certificate public encryption key from the boot policy manifest;

determine a sixth hash value of the root certificate public encryption key; and

determine that the fifth hash matches the sixth hash value.

3. The information handling system of claim 2 , wherein the instructions further cause the information handling system to:

before retrieving the fifth hash value of the root certificate public encryption key from the boot policy manifest:

retrieve a seventh hash value of a boot policy manifest public encryption key from the key manifest;

determine an eighth hash value of the boot policy manifest public encryption key; and

determine that the seventh hash value matches the eighth hash value.

4. The information handling system of claim 1 , further comprising:

a platform controller hub coupled to the at least one processor;

wherein the platform controller hub includes the one time programmable non-volatile memory medium.

5. The information handling system of claim 1 , wherein the instructions further cause the information handling system to:

write the hash value of the key manifest public encryption key to the one time programmable memory medium.

6. The information handling system of claim 1 , wherein the instructions further cause the information handling system to:

validate a plurality of attributes of the plurality of subordinate certificates with a plurality of object identifiers.

7. The information handling system of claim 1 , wherein the instructions further cause the information handling system to:

determine a plurality of public encryption key hash values of a plurality of public encryption keys of the plurality of subordinate certificates;

determine that at least one public encryption key hash value of the plurality of public encryption key hash values matches at least one hash value of a plurality of hash values of a revocation list; and

determine at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list;

wherein, to execute the plurality of firmware volumes, the instructions further cause the information handling system to execute the plurality of firmware volumes without executing at least one firmware volume of the plurality of firmware volumes associated with the at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list.

8. A method, comprising:

retrieving a first hash value of a key manifest public encryption key from a one time programmable memory medium of an information handling system;

determining a second hash value of the key manifest public encryption key;

determining that the first hash value matches the second hash value;

after the determining that the first hash value matches the second hash value, retrieving a third hash value of an initial boot block from the boot policy manifest;

determining a fourth hash value of the initial boot block;

determining that the third hash matches the fourth hash value;

in response to the determining that the third hash matches the fourth hash value, executing the initial boot block;

after the executing the initial boot block:

validating a plurality of subordinate certificates, associated with a respective plurality of firmware volumes, with a root certificate;

fetching, for each subordinate certificate of the plurality of subordinate certificates, an object identifier (OID) value, stored by firmware, of a platform entity associated with the subordinate certificate;

comparing, for each subordinate certificate of the plurality of subordinate certificates, an OID value of the subordinate certificate with the OID value of the platform entity associated with the subordinate certificate;

verifying, based on the comparing, each of the subordinate certificates of the plurality of subordinate certificates;

in response to verifying each of the subordinate certificates of the plurality of subordinate certificates, determining a plurality of firmware hash values respectively from the plurality of firmware volumes;

decrypting a plurality of signatures respectively associated with the plurality of firmware volumes to obtain a respective plurality of decrypted signatures, wherein the plurality of signatures are decrypted with a plurality of public encryption keys of the respective plurality of subordinate certificates;

determining that the plurality of firmware hash values respectively match the plurality of decrypted signatures; and

in response to the determining that the plurality of firmware hash values respectively match the plurality of decrypted signatures, executing the plurality of firmware volumes.

9. The method of claim 8 , further comprising:

before the validating the plurality of subordinate certificates, associated with the respective plurality of firmware volumes, with the root certificate:

retrieving a fifth hash value of a root certificate public encryption key from the boot policy manifest;

determining a sixth hash value of the root certificate public encryption key; and

determining that the fifth hash matches the sixth hash value.

10. The method of claim 9 , further comprising:

before the retrieving the fifth hash value of the root certificate public encryption key from the boot policy manifest:

retrieving a seventh hash value of a boot policy manifest public encryption key from the key manifest;

determining an eighth hash value of the boot policy manifest public encryption key; and

determining that the seventh hash value matches the eighth hash value.

11. The method of claim 8 , wherein a platform controller hub of the information handling system includes the one time programmable memory medium.

12. The method of claim 8 , further comprising:

writing the hash value of the key manifest public encryption key to the one time programmable non-volatile memory medium.

13. The method of claim 8 , further comprising:

validating a plurality of attributes of the plurality of subordinate certificates with a plurality of object identifiers.

14. The method of claim 8 , further comprising:

determining a plurality of public encryption key hash values of a plurality of public encryption keys of the plurality of subordinate certificates;

determining that at least one public encryption key hash value of the plurality of public encryption key hash values matches at least one hash value of a plurality of hash values of a revocation list; and

determining at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list;

wherein the executing the plurality of firmware volumes includes executing the plurality of firmware volumes without executing at least one firmware volume of the plurality of firmware volumes associated with the at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list.

15. A computer-readable non-transitory memory medium that includes instructions that, when executed by at least one processor of an information handling system, cause the information handling system to:

retrieve a first hash value of a key manifest public encryption key from a one time programmable non-volatile memory medium of the information handling system;

determine a second hash value of the key manifest public encryption key;

determine that the first hash value matches the second hash value;

after determining that the first hash value matches the second hash value, retrieve a third hash value of an initial boot block from the boot policy manifest;

determine a fourth hash value of the initial boot block;

determine that the third hash matches the fourth hash value;

in response to determining that the third hash matches the fourth hash value, execute the initial boot block;

after executing the initial boot block:

validate a plurality of subordinate certificates, associated with a respective plurality of firmware volumes, with a root certificate;

fetch, for each subordinate certificate of the plurality of subordinate certificates, an object identifier (OID) value, stored by firmware, of a platform entity associated with the subordinate certificate;

compare, for each subordinate certificate of the plurality of subordinate certificates, an OID value of the subordinate certificate with the OID value of the platform entity associated with the subordinate certificate;

verify, based on the comparing, each of the subordinate certificates of the plurality of subordinate certificates;

in response to verifying each of the subordinate certificates of the plurality of subordinate certificates, determine a plurality of firmware hash values respectively from the plurality of firmware volumes;

decrypt a plurality of signatures respectively associated with the plurality of firmware volumes to obtain a respective plurality of decrypted signatures, wherein the plurality of signatures are decrypted with a plurality of public encryption keys of the respective plurality of subordinate certificates;

determine that the plurality of firmware hash values respectively match the plurality of decrypted signatures; and

in response to determining that the plurality of firmware hash values respectively match the plurality of decrypted signatures, execute the plurality of firmware volumes.

16. The computer-readable non-transitory memory medium of claim 15 , wherein the instructions further cause the information handling system to:

before validating the plurality of subordinate certificates, associated with the respective plurality of firmware volumes, with the root certificate:

retrieve a fifth hash value of a root certificate public encryption key from the boot policy manifest;

determine a sixth hash value of the root certificate public encryption key; and

determine that the fifth hash matches the sixth hash value.

17. The computer-readable non-transitory memory medium of claim 16 , wherein the instructions further cause the information handling system to:

before retrieving the fifth hash value of the root certificate public encryption key from the boot policy manifest:

retrieve a seventh hash value of a boot policy manifest public encryption key from the key manifest;

determine an eighth hash value of the boot policy manifest public encryption key; and

determine that the seventh hash value matches the eighth hash value.

18. The computer-readable non-transitory memory medium of claim 15 , wherein the instructions further cause the information handling system to:

write the hash value of the key manifest public encryption key to the one time programmable memory medium.

19. The computer-readable non-transitory memory medium of claim 15 , wherein the instructions further cause the information handling system to:

validate a plurality of attributes of the plurality of subordinate certificates with a plurality of object identifiers.

20. The computer-readable non-transitory memory medium of claim 15 , wherein the instructions further cause the information handling system to:

determine a plurality of public encryption key hash values of a plurality of public encryption keys of the plurality of subordinate certificates;

determine that at least one public encryption key hash value of the plurality of public encryption key hash values matches at least one hash value of a plurality of hash values of a revocation list; and

determine at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list;

wherein, to execute the plurality of firmware volumes, the instructions further cause the information handling system to execute the plurality of firmware volumes without executing at least one firmware volume of the plurality of firmware volumes associated with the at least one subordinate certificate associated with the at least one hash value of the plurality of hash values of the revocation list.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2020
From: LIU, WEI G.; RAGHURAM, JAYANTH
To: DELL PRODUCTS L.P.
Reel/Frame 054129/0850 →
Continuity (1)
Related Publication 20220121749A1 · Apr 21, 2022