专利名称:支持零宕机的可信虚拟域启动文件完整性度量的方法
技术领域:
本发明涉及计算机信息安全可信计算领域,特别是指支持零宕机的可信
虚拟域启动文件完整性度量的方法。通过增强Xen虚拟机环境下的客户虚拟 域管理工具和虚拟域引导管理器的功能,实现可信虚拟域系统启动文件在被 加载时才进行完整性度量。
背景技术:
虚拟机技术应用整机虚拟化的概念,解除了实体机兼容性和硬件资源对 应用程序的约束,实现同一硬件平台上多操作系统的并行运行。Xen虚拟机 是一个成熟的开放源代码虚拟化产品,Xen虚拟机包括一个虚拟机监控器、 一个特权虚拟计算域和多个客户虚拟计算域,见图l。每个计算域运行一个 操作系统,虚拟机监控器位于系统硬件平台与虚拟计算域操作系统软件之 间,负责监控下层硬件,并将硬件抽象成可管理调度的实体供上层计算域使 用,通过为上层计算域提供有效的隔离机制,使得各个计算域能得以资源隔 离、性能隔离、故障隔离。 一个Xen虚拟机至少要运行虚拟机监控器和特权 域,即Xen虚拟机启动后,特权域是必须而且首先进入的操作系统,然后再 根据具体情况启动客户虚拟域;特权计算域具有最高的权限,特权域利用虚 拟域管理工具管理客户计算域,包括创建、删除、访问物理设备等。图2给 出了从计算机开机启动到客户虚拟域启动完毕的流程。
特权域的虚拟域管理工具根据客户虚拟域的虚拟域配置文件来启动相 应的客户虚拟域,该配置文件中指定了要启动的虚拟域的CPU、内存、磁盘、 网络等设备资源信息,同时还包括虚拟域的内核等启动信息。客户虚拟域操 作系统的内核启动文件可以存放在特权域,也可以存放在虚拟域的存储空 间,后种方式更为通用,其启动需要虚拟域系统引导管理器的参与,图3给 出了后种方式下,虚拟域系统引导管理器在虚拟域启动过程的工作流程以及VTPM设备的初始化过程。虚拟域管理工具根据虚拟域配置文件的信息将控
制权交给虚拟域系统引导管理器;虚拟域系统引导管理器访问客户虚拟域的 磁盘镜像文件,从中找到客户虚拟域的引导配置信息并加以分析,然后将启 动选项输出并提供用户选择,然后根据用户的选择结果,将相应的内核启动 文件存放到特权域中,并将内核启动文件的路径信息反馈给虚拟域管理工 具,然后虚拟域管理工具继续虚拟域的启动工作。
网络化时代对PC的安全性和易用性提出了越来越高的要求,传统的PC 系统结构以效率优先而不是以安全优先原则设计的,因此现有的PC系统越 来越容易遭受黑客、间谍软件和病毒的攻击。为了解决PC机结构上的不安 全问题,从根本上提高其可信性,可信计算平台联盟TCPA(后来更名为TCG) 提出通过增强现有的终端体系结构的安全性来保证整个系统的安全,主要思 路是在各种终端(包含PC、手机以及其它移动智能终端等)硬件平台上引 入具有安全存储和加密功能的可信平台模块(又称为可信芯片)TPM;将启
动操作系统的过程分为几个相对独立的层,以TPM作为可信计算平台的信任 根,下层先度量验证上层完整性,并将度量结果存入TPM芯片的PCR寄存器 中,然后传递系统的运行控制权,层层迭代,直至控制权传予操作系统内核, 构建一条完善的信任链,见图4。 TPM寄存器的数据在计算机启动后不能直 接修改,也不能清空。用户可以根据相应PCR寄存器的数值判断当前运行环 境是否可信,是否存在某些环节出现安全问题。信任链中各个阶段进行完整 性度量是由不同软件完成的(1) BI0S、可选R0M以及操作系统引导管理器 的初始部分的度量软件由硬件厂商提供,(2)操作系统引导管理器的剩余 部分以及操作系统内核的度量由TrustGrub (开源软件)完成,(3)操作系 统启动以后的软件度量由IBM公司开发的頂A软件完成。
基于虚拟化技术与可信计算技术的终端平台安全解决方案的有效实施 必须解决两个问题 一是如何为客户虚拟域提供TPM设备,图5给出了支撑 客户虚拟域基于纯软件的虚拟TPM进行可信计算的系统框架图;二是如何完 成客户虚拟域的可信链各个阶段的完整性度量。TrustGrub是一个开源软件,可以完成虚拟机监控器和特权域操作系统内核的完整性度量;IMA是IBM公 司开发的软件,可以完成特权域中各种应用程序的完整性度量;通过将IMA 软件整合到客户虚拟域操作系统内核,可以实现对客户虚拟域应用程序的度 量。由于虚拟域管理工具和虚拟域引导管理器缺乏度量功能,客户虚拟域操 作系统启动文件的完整性度量只能在整个计算机启动的时候,由TrustGrub 来进行。这种方法有以下缺陷(1)安全隐患,(2)可信虚拟域部署必须 在计算机启动之前完成,可信虚拟域内核在计算机启动之后的任何修改都需 要重新启动计算机后才能起作用,影响了其它虚拟域的运行,使得整个系统 缺乏灵活性,降低了 Xen虚拟技术的优势。
发明内容
本发明的目的在于避免上述现有技术不足之处而提供支持零宕机的可 信虚拟域启动文件完整性度量的方法,通过修改虚拟域管理工具和虚拟域引 导管理器,实现了可信虚拟域系统启动文件在虚拟域系统启动时才进行完整 性度量。
本发明的目的可以通过以下措施来达到
支持零宕机的可信虚拟域启动文件完整性度量的方法,通过修改特权域 的虚拟域管理工具和虚拟域引导管理器,实现可信虚拟域系统启动时才进行 虚拟域启动文件的完整性度量,该方法部署方式如下
(1) 、首先虚拟域管理工具根据虚拟域配置文件启动客户虚拟域;
(2) 、虚拟域管理工具首先为该客户虚拟域分配惟一标识号,然后对该配 置文件进行完整性度量并缓存度量值,并将缓存度量值以十六进制ASCII的 形式存放到特权域/var/run/xend/boot/vmJ)ootJmsh—G/。s文件中,这里的 %s是该虚拟域的惟一标识号;
(3) 、虚拟域管理工具根据虚拟域配置文件中的虚拟域引导管理器路径信 息,调用虚拟域系统引导管理器,并将虚拟域标识号、磁盘镜像文件信息传 递给虚拟域系统引导管理器;
(4) 、虚拟域系统引导管理器访问虚拟域的磁盘镜像文件,从中提取虚拟域引导配置文件信息并解析,包括对新增加的measure参数的解析,然后将 启动选项输出到终端并等待用户的选择;
(5)、用户选择之后,虚拟域引导管理器按照measure参数列出的文件顺 序对这些文件依次进行完整性度量,然后将度量结果以十六进制ASCII的形 式存放到/var/run/xend/boot/vm—boot—hash—%s文件中,同时将引导配置 文件指定的PCR序号也写入/var/run/xend/boot/vm—boot—hash—%s文件, 这里的%3是该虚拟域标识号;最后虚拟域引导管理器将选择项指定的内核 启动文件复制到特权域的/var/run/xend/boot/目录下并重命名,并将重命 名后的文件名以及选择项指定的启动参数通过管道文件传递给虚拟域管理 工具;
(6) 、虚拟域管理工具从管道获取信息后,分配系统资源、启动虚拟域并 发出创建vTPM设备的指令;
(7) 、虚拟域的虚拟TPM设备启动并开始工作后,首先根据通过自身的vTPM 惟一标识号到XenStore中去査找对应的虚拟域标识号,然后并根据该标识 号找到位于/var/run/xend/boot/路径下的vm—boot_hash_%s文件,这里的 %s是査找到的对应该vTPM的虚拟域标识号;
(8) 、 vTPM设备程序读取文件中的度量结果,并将其通过TPM—Extend方法 记录到文件指定的PCR寄存器中。
通过上述方法的部署,可信虚拟域内核在计算机运行的情况下可以做随 意的修改然后再启动,每次可信虚拟域启动的时候,该虚拟域的配置文件、 内核等启动文件进行完整性度量,度量结果存放到虚拟TPM设备的PCR寄存 器中;可信虚拟域重新启动不影响在该硬件平台运行的其他虚拟域。
本发明相比现有技术具有如下优点
1、 本发明首次提出了对虚拟域配置文件的度量,增强了虚拟域的可信度。
2、 本发明极大縮短了虚拟域启动文件的完整性度量与使用之间的间隔 时间,增强了虚拟域的安全性3、 本发明在实现可信虚拟域的同时,保持了 Xen虚拟技术的优势,允 许在计算机运行过程中动态地进行可信虚拟域部署,包括虚拟域内核系统的 重新定制或升级,实现了可信虚拟域启动不会间断同一硬件平台上的其它虚 拟域的数据业务。
4、 本发明与现有的虚拟环境下的其他可信计算技术不冲突,能够与这 些技术协同工作,建立完整的虚拟域启动可信链。
图1为Xen虚拟机框架图
图2给出了计算机开机启动到客户虚拟域启动完毕的过程 图3给出了虚拟域启动过程中虚拟域系统引导管理器的工作流程以及 vTPM设备的初始化过程
图4给出了计算机启动过程中执行流和度量流
图5给出了支撑客户虚拟域基于虚拟TPM进行可信计算的系统框架图 图6是本发明中具有虚拟域启动文件完整性度量功能的虚拟域启动流 程图。
具体实施例方式
本发明通过修改虚拟域管理工具和虚拟域引导管理器,实现了可信虚拟 域系统启动文件在虚拟域系统启动时才进行完整性度量。启动文件包括虚拟 域配置文件、虚拟域引导配置文件以及该文件指定的需要度量的文件。
启动文件的完整性度量的过程如下
(1) 虚拟域管理工具开始启动客户虚拟域。
(2) 虚拟域管理工具度量虚拟域配置文件并保存结果。
(3) 虚拟域管理工具调用虚拟域系统引导管理器。
(4) 虚拟域系统引导管理器读取并解析引导配置文件,对measure关 键词指定的的文件进行完整性度量并保存结果,同时保存引导配置文件所指 定的PCR序号。
(5) 虚拟域系统引导管理器继续一些初始化工作,然后将控制权给虚拟域管理工具。
(6) 虚拟域管理工具发出创建vTPM设备的命令
(7) vTPM设备程序,在初始化完成之后读取虚拟域管理工具和虚拟域 系统引导管理器两个程序对虚拟域配置文件和用户指定的文件的度量结果, 并将结果存储到指定的PCR寄存器中。
下面根据图6对本发明中涉及的各组件的工作流程进行详细说明
1、 首先虚拟域管理工具根据虚拟域配置文件启动客户虚拟域。
2、 虚拟域管理工具首先为该客户虚拟域分配惟一标识号,然后对该配 置文件进行完整性度量并缓存度量值,并将缓存度量值以十六进制ASCII的 形式存放到特权域/var/run/xend/boot/vm—boot—hash—%s文件中。这里的 %s是该虚拟域的惟一标识号,这样可以用于区别不同的虚拟域的度量结果。
3、 虚拟域管理工具根据虚拟域配置文件中的虚拟域引导管理器路径信 息,调用虚拟域系统引导管理器,并将虚拟域标识号、磁盘镜像文件等信息 传递给虚拟域系统引导管理器。
4、 虚拟域系统引导管理器访问虚拟域的磁盘镜像文件,从中提取虚拟 域引导配置文件信息并解析,包括对新增加的measure参数的解析,然后将 启动选项输出到终端并等待用户的选择。
5、 用户选择之后,虚拟域引导管理器按照measure参数列出的文件顺 序对这些文件依次进行完整性度量,然后将度量结果以十六进制ASCII的形 式存放到/var/run/xend/boot/vm—boot—hash—%s文件中,同时将引导配置 文件指定的PCR序号也写入/var/run/xend/boot/vm—boot—hash—%s文件,
这里的%3是该虚拟域标识号;最后虚拟域引导管理器将选择项指定的内核
启动文件复制到特权域的/var/run/xend/boot/目录下并重命名,并将重命 名后的文件名以及选择项指定的启动参数通过管道文件传递给虚拟域管理 工具。
6、虚拟域管理工具从管道获取信息后,分配系统资源、启动虚拟域并发出创建VTPM设备的指令。
7、 虚拟域的虚拟TPM设备程序启动并开始工作后,首先根据自身的vTPM 惟一标识号到XenStore中去查找对应的虚拟域标识号,然后并根据虚拟域 标识号找到位于/var/run/xend/boot/路径下的vm_boot—hash—%s文件,这 里的%3是査找到的对应该vTPM的虚拟域标识号。
8、 vTPM设备程序读取/var/run/xend/boot/vmjDoot—hash—%s文件中的 度量结果,并将其通过TPM_EXtend方法记录到文件指定的PCR寄存器中。
通过上述方法,可以实现在不重新启动计算机的情况下,对可信虚拟域 的内核进行修改后再启动;虚拟域启动过程中,对该虚拟域的配置文件、内 核、策略等重要文件进行完整性度量,并记录到相应的虚拟TPM设备中;而 这一过程对其他虚拟域不会造成任何影响,保证了可信虚拟域的启动不会间 断同一硬件平台上的其它虚拟域的数据业务;完整性度量结果可以在虚拟域
启动完成之后通过TPM工具进行査看和分析。
权利要求
1、支持零宕机的可信虚拟域启动文件完整性度量的方法,其特征在于本方法通过修改特权域的虚拟域管理工具和虚拟域引导管理器,实现可信虚拟域系统启动时才进行虚拟域启动文件的完整性度量,该方法部署方式如下(1)、首先虚拟域管理工具根据虚拟域配置文件启动客户虚拟域;(2)、虚拟域管理工具首先为该客户虚拟域分配惟一标识号,然后对该配置文件进行完整性度量并缓存度量值,并将缓存度量值以十六进制ASCII的形式存放到特权域/var/run/xend/boot/vm_boot_hash_%s文件中,这里的%s是该虚拟域的惟一标识号;(3)、虚拟域管理工具根据虚拟域配置文件中的虚拟域引导管理器路径信息,调用虚拟域系统引导管理器,并将虚拟域标识号、磁盘镜像文件信息传递给虚拟域系统引导管理器;(4)、虚拟域系统引导管理器访问虚拟域的磁盘镜像文件,从中提取虚拟域引导配置文件信息并解析,包括对新增加的measure参数的解析,然后将启动选项输出到终端并等待用户的选择;(5)、用户选择之后,虚拟域引导管理器按照measure参数列出的文件顺序对这些文件依次进行完整性度量,然后将度量结果以十六进制ASCII的形式存放到/var/run/xend/boot/vm_boot_hash_%s文件中,同时将引导配置文件指定的PCR序号也写入/var/run/xend/boot/vm_boot_hash_%s文件,这里的%s是该虚拟域标识号;最后虚拟域引导管理器将选择项指定的内核启动文件复制到特权域的/var/run/xend/boot/目录下并重命名,并将重命名后的文件名以及选择项指定的启动参数通过管道文件传递给虚拟域管理工具;(6)、虚拟域管理工具从管道获取信息后,分配系统资源、启动虚拟域并发出创建vTPM设备的指令;(7)、虚拟域的虚拟TPM设备启动并开始工作后,首先根据通过自身的vTPM惟一标识号到XenStore中去查找对应的虚拟域标识号,然后并根据该标识号找到位于/var/run/xend/boot/路径下的vm_boot_hash_%s文件,这里的%s是查找到的对应该vTPM的虚拟域标识号;
2.根据权利要求1所述的支持零宕机的可信虚拟域启动文件完整性度 量的方法,其特征在于通过上述方法的部署,可信虚拟域内核在计算机运 行的情况下可以做随意的修改然后再启动,每次可信虚拟域启动的时候,该 虚拟域的配置文件、内核等启动文件进行完整性度量,度量结果存放到虚拟 TPM设备的PCR寄存器中;可信虚拟域重新启动不影响在该硬件平台运行的 其他虚拟域。
全文摘要
本发明涉及支持零宕机的可信虚拟域启动文件完整性度量的方法。本方法通过修改特权域的虚拟域管理工具和虚拟域引导管理器,实现可信虚拟域系统启动文件在被加载时才进行完整性度量,克服了计算机启动时就对这些文件进行完整性度量所带来的安全和可扩展问题,增强了系统的灵活性,允许在计算机运行过程中动态地进行可信虚拟域部署,包括虚拟域内核系统的重新定制或升级,实现了可信虚拟域的启动不会间断同一硬件平台上的其它虚拟域的数据业务。可度量的启动文件包括了虚拟域配置文件、虚拟域引导配置文件以及该文件指定的需要度量的文件。本方法可以与虚拟环境下的其他可信计算技术协同工作来建立完整的虚拟域启动可信链。
文档编号G06F21/00GK101488173SQ20091007639
公开日2009年7月22日 申请日期2009年1月15日 优先权日2009年1月15日
发明者帆 何, 博 刘, 刘吉强, 常晓林, 彬 邢, 臻 韩 申请人:北京交通大学