专利名称:动态透明的虚拟可信平台模块的实现方法
技术领域:
本发明涉及计算机信息安全可信计算领域,特别是指动态透明的虚拟可
信平台模块的实现方法。在Xen虚拟机中提供一种方法,使得Xen虚拟域进 行基于各自独立虚拟可信平台模块TPM的可信计算。
背景技术:
虚拟机技术应用整机虚拟化的概念,使应用软件脱离实体机的兼容性约 束和硬件资源约束,实现同一硬件平台上多操作系统的并行工作,增强了软 件安全性、可移植性和适用性,并且提供了更高的灵活性、跨平台兼容性、 可靠性和资源有效性。近几年众多操作系统和硬件平台开发商都在参与虚拟 化市场。Xen是一个成熟的开放源代码虚拟化产品,Xen虚拟机包括一个虚
拟机监控器、 一个特权虚拟计算域和多个客户虚拟计算域。每个计算域运行 一个操作系统,虚拟机监控器位于系统硬件平台与虚拟计算域操作系统软件 之伺,负责监控下层硬件,并将硬件抽象成可管理调度的实体供上层计算域 使用,还为上层的计算域提供有效的隔离机制,使得各个计算域能得以资源 隔离、性能隔离、故障隔离;特权计算域利用虚拟域管理工具管理客户计算 域,包括创建、删除、访问物理设备等等。
网络化时代对PC的安全性和易用性提出了越来越高的要求,以效率优 先而不是以安全优先原则设计的现有的PC系统越来越容易遭受黑客、间谍 软件和病毒的攻击。为了解决PC机结构上的不安全问题,从根本上提高其 可信性,可信计算平台联盟TCPA (后来更名为TCG)组织提出通过增强现有 的终端体系结构的安全性来保证整个系统的安全,主要思路是在各种终端 (包含PC、手机以及其它移动智能终端等)硬件平台上引入具有安全存储 和加密功能的可信平台模块(又称为可信芯片)TPM (Trust platformmodule),通过TPM提供的安全特性来提高终端系统的安全性。TPM具有一
个可信平台要达到可信目标所需具备的三个必要的基础特征保护能力、证
明、和完整性度量存储与报告。目前,TCG已经制定出一系列的技术规范, 许多计算机厂商在各自生产的计算机主板上配置了 TPM芯片。
虚拟化技术与可信计算技术有机结合将能构建出极其有效的终端平台 安全解决方案。然而目前Xen虚拟机环境还没有支持虚拟计算域基于虚拟 TPM进行可信计算的软件产品,如TPM等主流的可信设备都不能有效地被多 个操作系统或是虚拟计算域所并发共享,这为多虚拟计算域之间的安全隔 离、可信基的构建引入潜在的安全威胁。
发明内容
本发明的目的在于通过提供动态透明的虚拟可信平台模块的实现方法来弥 补上述技术的不足。本发明使得基于TPM 1. 2规范的可信应用软件可以在虚 拟域无缝地运行,即虚拟域可以进行基于各自独立的TPM的可信计算。 本发明的目的可以通过以下措施来达到
动态透明的虚拟可信平台模块的实现方法,该方法需要在特权域中实现 的软件包括(1)纯软件实现的虚拟TPM(vTPM)设备、(2) vTPM设备 管理工具、(3) vTPM后端驱动、(4)支持vTPM的虚拟域管理工具,该 方法需要在虚拟域实现软件是VTPM前端驱动,
实现方法
一、特权域为客户虚拟域(虚拟域)建立一个vTPM设备的完整过程
(1) 、首先在特权域加载vTPM后端驱动,并启动vTPM设备管理工具,vTPM 设备管理工具进行一系列的初始化操作,然后启动vTPM控制器和vTPM后端 监听器进行监听;
(2) 、在特权域中执行虚拟域管理工具,虚拟域管理工具根据虚拟域启动 配置文件的信息首先启动虚拟域操作系统内核,然后往XenStore中写入信 息触发vTPM后端驱动去监视XenStore中该虚拟域的vTPM设备标识号的变化,最后执行添加VTPM设备操作,在添加这一操作中,虚拟域管理工具
首先判断当前将要启动的虚拟域的配置文件中是否己经指定vTPM设备标
识号,如果没有指定,则为该虚拟域分配一个新的标识号,然后保存该设置
并准备创建vTPM设备;如果已经指定标识号,则直接准备创建vTPM设备, 到此vTPM设备的标识号准备完毕;
(3) 、 vTPM设备标志号准备完毕之后,虚拟域管理工具向与vTPM设备管 理工具通信的专用管道文件中发送创建vTPM设备的指令,触发位于管道另 一端的vTPM设备管理工具的vTPM控制器去创建vTPM设备;
(4) 、 vTPM控制器从与虚拟域管理工具通信的专用管道文件接收创建 vTPM设备的指令,首先读取指令头部,并把其拆成四部分(1) vTPM设备 标识号,(2) TAG, (3)输入参数的大小,(4)指令码;然后再读入指令 体部分,接下来根据指令体的内容创建一个vTPM设备进程,并与上面获得
的设备标识号进行绑定,然后启动该进程;
(5) 、在vTPM设备进程正常运行后,vTPM设备管理工具将相应的vTPM 设备标识号写入vTPM控制器与虚拟域管理工具通信的专用管道文件;
(6) 、虚拟域管理工具接收到vTPM设备管理工具的反馈信息后,将该vTPM 设备标识号写入XenStore,这写入动作将触发vTPM后端驱动获得vTPM设 备标识号并保存;
(7) 、 一个新的vTPM设备初始化过程,包括对全局变量的初始化和建立 与vTPM设备管理工具通信的管道,由于每一个虚拟域对应一个vTPM设备, 因此存在多条通信管道,管道是通过vTPM设备标识号来区分,这样就实现 了虚拟域与vTPM设备的绑定,初始化完成后,该vTPM设备就进入工作状态, 等待管道传来的TPM指令,并将处理后的结果发送到所有vTPM共用的管道;
二、 vTPM前后端驱动建立通信的过程
(1)、虚拟域操作系统加载vTPM前端驱动,vTPM前端驱动建立与后端驱 动通信的通道,完成一系列的初始化工作,然后开始工作,等待虚拟域里的 可信应用发送TPM指令;
7三、vTPM后端驱动和vTPM后端监听器处理来自虚拟域的TPM指令的完
整流程
(1) 、 vTPM前端驱动通过通信通道将TPM指令请求发给vTPM后端驱动, 不同的虚拟域使用不同的通信通道,因此vTPM后端驱动根据通道号找到相 对应的vTPM设备标识号,并填写入请求包,然后将请求包发给vTPM设备 管理工具;
(2) 、 vTPM后端监听器首先读取vTPM后端驱动传来的指令头部,获得 vTPM设备标识号,然后读取剩下指令并处理,处理结果发送到与vTPM设备
标识号所对应的管道;
(3) 、 vTPM设备从管道文件中读取传过来的指令,解析并处理TPM指令, 将处理结果与vTPM设备标识号拼接在一起通过所有vTPM设备共用的管道文 件传回给vTPM后端监听器;
(4) 、 vTPM后端监听器从vTPM设备中读取指令执行结果,然后通过vTPM 前后端驱动返回给虚拟域的可信应用软件,完成完整的一次TPM操作。
通过上述方法,基于普通计算机的物理TPM芯片的可信应用软件可以 在Xen虚拟域基于虚拟TPM设备无缝地运行。 本发明相比现有技术具有如下优点
1、 vTPM设备采用纯软件实现,因此每个虚拟域可以使用TPM 1. 2规 范定义的所有存储空间。
2、 提供的方法能支持虚拟域进行高效的基于TPM的可信计算,高效 表现在(1 )通过全虚拟物理TPM设备来为每个虚拟域提供独立的TPM设备, 避免了访问物理TPM设备所产生的硬件延迟,(2) vTPM设备的密钥、密钥 句柄、PCR寄存器中的数据都存放在特权域的内存,避免了访问硬盘所带来 的延迟,(3)采用事件触发来实现指令请求和数据的传递,既提高系统反 应速度又降低了硬件资源的消耗,(4)采用半虚拟化方式实现虚拟域对vTPM 设备的访问,提高系统反应速度。
3、 通过增强Xen环境下已有的虚拟域管理工具的功能实现对vTPM的
8支持,实现特权域对虚拟域所有设备的统一管理。
4、 通过赋予每个VTPM设备惟一标识来配合其它组件实现可信数据流 的复用和分用,提高系统资源的有效利用率。
5、 利用Xen环境下已有的XenStore数据库来存储vTPM设备的信息, 统一了虚拟域信息的存储位置,便于维护和管理。
图1是本发明中加载后端驱动和启动vTPM设备管理工具的流程图。 图2是本发明中虚拟域管理工具启动虚拟域并通知vTPM设备管理工具 创建vTPM设备的流程图。
图3是本发明中vTPM设备管理工具的vTPM控制器工作流程图。
图4是本发明中vTPM设备初始化流程图。
图5是本发明中vTPM前后端驱动建立通信的流程图。
图6是本发明中处理来自虚拟域的TPM指令的流程图。
图7是本发明中支撑虚拟域可信计算的组件关系图。
具体实施例方式
本发明提供了动态透明的虚拟可信平台模块的实现方法,即在Xen虚拟 机中提供了一种方法,使得基于TPM 1. 2规范的可信应用软件可以在虚拟域 无缝地运行。实现该方法的组件包括在特权域中实现的虚拟TPM(vTPM)设备、 vTPM设备管理工具、vTPM后端驱动、支持vTPM设备的虚拟域管理工具以及 在虚拟域中实现的vTPM前端驱动。
系统组件的部署如下
步骤l,加载vTPM后端驱动。在特权域中加载vTPM后端驱动。 步骤2,启动vTPM设备管理工具。首先初始化一个全局结构体变量用 来存放虚拟TPM相关信息,并对物理TPM进行一系列初始处理;然后vTPM 设备管理工具启动vTPM控制器和vTPM后端监听器,vTPM控制器负责创建和撤消vTPM设备,vTPM后端监听器负责处理可信数据流。
步骤3,启动虚拟域。用支持vTPM的虚拟域管理工具启动虚拟域,同 时通知vTPM控制器为该虚拟域创建一个vTPM设备。
步骤4,创建vTPM设备。当vTPM控制器接到有新的虚拟域启动的消息 时,创建并启动vTPM设备进程,作为该虚拟域对应的vTPM设备。
步骤5,加载vTPM前端驱动。在虚拟域中加载vTPM前端驱动,生成虚 拟域可信应用软件访问特权域vTPM设备的接口 。
系统组件处理来自虚拟域可信应用软件的TPM访问请求的过程如下
1、 虚拟域的可信应用软件发出TPM指令;
2、 vTPM前端驱动截获该指令然后发给vTPM后端驱动;
3、 vTPM后端驱动处理所接收到的指令信息,然后发给vTPM设备管理 工具;
4、 vTPM设备管理工具的vTPM后端监听器分析接收到的指令信息,再 将处理结果发送给相应的vTPM设备;
5、 vTPM设备处理接收并处理指令,然后将处理结果返回给vTPM后端 监听器,vTPM后端监听器将指令结果发给虚拟域,完成了TPM指令的处理。
通过此方法,基于普通计算机的TPM芯片的可信应用软件可以在Xen 虚拟域基于虚拟TPM设备无缝地运行。
本发明将结合附图作进一步详述
图1至图7显示了本发明工作的原理和过程。
图1至图4给出了为虚拟域建立一个vTPM设备的完整过程
1、 如图1所示,首先在特权域加载后端驱动,并启动vTPM设备管理工 具;vTPM设备管理工具进行一系列的初始化操作,然后启动vTPM控制器和 vTPM后端监听器进行监听。
2、 如图2所示,在特权域中执行虚拟域管理工具,虚拟域管理工具根 据虚拟域启动配置文件的信息首先启动虚拟域操作系统内核,然后往XenStore中写入信息触发vTPM后端驱动去监视XenStore中该虚拟域的 vTPM设备标识号的变化,最后执行添加vTPM设备操作。在添加这一操作 中,虚拟域管理工具首先判断当前将要启动的虚拟域的配置文件中是否已经 指定标识号,如果已经指定标识号,且该标志号可用,则直接准备创建vTPM 设备;如果不可用或者没有指定,则为该虚拟域分配一个新的vTPM设备标 识号,保存该设置并准备创建vTPM设备。到此vTPM设备的标识号准备完毕。
3、 vTPM设备的标志号准备完毕之后,虚拟域管理工具向与vTPM设备 管理工具通信的专用管道文件中发送创建vTPM设备的指令来触发管道的另 一端的vTPM管理工具的vTPM控制器去创建vTPM设备。
4、 如图3所示,vTPM控制器从与虚拟域管理工具通信的专用管道文件 接收创建vTPM设备的指令,读取指令头部,并把其拆成四部分(1) vTPM 设备标识号,(2) TAG, (3)输入参数的大小,(4)指令码。然后再读入 指令体部分。接下来根据指令体的内容创建一个vTPM设备进程,并与上面
获得的设备标识号进行绑定,然后启动该进程。
5、 在vTPM设备进程正常运行后,vTPM控制器将相应的vTPM设备标识 号写入vTPM控制器与虚拟域管理工具通信的专用管道文件。
6、 虚拟域管理工具接收到vTPM控制器的反馈信息后,将该vTPM设备 标识号写入XenStore。
7、 图4为一个新的vTPM设备初始化过程。包括对全局变量的初始化和 建立与vTPM设备管理工具通信的管道。由于每一个虚拟域对应一个vTPM设 备,因此存在多条通信管道,管道是通过vTPM设备标识号来区分,这样就 实现了虚拟域与vTPM设备的绑定。初始化完成后,该vTPM设备就进入工作 状态,等待管道传来的TPM指令,并将处理后的指令发送到对应的管道。
图5展示了 vTPM前后端驱动建立通信的过程。过程如下
1、虚拟域操作系统加载vTPM前端驱动,vTPM前端驱动建立与后端驱
动通信的通道,完成一系列的初始化工作,然后等待虚拟域里的可信应用发
出的TPM指令。和vTPM管理工具的后端监听器处理来
自虚拟域的TPM指令的完整流程,流程如下
1、 vTPM前端驱动通过通信通道将TPM指令请求发给vTPM后端驱动, 不同的虚拟域使用不同的通信通道,因此vTPM后端驱动根据通道号找到相 对应的vTPM设备标识号,并填写入请求包,然后将请求包发给vTPM设备 管理工具。
2、 vTPM通信管理工具的vTPM后端监听器首先读取vTPM后端驱动传来 的指令头部,获得vTPM设备标识号,然后读取剩下指令并处理,处理结果 发送到与vTPM设备标识号所对应的管道。
3、 vTPM设备从管道文件中读取传过来的指令,解析并处理TPM指令, 将处理结果中的内容与标识号拼接在一起通过所有vTPM设备共用的管道文 件传回给vTPM后端监听器。
4、 vTPM后端监听器从vTPM设备中读取指令执行结果,然后通过前后端 驱动返回给虚拟域的可信应用软件,完成完整的一次TPM操作,如图7所示。
通过上述方法,可以在Xen虚拟机提供与物理TPM芯片功能相同的、而对 虚拟域可信应用软件透明的虚拟TPM设备,使得以前使用物理TPM芯片的基于 TPM 1.2的可信应用软件,如TrouSerS、 TPM Tools等,不需要修改就可以在虚 拟域中无缝并且高效地运行。
1权利要求
1、动态透明的虚拟可信平台模块的实现方法,其特征在于该方法需要在特权域中实现的软件包括(1)纯软件实现的虚拟TPM(vTPM)设备、(2)vTPM设备管理工具、(3)vTPM后端驱动、(4)支持vTPM的虚拟域管理工具,该方法需要在虚拟域实现软件是vTPM前端驱动,实现方法一、特权域为客户虚拟域(虚拟域)建立一个vTPM设备的完整过程(1)、首先在特权域加载vTPM后端驱动,并启动vTPM设备管理工具,vTPM设备管理工具进行一系列的初始化操作,然后启动vTPM控制器和vTPM后端监听器进行监听;(2)、在特权域中执行虚拟域管理工具,虚拟域管理工具根据虚拟域启动配置文件的信息首先启动虚拟域操作系统内核,然后往XenStore中写入信息触发vTPM后端驱动去监视XenStore中该虚拟域的vTPM设备标识号的变化,最后执行添加vTPM设备操作,在添加这一操作中,虚拟域管理工具首先判断当前将要启动的虚拟域的配置文件中是否已经指定vTPM设备标识号,如果没有指定,则为该虚拟域分配一个新的标识号,然后保存该设置并准备创建vTPM设备;如果已经指定标识号,则直接准备创建vTPM设备,到此vTPM设备的标识号准备完毕;(3)、vTPM设备标志号准备完毕之后,虚拟域管理工具向与vTPM设备管理工具通信的专用管道文件中发送创建vTPM设备的指令,触发位于管道另一端的vTPM设备管理工具的vTPM控制器去创建vTPM设备;(4)、vTPM控制器从与虚拟域管理工具通信的专用管道文件接收创建vTPM设备的指令,首先读取指令头部,并把其拆成四部分(1)vTPM设备标识号,(2)TAG,(3)输入参数的大小,(4)指令码;然后再读入指令体部分,接下来根据指令体的内容创建一个vTPM设备进程,并与上面获得的设备标识号进行绑定,然后启动该进程;(5)、在vTPM设备进程正常运行后,vTPM设备管理工具将相应的vTPM设备标识号写入vTPM控制器与虚拟域管理工具通信的专用管道文件;(6)、虚拟域管理工具接收到vTPM设备管理工具的反馈信息后,将该vTPM设备标识号写入XenStore,这写入动作将触发vTPM后端驱动获得vTPM设备标识号并保存;(7)、一个新的vTPM设备初始化过程,包括对全局变量的初始化和建立与vTPM设备管理工具通信的管道,由于每一个虚拟域对应一个vTPM设备,因此存在多条通信管道,管道是通过vTPM设备标识号来区分,这样就实现了虚拟域与vTPM设备的绑定,初始化完成后,该vTPM设备就进入工作状态,等待管道传来的TPM指令,并将处理后的结果发送到所有vTPM共用的管道;二、vTPM前后端驱动建立通信的过程(1)、虚拟域操作系统加载vTPM前端驱动,vTPM前端驱动建立与后端驱动通信的通道,完成一系列的初始化工作,然后开始工作,等待虚拟域里的可信应用发送TPM指令;三、vTPM后端驱动和vTPM后端监听器处理来自虚拟域的TPM指令的完整流程(1)、vTPM前端驱动通过通信通道将TPM指令请求发给vTPM后端驱动,不同的虚拟域使用不同的通信通道,因此vTPM后端驱动根据通道号找到相对应的vTPM设备标识号,并填写入请求包,然后将请求包发给vTPM设备管理工具;(2)、vTPM后端监听器首先读取vTPM后端驱动传来的指令头部,获得vTPM设备标识号,然后读取剩下指令并处理,处理结果发送到与vTPM设备标识号所对应的管道;(3)、vTPM设备从管道文件中读取传过来的指令,解析并处理TPM指令,将处理结果与vTPM设备标识号拼接在一起通过所有vTPM设备共用的管道文件传回给vTPM后端监听器;(4)、vTPM后端监听器从vTPM设备中读取指令执行结果,然后通过vTPM前后端驱动返回给虚拟域的可信应用软件,完成完整的一次TPM操作。
2、根据权利要求1所述的动态透明的虚拟可信平台模块的实现方法, 其特征在于通过此方法,基于普通计算机的物理TPM芯片的可信应用软件可以在Xen虚拟域基于虚拟TPM设备无缝地运行。
全文摘要
本发明在Xen虚拟机环境下提供了一种让基于TPM 1.2规范的可信应用软件可以在虚拟域无缝运行的方法,方法的组件包括在特权域中实现的虚拟TPM(vTPM)设备、vTPM设备管理工具、vTPM后端驱动、支持vTPM的虚拟域管理工具以及在虚拟域中实现的vTPM前端驱动。本发明在特权域为每个运行的虚拟域提供了一个独立的具有物理TPM所有的功能的vTPM设备,vTPM设备可以动态被创建和撤消;本发明通过各组件高效有机的配合,实现了可信数据流的复用和分用,保证了vTPM设备与相应虚拟域之间的通信,实现了虚拟域基于各自独立的TPM的可信计算。
文档编号G06F21/00GK101488174SQ20091007639
公开日2009年7月22日 申请日期2009年1月15日 优先权日2009年1月15日
发明者帆 何, 博 刘, 刘吉强, 常晓林, 杨武杰, 彬 邢, 臻 韩 申请人:北京交通大学