WO2017128720A1 - 基于vtpm对虚拟机进行安全保护的方法及系统 - Google Patents

基于vtpm对虚拟机进行安全保护的方法及系统 Download PDF

Info

Publication number
WO2017128720A1
WO2017128720A1 PCT/CN2016/097818 CN2016097818W WO2017128720A1 WO 2017128720 A1 WO2017128720 A1 WO 2017128720A1 CN 2016097818 W CN2016097818 W CN 2016097818W WO 2017128720 A1 WO2017128720 A1 WO 2017128720A1
Authority
WO
WIPO (PCT)
Prior art keywords
kmc
key
virtual machine
physical host
seed
Prior art date
Application number
PCT/CN2016/097818
Other languages
English (en)
French (fr)
Inventor
施迅
王鹃
赵波
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP16887596.1A priority Critical patent/EP3306509B1/en
Publication of WO2017128720A1 publication Critical patent/WO2017128720A1/zh
Priority to US15/892,594 priority patent/US10922117B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to the field of Internet technologies, and in particular, to a method and system for security protection of a virtual machine based on VTPM.
  • the root key is created by the TPM in the physical host, and the VTPM uses the root key as the VTPM (Virtual Trusted Platform Module).
  • the virtual machine creates a key protection system to protect sensitive information of virtual machines, store virtual environment metrics, and provide remote certificates for virtual machines.
  • the process of securing a virtual machine for VTPM is as follows:
  • the TPM creates an AIK (Attestation Identity Key) for the physical host. After the authentication CA (Certificate Authority) signs the created AIK, the TPM sends the signed AIK and Quote commands to the physical host. On any VTPM, the VTPM creates an EK ⁇ for the virtual machine by using the signed AIK and Quote commands, and creates an AIK ⁇ for the virtual machine based on the EK ⁇ , and then based on the created EK ⁇ and AIK' for the virtual machine. Safe to protect.
  • AIK Attestation Identity Key
  • CA Certificate Authority
  • the security protection of the VTPM to the virtual machine mainly depends on the AIK created by the TPM, and when the virtual machine is migrated from one physical host to another, VTPM The key protection system created for the virtual machine will no longer be applicable. In this case, a new key protection system needs to be recreated for the virtual machine on the new physical host. This process is not only complicated to operate, but also consumes a lot of resources and destroys the virtual The key hierarchy in the machine.
  • the embodiments of the present invention provide a method and system for security protection of a virtual machine based on VTPM.
  • an embodiment of the present invention provides a method for protecting a security of a virtual machine based on VTPM, the method comprising: when the virtual machine is first run on the virtual platform, the virtual machine sends a basic seed acquisition request to the physical host,
  • the basic seed acquisition request carries information such as a UUID (Universally Unique Identifier).
  • the physical host receives the basic seed acquisition request sent by the virtual machine, and sends the UUID carried in the basic seed acquisition request to the KMC (Key Management Center).
  • the KMC generates a base seed based on the UUIID and sends the generated base seed to the virtual machine.
  • the virtual machine When the receiver sends the base seed to the KMC, the virtual machine creates a root key for the VTPM based on the base seed, thereby creating a key protection system. Since the base seed does not depend on the physical host but is distributed by the KMC, when the virtual machine is migrated from one physical host to another, the virtual machine can re-create a key protection system for the VTPM according to the basic seed. To protect data security in virtual machines.
  • the physical host can specifically send a key protection request to the KMC pointed to by the KMC address according to the pre-configured KMC address.
  • the KMC randomly acquires an asymmetric key from the key database, stores the private key in the asymmetric key, and sends the public key in the asymmetric key to the public key.
  • Physical host receives the public key sent by the KMC, and uses the public key to encrypt the UUID and other information (such as the creator, physical address, etc.) and then sends it to the KMC.
  • the physical host encrypts the UUID and other information sent to the KMC by using the public key, which prevents the UUID and other information from being intercepted by other users in the process of being sent to the KMC, thereby improving the information security of the virtual machine.
  • the first TPM is configured in the physical host, and the first TPM is used to store different levels of keys in the physical host.
  • the physical host can be from the first TPM.
  • the public key sent by the KMC is called, the data to be sent to the KMC is encrypted, and the data sent by the KMC is decrypted, thereby ensuring data security with the KMC.
  • KMC encrypts the generated base seed with the stored private key and sends the encrypted base seed to the physical host.
  • the physical host Upon receiving the base seed encrypted by the KMC using the private key, the physical host invokes the public key from the first TPM, and decrypts the encrypted base seed using the public key to obtain a base seed.
  • the security of the base seed is effectively guaranteed.
  • the second TPM is set in the KMC.
  • the KMC When receiving the UUID sent by the physical host, the KMC generates a pair of symmetric keys, calls the random number generation function from the OpenSSL library, and uses the UUID and the symmetric key.
  • the base seed is generated as a parameter of the random number generation function.
  • KMC stores the generated base seed and UUID in a database (such as a backup database).
  • a database such as a backup database.
  • the embodiment of the present invention provides a system for security protection of a virtual machine based on VTPM, and the system includes: a virtual machine, a physical host, and a KMC.
  • the first TSS and the first TPM are provided in the physical host, and the first TSS can provide an interface for the external device (such as a virtual machine, a KMC, etc.) to access the TPM;
  • the virtual machine is installed with multiple applications, which can trigger the virtual machine to execute.
  • the second TSS and VTPM are set in the virtual machine, and the second TSS can provide an interface for the external device to access the VTPM;
  • the KMC is provided with multiple databases such as a backup database and a key database.
  • the virtual machine When the virtual machine runs for the first time on the virtual platform, the virtual machine sends the basic seed to the physical host.
  • the request is received, and the basic seed acquisition request carries information such as a UUID.
  • the physical host receives the basic seed acquisition request sent by the virtual machine, and sends the UUID carried in the basic seed acquisition request to the KMC.
  • the KMC generates a base seed based on the UUIID and sends the generated base seed to the virtual machine.
  • the receiver sends the base seed to the KMC, the virtual machine creates a root key for the VTPM based on the base seed, thereby creating a key protection system.
  • the virtual machine can re-create a key protection system for the VTPM according to the basic seed. To protect data security in virtual machines.
  • the physical host can specifically send a key protection request to the KMC pointed to by the KMC address according to the pre-configured KMC address.
  • the KMC randomly acquires an asymmetric key from the key database, stores the private key in the asymmetric key, and sends the public key in the asymmetric key to the public key.
  • Physical host receives the public key sent by the KMC, and uses the public key to encrypt the UUID and other information (such as the creator, physical address, etc.) and then sends it to the KMC.
  • the physical host encrypts the UUID and other information sent to the KMC by using the public key, which prevents the UUID and other information from being intercepted by other users in the process of being sent to the KMC, thereby improving the information security of the virtual machine.
  • the first TPM is configured in the physical host, and the first TPM is used to store different levels of keys in the physical host.
  • the physical host can be from the first TPM.
  • the public key sent by the KMC is called, the data to be sent to the KMC is encrypted, and the data sent by the KMC is decrypted, thereby ensuring data security with the KMC.
  • KMC encrypts the generated base seed with the stored private key and sends the encrypted base seed to the physical host.
  • the physical host Upon receiving the base seed encrypted by the KMC using the private key, the physical host invokes the public key from the first TPM, and decrypts the encrypted base seed using the public key to obtain a base seed.
  • the security of the base seed is effectively guaranteed.
  • the second TPM is set in the KMC.
  • the KMC When receiving the UUID sent by the physical host, the KMC generates a pair of symmetric keys, calls the random number generation function from the OpenSSL library, and uses the UUID and the symmetric key.
  • the base seed is generated as a parameter of the random number generation function.
  • KMC stores the generated base seed and UUID into a database (such as a key backup database).
  • a database such as a key backup database.
  • an embodiment of the present invention provides a computing device, where the computing device includes: a memory, a processor, and a bus, wherein the memory and the processor are directly connected through a bus;
  • the memory is for storing computer instructions
  • the processor is for executing computer instructions stored by the memory; when the computer device is running, the processor is running computer instructions, such that the computer device performs the first aspect described above
  • the method for security protection of a virtual machine based on VTPM is for storing computer instructions
  • the processor is for executing computer instructions stored by the memory; when the computer device is running, the processor is running computer instructions, such that the computer device performs the first aspect described above.
  • the physical host receives the basic seed acquisition request that is sent by the virtual machine and carries the UUID, and sends the UUID to the KMC.
  • the KMC generates the basic seed according to the UUID.
  • the physical host sends the basic seed to the virtual machine.
  • the virtual machine creates a root key for the VTPM based on the base seed.
  • VTPM uses the root key to create a key for the virtual machine to protect the virtual machine.
  • the present invention does not rely on any physical host, and distributes a base seed for a virtual machine through a third-party device, so that when the virtual machine is migrated from one physical host to another, the same root key can be created through the base seed. Not only reduces operational complexity, saves resources, but also does not break the key hierarchy in the virtual machine.
  • FIG. 1 is a schematic diagram of an implementation environment involved in a method for protecting a virtual machine based on VTPM according to an embodiment of the present invention
  • FIG. 2 is a flowchart of a method for protecting a virtual machine based on VTPM according to another embodiment of the present invention
  • FIG. 3 is a flow chart of a basic seed distribution according to another embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of a system for protecting a virtual machine based on VTPM according to another embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a computer device according to another embodiment of the present invention.
  • FIG. 1 is a schematic diagram of an implementation environment involved in a method for security protection of a virtual machine based on VTPM according to the present invention.
  • the implementation environment includes a physical host, a virtual machine, and a KMC.
  • the physical host includes a physical platform, a virtual platform, a host operating system, and various functional components composed of a CPU and a hard disk.
  • the physical platform is the platform where the host is located.
  • the physical platform has the first TPM of the physical host.
  • the first TPM has the functions of protecting the physical host and preventing unauthorized users from accessing.
  • the host operating system is an operating system running on the physical host, and includes a first TSS (Trusted Software Stack) and a Libvirt.
  • the first TSS is an interface of the physical platform external device to access the first TPM, and is available from the physical platform.
  • the first TPM obtains the protection key;
  • Libvirt is a Linux API that implements the Linux virtualization function (Application Programming Interface, application programming interface).
  • the VTPM is stored in the virtual platform, and the VTPM can obtain the protection key of the first TPM through the first TSS, for example, acquiring the AIK, SIK, and the like created by the TPM for the physical host.
  • the host operating system uses Libvirt to create a virtual machine configured with VTPM on the virtual platform.
  • the virtual machine includes a client operating system, various functional components such as a virtual CPU, a hard disk, and the like.
  • the client operating system is an operating system run by a virtual machine managed by the virtual platform, and the client operating system may be a Linux operating system.
  • KMC has functions such as backup function and basic seed generation, including seed backup database, seed generation server, and second TPM.
  • the first TSS may trigger the seed generation server to generate a base seed by sending a base seed generation request to the seed generation server in the KMC.
  • the virtual platform runs on top of the physical platform, and the host operating system and client operating system run on top of the virtual platform.
  • the host operating system runs on a physical platform
  • the virtual platform is integrated within the host operating system
  • the client operating system runs on the virtual platform
  • the above physical host can communicate with the KMC and the virtual machine through a wired or wireless network.
  • the embodiment of the present invention provides a method for security protection of a virtual machine based on VTPM.
  • the method flow includes:
  • VTPM has not created a key protection system for the virtual machine.
  • the virtual machine can invoke the API to send a basic seed acquisition request to the first TSS of the physical host.
  • the basic seed acquisition request carries at least a UUID of the virtual machine.
  • the physical host When receiving the basic seed obtaining request sent by the virtual machine, the physical host will use the UUID. Send to KMC.
  • the first TSS on the physical host When the first TSS on the physical host receives the basic seed acquisition request sent by the virtual machine, the first TSS on the physical host sends a key protection request to the KMC based on the pre-configured KMC address.
  • the KMC Upon receiving the key protection request, the KMC generates an asymmetric key according to the second TPM, the asymmetric key including the public key and the private key.
  • the KMC stores the private key in the asymmetric key and sends the public key in the asymmetric key to the first TSS on the physical host.
  • the physical host uses the public key fed back by the KMC to encrypt the data sent to the KMC and decrypt the data sent by the KMC.
  • the KMC uses the private key to encrypt the data sent to the physical host.
  • the data sent by the physical host is decrypted.
  • the data sent by the physical host to the KMC includes the UUID and other information such as the address of the physical host, the creator, and the like.
  • the physical host After the first TSS receives the public key sent by the KMC, the physical host stores the public key to the first TPM, and the first TPM of the physical host is responsible for storing the encrypted information of the physical host.
  • the first TSS on the physical host will also load the public key to the corresponding first TPM, so that in the subsequent interaction with the KMC, the public key in the first TPM can be used to be sent to KMC's UUID and other data are encrypted.
  • the specific TSS can be used to load the public key in the asymmetric key. If the public key fails to load, the process of creating a key protection system for the virtual machine ends. If the public key is successfully loaded, the first By calling the TPM2_RSA_Encrypt command, the TSS can encrypt the UUID and other information to obtain the first encrypted information, and then send the first encrypted information to the KMC through the Internet.
  • the KMC generates a basic seed according to the UUID.
  • the KMC Upon receiving the basic seed distribution request (including the first encrypted information), the KMC decrypts the ciphertext in the basic seed distribution request according to the locally stored private key, and obtains the first encrypted information, including the UUID and other information.
  • the KMC uses the second TPM to generate a pair of symmetric keys.
  • the KMC calls the random number generation function in the OpenSSL library, takes the UUID and the symmetric key as parameters of the random number generator, and generates a base seed based on the parameter.
  • KMC backs up the base seed and UUID to prevent physical host
  • the virtual machine can request the base seed from the KMC again, thereby recovering the same key protection system according to the base seed and creating the same key protection system.
  • the KMC sends the base seed to the physical host.
  • the KMC encrypts the base seed and other information by using the private key in the asymmetric key to obtain the second encrypted information, and sends the second encrypted information to the physical host through the Internet.
  • the physical host When receiving the base seed of the KMC feedback, the physical host sends the base seed to the virtual machine.
  • the first TSS When receiving the second encrypted information sent by the KMC, the first TSS obtains the public key in the asymmetric key from the first TPM by using the TPM2_RSA_Decrypt command, and decrypts the second encrypted information by using the public key to obtain the basic seed. And other information to send the base seed to the virtual machine.
  • the basic seed is distributed through the above steps 201 to 205.
  • the KMC distributes the base seed according to the UUID of the virtual machine for the corresponding virtual machine, even if the virtual machine is migrated to the new physical host, because the UUID of the virtual machine It will not change, and the base seed obtained by the virtual machine from KMC will not change, thus avoiding the reconstruction of the base seed.
  • the process of the virtual machine requesting the distribution of the base seed and the process of dispatching the base seed by the KMC are all encrypted by the first TPM on the physical host, thereby indirectly implementing the binding relationship between the VTPM and the first TPM, effectively protecting the VTPM. Safety.
  • FIG. 3 For the distribution process of the above-mentioned basic seeds, in order to facilitate understanding, the following description will be made by taking FIG. 3 as an example.
  • the virtual machine invokes the API to send a basic seed acquisition request to the physical host, where the basic seed acquisition request carries at least the UUID of the virtual machine.
  • the first TSS of the physical host sends a key protection request to the KMC according to the configured KMC address.
  • the KMC After receiving the key protection request, the KMC generates an asymmetric key according to the second TPM, and the KMC saves The private key in the asymmetric key and the public key in the asymmetric key is sent to the first TSS of the physical host.
  • the first TSS of the physical host is loaded in the asymmetric key
  • the public key if the public key is successfully loaded, the first TSS encrypts the UUID and other information by using the public key to obtain the first encrypted information, and then sends the first encrypted information to the KMC by calling the TPM2_RSA_Encrypt command.
  • the KMC decrypts the first encrypted information according to the locally stored private key to obtain a UUID.
  • the KMC generates a pair of symmetric keys according to the second TPM, and generates a base seed by using the UUID and the symmetric key as parameters of the random number generator.
  • the KMC backs up the base seed and the UUID, and encrypts the base seed by using the private key to obtain the second encrypted information, and then sends the second encrypted information to the first TSS of the physical host, and the first TSS reads according to the first TPM.
  • the public key decrypts the second encrypted information to obtain a base seed, and then sends the base seed to the virtual machine.
  • the virtual machine creates a root key of the VTPM according to the base seed.
  • the virtual machine Upon receiving the base seed sent by the physical host, the virtual machine loads the base seed into the second TSS on the virtual platform, and the second TSS loads the base seed into the VTPM, and then creates a root key for the VTPM according to the base seed.
  • the base seed includes an endorsement base seed, a storage base seed, and a platform base seed, which are large random numbers generated by the VTPM for derivation of the base object.
  • the base seed includes an endorsement base seed, a storage base seed, and a platform base seed, which are large random numbers generated by the VTPM for derivation of the base object.
  • the root key created by the virtual machine according to the endorsement base seed for the VTPM is the endorsement key
  • the base seed is the storage base seed
  • the root key created by the virtual machine according to the storage base seed for the VTPM is Store the root key.
  • the endorsement key is used to generate an endorsement key certificate
  • the stored root key is used to generate a plurality of different encryption algorithms.
  • the process of creating a root key for the virtual machine according to the basic seed is VTPM.
  • steps 2061 to 2066 refer to the following steps 2061 to 2066.
  • the specified application specifies attribute information for the root key to be created in advance.
  • the designating application may call the API in the second TSS to specify the attribute information for the root key to be created.
  • the attribute information includes a specified algorithm type, Key parameters and key descriptions, etc.
  • the virtual machine determines whether the virtual endorsement key has been created for the VTPM. If the virtual endorsement key has been created for the VTPM, step 2063 is performed; if the virtual endorsement key is not created for the VTPM, the virtual machine is the VTPM according to the endorsement base seed. Create a virtual endorsement key.
  • the virtual endorsement key is used to encrypt data sent by the owner, wherein the owner is the owner of the virtual machine.
  • the second TSS obtains the endorsement base seed from the VTPM by calling the TPM2_CreatePrimary command, and creates a virtual endorsement key for the VTPM based on the endorsement base seed.
  • the second TSS receives the handle returned by the VTPM, it indicates that the virtual endorsement key is successfully created, the second TSS persists the virtual endorsement key into the VTPM, and performs step 2063 if the second TSS does not receive
  • the handle returned by VTPM indicates that the virtual endorsement key creation failed and the process ends.
  • the virtual machine determines whether an owner has been created for the VTPM. If the owner has been created for the VTPM, step 2064 is performed. If the owner is not created for the VTPM, the virtual machine creates an owner for the VTPM according to the storage base seed.
  • the virtual machine When it is determined that the owner is not created for VTPM, the virtual machine will create a specified session based on the base seed, which is a session from a second TSS to VTPM.
  • the virtual machine creates an owner for VTPM by modifying the Auth value of the Storage Hierachy for the specified session.
  • the virtual machine also sets the owner rights for the owner rights, and specifies that the owner can control the allocation of VTPM resources, for example, the owner can control the opening and closing of the storage control domain, create the root key, and the key object.
  • the persistent storage is saved to the non-volatile storage medium of the TPM, etc., but the owner cannot directly access the key.
  • the owner password needs to be managed by the second TSS, and the owner password can be a random value or a specific value. If the owner password is a random value, it is saved by the second TSS; if the owner password is a specific value, the specific value may be a fixed value of the second TSS code or the like.
  • the virtual machine creates a storage root key according to the owner authorization data and a pre-specified key parameter.
  • the second TSS uses the owner authorization data and a key parameter specified in advance by the specified application. Call the TPM2_CreatePrimary command to create a storage root key for VTPM in VTPM. If the second TSS receives the storage root key handle during the process of creating the storage root key, the storage root key has been successfully created in VTPM. . Of course, in addition to receiving the stored root key handle, the second TSS will also receive the save key blob and the like.
  • the TSS on the virtual platform persists the storage root key to the VTPM non-volatile storage medium.
  • the second TSS sends a TPM2_EvictControl command to the VTPM, and the VTPM persists the storage root key to the non-volatile storage medium by executing the TPM2_EvictControl command.
  • the virtual machine does not need to reload the storage root key, and the storage root key is not replaced by other objects. Memory.
  • the virtual machine generates a key index storing the root key and returns it to the specified application.
  • the second TSS saves the stored root key handle and the save key blob, for example, the stored root key handle and the save key blob are stored in a volatile storage medium.
  • the second TSS will also generate a stored root key index based on the stored root key and send the stored root key index to the designated application.
  • the specified application in the virtual machine invokes an API in the second TSS to specify attribute information for the root key to be created.
  • the virtual machine determines whether the local virtual endorsement key has been created for the VTPM. If the virtual endorsement key is not created for the VTPM, the second TSS obtains the endorsement base seed from the VTPM by calling the TPM2_CreatePrimary command, and based on the endorsement base seed. A virtual endorsement key is created for the VTPM. In the process, if the second TSS receives the handle returned by the VTPM, the virtual endorsement key is successfully created.
  • the virtual machine determines whether an owner has been created for the VTPM. If the owner is not created for the VTPM, the virtual machine creates a specified session according to the storage base seed, and the specified session is a In the second TSS to VTPM session, the virtual machine creates an owner for VTPM by modifying the Auth value of the Storage Hierachy of the specified session.
  • the second TSS uses the owner authorization data and the key parameters specified by the specified application, and creates a storage root key for the VTPM in the VTPM by calling the TPM2_CreatePrimary command, in the process of creating the storage root key, if The second TSS receives the storage root key handle, indicating that the storage root key has been successfully created in VTPM.
  • the virtual second TSS will also receive the save key blob and the like.
  • the second TSS sends a TPM2_EvictControl command to the VTPM, and the VTPM persists the storage root key to the non-volatile storage medium by executing the TPM2_EvictControl command.
  • the second TSS saves the stored root key handle and the save key blob, generates a storage root key index according to the stored root key, and sends the stored root key index to the designated application.
  • the physical host receives the basic seed acquisition request that is sent by the virtual machine and carries the UUID, and sends the UUID to the KMC.
  • the KMC generates the basic seed according to the UUID, and receives the basic seed of the KMC feedback, and the physical host.
  • the base seed is sent to the virtual machine, and the virtual machine creates a root key of the VTPM according to the base seed, and the VTPM uses the root key to create a key for the virtual machine to protect the virtual machine.
  • the present invention does not rely on any physical host, and distributes a base seed for a virtual machine through a third-party device, so that when the virtual machine is migrated from one physical host to another, the same root key can be created through the base seed. Not only reduces operational complexity, saves resources, but also does not break the key hierarchy in the virtual machine.
  • an embodiment of the present invention provides a system for security protection of a virtual machine based on VTPM, and the system includes: a virtual machine 501, a physical host 502, and a key management center KMC503;
  • the physical host 502 is configured to receive a basic seed acquisition request sent by the virtual machine 501, where the basic seed acquisition request carries at least a universal unique identification code UUID;
  • the physical host 502 is further configured to send the UUID to the KMC 503;
  • the KMC 503 is configured to generate a basic seed according to the UUID, and send the basic seed to the physical host 502.
  • the physical host 502 is further configured to receive the base seed fed back by the KMC 503, and send the base seed to the virtual machine 501;
  • the virtual machine 501 is configured to create a root key of the virtual trusted platform template VTPM according to the basic seed, where the root key is used by the VTPM to create a key for the virtual machine to protect the security of the virtual machine.
  • the physical host 502 is further configured to send a key protection request to the KMC 503 specified by the KMC address based on the pre-configured KMC address;
  • the KMC 503 is further configured to acquire an asymmetric key when receiving the key protection request, where the asymmetric key includes a public key and a private key;
  • the KMC 503 is further configured to store a private key and send the public key to the physical host 502;
  • the physical host 502 is further configured to receive the public key fed back by the KMC 503, and encrypt the UUID to be sent to the KMC by using the public key;
  • the KMC503 is also used to decrypt the UUID using the private key.
  • the physical host 502 is further configured to load a public key to the corresponding first trusted platform module TPM to encrypt the UUID to be sent to the KMC 503 using the public key in the first TPM.
  • the KMC 503 is further configured to use a private key to encrypt a base seed fed back to the physical host 502;
  • the physical host 502 is also used to decrypt the base seed fed back by the KMC 503 using the public key.
  • the KMC 503 is further configured to generate a symmetric key according to the corresponding second TPM, and use the UUID and the symmetric key as parameters of the random number generator, so that the random number generator generates the basic seed based on the parameter. .
  • the KMC 503 is further configured to back up the base seed and UUID so that the virtual machine 501 requests the base seed from the KMC again, so that the virtual machine recovers the same root key based on the base seed.
  • the physical host receives the basic seed acquisition request that is sent by the virtual machine and carries the UUID, and sends the UUID to the KMC.
  • the KMC generates the basic seed according to the UUID, and receives the basic seed of the KMC feedback, and the physical host.
  • the base seed is sent to the virtual machine, and the virtual machine creates a root key of the VTPM according to the base seed, and the VTPM uses the root key to create a key for the virtual machine to protect the virtual machine.
  • the present invention does not rely on any physical host, and distributes a base seed for a virtual machine through a third-party device, so that when the virtual machine is migrated from one physical host to another, the same root key can be created through the base seed. Not only reduces operational complexity, saves resources, but also does not break the key hierarchy in the virtual machine.
  • the computing device 600 is a conventional desktop or laptop notebook and one or more computing devices 600 may constitute a physical platform.
  • the computing device 600 includes a processor 601, a memory 602, and a bus 603, wherein the processor 601 and the memory 602 are directly connected by a bus 603.
  • the computing device 600 also includes a basic input/output system (I/O system) 604 that facilitates transfer of information between various devices within the computing device, and a mass storage device for storing operating systems, applications, and other program modules. 605.
  • I/O system basic input/output system
  • the basic input/output system 604 includes a display 606 for displaying information and an input device 607 such as a mouse or keyboard for user input of information.
  • the display 606 and the input device 607 are both connected to the processor 601 via an input and output controller 608 connected to the bus 603.
  • the basic input/output system 604 can also include an input output controller 608 for receiving and processing input from a plurality of other devices, such as a keyboard, mouse, or electronic stylus.
  • input and output controller 608 also provides output to a display screen, printer, or other type of output device.
  • the mass storage device 605 is connected to a mass storage controller connected to the bus 603 (not shown) Connected to the processor 601.
  • the mass storage device 605 and its associated computer readable medium provide non-volatile storage for the computing device 600. That is, the mass storage device 605 can include a computer readable medium (not shown) such as a hard disk or a CD-ROM drive.
  • the computer readable medium can include computer storage media and communication media.
  • Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Computer storage media include RAM, ROM, EPROM, EEPROM, flash memory or other solid state storage technologies, CD-ROM, DVD or other optical storage, tape cartridges, magnetic tape, magnetic disk storage or other magnetic storage devices.
  • RAM random access memory
  • ROM read-only memory
  • EPROM Erasable programmable read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory or other solid state storage technologies
  • CD-ROM compact discs
  • DVD or other optical storage CD-ROM, DVD or other optical storage
  • tape cartridges magnetic tape
  • magnetic disk storage magnetic disk storage devices
  • the computing device 600 can also be operated by a remote computer connected to the network via a network such as the Internet. That is, computing device 600 can be connected to network 610 via network interface unit 609 connected to said bus 603, or network interface unit 609 can be used to connect to other types of networks or remote computer systems (not shown). .
  • the physical host receives the basic seed acquisition request that is sent by the virtual machine and carries the UUID, and sends the UUID to the KMC.
  • the KMC generates the basic seed according to the UUID, and receives the basis of the KMC feedback.
  • the physical host sends the base seed to the virtual machine.
  • the virtual machine creates a root key of the VTPM based on the base seed.
  • the VTPM uses the root key to create a key for the virtual machine to protect the virtual machine.
  • the present invention does not rely on any physical host, and distributes a base seed for a virtual machine through a third-party device, so that when the virtual machine is migrated from one physical host to another, the same root key can be created through the base seed. Not only reduces operational complexity, saves resources, but also does not break the key hierarchy in the virtual machine.
  • the security protection system of the VTPM provided by the foregoing embodiment is only exemplified by the division of the foregoing functional modules when protecting the security of the VTPM. In practical applications, the root can be rooted.
  • the above function assignment is performed by different functional modules as needed, that is, the internal structure of the VTPM security protection system is divided into different functional modules to complete all or part of the functions described above.
  • the security protection system of the VTPM provided by the foregoing embodiment is the same as the embodiment of the security protection method of the VTPM, and the specific implementation process is described in detail in the method embodiment, and details are not described herein again.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Abstract

一种基于VTPM对虚拟机进行安全保护的方法及系统,属于互联网技术领域。该方法包括:物理主机接收虚拟机发送的基础种子获取请求,该基础种子获取请求中至少携带UUID(201);物理主机将UUID发送至KMC(202),以便KMC根据UUID生成基础种子;物理主机接收KMC反馈的基础种子(204),将基础种子发送至虚拟机(205),以便虚拟机根据基础种子创建VTPM的根密钥,该根密钥用于VTPM为虚拟机创建密钥以保护虚拟机的安全。本方法不依赖于任一物理主机,通过第三方设备为虚拟机派发基础种子,从而在虚拟机从一个物理主机迁移到另一个物理主机上时,通过基础种子即可创建出相同的根密钥,不仅降低了操作复杂度、节省了资源,而且不会破坏虚拟机中的密钥层次。

Description

基于VTPM对虚拟机进行安全保护的方法及系统 技术领域
本发明涉及互联网技术领域,特别涉及一种基于VTPM对虚拟机进行安全保护的方法及系统。
背景技术
在现代生活中,互联网为用户的生活带来了极大的便利,同时也滋生了很多欺诈和犯罪行为,加上互联网上客观存在的各种各样的漏洞,就衍生出一系列信息安全问题。随着互联网日益深入到政治、军事、经济、文化、生活的方方面面,信息安全已成为影响国家安全、社会稳定、经济发展的重大问题,必须采取有力措施保障信息安全。
以对虚拟机的安全进行保护为例,当前主要通过物理主机中的TPM为虚拟机中的VTPM(Virtualizing the Trusted Platform Module,虚拟可信平台模块)创建根密钥,VTPM利用该根密钥为虚拟机创建密钥保护体系,以保护虚拟机的敏感信息、存储虚拟环境度量值、为虚拟机提供远程证明等。对于VTPM对虚拟机进行安全保护的过程如下:
TPM为物理主机创建AIK(Attestation Identity Key,证言身份密钥),隐私CA(Certification Authority,证书)对所创建的AIK进行签名后,TPM将签名后的AIK及Quote(引用)命令发送至物理主机上的任一VTPM,该VTPM通过采用签名后的AIK及Quote命令,为虚拟机创建EK`,并基于EK`为虚拟机创建AIK`,进而基于所创建的EK`和AIK`对虚拟机的安全进行保护。
在实现本发明的过程中,发明人发明现有技术至少存在以下问题:
在上述过程中,VTPM得以对虚拟机进行安全保护主要依赖于TPM所创建的AIK,而当虚拟机从一个物理主机迁移到另一个物理主机上时,VTPM 为虚拟机创建的密钥保护体系将不再适用,此时需要在新的物理主机上为虚拟机重新创建新的密钥保护体系,该过程不仅操作复杂、资源消耗较大,且破坏了虚拟机中的密钥层次。
发明内容
为了解决相关技术的问题,本发明实施例提供了一种基于VTPM对虚拟机进行安全保护的方法及系统。
第一方面,本发明实施例提供了一种基于VTPM对虚拟机的安全进行保护的方法,该方法包括:当虚拟机在虚拟平台上初次运行时,虚拟机向物理主机发送基础种子获取请求,该基础种子获取请求中携带UUID(Universally Unique Identifier,通用唯一标识码)等信息。物理主机接收虚拟机发送的基础种子获取请求,并将基础种子获取请求中所携带的UUID发送至KMC(Key Management Center,密钥管理中心)。KMC基于该UUIID生成基础种子,并将所生成的基础种子发送至虚拟机。当接收机到KMC发送的基础种子,虚拟机根据基础种子为VTPM创建根密钥,进而创建密钥保护体系。由于该基础种子并不依赖于物理主机,而是由KMC进行派发,因而当虚拟机从一个物理主机上迁移到另一个物理主机时,虚拟机可根据该基础种子重新为VTPM创建密钥保护体系,以保护虚拟机中数据安全。
在一个可能的设计中,物理主机可根据预先配置的KMC地址,有针对性地向该KMC地址所指向的KMC发送密钥保护请求。当接收物理主机发送的密钥保护请求时,KMC从密钥数据库中随机获取一个非对称密钥,存储该非对称密钥中的私钥,同时将该非对称密钥中的公钥发送至物理主机。物理主机接收KMC发送的公钥,并采用该公钥对UUID及其他信息(例如创建者、物理地址等)进行加密后,发送至KMC。物理主机通过采用公钥对待发送至KMC的UUID及其他信息进行加密,避免了UUID及其他信息在发送至KMC的过程中被其他用户截获,提高了虚拟机的信息安全。
在一个可能的设计中,物理主机中设置有第一TPM,该第一TPM用于存储物理主机内不同层次的密钥,在物理主机与KMC的交互中,物理主机可从该第一TPM中调用KMC所发送的公钥,对待发送至KMC的数据进行加密,并对KMC发送的数据进行解密,从而保证与KMC之间交互的数据安全。
在一个可能的设计中,KMC采用存储的私钥对生成的基础种子进行加密,并将加密后的基础种子发送至物理主机。当接收到KMC采用私钥加密后的基础种子,物理主机从第一TPM中调用公钥,并使用公钥对该加密后的基础种子进行解密,得到基础种子。通过对基础种子进行加密,有效地保证了基础种子的安全。
在一个可能的设计中,KMC中设置有第二TPM,当接收到物理主机发送的UUID时,KMC生成一对对称密钥,从OpenSSL库中调用随机数生成函数,并以UUID和对称密钥作为随机数生成函数的参数,生成基础种子。
在一个可能的设计中,KMC将所生成的基础种子及UUID存储到数据库中(如备份数据库中),在使用过程中,即便物理平台的第一TPM或主板损坏,虚拟机仍然可从KMC中获取到基础种子,进而根据基础种子恢复出相同的根密钥,创建相同的密钥体系,从而有效地防止了虚拟机中的数据丢失。
第二方面,本发明实施例提供了一种基于VTPM对虚拟机的安全保护的体系,该体系包括:虚拟机、物理主机、KMC。其中,物理主机内设置有第一TSS和第一TPM,第一TSS可为外部设备(如虚拟机、KMC等)访问TPM提供接口;虚拟机中安装有多个应用程序,可触发虚拟机执行不同的操作,虚拟机内设置有第二TSS和VTPM等,第二TSS可为外部设备访问VTPM提供接口;KMC内设置有备份数据库、密钥数据库等多个数据库。
当虚拟机在虚拟平台上初次运行时,虚拟机向物理主机发送基础种子获 取请求,该基础种子获取请求中携带UUID等信息。物理主机接收虚拟机发送的基础种子获取请求,并将基础种子获取请求中所携带的UUID发送至KMC。KMC基于该UUIID生成基础种子,并将所生成的基础种子发送至虚拟机。当接收机到KMC发送的基础种子,虚拟机根据基础种子为VTPM创建根密钥,进而创建密钥保护体系。由于该基础种子并不依赖于物理主机,而是由KMC进行派发,因而当虚拟机从一个物理主机上迁移到另一个物理主机时,虚拟机可根据该基础种子重新为VTPM创建密钥保护体系,以保护虚拟机中数据安全。
在一个可能的设计中,物理主机可根据预先配置的KMC地址,有针对性地向该KMC地址所指向的KMC发送密钥保护请求。当接收物理主机发送的密钥保护请求时,KMC从密钥数据库中随机获取一个非对称密钥,存储该非对称密钥中的私钥,同时将该非对称密钥中的公钥发送至物理主机。物理主机接收KMC发送的公钥,并采用该公钥对UUID及其他信息(例如创建者、物理地址等)进行加密后,发送至KMC。物理主机通过采用公钥对待发送至KMC的UUID及其他信息进行加密,避免了UUID及其他信息在发送至KMC的过程中被其他用户截获,提高了虚拟机的信息安全。
在一个可能的设计中,物理主机中设置有第一TPM,该第一TPM用于存储物理主机内不同层次的密钥,在物理主机与KMC的交互中,物理主机可从该第一TPM中调用KMC所发送的公钥,对待发送至KMC的数据进行加密,并对KMC发送的数据进行解密,从而保证与KMC之间交互的数据安全。
在一个可能的设计中,KMC采用存储的私钥对生成的基础种子进行加密,并将加密后的基础种子发送至物理主机。当接收到KMC采用私钥加密后的基础种子,物理主机从第一TPM中调用公钥,并使用公钥对该加密后的基础种子进行解密,得到基础种子。通过对基础种子进行加密,有效地保证了基础种子的安全。
在一个可能的设计中,KMC中设置有第二TPM,当接收到物理主机发送的UUID时,KMC生成一对对称密钥,从OpenSSL库中调用随机数生成函数,并以UUID和对称密钥作为随机数生成函数的参数,生成基础种子。
在一个可能的设计中,KMC将所生成的基础种子及UUID存储到数据库中(如密钥备份数据库中),在使用过程中,即便物理平台的第一TPM或主板损坏,虚拟机仍然可从KMC中获取到基础种子,进而根据基础种子恢复出相同的根密钥,创建相同的密钥体系,从而有效地防止了虚拟机中的数据丢失。
第三方面,本发明实施例提供了一种计算设备,该计算设备包括:存储器、处理器和总线,其中,所述存储器和所述处理器通过总线直连;
所述存储器用于存放计算机指令,所述处理器用于执行所述存储器存储的计算机指令;当所述计算机设备运行时,所述处理器运行计算机指令,使得所述计算机设备执行上述第一方面所述的基于VTPM对虚拟机进行安全保护的方法。
本发明实施例提供的技术方案来带的有益效果是:
物理主机接收虚拟机发送的至少携带UUID的基础种子获取请求,并将UUID发送至KMC,由KMC根据UUID生成基础种子,当接收到KMC反馈的基础种子,物理主机将基础种子发送至虚拟机,虚拟机根据基础种子创建VTPM的根密钥,VTPM使用该根密钥为虚拟机创建密钥,以保护虚拟机的安全。本发明不依赖于任一物理主机,通过第三方设备为虚拟机派发基础种子,从而在虚拟机从一个物理主机迁移到另一个物理主机上时,通过基础种子即可创建出相同的根密钥,不仅降低了操作复杂度、节省了资源,而且不会破坏虚拟机中的密钥层次。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的基于VTPM对虚拟机的安全进行保护的方法所涉及到的实施环境的示意图;
图2是本发明另一个实施例提供的一种基于VTPM对虚拟机的安全进行保护的方法流程图;
图3是本发明另一个实施例提供的一种基础种子派发的流程图;
图4是本发明另一个实施例提供的一种根密钥创建流程图;
图5是本发明另一个实施例提供的一种基于VTPM对虚拟机的安全进行保护的系统的结构示意图;
图6是本发明另一个实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明提供的基于VTPM对虚拟机进行安全保护的方法所涉及到的实施环境的示意图,参见图1,该实施环境包括物理主机、虚拟机和KMC。
其中,物理主机包括物理平台、虚拟平台、主机操作系统及由CPU、硬盘等组成的各种功能组件。物理平台为主机所在的平台,物理平台内存储有物理主机的第一TPM,该第一TPM具有保护物理主机、防止非法用户访问等功能。主机操作系统为物理主机运行的操作系统,包括第一TSS(Trusted Software Stack,可信任软件栈)和Libvirt,其中,第一TSS为物理平台外部设备访问第一TPM的接口,可从物理平台的第一TPM中获取保护密钥;Libvirt为一种实现Linux虚拟化功能的Linux API(Application Programming  Interface,应用程序编程接口)。虚拟平台内存储有VTPM,VTPM通过第一TSS可获取第一TPM的保护密钥,例如获取TPM为物理主机创建的AIK、SIK等。主机操作系统使用Libvirt,在虚拟平台创建配置有VTPM的虚拟机。该虚拟机包括客户端操作系统、各种功能组件例如虚拟CPU、硬盘等,该客户端操作系统为虚拟平台管理的虚拟机所运行的操作系统,该客户端操作系统可以为Linux操作系统。
KMC具有备份功能、生成基础种子等功能,包括种子备份数据库、种子生成服务器及第二TPM等。第一TSS通过向KMC中的种子生成服务器发送基础种子生成请求,可触发种子生成服务器生成基础种子。
在一个实施例中,虚拟平台运行在物理平台之上,主机操作系统和客户端操作系统运行在虚拟平台之上。
在另一个实施例中,主机操作系统运行在物理平台之上,虚拟平台集成在主机操作系统之内,客户端操作系统运行在虚拟平台之上。
上述物理主机与KMC及虚拟机之间可通过有线或无线网络进行通信。
基于上述图1所示的基于VTPM对虚拟机进行安全保护的方法所涉及的实施环境,本发明实施例提供了一种基于VTPM对虚拟机进行安全保护的方法,参见图2,本实施例提供的方法流程包括:
201、虚拟机向物理主机发送的基础种子获取请求,该基础种子获取请求中至少携带UUID。
当虚拟机在虚拟平台上初次运行时,VTPM还未为虚拟机创建密钥保护体系,为了保护虚拟机中存储的信息安全,虚拟机可调用API向物理主机的第一TSS发送基础种子获取请求,以通过物理主机将UUID发送至KMC,并根据KMC派发的基础种子为虚拟机创建密钥保护体系。其中,基础种子获取请求中至少携带虚拟机的UUID等。
202、当接收到虚拟机发送的基础种子获取请求,物理主机将UUID 发送至KMC。
当物理主机上的第一TSS接收到虚拟机发送的基础种子获取请求,物理主机上的第一TSS基于预先配置的KMC地址,向KMC发送密钥保护请求。当接收到密钥保护请求时,KMC根据第二TPM生成一个非对称密钥,该非对称密钥包括公钥和私钥。KMC存储非对称密钥中的私钥,并将非对称密钥中的公钥发送至物理主机上的第一TSS。在物理主机与KMC的交互过程中,物理主机使用KMC反馈的公钥对待发送至KMC的数据进行加密、对KMC发送的数据进行解密;KMC使用私钥对待发送至物理主机的数据进行加密、对物理主机发送的数据进行解密。在本实施例中,物理主机发送至KMC的数据包括UUID及其他信息如物理主机的地址、创建者等。
在第一TSS接收到KMC发送的公钥之后,物理主机将该公钥存储至第一TPM,由物理主机的第一TPM负责存储物理主机的加密信息。
将UUID发送至KMC之前,物理主机上的第一TSS还将向对应的第一TPM加载该公钥,以便在后续与KMC进行交互的过程中,可使用第一TPM中的公钥对待发送至KMC的UUID等数据进行加密。具体加载时第一TSS可调用TPM_Load命令加载非对称密钥中的公钥,如果公钥加载失败,则本次VTPM为虚拟机创建密钥保护体系的流程结束,如果公钥加载成功,第一TSS通过调用TPM2_RSA_Encrypt命令,可对UUID及其他信息进行加密,得到第一加密信息,进而通过互联网将第一加密信息发送至KMC。
203、KMC根据UUID生成基础种子。
当接收到基础种子派发请求(包括第一加密信息),KMC根据本地所存储的私钥,对基础种子派发请求中的密文进行解密,得到第一加密信息,包括UUID及其他信息。KMC使用第二TPM,生成一对对称密钥;之后,KMC调用OpenSSL库中的随机数生成函数,以UUID及该对称密钥作为随机数发生器的参数,并基于该参数生成基础种子。
当基础种子生成之后,KMC备份基础种子和UUID,以防止物理主机上 的第一TPM或主板损坏时,虚拟机可再次从KMC中请求到基础种子,从而根据该基础种子恢复出与相同的根密钥,创建相同的密钥保护体系。
204、KMC将基础种子发送至物理主机。
KMC采用非对称密钥中的私钥对基础种子和其他信息进行加密,得到第二加密信息,并通过互联网将第二加密信息发送至物理主机。
205、当接收到KMC反馈的基础种子,物理主机将基础种子发送至虚拟机。
当接收到KMC发送的第二加密信息,第一TSS通过调用TPM2_RSA_Decrypt命令,从第一TPM中获取非对称密钥中的公钥,并采用该公钥对第二加密信息进行解密,得到基础种子及其他信息,进而将基础种子发送至虚拟机。
至此,通过上述步骤201至205完成了基础种子的派发,该过程中KMC根据虚拟机的UUID为对应的虚拟机派发基础种子,即便虚拟机迁移到新的物理主机上,由于该虚拟机的UUID不会改变,虚拟机从KMC中获取到的基础种子也不会改变,因而避免了基础种子的重建。且虚拟机请求派发基础种子的过程和KMC派发基础种子的过程均由物理主机上的第一TPM进行加密,因而间接实现了VTPM和第一TPM之间的绑定关系,有效地保护了VTPM的安全。
对于上述基础种子的派发过程,为了便于理解,下面将以图3为例进行说明。
参见图2,虚拟机在虚拟平台上初次启动后,虚拟机调用API向物理主机发送基础种子获取请求,该基础种子获取请求中至少携带虚拟机的UUID。当接收到基础种子获取请求,物理主机的第一TSS根据配置的KMC地址向KMC发送密钥保护请求,在接收到密钥保护请求之后,KMC根据第二TPM生成一个非对称密钥,KMC保存非对称密钥中的私钥,并将非对称密钥中的公钥发送至物理主机的第一TSS。物理主机的第一TSS加载非对称密钥中的 公钥,如果公钥加载成功,第一TSS通过调用TPM2_RSA_Encrypt命令,采用公钥对UUID及其他信息进行加密,得到第一加密信息,进而将第一加密信息发送至KMC。当接收到第一加密信息时,KMC根据本地所存储的私钥,对第一加密信息进行解密,得到UUID。同时KMC根据第二TPM,生成一对对称密钥,并将UUID及对称密钥作为随机数发生器的参数生成基础种子。KMC备份基础种子及UUID,并采用私钥对基础种子加密,得到第二加密信息,进而将第二加密信息发送至物理主机的第一TSS,由第一TSS根据从第一TPM中读取的公钥对第二加密信息进行解密,得到基础种子,进而将基础种子发送至虚拟机。
206、虚拟机根据基础种子创建VTPM的根密钥。
当接收到物理主机发送的基础种子,虚拟机将基础种子加载到虚拟平台上的第二TSS中,由第二TSS将基础种子加载到VTPM中,进而根据该基础种子为VTPM创建根密钥。在本实施例中,基础种子包括背书基础种子、存储基础种子及平台基础种子,这三种基础种子为由VTPM产生的较大随机数,用于基础对象的派生。针对基础种子的三种类型,虚拟机根据基础种子为VTPM创建的根密钥也有三种类型。例如,如果基础种子为背书基础种子,虚拟机根据背书基础种子为VTPM创建的根密钥为背书密钥;如果基础种子为存储基础种子,虚拟机根据存储基础种子为VTPM创建的根密钥为存储根密钥。其中,背书密钥用于产生背书密钥证书,存储根密钥用于产生多种不同的加密算法。
在本实施例中,虚拟机根据基础种子为VTPM创建根密钥的过程,可参见下述步骤2061~2066。
2061、当虚拟机中指定应用程序运行时,指定应用程序预先为待创建的根密钥指定属性信息。
在为待创建的根密钥指定属性信息时,指定应用程序可调用第二TSS中的API为待创建的根密钥指定属性信息。其中,属性信息包括指定算法类型、 密钥参数和密钥描述等。
2062、虚拟机判断本地是否已为VTPM创建虚拟背书密钥,如果已为VTPM创建虚拟背书密钥,则执行步骤2063;如果未为VTPM创建虚拟背书密钥,虚拟机根据背书基础种子,为VTPM创建虚拟背书密钥。
在本实施例中,虚拟背书密钥用于对属主发送的数据进行加密,其中,属主为虚拟机的拥有者。虚拟机根据背书基础种子,创建虚拟背书密钥时,第二TSS通过调用TPM2_CreatePrimary命令,从VTPM中获取背书基础种子,并基于该背书基础种子为VTPM创建虚拟背书密钥。在该过程中,如果第二TSS接收到VTPM返回的句柄,则说明虚拟背书密钥创建成功,第二TSS将虚拟背书密钥持久到VTPM中,并执行步骤2063,如果第二TSS未接收到VTPM返回的句柄,则说明虚拟背书密钥创建失败,流程结束。
2063、虚拟机判断是否已为VTPM创建了属主,如果已为VTPM创建了属主,则执行步骤2064,如果未为VTPM创建属主,虚拟机根据存储基础种子,为VTPM创建属主。
当判断出未为VTPM创建属主,虚拟机将根据基础种子创建一个指定会话,该指定会话为由一个第二TSS到VTPM的会话。虚拟机通过修改指定会话的存储控制域(Storage Hierachy)的授权数据(Auth value)为VTPM创建属主。在该过程中,虚拟机还为属主权限设置了属主权限,规定属主可以控制VTPM资源的分配,例如属主可控制存储控制域的开启和关闭、创建根密钥、将密钥对象持久化保存到TPM的非易失性存储介质等,但属主不能直接访问密钥,因此,需要由第二TSS管理属主口令,该属主口令可以为随机值或特定值。如果属主口令为一个随机值,则由第二TSS生成保存;如果属主口令为一个特定值,则该特定值可以为第二TSS代码固定值等。
2064、虚拟机根据属主授权数据及预先指定的密钥参数,创建存储根密钥。
第二TSS使用属主授权数据和指定应用程序预先指定的密钥参数,通过 调用TPM2_CreatePrimary命令,在VTPM中为VTPM创建存储根密钥,在创建存储根密钥的过程中,如果第二TSS接收到存储根密钥句柄,则说明在VTPM中已成功创建了存储根密钥。当然,除了接收到存储根密钥句柄外,第二TSS还将接收到保存密钥blob等。
2065、当存储根密钥创建成功之后,虚拟平台上的TSS将存储根密钥持久化到VTPM的非易失性存储介质中。
当存储根密钥创建成功之后,第二TSS向VTPM发送TPM2_EvictControl命令,VTPM通过执行TPM2_EvictControl命令,将存储根密钥持久化到非易失性存储介质中。通过将存储根密钥持久化到非易失性存储介质中,当客户端操作系统重新启动时,虚拟机无需重新加载存储根密钥,且存储根密钥不会被其他对象置换出虚拟机的内存。
2066、虚拟机生成存储根密钥的密钥索引,并返回给指定应用程序。
第二TSS保存存储根密钥句柄及保存密钥blob,例如将该存储根密钥句柄及保存密钥blob保存在易失性存储介质中。同时,第二TSS还将根据存储根密钥生成存储根密钥索引,并将该存储根密钥索引发送至指定应用程序。
对于虚拟机根据基础种子为VTPM创建根密钥的过程,下面将以图4为例进行详述。
(1)、虚拟机中的指定应用程序调用第二TSS中的API为待创建的根密钥指定属性信息。
(2)、虚拟机判断本地是否已为VTPM创建虚拟背书密钥,如果未为VTPM创建虚拟背书密钥,第二TSS通过调用TPM2_CreatePrimary命令,从VTPM中获取背书基础种子,并基于该背书基础种子为VTPM创建虚拟背书密钥,在该过程中,如果第二TSS接收到VTPM返回的句柄,则说明虚拟背书密钥创建成功。
(3)、虚拟机判断是否已为VTPM创建了属主,如果未为VTPM创建属主,虚拟机根据存储基础种子创建一个指定会话,该指定会话为一个由第 二TSS到VTPM的会话,虚拟机通过修改指定会话的存储控制域(Storage Hierachy)的授权数据(Auth value)为VTPM创建属主。
(4)、第二TSS使用属主授权数据和指定应用程序预先指定的密钥参数,通过调用TPM2_CreatePrimary命令,在VTPM中为VTPM创建存储根密钥,在创建存储根密钥的过程中,如果第二TSS接收到存储根密钥句柄,则说明在VTPM中已成功创建了存储根密钥。当然,除了接收到存储根密钥句柄外,虚第二TSS还将接收到保存密钥blob等。
(5)、第二TSS向VTPM发送TPM2_EvictControl命令,VTPM通过执行该TPM2_EvictControl命令,将存储根密钥持久化到非易失性存储介质中。
(6)、第二TSS保存存储根密钥句柄及保存密钥blob,同时根据存储根密钥生成存储根密钥索引,并将该存储根密钥索引发送至指定应用程序。
本发明实施例提供的方法,物理主机接收虚拟机发送的至少携带UUID的基础种子获取请求,并将UUID发送至KMC,由KMC根据UUID生成基础种子,当接收到KMC反馈的基础种子,物理主机将基础种子发送至虚拟机,虚拟机根据基础种子创建VTPM的根密钥,VTPM使用该根密钥为虚拟机创建密钥,以保护虚拟机的安全。本发明不依赖于任一物理主机,通过第三方设备为虚拟机派发基础种子,从而在虚拟机从一个物理主机迁移到另一个物理主机上时,通过基础种子即可创建出相同的根密钥,不仅降低了操作复杂度、节省了资源,而且不会破坏虚拟机中的密钥层次。
参见图5,本发明实施例提供了一种基于VTPM对虚拟机进行安全保护的系统,该系统包括:虚拟机501、物理主机502、密钥管理中心KMC503;
物理主机502,用于接收虚拟机501发送的基础种子获取请求,基础种子获取请求中至少携带通用唯一标识码UUID;
物理主机502,还用于将UUID发送至KMC503;
KMC503,用于根据UUID生成基础种子,并将基础种子发送至物理主机502;
物理主机502,还用于接收KMC503反馈的基础种子,将基础种子发送至虚拟机501;
虚拟机501,用于根据基础种子创建虚拟可信平台模板VTPM的根密钥,该根密钥用于VTPM为虚拟机创建密钥以保护虚拟机的安全。
在本发明的另一个实施例中,物理主机502,还用于基于预先配置的KMC地址,向KMC地址指定的KMC503发送密钥保护请求;
KMC503,还用于在接收到密钥保护请求时获取非对称密钥,该非对称密钥包括公钥和私钥;
KMC503,还用于存储私钥,并将公钥发送至物理主机502;
物理主机502,还用于接收KMC503反馈的公钥,使用公钥对待发送至KMC的UUID进行加密;
KMC503,还用于使用私钥解密出UUID。
在本发明的另一个实施例中,物理主机502,还用于向对应的第一可信平台模块TPM加载公钥,以便使用第一TPM中的公钥对待发送至KMC503的UUID进行加密。
在本发明的另一个实施例中,KMC503,还用于使用私钥加密向物理主机502反馈的基础种子;
物理主机502,还用于使用公钥解密出KMC503反馈的基础种子。
在本发明的另一个实施例中,KMC503,还用于根据对应的第二TPM生成对称密钥,将UUID和对称密钥作为随机数发生器的参数,使得随机数发生器基于参数生成基础种子。
在本发明的另一个实施例中,KMC503,还用于备份基础种子和UUID,以便虚拟机501再次从KMC请求到基础种子,使得虚拟机基于基础种子恢复出相同的根密钥。
本发明实施例提供的系统,物理主机接收虚拟机发送的至少携带UUID的基础种子获取请求,并将UUID发送至KMC,由KMC根据UUID生成基础种子,当接收到KMC反馈的基础种子,物理主机将基础种子发送至虚拟机,虚拟机根据基础种子创建VTPM的根密钥,VTPM使用该根密钥为虚拟机创建密钥,以保护虚拟机的安全。本发明不依赖于任一物理主机,通过第三方设备为虚拟机派发基础种子,从而在虚拟机从一个物理主机迁移到另一个物理主机上时,通过基础种子即可创建出相同的根密钥,不仅降低了操作复杂度、节省了资源,而且不会破坏虚拟机中的密钥层次。
参见图6,其示出了本发明的一个实施例中使用的计算设备600的说明性计算机体系结构。所述计算设备600为常规的台式计算机或者膝上型笔记本,一个或多个计算设备600可构成物理平台。所述计算设备600包括处理器601、存储器602和总线603,其中,处理器601和存储器602通过总线603直连。所述计算设备600还包括帮助计算设备内的各个器件之间传输信息的基本输入/输出系统(I/O系统)604,和用于存储操作系统、应用程序和其他程序模块的大容量存储设备605。
所述基本输入/输出系统604包括有用于显示信息的显示器606和用于用户输入信息的诸如鼠标、键盘之类的输入设备607。其中所述显示器606和输入设备607都通过连接到总线603的输入输出控制器608连接到处理器601。所述基本输入/输出系统604还可以包括输入输出控制器608以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器608还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备605通过连接到总线603的大容量存储控制器(未示 出)连接到处理器601。所述大容量存储设备605及其相关联的计算机可读介质为计算设备600提供非易失性存储。也就是说,所述大容量存储设备605可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。
根据本发明的各种实施例,所述计算设备600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算设备600可以通过连接在所述总线603上的网络接口单元609连接到网络610,或者说,也可以使用网络接口单元609来连接到其他类型的网络或远程计算机系统(未示出)。
综上,本发明实施例提供的计算设备,物理主机接收虚拟机发送的至少携带UUID的基础种子获取请求,并将UUID发送至KMC,由KMC根据UUID生成基础种子,当接收到KMC反馈的基础种子,物理主机将基础种子发送至虚拟机,虚拟机根据基础种子创建VTPM的根密钥,VTPM使用该根密钥为虚拟机创建密钥,以保护虚拟机的安全。本发明不依赖于任一物理主机,通过第三方设备为虚拟机派发基础种子,从而在虚拟机从一个物理主机迁移到另一个物理主机上时,通过基础种子即可创建出相同的根密钥,不仅降低了操作复杂度、节省了资源,而且不会破坏虚拟机中的密钥层次。
需要说明的是:上述实施例提供的VTPM的安全保护系统在保护VTPM的安全时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根 据需要而将上述功能分配由不同的功能模块完成,即将VTPM的安全保护系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的VTPM的安全保护系统与VTPM的安全保护方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

  1. 一种基于VTPM对虚拟机进行安全保护的方法,其特征在于,所述方法包括:
    物理主机接收虚拟机发送的基础种子获取请求,所述基础种子获取请求中至少携带通用唯一标识码UUID;
    所述物理主机将所述UUID发送至密钥管理中心KMC,以便所述KMC根据所述UUID生成基础种子;
    所述物理主机接收所述KMC反馈的所述基础种子,将所述基础种子发送至所述虚拟机,以便所述虚拟机根据所述基础种子创建虚拟可信平台模块VTPM的根密钥,所述根密钥用于所述VTPM为虚拟机创建密钥以保护虚拟机的安全。
  2. 根据权利要求1所述的方法,其特征在于,所述物理主机将所述UUID发送至KMC之前,所述方法还包括:
    所述物理主机基于预先配置的KMC地址,向所述KMC地址指定的所述KMC发送密钥保护请求,使得所述KMC在接收到所述密钥保护请求时获取非对称密钥,所述非对称密钥包括公钥和私钥,所述KMC存储所述私钥;
    所述物理主机接收所述KMC反馈的所述公钥,使用所述公钥对待发送至所述KMC的所述UUID进行加密,以便所述KMC使用所述私钥解密出所述UUID。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    所述物理主机向对应的第一可信平台模块TPM加载所述公钥,以便使用所述第一TPM中的所述公钥对待发送至所述KMC的所述UUID进行加密。
  4. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    所述KMC使用所述私钥加密向所述物理主机反馈的所述基础种子;
    所述物理主机将所述基础种子发送至所述虚拟机之前,所述方法还包括:
    所述物理主机使用所述公钥解密出所述KMC反馈的所述基础种子。
  5. 根据权利要求2所述的方法,其特征在于,所述KMC根据所述UUID生成基础种子,具体为:
    所述KMC根据对应的第二TPM生成对称密钥,将所述UUID和所述对称密钥作为随机数发生器的参数,使得所述随机数发生器基于所述参数生成所述基础种子。
  6. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    所述KMC备份所述基础种子和所述UUID,以便所述虚拟机再次从所述KMC请求到所述基础种子,使得所述虚拟机基于所述基础种子恢复出相同的所述根密钥。
  7. 一种基于VTPM对虚拟机进行安全保护的系统,其特征在于,所述系统包括:虚拟机、物理主机、密钥管理中心KMC;
    所述物理主机,用于接收虚拟机发送的基础种子获取请求,所述基础种子获取请求中至少携带通用唯一标识码UUID;
    所述物理主机,还用于将所述UUID发送至所述KMC;
    所述KMC,用于根据所述UUID生成基础种子,并将所述基础种子发送至所述物理主机;
    所述物理主机,还用于接收所述KMC反馈的所述基础种子,将所述基础种子发送至所述虚拟机;
    所述虚拟机,用于根据所述基础种子创建虚拟可信平台模板VTPM的根密钥,所述根密钥用于所述VTPM为虚拟机创建密钥以保护虚拟机的安全。
  8. 根据权利要求7所述的系统,其特征在于,所述物理主机,还用于基于预先配置的KMC地址,向所述KMC地址指定的所述KMC发送密钥保护请求;
    所述KMC,还用于在接收到所述密钥保护请求时获取非对称密钥,所述非对称密钥包括公钥和私钥;
    所述KMC,还用于存储所述私钥,并将所述公钥发送至所述物理主机;
    所述物理主机,还用于接收所述KMC反馈的所述公钥,使用所述公钥对待发送至所述KMC的所述UUID进行加密;
    所述KMC,还用于使用所述私钥解密出所述UUID。
  9. 根据权利要求8所述的系统,其特征在于,所述物理主机,还用于向对应的第一可信平台模块TPM加载所述公钥,以便使用所述第一TPM中的所述公钥对待发送至所述KMC的所述UUID进行加密。
  10. 根据权利要求8所述的系统,其特征在于,所述KMC,还用于使用所述私钥加密向所述物理主机反馈的所述基础种子;
    所述物理主机,还用于使用所述公钥解密出所述KMC反馈的所述基础种子。
  11. 根据权利要求8所述的系统,其特征在于,所述KMC,还用于根据对应的第二TPM生成对称密钥,将所述UUID和所述对称密钥作为随机数发生器的参数,使得所述随机数发生器基于所述参数生成所述基础种子。
  12. 根据权利要求8所述的系统,其特征在于,所述KMC,还用于备份所述基础种子和所述UUID,以便所述虚拟机再次从所述KMC请求到所述基础种子,使得所述虚拟机基于所述基础种子恢复出相同的所述根密钥。
  13. 一种计算机设备,其特征在于,包括:存储器、处理器和总线,其中,所述存储器和所述处理器通过所述总线直连;
    所述存储器用于存放计算机指令,所述处理器用于执行所述存储器存储的计算机指令;当所述计算机设备运行时,所述处理器运行计算机指令,使得所述计算机设备执行权利要求1至6任一项所述的基于VTPM对虚拟机进行安全保护的方法。
PCT/CN2016/097818 2016-01-27 2016-09-01 基于vtpm对虚拟机进行安全保护的方法及系统 WO2017128720A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP16887596.1A EP3306509B1 (en) 2016-01-27 2016-09-01 Vtpm-based method and system for virtual machine security and protection
US15/892,594 US10922117B2 (en) 2016-01-27 2018-02-09 VTPM-based virtual machine security protection method and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610057356.8 2016-01-27
CN201610057356.8A CN105718794B (zh) 2016-01-27 2016-01-27 基于vtpm对虚拟机进行安全保护的方法及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/892,594 Continuation US10922117B2 (en) 2016-01-27 2018-02-09 VTPM-based virtual machine security protection method and system

Publications (1)

Publication Number Publication Date
WO2017128720A1 true WO2017128720A1 (zh) 2017-08-03

Family

ID=56155331

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/097818 WO2017128720A1 (zh) 2016-01-27 2016-09-01 基于vtpm对虚拟机进行安全保护的方法及系统

Country Status (4)

Country Link
US (1) US10922117B2 (zh)
EP (1) EP3306509B1 (zh)
CN (1) CN105718794B (zh)
WO (1) WO2017128720A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297687A (zh) * 2018-03-21 2019-10-01 阿里巴巴集团控股有限公司 基于虚拟主机的数据交互方法、装置及系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718794B (zh) 2016-01-27 2018-06-05 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及系统
EP3516573A1 (en) * 2016-09-22 2019-07-31 Telefonaktiebolaget LM Ericsson (PUBL) Version control for trusted computing
US10621350B2 (en) * 2017-10-02 2020-04-14 Microsoft Technology Licensing, Llc System integrity using attestation for virtual trusted platform module
CN109858265B (zh) * 2018-11-22 2022-01-28 海光信息技术股份有限公司 一种加密方法、装置及相关设备
CN111159716B (zh) * 2019-12-24 2022-03-25 联想(北京)有限公司 一种安全保护方法及电子设备
US11468200B2 (en) * 2020-04-30 2022-10-11 Dell Products L.P. System and method for cryptographically coupling a media controller to a baseboard management controller
CN114124366A (zh) * 2020-08-31 2022-03-01 华为技术有限公司 一种可信芯片的密钥生成方法及相关设备
CN113282910B (zh) * 2021-04-22 2023-07-18 中国科学院软件研究所 一种可信计算信任根的根密钥保护方法
US20240012665A1 (en) * 2022-07-05 2024-01-11 Citrix Systems, Inc. Optimized creation of identity information for provisioned virtual machines

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977183A (zh) * 2010-10-09 2011-02-16 南京博智软件科技有限公司 适用多类终端设备的高可信数字内容服务方法
CN103020543A (zh) * 2012-12-31 2013-04-03 北京启明星辰信息技术股份有限公司 一种虚拟磁盘映像加密管理系统及方法
WO2015084144A1 (en) * 2013-12-04 2015-06-11 Mimos Berhad A system and method to secure virtual machine images in cloud computing
CN105224385A (zh) * 2015-09-03 2016-01-06 成都中机盈科科技有限公司 一种基于云计算的虚拟化系统及方法
CN105718794A (zh) * 2016-01-27 2016-06-29 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及系统

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060072747A1 (en) * 2001-03-30 2006-04-06 Wood Matthew D Enhancing entropy in pseudo-random number generators using remote sources
EP1911191B1 (en) * 2005-08-05 2017-12-06 Hewlett-Packard Enterprise Development LP System, method and apparatus for cryptography key management for mobile devices
US8522018B2 (en) * 2006-08-18 2013-08-27 Fujitsu Limited Method and system for implementing a mobile trusted platform module
US8151262B2 (en) * 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US9501513B2 (en) * 2007-08-30 2016-11-22 Sap Se Advanced concurrency management in enterprise service oriented architecture based integrated business processing of distributed application components
US8249257B2 (en) * 2007-09-28 2012-08-21 Intel Corporation Virtual TPM keys rooted in a hardware TPM
US8498417B1 (en) * 2007-12-27 2013-07-30 Emc Corporation Automation of coordination of encryption keys in a SAN based environment where an encryption engine, device management, and key management are not co-located
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
US9559842B2 (en) * 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US8201747B2 (en) * 2008-11-26 2012-06-19 Qsecure, Inc. Auto-sequencing financial payment display card
SG174900A1 (en) * 2009-03-26 2011-11-28 Xped Holdings Pty Ltd An arrangement for managing wireless communication between devices
US8375437B2 (en) * 2010-03-30 2013-02-12 Microsoft Corporation Hardware supported virtualized cryptographic service
US20120101956A1 (en) * 2010-10-26 2012-04-26 International Business Machines Corporation Autonomous validation of received shipments
US8443365B2 (en) * 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance
US8554730B2 (en) * 2011-07-29 2013-10-08 International Business Machines Corporation Adding a key column to a table to be replicated
US9515999B2 (en) * 2011-12-21 2016-12-06 Ssh Communications Security Oyj Automated access, key, certificate, and credential management
US9037854B2 (en) * 2013-01-22 2015-05-19 Amazon Technologies, Inc. Privileged cryptographic services in a virtualized environment
US10599697B2 (en) * 2013-03-15 2020-03-24 Uda, Llc Automatic topic discovery in streams of unstructured data
US9519498B2 (en) * 2013-12-24 2016-12-13 Microsoft Technology Licensing, Llc Virtual machine assurances
US9538311B2 (en) * 2014-02-04 2017-01-03 Texas Instruments Incorporated Auto-provisioning for internet-of-things devices
US9686077B2 (en) * 2014-03-06 2017-06-20 Microsoft Technology Licensing, Llc Secure hardware for cross-device trusted applications
US9716623B2 (en) * 2014-05-22 2017-07-25 Verizon Patent And Licensing Inc. Automatic and secure activation of a universal plug and play device management device
US9628502B2 (en) * 2014-06-09 2017-04-18 Meadow Hills, LLC Active attack detection system
US20150372813A1 (en) * 2014-06-23 2015-12-24 Entersekt, LLC System and method for generating a random number
US10514982B2 (en) * 2014-08-21 2019-12-24 Datrium, Inc. Alternate storage arrangement in a distributed data storage system with key-based addressing
EP3082355A1 (en) * 2015-04-17 2016-10-19 Gemalto Sa A method for controlling remotely the permissions and rights of a target secure element
US10289610B2 (en) * 2015-08-17 2019-05-14 Mcafee, Llc Anonymous device operation
US10409837B1 (en) * 2015-12-22 2019-09-10 Uber Technologies, Inc. Asynchronous notifications for a datastore of a distributed system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977183A (zh) * 2010-10-09 2011-02-16 南京博智软件科技有限公司 适用多类终端设备的高可信数字内容服务方法
CN103020543A (zh) * 2012-12-31 2013-04-03 北京启明星辰信息技术股份有限公司 一种虚拟磁盘映像加密管理系统及方法
WO2015084144A1 (en) * 2013-12-04 2015-06-11 Mimos Berhad A system and method to secure virtual machine images in cloud computing
CN105224385A (zh) * 2015-09-03 2016-01-06 成都中机盈科科技有限公司 一种基于云计算的虚拟化系统及方法
CN105718794A (zh) * 2016-01-27 2016-06-29 华为技术有限公司 基于vtpm对虚拟机进行安全保护的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3306509A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110297687A (zh) * 2018-03-21 2019-10-01 阿里巴巴集团控股有限公司 基于虚拟主机的数据交互方法、装置及系统
CN110297687B (zh) * 2018-03-21 2023-05-30 阿里巴巴集团控股有限公司 基于虚拟主机的数据交互方法、装置及系统

Also Published As

Publication number Publication date
EP3306509A4 (en) 2018-09-26
EP3306509A1 (en) 2018-04-11
US20180181426A1 (en) 2018-06-28
CN105718794A (zh) 2016-06-29
EP3306509B1 (en) 2019-11-06
CN105718794B (zh) 2018-06-05
US10922117B2 (en) 2021-02-16

Similar Documents

Publication Publication Date Title
WO2017128720A1 (zh) 基于vtpm对虚拟机进行安全保护的方法及系统
US20190238323A1 (en) Key managers for distributed computing systems using key sharing techniques
US9998464B2 (en) Storage device security system
US10841089B2 (en) Key managers for distributed computing systems
US9690954B2 (en) Securing encrypted virtual hard disks
EP3120291B1 (en) Rapid data protection for storage devices
US8595483B2 (en) Associating a multi-context trusted platform module with distributed platforms
US20140270179A1 (en) Method and system for key generation, backup, and migration based on trusted computing
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
US11888980B2 (en) Stateless service-mediated security module
KR20170085503A (ko) 암호화된 템플릿으로부터 암호화된 가상 머신의 안전한 생성 기법
CN104618096B (zh) 保护密钥授权数据的方法、设备和tpm密钥管理中心
KR20140099325A (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
TW202036347A (zh) 資料儲存、驗證方法及裝置
KR20050085678A (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
WO2020042798A1 (zh) 密码运算、创建工作密钥的方法、密码服务平台及设备
JP6293133B2 (ja) 被保護データー集合のネットワーク・ベース管理
US11368291B2 (en) Mutually authenticated adaptive management interfaces for interaction with sensitive infrastructure
CN115600215A (zh) 系统启动方法、系统信息处理方法、装置、设备及其介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16887596

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2016887596

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE