US20120030676A1 - Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module - Google Patents

Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module Download PDF

Info

Publication number
US20120030676A1
US20120030676A1 US13/268,159 US201113268159A US2012030676A1 US 20120030676 A1 US20120030676 A1 US 20120030676A1 US 201113268159 A US201113268159 A US 201113268159A US 2012030676 A1 US2012030676 A1 US 2012030676A1
Authority
US
United States
Prior art keywords
tpm
vtpm
processing system
service
driver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/268,159
Inventor
Ned M. Smith
Willard M.(Monty) Wiseman
Faraz A. Siddioi
Tasneem Brutch
Vincent R. Scarlata
Alok Kumar
Kalpana M. Roge
Murari Kumar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US13/268,159 priority Critical patent/US20120030676A1/en
Publication of US20120030676A1 publication Critical patent/US20120030676A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Definitions

  • the present disclosure relates generally to the field of data processing, and more particularly to methods and related apparatus for creating an isolated partition for a virtual trusted platform module (vTPM).
  • vTPM virtual trusted platform module
  • a data processing system may include hardware resources, such as a central processing unit (CPU), random access memory (RAM), read-only memory (ROM), etc.
  • the processing system may also include software resources, such as a basic input/output system (BIOS), a virtual machine monitor (VMM), and one or more operating systems (OSs).
  • BIOS basic input/output system
  • VMM virtual machine monitor
  • OSs operating systems
  • the VMM may include a root OS, or it may run on top of a root OS.
  • a root OS may also be referred to as a host OS.
  • the VMM may create one or more virtual machines (VMs), and the VMs may boot to different guest OSs or to different instances of the same guest OS.
  • the VMM may thus allow multiple OSs and applications to run in independent partitions.
  • the CPU in such a data processing system may provide hardware support (e.g., instructions and data structures) for virtualization. Additional details about virtualization may be found in reference manuals such as the following:
  • a processing system may also include features referred to as LaGrande Technology (LT), as developed by Intel Corporation.
  • the LT features may provide for the protected measurement and launching of a VMM. Additional details concerning LT are provided in the publication entitled “The Intel Safer Computing Initiative: Building Blocks for Trusted Computing,” which is currently available at http://www.intel.com/intelpress/validation100/secc/SECC — 100Validation.pdf.
  • LaGrande Technology may also be referred to as Intel® Trusted Execution Technology (TXT).
  • Intel® TXT Trusted Execution Technology: Preliminary Architecture Specification
  • Intel® TXT Specification is currently available from http://www.intel.com/technology/security/downloads/315168.htm.
  • a processing system may include a security coprocessor, such as a trusted platform module (TPM).
  • TPM is a hardware component that resides within a processing system and provides various facilities and services for enhancing the security of the processing system.
  • a TPM may be implemented as an integrated circuit (IC) or semiconductor chip, and it may be used to protect data and to attest to the runtime configuration of a platform.
  • a TPM may be implemented in accordance with specifications such as the Trusted Computing Group (TCG) TPM Specification Version 1.2, dated Oct. 2, 2003 (hereinafter the “TPM specification”), which includes parts such as Design Principles, Structures of the TPM, and TPM Commands.
  • TCG Trusted Computing Group
  • TPM specification includes parts such as Design Principles, Structures of the TPM, and TPM Commands.
  • the TPM specification is published by the TCG and is available from the Internet at www.trustedcomputinggroup.org/home.
  • a TCG-compliant TPM provides security services such as attesting to the identity and/or integrity of the platform, based on characteristics of the platform.
  • trusted computing technologies may provide facilities for measuring, recording, and reporting the software configuration of a platform.
  • the measurements may include load-time measurements of software.
  • FIG. 1 is a block diagram depicting a suitable data processing environment in which certain aspects of an example embodiment of the present invention may be implemented.
  • FIG. 2 is a flowchart of a process for creating an isolated partition for a virtual trusted platform module, according to an example embodiment of the present invention.
  • processing system and “data processing system” are intended to broadly encompass a single machine, or a system of communicatively coupled machines or devices operating together.
  • Example processing systems include, without limitation, distributed computing systems, supercomputers, high-performance computing systems, computing clusters, mainframe computers, mini-computers, client-server systems, personal computers, workstations, servers, portable computers, laptop computers, tablets, telephones, personal digital assistants (PDAs), handheld devices, entertainment devices such as audio and/or video devices, and other platforms or devices for processing or transmitting information.
  • PDAs personal digital assistants
  • FIG. 1 is a block diagram depicting a suitable data processing environment 12 in which certain aspects of an example embodiment of the present invention may be implemented.
  • Data processing environment 12 includes a processing system 20 that has various hardware components 82 , such as a CPU 22 and various other components, which may be communicatively coupled via one or more system buses 24 or other communication pathways or mediums.
  • CPU 22 may include two or more processing units, such as processing unit 30 and processing unit 32 .
  • a processing system may include a CPU with one processing unit, or multiple processors, each having at least one processing unit.
  • the processing units may be implemented as processing cores, as Hyper-Threading (HT) technology, or as any other suitable technology for executing multiple threads simultaneously or substantially simultaneously.
  • HT Hyper-Threading
  • processor 22 is communicatively coupled to one or more volatile or non-volatile data storage devices, such as RAM 26 , ROM 42 , mass storage devices 36 such as hard drives, and/or other devices or media, such as floppy disks, optical storage, tapes, flash memory, memory sticks, digital video disks, etc.
  • volatile or non-volatile data storage devices such as RAM 26 , ROM 42 , mass storage devices 36 such as hard drives, and/or other devices or media, such as floppy disks, optical storage, tapes, flash memory, memory sticks, digital video disks, etc.
  • the terms “read-only memory” and “ROM” may be used in general to refer to non- volatile memory devices such as erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash ROM, flash memory, etc.
  • EPROM erasable programmable ROM
  • EEPROM electrically erasable programmable ROM
  • flash memory etc.
  • Processor 22 may also be communicatively coupled to additional components, such as a video controller, integrated drive electronics (IDE) controllers, small computer system interface (SCSI) controllers, universal serial bus (USB) controllers, input/output (I/O) ports 28 , input devices, output devices such as a display, etc.
  • a chipset 34 in processing system 20 may serve to interconnect various hardware components.
  • Chipset 34 may include one or more bridges and/or hubs, as well as other logic and storage components.
  • processor 22 is communicatively coupled to a security processor such as TPM 44 via chipset 34 .
  • Processing system 20 may be controlled, at least in part, by input from conventional input devices, such as a keyboard, a mouse, etc., and/or by directives received from another machine, biometric feedback, or other input sources or signals. Processing system 20 may utilize one or more connections to one or more remote data processing systems 90 , such as through a network interface controller (NIC) 40 , a modem, or other communication ports or couplings. Processing systems may be interconnected by way of a physical and/or logical network 92 , such as a local area network (LAN), a wide area network (WAN), an intranet, the Internet, etc.
  • LAN local area network
  • WAN wide area network
  • intranet the Internet
  • Communications involving network 92 may utilize various wired and/or wireless short range or long range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 802.11, 802.16, 802.20, Bluetooth, optical, infrared, cable, laser, etc.
  • Protocols for 802.11 may also be referred to as wireless fidelity (WiFi) protocols.
  • Protocols for 802.16 may also be referred to as WiMAX or wireless metropolitan area network protocols, and information concerning those protocols is currently available at grouper.ieee.org/groups/802/16/published.html.
  • Some components may be implemented as adapter cards with interfaces (e.g., a PCI connector) for communicating with a bus.
  • one or more devices may be implemented as embedded controllers, using components such as programmable or non-programmable logic devices or arrays, application-specific integrated circuits (ASICs), embedded processors, smart cards, and the like.
  • ASICs application-specific integrated circuits
  • the invention may be described herein with reference to data such as instructions, functions, procedures, data structures, application programs, configuration settings, etc.
  • the machine may respond by performing tasks, defining abstract data types or low-level hardware contexts, and/or performing other operations, as described in greater detail below.
  • the data may be stored in volatile and/or non-volatile data storage.
  • program covers a broad range of software components and constructs, including applications, drivers, processes, routines, methods, modules, and subprograms.
  • the term “program” can be used to refer to a complete compilation unit (i.e., a set of instructions that can be compiled independently), a collection of compilation units, or a portion of a compilation unit.
  • the term “program” may be used to refer to any collection of instructions which, when executed by a processing system, perform a desired operation or operations.
  • the programs in processing system 20 may be considered components of a software environment 84 .
  • the software environment 84 may include BIOS components, system management mode (SMM) components, OS components, VMM components, user applications, etc.
  • Processing systems may include embedded information technology (EIT) that supports system management.
  • EIT embedded information technology
  • an EIT platform may support verified boot using Intel® TXT and capabilities of a TPM.
  • a virtual machine (VM) in the platform may make use of core capabilities of a TPM.
  • Such a VM may run a user OS such as Microsoft® Windows VistaTM, for example.
  • a conventional platform may be unable to share a hardware TPM among multiple VMs while maintaining security guarantees of the TPM.
  • an EIT platform that provides VMs with virtualized TPMs (vTPMs) may be able to maintain security guarantees of the vTPMs and the underlying hardware TPM.
  • vTPMs virtualized TPMs
  • One architecture for providing VMs with vTPMs may use a distinct software TPM (sTPM) to hold the context for the vTPM of each VM.
  • sTPM software TPM
  • each partition has an sTPM context in which both temporal and persistent state is managed.
  • a guest VM or user VM 52 may run a user OS 54 , and the platform may use an sTPM 56 to maintain context for a vTPM for that VM.
  • vTPM refers to an sTPM for a VM, in conjunction with some or all of the associated control logic for providing TPM services for that VM.
  • User OS 54 may include a kernel 55 with a TPM driver 57 .
  • User VM 52 may also include various guest applications 58 .
  • processing system 20 also includes a host VM or service VM 62 that runs a service OS 64 , such as Linux.
  • Service OS 64 may include an attestation agent, a certifiable migratable key (CMK) agent, an endorsement key (EK) credential factory, and other service applications 68 .
  • Service OS 64 may include a kernel 65 with a para-virtualized TPM driver 67 .
  • Processing system 20 may use another sTPM 66 to hold the context for a vTPM for service VM 62 .
  • Service VM 62 may provide management and security services to support remote management of processing system 20 .
  • Processing system 20 also includes a management VM 70 with various management applications 78 to provide device virtualization.
  • management applications 78 may handle security configuration, scheduling configuration, and hardware configuration for the other VMs.
  • the applications in management VM 70 may control which VMs can use NIC 40 , which VMs can use various input/output devices, etc.
  • management VM 70 has special execution privileges, such as direct access to devices and hardware.
  • vTPM VM 80 for providing vTPMs for other VMs, such as user VM 52 and service VM 62 .
  • partition may be used to refer to an isolated execution environment, a VM, or any similar environment for maintaining separation between operating environments.
  • vTPM VM 80 includes a vTPM manager 88 with EK credential support.
  • a TPM driver 87 and a TPM device model 89 may also reside in vTPM VM 80 .
  • vTPM VM 80 may include the sTPMs for other VMs, such as sTPM 56 and sTPM 66 , as well as a storage manager for providing storage services. For instance, the storage manager may save persistent state into nonvolatile storage (NVS) 35 in chipset 34 .
  • vTPM manager 88 may apply a cryptographic wrapper to protect the persistent state from tampering.
  • Processing system 20 also has a VMM 100 with a memory-mapped input/output (MMIO) trap 102 .
  • the dashed lines in FIG. 1 illustrate which components communicate with which other components to implement vTPMs. For instance, FIG. 1 has dashed lines between TPM driver 57 , MMIO trap 102 , TPM device model 89 , vTPM manager 88 , and sTPM 56 . Those dashed lines illustrate that MMIO trap 102 intercepts communications from the TPM drivers and directs them to vTPM VM 80 , via TPM device model 89 , to be handled with the context from the appropriate sTPM.
  • FIG. 2 is a flowchart of an example process for creating an isolated partition for vTPMs, in the context of the processing system of FIG. 1 .
  • the process may begin after processing system 20 has booted BIOS 43 .
  • processing system 20 may then launch VMM 100 , management VM 70 , vTPM VM 80 , service VM 62 , and user VM 52 .
  • VMM 100 management VM 70 , vTPM VM 80 , service VM 62 , and user VM 52 .
  • processing system 20 loads vTPM manager 88 into vTPM VM 80 , loads other virtual machine management programs into management VM 70 , loads service OS 64 into service VM 62 , and loads user OS 54 and user applications 58 into user VM 52 .
  • vTPM manager 88 may then create sTPM 56 and sTPM 66 for user VM 52 and service VM 62 , respectively, to instantiate vTPMs for user VM 52 and service VM 62 .
  • TPM driver 57 and TPM driver 87 are the same driver, but they are configured to point to different devices or addresses. For instance, TPM driver 57 may point to addresses associated with sTPM 56 , while TPM driver 87 may point to addresses associated with hardware TPM 44 .
  • the user VMs may use different TPM drivers from the vTPM VM.
  • VMM 100 and vTPM VM 80 may then cooperate to provide vTPM services for user VM 52 and service VM 62 .
  • user applications 58 may access the vTPM for user VM 52 through TPM driver 57 .
  • MMIO trap 102 may intercept communications from TPM driver 57 and direct them to vTPM VM 80 , via TPM device model 89 .
  • the requested vTPM operation may then be handled by vTPM manager 88 with the context from sTPM 56 .
  • vTPM manager 88 may access hardware TPM 44 , via TPM driver 87 .
  • processing system 20 may use these same kind of processing steps to process those operations, but instead using sTPM 66 .
  • Service OS applications 68 may also access a fully-virtualized TPM through TPM driver 67 .
  • service OS 64 is not permitted to have complete control of hardware TPM 44 under any circumstances, and neither is any other VM, except for vTPM VM 80 .
  • processing system 20 may allow partial access to hardware TPM 44 from a trusted VM (e.g., service VM 62 ) by using para-virtualized TPM driver 67 .
  • service OS 64 may use para-virtualized TPM driver 67 to communicate with vTPM for service VM 62 , via vTPM manager 88 .
  • management applications 78 may provide other types of virtualization services, such as providing for virtualization of NICs, I/O devices, and other devices, other than the TPM.
  • management VM 70 contains virtual machine management programs other than vTPM manager 88 and MMIO trap 102 .
  • service OS 64 may provide services such as authentication of remote entities, enforcement of security policies, and other functions for supporting remote management of processing system 20 .
  • the process may then return to block 240 , with processing system 20 continuing to support the various VMs, as appropriate.
  • the entire vTPM subsystem is partitioned in a separate vTPM partition (i.e., vTPM VM 80 ).
  • vTPM VM 80 This increases the security of the solution, as it separates the control logic and data for the vTPM implementation from several non-vTPM related applications, which run in a separate VM (i.e., management VM 70 ).
  • the vTPM partition is a virtual machine with minimal OS or monolithic code.
  • the vTPM partition is isolated from management VM 70 and from any other VM (e.g., user VM 52 and service VM 62 ). The isolation of the vTPM implementation also reduces the available surface of attack on the vTPM itself, and therefore provides additional security.
  • Alternative embodiments of the invention also include machine accessible media encoding instructions for performing the operations of the invention. Such embodiments may also be referred to as program products.
  • Such machine accessible media may include, without limitation, storage media such as floppy disks, hard disks, CD-ROMs, ROM, and RAM; and other detectable arrangements of particles manufactured or formed by a machine or device. Instructions may also be used in a distributed environment, and may be stored locally and/or remotely for access by single or multi-processor machines.

Abstract

A data processing system isolates a virtual trusted platform module (vTPM) manager in the processing system from other management software in the processing system. In one example process, the processing system launches a virtual machine monitor (VMM) that includes a memory-mapped input/output (MMIO) trap. The processing system also launches a vTPM manager in a first virtual machine (VM). In addition, the processing system launches a second VM to contain virtual machine management programs other than the vTPM manager and the MMIO trap. Other embodiments are described and claimed.

Description

  • This application is a continuation of U.S. patent application Ser. No. 11/837,378, filed Aug. 10, 2007, the content of which is hereby incorporated by reference.
  • FIELD OF THE INVENTION
  • The present disclosure relates generally to the field of data processing, and more particularly to methods and related apparatus for creating an isolated partition for a virtual trusted platform module (vTPM).
  • BACKGROUND
  • A data processing system may include hardware resources, such as a central processing unit (CPU), random access memory (RAM), read-only memory (ROM), etc. The processing system may also include software resources, such as a basic input/output system (BIOS), a virtual machine monitor (VMM), and one or more operating systems (OSs). When the computer system is started or reset, it may load the BIOS, and then the VMM. The VMM may include a root OS, or it may run on top of a root OS. A root OS may also be referred to as a host OS. The VMM may create one or more virtual machines (VMs), and the VMs may boot to different guest OSs or to different instances of the same guest OS. The VMM may thus allow multiple OSs and applications to run in independent partitions.
  • The CPU in such a data processing system may provide hardware support (e.g., instructions and data structures) for virtualization. Additional details about virtualization may be found in reference manuals such as the following:
  • Intel® Virtualization Technology Specification for the IA-32 Intel® Architecture, dated April 2005 (hereinafter “the VT-x Specification”); and
  • IA-32 Intel® Architecture Software Developer's Manual, Volume 2B: Instruction Set Reference, N-Z, dated June 2006.
  • Other manufacturers may produce processors with different features for supporting virtualization. A processing system may also include features referred to as LaGrande Technology (LT), as developed by Intel Corporation. The LT features may provide for the protected measurement and launching of a VMM. Additional details concerning LT are provided in the publication entitled “The Intel Safer Computing Initiative: Building Blocks for Trusted Computing,” which is currently available at http://www.intel.com/intelpress/validation100/secc/SECC100Validation.pdf. For purposes of this disclosure, LaGrande Technology may also be referred to as Intel® Trusted Execution Technology (TXT). Additional details concerning Intel® TXT are provided in the publication entitled “Intel® Trusted Execution Technology: Preliminary Architecture Specification” and dated November 2006 (the “Intel® TXT Specification”). The Intel® TXT Specification is currently available from http://www.intel.com/technology/security/downloads/315168.htm.
  • In addition to RAM and one or more CPUs, a processing system may include a security coprocessor, such as a trusted platform module (TPM). A TPM is a hardware component that resides within a processing system and provides various facilities and services for enhancing the security of the processing system. For example, a TPM may be implemented as an integrated circuit (IC) or semiconductor chip, and it may be used to protect data and to attest to the runtime configuration of a platform. A TPM may be implemented in accordance with specifications such as the Trusted Computing Group (TCG) TPM Specification Version 1.2, dated Oct. 2, 2003 (hereinafter the “TPM specification”), which includes parts such as Design Principles, Structures of the TPM, and TPM Commands. The TPM specification is published by the TCG and is available from the Internet at www.trustedcomputinggroup.org/home.
  • In general, a TCG-compliant TPM provides security services such as attesting to the identity and/or integrity of the platform, based on characteristics of the platform. For instance, trusted computing technologies may provide facilities for measuring, recording, and reporting the software configuration of a platform. For instance, the measurements may include load-time measurements of software.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Features and advantages of the present invention will become apparent from the appended claims, the following detailed description of one or more example embodiments, and the corresponding figures, in which:
  • FIG. 1 is a block diagram depicting a suitable data processing environment in which certain aspects of an example embodiment of the present invention may be implemented; and
  • FIG. 2 is a flowchart of a process for creating an isolated partition for a virtual trusted platform module, according to an example embodiment of the present invention.
  • DETAILED DESCRIPTION
  • As used herein, the terms “processing system” and “data processing system” are intended to broadly encompass a single machine, or a system of communicatively coupled machines or devices operating together. Example processing systems include, without limitation, distributed computing systems, supercomputers, high-performance computing systems, computing clusters, mainframe computers, mini-computers, client-server systems, personal computers, workstations, servers, portable computers, laptop computers, tablets, telephones, personal digital assistants (PDAs), handheld devices, entertainment devices such as audio and/or video devices, and other platforms or devices for processing or transmitting information.
  • FIG. 1 is a block diagram depicting a suitable data processing environment 12 in which certain aspects of an example embodiment of the present invention may be implemented. Data processing environment 12 includes a processing system 20 that has various hardware components 82, such as a CPU 22 and various other components, which may be communicatively coupled via one or more system buses 24 or other communication pathways or mediums.
  • This disclosure uses the term “bus” to refer to shared communication pathways, as well as point-to-point pathways. CPU 22 may include two or more processing units, such as processing unit 30 and processing unit 32. Alternatively, a processing system may include a CPU with one processing unit, or multiple processors, each having at least one processing unit. The processing units may be implemented as processing cores, as Hyper-Threading (HT) technology, or as any other suitable technology for executing multiple threads simultaneously or substantially simultaneously.
  • In the embodiment of FIG. 1, processor 22 is communicatively coupled to one or more volatile or non-volatile data storage devices, such as RAM 26, ROM 42, mass storage devices 36 such as hard drives, and/or other devices or media, such as floppy disks, optical storage, tapes, flash memory, memory sticks, digital video disks, etc. For purposes of this disclosure, the terms “read-only memory” and “ROM” may be used in general to refer to non- volatile memory devices such as erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash ROM, flash memory, etc. Processor 22 may also be communicatively coupled to additional components, such as a video controller, integrated drive electronics (IDE) controllers, small computer system interface (SCSI) controllers, universal serial bus (USB) controllers, input/output (I/O) ports 28, input devices, output devices such as a display, etc. A chipset 34 in processing system 20 may serve to interconnect various hardware components. Chipset 34 may include one or more bridges and/or hubs, as well as other logic and storage components. In the example embodiment, processor 22 is communicatively coupled to a security processor such as TPM 44 via chipset 34.
  • Processing system 20 may be controlled, at least in part, by input from conventional input devices, such as a keyboard, a mouse, etc., and/or by directives received from another machine, biometric feedback, or other input sources or signals. Processing system 20 may utilize one or more connections to one or more remote data processing systems 90, such as through a network interface controller (NIC) 40, a modem, or other communication ports or couplings. Processing systems may be interconnected by way of a physical and/or logical network 92, such as a local area network (LAN), a wide area network (WAN), an intranet, the Internet, etc. Communications involving network 92 may utilize various wired and/or wireless short range or long range carriers and protocols, including radio frequency (RF), satellite, microwave, Institute of Electrical and Electronics Engineers (IEEE) 802.11, 802.16, 802.20, Bluetooth, optical, infrared, cable, laser, etc. Protocols for 802.11 may also be referred to as wireless fidelity (WiFi) protocols. Protocols for 802.16 may also be referred to as WiMAX or wireless metropolitan area network protocols, and information concerning those protocols is currently available at grouper.ieee.org/groups/802/16/published.html.
  • Some components may be implemented as adapter cards with interfaces (e.g., a PCI connector) for communicating with a bus. In some embodiments, one or more devices may be implemented as embedded controllers, using components such as programmable or non-programmable logic devices or arrays, application-specific integrated circuits (ASICs), embedded processors, smart cards, and the like.
  • The invention may be described herein with reference to data such as instructions, functions, procedures, data structures, application programs, configuration settings, etc. When the data is accessed by a machine, the machine may respond by performing tasks, defining abstract data types or low-level hardware contexts, and/or performing other operations, as described in greater detail below. The data may be stored in volatile and/or non-volatile data storage. For purposes of this disclosure, the term “program” covers a broad range of software components and constructs, including applications, drivers, processes, routines, methods, modules, and subprograms. The term “program” can be used to refer to a complete compilation unit (i.e., a set of instructions that can be compiled independently), a collection of compilation units, or a portion of a compilation unit. Thus, the term “program” may be used to refer to any collection of instructions which, when executed by a processing system, perform a desired operation or operations.
  • The programs in processing system 20 may be considered components of a software environment 84. The software environment 84 may include BIOS components, system management mode (SMM) components, OS components, VMM components, user applications, etc.
  • Processing systems may include embedded information technology (EIT) that supports system management. For instance, an EIT platform may support verified boot using Intel® TXT and capabilities of a TPM. In addition, a virtual machine (VM) in the platform may make use of core capabilities of a TPM. Such a VM may run a user OS such as Microsoft® Windows Vista™, for example. However, a conventional platform may be unable to share a hardware TPM among multiple VMs while maintaining security guarantees of the TPM.
  • By contrast, an EIT platform that provides VMs with virtualized TPMs (vTPMs) may be able to maintain security guarantees of the vTPMs and the underlying hardware TPM. One architecture for providing VMs with vTPMs may use a distinct software TPM (sTPM) to hold the context for the vTPM of each VM. In the example embodiment, each partition has an sTPM context in which both temporal and persistent state is managed.
  • For instance, in processing system 20, a guest VM or user VM 52 may run a user OS 54, and the platform may use an sTPM 56 to maintain context for a vTPM for that VM. As used herein, the term “vTPM” refers to an sTPM for a VM, in conjunction with some or all of the associated control logic for providing TPM services for that VM. User OS 54 may include a kernel 55 with a TPM driver 57. User VM 52 may also include various guest applications 58.
  • In the example embodiment, processing system 20 also includes a host VM or service VM 62 that runs a service OS 64, such as Linux. Service OS 64 may include an attestation agent, a certifiable migratable key (CMK) agent, an endorsement key (EK) credential factory, and other service applications 68. Service OS 64 may include a kernel 65 with a para-virtualized TPM driver 67. Processing system 20 may use another sTPM 66 to hold the context for a vTPM for service VM 62. Service VM 62 may provide management and security services to support remote management of processing system 20.
  • Processing system 20 also includes a management VM 70 with various management applications 78 to provide device virtualization. For instance, management applications 78 may handle security configuration, scheduling configuration, and hardware configuration for the other VMs. Thus, the applications in management VM 70 may control which VMs can use NIC 40, which VMs can use various input/output devices, etc. In the example embodiment, management VM 70 has special execution privileges, such as direct access to devices and hardware.
  • Processing system 20 also has a separate partition, such as vTPM VM 80, for providing vTPMs for other VMs, such as user VM 52 and service VM 62. The term “partition” may be used to refer to an isolated execution environment, a VM, or any similar environment for maintaining separation between operating environments. In the example embodiment, vTPM VM 80 includes a vTPM manager 88 with EK credential support. A TPM driver 87 and a TPM device model 89 may also reside in vTPM VM 80. In addition, vTPM VM 80 may include the sTPMs for other VMs, such as sTPM 56 and sTPM 66, as well as a storage manager for providing storage services. For instance, the storage manager may save persistent state into nonvolatile storage (NVS) 35 in chipset 34. In addition, vTPM manager 88 may apply a cryptographic wrapper to protect the persistent state from tampering.
  • Processing system 20 also has a VMM 100 with a memory-mapped input/output (MMIO) trap 102. The dashed lines in FIG. 1 illustrate which components communicate with which other components to implement vTPMs. For instance, FIG. 1 has dashed lines between TPM driver 57, MMIO trap 102, TPM device model 89, vTPM manager 88, and sTPM 56. Those dashed lines illustrate that MMIO trap 102 intercepts communications from the TPM drivers and directs them to vTPM VM 80, via TPM device model 89, to be handled with the context from the appropriate sTPM.
  • FIG. 2 is a flowchart of an example process for creating an isolated partition for vTPMs, in the context of the processing system of FIG. 1. The process may begin after processing system 20 has booted BIOS 43. As shown at blocks 210, 212, 214, 216, and 218, processing system 20 may then launch VMM 100, management VM 70, vTPM VM 80, service VM 62, and user VM 52. As depicted in FIG. 1, processing system 20 loads vTPM manager 88 into vTPM VM 80, loads other virtual machine management programs into management VM 70, loads service OS 64 into service VM 62, and loads user OS 54 and user applications 58 into user VM 52.
  • As shown at block 220, vTPM manager 88 may then create sTPM 56 and sTPM 66 for user VM 52 and service VM 62, respectively, to instantiate vTPMs for user VM 52 and service VM 62. In one embodiment, TPM driver 57 and TPM driver 87 are the same driver, but they are configured to point to different devices or addresses. For instance, TPM driver 57 may point to addresses associated with sTPM 56, while TPM driver 87 may point to addresses associated with hardware TPM 44. In alternative embodiments, the user VMs may use different TPM drivers from the vTPM VM.
  • VMM 100 and vTPM VM 80 may then cooperate to provide vTPM services for user VM 52 and service VM 62. For example, user applications 58 may access the vTPM for user VM 52 through TPM driver 57. As shown at blocks 240 and 242 (and as described above with regard to the dashed lines in FIG. 1), MMIO trap 102 may intercept communications from TPM driver 57 and direct them to vTPM VM 80, via TPM device model 89. The requested vTPM operation may then be handled by vTPM manager 88 with the context from sTPM 56. If necessary, when processing the requested vTPM operation for user OS 54, vTPM manager 88 may access hardware TPM 44, via TPM driver 87. When service OS 64 executes vTPM operations, processing system 20 may use these same kind of processing steps to process those operations, but instead using sTPM 66.
  • Service OS applications 68 may also access a fully-virtualized TPM through TPM driver 67. In one embodiment, service OS 64 is not permitted to have complete control of hardware TPM 44 under any circumstances, and neither is any other VM, except for vTPM VM 80. However, to accommodate isolated cases where service OS 64 may need access to hardware TPM capabilities (e.g. for attestation), processing system 20 may allow partial access to hardware TPM 44 from a trusted VM (e.g., service VM 62) by using para-virtualized TPM driver 67. Thus, service OS 64 may use para-virtualized TPM driver 67 to communicate with vTPM for service VM 62, via vTPM manager 88.
  • Also, as shown at block 250, management applications 78 may provide other types of virtualization services, such as providing for virtualization of NICs, I/O devices, and other devices, other than the TPM. In one embodiment, management VM 70 contains virtual machine management programs other than vTPM manager 88 and MMIO trap 102.
  • In addition, as shown at block 252, service OS 64 may provide services such as authentication of remote entities, enforcement of security policies, and other functions for supporting remote management of processing system 20. The process may then return to block 240, with processing system 20 continuing to support the various VMs, as appropriate.
  • In the example embodiment, the entire vTPM subsystem is partitioned in a separate vTPM partition (i.e., vTPM VM 80). This increases the security of the solution, as it separates the control logic and data for the vTPM implementation from several non-vTPM related applications, which run in a separate VM (i.e., management VM 70). In one embodiment, the vTPM partition is a virtual machine with minimal OS or monolithic code. However, the vTPM partition is isolated from management VM 70 and from any other VM (e.g., user VM 52 and service VM 62). The isolation of the vTPM implementation also reduces the available surface of attack on the vTPM itself, and therefore provides additional security.
  • In light of the principles and example embodiments described and illustrated herein, it will be recognized that the illustrated embodiments can be modified in arrangement and detail without departing from such principles. Also, the foregoing discussion has focused on particular embodiments, but other configurations are contemplated. In particular, even though expressions such as “in one embodiment,” “in another embodiment,” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments.
  • Similarly, although example processes have been described with regard to particular operations performed in a particular sequence, numerous modifications could be applied to those processes to derive numerous alternative embodiments of the present invention. For example, alternative embodiments may include processes that use fewer than all of the disclosed operations, processes that use additional operations, processes that use the same operations in a different sequence, and processes in which the individual operations disclosed herein are combined, subdivided, or otherwise altered.
  • Alternative embodiments of the invention also include machine accessible media encoding instructions for performing the operations of the invention. Such embodiments may also be referred to as program products. Such machine accessible media may include, without limitation, storage media such as floppy disks, hard disks, CD-ROMs, ROM, and RAM; and other detectable arrangements of particles manufactured or formed by a machine or device. Instructions may also be used in a distributed environment, and may be stored locally and/or remotely for access by single or multi-processor machines.
  • It should also be understood that the hardware and software components depicted herein represent functional elements that are reasonably self-contained so that each can be designed, constructed, or updated substantially independently of the others. In alternative embodiments, many of the components may be implemented as hardware, software, or combinations of hardware and software for providing the functionality described and illustrated herein.
  • In view of the wide variety of useful permutations that may be readily derived from the example embodiments described herein, this detailed description is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all implementations that come within the scope and spirit of the following claims and all equivalents to such implementations.

Claims (20)

1. A method comprising:
launching a service operating system (OS) in a service virtual machine (VM) in a processing system;
launching a user OS in a guest VM in the processing system;
instantiating a first virtual trusted platform module (vTPM) for use by the service OS of the service VM; and
instantiating a second vTPM for use by the user OS of the guest VM, wherein the first and second vTPMs are instantiated by creation of software TPMs (sTPMs) in a partition of the processing system.
2. The method of claim 1, wherein the partition comprises a VM including a vTPM manager.
3. The method of claim 2, further comprising providing a TPM driver and a TPM device model in the partition.
4. The method of claim 3, further comprising providing a second TPM driver in the guest VM, and configuring the second TPM driver to point to an address associated with a first one of the sTPMs.
5. The method of claim 4, further comprising configuring the TPM driver to point to an address associated with a hardware TPM in the processing system.
6. The method of claim 4, further comprising accessing the second vTPM through the second TPM driver via a user application.
7. The method of claim 2, further comprising launching a virtual machine monitor (VMM) in the processing system, the VMM to include a memory-mapped input/output (MMIO) trap, launching the vTPM manager in the VM, and launching a second VM to contain virtual machine management programs other than the vTPM manager and the MMIO trap.
8. The method of claim 7, further comprising:
intercepting, at the MMIO trap in the VMM, information from the second TPM driver for the guest OS; and
in response to intercepting the information from the second TPM driver at the MMIO trap, communicating between the VMM and the vTPM manager.
9. The method of claim 3, further comprising:
using the TPM driver to communicate with a hardware TPM in the processing system; and
using a para-virtualized TPM driver for the service OS to communicate with the first vTPM.
10. The method of claim 9, further comprising intercepting an operation of the service OS involving the first vTPM, and using the vTPM manager to process the operation of the service OS involving the first vTPM.
11. A processing system comprising:
a processor to execute instructions;
a trusted platform module (TPM); and
a non-transitory storage including instructions which, when executed by the processor, cause the processing system to performing operations comprising:
launching a service operating system (OS) in a service virtual machine (VM);
launching a user OS in a guest VM;
instantiating a first virtual trusted platform module (vTPM) for use by the service OS of the service VM; and
instantiating a second vTPM for use by the user OS of the guest VM,
wherein the first and second vTPMs are instantiated by creation of software TPMs (sTPMs) in a partition of the processing system.
12. The processing system of claim 11, wherein the partition comprises a VM including a vTPM manager.
13. The processing system of claim 12, wherein the partition comprises a TPM driver and a TPM device model.
14. The processing system of claim 13, further comprising a second TPM driver in the guest VM, the second TPM driver to point to an address associated with a first one of the sTPMs.
15. The processing system of claim 14, wherein the TPM driver is to point to an address associated with the TPM.
16. An article comprising a machine-accessible storage medium including instructions that when executed cause a system to:
launch a service operating system (OS) in a service virtual machine (VM);
launch a user OS in a guest VM;
instantiate a first virtual trusted platform module (vTPM) for use by the service OS of the service VM; and
instantiate a second vTPM for use by the user OS of the guest VM, wherein the first and second vTPMs are instantiated by creation of software TPMs (sTPMs) in a partition of the system.
17. The article of claim 16, wherein the partition comprises a VM including a vTPM manager.
18. The article of claim 17, further comprising instructions that when executed enable the system to provide a TPM driver and a TPM device model in the partition.
19. The article of claim 18, further comprising instructions that when executed enable the system to provide a second TPM driver in the guest VM, and configure the second TPM driver to point to an address associated with a first one of the sTPMs.
20. The article of claim 19, further comprising instructions that when executed enable the system to configure the TPM driver to point to an address associated with a hardware TPM in the system.
US13/268,159 2007-08-10 2011-10-07 Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module Abandoned US20120030676A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/268,159 US20120030676A1 (en) 2007-08-10 2011-10-07 Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/837,378 US8060876B2 (en) 2007-08-10 2007-08-10 Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US13/268,159 US20120030676A1 (en) 2007-08-10 2011-10-07 Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/837,378 Continuation US8060876B2 (en) 2007-08-10 2007-08-10 Methods and apparatus for creating an isolated partition for a virtual trusted platform module

Publications (1)

Publication Number Publication Date
US20120030676A1 true US20120030676A1 (en) 2012-02-02

Family

ID=40347678

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/837,378 Expired - Fee Related US8060876B2 (en) 2007-08-10 2007-08-10 Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US13/268,159 Abandoned US20120030676A1 (en) 2007-08-10 2011-10-07 Methods And Apparatus For Creating An Isolated Partition For A Virtual Trusted Platform Module

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/837,378 Expired - Fee Related US8060876B2 (en) 2007-08-10 2007-08-10 Methods and apparatus for creating an isolated partition for a virtual trusted platform module

Country Status (1)

Country Link
US (2) US8060876B2 (en)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067468A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Application acceleration in a virtualized environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
CN104899078A (en) * 2015-07-01 2015-09-09 山东中孚信息产业股份有限公司 Auditing system and method in virtual machine environment
EP3070607A1 (en) 2015-03-20 2016-09-21 Virtual Open Systems Compute node supporting virtual machines and services
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US9578017B2 (en) 2014-05-05 2017-02-21 Microsoft Technology Licensing, Llc Secure management of operations on protected virtual machines
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
EP3255544A1 (en) 2016-06-08 2017-12-13 Virtual Open Systems Interrupt controller
EP3264711A1 (en) 2016-06-28 2018-01-03 Virtual Open Systems Virtual switch for multi-compartment mixed critical network communications
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
US10637733B2 (en) 2018-09-25 2020-04-28 International Business Machines Corporation Dynamic grouping and repurposing of general purpose links in disaggregated datacenters
US10649915B1 (en) * 2018-10-28 2020-05-12 Virtual Open Systems Disaggregated computing architecture using device pass-through wherein independent physical address spaces between systems nodes are implemented in a single execution environment
US10671557B2 (en) * 2018-09-25 2020-06-02 International Business Machines Corporation Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters
US10802988B2 (en) 2018-09-25 2020-10-13 International Business Machines Corporation Dynamic memory-based communication in disaggregated datacenters
US10831698B2 (en) 2018-09-25 2020-11-10 International Business Machines Corporation Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters
US10915493B2 (en) 2018-09-25 2021-02-09 International Business Machines Corporation Component building blocks and optimized compositions thereof in disaggregated datacenters
US11012423B2 (en) 2018-09-25 2021-05-18 International Business Machines Corporation Maximizing resource utilization through efficient component communication in disaggregated datacenters
US11163713B2 (en) 2018-09-25 2021-11-02 International Business Machines Corporation Efficient component communication through protocol switching in disaggregated datacenters
US11182322B2 (en) 2018-09-25 2021-11-23 International Business Machines Corporation Efficient component communication through resource rewiring in disaggregated datacenters
US11392512B2 (en) * 2018-10-16 2022-07-19 Intel Corporation USB method and apparatus in a virtualization environment with multi-VM
US11650849B2 (en) 2018-09-25 2023-05-16 International Business Machines Corporation Efficient component communication through accelerator switching in disaggregated datacenters

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US8032741B2 (en) * 2007-08-22 2011-10-04 Intel Corporation Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US9477570B2 (en) * 2008-08-26 2016-10-25 Red Hat, Inc. Monitoring software provisioning
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US8578375B2 (en) 2009-12-23 2013-11-05 International Business Machines Corporation Virtual machine administration for data center resource managers
US8959363B2 (en) * 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
GB2507015B (en) * 2011-08-30 2020-04-29 Hewlett Packard Development Co Communication with a virtual trusted runtime BIOS
US8494585B2 (en) 2011-10-13 2013-07-23 The Boeing Company Portable communication devices with accessory functions and related methods
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
WO2014046974A2 (en) 2012-09-20 2014-03-27 Case Paul Sr Case secure computer architecture
US9092767B1 (en) * 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9230081B2 (en) 2013-03-05 2016-01-05 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
CN103279330A (en) * 2013-05-14 2013-09-04 江苏名通信息科技有限公司 MapReduce multiple programming model based on virtual machine GPU computation
CN105247528B (en) 2013-06-27 2018-05-18 英特尔公司 Continuous dual factor anthentication
US9497221B2 (en) * 2013-09-12 2016-11-15 The Boeing Company Mobile communication device and method of operating thereof
US9819661B2 (en) 2013-09-12 2017-11-14 The Boeing Company Method of authorizing an operation to be performed on a targeted computing device
US10064240B2 (en) 2013-09-12 2018-08-28 The Boeing Company Mobile communication device and method of operating thereof
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9413765B2 (en) 2014-03-25 2016-08-09 Intel Corporation Multinode hubs for trusted computing
US9009468B1 (en) 2014-08-26 2015-04-14 MagicCube, Inc. System for transaction authentication
CN104268477B (en) * 2014-09-26 2017-09-26 华为技术有限公司 A kind of method of controlling security and the network equipment
US9606817B1 (en) * 2015-06-23 2017-03-28 Symantec Corporation Systems and methods for virtualizing internet of things (IoT) devices
CN105069352A (en) * 2015-07-29 2015-11-18 浪潮电子信息产业股份有限公司 Method for constructing operating environment of trusted application program on server
CN105095768B (en) * 2015-08-20 2018-03-02 浪潮电子信息产业股份有限公司 A kind of construction method of the trusted servers trust chain based on virtualization
US10073964B2 (en) 2015-09-25 2018-09-11 Intel Corporation Secure authentication protocol systems and methods
US10699003B2 (en) * 2017-01-23 2020-06-30 Hysolate Ltd. Virtual air-gapped endpoint, and methods thereof
CN109254795B (en) * 2017-07-13 2021-01-26 龙芯中科技术股份有限公司 Parallel control method and electronic equipment
US11693952B2 (en) * 2018-10-31 2023-07-04 Vmware, Inc. System and method for providing secure execution environments using virtualization technology

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050081212A1 (en) * 2003-09-30 2005-04-14 Goud Gundrala D. Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US20050091365A1 (en) * 2003-10-01 2005-04-28 Lowell David E. Interposing a virtual machine monitor and devirtualizing computer hardware
US6892304B1 (en) * 1997-10-09 2005-05-10 Phoenix Technologies Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US20050246521A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370371B1 (en) * 1998-10-21 2002-04-09 Parkervision, Inc. Applications of universal frequency translation
DE10196440B4 (en) 2000-07-18 2006-03-23 Intel Corporation, Santa Clara Control access to multiple isolated storage in an isolated execution environment
GB2376765B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments with verifiable environment identities
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US7356197B2 (en) * 2003-06-30 2008-04-08 Intel Corporation Variable tap filter architecture for image processing
US20050132122A1 (en) * 2003-12-16 2005-06-16 Rozas Carlos V. Method, apparatus and system for monitoring system integrity in a trusted computing environment
US7222062B2 (en) * 2003-12-23 2007-05-22 Intel Corporation Method and system to support a trusted set of operational environments using emulated trusted hardware
US7380119B2 (en) * 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US7590300B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Image filtering methods and apparatus
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20060002471A1 (en) * 2004-06-30 2006-01-05 Lippincott Louis A Motion estimation unit
US7471844B2 (en) 2004-12-27 2008-12-30 Intel Corporation Method, apparatus and system for multi-feature programmable tap filter image processing
US7827550B2 (en) * 2005-08-17 2010-11-02 Intel Corporation Method and system for measuring a program using a measurement agent

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892304B1 (en) * 1997-10-09 2005-05-10 Phoenix Technologies Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US20050081212A1 (en) * 2003-09-30 2005-04-14 Goud Gundrala D. Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US20050091365A1 (en) * 2003-10-01 2005-04-28 Lowell David E. Interposing a virtual machine monitor and devirtualizing computer hardware
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
US20050246521A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment

Cited By (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9575784B1 (en) 2011-08-10 2017-02-21 Nutanix, Inc. Method and system for handling storage in response to migration of a virtual machine in a virtualization environment
US11301274B2 (en) 2011-08-10 2022-04-12 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US10359952B1 (en) 2011-08-10 2019-07-23 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8997097B1 (en) 2011-08-10 2015-03-31 Nutanix, Inc. System for implementing a virtual disk in a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US9052936B1 (en) 2011-08-10 2015-06-09 Nutanix, Inc. Method and system for communicating to a storage controller in a virtualization environment
US9256475B1 (en) 2011-08-10 2016-02-09 Nutanix, Inc. Method and system for handling ownership transfer in a virtualization environment
US9256374B1 (en) 2011-08-10 2016-02-09 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization environment
US9256456B1 (en) * 2011-08-10 2016-02-09 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9354912B1 (en) 2011-08-10 2016-05-31 Nutanix, Inc. Method and system for implementing a maintenance service for managing I/O and storage for a virtualization environment
US9389887B1 (en) 2011-08-10 2016-07-12 Nutanix, Inc. Method and system for managing de-duplication of data in a virtualization environment
US11314421B2 (en) 2011-08-10 2022-04-26 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US11853780B2 (en) 2011-08-10 2023-12-26 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9619257B1 (en) * 2011-08-10 2017-04-11 Nutanix, Inc. System and method for implementing storage for a virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US20130067468A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Application acceleration in a virtualized environment
US9146785B2 (en) * 2011-09-14 2015-09-29 Microsoft Technology Licensing, Llc Application acceleration in a virtualized environment
US10747570B2 (en) 2012-07-17 2020-08-18 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US11314543B2 (en) 2012-07-17 2022-04-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US10684879B2 (en) 2012-07-17 2020-06-16 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9519498B2 (en) 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9578017B2 (en) 2014-05-05 2017-02-21 Microsoft Technology Licensing, Llc Secure management of operations on protected virtual machines
US9652631B2 (en) 2014-05-05 2017-05-16 Microsoft Technology Licensing, Llc Secure transport of encrypted virtual machines with continuous owner access
US10176095B2 (en) 2014-05-05 2019-01-08 Microsoft Technology Licensing, Llc Secure management of operations on protected virtual machines
US10229272B2 (en) 2014-10-13 2019-03-12 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9584317B2 (en) 2014-10-13 2017-02-28 Microsoft Technology Licensing, Llc Identifying security boundaries on computing devices
US9519787B2 (en) 2014-11-14 2016-12-13 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
US10181037B2 (en) 2014-11-14 2019-01-15 Microsoft Technology Licensing, Llc Secure creation of encrypted virtual machines from encrypted templates
WO2016150847A1 (en) * 2015-03-20 2016-09-29 Virtual Open Systems Compute node supporting virtual machines and services
EP3070607A1 (en) 2015-03-20 2016-09-21 Virtual Open Systems Compute node supporting virtual machines and services
US9898327B2 (en) 2015-03-20 2018-02-20 Virtual Open Systems Compute node supporting virtual machines and services
CN104899078A (en) * 2015-07-01 2015-09-09 山东中孚信息产业股份有限公司 Auditing system and method in virtual machine environment
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
EP3255544A1 (en) 2016-06-08 2017-12-13 Virtual Open Systems Interrupt controller
EP3264711A1 (en) 2016-06-28 2018-01-03 Virtual Open Systems Virtual switch for multi-compartment mixed critical network communications
US10831698B2 (en) 2018-09-25 2020-11-10 International Business Machines Corporation Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters
US10915493B2 (en) 2018-09-25 2021-02-09 International Business Machines Corporation Component building blocks and optimized compositions thereof in disaggregated datacenters
US11012423B2 (en) 2018-09-25 2021-05-18 International Business Machines Corporation Maximizing resource utilization through efficient component communication in disaggregated datacenters
US11163713B2 (en) 2018-09-25 2021-11-02 International Business Machines Corporation Efficient component communication through protocol switching in disaggregated datacenters
US11182322B2 (en) 2018-09-25 2021-11-23 International Business Machines Corporation Efficient component communication through resource rewiring in disaggregated datacenters
US10637733B2 (en) 2018-09-25 2020-04-28 International Business Machines Corporation Dynamic grouping and repurposing of general purpose links in disaggregated datacenters
US10671557B2 (en) * 2018-09-25 2020-06-02 International Business Machines Corporation Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters
US10802988B2 (en) 2018-09-25 2020-10-13 International Business Machines Corporation Dynamic memory-based communication in disaggregated datacenters
US11650849B2 (en) 2018-09-25 2023-05-16 International Business Machines Corporation Efficient component communication through accelerator switching in disaggregated datacenters
US11392512B2 (en) * 2018-10-16 2022-07-19 Intel Corporation USB method and apparatus in a virtualization environment with multi-VM
US10649915B1 (en) * 2018-10-28 2020-05-12 Virtual Open Systems Disaggregated computing architecture using device pass-through wherein independent physical address spaces between systems nodes are implemented in a single execution environment

Also Published As

Publication number Publication date
US20090044187A1 (en) 2009-02-12
US8060876B2 (en) 2011-11-15

Similar Documents

Publication Publication Date Title
US8060876B2 (en) Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US10152600B2 (en) Methods and systems to measure a hypervisor after the hypervisor has already been measured and booted
US8584229B2 (en) Methods and apparatus supporting access to physical and virtual trusted platform modules
US20230185592A1 (en) Dynamic device virtualization for use by guest user processes based on observed behaviors of native device drivers
US9880867B2 (en) Method and subsystem for data exchange between a guest operating system and a virtualization layer
CN109154888B (en) Super fusion system equipped with coordinator
US9483639B2 (en) Service partition virtualization system and method having a secure application
US8589302B2 (en) Automated modular and secure boot firmware update
US20080120499A1 (en) Methods and apparatus for defeating malware
US7865762B2 (en) Methods and apparatus for handling errors involving virtual machines
US8627312B2 (en) Methods and systems for integrated storage and data management using a hypervisor
US9672058B2 (en) Reduced service partition virtualization system and method
US20050216920A1 (en) Use of a virtual machine to emulate a hardware device
US20080235754A1 (en) Methods and apparatus for enforcing launch policies in processing systems
JP5308522B2 (en) Memory management for hypervisor loading
US7539986B2 (en) Method for guest operating system integrity validation
US9354896B1 (en) Hypervisor utilization to reduce bootstrap time for data storage system
US9575791B2 (en) Unified extensible firmware interface system management mode initialization protections with system management interrupt transfer monitor sandboxing
US10261821B2 (en) System and method to expose remote virtual media partitions to virtual machines
US10706152B2 (en) Systems and methods for concealed object store in a virtualized information handling system
US8813072B1 (en) Inverse virtual machine
US10630782B2 (en) Light-weight web browser support for thin client solution
US20230132853A1 (en) Extending supervisory services into trusted cloud operator domains
US11669620B2 (en) System platform initializer for mixed-critical systems
US11675635B2 (en) System and method for power management for a universal serial bus type C device used by virtualized and containerized applications

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION