基于TPM的虚拟机安全协议方法转让专利

申请号 : CN200810203006.3

文献号 : CN101425027B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 骆源方喆李明禄翁楚良

申请人 : 上海交通大学

摘要 :

一种计算机应用技术领域的基于TPM的虚拟机安全协议方法及系统,本发明方法中,首先通过虚拟机环境下的身份认证,来保证通信者身份的真实性;其次保证虚拟机环境下通信者之间的通信内容是加密的,防止传输路径上的其它结点得到通信的内容;最后为保证虚拟机内的安全性的正确性和可靠性,将安全问题归结到TPM模块上。本发明系统包括:TPM硬件模块、TPM驱动程序、TPM软件堆栈模块、虚拟机监控器、特权虚拟机、若干非特权虚拟机、安全协议模块。本发明中安全性易于保证,使整个虚拟机环境下的通信安全易于得到保证。

权利要求 :

1.一种基于TPM的虚拟机安全协议方法,其特征在于,包括如下步骤:步骤一,特权虚拟机分别为两个需要进行通信的非特权虚拟机初始化并建立非特权虚拟机的身份信息,特权虚拟机是唯一能够与TPM直接交互的虚拟机,TPM是初始状态下唯一可信的通信实体;

步骤二,两个非特权虚拟机双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行实质通信的条件;

步骤三,如果步骤二成功,则两个需要通信的非特权虚拟机之间进行实质的通信;

步骤四,当非特权虚拟机的密钥或证书过期时,特权虚拟机强制更新其密钥或证书,以确保两个非特权虚拟机在长时间的通信过程中仍然是安全的;

所述初始化并建立非特权虚拟机的身份信息,包括如下具体步骤:

第一步,需要进行通信的某非特权虚拟机向特权虚拟机发送初始化请求,并将请求消息存储在特权虚拟机与非特权虚拟机之间的共享消息环中;

第二步,非特权虚拟机通知特权虚拟机接收请求消息,特权虚拟机接收请求,特权虚拟机从它与非特权虚拟机之间的共享环中读取请求消息,并将初始化请求发送给TPM;

第三步,TPM向特权虚拟机返回非特权虚拟机的身份信息,特权虚拟机向它与非特权虚拟机的共享数据区存储初始化得到的非特权虚拟机的身份信息,身份信息包括:发送请求者的公钥、私钥、标识符以及签名;

第四步,特权虚拟机向非特权虚拟机发送接收身份信息的请求,将请求消息存储在特权虚拟机与非特权虚拟机的共享消息环中,并通知非特权虚拟机接收请求;

第五步,非特权虚拟机从它与特权虚拟机的共享环中读取请求消息,并从它与特权虚拟机的共享数据区读取身份信息。

2.根据权利要求1所述的基于TPM的虚拟机安全协议方法,其特征是,所述双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行实质通信的条件,其鉴别的方式为挑战应答,包括如下具体步骤:第一步,非特权虚拟机向另一个非特权虚拟机发送挑战请求,并通知该非特权虚拟机接收请求;

第二步,如果该非特权虚拟机接收请求并应答挑战请求,则向原发送挑战请求的非特权虚拟机回发挑战请求,并通知原非特权虚拟机接收请求,进入第三步;如果该非特权虚拟机未能应答挑战或错误应答挑战则通信立即终止;

第三步,如果原非特权虚拟机接收请求并应答挑战,两个非特权虚拟机之间建立实质的通信;如果原非特权虚拟机未能应答挑战或错误应答挑战则通信立即终止。

3.根据权利要求1所述的基于TPM的虚拟机安全协议方法,其特征是,所述实质通信,其通信中的内容为加密或签名形式,加密通信时加密策略是开放的。

说明书 :

基于TPM的虚拟机安全协议方法

技术领域

[0001] 本发明涉及的是一种计算机应用技术领域的方法及系统,具体是一种基于TPM的虚拟机安全协议方法及系统。

背景技术

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

发明内容

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

附图说明

[0044] 图1是本发明的系统结构框图;
[0045] 图2是本发明的特权虚拟机和非特权虚拟机之间通过共享消息环交互信息的模式图。

具体实施方式

[0046] 下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0047] 本实施例的虚拟机环境中共有三个虚拟机,分别为特权虚拟机domain0、非特权虚拟机domainU1以及非特权虚拟机domainU2。
[0048] 本实施例涉及一种基于TPM的虚拟机安全协议方法,包括如下具体步骤: [0049] 步骤一,特权虚拟机domain0分别为两个需要进行通信的非特权虚拟机domainU1与domainU2初始化并建立非特权虚拟机的身份信息,特权虚拟机是唯一能够与TPM直接交互的虚拟机,TPM是初始状态下唯一可信的通信实体,具体如下:
[0050] ①非特权虚拟机domainU1(或domainU2)向特权虚拟机doamin0发送初始 化请求。请求消息被存储在特权虚拟机domain0与非特权虚拟机doaminU1(或特权虚拟机doamin0与domainU2)的共享消息环中;
[0051] ②非特权虚拟机domainU1(或doaminU2)通知特权虚拟机doamin0接收请求; [0052] ③特权虚拟机domain0接收请求。特权虚拟机从它与非特权虚拟机doaminU1(或它与非特权虚拟机domainU2)的共享消息环中读取请求消息;
[0053] ④特权虚拟机domain0向TPM发送初始化请求;
[0054] ⑤TPM向特权虚拟机domain0返回非特权虚拟机domainU1(或domainU2)的身份信息。特权虚拟机domain0向它与非特权虚拟机doaminU1(或domainU2)的共享数据区存储初始化得到的非特权虚拟机doaminU1或domainU2的身份信息;
[0055] ⑥特权虚拟机domain0向非特权虚拟机doaminU1(或domainU2)发送接收身份信息的请求。请求消息被存储在特权虚拟机domain0与非特权虚拟机doaminU1(或特权虚拟机doamin0与domainU2)的共享消息环中;
[0056] ⑦特权虚拟机domain0通知非特权虚拟机doaminU1或domainU2接收请求。 [0057] ⑧非特权虚拟机doaminU1(或domainU2)接收请求。非特权虚拟机domainU1(或domainU2)从它与特权虚拟机doamin0的共享消息环中读取请求消息;
[0058] ⑨非特权虚拟机doaminU1或domainU2从它与特权虚拟机domain0的共享数据区读取身份信息。
[0059] 步骤二,当两个非特权虚拟机domainU1与domainU2都各自成功建立了身份信息时,非特权虚拟机domainU1与domainU2双向之间互相鉴别身份,以确认双方的身份信息是真实的并且符合进行实质通信的条件,具体步骤如下:
[0060] ①非特权虚拟机domainU1向非特权虚拟机domainU2发送挑战请求; [0061] ②非特权虚拟机domainU1通知非特权虚拟机doaminU2接收请求; [0062] ③非特权虚拟机domainU2接收请求并应答挑战;
[0063] ④非特权虚拟机domainU2向非特权虚拟机domainU1发送挑战请求; [0064] ⑤非特权虚拟机domainU2通知非特权虚拟机doaminU1接收请求; [0065] ⑥非特权虚拟机domainU1接收请求并应答挑战;
[0066] ⑦非特权虚拟机doaminU1与非特权虚拟机domainU2建立实质的通信。 [0067] 步骤三,如果步骤二成功,两个非特权虚拟机domainU1与domainU2之间则根据保密通信协议进行实质的通信了,保密通信协议的策略是开放的,通信的内容可以加密也可以不加密;
[0068] 步骤四,当两个非特权虚拟机domainU1与domainU2通信一段时间后,非特权虚拟机的密钥或证书过期时,特权虚拟机会强制更新其密钥或证书,以确保两个非特权虚拟机在长时间的通信过程中仍然是安全的。
[0069] 如图1所示,本实施例还涉及一种基于TPM的虚拟机安全协议系统,包括:TPM硬件模块、TPM驱动程序、TPM软件堆栈模块(TSS)、虚拟机监控器(Xen)、一个特权虚拟机domainU0(基于Linux系统)、两个非特权虚拟机domainU1、domainU2(基于Linux系统)、三个安全协议模块,其中:
[0070] TPM硬件模块是计算机系统的可信计算模块,它是虚拟环境下安全可信的根基,TPM硬件模块接收由TPM软件堆栈模块发送的请求,并根据不同的请求把生成的标识符、公钥、密钥的句柄发送回TPM软件堆栈模块;
[0071] TPM驱动程序负责TPM硬件模块与TPM软件堆栈模块之间的通信;
[0072] TPM软件堆栈模块为虚拟机提供了一系列的可调用的功能,包括生成标识符、公钥、密钥的句柄,TPM软件堆栈模块接收到虚拟机的请求后,根据不同的请求调用一系列的函数来完成请求,这些被调用的函数负责调用TPM硬件模块生成标识符、公钥、密钥的句柄;
[0073] 虚拟机监控器负责对所有特权虚拟机与非特权虚拟机进行监控,在虚拟机之间分配计算机硬件资源,虚拟机监控器设定只有唯一的特权虚拟机才拥有特权; [0074] 特权虚拟机domainU0是虚拟机监控器设定的唯一有特权能够与TPM软件堆栈模块直接通信的虚拟机,同时,特权虚拟机能够与其它非特权虚拟机通信; [0075] 两个非特权虚拟机domainU1、domainU2是虚拟机监控器管理的其它虚拟机,非特权虚拟机是系统保证安全的对象,非特权虚拟机必须根据安全协议通过特权虚拟机与其他非特权虚拟机间接通信;
[0076] 三个安全协议模块分别负责特权虚拟机与非特权虚拟机中实际的消息发送与接收,在每个虚拟机中都部署有一个安全协议模块,特权虚拟机的安全协议模块 与非特权虚拟机的安全特权模块有所不同,即只有特权虚拟机的安全协议模块具有调用TPM软件堆栈的功能。
[0077] 如图2所示,所述非特权虚拟机domainU1、domainU2,其与特权虚拟机domainU0均设有一个共享的消息环,这个消息环供通信双方虚拟机发送和接收请求,发送请求时,一方虚拟机先把消息放入消息环,并通过事件通道通知对方,另一方虚拟机从消息环中把消息取出。
[0078] 所述消息环,是其所对应的非特权虚拟机所独占,其它的非特权虚拟机无法直接利用它们通信。
[0079] 所述非特权虚拟机domainU1、domainU2,其与特权虚拟机domainU0之间均设有共享的数据区,数据区供通信双方虚拟机发送和接收数据。
[0080] 所述数据区,是其所对应的非特权虚拟机独占的,其它的非特权虚拟机无法直接利用它们通信。
[0081] 本实施例中共实现了四个安全协议,包括初始化协议、双向鉴别协议、保密通信协议、密码或证书更新协议,安全协议规定了虚拟机与虚拟机之间,虚拟机与TPM软件堆栈模块之间如何通信,从而,本实施例引入了完整的虚拟机安全协议,从整个系统保证了虚拟机环境下所有虚拟机的通信安全,而改进了传统虚拟机环境下每个虚拟机独立保证自身安全的局限性。