创建多核处理器虚拟机系统可信环境的方法及装置转让专利

申请号 : CN201010138515.X

文献号 : CN102214277B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜磊孙毓忠宋擒豹

申请人 : 中国科学院计算技术研究所

摘要 :

本发明涉及创建多核处理器虚拟机系统可信环境的方法及装置,包括:步骤1,从多核处理器中隔离出一个核,在所述核上运行定制的TPM芯片模拟器;步骤2,在创建可信环境时,所述TPM芯片模拟器对虚拟机监控器进行度量。本发明能够为虚拟机系统创建可信环境,解决计算机网络终端的系统不可信问题。

权利要求 :

1.一种创建多核处理器虚拟机系统可信环境的方法,其特征在于,包括:步骤1,从多核处理器中隔离出一个核,在所述核上运行定制操作系统,在该定制操作系统中运行定制的TPM芯片模拟器,同时将所述定制操作系统和TPM芯片模拟器捆绑,对外提供TPM函数接口以模拟真实的TPM安全芯片,在所述核以及所述定制操作系统上限制外部访问边界为所述模拟的TPM安全芯片;

步骤2,在创建可信环境时,所述TPM芯片模拟器对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。

2.如权利要求1所述的创建多核处理器虚拟机系统可信环境的方法,其特征在于,所述步骤1和所述步骤2之间还包括:步骤41,运行虚拟工具进行虚拟化,启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。

3.如权利要求2所述的创建多核处理器虚拟机系统可信环境的方法,其特征在于,所述步骤2前还包括:步骤51,对所述虚拟工具进行关闭;

步骤52,关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储;

步骤53,对多核处理器虚拟机系统的硬件进行初始化;

所述步骤2后还包括:

步骤54,恢复被关闭的应用核和被禁止虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具建立虚拟机。

4.一种创建多核处理器虚拟机系统可信环境的装置,其特征在于,包括用于在创建可信环境时,对虚拟机监控器的代码进行哈希运算并保存计算出的哈希值的定制的TPM芯片模拟器;

所述定制的TPM芯片模拟器运行在多核处理器中隔离出的一个核上的定制操作系统;

而且所述定制操作系统和定制的TPM芯片模拟器捆绑在一起,对外提供TPM函数接口以模拟真实的TPM安全芯片,并限制外界对所述核与所述定制操作系统的访问的边界仅限于所述定制的TPM芯片模拟器。

5.如权利要求4所述的创建多核处理器虚拟机系统可信环境的装置,其特征在于,虚拟工具在在创建可信环境前运行,并启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。

6.如权利要求5所述的创建多核处理器虚拟机系统可信环境的装置,其特征在于,所述装置还包括:禁止模块,用于在所述TPM芯片模拟器进行度量前对所述虚拟工具进行关闭;关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储;

安全初始化模块,用于在所述禁止模块完成关闭和禁止后,对多核处理器虚拟机系统的硬件进行初始化,完成初始化后启动所述TPM芯片模拟器;

恢复模块,用于在所述TPM芯片模拟器存储完所述哈希值后,恢复被关闭的应用核和被禁止的虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具进行虚拟机系统的建立。

说明书 :

创建多核处理器虚拟机系统可信环境的方法及装置

技术领域

[0001] 本发明涉及计算机安全领域,尤其涉及创建多核处理器虚拟机系统可信环境的方法及装置。

背景技术

[0002] 虚拟化技术最早诞生于20世纪60年代,由IBM公司提出,并把此技术应用于IBM的System 370系统。随着虚拟化技术的广泛应用,随之而来的安全问题也多种多样。虽然虚拟化技术能保证一定的安全性,比如运行在物理平台上的各个虚拟机之间是彼此隔离的,互不干扰。但是由于这并没有根本解决计算机系统面临的安全问题。相反,由于VMM(Virtual Machine Monitor,虚拟机监控器)拥有超级权限,使得对VMM的攻击成为系统的一大安全隐患。
[0003] 半虚拟化是剑桥大学提出的概念,与之相伴的是Xen hypervisor项目的研究与开发。Xen hypervisor是系统级虚拟工具,用于在终端实现虚拟机系统。
[0004] 图1为Xen hypervisor虚拟机的结构示意图,图1中最底层为硬件资源,Xen hypervisor的VMM运行于硬件资源之上,对硬件资源进行管理,并虚拟化出若干个虚拟硬件环境。在Xen hypervi sor的VMM上面运行多个Guest OS(子操作系统),表示为DomU,Guest OS是一个安装在虚拟机器上或者是除了母操作系统或主操作系统之外的磁盘分区上的操作系统。无修改的用户应用程序运行于DomU的应用层。在DomU的内核层运行有前端设备驱动,用户应用程序通过前端设备驱动对硬件资源进行操作。而前端设备驱动并不真正对硬件资源进行操作,它通过后端设备驱动实现对硬件资源操作。后端设备驱动位于VMO中,VMO在图1中表示为DomO。VMO是一个特殊的Guest OS,也称之为有特权的Guest OS。被称为有特权的Guest OS是因为VMM管理程序接口界面程序、部分资源管理程序、Guest OS管理控制程序均在VMO的应用层运行,也即VMO是拥有管理权限的Guest OS;VMO可以对外围设备直接进行访问,也即它拥有管理和操作所有外围设备的权限。
[0005] 在VMO的内核中运行了一个后端设备驱动,用于接受从其它Guest OS发出的对硬件资源进行操作请求,转交给VMO中的设备驱动,由设备驱动完成对硬件资源的操作,并把从设备驱动返回的操作结果返回给前端设备驱动。
[0006] 在这样的虚拟化技术架构中,由Xen hypervisor保持各个系统之间的隔离性,每个VM(虚拟机)运行在自己的内存空间,VM自身感知不到其他VM的存在,认为自己独占整个物理平台,相应的应用程序运行在VM内核之上。Xen hypervisor将不同的VM隔离起来,使得其中一个VM的各种安全问题不能影响到同一平台上的其他VM。但是这样的架构依然存在如下的安全问题。
[0007] 由于VMO被Xen hypervisor授权为特权的Guest OS,可以直接与硬件进行交互,那么对VMO的攻击就可能导致其他VM信息的泄露。
[0008] Xen hypervisor的VMM也具有特权,Xen hypervisor的VMM本身运行于CPU的特权级别,将操作系统挤兑到非特权级别,Xen hypervisor本身的安全问题也称为了整个系统的一大安全隐患。
[0009] 可信计算技术诞生于上世纪末,诞生之初就是为了从基础上提高终端系统的可信性。IBM(国际商业机器有限公司)、HP(惠普)、Intel(因特尔)、Microsoft(微软)等IT企业成立了可信计算平台联盟(Trusted ComputingPlatform Alliance,TCPA),成员多达190家。TCPA定义了具有安全存储和加密功能的可信平台模块(TPM),致力于数据安全的可信计算,包括研制密码芯片、特殊的CPU、主板或操作系统安全内核。随后,该组织改名可信计算组织(Trusted Computing Group,TCG),继续推进可信计算的发展。
[0010] 可信计算组织提出了一系列促进计算机系统安全的规范,包括TPM(Trusted Platform Module)安全芯片规范,TPM芯片是通过在计算机终端中植入该芯片,建立起终端的可信。这里TPM安全芯片所起的作用是从计算机启动开始,终端系统的模块在控制系统之前,其完整性需要经过度量,这里的度量是指对程序做哈希运算,并保存在TPM内部的寄存器PCR(PlatformConfiguration Register,平台配置存储器)中,通过读取PCR中的哈希值来判断终端系统是否被篡改,决定该终端是否可信。
[0011] 但是由于种种原因,TPM芯片的使用受到了极大的限制,表现在下面几个方面。存在对TPM支持的问题,因为已有的大部分计算机系统在设计之初并没有考虑到对可信计算技术的支持。TPM芯片本身设计的复杂性,按照TCG的规范,TPM芯片大概需要在自身内部固化大概120多个功能函数。而在实际使用过程中,尤其是移动终端的使用中,成本及便携性是很重要的一个指标。而TPM本身的复杂结构在相当程度上限制了它在这种设备中的广泛使用。不提供对虚拟化技术的支持。TPM规范及TPM芯片都没有涉及对虚拟化技术的支持。

发明内容

[0012] 为解决上述问题,本发明提供了创建多核处理器虚拟机系统可信环境的方法及装置,能够为虚拟机系统创建可信环境,解决计算机网络终端的系统不可信问题。
[0013] 本发明公开了一种创建多核处理器虚拟机系统可信环境的方法,包括:
[0014] 步骤1,从多核处理器中隔离出一个核,在所述核上运行定制的TPM芯片模拟器;
[0015] 步骤2,在创建可信环境时,所述TPM芯片模拟器对虚拟机监控器进行度量。
[0016] 所述步骤2进一步为,
[0017] 步骤21,在创建可信环境时,所述TPM芯片模拟器对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。
[0018] 所述步骤1进一步为,
[0019] 步骤31,从多核处理器中隔离出一个核,在所述核上运行定制操作系统;
[0020] 步骤32,在所述定制操作系统中运行定制的TPM芯片模拟器。
[0021] 所述步骤1和所述步骤2之间还包括:
[0022] 步骤41,运行虚拟工具进行虚拟化,启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。
[0023] 所述步骤2中所述TPM芯片模拟器对虚拟机监控器进行度量前还包括:
[0024] 步骤51,对所述虚拟工具进行关闭;
[0025] 步骤52,关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储;
[0026] 步骤53,对多核处理器虚拟机系统的硬件进行初始化;
[0027] 所述步骤2后还包括:
[0028] 步骤54,恢复被关闭的应用核和被禁止虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具建立虚拟机。
[0029] 本发明还公开了一种创建多核处理器虚拟机系统可信环境的装置,[0030] 包括用于在创建可信环境时,对虚拟机监控器进行度量的TPM芯片模拟器;
[0031] 所述TPM芯片模拟器运行在多核处理器中隔离出的一个核上。
[0032] 所述TPM芯片模拟器进一步用于在创建可信环境时,对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。
[0033] 所述从多核处理器中隔离出的核上运行定制操作系统;所述TPM芯片模拟器运行在所述定制操作系统中。
[0034] 虚拟化工具在在创建可信环境前运行,并启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。
[0035] 所述装置还包括:
[0036] 禁止模块,用于在所述TPM芯片模拟器进行度量前对所述虚拟工具进行关闭;关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储;
[0037] 安全初始化模块,用于在所述禁止模块完成关闭和禁止后,对多核处理器虚拟机系统的硬件进行初始化,完成初始化后启动所述TPM芯片模拟器;
[0038] 恢复模块,用于在所述TPM芯片模拟器存储完所述哈希值后,恢复被关闭的应用核和被禁止的虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具进行虚拟机系统的建立。
[0039] 本发 明 的有 益效 果 在于,在 虚拟 机系 统 中实 现TPM模 拟器 (TPM FunctionModule),由于TPM模拟器可以根据具体的虚拟机系统的安全需求定制,并非要全部实现TCG的规范,从而能够在保证终端可信的前提下降低移动设备的成本;通过记录虚拟工具的启动过程,在虚拟工具接手系统的控制权之前,对虚拟工具的完整性进行度量,并保存度量结果,进而保证启动过程的可信性;通过从处理器的多核中隔离出一个核来进行安全计算,能够提高整个处理器的利用率,并增强虚拟机系统的安全;通过在虚拟机系统启动后创建可信环境,使得BIOS不再是可信基的一部分,缩小了可信计算基,越小的可信基越能保证系统的安全,进而增加虚拟机系统安全性。

附图说明

[0040] 图1是现有技术中Xen hypervisor虚拟机的结构示意图;
[0041] 图2是本发明创建多核处理器虚拟机系统可信环境的方法的流程图;
[0042] 图3是本发明创建多核处理器虚拟机系统可信环境的方法的实施例示意图;
[0043] 图4是具有可信环境的多核处理器的虚拟机系统的硬件结构图。

具体实施方式

[0044] 下面结合附图,对本发明做进一步的详细描述。
[0045] 本发明创建多核处理器虚拟机系统可信环境的方法的流程如图2所示。
[0046] 步骤S100,从多核处理器中隔离出一个核,在所述核上运行定制的TPM芯片模拟器。
[0047] 在多核CPU中隔离出其中的一个核来运行定制的TPM芯片模拟器,能够保证TPM芯片模拟器运行不受其他核的影响,其他核感知不到TPM芯片模拟器的存在。
[0048] 步骤S200,在创建可信环境时,所述TPM芯片模拟器对VMM(虚拟机监控器)进行度量。
[0049] 通过上述方法,TPM芯片模拟器运行在隔离的环境中,一方面其对外界不可见的特性保证了它本身的健壮性;另一方面,它也能记录系统的启动状态,证实系统的启动过程是否被篡改。
[0050] 在虚拟机系统启动结束后,建立可信启动的虚拟机系统,所述可信启动的虚拟机系统是指从最初的信任原点开始,每一个已经启动的虚拟机系统模块或组件,其完整性都经过了度量,也就是散列运算。
[0051] 所述度量通过计算哈希值实现,所述TPM芯片模拟器对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。
[0052] 创建可信环境可以是在虚拟机系统启动时进行创建,此时直接对VMM进行度量。也可以在虚拟机系统启动后在发生安全威胁时创建可信环境。
[0053] 在虚拟机系统启动后创建可信环境的具体实施流程如下所述。
[0054] 虚拟化工具为Xen hypervisor或Vmware。
[0055] 步骤S201,从多核处理器中隔离出一个核,在所述核上运行定制的TPM芯片模拟器。
[0056] 从多核处理器中隔离出一个核,在所述核上运行定制操作系统;在所述定制操作系统中运行定制的TPM芯片模拟器。
[0057] 定制操作系统为虚拟化工具提供可信服务,记录虚拟化工具及其虚拟机启动过程的信息。
[0058] 在定制操作系统为虚拟化工具提供可信服务的过程中,二者的通信过程是通过向磁盘中的同一文件读取或填写信息来实现。这样,定制的操作系统既可以记录虚拟化工具启动的信息,也能实现对虚拟化工具的隐藏。
[0059] 步骤S202,运行虚拟工具进行虚拟化,启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。
[0060] 步骤S203,对所述虚拟工具进行关闭。
[0061] 步骤S204,关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储。
[0062] 步骤S205,对多核处理器虚拟机系统的硬件进行初始化。
[0063] 步骤S206,TPM芯片模拟器对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。
[0064] 步骤S207,恢复被关闭的应用核和被禁止的虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具建立虚拟机。
[0065] 实施例
[0066] 本发明创建多核处理器虚拟机系统可信环境的方法的实施例如图3所示。在该虚拟机系统中包括四核处理器,其中虚拟工具为Xen hypervisor。
[0067] 其中实线的带箭头连线表示进行完成性度量,虚线的带箭头连线表示对度量值的存储。
[0068] 在多核处理器中,分离出其中的一个核,核1来运行定制操作系统,并在其上运行定制的TPM芯片模拟器,同时将该定制操作系统和TPM芯片模拟器捆绑,对外提供TPM函数接口,使其模拟真实的TPM安全芯片。这样在任意多核系统中模拟出TPM安全芯片,为系统的可信提供支持。
[0069] 在Xen hypervisor的虚拟化环境中,Xen hypervisor VMM直接运行在硬件之上,VMM上运行多个相互隔离的虚拟机(称为Domain),其中有一个特权的DomO,称为GuestOS,负责管理整个Xen hypervisor上的其他DomU。当虚拟机系统被攻击或者被注入木马时,整个系统面临着严重的安全威胁。,因而需要创建可信环境。创建可信环境的具体实现如下所述。
[0070] 步骤S301,启动定制操作系统,运行TPM芯片模拟器。
[0071] 步骤S302,启动Xen Hypersior及DomO。
[0072] DomO启动结束后,继续启动系统,此时的系统并不是可信启动的,待某一时刻某个Domain对安全要求较高时,进行步骤S303。
[0073] 步骤S303,通过DomO发送可信重建命令Sec-restart,继而XenHypersior关机重启。
[0074] 步骤S304,安全初始化程序开始运行,安全初始化程序进行一系列的动作,包括关闭中断、禁止虚拟内存、禁止DMA(直接记忆存储),并通过IPI指令关闭应用核,使应用核处于休眠状态。
[0075] 步骤S305,安全初始化程序初始化系统硬件。
[0076] 步骤S306,在安全初始化程序运行的最后阶段,TPM芯片模拟器通过安全初始化程序对Xen hypervisor VMM进行度量,安全初始化程序将结果发送给TPM芯片模拟器进行保存。
[0077] 步骤S307,通过IPI指令恢复其他正在休眠的应用核,开启系统中先前被禁止的功能,如中断、DMA,将控制权交给Xen Hypersior。
[0078] 步骤S308,Xen Hypersior开始运行,接着DomainO及DomainU的启动就建立在安全的Xen Hypersior之上。
[0079] 为了保证上述过程不被破坏,上面的一系列步骤都是原子形式来执行的。经过加载前度量这一过程,为Xen hypervisor VMM建立了一个安全的执行环境。在本发明中,没有使用真实的TPM芯片,利用通用多核CPU模拟TPM芯片的功能,其中度量过程就是对各个对象的代码或者内存地址进行hash的过程。在系统最开始的过程中,借助TPM芯片模拟器,利用其hash功能,将安全加载程序和Xen hypervisor运行起来,并记录其hash值,供可信认证时使用。
[0080] 本发明是一种防范的技术,它保证系统的每一个环节都是可控制的,都是完整的没有被破坏的。由于信任传递总是需要一个源头,也就是必须被信任的节点,所以从一开始,便建立一个可信的隔离的执行环境,保证Xenhypervisor运行在这个可靠的环境中,并将信任链一级一级地传递下去,直到用户需要的应用运行起来,这样,从底层到上层是一个完整的没有被篡改过的系统,使得用户知道自己正在使用的平台的状况。
[0081] 本发明创建多核处理器虚拟机系统可信环境的装置包括用于在创建可信环境时,对虚拟机监控器进行度量的TPM芯片模拟器;所述TPM芯片模拟器运行在多核处理器中隔离出一个核上。
[0082] 所述TPM芯片模拟器进一步用于在创建可信环境时,对虚拟机监视器的代码进行哈希运算,并保存计算出的哈希值。
[0083] 所述从多核处理器中隔离出的核上运行定制操作系统;所述TPM芯片模拟器运行在所述定制操作系统中。
[0084] 虚拟化工具在在创建可信环境前运行,并启动有特权的子操作系统;多核处理器中为虚拟机提供服务的核为应用核。
[0085] 较佳的实施方式中所述装置还包括:禁止模块、安全初始化模块和恢复模块。
[0086] 禁止模块,用于在TPM芯片模拟器进行度量前对所述虚拟工具进行关闭;关闭多核处理器虚拟机系统中的应用核,禁止虚拟内存,并禁止直接记忆存储;
[0087] 安全初始化模块,用于在所述禁止模块完成关闭和禁止后,对多核处理器虚拟机系统的硬件进行初始化,完成初始化后启动所述TPM芯片模拟器;
[0088] 恢复模块,用于在所述TPM芯片模拟器存储完所述哈希值后,恢复被关闭的应用核和被禁止的虚拟内存,以及被禁止的直接记忆存储;并启动所述虚拟工具进行虚拟机系统的建立。
[0089] 具有可信环境的多核处理器的虚拟机系统的硬件实现如图4所示。
[0090] 内存包括两部分,TPM环境内存和Xen hypervisor内存,多核处理器的核也分为两大类,核1以及核2至核4,分别为TPM芯片模拟器和Xenhypervisor提供服务,TPM芯片模拟器和Xen hypervisor通过访问控制机制进行隔离,Xen hypervisor及其上的虚拟机对外提供服务,TPM芯片模拟器则负责整个系统的可信问题。
[0091] 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。