Associating a multi-context trusted platform module with distributed platforms
In one embodiment, the present invention includes a method for creating an instance of a virtual trusted platform module (TPM) in a central platform and associating the instance with a managed platform coupled to the central platform. Multiple such vTPM's may be instantiated, each associated with a different managed platform coupled to the central platform. The instances may all be maintained on the central platform, improving security. Other embodiments are described and claimed.
Embodiments of the present invention relate to processing systems, and more particularly to such systems including security features.
Modern computer systems include various resources including one or more processors, memory, chipset components, input/output (I/O) devices and the like. These components interact to process data. Oftentimes, a computer is interconnected with other systems, e.g., via a local network or a global network. Due to the interactions between computers, security can be compromised.
Accordingly, various features have been introduced to improve security of computer systems. For example, in addition to memory and one or more processors, a system may include a trusted platform module (TPM). A TPM is a hardware component that resides within a system and provides various facilities and services for enhancing security. For example, a TPM may be used to protect data and to attest the configuration of a platform. The sub-components of a TPM may include an execution engine and secure non-volatile (NV) memory or storage. The secure NV memory is used to store sensitive information, such as encryption keys, and the execution engine protects the sensitive information according to the security policies to be implemented by the TPM. 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 (the “TPM specification”).
In general, a TCG-compliant TPM provides security services such as attesting to the identity and/or integrity of a platform, based on characteristics of the platform. Platform characteristics including hardware components of the platform, such as the processor(s) and chipset, can be communicated to the TPM through a platform endorsement credential provided by an authority (e.g., an original equipment manufacturer (OEM)). A TPM may also support auditing and logging of software processes, as well as verification of platform boot integrity, file integrity, and software licensing of firmware and an operating system (OS), for example. A TPM thus provides a root of trust for a platform.
Typically, a TPM is closely configured with its system. That is, the TPM generally is affixed to the system to provide adequate root of trust. In many different networks environments, particularly in managed networks, a central server can act to control operations of servers or other devices connected thereto, such as network servers, data servers, e-mail servers and the like. While the central server provides control over such managed resources, typically the managed resources include their own independent hardware and software. Furthermore, to the extent that such networked systems include TPM resources, they are dedicated to and located on their dedicated system. Such configuration, while improving security, prevents migration of TPM services across the systems and furthermore requires the complexity and expense of separate and independent TPM resources for each system.
In various embodiments, a system may be configured to provide security services such as those afforded by a trusted platform module (TPM). That is, a single system such as a management platform e.g., a central server may include hardware, software, firmware or combinations thereof to enable security services for multiple platforms (such as managed platforms) coupled thereto. More particularly, the secure services may remain at all times on the management system, improving security while enabling use of secure services by the managed platforms coupled thereto. The security services may be implemented in one or more hardware devices to provide software support to enable a multi-context device to be used by a set of distributed systems, and more particularly by virtualized resources such as virtual machines (VMs) of the distributed platforms.
Virtualization permits partitioning of a system into multiple virtual machines. For instance, hardware resources may be partitioned in a way that allows multiple OSs to execute on the same machine concurrently. Specifically, each OS may run in a different VM. Each VM may therefore be considered a substantially independent software environment. An OS running in a VM may be referred to as a guest OS. The VMs may be run on top of a run-time OS such as an embedded OS.
Referring now to
Furthermore, as will be described herein TPM server 20 may maintain instances of virtual TPM's for managed resources within system 10. A virtual TPM (vTPM) is a logical device that provides TPM-like functionality. In one embodiment, TPM server 20 may implement a small, secure run-time targeted to smartcards or embedded systems. In one example embodiment, TPM server 20 may use a mimimally configured LINUX™ version as the run-time environment.
In one embodiment, each vTPM instance may have its own TPM structures, including, for example, an endorsement key (EK), a storage root key (SRK), a user key hierarchy, platform configuration registers (PCRs), monotonic counters, internal persistent storage, data integrity registers (DIRs), and so forth. A vTPM may create keys with single-purpose types for different operations. For example, the key of type EK may only be available for decrypting identity credentials from a privacy certification authority (CA). Attestation identity keys (AIKs) may be used to sign other keys and to quote PCRs. Storage keys (SKs) may be used to protect other keys or to seal data. Binding keys (BKs) may be used to encrypt arbitrary data, and to convert data into a TPM-bound data structure. Signing keys (SigKs) may be used for signing arbitrary data.
The virtual keys and other structures or objects within a vTPM may have the same structure as hardware TPM keys or objects, but the virtual objects within a virtual TPM are not mere references to the standard objects within TPM, such as EKs, SRKs, and PCRs. Instead, each virtual TPM instance may have its own distinct objects, such as a virtual EK (vEK), a virtual SRK (vSRK), virtual PCRs (vPCRs), and virtual DIRs (vDIRs). These virtual objects may be based on or derived from the objects of the hardware TPM. For example, in one embodiment the virtual SRKs and virtual EKs may be children of a hardware SRK or, in the case of nested vTPMs, a virtual SRK may ultimately be based on the hardware SRK. By allowing for vTPM keys to be rooted in vSRKs, this model allows for vTPM nesting. Virtual TPM objects such as vEKs, vSRKs, and vPCRs may in turn serve as the basis for additional virtual objects within a vTPM, such as virtual signing keys (vSigs), virtual AIKs (vAIKs), and virtual storage/encryption keys (vEncs). In one embodiment, each vTPM may provide all of the functions provided by a hardware TPM (hwTPM), with the same application program interfaces (APIs).
By providing a TPM or other security hardware and virtualization of such resources, TPM server 20 may act as a central repository of TPM or other such security services for a set of managed platforms. In such implementations, TPM server 20 may perform creation, persisting, migrating, and destroying instances of virtual TPM's and making such instances available to various managed platforms of the system.
Still referring to
Multiple managed platforms may be present in system 10. For purposes of illustration
Note that the managed resources of system 10 may take various forms. Thus as shown in
By virtue of TPM server 20, TPM services including hardware TPM processing, as well as the instantiation and use of virtual TPM's may remain on TPM server 20. In this way, security may be improved as the TPM instances do not leave the confines of TPM server 20. Embodiments of the present invention may use TPM server 20 to protect virtual keys and related data, as the vTPM key hierarchies and related data are protected within TPM server 20. For example, the virtual TPM keys may be stored in and never released from TPM server 20, unless the data is first encrypted by an associated vTPM. Consequently, if a virtual TPM is compromised, the public portions of the associated vTPM keys may possibly be subject to unauthorized use, but only for the duration of the compromise. That is, in the embodiment of
Furthermore, migration of vTPM's may be simplified, as a set of authorized platforms are centralized, in addition to vTPM's. In this way, a virtual TPM may be migrated from, e.g., first managed platform 40 to second managed platform 50 without any re-authentication activities, such as re-keying or other authentication processes. Instead, vTPM migration may be implemented via a logical binding of the vTPM from first managed platform 40 to second managed platform 50. Accordingly, a system in accordance with an embodiment of the present invention can project multiple virtual TPM instances in a single centralized location to support multiple managed platforms or other such resources. In this way, distributed systems can benefit from secure virtualization techniques.
Referring now to
Still referring to
In yet other implementations, the TPM server may evaluate a configuration of an underlying virtualization manager such as a virtual machine monitor (VMM), platform manager or other virtualization controller of the managed platform. In such an implementation, the TPM server may evaluate this configuration against a security policy. Based on this information, a range of TPM instances (or services) that can be made available to the platform may be restricted. Of course, in other implementations still further authentication processes, such as an authentication based on a Kerberos or other authentication protocol may be used. From block 130 control passes back to diamond 120, discussed above.
If the managed platform is authenticated, control passes from diamond 120 to block 140. There a virtual TPM may be attempted to be set up on the central server (block 140). That is, a virtual TPM instance may be initiated and associated with the requesting managed platform. Various processes may be implemented in initializing a virtual TPM and associating the instance with a corresponding managed platform. The virtual TPM may be requested from platform center manager 30. However, this right may be delegated. For example, in one implementation the requesting platform may send a request for the vTPM along with additional information. Such information may include data structures for an associated VM of the managed platform. Still further, the information may include measurements made on the virtual machine (e.g., configuration, state, and the like). Upon receipt of this information, the central server may determine the sender of the command, authenticate the information sent, and determine whether the sender is authorized to issue the request (i.e., to establish a vTPM). If so, the central server may instantiate an instance of a vTPM to be associated with the requesting platform. Various operations may be performed in TPM server 20 to initialize virtual TPMs. For example, TPM server 20 may create an active instance of an AIK such as a certifying key (CK) and load (at least some of) the state of the virtual TPM instance into active memory. TPM server 20 may subsequently use the CK when certifying virtual endorsements keys. TPM server 20 may further create an active instance of an AIK called a binding key (BK). The BK may be used later to protect vTPM data when that data is released from TPM server 20.
Still referring to
Referring now to
Control passes from block 210 to diamond 220. There, it may be determined whether the managed platform can perform the request locally (diamond 220). In various implementations, underlying platform resources of a managed platform may have the ability to perform some secure operations on the underlying hardware, either generalized resources such as a central processor or the like, or other more specialized hardware such as a security coprocessor. These operations may be hashing functions or other more basic types of secure operations. If sufficient resources (and/or availability of these resources) are present in the managed platform, the requested operation of the command may be performed locally (block 230). That is, the requested function may be performed on underlying resources of the managed platform and the result communicated back to the initiating virtual machine.
Still referring to
Control passes from block 240 to block 265. Thus the requested operation may be forwarded to the virtual TPM. When forwarded to the virtual TPM, the TPM may perform the request accordingly (block 265). That is, the vTPM instance associated with the requesting managed platform may receive the request and perform the requested activity, e.g., a more involved security operation. Note that in some implementations, the vTPM instance may make a request for underlying hardware resources of the TPM server to handle the secure operation.
Different manners of handling communication of results of the operation back to the requesting managed resource can be realized. For example, an interrupt-based mechanism may be implemented to notify a managed platform of the availability of a result and to provide communication of the result. In any manner, the central server may receive a notification of the virtual TPM's completion of processing (diamond 270). If the operation is not yet completed, diamond 270 loops back on itself. When the operation is completed, control passes to block 280, where the result is provided to the managed platform, e.g., in a secure manner back to the requesting platform. While shown with this particular implementation in the embodiment of
Referring now to
Still referring to
If it is determined at diamond 320 that the managed resource to which a vTPM is to be migrated is not authorized, control passes to block 330. There, an error notification may be sent (block 330). For example, a message may be sent back to the platform center manager. In some implementations, the platform center manager may instruct the TPM server to authorize the new managed resource to later enable it to have a vTPM migrated to it. Still with reference to
MCH 430 may also be coupled (e.g., via a hub link 438) to an input/output (I/O) controller hub (ICH) 440 that is coupled to a first bus 442 and a second bus 444. First bus 442 may be coupled to an I/O controller 446 that controls access to one or more I/O devices. As shown in
As further shown, a TPM 465, which may be a security coprocessor in accordance with an embodiment of the present invention, may further be coupled to second bus 444. In such embodiments, TPM 465 may provide the hardware to implement multiple vTPMs for use with managed resources coupled to system 400.
Embodiments may be implemented in code and may be stored on a storage medium having stored thereon instructions which can be used to program a system to perform the instructions. The storage medium may include, but is not limited to, any type of disk including floppy disks, optical disks, compact disk read-only memories (CD-ROMs), compact disk rewritables (CD-RWs), and magneto-optical disks, semiconductor devices such as read-only memories (ROMs), random access memories (RAMs) such as dynamic random access memories (DRAMs), static random access memories (SRAMs), erasable programmable read-only memories (EPROMs), flash memories, electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, or any other type of media suitable for storing electronic instructions.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Claims
1. A method comprising:
- creating an instance of a virtual trusted platform module (TPM) in a manager platform; and
- associating the instance of the virtual TPM with a managed platform coupled to the manager platform.
2. The method of claim 1, further comprising authenticating the managed platform before associating the instance of the virtual TPM with the managed platform.
3. The method of claim 2, wherein authenticating the managed platform comprises establishing a secure channel between the managed platform and the manager platform.
4. The method of claim 1, further comprising maintaining an instance of the virtual TPM on the manager platform for each of a plurality of managed platforms.
5. The method of claim 1, further comprising receiving a request for a secure operation destined to the instance of the virtual TPM from the managed platform.
6. The method of claim 5, further comprising handling the request on the manager platform.
7. The method of claim 5, further comprising handling the request on the instance of the virtual TPM on the manager platform.
8. An apparatus comprising:
- a manager device to create instances of a virtual trusted platform module (TPM) and associate each of the instances with corresponding managed platforms coupled to the manager device.
9. The apparatus of claim 8, wherein the manager device comprises a server including at least one hardware TPM.
10. The apparatus of claim 9, wherein the manager device is to maintain the instances of the virtual TPM on the manager device.
11. The apparatus of claim 9, wherein the managed platforms comprise servers of a server center.
12. The apparatus of claim 8, further comprising secure channels to couple the managed platforms to the manager device.
13. The apparatus of claim 8, further comprising a platform center manager coupled to the manager device to manage the managed platforms.
14. The apparatus of claim 13, wherein the platform center manager is to instruct the manager device to migrate an instance of the virtual TPM from a first managed platform to a second managed platform based on load information.
15. The apparatus of claim 8, wherein the corresponding instance of the virtual TPM is to process a request for a secure operation from a managed platform.
16. The apparatus of claim 15, wherein the corresponding instance of the virtual TPM is to transmit the request to the manager device for processing.
17. The apparatus of claim 8, wherein the manager device is to migrate association of an instance of the virtual TPM from a first managed platform to a second managed platform, wherein the instance is maintained on the manager device.
18. An article comprising a machine-accessible medium including instructions that when executed cause a system to:
- instantiate a first virtual security coprocessor in a central location; and
- associate the first virtual security coprocessor with a first managed platform coupled to the central location responsive to a request from the first managed platform, wherein the first virtual security coprocessor is to remain in the central location.
19. The article of claim 18, further comprising instructions that when executed cause the system to migrate the first virtual security coprocessor to a second managed platform coupled to the central location responsive to a management command from a platform manager.
20. The article of claim 19, further comprising instructions that when executed cause the system to migrate the first virtual security coprocessor via modification of a logical binding to associate the first virtual security coprocessor with the second managed platform.
21. The article of claim 19, further comprising instructions that when executed cause the system to migrate the first virtual security coprocessor without re-authentication of the first virtual security coprocessor.
22. The article of claim 18, further comprising instructions that when executed cause the system to receive a request for a secure operation from the first managed platform and perform the secure operation using the first virtual security coprocessor in the central location.
23. The article of claim 22, further comprising instructions that when executed cause the system to perform the secure operation using the central location responsive to a request from the first virtual security coprocessor.
24. The article of claim 18, further comprising instructions that when executed cause the system to instantiate a plurality of virtual security coprocessors in the central location and to associate each of the plurality of virtual security coprocessors with a corresponding one of a plurality of managed platforms coupled to the central location.
25. A system comprising:
- a plurality of managed platforms each having at least one hardware resource to be used in a virtualized environment; and
- a management platform coupled to the plurality of managed platforms to create instances of a virtual security module and associate each of the instances with a corresponding one of the plurality of managed platforms.
26. The system of claim 25, wherein the management platform is to maintain the instances of the virtual security module on the management platform.
27. The system of claim 25, further comprising a platform manager coupled to the management platform, when the platform manager is to instruct the management platform to migrate an instance of the virtual security module from a first managed platform to a second managed platform based on load information, wherein the instance is maintained on the management platform.
28. The system of claim 25, wherein the management platform is to transmit a request for a secure operation received from one of the plurality of managed platforms to the corresponding instance of the virtual security module for processing.
Type: Application
Filed: Jun 26, 2006
Publication Date: Dec 27, 2007
Patent Grant number: 8108668
Inventor: Carlos V. Rozas (Portland, OR)
Application Number: 11/474,778
International Classification: H04L 9/00 (20060101);