一种基于虚拟机架构的透明信任链构建系统的制作方法

文档序号:6605052阅读:186来源:国知局
专利名称:一种基于虚拟机架构的透明信任链构建系统的制作方法
技术领域
本发明属于可信计算领域,具体涉及一种基于虚拟机架构对操作系统透明的信任 链构建系统。
背景技术
随着信息技术的发展,现代社会越来越依赖于计算机系统。特别是近年来,在互联 网技术的推动下,计算机越来越多的应用到社会政治、经济、教育和军事等领域中,使计算 平台的安全性变得愈发的重要。然而自从计算机问世以来,计算机安全问题就一直伴随着 计算机的发展而存在。近三十年来,其造成的损失也越来越严重。造成这种情况的一个重 要原因是传统的安全防护方式和软件的固有缺陷不足以防御日益增多的计算机安全问题 第一,防火墙、入侵监测和病毒防范是构成传统信息安全系统的主要技术手段,这些技术手 段是一种事后响应方式,即在攻击发生后或是进行中,通过对已发生过的滞后信息进行分 析来判定是否存在攻击,从而进行相应的响应或是防护。面对当今日趋复杂和变化多端恶 意攻击手段,这些事后相应的传统防护手段往往无力应对新的攻击方式;第二,现有平台架 构是开放式的,计算机资源可任意被使用,尤其是执行代码可被任意修改。因此,在现有软 件架构下,恶意程序很容易植入软件系统中。如果缺乏相关硬件的支持,仅仅依靠软件本身 是不能完全检测出恶意代码,因为所有试图通过软件检测恶意代码的方法都无法证明检测 软件自身是安全的。要克服这些问题,可信计算提供一个新的思路从接入端增强系统的安全性,使系 统每个接入端的计算平台都具有一定的物理保护,并在这样的平台上通过软硬件结合的方 式构建可信的计算环境。可信计算环境可以确保其上进行的计算具有某些特性,例如使用 可信计算环境保证其中运行程序和数据的真实性、机密性和可控性等。利用可信计算环境 提供的这些特性可以弥补仅依靠软件安全防护方式带来的不足,从而更好的解决计算机安 全面临的问题和挑战。TCG是可信计算的标准化组织,制定了关于可信计算平台、可信存储和可信网络连 接等一系列技术规范。其核心是可信平台模块TPM(TrustedPlatform Module)及相关规范。 在国内,国家密码管理局发布了《可信计算密码支撑平台功能与接口》并于2007年12月开 始实施,该规范定义了国内的安全芯片(Trusted Cryptography Module, TCM)的设计标准。信任链是构建可信计算平台的关键技术,无论是TCG的TPM规范还是国内 的TCM规范都是采用装载前度量的方案,从可信度量根CRTM(Core of Root Trusted Measurement)开始,依次对各模块进行完整性度量,逐步建立信任链。上述规范中的信任链构建只定义了度量加载的固定启动序列,而没有定义如何将 信任链扩展到应用程序层。实际上当操作系统启动后,还有大量的可执行代码被加载(内 核模块,二进制的共享库,脚本,插件,进程等等),而这些被加载的可执行代码依据实际的 应用需求而没有固定的序列。同时,操作系统中中的进程可能是相互依赖,而操作系统提供 的隔离性比较弱,所有的进程都可能相互影响,因此所有可执行代码不管它是由操作系统加载,动态加载器,或是程序代码加载的都需要被度量。如何在操作系统启动后,将信任链扩展到应用软件层,是信任链研究中的热点。国 际上进行了一系列研究,比如Dartmouth大学PKI实验室的BEAR研究项目、IBM研究中心 Sailer等人的IMA系统、Pennsylvania大学Jaeger等人的PRIMA系统等。这些系统都是 修改操作系统内核,通过对某些系统调用加钩子的方式来实现启动后的可执行代码度量。 修改内核的方式具有很多缺陷首先这种方式对操作系统不透明,这使已经部署的商业操 作系统无法支持应用层的完整性度量和认证。其次,上述方式需要将操作系统作为信任基 (TCB),操作系统代码庞大,系统漏 洞数量较多且很难发现。以操作系统作为可信基难为构 建进程级的信任链提供足够的可信支撑。虚拟机架构能够隔离软件与硬件、应用软件与底层系统之间的直接依赖关系。相 比操作系统,虚拟机监控器代码量小、漏洞少。虚拟机监控器能提供比操作系统更强的安全 隔离,并具有能模拟特殊硬件设备等优点。同时,在虚拟机架构中,虚拟机监控器位于操作 系统下层,拥有更高的特权级,可以观察操作系统内部的行为。因此,基于虚拟机架构构建 信任链,具有对操作系统透明,可信基小等优点。

发明内容
针对以操作系统为可信基的进程级信任链构建中存在的诸多问题,本发明提供了 一种基于虚拟机架构的透明信任链构建系统,该系统不需要对现有的操作系统和应用程序 进行任何的修改,该发明通过获取客户机内操作系统的系统调用和磁盘访问信息,对客户 机操作系统中的操作语义进行解析,并控制操作系统对磁盘的操作来实现透明度量。本发明提供的一种基于虚拟机架构的透明信任链构建系统,主机为支持硬件虚拟 化技术的处理器,其内设置有TPM或TCM安全芯片,其特征在于,该主机上设置有虚拟机监 控器,所述虚拟机监控器包括安全芯片驱动模块、系统调用解析模块和磁盘操作解析度量 模块;安全芯片驱动模块按照TPM规范或TCM规范实现对TPM或TCM安全芯片的访问和 管理;系统调用解析模块在客户操作系统内核装载完毕后,首先通过截获与可执行代码相 关的系统调用,,获取与可执行代码相关的系统调用信息,信息包括系统调用参数和文件目 录,并将信息发送给磁盘操作解析度量模块;磁盘操作解析度量模块通过调用安全芯片驱 动模块为每个客户操作系统产生相应的加密密钥,在客户操作系统启动阶段,度量载入的 操作系统内核;在客户操作系统内核装载完毕后,获取虚拟机运行时的磁盘访问数据,并 依据系统调用解析模块传递的系统调用参数和文件目录,解析虚拟机运行时的磁盘访问语 义,并对照其获取的磁盘访问数据,对相应的可执行代码进行符合TCG/TCM规范的度量操 作,并将度量结果保存在磁盘上,使用同该客户操作系统相对应的加密密钥进行加密。本发明的目的是利用虚拟机监控器构建对操作系统透明的信任链,使基于普通商 业操作系统的计算平台可以转换为可信计算平台,从而提升了系统安全性。本发明系统在 虚拟机监控器中度量操作系统内核以及操作系统启动后加载的可执行代码,而不需要对现 有的操作系统和应用程序进行任何的修改。本发明利用虚拟机架构中,虚拟机监控器处于 客户操作系统的下层,能获取客户机内操作系统的系统调用和磁盘访问等低级操作语义信 息的特性,对客户机操作系统中的操作语义进行解析,并控制操作系统对磁盘的操作来实 现透明度量。同现有的方式相比,本发明可以在不需要对操作系统做任何修改的情况下使其能够支持进程级别的信任链,并可以使已经部署的商业操作系统能够支持TCG可信启 动。相比修改操作系统内核的方式,虚拟机监控器代码量小,漏洞少,使整个系统具有更小
的信任基。


图1是基于虚拟机架构的透明信任链构建系统结构示意图。图2是系统调用解析模块的系统结构示意图。图3是磁盘操作语义解析及度量模块的系统结构示意图。
图4是上层目录和文件的反向映射结构示意图。图5是基于虚拟机架构的透明信任链构建流程示意图。
具体实施例方式为了使本发明的特征和优点得到更清楚的理解,以下结合附图,做详细说明如下 图1描述了本发明的系统结构示意图并以模块的形式说明相关功能的实现,主机(硬件) 需要具有符合可信计算联盟(Trusted ComputingGroup, TCG)的可信平台模块(TPM)规范 或是中国可信密码模块(TCM)规范的安全芯片,以及支持硬件虚拟化技术的处理器(硬件 辅助虚拟化处理器);在硬件之上设置虚拟机监控器,其拥有安全芯片驱动模块,磁盘操作 解析度量模块及系统调用解析模块。本发明中的虚拟机监控器是指在硬件抽象层面(Hardware AbstractionLayer, BP HAL)的虚拟机监控器。在虚拟机中运行的普通操作系统被称为客户操作系统。在硬件抽 象层面的虚拟化技术中虚拟机(也称客户机)执行环境和主机具有相同的指令集。支持硬 件辅助虚拟化(Intel VT或AMD-V的硬件虚拟化技术)的处理器引入了两个新的处理器状 态_虚拟机根态和非根态。虚拟机监控器运行于虚拟机根态,而客户机运行于虚拟机非根 态,虚拟机中可以运行普通操作系统包括各个版本的商业Windows和Linux版本(在虚拟 机中运行的操作系统也称为客户操作系统)。虚拟机监控器将虚拟机需要的资源映射到物 理资源,当虚拟机需要访问关键物理资源时,虚拟机监控器接管其物理资源并妥善地多路 复用。安全芯片驱动模块实现TCG的TSS规范的要求,提供了对TPM的管理和应用程序 访问TPM的接口(主机的安全芯片符合TPM规范)或是实现我国《可信计算密码支撑平台 功能与接口规范》中TCM服务模块要求(主机的安全芯片符合TCM规范)。系统调用解析模块获取可执行代码的载入信息,而磁盘操作解析度量模块完成度 量工作。下面分别对系统调用解析模块和磁盘操作解析度量模块进行详细的说明如下(一)系统调用解析模块系统调用解析模块在客户操作系统内核装载完毕后,首先通过截获与可执行代码 (内核模块,二进制的共享库,脚本,插件,程序等)相关的系统调用,然后获取可执行代码 的系统调用信息,并将这些信息发送给磁盘操作解析度量模块。(1)系统调用截获系统调用的截获需要系统调用解析模块通过特定的设置使系统调用可以引起处 理器状态的转换,从而使虚拟机监控器能够介入虚拟机内进程的系统调用过程。特定设置与操作系统采用的系统调用指令(快速系统调用或是INT调用)是紧密相关的。下文对采 用快速系统调用的操作系统的设置方式进行描述。 如图2所示,系统调用解析模块通过对X86快速系统调用中使用的一个处理器寄 存器进行设置,使系统调用引起页错误从而陷入到虚拟机监控器中。X86的快速系统调用使 用SYSENTER指令使处理器从用户态跳转到内核态预先给定的地址。这个地址被存储到一 个名为SYSENTER_EIP_MSR特殊的寄存器中,这个寄存器只允许在处理器处于内核态时才 能被设置。系统调用解析模块将SYSENTER_EIP_MSR值设置为一个不存在的地址,并将原有 的地址保存在虚拟机监控器的地址空间中。当用户态的程序需要系统服务时,它指定系统 调用号和相关的参数然后调用SYSENTER指令。这将引起页错误从而使处理器进入虚拟机 根态,虚拟机监控器获得处理器的控制权。系统调用解析模块比较页错误的地址,如果同在 SYSENTER_EIP_MSR中设置的值相同,就意味者发生了系统调用。虚拟机监控器没有必要追踪所有的系统调用,实际上只需要追踪与可执行代码载 入相关的系统调用即可,例如对于Linux操作系统,可加载模块的动态载入通过INSMOD调 用,而新的进程替换已有的代码通过EXECVE系统调用。(2)系统调用的信息获取系统调用解析模块还需要获取上述系统调用的信息,这些信息包括可执行代码的 路径和系统调用参数。这需要系统调用解析模块理解客户操作系统的内核结构和操作语 义。以Linux操作系统为例,如果要获取可执行代码的绝对路径等信息需要获取当前进程 的task_strUCt。系统调用解析模块从ESP寄存器中获取CPU栈指针,该指针用来存放栈顶 单元的地址。在80x86系统中,栈起始于末端,并朝这个内存区开始的方向增长。ESP指向 当前栈顶0x0111a878而thread_info结构是从0x01 IlaOOO开始存放。如果thread_info 的长度为4KB,那么将ESP的低12位屏蔽掉就可以得到threacLinfo的基址,threadjiifo 的第一个字段指向taSk_Struct的指针,从而可以获取taSk_Struct内存放的信息。对于 系统调用的参数,直接访问相应的寄存器如ebx,ecx,...等通用寄存器即可获取。( 二)磁盘操作解析度量模块磁盘操作解析度量模块通过调用安全芯片驱动模块为每个客户操作系统产生相 应的加密密钥。在客户操作系统启动阶段,度量载入的操作系统内核;在客户操作系统内核 装载完毕后,获取磁盘访问数据,并依据系统调用解析模块传递的系统调用参数和这些代 码的目录信息,对照获取的磁盘访问数据,对相应的可执行代码进行符合TCG/TCM规范的 度量操作,并将度量结果保存在磁盘上,使用同该客户操作系统相对应的加密密钥进行加
Γ t [ O(1)度量客户操作系统的内核在虚拟机启动阶段,虚拟机监控器并不直接载入操作系统的内核映像文件,而是 提供操作系统启动阶段的虚拟BIOS引导代码,并将控制权移交给这段代码。磁盘操作解析 度量模块在BIOS引导代码中增加钩子函数来获取加载的操作系统内核映像文件的存储位 置,并对该内核镜像进行操作。以在Xen虚拟机监控器中加载Linux虚拟机镜像为例。需 要在Xen的QEMU模拟器中分析Linux虚拟机镜像的引导扇区(MBR),获取Linux的引导加 载程序,从引导加载程序中获取Lirmx内核镜像的存储位置,并对引导加载程序和Lirmx内 核镜像其进行度量。
在磁盘操作解析度量模块进行度量操作以前,其需要调用安全芯片驱动模块提供 的标准编程接口,使用安全芯片为相应的客户操作系统产生加密密钥。磁盘操作解析度量 模块需要使用该密钥对度量结果进行加密,并将加密的度量结果保存到磁盘上。(2)获取虚拟机运行时的磁盘访问数据在虚拟机运行阶段,如图3所示,磁盘操作解析度量模块需要在虚拟机同虚拟机 监控器的通信路径上增加钩子函数,获取虚拟机对磁盘的访问数据,并进行度量。获取的磁 盘访问数据同具体的硬件架构和操作系统相关。获取的磁盘访问数据包括读写的物理块号 或者是对虚拟磁盘端口的访问指令和参数(取决于虚拟机监控器的I/O虚拟化的实现方 式,半虚拟化或是全虚拟化)。以Xen虚拟机中半虚拟化的驱动(PV-on-HVM driver)为例, Xen使用块设备架构一Blktap架构,磁盘操作解析度量模块在虚拟机的驱动到虚拟机监控 器的I/O驱动(Blktap架构的TAPDISK函数中)中读取虚拟机的磁盘访问数据。(3)解析虚拟机运行时的磁盘访问语义
磁盘操作解析度量模块处于客户操作系统的下层,获取的虚拟机访问磁盘数据包 括操作系统读写的物理块号或者是对虚拟磁盘端口的访问指令和参数(取决于虚拟机监 控器的I/O虚拟化方式-全虚拟化或是半虚拟化)等低级磁盘访问语义信息。而从系统调 用解析模块传递的系统调用信息是高级语义信息(访问的目录和文件信息)。磁盘操作解 析度量模块通过建立低级语义信息(物理块号或者是虚拟磁盘端口的访问指令和参数)到 上层文件和目录的反向映射来获取虚拟机中操作系统对磁盘操作的高级语义(访问的目 录和文件信息)。磁盘操作解析度量模块从底层的磁盘块操作中恢复出目录和文件操作语义,建立 这些底层磁盘块到上层目录和文件的反向映射(如图5所示)。操作系统的文件系统将文 件划分成逻辑块,并维护逻辑块到物理块的映射。磁盘操作解析度量模块对虚拟机磁盘操 作语义逆向解析正好相反,它将磁盘块映射到上层文件。显然,虚拟机磁盘操作语义逆向解 析和客户操作系统当前文件系统格式和虚拟化架构(半虚拟化或是全虚拟化)是紧密相关 的。以ext2文件系统为例,它由一个引导块和重复的块组构成的,每个块组又由超级块、组 描述符表、块位图、索引节点位图、索引节点表、数据区构成。虚拟机监控器需要在它的内 存空间中建立一些类似虚拟文件系统的数据结构,将目录结构的信息转化成对应的磁盘块 号。磁盘操作解析度量模块获取的低级语义操作(磁盘号)可以在这些数据结构中进行匹 配来推导出高级的操作语义(目录或是文件信息)。例如假设文件/etc/init. d/rc对应磁 盘块211105、211106,文件/etc/profile对应磁盘块223236。如果语义解析和度量模块获 取的低级操作语义是对磁盘块211105进行了读操作,那么可以推断这次I/O的高层语义是 读文件 /etc/init. d/rc。(4)度量操作如图3所示,在磁盘操作解析度量模块中,通过逆向的磁盘操作语义解析操作,将 获取的低级磁盘操作语义转换为高级的磁盘操作语义,将这些信息同从系统调用解析模块 传递的目录信息相比较。即可判定正在进行的磁盘访问是否是可执行的代码的加载操作。 如果是,那么磁盘操作解析度量模块在虚拟机同虚拟机监控器的通信路径上的钩子函数将 从这些文件占据的所有的物理块中读出该文件的内容进行度量。度量的结果保存在磁盘 中,并使用同该虚拟机相应的加密密钥进行加密。
完整的流程如图5所示,当虚拟机启动时,由磁盘操作解析度量模块调用安全芯 片驱动模块为虚拟机产生相应的加密密钥,同时由引导代码中钩子函数度量载入的操作系 统内核镜像。当虚拟机中操作系统内核装载完毕后,系统调用解析模块监控系统调用,当监 控到与可执行代码载入相关的系统调用时,将上述系统调用信息发送到磁盘操作解析度量 模块,磁盘操作解析度量模块解析虚拟机的磁盘操作语义,并同系统调用信息相比较,如果 是可执行代码的载入操作,磁盘操作解析度量模块对可执行代码进行符合TCG规范/TCM规 范的度量操作。 以上所述的实例对本发明各个部分的实现方式做了详细的说明,但是本发明的具 体实现形式不限于此,对本技术领域的一般技术人员来说,在不背离本发明所述方法的精 神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。
权利要求
一种基于虚拟机架构的透明信任链构建系统,主机为支持硬件辅助虚拟化技术的处理器,其内设置有TPM或TCM安全芯片,其特征在于,该主机上设置有虚拟机监控器,所述虚拟机监控器包括安全芯片驱动模块、系统调用解析模块和磁盘操作解析度量模块;安全芯片驱动模块按照TPM规范或TCM规范实现对TPM或TCM安全芯片的访问和管理;系统调用解析模块在客户操作系统内核装载完毕后,首先通过截获与可执行代码相关的系统调用,获取与可执行代码相关的系统调用信息,信息包括系统调用参数和文件目录,并将信息发送给磁盘操作解析度量模块;磁盘操作解析度量模块通过调用安全芯片驱动模块为每个客户操作系统产生相应的加密密钥,在客户操作系统启动阶段,度量载入的操作系统内核;在客户操作系统内核装载完毕后,获取虚拟机运行时的磁盘访问数据,并依据系统调用解析模块传递的系统调用参数和文件目录,解析虚拟机运行时的磁盘访问语义,并对照其获取的磁盘访问数据,对相应的可执行代码进行符合TCG/TCM规范的度量操作,并将度量结果保存在磁盘上,使用同该客户操作系统相对应的加密密钥进行加密。
2.根据权利要求1所述的基于虚拟机架构的透明信任链构建系统,其特征在于,磁盘 操作解析度量模块按照下述方式度量载入的操作系统内核在虚拟机启动阶段,虚拟机监控器并不直接载入操作系统的内核映像文件,而是提供 操作系统启动阶段的虚拟BIOS引导代码,并将控制权移交给虚拟BIOS引导代码;磁盘操作 解析度量模块在虚拟BIOS引导代码中增加钩子函数来获取加载的操作系统内核映像文件 的存储位置,并对该内核镜像进行操作。
3.根据权利要求1所述的基于虚拟机架构的透明信任链构建系统,其特征在于,磁盘 操作解析度量模块按照下述方式获取虚拟机运行时的磁盘访问数据磁盘操作解析度量模块在虚拟机同虚拟机监控器的通信路径上增加钩子函数,获取虚 拟机对磁盘的访问数据,,获取的相关访问数据包括读写的物理块号或者是对虚拟磁盘端 口的访问指令和参数。
4.根据权利要求1所述的基于虚拟机架构的透明信任链构建系统,其特征在于,磁盘 操作解析度量模块按照下述方式解析虚拟机运行时的磁盘访问语义磁盘操作解析度量模块从底层的磁盘块操作中恢复出目录和文件操作语义,建立这些 底层磁盘块到上层目录和文件的反向映射,将磁盘块映射到上层文件。
全文摘要
本发明公开了一种基于虚拟机架构的透明信任链构建系统,该系统在主机上设置有虚拟机监控器,虚拟机监控器包括安全芯片驱动模块、系统调用解析模块和磁盘操作解析度量模块。该发明在虚拟机监控器中度量操作系统以及操作系统启动后加载的可执行代码,而不需要对现有的操作系统和应用程序进行任何的修改。本发明能够获取客户机内操作系统的系统调用和磁盘访问等低级操作语义信息,对客户机操作系统的操作语义中进行解析,并控制客户操作系统对磁盘的操作来实现透明度量。该技术可以用于分布式协作环境中,提供对操作系统透明的信任链和完整性证明。本发明可以保护用户的既有财产,使现有的操作系统不需要做任何修改可以支持进程级的TCG信任链。
文档编号G06F9/455GK101866408SQ20101021433
公开日2010年10月20日 申请日期2010年6月30日 优先权日2010年6月30日
发明者余辰, 程戈, 羌卫中, 邹德清, 金海 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1