Firmware verified boot
First Claim
1. A computer-implemented boot process for a computing system, the boot process comprising:
- verifying, by a processor of the computing system, a first encrypted signature corresponding with a first portion of a read-write portion of firmware of the computing system using a first public-key and a first cryptographic hash algorithm, and halting the boot process if the verification of the first encrypted signature fails;
verifying, by the processor, that a key-version of a second public-key is greater than or equal to a corresponding highest key-version observed by the computing system, and halting the boot process if the key-version of the second public-key is less than the highest key-version;
verifying, by the processor, a second encrypted signature corresponding with a second portion of the read-write portion of the firmware using the second public-key and a second cryptographic hash algorithm, and halting the boot process if the verification of the second encrypted signature fails;
verifying, by the processor, a third encrypted signature corresponding with a third portion of the read-write portion of the firmware using the second public-key and the second cryptographic hash algorithm, and halting the boot process if the verification of the third encrypted signature fails;
verifying, by the processor, a fourth encrypted signature corresponding with a first portion of an operating-system kernel using the second public-key and the second cryptographic hash algorithm, and halting the boot process if the verification of the fourth encrypted signature fails; and
verifying, by the processor, a fifth signature corresponding with a second portion of the operating-system kernel using a third public-key and a third cryptographic hash algorithm, and halting the boot process if the verification of the fifth encrypted signature fails.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented method for verifying a boot process of a computing system includes reading, by the computing system during the boot process, a header section of a read-write portion of firmware of the computing system. The method further includes generating, using a first cryptographic hash algorithm, a message digest corresponding with the header, and decrypting, using a first public-key, an encrypted signature corresponding to the header. The method further includes comparing the message digest corresponding with the header and the decrypted signature corresponding to the header. In the event the message digest corresponding to the header and the decrypted signature corresponding to the header match, the boot process is continued. In the event the message digest corresponding to the header and the decrypted signature corresponding to the header do not match, the boot process is halted.
-
Citations
31 Claims
-
1. A computer-implemented boot process for a computing system, the boot process comprising:
-
verifying, by a processor of the computing system, a first encrypted signature corresponding with a first portion of a read-write portion of firmware of the computing system using a first public-key and a first cryptographic hash algorithm, and halting the boot process if the verification of the first encrypted signature fails; verifying, by the processor, that a key-version of a second public-key is greater than or equal to a corresponding highest key-version observed by the computing system, and halting the boot process if the key-version of the second public-key is less than the highest key-version; verifying, by the processor, a second encrypted signature corresponding with a second portion of the read-write portion of the firmware using the second public-key and a second cryptographic hash algorithm, and halting the boot process if the verification of the second encrypted signature fails; verifying, by the processor, a third encrypted signature corresponding with a third portion of the read-write portion of the firmware using the second public-key and the second cryptographic hash algorithm, and halting the boot process if the verification of the third encrypted signature fails; verifying, by the processor, a fourth encrypted signature corresponding with a first portion of an operating-system kernel using the second public-key and the second cryptographic hash algorithm, and halting the boot process if the verification of the fourth encrypted signature fails; and verifying, by the processor, a fifth signature corresponding with a second portion of the operating-system kernel using a third public-key and a third cryptographic hash algorithm, and halting the boot process if the verification of the fifth encrypted signature fails. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system comprising one or more machine readable storage media having instructions stored thereon, the instructions, when executed by a processor of the computing system, cause the computing system to:
-
verify a first encrypted signature corresponding with a first portion of a read-write portion of firmware of the computing system using a first public-key and a first cryptographic hash algorithm, and halt the boot process if the verification of the first encrypted signature fails; verify that a key-version of a second public-key is greater than or equal to a corresponding highest key-version observed by the computing system, and halt the boot process if the key-version of the second public-key is less than the highest key-version; verify a second encrypted signature corresponding with a second portion of the read-write portion of the firmware using the second public-key and a second cryptographic hash algorithm, and halt the boot process if the verification of the second encrypted signature fails; verify a third encrypted signature corresponding with a third portion of the read-write portion of the firmware using the second public-key and the second cryptographic hash algorithm, and halt the boot process if the verification of the third encrypted signature fails; verify a fourth encrypted signature corresponding with a first portion of an operating-system kernel using the second public-key and the second cryptographic hash algorithm, and halt the boot process if the verification of the fourth encrypted signature fails; and verify a fifth encrypted signature corresponding with a second portion of an operating-system kernel using a third public-key and a third cryptographic hash algorithm, and halt the boot process if the verification of the fifth encrypted signature fails. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented boot process for a computing system, the boot process comprising:
-
verifying, by a processor of the computing system, an encrypted signature corresponding with a first portion of a read-write portion of firmware of the computing system using a first public-key and a first cryptographic hash algorithm and halting the boot process if the verification of the encrypted signature corresponding with the first portion of the read only firmware fails; verifying, by the processor, that a key-version of a second public-key is greater than or equal to a corresponding highest key-version observed by the computing system and halting the boot process if the key-version of the second public-key is less than the highest key-version; verifying, by the processor, an encrypted signature corresponding with a second portion of the read-write portion of the firmware using the second public-key and a second cryptographic hash algorithm and halting the boot process if the verification of the encrypted signature corresponding with the second portion of the read-write firmware fails; verifying, by the processor, an encrypted signature corresponding with a first portion of an operating-system kernel using the second public-key and the second cryptographic hash algorithm and halting the boot process if the verification of the encrypted signature corresponding with the first portion of the operating-system kernel fails; and verifying, by the processor, an encrypted signature corresponding with a second portion of an operating-system kernel using a third public-key and a third cryptographic hash algorithm and halting the boot process if the verification of the encrypted signature corresponding with the second portion of the operating-system kernel fails. - View Dependent Claims (20, 21, 22)
-
-
23. A computer-implemented boot process for a computing system, the boot process comprising:
-
verifying, by a processor of the computing system, a first encrypted signature corresponding with a first portion of a read-write portion of firmware of the computing system using a first public-key and a first cryptographic hash algorithm; if the verification of the first encrypted signature is successful, verifying, by the processor, that a key-version of a second public-key is greater than or equal to a corresponding highest key-version observed by the computing system and halting the boot process if the key-version of the second public-key is less than the highest key-version; if the key-version of the second public-key is greater than or equal to the highest key-version, verifying, by the processor, a second encrypted signature corresponding with a second portion of the read-write portion of the firmware using the second public-key and a second cryptographic hash algorithm; if the verification of the second encrypted signature is successful, verifying, by the processor, a third encrypted signature corresponding with a third portion of the read-write portion of the firmware using the second public-key and the second cryptographic hash algorithm; if the verification of the third encrypted signature is successful, verifying, by the processor, an encrypted signature corresponding with a first portion of an operating-system kernel using the second public-key and the second cryptographic hash algorithm; and if the verification of the fourth encrypted signature is successful, verifying, by the processor, an encrypted signature corresponding with a second portion of an operating-system kernel using a third public-key and a third cryptographic hash algorithm. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
Specification