CN108804203A - 基于标签的vTPM私密信息保护方法 - Google Patents
基于标签的vTPM私密信息保护方法 Download PDFInfo
- Publication number
- CN108804203A CN108804203A CN201810620056.5A CN201810620056A CN108804203A CN 108804203 A CN108804203 A CN 108804203A CN 201810620056 A CN201810620056 A CN 201810620056A CN 108804203 A CN108804203 A CN 108804203A
- Authority
- CN
- China
- Prior art keywords
- vtpm
- virtual machine
- labels
- platform
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
Abstract
本发明公开了一种基于标签的vTPM私密信息保护方法,包括:步骤1、系统部署前的初始化工作;步骤2:为每一个虚拟机的vTPM实例分别建立一个vTPM标签;步骤3:从虚拟机的镜像文件中提取vTPM标签,检查vTPM标签相关内容,判断虚拟机和vTPM的对应关系是否正确,进而决定虚拟机是否启动;步骤4:根据步骤3得到的解密vTPM标签的加密信息字段得到的KEY,进行哈希操作、加密、解密、验证哈希值等,对vTPM私密信息进行机密性保护和完整性验证;步骤5:当虚拟机在动态迁移时,安全迁移vTPM的易失性信息、私密信息以及vTPM标签。本发明利用vTPM标签实时地保护vTPM私密信息的机密性、完整性、虚拟机与vTPM实例关联关系的一致性,建立vTPM和物理可信平台模块之间的关联。
Description
技术领域
本发明涉及可信计算与虚拟化安全领域,具体涉及一种基于标签的vTPM私密信息保护方法。
背景技术
可信计算技术可以为云计算平台提供虚拟机完整性验证机制,而vTPM(vTPM,virtual Trusted Platform Module)则是可信计算技术虚拟化的重要组件。虚拟化平台XEN、KVM都有vTPM的实现方案,两者均涉及到可信平台模块(TPM,Trusted PlatformModule)自身非易失性信息的软件模拟,其中包含了背书密钥、访问口令等私密信息,所以本发明将vTPM的非易失性信息称之为vTPM的私密信息,而这些私密信息容易被窃取和滥用。
KVM下的可信平台模块虚拟化技术主要有三类:TPM passthrough实现方式、基于libtpms的全虚拟化可信平台模块实现方式以及用户空间字符设备可信平台模块(CUSETPM,Character Device in Userspace Trusted Platform Module)实现方式,其中后两者属于全虚拟化可信平台模块的实现方式。TPM passthrough实现方式允许虚拟机直接使用物理可信平台模块,同一时刻物理可信平台模块被单个虚拟机独占。基于libtpms的全虚拟化可信平台模块在QEMU进程地址空间内部使用libtpms函数库模拟物理可信平台模块,可分别为每个虚拟机提供单独的vTPM设备,与物理可信平台模块完全脱离关系;用户空间字符设备可信平台模块是基于libtpms的全虚拟化可信平台模块的变种,在QEMU进程空间外部使用libtpms函数库来模拟物理可信平台模块,在宿主机上创建字符设备作为访问接口,在QEMU内部的用户空间字符设备可信平台模块驱动利用该字符设备访问vTPM,与物理可信平台模块完全脱离关系。
KVM下的全虚拟化可信平台模块的不足有:(1)采用libtpms函数库模拟物理可信平台模块的全部功能,与物理可信平台模块完全脱离关系;(2)将vTPM的私密信息存储在宿主机文件中,没有添加任何安全措施;(3)通过QEMU的命令行参数加载对应的vTPM实例,vTPM和虚拟机之间的关联关系薄弱。
现有解决方法的不足在于:(1)依赖于事务性同步扩展技术(TSX,transactionalsynchronization extension),造成vTPM不可迁移;(2)依赖于因特尔的软件防护扩展技术(SGX,software guard extension),需要修改vTPM的源码结构;(3)使用可信平台模块的可迁移密钥对vTPM进行安全防护,无法保证虚拟机和vTPM之间的强关联性;(4)现有的vTPM动态迁移过程没有考虑其私密信息的安全。
发明内容
本发明所要解决的技术问题是提供一种基于标签的vTPM私密信息保护方法,通过一种新的数据结构—vTPM标签,在虚拟机本地运行和动态迁移两个阶段中,利用vTPM标签实时地保护vTPM私密信息的机密性、完整性、虚拟机与vTPM实例关联关系的一致性,并建立vTPM和物理可信平台模块之间的关联。
为解决上述技术问题,本发明采用的技术方案是:
一种基于标签的vTPM私密信息保护方法,包括以下步骤:
步骤1:系统部署前的初始化工作;在每一台宿主机上建立物理可信平台模块的两个不可迁移密钥RSA_local和RSA_mig,并通过证书颁发机构为RSA_mig密钥生成相应的数字证书;
步骤2:为每一个虚拟机的vTPM实例分别建立一个vTPM标签,标签的具体结构为:状态字段、有效期字段、加密信息字段、UUID哈希值字段、QEMU度量值字段、签名算法字段、签名值字段;收集启动虚拟机的进程代码段、虚拟机的UUID,借助于物理可信平台模块的功能填充vTPM标签中的各个字段,最后将vTPM标签存储于虚拟机的QCOW2格式镜像文件的头部扩展中;
步骤3:当虚拟机启动时,从虚拟机的镜像文件中提取vTPM标签,检查vTPM标签的完整性和有效期、启动虚拟机的进程的代码段是否和vTPM标签中记录的一致、虚拟机的UUID是否和vTPM标签中记录的一致三项内容,进而判断虚拟机和vTPM的对应关系是否正确,如果正确,利用物理可信平台模块解密vTPM标签的加密信息字段,并正常启动虚拟机,否则终止虚拟机启动;
步骤4:当虚拟机正常运行时,QEMU会将vTPM的私密信息实时地同步到vTPM实例文件中,通过截获QEMU对于vTPM实例文件的读写操作,根据步骤3得到的解密vTPM标签的加密信息字段得到的KEY,在写入之前进行哈希操作并加密,读取之后进行解密并验证哈希值,实时地对vTPM私密信息进行机密性保护和完整性验证;
步骤5:利用vTPM标签支持不同状态的特性,当虚拟机在动态迁移时,安全迁移vTPM的易失性信息、私密信息以及vTPM标签。
进一步的,所述步骤2具体为:
步骤2.1:对启动虚拟机的进程QEMU的代码段进行度量,生成度量值HASH(QEMU.code),对当前虚拟机的UUID进行度量,生成度量值HASH(UUID);
步骤2.2:创建vTPM标签;初始化状态字段为本地状态;初始化有效期字段为自定义时间段T;从物理可信平台模块中获得一个随机数,物理可信平台模块使用密钥RSA_local来对该随机数进行加密,然后将密文赋值给加密信息字段;初始化UUID哈希值字段为HASH(UUID);初始化QEMU度量值字段为HASH(QEMU.code);初始化签名算法字段为密钥RSA_local的签名算法;物理可信平台模块使用密钥RSA_local对标签的以上信息做签名运算,生成签名值赋值给签名值字段;
步骤2.3:生成虚拟机QCOW2格式镜像文件的一个头部扩展{类型,长度,数据},其中,类型为该头部扩展的唯一标识,数据用来存储vTPM标签,长度为vTPM标签的长度,然后将该头部扩展写入到虚拟机的镜像文件中。
进一步的,所述步骤5具体为:
步骤5.1:目的平台启动空壳虚拟机和空壳vTPM,然后暂停虚拟机运行,等待源端虚拟机的迁入,此时记录当前时间为T1;
步骤5.2:源平台向目的平台发起迁移请求,双方初始化迁移,建立连接;
步骤5.3:源平台更新vTPM标签中的加密信息字段,保证每次迁移过程中,加密使用的KEY都是不同的,防止旧的vTPM私密信息或者vTPM易失性信息的重放;
步骤5.4:源平台更新vTPM标签中的有效期字段为当前时间,这样在目的平台对vTPM标签的有效期进行检查,防止旧的vTPM标签的重放;
步骤5.5:源平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
步骤5.6:源平台向证书颁发机构查询目的平台的数字证书,证书颁发结构返回目的平台的数字证书,提取对应目的平台RSA_mig密钥的公钥;
步骤5.7:源平台利用源平台RSA_mig密钥的私钥和目的平台RSA_mig密钥的公钥转换vTPM标签为迁移状态;
步骤5.8:源平台利用脏页重传的机制,开始传输虚拟机的内存、镜像文件以及vTPM实例文件,此时vTPM实例文件中的信息处于加密状态;
步骤5.9:源平台向目的平台传输vTPM标签;
步骤5.10:目的平台检查vTPM标签的有效期字段是否符合“T1<=vTPM标签的有效期字段的开始时间<=当前时间”,防止旧的vTPM标签的重放;
步骤5.11:目的平台向证书颁发机构查询源平台的数字证书,证书颁发机构返回源平台的数字证书,提取对应源平台RSA_mig的公钥;
步骤5.12:目的平台利用源平台RSA_mig的公钥和目的平台RSA_mig密钥的私钥转换vTPM标签为本地状态;
步骤5.13:目的平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
步骤5.14:源平台暂停虚拟机运行,并开始传输虚拟机的设备状态;
步骤5.15:源平台收集vTPM的设备状态(即易失性信息)vTPM_status,计算vTPM的设备状态的哈希值,然后将vTPM_status||HASH(vTPM_status)打包成package,使用KEY对package进行加密;
步骤5.16:源平台传输加密后的package;
步骤5.17:目的平台使用KEY值解密package,得到vTPM的设备状态,然后校验vTPM的设备状态的哈希值;
步骤5.18:目的平台重新加载vTPM实例文件,同步源平台虚拟机暂停前对vTPM私密信息的所有修改;
步骤5.19:目的平台加载vTPM的设备状态;
步骤5.20:迁移结束,源平台销毁虚拟机,目的平台运行虚拟机。
与现有技术相比,本发明的有益效果是:(1)vTPM标签建立了vTPM和物理可信平台模块之间的关联关系;(2)通过使用物理可信平台模块来对vTPM的私密信息的机密性和完整性同时进行保护;(3)vTPM标签中的QEMU度量值字段和UUID哈希值字段建立了虚拟机和vTPM之间的强关联关系;(4)将vTPM标签存储于虚拟机的镜像文件中,使用物理可信平台模块来保护标签的完整性,便于管理;(5)根据vTPM标签设计了安全的vTPM动态迁移协议,保证了迁移前后vTPM私密信息的机密性、完整性以及vTPM和虚拟机之间的关联关系。
附图说明
图1是vTPM标签的结构图;
图2是QCOW2文件的头部扩展结构图;
图3是本地存储保护内核模块工作原理图;
图4是本地存储保护代理工作原理图;
图5是vTPM标签状态转换函数exchange(vTPM_label)的伪代码;
图6是vTPM动态迁移协议图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1描述了vTPM标签的详细结构,包括:状态字段(status)、有效期字段(time,包括开始时间start和结束时间end)、加密信息字段(secret)、UUID哈希值字段(uuid_hash)、QEMU度量值字段(qemu_digest)、签名算法字段(alg)、签名值字段(sig)。
(1)状态(status):vTPM标签有两种存在状态,本地状态和迁移状态;(2)有效期(time):在时间段[start,end]内vTPM标签是有效的,过期的vTPM标签需要被重新生成;(3)加密信息(secret):vTPM私密信息保护所使用对称加密密钥的密文,利用物理可信平台模块的密钥RSA_local对该对称加密密钥进行加密;(4)UUID哈希值(uuid_hash):UUID是在云平台中虚拟机的唯一标识,设置其哈希值是为了建立vTPM标签与虚拟机之间的一一对应关系,同时加密信息字段建立了vTPM标签和vTPM之间的一一对应关系,最终建立起vTPM和虚拟机之间的一一对应关系;(5)QEMU度量值(qemu_digest):在KVM虚拟化平台中,QEMU是虚拟机监控器(VMM,virtual machine monitor)的一部分,同时也是vTPM的访问者,该字段是对QEMU代码段进行哈希运算得到的值,作为vTPM的访问者身份验证的证据,防止被篡改劫持的QEMU或者其他恶意程序访问vTPM;(6)签名算法(alg):签名值字段的生成算法;(7)标签的签名值(sig):由物理可信平台模块的密钥RSA_local对以上字段进行签名得到的值,防止标签被恶意篡改。
图2描述了QCOW2格式的虚拟机镜像文件的头部扩展的格式,本发明将上述vTPM标签存储于vTPM对应的虚拟机所拥有的镜像文件的头部扩展中,具体是通过构造一个头部扩展结构体{类型,长度,vTPM标签},最后将该头部扩展结构体写入到虚拟机的镜像文件中。
图3描述了本地存储保护内核模块的工作原理,涉及到三个子模块。第一个子模块“vTPM标签管理”提供vTPM标签的生成、完整性和有效期验证、更新和销毁功能;第二个子模块“TPM命令管理”子模块向vTPM标签管理子模块提供物理可信平台模块的各种服务,尤其是密钥RSA_local和RSA_mig的加解密、签名、验证等功能;第三个子模块利用“vTPM标签管理”子模块提供的功能对虚拟机的启动过程进行检查,首先对vTPM标签的完整性和有效期进行检查,然后根据vTPM标签的UUID哈希值字段检查虚拟机的UUID,最后根据vTPM标签的QEMU度量值字段检查启动虚拟机的进程的代码段完整性,通过上述三项检查之后,该子模块利用物理可信平台模块的RSA_local密钥对vTPM标签的加密信息字段进行解密得到KEY,最终将KEY传给QEMU进程中的本地存储保护代理。
图4描述了本地存储保护代理的工作原理,涉及到两个引擎—完整性保护引擎和机密性保护引擎。完整性保护引擎扩展vTPM私密信息的存储结构,用于存储对vTPM私密信息进行哈希运算得到的值,然后使用物理TPM的密钥RSA_local对哈希运算结果进行加密,防止其被恶意篡改。机密性保护引擎将vTPM私密信息加密存储在vTPM实例文件中,防止信息泄露,加密算法为对称加密算法,需要的KEY由本地存储保护内核模块提供。
图5描述了vTPM标签的状态转换函数的伪代码,该函数用于vTPM动态迁移中,以增强动态迁移的安全性。
vTPM标签存在两种状态:本地状态和迁移状态,其中迁移状态是一种临时状态,只出现在迁移的过程中。本地状态是指该vTPM标签的签名值字段由本地物理可信平台模块的密钥RSA_local生成,标签中的加密信息字段由本地物理可信平台模块的密钥RSA_local加密,即:
vTPM_label.sig=RSA_local.privsign(vTPM_label),
vTPM_label.secret=RSA_local.pubencrypt(KEY)。迁移状态是指该vTPM标签的签名值字段由迁移源主机物理可信平台模块的密钥RSA_mig生成,标签中的加密信息字段由迁移目的主机物理可信平台模块的密钥RSA_mig加密,即:
vTPM_label.sig=src.RSA_mig.privsign(vTPM_label),
vTPM_label.secret=dst.RSA_mig.pubencrypt(KEY)。其中src、dst分别代表迁移源主机和迁移目的主机,pub和priv分别表示公钥和私钥。
vTPM标签的状态转换过程具体如下:
步骤1:判断当前vTPM标签的状态,如果是本地状态,则进入步骤2,如果是迁移状态,则进入步骤4,否则,状态转换失败,退出;
步骤2:使用RSA_local的公钥验证vTPM标签的完整性,如果验证失败,则状态转换失败,退出,否则,进入步骤3;
步骤3:使用RSA_local的私钥解密vTPM标签中的加密信息字段得到KEY,然后使用迁移目的主机RSA_mig的公钥对KEY进行加密,然后将密文赋值给vTPM标签的加密信息字段,最后使用迁移源主机RSA_mig的私钥对vTPM标签重新签名,更新vTPM标签的签名值字段,状态转换成功,退出;
步骤4:使用迁移源主机RSA_mig的公钥验证vTPM标签的完整性,如果验证失败,则状态转换失败,退出,否则,进入步骤5;
步骤5:使用本地主机RSA_mig的私钥解密vTPM标签中的加密信息字段得到KEY,然后使用RSA_local的公钥对KEY进行加密,然后将密文赋值给vTPM标签的加密信息字段,最后使用RSA_local的私钥对vTPM标签重新签名,更新vTPM标签的签名值字段,状态转换成功,退出。
图6描述了vTPM动态迁移协议运行的整个过程。
vTPM动态迁移协议没有对普通的虚拟机动态迁移过程的信息交互方式产生影响。图6中普通虚拟机的动态迁移过程为:“目的平台启动空壳虚拟机”、“初始化迁移,建立连接”、“脏页重传,传输虚拟机内存,传输虚拟机镜像”、“虚拟机暂停”、“传输虚拟机设备状态”、“迁移结束,断开连接”、“源平台销毁虚拟机,目的平台虚拟机运行”。其中vTPM动态迁移协议主要围绕三个部分内容—vTPM标签、vTPM的私密信息(vTPM实例文件)、vTPM的易失性信息(vTPM设备状态)的安全传输展开,具体的运行过程如下:
1)目的平台启动空壳虚拟机和空壳vTPM,然后暂停虚拟机运行,等待源端虚拟机的迁入,此时记录当前时间为T1;
2)源平台向目的平台发起迁移请求,双方初始化迁移,建立连接;
3)源平台更新vTPM标签中的加密信息字段,保证每次迁移过程中,加密使用的KEY都是不同的,防止旧的vTPM私密信息或者vTPM易失性信息的重放;
4)源平台更新vTPM标签中的有效期字段为当前时间,这样在目的平台对vTPM标签的有效期进行检查,防止旧的vTPM标签的重放;
5)源平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
6)源平台向证书颁发机构查询目的平台的数字证书,证书颁发结构返回目的平台的数字证书,提取对应目的平台RSA_mig密钥的公钥;
7)源平台利用源平台RSA_mig密钥的私钥和目的平台RSA_mig密钥的公钥转换vTPM标签为迁移状态;
8)源平台利用脏页重传的机制,开始传输虚拟机的内存、镜像文件以及vTPM实例文件,此时vTPM实例文件中的信息处于加密状态;
9)源平台向目的平台传输vTPM标签;
10)目的平台检查vTPM标签的有效期字段是否符合“T1<=vTPM标签的有效期字段的开始时间<=当前时间”,防止旧的vTPM标签的重放;
11)目的平台向证书颁发机构查询源平台的数字证书,证书颁发机构返回源平台的数字证书,提取对应源平台RSA_mig的公钥;
12)目的平台利用源平台RSA_mig的公钥和目的平台RSA_mig密钥的私钥转换vTPM标签为本地状态;
13)目的平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
14)源平台暂停虚拟机运行,并开始传输虚拟机的设备状态;
15)源平台收集vTPM的设备状态(即易失性信息)vTPM_status,计算vTPM的设备状态的哈希值,然后将vTPM_status||HASH(vTPM_status)打包成package,使用KEY对package进行加密;
16)源平台传输加密后的package;
17)目的平台使用KEY值解密package,得到vTPM的设备状态,然后校验vTPM的设备状态的哈希值;
18)目的平台重新加载vTPM实例文件,同步源平台虚拟机暂停前对vTPM私密信息的所有修改;
19)目的平台加载vTPM的设备状态;
20)迁移结束,源平台销毁虚拟机,目的平台运行虚拟机。
Claims (3)
1.一种基于标签的vTPM私密信息保护方法,其特征在于,包括以下步骤:
步骤1:系统部署前的初始化工作;在每一台宿主机上建立物理可信平台模块的两个不可迁移密钥RSA_local和RSA_mig,并通过证书颁发机构为RSA_mig密钥生成相应的数字证书;
步骤2:为每一个虚拟机的vTPM实例分别建立一个vTPM标签,标签的具体结构为:状态字段、有效期字段、加密信息字段、UUID哈希值字段、QEMU度量值字段、签名算法字段、签名值字段;收集启动虚拟机的进程代码段、虚拟机的UUID,借助于物理可信平台模块的功能填充vTPM标签中的各个字段,最后将vTPM标签存储于虚拟机的QCOW2格式镜像文件的头部扩展中;
步骤3:当虚拟机启动时,从虚拟机的镜像文件中提取vTPM标签,检查vTPM标签的完整性和有效期、启动虚拟机的进程的代码段是否和vTPM标签中记录的一致、虚拟机的UUID是否和vTPM标签中记录的一致三项内容,进而判断虚拟机和vTPM的对应关系是否正确,如果正确,利用物理可信平台模块解密vTPM标签的加密信息字段,并正常启动虚拟机,否则终止虚拟机启动;
步骤4:当虚拟机正常运行时,QEMU会将vTPM的私密信息实时地同步到vTPM实例文件中,通过截获QEMU对于vTPM实例文件的读写操作,根据步骤3得到的解密vTPM标签的加密信息字段得到的KEY,在写入之前进行哈希操作并加密,读取之后进行解密并验证哈希值,实时地对vTPM私密信息进行机密性保护和完整性验证;
步骤5:利用vTPM标签支持不同状态的特性,当虚拟机在动态迁移时,安全迁移vTPM的易失性信息、私密信息以及vTPM标签。
2.如权利要求1所述的基于标签的vTPM私密信息保护方法,其特征在于,所述步骤2具体为:
步骤2.1:对启动虚拟机的进程QEMU的代码段进行度量,生成度量值HASH(QEMU.code),对当前虚拟机的UUID进行度量,生成度量值HASH(UUID);
步骤2.2:创建vTPM标签;初始化状态字段为本地状态;初始化有效期字段为自定义时间段T;从物理可信平台模块中获得一个随机数,物理可信平台模块使用密钥RSA_local来对该随机数进行加密,然后将密文赋值给加密信息字段;初始化UUID哈希值字段为HASH(UUID);初始化QEMU度量值字段为HASH(QEMU.code);初始化签名算法字段为密钥RSA_local的签名算法;物理可信平台模块使用密钥RSA_local对标签的以上信息做签名运算,生成签名值赋值给签名值字段;
步骤2.3:生成虚拟机QCOW2格式镜像文件的一个头部扩展{类型,长度,数据},其中,类型为该头部扩展的唯一标识,数据用来存储vTPM标签,长度为vTPM标签的长度,然后将该头部扩展写入到虚拟机的镜像文件中。
3.如权利要求1所述的基于标签的vTPM私密信息保护方法,其特征在于,所述步骤5具体为:
步骤5.1:目的平台启动空壳虚拟机和空壳vTPM,然后暂停虚拟机运行,等待源端虚拟机的迁入,此时记录当前时间为T1;
步骤5.2:源平台向目的平台发起迁移请求,双方初始化迁移,建立连接;
步骤5.3:源平台更新vTPM标签中的加密信息字段,保证每次迁移过程中,加密使用的KEY都是不同的,防止旧的vTPM私密信息或者vTPM易失性信息的重放;
步骤5.4:源平台更新vTPM标签中的有效期字段为当前时间,这样在目的平台对vTPM标签的有效期进行检查,防止旧的vTPM标签的重放;
步骤5.5:源平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
步骤5.6:源平台向证书颁发机构查询目的平台的数字证书,证书颁发结构返回目的平台的数字证书,提取对应目的平台RSA_mig密钥的公钥;
步骤5.7:源平台利用源平台RSA_mig密钥的私钥和目的平台RSA_mig密钥的公钥转换vTPM标签为迁移状态;
步骤5.8:源平台利用脏页重传的机制,开始传输虚拟机的内存、镜像文件以及vTPM实例文件,此时vTPM实例文件中的信息处于加密状态;
步骤5.9:源平台向目的平台传输vTPM标签;
步骤5.10:目的平台检查vTPM标签的有效期字段是否符合“T1<=vTPM标签的有效期字段的开始时间<=当前时间”,防止旧的vTPM标签的重放;
步骤5.11:目的平台向证书颁发机构查询源平台的数字证书,证书颁发机构返回源平台的数字证书,提取对应源平台RSA_mig的公钥;
步骤5.12:目的平台利用源平台RSA_mig的公钥和目的平台RSA_mig密钥的私钥转换vTPM标签为本地状态;
步骤5.13:目的平台使用RSA_local的私钥解密vTPM标签的加密信息字段,得到KEY;
步骤5.14:源平台暂停虚拟机运行,并开始传输虚拟机的设备状态;
步骤5.15:源平台收集vTPM的设备状态vTPM_status,计算vTPM的设备状态的哈希值,然后将vTPM_status||HASH(vTPM_status)打包成package,使用KEY对package进行加密;
步骤5.16:源平台传输加密后的package;
步骤5.17:目的平台使用KEY值解密package,得到vTPM的设备状态,然后校验vTPM的设备状态的哈希值;
步骤5.18:目的平台重新加载vTPM实例文件,同步源平台虚拟机暂停前对vTPM私密信息的所有修改;
步骤5.19:目的平台加载vTPM的设备状态;
步骤5.20:迁移结束,源平台销毁虚拟机,目的平台运行虚拟机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810620056.5A CN108804203B (zh) | 2018-06-15 | 2018-06-15 | 基于标签的vTPM私密信息保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810620056.5A CN108804203B (zh) | 2018-06-15 | 2018-06-15 | 基于标签的vTPM私密信息保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804203A true CN108804203A (zh) | 2018-11-13 |
CN108804203B CN108804203B (zh) | 2019-06-21 |
Family
ID=64086741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810620056.5A Active CN108804203B (zh) | 2018-06-15 | 2018-06-15 | 基于标签的vTPM私密信息保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804203B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858265A (zh) * | 2018-11-22 | 2019-06-07 | 海光信息技术有限公司 | 一种加密方法、装置及相关设备 |
CN111683052A (zh) * | 2020-05-13 | 2020-09-18 | 国网山东省电力公司 | 基于租户身份信息的可信虚拟机vTPM私密信息保护方法、系统 |
CN111831609A (zh) * | 2020-06-18 | 2020-10-27 | 中国科学院数据与通信保护研究教育中心 | 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统 |
CN113810193A (zh) * | 2020-06-11 | 2021-12-17 | 中国移动通信有限公司研究院 | 虚拟可信根的迁移方法及相关设备 |
CN113986470A (zh) * | 2021-11-09 | 2022-01-28 | 四川大学 | 一种用户无感知的虚拟机批量远程证明方法 |
CN114035896A (zh) * | 2021-11-09 | 2022-02-11 | 四川大学 | 一种基于可信计算的批量云取证方法 |
CN114048485A (zh) * | 2021-11-12 | 2022-02-15 | 四川大学 | 一种针对Docker容器内进程代码段完整性动态监测方法 |
CN117395655A (zh) * | 2023-12-12 | 2024-01-12 | 国网智能电网研究院有限公司 | 一种5g mec可信证书链扩展方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226577A (zh) * | 2008-01-28 | 2008-07-23 | 南京大学 | 基于可信硬件与虚拟机的微内核操作系统完整性保护方法 |
CN101533434A (zh) * | 2009-04-10 | 2009-09-16 | 武汉大学 | 面向敏感数据防泄漏的可信虚拟机远程验证方法 |
CN102073821A (zh) * | 2011-01-27 | 2011-05-25 | 北京工业大学 | 基于xen平台的虚拟安全通信隧道的建立方法 |
CN103795717A (zh) * | 2014-01-23 | 2014-05-14 | 中国科学院计算技术研究所 | 一种云计算平台完整性证明方法及其系统 |
CN103888251A (zh) * | 2014-04-11 | 2014-06-25 | 北京工业大学 | 一种云环境中虚拟机可信保障的方法 |
CN103885958A (zh) * | 2012-12-20 | 2014-06-25 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机标签分类系统及方法 |
CN104715183A (zh) * | 2013-12-13 | 2015-06-17 | 中国移动通信集团公司 | 一种虚拟机运行时的可信验证方法和设备 |
CN105700945A (zh) * | 2016-01-12 | 2016-06-22 | 中南大学 | 一种基于净室环境的虚拟机安全迁移方法 |
CN105912953A (zh) * | 2016-05-11 | 2016-08-31 | 北京北信源软件股份有限公司 | 一种基于可信启动的虚拟机数据保护方法 |
CN106354550A (zh) * | 2016-11-01 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种保护虚拟机安全的方法、装置及系统 |
CN106610863A (zh) * | 2015-10-21 | 2017-05-03 | 华为技术有限公司 | 虚拟机可信迁移方法及装置 |
US20180103014A1 (en) * | 2015-07-01 | 2018-04-12 | Ari Birger | Systems to Implement Security in Computer Systems |
-
2018
- 2018-06-15 CN CN201810620056.5A patent/CN108804203B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226577A (zh) * | 2008-01-28 | 2008-07-23 | 南京大学 | 基于可信硬件与虚拟机的微内核操作系统完整性保护方法 |
CN101533434A (zh) * | 2009-04-10 | 2009-09-16 | 武汉大学 | 面向敏感数据防泄漏的可信虚拟机远程验证方法 |
CN102073821A (zh) * | 2011-01-27 | 2011-05-25 | 北京工业大学 | 基于xen平台的虚拟安全通信隧道的建立方法 |
CN103885958A (zh) * | 2012-12-20 | 2014-06-25 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机标签分类系统及方法 |
CN104715183A (zh) * | 2013-12-13 | 2015-06-17 | 中国移动通信集团公司 | 一种虚拟机运行时的可信验证方法和设备 |
CN103795717A (zh) * | 2014-01-23 | 2014-05-14 | 中国科学院计算技术研究所 | 一种云计算平台完整性证明方法及其系统 |
CN103888251A (zh) * | 2014-04-11 | 2014-06-25 | 北京工业大学 | 一种云环境中虚拟机可信保障的方法 |
US20180103014A1 (en) * | 2015-07-01 | 2018-04-12 | Ari Birger | Systems to Implement Security in Computer Systems |
CN106610863A (zh) * | 2015-10-21 | 2017-05-03 | 华为技术有限公司 | 虚拟机可信迁移方法及装置 |
CN105700945A (zh) * | 2016-01-12 | 2016-06-22 | 中南大学 | 一种基于净室环境的虚拟机安全迁移方法 |
CN105912953A (zh) * | 2016-05-11 | 2016-08-31 | 北京北信源软件股份有限公司 | 一种基于可信启动的虚拟机数据保护方法 |
CN106354550A (zh) * | 2016-11-01 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种保护虚拟机安全的方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
杨永娇等: "Ng_vTPM_新一代TPM虚拟化框架设计", 《武汉大学学报(理学版)》 * |
金鑫,陈兴蜀: "可信链跨物理主机迁移及快速恢复方法", 《武汉大学学报(理学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858265A (zh) * | 2018-11-22 | 2019-06-07 | 海光信息技术有限公司 | 一种加密方法、装置及相关设备 |
CN109858265B (zh) * | 2018-11-22 | 2022-01-28 | 海光信息技术股份有限公司 | 一种加密方法、装置及相关设备 |
CN111683052A (zh) * | 2020-05-13 | 2020-09-18 | 国网山东省电力公司 | 基于租户身份信息的可信虚拟机vTPM私密信息保护方法、系统 |
CN113810193A (zh) * | 2020-06-11 | 2021-12-17 | 中国移动通信有限公司研究院 | 虚拟可信根的迁移方法及相关设备 |
CN111831609A (zh) * | 2020-06-18 | 2020-10-27 | 中国科学院数据与通信保护研究教育中心 | 一种虚拟化环境中二进制文件度量值统一管理和分发的方法和系统 |
CN111831609B (zh) * | 2020-06-18 | 2024-01-02 | 中国科学院数据与通信保护研究教育中心 | 虚拟化环境中二进制度量值统一管理和分发的方法和系统 |
CN114035896A (zh) * | 2021-11-09 | 2022-02-11 | 四川大学 | 一种基于可信计算的批量云取证方法 |
CN114035896B (zh) * | 2021-11-09 | 2023-03-31 | 四川大学 | 一种基于可信计算的批量云取证方法 |
CN113986470B (zh) * | 2021-11-09 | 2023-08-11 | 四川大学 | 一种用户无感知的虚拟机批量远程证明方法 |
CN113986470A (zh) * | 2021-11-09 | 2022-01-28 | 四川大学 | 一种用户无感知的虚拟机批量远程证明方法 |
CN114048485A (zh) * | 2021-11-12 | 2022-02-15 | 四川大学 | 一种针对Docker容器内进程代码段完整性动态监测方法 |
CN117395655A (zh) * | 2023-12-12 | 2024-01-12 | 国网智能电网研究院有限公司 | 一种5g mec可信证书链扩展方法及系统 |
CN117395655B (zh) * | 2023-12-12 | 2024-03-08 | 国网智能电网研究院有限公司 | 一种5g mec可信证书链扩展方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108804203B (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804203B (zh) | 基于标签的vTPM私密信息保护方法 | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
CN103065102B (zh) | 基于虚拟磁盘的数据加密移动存储管理方法 | |
CN104969234B (zh) | 用于虚拟机的测量的信任根 | |
CN100566243C (zh) | 使用固定令牌和可移动令牌两者的计算设备及其方法 | |
CN105391717B (zh) | 一种apk签名认证方法及其系统 | |
CN103221961B (zh) | 包括用于保护多用户敏感代码和数据的架构的方法和装置 | |
WO2020192406A1 (zh) | 数据存储、验证方法及装置 | |
CN100456200C (zh) | 多令牌密封和解封 | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
CN105718807B (zh) | 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法 | |
US20050283601A1 (en) | Systems and methods for securing a computer boot | |
CN111241564B (zh) | 内存页面交换方法和安全处理器 | |
TW200822066A (en) | Apparatus for writing data to a medium | |
KR101910826B1 (ko) | 사물인터넷 디바이스의 보안 방법 및 장치 | |
CN106790045A (zh) | 一种基于云环境分布式虚拟机代理架构及数据完整性保障方法 | |
CN109190401A (zh) | 一种Qemu虚拟可信根的数据存储方法、装置及相关组件 | |
CN107980132A (zh) | 一种apk签名认证方法及系统 | |
CN106599729A (zh) | 一种驱动程序安全验证方法及系统 | |
CN107124277A (zh) | 一种基于国家商用密码算法的硬拷贝控制系统 | |
CN107315945B (zh) | 一种电子设备的磁盘解密方法和装置 | |
CN111683052A (zh) | 基于租户身份信息的可信虚拟机vTPM私密信息保护方法、系统 | |
Choudary et al. | Infiltrate the vault: Security analysis and decryption of lion full disk encryption | |
US8429423B1 (en) | Trusted platform modules | |
CN110990111A (zh) | 一种云环境下虚拟可信根的校验方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |