IP Library Granted Patent US 11,232,210
Granted Patent B2
US 11,232,210 · App. 16/365,346 · Granted Jan 25, 2022

Secure firmware booting

Inventor: Tino Lin (Irvine, CA)
Assignee: Western Digital Technologies, Inc.
G06F21/572G06F21/575H04L9/0631H04L9/0643
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,232,210
App. No.
16/365,346
Granted
Jan 25, 2022
Kind
B2
Abstract

A direct-attached storage device bridge includes boot loader logic, a read-only memory, and logic to generate hash codes to be compared to determine whether to proceed with booting of the device. The hash codes may result from applying a public key from the read-only memory to decrypt an encrypted hash code into a decrypted hash code, to decrypt encrypted firmware instructions and to calculate a first calculated hash code of the decrypted firmware instructions, and to calculate a second calculated hash code for firmware instructions stored as clear-text. Multiple public keys may be utilized and selected during the boot process. The encryption and decryption may utilize asymmetric and symmetric keys.

Claims (92)

1. A direct-attached storage device bridge comprising:

a memory configured to store a firmware image to boot a device;

a read-only memory configured to store a public key; and

logic to, responsive to powering on the direct-attached storage device bridge:

access the firmware image in the memory, wherein the firmware image comprises:

an encrypted hash code;

encrypted firmware instructions; and

firmware instructions stored as clear-text;

use the public key to decrypt the encrypted hash code into a decrypted hash code;

use the public key to decrypt the encrypted firmware instructions into decrypted firmware instructions;

calculate a first calculated hash code of the decrypted firmware instructions;

calculate a second calculated hash code for the firmware instructions stored as clear-text;

compare the decrypted hash code, the first calculated hash code, and the second calculated hash code;

determine, based on the comparison of the decrypted hash code, the first calculated hash code, and the second calculated hash code, a firmware boot decision; and

boot, based on the firmware boot decision, the device using the clear-text firmware instructions.

2. The direct-attached storage device bridge of claim 1 , further comprising:

a FLASH memory separate from the read-only memory, the FLASH memory configured to store an index; and

logic to apply the index to identify the public key from a plurality of public keys stored in the read-only memory.

3. The direct-attached storage device bridge of claim 1 , wherein the firmware boot decision includes booting the device with no warnings on condition of any one of the following:

the decrypted hash code, the first calculated hash code, and the second calculated hash code are all equal to one another;

the decrypted hash code and the second calculated hash code are equal to one another, the decrypted hash code is not equal to the first calculated hash code, and the second calculated hash code is not equal to the first calculated hash code; and

the decrypted hash code and the first calculated hash code are equal to one another, the decrypted hash code is not equal to the second calculated hash code, and the second calculated hash code is not equal to the first calculated hash code.

4. The direct-attached storage device bridge of claim 1 , wherein the firmware boot decision includes booting the device with a warning on condition that:

the second calculated hash code is equal to the first calculated hash code; and

the decrypted hash code is not equal to the first calculated hash code or equal to the second calculated hash code.

5. The direct-attached storage device bridge of claim 4 , wherein the warning is a warning that the encrypted firmware instructions are compromised.

6. The direct-attached storage device bridge of claim 1 , wherein the firmware boot decision comprises performing a firmware repair on condition that:

the decrypted hash code and the first calculated hash code are equal to one another;

the decrypted hash code is not equal to the second calculated hash code; and

the second calculated hash code is not equal to the first calculated hash code.

7. The direct-attached storage device bridge of claim 1 , wherein the firmware boot decision comprises inhibiting booting the device on condition that:

the decrypted hash code, the first calculated hash code, and the second calculated hash code are all different from one another.

8. A system comprising:

means for storing a firmware image, wherein the firmware image comprises:

an encrypted hash block;

encrypted firmware instructions; and

firmware instructions stored as clear-text;

means for booting a device using the firmware image;

read-only memory configured to store a public key; and

means for validating the firmware image, wherein the means for validating is configured to, responsive to powering on and prior to booting the device:

use the public key to decrypt the encrypted hash block into a decrypted hash code and a symmetric key;

use the symmetric key to decrypt the encrypted firmware instructions into decrypted firmware instructions;

calculate a first calculated hash code of the decrypted firmware instructions;

calculate a second calculated hash code for the firmware instructions stored as clear-text;

compare the decrypted hash code, the first calculated hash code, and the second calculated hash code;

determine, based on the comparison of the decrypted hash code, the first calculated hash code, and the second calculated hash code, a firmware boot decision; and

initiate the means for booting the device based on the firmware boot decision.

9. The system of claim 8 , further comprising:

additional memory means separate from the read-only memory, wherein:

the additional memory means is configured to store an index; and

the means for validating the firmware image is configured to use the index to identify the public key from a plurality of public keys stored in the read-only memory.

10. The system of claim 8 , wherein the means for validating the firmware image is configured to initiate the means for booting the device with no warnings on condition of any one of the following:

the decrypted hash code, the first calculated hash code, and the second calculated hash code are all equal to one another;

the decrypted hash code and the second calculated hash code are equal to one another, the decrypted hash code is not equal to the first calculated hash code, and the second calculated hash code is not equal to the first calculated hash code; and

the decrypted hash code and the first calculated hash code are equal to one another, the decrypted hash code is not equal to the second calculated hash code, and the second calculated hash code is not equal to the first calculated hash code.

11. The system of claim 8 , wherein the means for validating the firmware image is configured to initiate the means for booting the device with a warning on condition that:

the second calculated hash code is equal to the first calculated hash code; and

the decrypted hash code is not equal to the first calculated hash code or equal to the second calculated hash code.

12. The system of claim 11 , wherein the warning is a warning that the symmetric key may be compromised.

13. The system of claim 8 , further comprising:

means for performing a firmware repair, wherein the means for validating the firmware image is configured to initiate the means for performing the firmware repair on condition that:

the decrypted hash code and the first calculated hash code are equal to one another;

the decrypted hash code is not equal to the second calculated hash code; and

the second calculated hash code is not equal to the first calculated hash code.

14. The system of claim 8 , wherein the means for validating the firmware image is configured to inhibit operation of the means for booting the device on condition that:

the decrypted hash code, the first calculated hash code, and the second calculated hash code are all different from one another.

15. A method for booting a device using a firmware image, the method comprising:

storing the firmware image in a storage device, the firmware image comprising:

an encrypted hash code;

encrypted firmware instructions; and

firmware instructions stored as clear-text; and

powering on the storage device and responsive to powering on the storage device, executing the following:

using a public key from a read-only memory to decrypt the encrypted hash code into a decrypted hash code;

using the public key to decrypt the encrypted firmware instructions into decrypted firmware instructions;

calculating a first calculated hash code of the decrypted firmware instructions;

calculating a second calculated hash code for the firmware instructions stored as clear-text;

comparing the decrypted hash code, the first calculated hash code, and the second calculated hash code;

determining, based on the comparison of the decrypted hash code, the first calculated hash code, and the second calculated hash code, a firmware boot decision; and

booting, based on the firmware boot decision, the device using the clear-text firmware instructions.

16. The method of claim 15 , further comprising:

applying an index stored in a FLASH memory separate from the read-only memory to identify the public key from a plurality of public keys stored in the read-only memory.

17. The method of claim 15 , wherein the firmware boot decision includes booting the device with no warnings on condition of any one of the following:

the decrypted hash code, the first calculated hash code, and the second calculated hash code are all equal to one another;

the decrypted hash code and the second calculated hash code are equal to one another, the decrypted hash code is not equal to the first calculated hash code, and the second calculated hash code is not equal to the first calculated hash code; and

the decrypted hash code and the first calculated hash code are equal to one another, the decrypted hash code is not equal to the second calculated hash code, and the second calculated hash code is not equal to the first calculated hash code.

18. The method of claim 15 , wherein the firmware boot decision includes booting the device with a warning on condition that:

the second calculated hash code is equal to the first calculated hash code; and

the decrypted hash code is not equal to the first calculated hash code or equal to the second calculated hash code.

19. The method of claim 15 , further comprising performing a firmware repair on condition that:

the decrypted hash code and the first calculated hash code are equal to one another;

the decrypted hash code is not equal to the second calculated hash code; and

the second calculated hash code is not equal to the first calculated hash code.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2019
From: LIN, TINO
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 049208/0482 →
Continuity (1)
Related Publication 20200311278A1 · Oct 1, 2020
Cited By (2)
US 12,625,967 US 12,706,763