CN103270518B - 虚拟机验证系统及其方法 - Google Patents
虚拟机验证系统及其方法 Download PDFInfo
- Publication number
- CN103270518B CN103270518B CN201180061838.6A CN201180061838A CN103270518B CN 103270518 B CN103270518 B CN 103270518B CN 201180061838 A CN201180061838 A CN 201180061838A CN 103270518 B CN103270518 B CN 103270518B
- Authority
- CN
- China
- Prior art keywords
- configuration data
- host environment
- trusted host
- encryption
- data structure
- 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.)
- Active
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
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
用于提供可信主机环境与虚拟机(VM)的要求的符合性的验证的系统、方法、计算机程序产品和计算机程序,该系统包括:存储组件,用于在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据;发送组件,响应于所述存储组件存储所述配置数据,用于将所述至少一个加密的数据结构发送到控制组件;分析组件,响应于所述控制组件接收所述至少一个加密的数据结构,用于分析所述至少一个加密的数据结构;比较组件,响应于所述分析组件确定所述配置数据,用于将所述配置数据与要求相比较;以及核实组件,响应于所述比较组件确定所述配置数据匹配所述要求,用于承认所述VM的核实。
Description
技术领域
本发明涉及计算机虚拟机。特别地,本发明涉及用于虚拟机的验证(validation)的装置和方法。
背景技术
虚拟机(VM)是物理计算机的软件实现。当被设计为在物理机器上执行的计算机程序在VM上执行时,以类似的方式执行。VM提供了完整的系统平台以支持完全的操作系统(OS)。可以在使用不同VM(每个运行不同的OS)的用户之间共享物理机器。
现代的处理器架构已经使能了虚拟化技术,虚拟化技术允许多个操作系统和VM运行在单个物理机器上。这些技术使用直接运行在物理硬件上的管理程序(hypervisor)层,该管理程序层通过将虚拟硬件层提供给每个虚拟机中运行的操作系统而调解(mediate)对物理硬件的访问。该管理程序可以结合“原生(native)VM”在物理机器上操作。可选择地,该管理程序可以结合在较高软件级操作的“托管的VM”在运行在物理机器上的操作系统中操作。
VM技术的示例有:
·Kernel-BasedVirtualMachine(KVM),其允许一个或多个Linux或虚拟机运行在运行KVM的底层Linux之上。
·Xen,其允许客户机(虚拟化的)Linux运行在Linux之上。
·Parallels,其允许Linux和Windows在MacOSX之上。
·VMWare,其允许Linux和Windows系统在MacOSX、Windows和Linux系统之上。
(Linux是LinusTorvalds在美国、其它国家或这两者的注册商标。Microsoft和Windows是Microsoft公司在美国、其它国家或两者的注册商标。)
可信平台模块(TPM)是符合由可信计算组(TCG)定义的安全规范的系统。其通常被实现为提供保护信息的加密的(cryptographic)密钥的计算机系统的组件。TPM还可以提供远程证明,其使得对计算机系统的改变能够被被授权方检测到。TPM可以以硬件、软件、或者两者的组合实现。
虚拟TPM(vTPM)向在管理程序上运行的VM提供TPM服务。vTPM被定义为以软件实现的TPM——其可以将TPM服务提供给任何事物,而不只是VM。贯穿VM的生命期间,即使VM从一个物理机器移植到另一个物理机器,VM及其关联的vTPM也被安全地维持。vTPM还必须维持与其相关的可信计算基础的安全关联。
vTPM可被托管在VM中的用户空间中、在安全的协处理器中,或被托管在其自己的独立VM中。
部署到数据中心的VM会具有很多关于其运行环境的要求。这些要求可以包括硬件的类型,或VM视线及控制之外的某些低级别系统配置。这样的要求可在服务层级协议(SLA)中规定,并可以形成工业条例的一部分。当VM在不同系统间移植时,容易使得违背这些要求之一。此外当管理员对其系统进行改变时,他们可能没有意识到VM的要求,再次违背要求。
对于已经在远程数据中心部署了VM的系统所有者而言,验证满足这些要求是非常困难的。即使可以看到数据中心系统的系统所有者,仍发现验证其要求被满足是不方便的。
尽管VM的使用为平台所有者提供了费用的益处,但是需要保护VM免受恶意攻击。一种方式是使用可信的根(root),诸如基于硬件的可信平台模块(TPM),其评估运行在平台上的所有软件的完整性,包括在VM中运行的操作系统、管理程序和应用。TPM通过数字地签名软件组件的加密的哈希而允许远程证明(attestation)。在该上下文中,“证明”意味着提供引导的确切软件/硬件组件的证据;“验证”意味着证明、核实或其组合的效果。
TPM和可信计算不防范可能违背服务层级协议(SLA)的情况。
因此,本技术中需要解决已知的可信计算系统的缺点。
发明内容
从一方面来看,本发明提供了一种用于提供可信主机环境与虚拟机(VM)的要求的符合性的验证的系统,该系统包括:存储组件,用于在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据;发送组件,响应于所述存储组件存储所述配置数据,用于将所述至少一个加密的数据结构发送到控制组件;分析组件,响应于所述控制组件接收所述至少一个加密的数据结构,用于分析所述至少一个加密的数据结构;比较组件,响应于所述分析组件确定所述配置数据,用于将所述配置数据与要求相比较;以及核实组件,响应于所述比较组件确定所述配置数据匹配所述要求,用于承认所述VM在可信主机环境中的核实。
优选地,本发明提供了一种系统,其中所述核实组件响应于所述比较组件确定所述配置数据不匹配所述要求,还可操作用于否认所述VM在可信主机环境中的核实。
优选地,本发明提供了一种系统,其中所述存储组件是管理程序;其中所述至少一个加密的数据结构是至少一个平台配置寄存器(PCR);其中所述至少一个加密的数据结构与所述VM的又一个可信主机环境相关联;其中所述可信主机环境包括可信平台模块;以及其中所述系统还包括包含可信主机环境的第一服务器和包含控制组件的第二服务器。
从第二方面看,本发明提供了一种用于提供可信主机环境与虚拟机(VM)的要求的符合性的验证的方法,该方法包括步骤:在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据;响应于存储配置数据的步骤,将所述至少一个加密的数据结构发送到控制组件;响应于接收至少一个加密的数据结构的步骤,分析所述至少一个加密的数据结构;响应于确定所述配置数据的步骤,将所述配置数据与要求相比较;以及响应于确定所述配置数据匹配所述要求的步骤,承认所述VM在可信主机环境中的验证。
优选地,本发明提供了一种方法,其中所述方法还包括,响应于确定所述配置数据不匹配所述要求的步骤,否认所述VM在可信主机环境中的验证。
优选地,本发明提供了一种方法,其中所述在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据的步骤包括在至少一个平台配置寄存器(PCR)中加密地存储与可信主机环境相关联的配置数据的步骤;其中该方法还包括将所述至少一个加密的数据结构与VM的又一个可信主机环境相关联的步骤;其中所述可信主机环境包括可信平台模块;以及,其中所述方法还包括提供包含可信主机环境的第一服务器和提供包含所述控制组件的第二服务器。
从又一个方面看,本发明提供了一种用于提供可信主机环境与虚拟机(VM)的要求的符合性的验证的计算机程序产品,该计算机程序产品包括:计算机可读存储介质,可由处理电路读取并且存储用于由处理电路执行以进行执行本发明的步骤的方法。
从又一个方面看,本发明提供了一种存储在计算机可读介质上并且可载入数字计算机的内部存储器的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的方法。
有利地,本发明提供了一种允许系统所有者使用远程核实来核实其要求被满足的方法。本发明将虚拟可信平台模块(vTPM)的使用扩展到报告不止VM软件配置。
有利地,现有的远程核实的方法仍旧可以使用系统的可信引导(Boot)来进行,并且因此可以确信其正在运行已知且可信的软件配置。
有利地,VM所有者还可通过保留平台配置寄存器(PCR)用于由系统管理程序使用而检查系统的环境要求。管理程序在虚拟机下面并且对系统的硬件有直接的控制。该管理程序处于报告用于VM环境要求的系统状态和配置的最佳位置。由于vTPM设备为虚拟的且从管理程序载入,该解决方案允许管理程序设置一个或多个PCR来反映环境。当VM正在运行且核实执行时,VM所有者可以通过PCR看到环境的状态并且因此检查其要求被满足。有利地,VM所有者的所有者在其仅具有对系统上运行的VM的访问时可以检查系统设置。
有利地,vTPM和管理程序彼此通信。分配一个或多个PCR用于存储VM视线之外的项目的度量。有利地,VM下面的组件配合度量感兴趣的项目并将该度量传播到vTPM的一个或多个PCR中。远程核实也可相对于策略验证分配的一个或多个PCR。当VM被证明时,其不仅报告被引导的软件的状态,还报告有关VM在其上运行的服务器的一些信息。
有利地,可以扩展已知的工具从而允许证明特征包含例如PCR8的验证功能性以确保系统符合环境要求,诸如弹性服务处理器(FSP)的“dev”用户。这使具有这样的要求的很多VM的管理变得容易。FSP是驻留在系统上的小型控制计算机系统。(IBM和POWER6是国际商业机器公司在美国、其它国家或两者的商标。)
对于技术的当前状态,VM无法对这样的配置检查FSP。本发明可解决此问题,因为FSP、管理程序和vTPM全部相连接并且可彼此度量,然后经由分配的PCR报告该度量。
有利地,利用要求其VM运行在特定类型的中央处理单元(CPU)上的服务层级协议(SLA),经由PCR报告这样的数据和证明对消费者是有价值的。证明和随后的核实会帮助证明SLA被满足,特别是如果VM随时移植到另一物理系统时。
有利地,VM所有者在其仅具有对在系统上运行的VM的访问时可检查系统设置。被分配用于存储项目的度量的PCR在VM的视线之外。VM下面的组件配合以度量感兴趣的项目并且将该度量传播到vTPM的PCR中,例如通过彼此通信的vTPM和管理程序。证明和核实可相对于策略验证分配的PCR。
附图说明
现在将参照如在以下图中示出的优选实施例,仅以示例的方式描述本发明。
图1是描述根据现有技术的数据处理系统的框图,在该数据处理系统中可实现本发明的优选实施例;
图2是描述根据现有技术的两个物理服务器的框图,在该物理服务器中可实现本发明的优选实施例;
图3是描述根据本发明的优选实施例、用于提供虚拟机(VM)的可信数据的操作方法步骤的高级示例性示意流程图;
图4是描述根据本发明的优选实施例、用于提供可信主机环境与VM的要求的符合性的验证的操作方法步骤的高级示例性示意流程图;
图5是描述根据本发明的优选实施例的平台配置寄存器(PCR)的框图;
图6是描述根据本发明的优选实施例的服务器的框图;以及
图7是描述根据本发明的优选实施例、可在与服务器通信的工作站上操作的控制程序的框图。
具体实施方式
图1是描述根据现有技术的数据处理系统100的框图,在该数据处理系统100中可实现本发明的优选实施例。该数据处理系统包括工作站120和服务器150、160。工作站120和服务器150、160可通过网络110连接。
服务器150包括两个正在运行不同操作系统的虚拟机(VM)152和156。应用154和158可分别在VM152和156上操作。服务器160包括一个VM166。应用168可在VM166上操作。用户114通过与工作站120上的应用客户端程序134交互访问应用154、158、166。管理员114通过可在工作站120上操作的控制程序118控制数据处理系统100。
图2是描述根据现有技术的两个服务器150和160的框图,在所述服务器中可实现本发明的优选实施例。管理程序256可在物理服务器150的物理硬件252上操作,并允许原生VM152和156在管理程序256之上运行。VM152和156每个彼此隔离,并可以好像它们正运行在整个操作系统上地操作。管理程序256对每个VM152和156仿真硬件,从而使得当VM152和156希望访问其虚拟化的硬件设备(例如、以太网卡、小型计算机系统接口(SCSI)控制器)时,管理程序256截取这些指令并将其转换为对物理硬件250的访问。
操作系统(OS)264可在物理服务器260的物理硬件262上操作。管理程序266可在OS264上操作。客户VM166可在管理程序266上操作。VM280可在OS264上操作。
系统翻译器(ST)268是允许被设计用于一个指令集架构(ISA)(例如,SunSPARC)的整个系统(OS264和应用154、158)在不同的ISA系统(例如)上运行的软件组件。(IBM和POWER6是国际商业机器公司在美国、其它国家或两者的商标。)ST268作为位于VM280和物理硬件262之间的层。
如图2所描述的,ST268可在客户VM280中的操作系统(未示出)中操作。在这种情况下,OS264和用户空间程序启动,其提供系统翻译功能。ST268对单个VM280提供与管理程序256、266对运行在物理机器150、160上的多个VM152、156所提供的类似的服务。ST268以与管理程序256,266相同的方式仿真硬件,但用于不同架构的硬件。此外,ST268翻译VM280期望执行的指令。系统翻译器通常使用动态二进制翻译以将机器指令从一个ISA转换到另一个ISA。还使用硬件仿真,从而使得仿真整个机器,并且整个系统映像可以不改变地运行。
在一个可选实施例中,ST268可作为管理程序266的一部分操作。在一个可选实施例中,ST268可直接在管理程序266上操作。在该实施例中,ST268像在VM152、156、166和280中运行的OS一样运作。在一个可选实施例中:ST268可在原生OS264中操作;作为原生OS264之上的层;或在VM152、156、166、280和物理硬件252、262之间的层。
ST268在正常操作中的功能包括翻译指令和仿真硬件。翻译指令使用动态二进制翻译以在不同的物理架构上执行由VM280所需要的指令。硬件的仿真提供一种通过其仿真翻译的OS预期存在的硬件的机制。其包括例如网卡、存储器控制器、中断控制器、只读存储器(ROM)以及随机存取存储器(RAM)。
图3(应结合图4、5、6和7阅读)是描述根据本发明的优选实施例、用于提供虚拟机(VM)的可信数据的操作方法步骤的高级示例性示意流程图300。图4是描述根据本发明的优选实施例、用于提供可信主机环境与VM的要求720的符合性的验证的操作方法步骤的高级示例性示意流程图400。图5是描述根据本发明的优选实施例的平台配置寄存器(PCR)505、555的框图。图6是描述根据本发明的优选实施例的服务器150的框图600。图7是描述根据本发明的优选实施例、可在与服务器150通信的工作站120上操作的控制程序118的框图。
将使用IBMPOWER6虚拟化架构仅作为示例来描述本发明。本领域的技术人员将理解本发明可同样地应用于其它虚拟化架构。
作为阐述本发明的示例,远程证明关心是否已经在底层服务器上使能了“样本”用户账号的状态。本领域的技术人员将理解远程证明可以关心有关底层服务器的任意数量的信息项。例如,可经由本发明描述的机制报告其它配置标记,诸如调试模式、转储模式、故障标记、固件版本、硬件设置和更多的标记。
该方法开始于步骤301,电力被施加到服务器150。在步骤305,基本输入/输出系统(BIOS)启动(bringup)服务器150的硬件620。服务器150还包括非易失性存储器(NVRAM)630,其中驻留有用于管理程序(也称为PHYP)645的代码635和配置635。驻留在POWER系统上的小型控制计算机系统称为弹性服务处理器(FSP)605。该FSP605控制NVRAM630,并负责使用载入程序代码610来载入和更新管理程序645。管理程序645的控制和更新被认为是受限制的(只能应用数字签名的更新),因此管理程序645被认为是可信核心根(CRT)的信赖形成部分。在步骤310,载入管理程序代码635,并且针对服务器150启动管理程序645。
在启动服务器150时,启动可信平台模块(TPM)处理315,在主机数据库622中记录事件,并在一组PCR505中在TPM628中存储加密的度量的结果。TPM628存储在服务器硬件620上安全的位置。可信引导是用于在计算系统中引导和建立信任链的过程。使用TPM处理315,引导的组件可以加密的度量,并且结果加密存储在TPM628的PCR505中。PCR505在加电时初始化,并使用扩展函数修改。每个引导组件通过计算代表下一个引导组件的字节阵列的哈希值,度量下一个引导组件。作为结果的值加密的与已有的PCR505连接在一起。一旦启动完成,PCR505的最后的组代表信任链。一旦系统正在运行,可由远程系统使用远程证明过程(例如控制程序118中的DAA(直接匿名证明))提取信任链用于检查。PCR505的值用于确定服务器是否可信。存在使PCR扩展处理通过整个引导处理的过程,包括例如BIOS、引导载入程序(例如管理程序载入)、任何原生操作系统(OS)264启动和任何原生应用启动。图5描述了示出用于启动处理的不同哈希值的位置的一组示例性PCR505。例如,PCR_0包括字段510中用于度量的可信的核心根(CRTM)的哈希值。CRTM表示BIOS引导块代码,并且被认为永远可信。
在步骤320,管理程序启动多个VM152之一。NVRAM630还包括虚拟可信平台模块(vTPM)代码640。VM152、156中的每个运行在管理程序645之上,相关联的vTPM555允许VM152、156执行可信引导和随后的远程证明。在步骤325,vTPM代码640被载入。VM152将启动事件记录在VM数据库665中,并且还在其启动期间在其vTPM655中建立一组虚拟的PCR(vPCR)。与步骤305、310和315中的初始系统的启动类似,软件组件被载入(在步骤330),以下的组件加密度量(在步骤335),并且结果被存储在vPCR555中。在步骤345,做出VM152是否已经完全被启动的确定。如果还有更多的组件要载入,则控制返回步骤330。更多的组件可包括应用154、158和168。在优选的实施例中,更新vPCR555的责任被传递给管理程序645。在可选实施例中,VM152更新其vPCR555。在该示例中,因为VM152启动存在八级,因此vPCR_0至vPCR_7被更新。
vTPM可被存储在各个位置中。在优选的实施例中,每个VM152、156控制其自己相关联的vTPM655。在可选的实施例中,所有的vTPM655由管理VM控制,访问从对应的VM152、156路由到适当的vTPM655。本领域的技术人员将理解可以向控制vTPM655提供许多不同的架构。
如果没有更多的组件要载入,VM152启动,控制进行到步骤350。在步骤350,管理程序645被准许对vPCR_8565的访问。vPCR_8565不被步骤320使用。在步骤355,FSP605记录服务器150的“/etc/passd”文件的安全哈希算法-1(SHA-1)哈希函数,其在缺省配置中具有已知的度量。本领域技术人员将理解可以使用其它的加密算法。在步骤360,FSP605和管理程序645共同(collude)传送该度量以使用哈希扩展PCR_8565。被标识出以保存与可信主机环境相关联的配置数据的PCR565被保留仅用于该使用。在步骤365,保证对vTPM的访问是安全的,以确保没有会危及其可信赖性的不经意的访问。
在一个可选的实施例中,管理程序645在未被VM启动步骤320使用的不止一个vPCR位置中记录系统信息。
在步骤370,如果存在对服务器150的“/etc/passwd”文件的任何更新,控制回到步骤350。例如,管理员114对FSP605进行改变,使能“dev”用户账号。“/etc/passwd”文件的SHA-1哈希变为另一个已知值。在该实施例中,管理程序645命令vTPM655使用新的度量再次扩展PCR_8565,并且命令VM152将该更新记录在虚拟数据库665中,从而给PCR_8565一个反映FSP“/etc/passwd”文件的状态的、新的唯一的、然而已知且可预测的值。
在步骤399,该方法进行到图4的验证方法。
在步骤405,控制程序118接收到请求,以进行对VM152的远程证明。在步骤410,控制程序118请求对VM152的访问。在步骤415,在控制程序118的远程管者器735和VM152的远程客户端755之间发生加密密钥交换,从而确保该控制程序118被授权访问VM152。
在步骤420,VM152发送消息780到控制程序118。消息780包括与PCR_0至PCR_7中的值对应的第一值782,用于PCR_8565的第二值784,与VM152的启动对应的第一事件的详细资料786,以及与“/etc/passwd”文件值的记录对应的第二事件788的详细资料。在步骤425,控制程序118接收消息780。在步骤430,分析组件715分析消息780,以确定第一值782、第二值784、第一事件详细资料786以及第二事件详细资料788。第一和第二值782、784以及第一和第二事件详细资料786、788存储在控制程序数据库730中。在步骤435中,重放组件710使用第一事件详细资料786来模拟第一事件,以建立与被模拟的第一事件对应的一组PCR值714。重放组件710还使用第二事件详细资料786来模拟第二事件,以建立与被模拟的第二事件对应的PCR值716。
PCR值对于被运行以产生值的事件的组是唯一的。对相同事件的模拟总会导致相同的PCR结果组。对不同事件的模拟总会导致不同的PCR结果组。因此,可使用针对两组事件的PCR结果的比较来确定所述事件是否是相同的。如果所述事件不是相同的,则这可指示一组已经被篡改,并且因此该系统不可信。
在步骤440,比较组件725将从VM152接收的、与PCR555的PCR_0至PCR_7对应的第一值782与PCR值的组714进行比较。比较组件725还将从VM152接收的、与PCR555的PCR_8565对应的第二值784与PCR值的组716进行比较。在步骤445,如果PCR值的组712不匹配预期的第一值782,则系统不可信,且方法移至步骤470。在步骤470,管理员114采取与不可信系统相关联的任何动作,例如,禁用VM152。
可选地,如果PCR值的组714不匹配预期的第一值782,则系统可以是有条件的可信的,并且方法移至步骤450。在步骤450,度量第二值784。如果第二值784为零,则其指示没有设置系统值,且该系统可信,并且控制转到步骤475。在步骤475,管理员采取与可信系统相关联的任何动作,例如,记录结果用于审计(audit)目的。如果第二值784为非零,则其指示已经设置了系统值,并且控制转到步骤455。
在步骤455,控制程序118载入要求720并计算对应的加密值。在步骤460,比较组件725将加密值与第二值784进行比较。匹配该加密值并且第二值784指示系统150满足要求720。在步骤465,如果加密值匹配第二值784,则要求720被满足,并且控制转到步骤480。在步骤480,已知VM152的满意状态,调用核实组件728,并且通过进行与VM152的满意状态相关联的任何动作,承认在可信主机环境中满足SLA要求的核实,所述动作例如但不限于将结果记录在审计记录中。然而,如果加密值不匹配第二值784,则要求720未被满足,控制转到步骤485。在步骤485,已知VM152的不满意状态,调用核实组件728,并且通过进行与未能满足SLA要求相关联的行动而否认验证。例如,在步骤485,如果管理员114对FSP605进行改变,使能“dev”用户账号,但是存在必须禁用“dev”来运行VM152的要求720,则作为远程证明的结果可采取行动,例如,禁用“dev”用户账号。这在VM152正在运行时发生,从而进行的任何证明显示已经使能FSP“dev”用户而没有重新引导VM152。
该方法结束在步骤499结束。
在一个可选的实施例中,度量更多的环境和配置项目并经由vPCR555报告给远程证明。
在一个可选实施例中,管理程序645在更低系统中不仅报告用户账号。一个可被度量的有用项目是硬件的实际配置(例如,中央处理单元(CPU)标识号(ID)、类型、速度、存储量、硬件序列号)。
在一个可选实施例中,管理程序645报告版本或补丁等级,其可以例如证明已经应用了某些安全修护。
在本发明的一个可选实施例中,该方法被用于如图2中所描述的系统架构:vTPM由系统翻译器进行维护及更新,而不是由管理程序进行,或者与管理程序结合进行。
在本发明的一个优选实施例中,本方法还可以在将VM152、156从第一服务器150移植到第二服务器160时使用。在VM152、156(和移植的VM152、156的vTPM655)的移植之后,运行在第二服务器160上的管理程序645使用来自第二服务器160的系统值扩展PCR_8565。
在一个优选的实施例中,管理程序645充当存储组件以将与可信主机环境相关联的配置数据加密地存储在至少一个加密数据结构中。在一个可选的实施例中,该存储组件包括VM152外部的另一组件,其与VM152通信以将配置数据存储在VM152的vTPM655的PCR555中。
参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描述了本发明的各方面。将理解:可以通过计算机程序指令来实现所述流程图图示和/或框图的每个块、以及所述流程图图示和/或框图中的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机、或者其他可编程数据处理装置的处理器以便产生机器,使得经由所述计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在所述流程图和/或框图的一个或多个块中指定的功能/动作的部件。
如本领域技术人员将认识到的,可以作为系统、方法或计算机程序产品来具体化本发明的各方面。因此,本发明的各方面可以采取全硬件实施例的形式、全软件实施例(包括固件、驻留软件、微代码等)的形式、或者在这里均可通称为“电路”、“模块”或“系统”的组合了软件和硬件方面的实施例的形式。此外,本发明的各方面可采取在一个或多个计算机可读介质中具体化的计算机程序产品的形式,所述计算机可读介质上具体化有计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。该计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备,或者前述各项的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽性列举)包括以下各项:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者前述各项的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是可包含或存储由指令执行系统、装置或设备使用或者结合所述指令执行系统、装置或设备使用的指令的任何有形介质。
计算机可读信号介质可包括在基带中或者作为载波的一部分的传播的数据信号,其中在该传播的数据信号中具体化了计算机可读程序码。这种传播的信号可以采用各种形式中的任意一种,包括但不限于电磁、光或任何以上适当的组合。计算机可读信号介质可以是并非是计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序的任何计算机可读介质。
可以使用任何适当的介质传送在计算机可读介质上包含的程序,所述介质包括但不限于无线、有线、光纤缆线、RF等,或者前者的任意适当的组合
用于执行本发明的各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语言包括:面向对象编程语言,例如Java、Smalltalk、C++等;以及传统的过程编程语言,例如“C”编程语言或类似编程语言。该程序代码可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)连接到外部计算机。
为了避免疑问,术语“包括”,如此处贯穿说明书和权利要求使用的,不被解释为“仅由…组成”。
Claims (14)
1.一种用于提供可信主机环境与虚拟机VM的要求的符合性的验证的系统,所述VM在可信主机环境中被完全启动,该系统包括:
存储组件,用于在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据,所述配置数据在启动过程中由所述VM生成;
发送组件,响应于所述存储组件存储所述配置数据,用于将所述至少一个加密的数据结构发送到控制组件,所述至少一个加密的数据结构包含已存储的配置数据;
分析组件,响应于所述控制组件接收所述至少一个加密的数据结构,用于分析所述至少一个加密的数据结构以确定所述配置数据;
比较组件,响应于所述分析组件确定所述配置数据,用于将所述配置数据与要求相比较;以及
核实组件,响应于所述比较组件确定所述配置数据匹配所述要求,用于承认所述VM在可信主机环境中的核实。
2.根据权利要求1所述的系统,其中所述核实组件响应于所述比较组件确定所述配置数据不匹配所述要求,还可操作用于否认所述VM在可信主机环境中的核实。
3.根据权利要求1或2所述的系统,其中所述存储组件是管理程序。
4.根据权利要求1或2所述的系统,其中所述存储组件与所述VM通信。
5.根据权利要求1或2所述的系统,其中所述至少一个加密的数据结构是至少一个平台配置寄存器PCR。
6.根据权利要求1或2所述的系统,其中所述至少一个加密的数据结构与所述VM的又一个可信主机环境相关联。
7.根据权利要求1或2所述的系统,其中所述可信主机环境包括可信平台模块。
8.根据权利要求1或2所述的系统,其中所述系统还包括包含可信主机环境的第一服务器和包含控制组件的第二服务器。
9.一种用于提供可信主机环境与虚拟机VM的要求的符合性的验证的方法,所述VM在可信主机环境中被完全启动,该方法包括以下步骤:
在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据,所述配置数据在启动过程中由所述VM生成;
响应于存储配置数据的步骤,将所述至少一个加密的数据结构发送到控制组件,所述至少一个加密的数据结构包含已存储的配置数据;
响应于接收至少一个加密的数据结构的步骤,分析所述至少一个加密的数据结构以确定所述配置数据;
响应于确定所述配置数据的步骤,将所述配置数据与要求相比较;以及
响应于确定所述配置数据匹配所述要求的步骤,承认所述VM在可信主机环境中的核实。
10.根据权利要求9所述的方法,其中所述方法还包括,响应于确定所述配置数据不匹配所述要求的步骤,否认所述VM在可信主机环境中的核实。
11.根据权利要求9和10的任一个所述的方法,其中所述在至少一个加密的数据结构中加密存储与可信主机环境相关联的配置数据的步骤包括在至少一个平台配置寄存器PCR中加密地存储与可信主机环境相关联的配置数据的步骤。
12.根据权利要求9和10中的任一个所述的方法,其中该方法还包括将所述至少一个加密的数据结构与VM的又一个可信主机环境相关联的步骤。
13.根据权利要求9和10中的任一个所述的方法,其中所述可信主机环境包括可信平台模块。
14.根据权利要求9和10中的任一个所述的方法,还包括提供包含可信主机环境的第一服务器和提供包含所述控制组件的第二服务器的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10196282 | 2010-12-21 | ||
EP10196282.7 | 2010-12-21 | ||
PCT/EP2011/073259 WO2012084837A1 (en) | 2010-12-21 | 2011-12-19 | Virtual machine validation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103270518A CN103270518A (zh) | 2013-08-28 |
CN103270518B true CN103270518B (zh) | 2016-01-20 |
Family
ID=45406749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180061838.6A Active CN103270518B (zh) | 2010-12-21 | 2011-12-19 | 虚拟机验证系统及其方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9081600B2 (zh) |
JP (1) | JP5957004B2 (zh) |
CN (1) | CN103270518B (zh) |
DE (1) | DE112011104496T5 (zh) |
GB (1) | GB2501205A (zh) |
TW (1) | TW201241662A (zh) |
WO (1) | WO2012084837A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2619701B1 (en) | 2010-09-22 | 2015-04-22 | International Business Machines Corporation | Attesting use of an interactive component during a boot process |
US8869264B2 (en) | 2010-10-01 | 2014-10-21 | International Business Machines Corporation | Attesting a component of a system during a boot process |
US9489232B2 (en) * | 2010-11-18 | 2016-11-08 | International Business Machines Corporation | Techniques for attesting data processing systems |
TW201241662A (en) * | 2010-12-21 | 2012-10-16 | Ibm | Virtual machine validation |
KR20130114672A (ko) * | 2011-01-19 | 2013-10-17 | 인터내셔널 비지네스 머신즈 코포레이션 | 소프트웨어를 업데이트하는 장치 및 방법 |
US8954964B2 (en) * | 2012-02-27 | 2015-02-10 | Ca, Inc. | System and method for isolated virtual image and appliance communication within a cloud environment |
US9471355B2 (en) * | 2012-07-31 | 2016-10-18 | Hewlett-Packard Development Company, L.P. | Secure operations for virtual machines |
US20140075522A1 (en) * | 2012-09-07 | 2014-03-13 | Red Hat, Inc. | Reliable verification of hypervisor integrity |
US9037854B2 (en) * | 2013-01-22 | 2015-05-19 | Amazon Technologies, Inc. | Privileged cryptographic services in a virtualized environment |
US10579405B1 (en) * | 2013-03-13 | 2020-03-03 | Amazon Technologies, Inc. | Parallel virtual machine managers |
US9367339B2 (en) | 2013-07-01 | 2016-06-14 | Amazon Technologies, Inc. | Cryptographically attested resources for hosting virtual machines |
US10031761B2 (en) * | 2013-10-11 | 2018-07-24 | International Business Machines Corporation | Pluggable cloud enablement boot device and method |
US9354894B2 (en) | 2013-10-11 | 2016-05-31 | International Business Machines Corporation | Pluggable cloud enablement boot device and method that determines hardware resources via firmware |
US9384006B2 (en) | 2013-10-11 | 2016-07-05 | Globalfoundries Inc. | Apparatus and methods for automatically reflecting changes to a computing solution into an image for the computing solution |
CN104717235B (zh) * | 2013-12-11 | 2018-01-02 | 铁道部信息技术中心 | 一种虚拟机资源检测方法 |
US9519498B2 (en) | 2013-12-24 | 2016-12-13 | Microsoft Technology Licensing, Llc | Virtual machine assurances |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9652276B2 (en) | 2014-09-17 | 2017-05-16 | International Business Machines Corporation | Hypervisor and virtual machine protection |
US10229272B2 (en) | 2014-10-13 | 2019-03-12 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9584317B2 (en) | 2014-10-13 | 2017-02-28 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
US9832207B2 (en) * | 2014-12-23 | 2017-11-28 | Mcafee, Inc. | Input verification |
US10068092B2 (en) | 2015-01-21 | 2018-09-04 | Microsoft Technology Licensing, Llc | Upgrading a secure boot policy on a virtual machine |
DE102015214385A1 (de) * | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors |
CN107533478A (zh) * | 2015-07-31 | 2018-01-02 | 慧与发展有限责任合伙企业 | 计算机系统的迁移 |
US9471367B1 (en) * | 2015-12-08 | 2016-10-18 | International Business Machines Corporation | Virtual machine usage data collection using securely loaded virtual firmware |
CN107533594B (zh) | 2016-01-21 | 2021-01-26 | 慧与发展有限责任合伙企业 | 验证软件的方法、安全软件系统及可读存储介质 |
US10785099B2 (en) * | 2016-06-16 | 2020-09-22 | Google Llc | Secure configuration of cloud computing nodes |
US11354421B2 (en) * | 2019-03-08 | 2022-06-07 | International Business Machines Corporation | Secure execution guest owner controls for secure interface control |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071463A (zh) * | 2007-06-08 | 2007-11-14 | 北京飞天诚信科技有限公司 | 虚拟个人办公环境的方法和设备 |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237668A (en) * | 1989-10-20 | 1993-08-17 | International Business Machines Corporation | Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media |
US7219315B1 (en) * | 2003-09-22 | 2007-05-15 | Tenison Technology Eda Limited | Comparison of semiconductor circuitry simulations |
US7165201B2 (en) * | 2003-09-25 | 2007-01-16 | Hitachi Global Storage Technologies Netherlands B.V. | Method for performing testing of a simulated storage device within a testing simulation environment |
US7340661B2 (en) * | 2003-09-25 | 2008-03-04 | Hitachi Global Storage Technologies Netherlands B.V. | Computer program product for performing testing of a simulated storage device within a testing simulation environment |
US20050154573A1 (en) * | 2004-01-08 | 2005-07-14 | Maly John W. | Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design |
US7664965B2 (en) * | 2004-04-29 | 2010-02-16 | International Business Machines Corporation | Method and system for bootstrapping a trusted server having redundant trusted platform modules |
GB2424092A (en) * | 2005-03-11 | 2006-09-13 | Transitive Ltd | Switching between code translation and execution using a trampoline |
US9785485B2 (en) * | 2005-07-27 | 2017-10-10 | Intel Corporation | Virtualization event processing in a layered virtualization architecture |
US7356725B2 (en) * | 2005-09-09 | 2008-04-08 | International Business Machines Corporation | Method and apparatus for adjusting a time of day clock without adjusting the stepping rate of an oscillator |
US8015408B2 (en) * | 2006-09-14 | 2011-09-06 | Interdigital Technology Corporation | Trust evaluation for a mobile software agent on a trusted computing platform |
US8612971B1 (en) * | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8151262B2 (en) * | 2007-03-30 | 2012-04-03 | Lenovo (Singapore) Pte. Ltd. | System and method for reporting the trusted state of a virtual machine |
US8127292B1 (en) * | 2007-06-22 | 2012-02-28 | Parallels Holdings, Ltd. | Virtualization system with hypervisor embedded in bios or using extensible firmware interface |
MY145949A (en) | 2007-09-20 | 2012-05-31 | Mimos Berhad | Trusted computer platform method and system without trust credential |
US8259948B2 (en) * | 2007-12-29 | 2012-09-04 | Intel Corporation | Virtual TPM key migration using hardware keys |
US8032942B2 (en) * | 2007-12-31 | 2011-10-04 | Intel Corporation | Configuration of virtual trusted platform module |
US8165864B2 (en) * | 2008-02-08 | 2012-04-24 | International Business Machines Corporation | Method, system and computer program product for verifying address generation, interlocks and bypasses |
JP5411122B2 (ja) * | 2008-02-25 | 2014-02-12 | パナソニック株式会社 | 情報処理装置 |
US20100083251A1 (en) * | 2008-09-12 | 2010-04-01 | Hyper9, Inc. | Techniques For Identifying And Comparing Virtual Machines In A Virtual Machine System |
US20100107160A1 (en) * | 2008-10-29 | 2010-04-29 | Novell, Inc. | Protecting computing assets with virtualization |
US8751654B2 (en) * | 2008-11-30 | 2014-06-10 | Red Hat Israel, Ltd. | Determining the graphic load of a virtual desktop |
US7904540B2 (en) * | 2009-03-24 | 2011-03-08 | International Business Machines Corporation | System and method for deploying virtual machines in a computing environment |
US8336050B2 (en) * | 2009-08-31 | 2012-12-18 | Red Hat, Inc. | Shared memory inter-process communication of virtual machines using virtual synchrony |
US8631404B2 (en) * | 2010-02-18 | 2014-01-14 | Red Hat Israel, Ltd. | Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels |
US8893092B1 (en) * | 2010-03-12 | 2014-11-18 | F5 Networks, Inc. | Using hints to direct the exploration of interleavings in a multithreaded program |
US8812871B2 (en) * | 2010-05-27 | 2014-08-19 | Cisco Technology, Inc. | Method and apparatus for trusted execution in infrastructure as a service cloud environments |
US8856504B2 (en) * | 2010-06-07 | 2014-10-07 | Cisco Technology, Inc. | Secure virtual machine bootstrap in untrusted cloud infrastructures |
US8468007B1 (en) * | 2010-08-13 | 2013-06-18 | Google Inc. | Emulating a peripheral mass storage device with a portable device |
US20120054486A1 (en) * | 2010-08-31 | 2012-03-01 | MindTree Limited | Securing A Virtual Environment And Virtual Machines |
US8869264B2 (en) * | 2010-10-01 | 2014-10-21 | International Business Machines Corporation | Attesting a component of a system during a boot process |
US8819225B2 (en) * | 2010-11-15 | 2014-08-26 | George Mason Research Foundation, Inc. | Hardware-assisted integrity monitor |
US20120131334A1 (en) * | 2010-11-18 | 2012-05-24 | International Business Machines Corporation | Method for Attesting a Plurality of Data Processing Systems |
US20120151209A1 (en) * | 2010-12-09 | 2012-06-14 | Bae Systems National Security Solutions Inc. | Multilevel security server framework |
US10203974B2 (en) * | 2010-12-20 | 2019-02-12 | Microsoft Technology Licensing, Llc | Probe insertion via background virtual machine |
TW201241662A (en) * | 2010-12-21 | 2012-10-16 | Ibm | Virtual machine validation |
US9612855B2 (en) * | 2011-01-10 | 2017-04-04 | International Business Machines Corporation | Virtual machine migration based on the consent by the second virtual machine running of the target host |
US9154433B2 (en) * | 2011-10-25 | 2015-10-06 | Nicira, Inc. | Physical controller |
US9015025B2 (en) * | 2011-10-31 | 2015-04-21 | International Business Machines Corporation | Verifying processor-sparing functionality in a simulation environment |
US20130117006A1 (en) * | 2011-11-07 | 2013-05-09 | Microsoft Corporation | Simulated boot process to detect introduction of unauthorized information |
US9229524B2 (en) * | 2012-06-27 | 2016-01-05 | Intel Corporation | Performing local power gating in a processor |
KR20140134451A (ko) * | 2013-05-14 | 2014-11-24 | 한국전자통신연구원 | 테스트 환경 설정 장치, 및 테스트 환경 설정 장치를 이용하는 네트워크 시뮬레이션 장치의 작동 방법 |
US9407580B2 (en) * | 2013-07-12 | 2016-08-02 | Nicira, Inc. | Maintaining data stored with a packet |
US9785454B2 (en) * | 2013-07-25 | 2017-10-10 | Login VSI B.V. | Virtual session benchmarking tool for measuring performance and/or scalability of centralized desktop environments |
-
2011
- 2011-11-07 TW TW100140610A patent/TW201241662A/zh unknown
- 2011-12-19 WO PCT/EP2011/073259 patent/WO2012084837A1/en active Application Filing
- 2011-12-19 GB GB1312923.4A patent/GB2501205A/en not_active Withdrawn
- 2011-12-19 US US13/995,814 patent/US9081600B2/en active Active
- 2011-12-19 JP JP2013545273A patent/JP5957004B2/ja active Active
- 2011-12-19 DE DE112011104496T patent/DE112011104496T5/de active Pending
- 2011-12-19 CN CN201180061838.6A patent/CN103270518B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071463A (zh) * | 2007-06-08 | 2007-11-14 | 北京飞天诚信科技有限公司 | 虚拟个人办公环境的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US9081600B2 (en) | 2015-07-14 |
JP2014505924A (ja) | 2014-03-06 |
WO2012084837A1 (en) | 2012-06-28 |
CN103270518A (zh) | 2013-08-28 |
US20140025961A1 (en) | 2014-01-23 |
GB2501205A (en) | 2013-10-16 |
GB201312923D0 (en) | 2013-09-04 |
JP5957004B2 (ja) | 2016-07-27 |
TW201241662A (en) | 2012-10-16 |
DE112011104496T5 (de) | 2013-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103270518B (zh) | 虚拟机验证系统及其方法 | |
US9202062B2 (en) | Virtual machine validation | |
US9501665B2 (en) | Method and apparatus for remotely provisioning software-based security coprocessors | |
CN105308612B (zh) | 用于安全代码启动的动态加载测量环境 | |
KR100930218B1 (ko) | 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템 | |
US8074262B2 (en) | Method and apparatus for migrating virtual trusted platform modules | |
US7571312B2 (en) | Methods and apparatus for generating endorsement credentials for software-based security coprocessors | |
US7636442B2 (en) | Method and apparatus for migrating software-based security coprocessors | |
US8151262B2 (en) | System and method for reporting the trusted state of a virtual machine | |
CN102163266A (zh) | 在主机服务器之间安全地移动虚拟机 | |
CN107704308B (zh) | 虚拟平台vTPM管理系统、信任链构建方法及装置、存储介质 | |
Toegl et al. | acTvSM: A dynamic virtualization platform for enforcement of application integrity | |
CN114661411A (zh) | 在云基础架构中供应安全/加密的虚拟机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |