IP Library › Granted Patent US 12,455,969
Granted Patent B2
US 12,455,969 · App. 18/477,498 · Granted Oct 28, 2025

Validating read-only portions of firmware or a downloaded image thereof by boot firmware validated by secure flash memory

Inventors: Cheng-Yi Hung (Valencia, PA); Vimalraj Vasudevan Thekkoot (San Jose, CA); Rochak Chadha (Pittsburgh, PA); Gregory J. Zavertnik (Mountain House, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/575G06F2221/033
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,455,969
App. No.
18/477,498
Granted
Oct 28, 2025
Kind
B2
Abstract

Techniques are described herein in which boot firmware validated by secure flash memory validates read-only portions of firmware stored by the firmware or a downloaded image of the read-only portions. The secure flash memory validates a portion of the firmware, which includes the boot firmware and a reference hash of the read-only portions, by comparing a calculated hash of the portion and the reference hash of the portion. The boot firmware initiates a boot of the firmware and validates the read-only portions (or the downloaded image of the read-only portions) by comparing a calculated hash of the read-only portions (or a calculated hash of the downloaded image) and the reference hash of the read-only portions. The boot firmware completes the boot of the firmware based at least on the read-only portions (or the downloaded image) being validated.

Claims (72)

1. A computing system comprising:

a secure flash memory that stores firmware that comprises boot firmware, a plurality of read-only portions, and a reference hash of the plurality of read-only portions, wherein the secure flash memory performs the following operations:

calculate a hash of a designated portion of the firmware to provide a calculated hash of the designated portion, the designated portion of the firmware comprising the boot firmware and the reference hash of the plurality of read-only portions; and

validate the designated portion of the firmware by comparing the calculated hash of the designated portion and a reference hash of the designated portion that is securely stored in the secure flash memory;

a device that executes the firmware, wherein the boot firmware performs the following operations:

based at least on the designated portion of the firmware being validated, initiate a boot of the firmware by calculating a hash of the plurality of read-only portions to provide a calculated hash of the plurality of read-only portions;

based at least on the designated portion of the firmware being validated, validate the plurality of read-only portions by comparing the calculated hash of the plurality of read-only portions and the reference hash of the plurality of read-only portions; and

based at least on the plurality of read-only portions being validated, complete the boot of the firmware; and

host software that, when executed, performs the following operations:

change a state of the designated portion of the firmware from a read-only state in which designated portion is not capable of being updated by the firmware to a writeable state in which the designated portion is capable of being updated by the firmware; and

based at least on the state of the designated portion of the firmware being changed from the read-only state to the writable state, update the designated portion of the firmware.

2. The computing system of claim 1 , further comprising:

host software that provisions the secure flash memory by enabling a secure functionality.

3. The computing system of claim 1 , wherein the designated portion of the firmware is included in a manifest that is signed with a signing key of a trusted entity.

4. The computing system of claim 3 , wherein the manifest includes metadata that specifies a size of the designated portion of the firmware and a start address of the designated portion.

5. The computing system of claim 1 , wherein the secure flash memory being powered on triggers the secure flash memory to calculate the hash of the designated portion of the firmware.

6. The computing system of claim 1 , wherein a reboot of the device on which the firmware executes triggers the boot firmware to calculate the hash of the plurality of read-only portions.

7. The computing system of claim 1 , wherein the boot firmware causes a kernel of a device on which the firmware executes to perform the following operations:

initiate a boot of a root file system;

mount the root file system; and

call an application, which launches other applications, on the root file system.

8. A method implemented by a computing system, the method comprising:

storing, by a secure flash memory in the computing system, firmware that comprises boot firmware, a plurality of read-only portions, and a reference hash of the plurality of read-only portions;

validating, by the secure flash memory, a designated portion of the firmware, which comprises the boot firmware and the reference hash of the plurality of read-only portions, based at least on a calculated hash of the designated portion and a reference hash of the designated portion that is securely stored in the secure flash memory being same;

based at least on the designated portion of the firmware being validated, initiating, by the boot firmware, a boot of the firmware by unsuccessfully attempting to validate the plurality of read-only portions based at least on a calculated hash of the plurality of read-only portions and the reference hash of the plurality of read-only portions not being same;

based at least on validation of the plurality of read-only portions being unsuccessfully attempted, downloading, by the boot firmware, an image of the plurality of read-only portions from a known server to main memory of a device on which the firmware executes;

validating, by the boot firmware, the image of the plurality of read-only portions based at least on a calculated hash of the image and the reference hash of the plurality of read-only portions being same;

based at least on the image of the plurality of read-only portions being validated, replacing, by the boot firmware or runtime firmware, the plurality of read-only portions in the firmware with the image of the plurality of read-only portions; and

based at least on the image of the plurality of read-only portions being validated, completing, by the boot firmware, the boot of the firmware.

9. The method of claim 8 , further comprising:

based at least on validation of the plurality of read-only portions being unsuccessfully attempted, triggering, by the boot firmware, a warning that at least the subset of the plurality of read-only portions is not valid by causing a light-emitting diode to blink.

10. The method of claim 8 , further comprising:

based at least on validation of the plurality of read-only portions being unsuccessfully attempted, discontinuing, by the boot firmware, the boot of the firmware;

wherein downloading the image of the plurality of read-only portions is performed based at least on the boot of the firmware being discontinued.

11. The method of claim 8 , further comprising:

provisioning, by host software, the secure flash memory by enabling a secure functionality.

12. The method of claim 8 , further comprising:

calculating, by the secure flash memory, the hash of the designated portion of the firmware based at least on the secure flash memory being powered on.

13. The method of claim 8 , further comprising:

calculating, by the boot firmware, the hash of the plurality of read-only portions based at least on a reboot of the device on which the firmware executes.

14. The method of claim 8 , further comprising:

causing, by the boot firmware, a kernel of a device on which the firmware executes to perform the following operations:

initiating a boot of a root file system;

mounting the root file system; and

calling an application, which launches other applications, on the root file system.

15. The method of claim 8 , wherein replacing the plurality of read-only portions in the firmware with the image comprises:

based at least on the image of the plurality of read-only portions being validated, replacing, by the boot firmware, the plurality of read-only portions in the firmware with the image of the plurality of read-only portions that is validated by the boot firmware; and

wherein completing the boot of the firmware comprises:

based at least on the plurality of read-only portions in the firmware being replaced with the image of the plurality of read-only portions that is validated by the boot firmware, completing, by the boot firmware, the boot of the firmware.

16. The method of claim 5 , further comprising:

based at least on the image of the plurality of read-only portions being validated, booting, by the boot firmware, the image of the plurality of read-only portions, which is downloaded from the known server to the main memory of the device, from a random- access memory;

wherein completing the boot of the firmware comprises:

based at least on the image of the plurality of read-only portions being booted from the random-access memory, completing, by the boot firmware, the boot of the firmware; and

wherein replacing the plurality of read-only portions in the firmware with the image comprises:

based at least on the boot of the firmware being completed, replacing, by the runtime firmware, the plurality of read-only portions in the firmware with the image of the plurality of read-only portions via a firmware update process.

17. A computer program product comprising a computer-readable storage medium having instructions recorded thereon for enabling a processor-based system to perform operations, the operations comprising:

storing, by a secure flash memory in the processor-based system, firmware that comprises boot firmware, a plurality of read-only portions, and a reference hash of the plurality of read-only portions;

calculating, by the secure flash memory, a hash of a designated portion of the firmware to provide a calculated hash of the designated portion, the designated portion of the firmware comprising the boot firmware and the reference hash of the plurality of read-only portions;

validating, by the secure flash memory, the designated portion of the firmware by comparing the calculated hash of the designated portion and a reference hash of the designated portion that is securely stored in the secure flash memory;

based at least on the designated portion of the firmware being validated, initiating, by the boot firmware, a boot of the firmware by calculating a hash of the plurality of read-only portions to provide a calculated hash of the plurality of read-only portions;

based at least on the designated portion of the firmware being validated, validating, by the boot firmware, the plurality of read-only portions by comparing the calculated hash of the plurality of read-only portions and the reference hash of the plurality of read-only portions;

based at least on the plurality of read-only portions being validated, completing, by the boot firmware, the boot of the firmware;

changing, by host software executed by the processor-based system, a state of the designated portion of the firmware from a read-only state in which designated portion is not capable of being updated by the firmware to a writeable state in which the designated portion is capable of being updated by the firmware; and

based at least on the state of the designated portion of the firmware being changed from the read-only state to the writable state, updating, by the host software, the designated portion of the firmware.

18. The computer program product of claim 17 , wherein the operations further comprise:

causing, by the boot firmware, a kernel of a device on which the firmware executes to perform the following operations:

initiating a boot of a root file system;

mounting the root file system; and

calling an application, which launches other applications, on the root file system.

19. The computer program product of claim 17 , wherein the designated portion of the firmware is included in a manifest that is signed with a signing key of a trusted entity; and

wherein the manifest includes metadata that specifies a size of the designated portion of the firmware and a start address of the designated portion.

20. The computer program product of claim 17 , wherein the secure flash memory being powered on triggers the secure flash memory to calculate the hash of the designated portion of the firmware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2023
From: HUNG, CHENG-YI; THEKKOOT, VIMALRAJ VASUDEVAN; CHADHA, ROCHAK; ZAVERTNIK, GREGORY J.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065068/0476 →
Continuity (1)
Related Publication 20250111056A1 · Apr 3, 2025
References Cited (16)
US 10592669B2 · Gunti · 2020 [cited by applicant]
US 11003780B2 · Liu · 2021 [cited by applicant]
US 20140250291A1 · Adams · 2014 [cited by examiner]
US 20160378990A1 · Goodman et al. · 2016 [cited by applicant]
US 20170085383A1 · Rao et al. · 2017 [cited by applicant]
US 20190073478A1 · Khessib et al. · 2019 [cited by applicant]
US 20190258542A1 · Chaiken · 2019 [cited by examiner]
US 20200042710A1 · Liu et al. · 2020 [cited by applicant]
US 20210019419A1 · Mathane · 2021 [cited by examiner]
US 20210216638A1 · Park · 2021 [cited by examiner]
US 20220207145A1 · Young · 2022 [cited by examiner]
US 20220207474A1 · Young · 2022 [cited by examiner]
US 20220327215A1 · Preimesberger · 2022 [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/043121, mailed on Nov. 29, 2024, 11 pages. [cited by applicant]
“Create Key—Create Key”, Retrieved from: https://learn.microsoft.com/en-US/rest/api/keyvault/keys/create-key/create-key?tabs=HTTP, Retrieved On: Jun. 20, 2023, 13 Pages. [cited by applicant]
“sign—sign”, Retrieved from: https://learn.microsoft.com/en-us/rest/api/keyvault/keys/sign/sign?tabs=HTTP, Retrieved On: Jun. 20, 2023, 6 Pages. [cited by applicant]