基于tpm的虚拟机安全协议方法及系统的制作方法

文档序号:6469407阅读:106来源:国知局
专利名称:基于tpm的虚拟机安全协议方法及系统的制作方法
技术领域
本发明涉及的是一种计算机应用技术领域的方法及系统,具体是一种基于 TPM的虚拟机安全协议方法及系统。
背景技术
随着计算系统的资源不断扩展、处理能力不断增强、应用需求不断提高、多
核高性能处理器不断普及,寻求如何利用和发挥计算机强大功能己成为未来信息
技术领域面临的重大挑战。计算机系统的虚拟化技术作为一种新型的计算机技术,
极大地提高了计算机系统的资源利用率,从而挖掘了计算机系统闲置的计算潜力,
最大地发挥了计算机系统的处理能力。
除此以外,虚拟化计算机系统(虚拟机)还具有以下特性
1、 易牵引性。完整地克隆传统计算机系统的硬件和软件环境和状态是相当困 难的。然而,完整地克隆虚拟机的硬件和软件环境却是相当容易的。虚拟机的这 一特性满足了很多应用场景的需求。
2、 隔离性。同一物理计算机系统上的虚拟机之间可以达到物理计算机系统之 间的隔离程度。这一特性可以使虚拟机之间互不影响,独立工作。
3、 可伸縮性。虚拟机的实际物理计算资源可由系统本身或系统管理员根据应 用进行合理分配和动态调整。这一特性使各个虚拟机按需分配物理计算资源成为 可能。
虚拟化技术的逐渐普及和应用使其安全问题也越来越被重视,虚拟机中安全 性的基础是各个通信实体的真实性,即通信双方能够在通信前确认对方的身份, 并且只与合法的通信人进行通信。这就需要一种安全协议方法及系统来保证。
经对现有技术文献的检索发现,IBM公司的Stefan Berger等人在 "Security , 06: 15th USENIX Security Symposium" (2006年第十五届USENIX 安全技术石开讨大会)上发表的"vTPM: Virtualizing the Trusted Platform Module" (vTPM:虚拟化可信计算模块),提出了虚拟化可信计算模块,这种虚拟化可信模块被部署在每一个虚拟机上,从而解决了多个虚拟机共享一个硬件可信计算模块的 问题。其不足在于仅仅提出了一种在虚拟机环境下共享一个硬件可信计算模块 TPM的方法,而未解决虚拟机环境下如何利用这个硬件可信计算模块TPM来保证虚 拟环境下的通信安全。而传统的安全协议方法及系统不适用于虚拟机环境下的新 特点、新需求,主要表现在1、虚拟机之间的通信与传统的计算机系统不同,虚 拟机之间的通信可能是两台物理计算机之间的通讯,也可能是一台物理计算机内 部的通信;2、 一台物理计算机上可以部署多台虚拟机,不能简单地以物理计算机 的硬件区别标识不同的虚拟机;3、 一台虚拟机上还可以进一步嵌套部署多台虚拟 机,这就引入了新的复杂性。

发明内容
本发明针对上述现有技术中的不足,提出了一种基于TPM的虚拟机安全协议 方法及系统,首先,本发明提供一种虚拟机环境下的身份认证协议,来保证通信 者身份的真实性;其次,本发明保证虚拟机环境下通信者之间的通信内容是保密 的,防止传输路径上的其它结点得到通信的内容;最后,本发明为了高效合理地 保证虚拟机内的安全性的正确性和可靠性,将安全问题归结一个完全可信的实体 ——硬件可信计算模块(TPM)上。因此,只要保证硬件可信计算模块的安全性, 则整个虚拟机环境中的安全性也可以得到保证。
本发明是通过以下技术方案实现的。
本发明涉及一种基于TPM的虚拟机安全协议方法,包括如下步骤
步骤^,特权虚拟机分别为两个需要进行通信的非特权虚拟机初始化并建立 非特权虚拟机的身份信息,特权虚拟机是唯一能够与TPM直接交互的虚拟机,TPM 是初始状态下唯一可信的通信实体;
步骤二,两个非特权虚拟机双向之间互相鉴别身份,以确认双方的身份信息 是真实的并且符合进行实质通信的条件;
步骤三,如果步骤二成功,则两个需要通信的非特权虚拟机之间进行实质的
通信;
步骤四,当非特权虚拟机的密钥或证书过期时,特权虚拟机会强制更新其密
钥或证书,以确保两个非特权虚拟机在长时间的通信过程中仍然是安全的。 所述初始化并建立非特权虚拟机的身份信息,包括如下具体步骤第一步,需要进行通信的某非特权虚拟机向特权虚拟机发送初始化请求,并 将请求消息存储在特权虚拟机与非特权虚拟机之间的共享消息环中;
第二步,非特权虚拟机通知特权虚拟机接收请求消息,特权虚拟机接收请求, 特权虚拟机从它与非特权虚拟机之间的共享环中读取请求消息,并将初始化请求 发送给TPM;
第三步,TPM向特权虚拟机返回非特权虚拟机的身份信息,特权虚拟机向它与 非特权虚拟机的共享数据区存储初始化得到的非特权虚拟机的身份信息,身份信 息包括发送请求者的公钥、私钥、标识符以及签名;
第四步,特权虚拟机向非特权虚拟机发送接收身份信息的请求,将请求消息 被存储在特权虚拟机与非特权虚拟机的共享消息环中,并通知非特权虚拟机接收 请求;
第五步,非特权虚拟机从它与特权虚拟机的共享环中读取请求消息,并从它 与特权虚拟机的共享数据区读取身份信息。
所述双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行 实质通信的条件,其鉴别的方式为挑战应答,包括如下具体步骤
第一步,非特权虚拟机向另一个非特权虚拟机发送挑战请求,并通知该非特
权虚拟机接收请求;
第二步,如果该非特权虚拟机接收请求并应答挑,则向原发送挑战请求的非 特权虚拟机回发挑战请求,并通知原非特权虚拟机接收请求,进入第三步如果 该非特权虚拟机未能应答挑战或错误应答挑战则通信立即终止;
第三步,如果原非特权虚拟机接收请求并应答挑战,两个非特权虚拟机之间 建立实质的通信;如果原非特权虚拟未能应答挑战或错误应答挑战则通信立即终 止。
所述实质通信,其通信中的内容为加密或签名形式,加密通信时加密策略是 开放的。
本发明还涉及一种基于TPM的虚拟机安全协议系统,包括TPM硬件模块、 TPM驱动程序、TPM软件堆栈模块、虚拟机监控器、特权虚拟机、若干非特权虚拟 机、安全协议模块,其中
TPM硬件模块是计算机系统的可信计算模块,它是虚拟环境下安全可信的根基,TPM硬件模块接收由TPM软件堆栈模块发送的请求,并根据不同的请求把生成 的标识符、公钥、密钥的句柄发送回TPM软件堆栈模块;
TPM驱动程序负责TPM硬件模块与TPM软件堆栈模块之间的通信;
TPM软件堆栈模块为虚拟机提供了一系列的可调用的功能,包括生成标识符、 公钥、密钥的句柄,TPM软件堆栈模块接收到虚拟机的请求后,根据不同的请求调 用一系列的函数来完成请求,这些被调用的函数负责调用TPM硬件模块生成标识 符、公钥、密钥的句柄;
虚拟机监控器负责对所有特权虚拟机与非特权虚拟机进行监控,在虚拟机之 间分配计算机硬件资源,虚拟机监控器设定只有唯一的特权虚拟机才拥有特权;
特权虚拟机是虚拟机监控器设定的唯一有特权能够与TPM软件堆栈模块直接 通信的虚拟机,同时,特权虚拟机能够与其它非特权虚拟机通信;
非特权虚拟机是虚拟机监控器管理的其它虚拟机,非特权虚拟机是系统保证 安全的对象,非特权虚拟机必须根据安全协议通过特权虚拟机与其他非特权虚拟 机间接通信;
安全协议模块负责特权虚拟机与非特权虚拟机中实际的消息发送与接收,在 每个虚拟机中都部署有一个安全协议模块,特权虚拟机的安全协议模块与非特权 虚拟机的安全特权模块有所不同,即只有特权虚拟机的安全协议模块具有调用TPM 软件堆栈的功能。
所述非特权虚拟机,其与特权虚拟机均设有一个共享的消息环,这个消息环 供通信双方虚拟机发送和接收请求,发送请求时, 一方虚拟机先把消息放入消息 环,并通过事件通道通知对方,另一方虚拟机从消息环中把消息取出。
所述消息环,是其所对应的非特权虚拟机所独占,其它的非特权虚拟机无法 直接利用它们通信。
所述非特权虚拟机,其与特权虚拟机之间设有共享的数据区,数据区供通信 双方虚拟机发送和接收数据。
所述数据区,是其所对应的非特权虚拟机独占的,其它的非特权虚拟机无法 直接利用它们通信。
本发明系统中,特权虚拟机、非特权虚拟机以及TPM硬件模块、TPM驱动程 序以及TPM软件堆栈模块,之间互相协调通信,从而实现了各个安全协议。在本发明的实现中,当消息环与数据区被创建以后,虚拟机与虚拟机之间便 能够开始根据安全协议通信了,各个虚拟机的安全协议模块是实际负责通信的模 块,另外,在安全协议的实现中,特权虚拟机不仅要与非特权虚拟机进行通信, 还要与TPM软件堆栈模块跟据安全协议进行通信,TPM软件堆栈模块最终调用TPM 硬件模块的功能。
与现有技术相比,本发明具有如下有益效果
本发明把保证虚拟机环境下通信的安全最终归结到保证TPM硬件模块的安全。 由于TPM硬件模块为计算机系统硬件的一部分,其安全性易于保证,从而使整个 虚拟机环境下的通信安全易于得到保证。
本发明共实现了四个安全协议,包括初始化协议、双向鉴别协议、保密通信 协议、密码或证书更新协议,安全协议规定了虚拟机与虚拟机之间,虚拟机与TPM 软件堆栈模块之间如何通信,从而,本发明引入了完整的虚拟机安全协议,从整 个系统保证了虚拟机环境下所有虚拟机的通信安全,而改进了传统虚拟机环境下 每个虚拟机独立保证自身安全的局限性。


图l是本发明的系统结构框图2是本发明的特权虚拟机和非特权虚拟机之间通过共享消息环交互信息的 模式图。
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案 为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护 范围不限于下述的实施例。
本实施例的虚拟机环境中共有三个虚拟机,分别为特权虚拟机domainO、非特
权虚拟机domainUl以及非特权虚拟机domainU2。
本实施例涉及一种基于TPM的虚拟机安全协议方法,包括如下具体歩骤-
步骤一,特权虚拟机domain0分别为两个需要进行通信的非特权虚拟机
domainlil与domainU2初始化并建立非特权虚拟机的身份信息,特权虚拟机是唯一
能够与TPM直接交互的虚拟机,TPM是初始状态下唯一可信的通信实体,具体如下
①非特权虚拟机domainUl (或domainU2)向特权虚拟机doamin0发送初始化请求。请求消息被存储在特权虚拟机domain0与非特权虚拟机doaminUl (或特权虚拟机doamin0与domainU2)的共享消息环中;
② 非特权虚拟机domainUl (或doaminU2)通知特权虚拟机doamin0接收请 求;
③ 特权虚拟机domain0接收请求。特权虚拟机从它与非特权虚拟机doaminUl
(或它与非特权虚拟机domainU2)的共享消息环中读取请求消息;
④ 特权虚拟机domain0向TPM发送初始化请求;
⑤ TPM向特权虚拟机domain0返回非特权虚拟机domainUl (或domainU2)的 身份信息。特权虚拟机domain0向它与非特权虚拟机doaminUl (或
.domainU2)的共享数据区存储初始化得到的非特权虚拟机doaminUl或 domainU2的身份信息;
⑥ 特权虚拟机domain0向非特权虚拟机doaminUl (或domainU2)发送接收 身份信息的请求。请求消息被存储在特权虚拟机domain0与非特权虚拟机 doaminUl (或特权虚拟机doamin0与domainU2)的共享消息环中;
⑦ 特权虚拟机domain0通知非特权虚拟机doaminUl或domainU2接收请求。
⑧ 非特权虚拟机doaminUl (或domainU2)接收请求。非特权虚拟机domainUl
(或domainU2)从它与特权虚拟机doamin0的共享消息环中读取请求消 息;
⑨ 非特权虚拟机doaminUl或domainU2从它与特权虚拟机domain0的共享数 据区读取身份信息。
步骤二,当两个非特权虚拟机domainUl与domainU2都各自成功建立了身份 信息时,非特权虚拟机domainUl与domainU2双向之间互相鉴别身份,以确认双 方的身份信息是真实的并且符合进行实质通信的条件,具体步骤如下
① 非特权虚拟机domainUl向非特权虚拟机domainU2发送挑战请求;
② 非特权虚拟机domainUl通知非特权虚拟机doaminU2接收请求;
③ 非特权虚拟机domainU2接收请求并应答挑战;
非特权虚拟机domainU2向非特权虚拟机domainUl发送挑战请求; ⑤非特权虚拟机domainU2通知非特权虚拟机doaminUl接收请求; 非特权虚拟机domainUl接收请求并应答挑战;⑦非特权虚拟机doaminlll与非特权虚拟机domainU2建立实质的通信。 步骤三,如果步骤二成功,两个非特权虚拟机domainUl与domainU2之间则
根据保密通信协议进行实质的通信了,保密通信协议的策略是开放的,通信的内
容可以加密也可以不加密;
步骤四,当两个非特权虚拟机domainUl与domainU2通信一段时间后,非特
权虚拟机的密钥或证书过期时,特权虚拟机会强制更新其密钥或证书,以确保两
个非特权虚拟机在长时间的通信过程中仍然是安全的。
如图1所示,本实施例还涉及一种基于TPM的虚拟机安全协议系统,包括 TPM硬件模块、TPM驱动程序、TPM软件堆栈模块(TSS)、虚拟机监控器(Xen)、 一个特权虚拟机domainU0 (基于Linux系统)、两个非特权虚拟机domainUl、 domainU2 (基于Linux系统)、三个安全协议模块,其中
TPM硬件模块是计算机系统的可信计算模块,它是虚拟环境下安全可信的根 基,TPM硬件模块接收由TPM软件堆栈模块发送的请求,并根据不同的请求把生成 的标识符、公钥、密钥的句柄发送回TPM软件堆栈模块;
TPM驱动程序负责TPM硬件模块与TPM软件堆栈模块之间的通信;
TPM软件堆栈模块为虚拟机提供了一系列的可调用的功能,包括生成标识符、 公钥、密钥的句柄,TPM软件堆栈模块接收到虚拟机的请求后,根据不同的请求调 用一系列的函数来完成请求,这些被调用的函数负责调用TPM硬件模块生成标识 符、公钥、密钥的句柄;
虚拟机监控器负责对所有特权虚拟机与非特权虚拟机进行监控,在虚拟机之 间分配计算机硬件资源,虚拟机监控器设定只有唯一的特权虚拟机才拥有特权;
特权虚拟机domainU0是虚拟机监控器设定的唯一有特权能够与TPM软件堆栈
模块直接通信的虚拟机,同时,特权虚拟机能够与其它非特权虚拟机通信;
两个非特权虚拟机domainUl、 domainU2是虚拟机监控器管理的其它虚拟机, 非特权虚拟机是系统保证安全的对象,非特权虚拟机必须根据安全协议通过特权 虚拟机与其他非特权虚拟机间接通信;
三个安全协议模块分别负责特权虚拟机与非特权虚拟机中实际的消息发送与 接收,在每个虚拟机中都部署有一个安全协议模块,特权虚拟机的安全协议模块同,即只有特权虚拟机的安全协议模块具 有调用TPM软件堆栈的功能。
如图'2所示,所述非特权虚拟机domainUl、 domainU2,其与特权虚拟机 domainU0均设有一个共享的消息环,这个消息环供通信双方虚拟机发送和接收请 求,发送请求时, 一方虚拟机先把消息放入消息环,并通过事件通道通知对方, 另 一方虚拟机从消息环中把消息取出。
所述消息环,是其所对应的非特权虚拟机所独占,其它的非特权虚拟机无法 直接利用它们通信。
所述非特权虚拟机domainUl 、 domainU2,其与特权虚拟机domainU0之间均 设有共享的数据区,数据区供通信双方虚拟机发送和接收数据。
所述数据区,是其所对应的非特权虚拟机独占的,其它的非特权虚拟机无法 直接利用它们通信。
本实施例中共实现了四个安全协议,包括初始化协议、双向鉴别协议、保密 通信协议、密码或证书更新协议,安全协议规定了虚拟机与虚拟机之间,虚拟机 与TPM软件堆栈模块之间如何通信,从而,本实施例引入了完整的虚拟机安全协 议,从整个系统保证了虚拟机环境下所有虚拟机的通信安全,而改进了传统虚拟 机环境下每个虚拟机独立保证自身安全的局限性。
权利要求
1、一种基于TPM的虚拟机安全协议方法,其特征在于,包括如下步骤步骤一,特权虚拟机分别为两个需要进行通信的非特权虚拟机初始化并建立非特权虚拟机的身份信息,特权虚拟机是唯一能够与TPM直接交互的虚拟机,TPM是初始状态下唯一可信的通信实体;步骤二,两个非特权虚拟机双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行实质通信的条件;步骤三,如果步骤二成功,则两个需要通信的非特权虚拟机之间进行实质的通信;步骤四,当非特权虚拟机的密钥或证书过期时,特权虚拟机强制更新其密钥或证书,以确保两个非特权虚拟机在长时间的通信过程中仍然是安全的。
2、 根据权利要求1所述的基于TPM的虚拟机安全协议方法,其特征是,所述 初始化并建立非特权虚拟机的身份信息,包括如下具体步骤第一步,需要进行通信的某非特权虚拟机向特权虚拟机发送初始化请求,并 将请求消息存储在特权虚拟机与非特权虚拟机之间的共享消息环中;第二步,非特权虚拟机通知特权虚拟机接收请求消息,特权虚拟机接收请求, 特权虚拟机从它与非特权虚拟机之间的共享环中读取请求消息,并将初始化请求 发送给TPM;第三步,TPM向特权虚拟机返回非特权虚拟机的身份信息,特权虚拟机向它与 非特权虚拟机的共享数据区存储初始化得到的非特权虚拟机的身份信息,身份信 息包括发送请求者的公钥、私钥、标识符以及签名;第四步,特权虚拟机向非特权虚拟机发送接收身份信息的请求,将请求消息 被存储在特权虚拟机与非特权虚拟机的共享消息环中,并通知非特权虚拟机接收 请求;第五步,非特权虚拟机从它与特权虚拟机的共享环中读取请求消息,并从它 与特权虚拟机的共享数据区读取身份信息。
3、 根据权利要求1所述的基于TPM的虚拟机安全协议方法,其特征是,所述 双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行实质通信的条件,其鉴别的方式为挑战应答,包括如下具体步骤第一步,非特权虚拟机向另一个非特权虚拟机发送挑战请求,并通知该非特权虚拟机接收请求;第二步,如果该非特权虚拟机接收请求并应答挑,则向原发送挑战请求的非 特权虚拟机回发挑战请求,并通知原非特权虚拟机接收请求,进入第三步;如果 该非特权虚拟机未能应答挑战或错误应答挑战则通信立即终止;第三步,如果原非特权虚拟机接收请求并应答挑战,两个非特权虚拟机之间 建立实质的通信;如果原非特权虚拟未能应答挑战或错误应答挑战则通信立即终 止。
4、 根据权利要求1所述的基于TPM的虚拟机安全协议方法,其特征是,所述 实质通信,其通信中的内容为加密或签名形式,加密通信时加密策略是开放的。
5、 一种基于TPM的虚拟机安全协议系统,其特征在于,包括TPM硬件模块、 TPM驱动程序、TPM软件堆栈模块、虚拟机监控器、特权虚拟机、若干非特权虚拟 机、安全协议模块,其中TPM硬件模块是计算机系统的可信计算模块,它是虚拟环境下安全可信的基 础,TPM硬件模块接收由TPM软件堆栈模块发送的请求,并根据不同的请求把生成 的标识符、公钥、密钥的句柄发送回TPM软件堆栈模块;TPM驱动程序负责TPM硬件模块与TPM软件堆栈模块之间的通信;TPM软件堆栈模块为虚拟机提供了一系列的可调用的功能,包括生成标识符、 公钥、密钥的句柄,TPM软件堆栈模块接收到虚拟机的请求后,根据不同的请求调 用一系列的函数来完成请求,这些被调用的函数负责调用TPM硬件模块生成标识 符、公钥、密钥的句柄;虚拟机监控器负责对所有特权虚拟机与非特权虚拟机进行监控,在虚拟机之 间分配计算机硬件资源,虚拟机监控器设定只有唯一的特权虚拟机才拥有特权;特权虚拟机是虚拟机监控器设定的唯一有特权能够与TPM软件堆栈模块直接 通信的虚拟机,同时,特权虚拟机能够与其它非特权虚拟机通信;非特权虚拟机是虚拟机监控器管理的其它虚拟机,非特权虚拟机是系统保证 安全的对象,非特权虚拟机必须根据安全协议通过特权虚拟机与其他非特权虚拟 机间接通信;安全协议模块负责特权虚拟机与非特权虚拟机中实际的消息发送与接收,在 每个虚拟机中都部署有一个安全协议模块,特权虚拟机的安全协议模块与非特权 虚拟机的安全特权模块有所不同,即只有特权虚拟机的安全协议模块具有调用TPM 软件堆栈模块的功能。
6、 根据权利要求5所述的基于TPM的虚拟机安全协议系统,其特征是,所述非特权虚拟机,其与特权虚拟机均设有一个共享的消息环,这个消息环供通信双 方虚拟机发送和接收请求,发送请求时, 一方虚拟机先把消息放入消息环,并通 过事件通道通知对方,另一方虚拟机从消息环中把消息取出。
7、 根据权利要求6所述的基于TPM的虚拟机安全协议系统,其特征是,所述 消息环,是其所对应的非特权虚拟机所独占,其它的非特权虚拟机无法直接利用 它们通信。
8、 根据权利要求5所述的基于TPM的虚拟机安全协议系统,其特征是,所述 非特权虚拟机,其与特权虚拟机之间设有共享的数据区,数据区供通信双方虚拟 机发送和接收数据。
9、 根据权利要求8所述的基于TPM的虚拟机安全协议系统,其特征是,所述 数据区,是其所对应的非特权虚拟机独占的,其它的非特权虚拟机无法直接利用 它们通信。
全文摘要
一种计算机应用技术领域的基于TPM的虚拟机安全协议方法及系统,本发明方法中,首先通过虚拟机环境下的身份认证,来保证通信者身份的真实性;其次保证虚拟机环境下通信者之间的通信内容是加密的,防止传输路径上的其它结点得到通信的内容;最后为保证虚拟机内的安全性的正确性和可靠性,将安全问题归结到TPM模块上。本发明系统包括TPM硬件模块、TPM驱动程序、TPM软件堆栈模块、虚拟机监控器、特权虚拟机、若干非特权虚拟机、安全协议模块。本发明中安全性易于保证,使整个虚拟机环境下的通信安全易于得到保证。
文档编号G06F9/455GK101425027SQ20081020300
公开日2009年5月6日 申请日期2008年11月20日 优先权日2008年11月20日
发明者喆 方, 李明禄, 翁楚良, 源 骆 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1