Secure firmware booting
AssigneeWestern Digital Technologies, Inc.
InventorTino Lin
Life of this patent
Estimating the term…
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.
Claims19
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.
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.
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.
Dependencies are inferred from the claim text.