CN101539973B - 完整性度量技术在可信虚拟域无缝运行的方法 - Google Patents
完整性度量技术在可信虚拟域无缝运行的方法 Download PDFInfo
- Publication number
- CN101539973B CN101539973B CN200910083082XA CN200910083082A CN101539973B CN 101539973 B CN101539973 B CN 101539973B CN 200910083082X A CN200910083082X A CN 200910083082XA CN 200910083082 A CN200910083082 A CN 200910083082A CN 101539973 B CN101539973 B CN 101539973B
- Authority
- CN
- China
- Prior art keywords
- vtpm
- virtual domain
- rear end
- virtual
- module
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种完整性度量技术在可信虚拟域无缝运行的方法,基于现有的虚拟可信平台模块技术和完整性度量软件进行可信计算的客户虚拟域提供一种基于事件驱动的自适应方法,使得可信虚拟域不因为非虚拟环境下开发的完整性度量技术在可信虚拟域内核的无缝融合而发生系统启动崩溃,即完整性度量技术在可信虚拟域无缝运行。本发明的方法不需修改可信虚拟域的任何模块,只需修改特权虚拟域的模块,因此本发明的方法可扩展性强,在保障可信虚拟域正常启动的前提下,提高了软件利用率,降低了开发和维护费用;而且事件驱动机制使得实施本发明提供的方法的系统响应速度快,同时系统资源有效利用率高。
Description
技术领域
本发明涉及计算机信息安全可信计算领域,特别是涉及一种完整性度量技术在可信虚拟域无缝运行的方法。
背景技术
虚拟机技术应用整机虚拟化的概念,解除了实体机兼容性和硬件资源对应用程序的约束,实现同一硬件平台上多操作系统的并行运行。网络化时代以效率优先而不是以安全优先原则设计的现有PC系统越来越容易遭受黑客、间谍软件和病毒的攻击。为了解决PC机结构上的不安全问题,从根本上提高其可信性,可信计算平台联盟TCPA(后来更名为TCG)提出通过增强现有的终端体系结构的安全性来保证整个系统安全。虚拟化技术与可信计算技术有机结合将能构建出极其有效的终端平台安全解决方案。
传统的可信计算技术只能保证单一计算机的安全性,要实现可信应用软件在客户虚拟域上无缝地运行,必须解决两个问题:一是如何为客户虚拟域提供TPM设备;二是如何实现客户虚拟域的可信链各个阶段的完整性度量。图1给出Xen虚拟机组件框架,每个虚拟域运行一个操作系统,虚拟机监控器位于系统硬件平台与虚拟计算域操作系统软件之间,负责监控下层硬件,并将硬件抽象成可管理调度的实体供上层计算域使用。Xen虚拟机启动后,特权虚拟域是必须而且首先进入的操作系统,然后再根据具体情况启动客户虚拟域;特权虚拟域具有最高的权限,特权虚拟域利用虚拟域管理工具管理客户虚拟域,包括创建、删除、访问物理设备等。图2为一种客户虚拟域利用特权虚拟域实现的虚拟TPM(vTPM)设备进行可信计算的方法的组件框架示意图;在该方法中,不同客户虚拟域使用不同vTPM设备,客户虚拟域里可信应用软件发出的TPM指令请求通过vTPM前端驱动、vTPM后端驱动、vTPM设备管理工具,最后到达vTPM设备,处理后的结果再经相反路线回到可信应用软件。目前没有专门为可信虚拟域开发的完整性度量软件,IMA(Integrity measurement Architecture)是IBM研究院针对非虚拟环境开发的能对可执行程序和内核模块进行完整性度量的软件工具,IMA可以无缝融合到可信虚拟域内核。图3为来自客户虚拟域IMA软件的TPM指令的处理流程图。
目前图2框架的具体实现都是将vTPM设备的启动与可信虚拟域的启动设计成两个相互独立的并行过程,图4给出了图2框架的一个具体实现中客户虚拟域启动过程和虚拟TPM设备启动过程的流程图,之所以将虚拟域的启动与虚拟TPM设备的创建这两个过程设计成两个并行的过程主要是为了提高系统资源利用率,加快整个系统的启动过程。需要指出的是当完整性度量软件IMA无缝融合在可信虚拟域内核时,可信客户虚拟域可能会出现启动崩溃现象。启动崩溃原因是:图4系统使用vTPM后端驱动的状态来代表vTPM设备的状态,图2中的虚拟域管理工具、vTPM设备管理工具和vTPM设备进程都是作为用户空间的普通进程被调度执行的,虚拟域间CPU调度以及虚拟域内进程的调度的不确定性会导致IMA软件发出访问TPM指令的时候,vTPM前后端驱动已经处于CONNECTED状态(vTPM前后端驱动的初始状态为DISCONNECTED),即vTPM前端驱动可以将TPM指令发送给vTPM后端驱动而不是缓存TPM指令,但是此时vTPM设备还未建立好,从而导致IMA模块收到“协议驱动未准备好”的信息,该信息在非虚拟环境表示设备有问题,IMA软件对这种错误的处理就是停止运行,也就是无缝融合IMA的可信虚拟域发生了启动崩溃。而目前解决启动崩溃的方法都需要对客户虚拟域内核做修改,因此可扩展性差。
发明内容
本发明的目的在于为避免上述现有技术中的不足而提供的一种完整性度量技术在可信虚拟域无缝运行的方法。使得不需要对可信客户虚拟域的核心代码和完整性度量软件做任何修改,能保证在动态环境里可信虚拟域不会因为虚拟TPM设备创建过程的缓慢而使得系统启动崩溃,而且系统响应速度快、系统资源的有效利用率高。
本发明的目的可以通过以下措施来达到:
完整性度量技术在可信虚拟域无缝运行的方法,方法组件包括VTPM后端驱动模块,虚拟域管理工具模块,特权虚拟域模块,VTPM设备管理工具模块,VTPM设备,其方法的具体步骤如下:
1.加载vTPM后端驱动,初始化后端驱动,并设置变量xenbusstate和vtpmstate都为0,运行vTPM后端驱动通信模块,该模块用于和vTPM前端驱动通信模块进行通信;
2.特权虚拟域中通过虚拟域管理工具启动客户虚拟域,首先分配一个新的vTPM设备标识号,然后将这个标识号连同创建vTPM设备的指令发送给vTPM设备管理工具;
3.vTPM设备管理工具读取创建vTPM设备指令后,首先根据指令体内容创建一个vTPM设备进程,并把接收到的vTPM设备标识号与所创建的vTPM设备进程进行绑定,然后启动该进程,最后vTPM设备管理工具将vTPM设备进程启动的结果发送给虚拟域管理工具。虚拟域管理工具在确认vTPM设备进程正常启动后,将该vTPM设备标识号写入XenStore,每个要启动的客户虚拟域都在XenStore的特权虚拟域目录下有一个用虚拟域标识号命名的目录,vTPM设备标识号则记录在该目录的vtpm目录下;然后虚拟域管理工具加载并运行客户虚拟域内核;
4.vTPM设备进程启动后,首先完成初始化工作,其次根据该vTPM设备标识号在Xenstore中查找对应的虚拟域标识号;然后在/local/domain/0/backend/vtpm/虚拟域标识号/0/目录下创建vTPMready%s,并将值设置为1,其中%s为vTPM设备标识号,最后vTPM设备程序开始工作,等待TPM指令;
5.虚拟域操作系统内核加载vTPM前端驱动,vTPM前端驱动在进行必要的初始化之后,将自己的状态设置为DISCONNECTD,然后vTPM前端驱动通信模块开始与vTPM后端驱动通信模块通信,同时虚拟域操作系统内核继续加载其他的模块,包括IMA模块;
6.虚拟域操作系统内核加载vTPM前端驱动时,触发vTPM后端驱动去Xenstore获取vTPM设备标识号,vTPM后端驱动在获取vTPM设备标识号后将创建vTPMready监视器去监视vTPMready%s;
7.vTPMready监视器在将Xenstore中的vTPMready%s值保存在变量vtpmstate后,判断xenbusstate是否为1;当该值为1时,则将vTPM后端驱动的xenbus状态设置为XenbusStateConnected,这将触发vTPM前端驱动将自己状态设置为CONNECTED,并开始将TPM指令转发给vTPM后端驱动。
8.vTPM后端驱动通信模块得知vTPM前端驱动通信模块将vTPM前端驱动的xenbus状态设置为XenbusStateConnected后,进行一系列设置和检查工作,然后判断变量vtpmstate是否为1,如果不是,则将xenbusstate赋值为1;否则vTPM后端驱动通信模块将vTPM后端驱动的xenbus状态设置为XenbusStateConnected,这将触发vTPM前端驱动将自己状态设置为CONNECTED,并开始将TPM指令转发给vTPM后端驱动。
本发明相比现有技术具有如下优点:
1、非虚拟域环境下开发的完整性度量技术平滑无缝地应用到可信虚拟域,提高了软件利用率,降低了开发和维护费用。
2、事件驱动机制使得实施本发明提供的方法的系统响应速度快,同时系统资源有效利用率高。
附图说明
图1为Xen虚拟机组件框架示意图;
图2为一种客户虚拟域基于虚拟TPM进行可信计算的方法的组件框架示意图;
图3为图2方法中的客户虚拟域IMA软件所发出的TPM指令的处理流程图;
图4为图2方法中的客户虚拟域启动和虚拟TPM设备启动两个并行过程的流程图;
图5是本发明中的客户虚拟域启动和虚拟TPM设备启动两个并行过程的流程图。
具体实施方式
本发明的方法需要修改图2方法中的vTPM后端驱动和vTPM设备程序,使得vTPM前端驱动只有在vTPM设备程序可以处理TPM指令的情况下才将可信虚拟域的TPM命令转发给vTPM后端驱动,否则先缓存起来直到vTPM设备程序可以处理TPM指令才发送。
系统部属过程如下:
步骤1,部属图2方法的组件
步骤2,将修改的vTPM设备程序替换图2方法提供的vTPM设备程序
步骤3,将修改的vTPM后端驱动代替图2方法提供的vTPM后端驱动
步骤4,在特权虚拟域加载修改后的vTPM后端驱动并启动vTPM设备管理工具。
步骤5,在特权虚拟域用虚拟域管理工具启动可信客户虚拟域。
下面根据图5对本发明中涉及的各组件和模块的工作流程进行详细说明:
1.加载vTPM后端驱动,后端驱动需要完成一系列初始化工作,包括设置变量xenbusstate和vtpmstate都为零,并运行vTPM后端驱动通信模块,该模块用于和vTPM前端驱动通信模块进行通信。
2.如图5所示,特权虚拟域中通过虚拟域管理工具启动客户虚拟域,首先分配一个新的vTPM设备标识号,然后将这个标识号连同创建vTPM设备的指令发送给vTPM设备管理工具。
3.vTPM设备管理工具读取创建vTPM设备指令后,首先根据指令体内容创建一个vTPM设备进程,并把接收到的vTPM设备标识号与所创建的vTPM设备进程进行绑定,然后启动该进程,最后vTPM设备管理工具将vTPM设备进程启动的结果发送给虚拟域管理工具。虚拟域管理工具在确认vTPM设备进程正常启动后,将该vTPM设备标识号写入XenStore,每个要启动的客户虚拟域都在XenStore的特权虚拟域目录下有一个目录(用虚拟域标识号命名),vTPM设备标识号则记录在该目录的vtpm目录下;然后虚拟域管理工具加载并运行客户虚拟域内核。
4.vTPM设备进程启动后,首先完成初始化工作,然后根据该vTPM设备标识号在Xenstore中查找对应的虚拟域标识号。然后在/local/domain/0/backend/vtpm/虚拟域标识号/0/目录下创建vTPMready%s,并将值设置为1,其中%s为vTPM设备标识号,最后vTPM设备程序开始工作,等待TPM指令。
5.虚拟域操作系统内核加载vTPM前端驱动,vTPM前端驱动在进行必要的初始化之后,将自己的状态设置为DISCONNECTD,然后vTPM前端驱动通信模块开始与vTPM后端驱动通信模块通信,同时虚拟域操作系统内核继续加载其他的模块,包括IMA模块。
6.需要指出的是虚拟域操作系统内核加载vTPM前端驱动的时候,会触发vTPM后端驱动去Xenstore获取vTPM设备标识号,vTPM后端驱动在获取vTPM设备标识号后将创建vTPMready监视器去监视vTPMready%s。
7.vTPMready监视器在将Xenstore中的vTPMready%s值保存在变量vtpmstate后,判断xenbusstate是否为1。当该值为1时,则将vTPM后端驱动的xenbus状态设置为XenbusStateConnected,这将触发vTPM前端驱动将自己状态设置为CONNECTED,并开始将TPM指令转发给vTPM后端驱动。
8.vTPM后端驱动通信模块得知vTPM前端驱动通信模块将vTPM前端驱动的xenbus状态设置为XenbusStateConnected后,进行一系列设置和检查工作,然后判断变量vtpmstate是否为1,如果不是,则将xenbusstate赋值为1;否则vTPM后端驱动通信模块将vTPM后端驱动的xenbus状态设置为XenbusStateConnected,这将触发vTPM前端驱动将自己状态设置为CONNECTED,并开始将TPM指令转发给vTPM后端驱动。
Claims (1)
1.完整性度量技术在可信虚拟域无缝运行的方法,其特征在于:方法组件包括虚拟可信平台模块vTPM设备,vTPM后端驱动模块,虚拟域管理工具模块,特权虚拟域模块,vTPM设备管理工具模块,其方法的具体步骤如下:
(1).加载vTPM后端驱动,初始化后端驱动,并设置变量xenbusstate和vtpmstate都为零,运行vTPM后端驱动通信模块,该模块用于和vTPM前端驱动通信模块进行通信;
(2).特权虚拟域中通过虚拟域管理工具启动客户虚拟域,首先分配一个新的vTPM设备标识号,然后将这个标识号连同创建vTPM设备的指令发送给vTPM设备管理工具;
(3).vTPM设备管理工具读取创建vTPM设备指令后,首先根据指令体内容创建一个vTPM设备进程,并把接收到的vTPM设备标识号与所创建的vTPM设备进程进行绑定,然后启动该进程,最后vTPM设备管理工具将vTPM设备进程启动的结果发送给虚拟域管理工具;虚拟域管理工具在确认vTPM设备进程正常启动后,将该vTPM设备标识号写入XenStore数据库,每个要启动的客户虚拟域都在XenStore数据库的特权虚拟域目录下有一个用虚拟域标识号命名的目录,vTPM设备标识号则记录在该目录的vtpm目录下;然后虚拟域管理工具加载并运行客户虚拟域内核;
(4).vTPM设备进程启动后,首先完成初始化工作,其次根据该vTPM设备标识号在Xenstore数据库中查找对应的虚拟域标识号;然后在/local/domain/0/backend/vtpm/虚拟域标识号/0/目录下创建vTPMready%s条目,并将值设置为1,其中%s为vTPM设备标识号,最后vTPM设备程序开始工作,等待TPM指令;
(5).虚拟域操作系统内核加载vTPM前端驱动,vTPM前端驱动在进行必要的初始化之后,将自己的状态设置为断开,然后vTPM前端驱动通信模块开始与vTPM后端驱动通信模块通信,同时虚拟域操作系统内核继续加载其他的模块,包括IMA模块;
(6).虚拟域操作系统内核加载vTPM前端驱动时,触发vTPM后端驱动去Xenstore数据库获取vTPM设备标识号,vTPM后端驱动在获取vTPM设备标识号后将创建vTPMready监视器去监视vTPMready%s条目;
(7).vTPMready监视器在将Xenstore数据库中的vTPMready%s条目的值保存在变量vtpmstate后,判断xenbusstate是否为1;当该值为1时,则将vTPM后端驱动的xenbus状态设置为连接,这将触发vTPM前端驱动将自己状态设置为连接,并开始将TPM指令转发给vTPM后端驱动。
(8).vTPM后端驱动通信模块得知vTPM前端驱动通信模块将vTPM前端驱动的xenbus状态设置为连接后,进行一系列设置和检查工作,然后判断变量vtpmstate是否为1,如果不是,则将xenbusstate赋值为1;否则vTPM后端驱动通信模块将vTPM后端驱动的xenbus状态设置为连接,这将触发vTPM前端驱动将自己状态设置为连接,并开始将TPM指令转发给vTPM后端驱动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910083082XA CN101539973B (zh) | 2009-04-28 | 2009-04-28 | 完整性度量技术在可信虚拟域无缝运行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910083082XA CN101539973B (zh) | 2009-04-28 | 2009-04-28 | 完整性度量技术在可信虚拟域无缝运行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101539973A CN101539973A (zh) | 2009-09-23 |
CN101539973B true CN101539973B (zh) | 2011-08-31 |
Family
ID=41123159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910083082XA Expired - Fee Related CN101539973B (zh) | 2009-04-28 | 2009-04-28 | 完整性度量技术在可信虚拟域无缝运行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101539973B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834860B (zh) * | 2010-04-22 | 2013-01-30 | 北京交通大学 | 一种远程动态验证客户端软件完整性的方法 |
CN105574415A (zh) * | 2015-12-08 | 2016-05-11 | 中电科华云信息技术有限公司 | 一种基于信任根的虚拟机安全管理方法 |
CN110647740B (zh) * | 2018-06-27 | 2023-12-05 | 复旦大学 | 一种基于tpm的容器可信启动方法及装置 |
CN113536387B (zh) * | 2020-04-15 | 2024-06-04 | 青岛海信移动通信技术有限公司 | 一种检测内核数据完整性的终端和方法 |
CN114201747B (zh) * | 2021-11-29 | 2022-12-13 | 海光信息技术股份有限公司 | 一种动态度量根实现方法、装置、系统及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694030A (zh) * | 2004-04-29 | 2005-11-09 | 国际商业机器公司 | 在系统管理程序环境中提供可信平台模块的方法和系统 |
CN1997955A (zh) * | 2004-06-24 | 2007-07-11 | 英特尔公司 | 提供可信平台模块的安全虚拟化的方法和装置 |
US7392403B1 (en) * | 2007-12-19 | 2008-06-24 | International Business Machines Corporation | Systems, methods and computer program products for high availability enhancements of virtual security module servers |
-
2009
- 2009-04-28 CN CN200910083082XA patent/CN101539973B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1694030A (zh) * | 2004-04-29 | 2005-11-09 | 国际商业机器公司 | 在系统管理程序环境中提供可信平台模块的方法和系统 |
CN1997955A (zh) * | 2004-06-24 | 2007-07-11 | 英特尔公司 | 提供可信平台模块的安全虚拟化的方法和装置 |
US7392403B1 (en) * | 2007-12-19 | 2008-06-24 | International Business Machines Corporation | Systems, methods and computer program products for high availability enhancements of virtual security module servers |
Also Published As
Publication number | Publication date |
---|---|
CN101539973A (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3895008B1 (en) | Container migration in computing systems | |
US20160378554A1 (en) | Parallel and Distributed Computing Using Multiple Virtual Machines | |
CN102262557B (zh) | 通过总线架构构建虚拟机监控器的方法及性能服务框架 | |
US8856790B1 (en) | Systems and methods for data management in a virtual computing environment | |
CN101488174B (zh) | 动态透明的虚拟可信平台模块的实现方法 | |
CN101488173B (zh) | 支持零宕机的可信虚拟域启动文件完整性度量的方法 | |
CN107423619B (zh) | 一种基于虚拟化技术构建智能终端web运行时的方法 | |
AU2012203277B2 (en) | Methods and systems for executing software applications using hardware abstraction | |
US9135050B2 (en) | Extensible network configuration management | |
US20090089815A1 (en) | Method and system for performing i/o operations using a hypervisor | |
US20050198632A1 (en) | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another | |
CN101539973B (zh) | 完整性度量技术在可信虚拟域无缝运行的方法 | |
US20160147553A1 (en) | Minimizing guest operating system licensing costs in a processor based licensing model in a virtual datacenter | |
US20100049960A1 (en) | Operating system startup control method and information processing apparatus | |
EP3701373B1 (en) | Virtualization operations for directly assigned devices | |
CN109388473A (zh) | 基于移动操作系统的Android兼容层实现方法和系统 | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
US20150007170A1 (en) | Systems and Methods for Providing Hypercall Interface for Virtual Machines | |
CN105556473A (zh) | 一种i/o任务处理的方法、设备和系统 | |
CN112286633A (zh) | 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质 | |
US20090276527A1 (en) | Light Weight Process Abstraction For Distributed Systems | |
CN101488175B (zh) | 基于轮询机制的防止可信客户虚拟域启动崩溃的方法 | |
CN101539864B (zh) | 自适应的保障可信客户虚拟域正常启动的方法 | |
CN103064739B (zh) | 一种云计算中虚拟机的控制方法及装置 | |
TWI498750B (zh) | Method and system of intelligent cloud migration |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110831 Termination date: 20120428 |