Method and apparatus for sequential hypervisor invocation
First Claim
Patent Images
1. A system for protecting boot phases of a platform having virtualization technology capabilities, comprising:
- a processor coupled to a non-volatile firmware storage device;
a trusted software module for controlling an initial boot phase of the platform, the software module stored in the non-volatile firmware storage device, wherein the trusted software module is to be executed as a privileged component in a virtual machine to control boot operations;
system cache memory coupled to the processor, wherein a portion of the cache memory is to be configured as cache-as-RAM (CAR), and wherein the trusted software module is to be initially executed as resident in the CAR, prior to discovery and initialization of system random access memory (RAM), and once system RAM is initialized, the trusted software module is to be migrated to run in system RAM;
a second software module to be launched by the trusted software module running in system RAM to control a next boot phase of the platform, wherein the second software module is to execute as a privileged component in a virtual machine; and
a launch control policy (LCP) unit to verify that a software module is authorized before allowing the software module to be launched, wherein the LCP unit is to retrieve launch policy configuration data from non-volatile storage coupled to a trusted platform module (TPM NV);
wherein the trusted software module is to be verified by microcode in the platform and successive software modules launched in a chain from the trusted software module cause the LCP unit to automatically verify the successive software modules against the policy configuration data before launching.
1 Assignment
0 Petitions
Accused Products
Abstract
In some embodiments, the invention involves a system and method for invoking a series of hypervisors on a platform. A hardware-based secure boot of a chained series of virtual machines throughout the life of the pre-operating system (OS) firmware/BIOS/loader/option ROM execution, with component-wise isolation of the pre-extensible firmware interface (PEI) and driver execution environment (DXE) cores is utilized. In an embodiment, a Cache-As-RAM (CAR) based hypervisor, executing directly from Flash memory manages sequential invocation of a next hypervisor. Other embodiments are described and claimed.
-
Citations
17 Claims
-
1. A system for protecting boot phases of a platform having virtualization technology capabilities, comprising:
-
a processor coupled to a non-volatile firmware storage device; a trusted software module for controlling an initial boot phase of the platform, the software module stored in the non-volatile firmware storage device, wherein the trusted software module is to be executed as a privileged component in a virtual machine to control boot operations; system cache memory coupled to the processor, wherein a portion of the cache memory is to be configured as cache-as-RAM (CAR), and wherein the trusted software module is to be initially executed as resident in the CAR, prior to discovery and initialization of system random access memory (RAM), and once system RAM is initialized, the trusted software module is to be migrated to run in system RAM; a second software module to be launched by the trusted software module running in system RAM to control a next boot phase of the platform, wherein the second software module is to execute as a privileged component in a virtual machine; and a launch control policy (LCP) unit to verify that a software module is authorized before allowing the software module to be launched, wherein the LCP unit is to retrieve launch policy configuration data from non-volatile storage coupled to a trusted platform module (TPM NV); wherein the trusted software module is to be verified by microcode in the platform and successive software modules launched in a chain from the trusted software module cause the LCP unit to automatically verify the successive software modules against the policy configuration data before launching. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for protecting boot phases of a platform having virtualization technology capabilities, comprising:
-
entering protected mode in the platform, responsive to a platform reset or power-on; enabling cache coupled to a boot processor in the platform to act as random access memory, referred to as cache-as-RAM (CAR); launching a first trusted software module, as a currently executing trusted software module, to execute in CAR, the first trusted software module retrieved from secure firmware storage coupled to the platform; initializing system random access memory (RAM); migrating the trusted software module to run in a privileged virtual machine in system RAM; launching at least one successive trusted software module, as a new currently running trusted software module, in accordance with at least one launch control policy (LCP) accessible to the currently running trusted software module, wherein the at least one launch control policy determines whether the at least one successive trusted software module is valid, and if the successive trusted software module is not valid, then causing the platform boot to fail; and launching the first trusted software module by a security phase (SEC) of initial boot phase, wherein the SEC is authenticated by microcode coupled to the platform, and wherein the first trusted software module comprises a simple virtual machine monitor. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer readable non-transitory storage medium having instructions stored thereon for protecting boot phases of a platform having virtualization technology capabilities, the instruction when executed on the platform, cause the platform to:
-
enter protected mode in the platform, responsive to a platform reset or power-on;
enable cache coupled to a boot processor in the platform to act as random access memory, referred to as cache-as-RAM (CAR);launch a first trusted software module, as a currently executing trusted software module, to execute in CAR, the first trusted software module retrieved from secure firmware storage coupled to the platform; initialize system random access memory (RAM); migrate the trusted software module to run in a privileged virtual machine in system RAM; launch at least one successive trusted software module, as a new currently running trusted software module, in accordance with at least one launch control policy (LCP) accessible to the currently running trusted software module, wherein the at least one launch control policy determines whether the at least one successive trusted software module is valid, and if the successive trusted software module is not valid, then causing the platform boot to fail; and launch the first trusted software module by a security phase (SEC) of initial boot phase, wherein the SEC is authenticated by microcode coupled to the platform, and wherein the first trusted software module comprises a simple virtual machine monitor. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method for protecting boot phases of a platform having virtualization technology capabilities, comprising:
-
entering protected mode in the platform, responsive to a platform reset or power-on; enabling cache coupled to a boot processor in the platform to act as random access memory, referred to as cache-as-RAM (CAR); launching a first trusted software module, as a currently executing trusted software module, to execute in CAR, the first trusted software module retrieved from secure firmware storage coupled to the platform; initializing system random access memory (RAM); migrating the trusted software module to run in a privileged virtual machine in system RAM; launching at least one successive trusted software module, as a new currently running trusted software module, in accordance with at least one launch control policy (LCP) accessible to the currently running trusted software module, wherein the at least one launch control policy determines whether the at least one successive trusted software module is valid, and if the successive trusted software module is not valid, then causing the platform boot to fail; retrieving policy data from a trusted platform module (TMP) non-volatile memory store (TMPNV) by a launch control policy (LCP) check unit; comparing the retrieved policy data with a measured value for a successive trusted software module; and determining whether the successive trusted software module is valid, and if so, then launching the successive trusted software module in a virtual machine, but if not, then causing the platform boot to fail.
-
-
17. A computer readable non-transitory storage medium having instructions stored thereon for protecting boot phases of a platform having virtualization technology capabilities, the instruction when executed on the platform, cause the platform to:
-
enter protected mode in the platform, responsive to a platform reset or power-on;
enable cache coupled to a boot processor in the platform to act as random access memory, referred to as cache-as-RAM (CAR);launch a first trusted software module, as a currently executing trusted software module, to execute in CAR, the first trusted software module retrieved from secure firmware storage coupled to the platform; initialize system random access memory (RAM); migrate the trusted software module to run in a privileged virtual machine in system RAM; launch at least one successive trusted software module, as a new currently running trusted software module, in accordance with at least one launch control policy (LCP) accessible to the currently running trusted software module, wherein the at least one launch control policy determines whether the at least one successive trusted software module is valid, and if the successive trusted software module is not valid, then causing the platform boot to fail; retrieve policy data from a trusted platform module (TMP) non-volatile memory store (TMPNV) by a launch control policy (LCP) check unit; compare the retrieved policy data with a measured value for a successive trusted software module; and determine whether the successive trusted software module is valid, and if so, then launch the successive trusted software module in a virtual machine, but if not, then cause the platform boot to fail.
-
Specification