Secure booting of computer system
AssigneeVMware, Inc.
InventorsMukund Gunti, Timothy P. Mann
Life of this patent
Estimating the term…
Abstract
A computer system is securely booted by executing a boot firmware to locate a boot loader and verify the boot loader using a first key that is associated with the boot firmware. Upon verifying the boot loader, computer system executes the boot loader to verify a system software kernel and a secure boot verifier using a second key that is associated with the boot loader. The secure boot verifier is then executed to verify the remaining executable software modules to be loaded during boot using a third key that is associated with the secure boot verifier. During boot, state data files of the computer system are mounted in a namespace that is isolated from the namespaces in which the executable software modules are mounted.
Claims19
A method of securely booting a computer system, comprising:
- executing a boot firmware to locate a boot loader and verify the boot loader using a first key that is associated with the boot firmware;
- upon verifying the boot loader, executing the boot loader to verify a system software kernel and a secure boot verifier using a second key that is associated with the boot loader;
- executing, by the boot loader, the system software kernel;
- executing, by the system software kernel, the secure boot verifier to verify additional software modules using a third key that is associated with the secure boot verifier;
- creating a file system including first namespaces in which one or more verified additional software modules are to be mounted, a second namespace identified by the system software kernel as a namespace designated for storing state data files, and a third namespace identified by the system software kernel as a namespace designated for storing state data files, wherein the state data files stored at the second namespace are configuration files;
- further wherein the one or more verified additional software modules are contained within software packages, and wherein the third namespace includes a descriptor and a digital signature of each software package, wherein the descriptor includes a hash of at least a portion of the software package to which the descriptor pertains;
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) a first data bit indicating whether the file contains state data, and (b) a second data bit indicating whether the file is executable;
- and
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) the first data bit set, and (b) the second data bit not set.
A non-transitory computer readable medium comprising instructions for causing a computer system to perform a booting process that includes the steps of:
- executing a boot firmware to locate a boot loader and verify the boot loader using a first key that is associated with the boot firmware;
- upon verifying the boot loader, executing the boot loader to verify a system software kernel and a secure boot verifier using a second key that is associated with the boot loader;
- executing, by the boot loader, the system software kernel;
- executing, by the system software kernel, the secure boot verifier to verify additional software modules using a third key that is associated with the secure boot verifier;
- creating a file system including first namespaces in which one or more verified additional software modules are to be mounted, a second namespace identified by the system software kernel as a namespace designated for storing state data files, and a third namespace identified by the system software kernel as a namespace designated for storing state data files, wherein the state data files stored at the second namespace are configuration files;
- further wherein the one or more verified additional software modules are contained within software packages, and wherein the third namespace includes a descriptor and a digital signature of each software package, wherein the descriptor includes a hash of at least a portion of the software package to which the descriptor pertains;
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) a first data bit indicating whether the file contains state data, and (b) a second data bit indicating whether the file is executable;
- and
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) the first data bit set, and (b) the second data bit not set.
A computer system comprising a volatile memory, a non-volatile memory, and processor that executes a booting process that includes the steps of:
- executing a boot firmware to locate a boot loader and verify the boot loader using a first key that is associated with the boot firmware;
- upon verifying the boot loader, executing the boot loader to verify a system software kernel and a secure boot verifier using a second key that is associated with the boot loader;
- executing, by the boot loader, the system software kernel;
- executing, by the system software kernel, the secure boot verifier to verify additional software modules using a third key that is associated with the secure boot verifier;
- creating a file system including first namespaces in which one or more verified additional software modules are to be mounted, a second namespace identified by the system software kernel as a namespace designated for storing state data files, and a third namespace identified by the system software kernel as a namespace designated for storing state data files, wherein the state data files stored at the second namespace are configuration files;
- further wherein the one or more verified additional software modules are contained within software packages, and wherein the third namespace includes a descriptor and a digital signature of each software package, wherein the descriptor includes a hash of at least a portion of the software package to which the descriptor pertains;
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) a first data bit indicating whether the file contains state data, and (b) a second data bit indicating whether the file is executable;
- and
- further wherein the state data files stored at the second namespace and the state data files stored at the third namespace each have (a) the first data bit set, and (b) the second data bit not set.
Dependencies are inferred from the claim text.