Method and apparatus for secure system boot

US11263326B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11263326-B2
Application numberUS-201715721365-A
CountryUS
Kind codeB2
Filing dateSep 29, 2017
Priority dateJun 2, 2017
Publication dateMar 1, 2022
Grant dateMar 1, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method and apparatus for performing a secure boot of a computer system is disclosed. A computer system according to the disclosure includes an auxiliary processor and a main processor. The boot process includes initially booting the auxiliary processor. The auxiliary processor includes a non-volatile memory storing boot code for the main processor. The auxiliary processor may perform a verification of the boot code. Subsequent to verifying the boot code, the main processor may be released from a reset state. Once the main processor is no longer in the reset state, the boot code may be provided thereto. Thereafter, the boot procedure may continue with the main processor executing the boot code.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: booting a first operating system on a first processor of a computer system, wherein the booting includes loading a kernel and drivers of the first operating system; performing, using the first processor, a verification of boot code for a second processor of the computer system, by the first processor: accessing a file that includes a signature, a hash of the boot code, data corresponding to a unique identifier that is included in the first processor and that is unique to the computer system; determining whether the data corresponds to the unique identifier that is included in the first processor; determining whether the boot code corresponds to the hash of the boot code; and verifying the signature; subsequent to the verification, releasing the second processor from a reset state; providing the boot code to the second processor; and the second processor executing the boot code to boot a second operating system, wherein the second operating system is distinct from the first operating system. 2. The method of claim 1 , wherein the data is a hash of the unique identifier and included with the boot code, and wherein the verification comprises: creating a hash of the unique identifier included in the first processor; and comparing the hash included with the boot code and the created hash. 3. The method of claim 1 , wherein the boot code is stored in a non-volatile memory implemented on the first processor, and wherein the boot code comprises code conforming to a unified extensible firmware interface (UEFI) specification. 4. The method of claim 1 , further comprising: a system management circuit implemented in the first processor providing an indication that the boot code has been verified; and a platform controller hub circuit of the computer system, responsive to receiving the indication, retrieving the boot code and providing the boot code to the second processor. 5. The method of claim 1 , wherein the file includes the hash of the boot code, a hash of the unique identifier, and a signature of a manufacturer. 6. The method of claim 5 , wherein the file is associated with a corresponding one of a plurality of operating systems each having a corresponding file, and wherein the method further comprises the second processor executing instructions to load an operating system corresponding to the file. 7. The method of claim 1 , further comprising: the first processor performing the verification of the boot code prior to the loading of the kernel and the drivers of the first operating system; and the second processor beginning execution of the boot code prior to completion of the booting of the first operating system on the first processor. 8. The method of claim 1 , further comprising: performing one or more verifications, including the verification of the boot code; responsive to failing one of the one or more verifications, loading a recovery operating system; obtaining a signed file via a network connection while operating in the recovery operating system; performing a re-verification using the signed file; and continuing a boot procedure for the computer system responsive to completing the re-verification. 9. The method of claim 1 , further comprising: the first processor enforcing a security policy controlling access, by the second processor, to one or more variables associated with the boot code and stored in a non-volatile memory accessible to the first processor. 10. The method of claim 9 , wherein the security policy controls authorization to change the one or more variables stored in the non-volatile memory. 11. A computer system, comprising: a main processor; an auxiliary processor including a first identifier that is unique to the computer system; and non-volatile memory storing boot code and a file that includes a hash of the boot code, second identifier, and a signature; wherein, during a boot process, the auxiliary processor is configured to: boot a first operating system on the auxiliary processor including loading a kernel and drivers on the auxiliary processor, wherein the boot code is executable to boot a second operating system distinct from the first operating system; perform a verification of the boot code that includes verifying: the boot code against the hash of the boot code; the first identifier against the second identifier; and the signature; and responsive to the verification, cause the main processor to be released from a reset state and the boot code to be provided to the main processor; and wherein the main processor is configured to execute the boot code to continue the boot process. 12. The computer system of claim 11 , wherein the auxiliary processor includes the non-volatile memory having the boot code for the main processor, and wherein the second identifier is a hash of the first identifier or is the first identifier. 13. The computer system of claim 11 , wherein the auxiliary processor includes a system management circuit, and wherein the computer system further comprises a platform controller hub coupled to each of the auxiliary processor and the main processor, wherein the system management circuit is configured to provide an indication that the boot code has been verified, and wherein the platform controller hub is configured to, responsive to receiving the indication, provide the boot code to the main processor. 14. The computer system of claim 11 , wherein the non-volatile memory is configured to store one or more files each including a hash used to verify the boot code, wherein each of the files includes a payload section comprising one or more objects and binary information, and a manifest section that includes information used by the auxiliary processor to verify the payload section. 15. The computer system of claim 11 , wherein the auxiliary processor is configured to enforce a security policy controlling access to one or more variables associated with the boot code and stored in the non-volatile memory, wherein controlling access to the one or more variables includes controlling authorization to change the one or more variables. 16. The computer system of claim 11 , wherein the main processor is configured to, during the boot process, execute code to perform one or more verifications subsequent to the auxiliary processor verifying the boot code, and, wherein responsive to failure of a particular verification in the computer system, obtain a signed file via a network connection to enable completion of the particular verification. 17. A method comprising: storing, in a computer system, a file that includes a hash of boot code, data corresponding to a system identifier that is unique to the computer system, and a signature; beginning performance of a boot procedure in the computer system responsive to an auxiliary processor receiving power, wherein the boot procedure includes the auxiliary processor booting a first operating system including loading a kernel and drivers of the first operating system; verifying, by the auxiliary processor, the boot code for a main processor of the computer system, wherein verifying the boot code comprises: comparing a system identifier against the data corresponding to the system identifier; comparing the boot code against the hash of the boot code; subsequent to verifying the boot code, releasing the main processor from a reset state; providing an indication, from the auxiliary processor to a platform controller hub, that the boot code has been verified; the platform controller hub transferring the boot

Assignees

Inventors

Classifications

  • Program or device authentication · CPC title

  • Loading of operating system · CPC title

  • G06F21/575Primary

    Secure boot · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11263326B2 cover?
A method and apparatus for performing a secure boot of a computer system is disclosed. A computer system according to the disclosure includes an auxiliary processor and a main processor. The boot process includes initially booting the auxiliary processor. The auxiliary processor includes a non-volatile memory storing boot code for the main processor. The auxiliary processor may perform a verifi…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F21/575. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).