多核处理器的计算环境中实现TPM的方法及其系统转让专利

申请号 : CN200910243914.X

文献号 : CN102110197B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐东杜磊张凯孙毓忠

申请人 : 中国科学院计算技术研究所

摘要 :

本发明涉及多核处理器的计算环境中实现TMP的方法及其系统,包括:步骤1,计算环境中的节点在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;步骤2,所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;步骤3,所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。本发明能够在系统中不存在TPM安全芯片的情况下,为系统的启动及后续应用的加载提供可信服务的能力。

权利要求 :

1.一种多核处理器的计算环境中实现TPM的方法,其特征在于,包括:步骤1,计算环境中的节点在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;

步骤2,所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;

步骤3,所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。

2.如权利要求1所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述计算环境为虚拟化计算环境,所述方法还包括:

步骤21,采用Xen对节点进行虚拟化。

3.如权利要求2所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述步骤21后还包括:步骤31,计算环境中的一个虚拟机形成一个VTPM管理器;

步骤32,所述VTPM管理器创建一个线程监听Xen中操作;

步骤33,当节点创建一个虚拟机时,所述VTPM管理器为所述虚拟机创建一个VTPM实例;

步骤34,所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。

4.如权利要求3所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述方法还包括:步骤41,将所述节点同前端代理连接;

步骤42,VTPM管理器生成平台配置信息,发送给所述前端代理;

步骤43,所述前端代理接收所述平台配置信息,并存储到平台配置信息表中;

步骤44,当客户端请求访问时,从所述平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。

5.如权利要求2所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述方法还包括:步骤51,虚拟机的网卡通过虚拟接口连接到虚拟网桥;

步骤52,节点的隔离器检测所述节点上是否有新的虚拟机创建,如果有,执行步骤53;

步骤53,隔离器获取虚拟机的MAC地址和虚拟机的类型,根据所述虚拟机类型制定对应隔离规则,将所述隔离规则添加到链路过滤表中;

步骤54,在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。

6.如权利要求5所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述步骤54后还包括:步骤61,所述节点将新创建的虚拟机的MAC地址和类型广播给其他节点的隔离器;

步骤62,所述其他节点的隔离器接收到广播的MAC地址和类型,根据节点的本地存储的虚拟机的信息,制定隔离规则,将隔离规则添加到本地的链路过滤表中;

步骤63,在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。

7.如权利要求2所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述方法还包括:步骤71,虚拟机启动后,查看虚拟机本地的网络配置信息获得IP地址和子网掩码,计算出虚拟机所在的子网地址,将子网地址的信息发给虚拟机的虚拟隔离器;

步骤72,所述虚拟隔离器根据收到的子网地址信息制定相应的过滤规则,将所述过滤规则存储到网络过滤表中;

步骤73,在虚拟机接收到IP包时,根据所述网络过滤表中隔离规则,处理所述IP包。

8.如权利要求7所述的多核处理器的计算环境中实现TPM的方法,其特征在于,所述步骤73还包括:步骤81,虚拟机向本地网络广播请求消息,请求获取所在所述节点的虚拟机的网络地址信息;

步骤82,将获取的网络信息添加到网络过滤表中。

9.一种多核处理器的计算环境中实现TPM的系统,其特征在于,包括节点,所述节点,用于在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;

所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;

所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。

10.如权利要求9所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述计算环境为虚拟化计算环境,所述节点还用于采用Xen对所述节点进行虚拟化。

11.如权利要求10所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述系统还包括VTPM管理器,计算环境中的一个虚拟机形成一个VTPM管理器;

所述VTPM管理器,用于创建一个线程监听Xen中操作;当节点创建一个虚拟机时,为所述虚拟机创建一个VTPM实例;所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。

12.如权利要求11所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述系统还包括同节点连接的前端代理;

所述VTPM管理器还用于生成平台配置信息,发送给所述前端代理;

所述前端代理,用于接收所述平台配置信息,并存储到平台配置信息表中;当客户端请求访问时,从所述平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。

13.如权利要求10所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述节点包括隔离器,虚拟机的网卡通过虚拟接口连接到虚拟网桥;

所述隔离器,用于检测所述节点上是否有新的虚拟机创建,如果有,则获取虚拟机的MAC地址和虚拟机的类型,根据所述虚拟机类型制定对应隔离规则,将所述隔离规则添加到链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。

14.如权利要求13所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述节点还用于将新创建的虚拟机的MAC地址和类型广播给其他节点的隔离器;

所述隔离器还用于接收到广播的MAC地址和类型,根据节点的本地存储的虚拟机的信息,制定隔离规则,将隔离规则添加到本地的链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。

15.如权利要求10所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述节点还用于为虚拟机创建虚拟隔离器,所述节点还用于虚拟机启动后,查看虚拟机本地的网络配置信息获得IP地址和子网掩码,计算出虚拟机所述的子网地址,将子网地址的信息发给虚拟机的虚拟隔离器;

所述虚拟隔离器,用于根据收到的子网地址信息制定相应的过滤规则,将所述过滤规则存储到网络过滤表中;在虚拟机接收到IP包时,根据所述网络过滤表中隔离规则,处理所述IP包。

16.如权利要求15所述的多核处理器的计算环境中实现TPM的系统,其特征在于,所述节点还用于由虚拟机向本地网络广播请求消息;

所述虚拟隔离器还用于在虚拟机向本地网络广播请求消息时,请求获取所在所述节点的虚拟机的网络地址信息;将获取的网络信息添加到网络过滤表中。

说明书 :

多核处理器的计算环境中实现TPM的方法及其系统

技术领域

[0001] 本发明涉及计算机安全领域,尤其涉及多核处理器的计算环境中实现TPM的方法及其系统。

背景技术

[0002] 在当今的信息时代,保护信息的私密性、完整性、真实性和可靠性,提供一个可信赖的计算环境已经成为信息化的必然要求。为此,必须做到终端的可信,从源头解决人与程序、人与机器还有人与人之间的信息安全传递,进而形成一个可信的网络,建立一个安全的可信链。为了解决计算机和网络结构上的安全性,从根本上提高其可信性,必须从芯片、硬件结构和操作系统等方面综合采取措施。
[0003] 在现有技术中,应用TPM(Trusted Platform Module,可信赖平台模块)芯片来保证系统的安全性,但是,就目前可信计算以及TPM芯片还处于起始阶段,同时由于在相关标准上的理解不同,造成当前已有的产品在实际实现上存在一定的差异。
[0004] 其中,TPM安全芯片,是指符合TPM标准的安全芯片,实质是一个可独立进行密钥生成、加解密的装置,内部拥有独立的处理器和存储单元,可存储密钥和敏感数据,为各种计算平台提供完整性度量、数据安全保护和身份认证服务,通过完整性度量、身份验证、数据加密等功能,它能有效地保护PC、防止非法用户访问。
[0005] 此外,伴随当前虚拟化技术、云计算等技术的提出和发展,更多的企业开始使用虚拟化技术,并将其应用在企业内部的数据中心中,以解决数据的安全问题。当前Amazon、Google相继提出了各自的云计算模型,但其主要关注于数据存储或应用服务的提供,而对系统的可靠性、可信性没有提出相应解决方案,尤其是对于系统内部机器之间的可信控制等行为。同时,由于虚拟化技术的发展日趋成熟,提出虚拟计算环境中的可信问题,尤其是虚拟环境下,数据中心的安全性和可信性问题将变得日益突出。
[0006] 现有技术中,对于TPM芯片,其中基于Linux系统模拟的TPM Emulator(TPM仿真器),用C语言实现了TPM的功能,供安装后的系统使用,但是其仅在于辅助模拟TPM,并没有基于可信根实现系统的可信,故不能很好的解决实际面临的问题。
[0007] 在当前虚拟化技术Xen中的可信计算模型中,每一个Dom0均有一个VTPM(虚拟TPM)管理器负责管理本节点上虚拟机的TPM实例。如图1所示,VTPM管理器将创建(spawn)一个线程监听来自Xen中操作信息,当节点创建一个虚拟机时,VTPM管理器将先为该虚拟机创建一个后端的VTPM实例,该VTPM管理器将模拟真实环境下TPM芯片或TPM仿真器的行为,为对应的虚拟机提供对本机器内部应用的验证服务。虚拟机的自验证过程中需要与VTPM管理器进行通信,最终由底层硬件TPM芯片或TPM仿真器加以服务。
[0008] 可信计算技术,依赖于硬件TPM芯片来构造一个可信的计算机系统,并且还涉及BIOS对该技术的支持以及相关硬件上的改进等。但是目前正在使用中的大部分系统,在设计之初并没有考虑到与可信计算的结合,第一是因为BIOS并不支持该技术,第二是因为没有针对TPM芯片的接口。但是这些系统的可信需求并没有因此二减少,相反,更应该利用已有的条件来使这些系统达到我们期望的可信状态。

发明内容

[0009] 为解决上述问题,本发明提供了多核处理器的计算环境中实现TPM的方法及其系统,本发明能够在系统中不存在TPM安全芯片的情况下,为系统的启动及后续应用的加载提供可信服务的能力。
[0010] 本发明公开了一种多核处理器的计算环境中实现TPM的方法,包括[0011] 步骤1,计算环境中的节点在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;
[0012] 步骤2,所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;
[0013] 步骤3,所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。
[0014] 所述计算环境为虚拟化计算环境,
[0015] 所述方法还包括:
[0016] 步骤21,采用Xen对节点进行虚拟化。
[0017] 所述步骤21后还包括:
[0018] 步骤31,计算环境中的一个虚拟机形成一个VTPM管理器;
[0019] 步骤32,所述VTPM管理器创建一个线程监听Xen中操作;
[0020] 步骤33,当节点创建一个虚拟机时,所述VTPM管理器为所述虚拟机创建一个VTPM实例;
[0021] 步骤34,所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。
[0022] 所述方法还包括:
[0023] 步骤41,将所述节点同前端代理连接;
[0024] 步骤42,VTPM管理器生成平台配置信息,发送给所述前端代理;
[0025] 步骤43,所述前端代理接收所述平台配置信息,并存储到平台配置信息表中;
[0026] 步骤44,当客户端请求访问时,从所述平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。
[0027] 所述方法还包括:
[0028] 步骤51,虚拟机的网卡通过虚拟接口连接到虚拟网桥;
[0029] 步骤52,节点的隔离器检测所述节点上是否有新的虚拟机创建,如果有,执行步骤53;
[0030] 步骤53,隔离器获取虚拟机的MAC地址和虚拟机的类型,根据所述虚拟机类型制定对应隔离规则,将所述隔离规则添加到链路过滤表中;
[0031] 步骤54,在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0032] 所述步骤54后还包括:
[0033] 步骤61,所述节点将新创建的虚拟机的MAC地址和类型广播给其他节点的隔离器;
[0034] 步骤62,所述其他节点的隔离器接收到广播的MAC地址和类型,根据节点的本地存储的虚拟机的信息,制定隔离规则,将隔离规则添加到本地的链路过滤表中;
[0035] 步骤63,在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0036] 所述方法还包括:
[0037] 步骤71,虚拟机启动后,查看虚拟机本地的网络配置信息获得IP地址和子网掩码,计算出虚拟机所述的子网地址,将子网地址的信息发给虚拟机的虚拟隔离器;
[0038] 步骤72,所述虚拟隔离器根据收到的子网地址信息制定相应的过滤规则,将所述过滤规则存储到网络过滤表中;
[0039] 步骤73,在虚拟机接收到IP包时,根据所述网络过滤表中隔离规则,处理所述IP包。
[0040] 所述步骤73还包括:
[0041] 步骤81,虚拟机向本地网络广播请求消息,请求获取所在所述节点的虚拟机的网络地址信息;
[0042] 步骤82,将获取的网络信息添加到网络过滤表中。
[0043] 本发明还公开了一种多核处理器的计算环境中实现TPM的系统,包括节点,[0044] 所述节点,用于在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;
[0045] 所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;
[0046] 所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。
[0047] 所述计算环境为虚拟化计算环境,
[0048] 所述节点还用于采用Xen对所述节点进行虚拟化。
[0049] 所述系统还包括VTPM管理器,
[0050] 计算环境中的一个虚拟机形成一个VTPM管理器;
[0051] 所述VTPM管理器,用于创建一个线程监听Xen中操作;当节点创建一个虚拟机时,为所述虚拟机创建一个VTPM实例;所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。
[0052] 所述系统还包括同节点连接的前端代理;
[0053] 所述VTPM管理器还用于生成平台配置信息,发送给所述前端代理;
[0054] 所述前端代理,用于接收所述平台配置信息,并存储到平台配置信息表中;当客户端请求访问时,从所述平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。
[0055] 所述节点包括隔离器,虚拟机的网卡通过虚拟接口连接到虚拟网桥;
[0056] 所述隔离器,用于检测所述节点上是否有新的虚拟机创建,如果有,则获取虚拟机的MAC地址和虚拟机的类型,根据所述虚拟机类型制定对应隔离规则,将所述隔离规则添加到链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0057] 所述节点还用于将新创建的虚拟机的MAC地址和类型广播给其他节点的隔离器;
[0058] 所述隔离器还用于接收到广播的MAC地址和类型,根据节点的本地存储的虚拟机的信息,制定隔离规则,将隔离规则添加到本地的链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0059] 所述节点还用于为虚拟机创建虚拟隔离器,
[0060] 所述节点还用于虚拟机启动后,查看虚拟机本地的网络配置信息获得IP地址和子网掩码,计算出虚拟机所述的子网地址,将子网地址的信息发给虚拟机的虚拟隔离器;
[0061] 所述虚拟隔离器,用于根据收到的子网地址信息制定相应的过滤规则,将所述过滤规则存储到网络过滤表中;在虚拟机接收到IP包时,根据所述网络过滤表中隔离规则,处理所述IP包。
[0062] 所述节点还用于由虚拟机向本地网络广播请求消息;
[0063] 所述虚拟隔离器还用于在虚拟机向本地网络广播请求消息时,请求获取所在所述节点的虚拟机的网络地址信息;将获取的网络信息添加到网络过滤表中。
[0064] 本发明有益效果在于,通过构建这样一种分布式可信计算架构,可以为当前的云计算和企业数据中心提供一种有效的安全保护措施,由于本发明充分考虑到了当前商用多核处理器的特点及处理能力,通过让某一固定核提供底层的可信验证服务,我们能够有效提升计算服务的高效性;同时,由于我们在上层异构应用的虚拟机进行了安全控制,有效地解决了当前系统内部潜在的一些安全问题;在基于多核系统的分布式计算架构中,从多核系统中隔离出其中的一个核运行TPM Emulator,为其他核上的普通应用提供可信的服务,能够在系统中不存在TPM安全芯片的情况下,为系统的启动及后续应用的加载提供可信服务的能力;利用VLAN技术将服务器中提供不同服务的虚拟机划分到一个虚拟局域网内,能够使各个服务之间不会相互干扰,一种服务的瘫痪不会影响到另一种服务。

附图说明

[0065] 图1是现有技术中的VTPM的方法;
[0066] 图2是本发明实现TPM的方法的示意图;
[0067] 图3是本发明实现前端代理的示意图;
[0068] 图4是本发明实现隔离的示意图。

具体实施方式

[0069] 下面结合附图,对本发明做进一步的详细描述。
[0070] 多核处理器的计算环境中实现TPM的方法如下所述。
[0071] 步骤S100,计算环境中节点在启动时,允许处理器的一个核工作,该核运行高权限操作系统,其他核处于休眠状态。
[0072] 该处于工作状态的核在节点的内存中独享一个内存空间,该内存空间禁止其他核访问,该核运行高权限操作系统,从而实现该核与其他核的隔离。
[0073] 步骤S200,该工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器。
[0074] 步骤S300,处于休眠状态的核开始工作运行普通操作系统,由高权限操作系统为普通操作系统的启动提供TPM安全功能。
[0075] 如图2所示,处理器多个核,核1、核2、核3、核4,其中核1运行高权限操作系统。该安全功能相当于用硬件的一个TPM来监控普通操作系统的启动过程,并且记录启动过程中信息,从而保证该节点本地系统的可信启动过程。
[0076] 基于多核CPU,充分借助于多核之间的隔离机制以及处理器对虚拟化的支持,完成真实物理TPM芯片执行的可信验证功能及服务,同时为了提高TPM服务的效率,借助于多核处理器中一个独立的核,TPM仿真器将独占一个唯一的核,由该核提供TPM所需的验证服务。
[0077] 本发明中计算环境内所有的虚拟机均由一个VTPM管理器实现统一管理,来给虚拟机提供可信根,可信根是指操作和存储内容都值得信赖的组件,如图2所示,虚拟机1、虚拟机5属于提供办公服务的虚拟局域网1,虚拟机2、虚拟机3、虚拟机4属于提供WEB服务的虚拟局域网2。
[0078] 采用Xen对节点进行虚拟化。
[0079] 计算环境中的一个Dom0具有一个VTPM管理器,DOM0是一个特殊的虚拟机,它能对其他的虚拟机进行管理。
[0080] 在计算环境中进行虚拟化后的TPM方法的具体实施方式一如下所述。
[0081] 步骤201,计算环境中的一个虚拟机形成一个VTPM管理器;
[0082] 步骤202,所述VTPM管理器创建一个线程监听Xen中操作;
[0083] 步骤203,当节点创建一个虚拟机时,所述VTPM管理器为所述虚拟机创建一个VTPM实例;
[0084] 步骤204,所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。
[0085] 由于传统的服务方式下,虚拟机的自验证过程中需要与VTPM管理器进行通信,最终由底层硬件TPM芯片或TPM emulator(TPM模拟器)加以服务。同时由于VLAN的构建实现了跨节点,所以在保证虚拟机正常验证模式下的情况下,需要为每一个VLAN配置一个代理来转发必要的验证请求。
[0086] 本发明中,在计算环境的前端代理中维护一个网络中所有虚拟机的平台配置信息。
[0087] 平台配置信息为虚拟机上安全相关的信息,例如端口开放情况,杀毒软件的版本情况,防火墙的状态等。
[0088] 在现有技术中,客户端请求Web服务,虚拟机domainU1和虚拟机domainU3都可以提供Web服务,在没有平台配置信息表的情况下,虚拟机domainU1和虚拟机domainU3要分别处理客户端的请求,需要先通过各自对应的VTPM管理器从VTPM实例中读取自己的平台配置信息然后传递给客户端来证明自己的是可信的。
[0089] 在本发明中,如图3所示,由前端代理直接提供虚拟机domainU1和虚拟机domainU3的平台配置信息。
[0090] 前端代理提供平台配置信息方法如下所述。
[0091] 具体实施方式如下所述。
[0092] 步骤301,将计算环境中的节点同前端代理连接。
[0093] 步骤302,VTPM管理器生成平台配置信息,发送给所述前端代理。
[0094] 步骤303,所述前端代理接收所述平台配置信息,并存储到平台配置信息表中。
[0095] 步骤304,当客户端请求访问时,前端代理从该平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。
[0096] 平台配置信息获取模块(Getinfo):位于VTPM管理器上,主要是扩展VTPM管理器的功能,使VTPM管理器能够按照前端代理的要求将平台配置信息传递给前端代理,[0097] 平台配置信息接收模块(Recvinfo):位于前端代理上,使前端代理能够接收VTPM管理器传递过来的平台配置信息,将相关信息存储进平台配置信息表。
[0098] 可信验证模块(Trusttest):位于客户端,验证虚拟机上的平台配置信息是否可信。客户端将从服务器端获得的配置信息与自己本地的数据库进行比较,如果符合自己的要求就可信,否则不可信,例如:杀毒软件和防火墙的版本,端口开放情况等。
[0099] 虚拟机分配模块(SelectDom):位于前端代理上,根据可信报告和各个虚拟机的负载情况为客户端分配合适的虚拟机来为客户端提供服务。
[0100] 根据当前各个虚拟机上排队等待的请求数来选择处理请求的虚拟机。
[0101] 迁移模块(Migration):通过前端代理可以实现各个domainU在物理平台上的迁移。
[0102] 通过调用VTPM里面的migration模块实现。
[0103] VLAN的隔离方法如下所述。
[0104] 本发明实现的隔离方法中,依据虚拟化技术的本身特点,从数据链路层和网络层分别加以控制以实现不同VLAN之间的隔离,如图4所示。
[0105] 数据链路层隔离的具体实现方式
[0106] 在虚拟化Xen中,所有的虚拟机DomU,包括Dom0,的网络接口卡均直连到Xen内部的一个虚拟网桥Xenbr0,网桥Xenbr0为节点中虚拟机间通信所用,该虚拟网桥Xenbr0位于Dom0中,为了实现虚拟机的网络处理功能,Xen为所有的虚拟机分配一些虚拟接口(virtual interface),虚拟机的网卡通过该些虚拟接口连接到虚拟网桥。
[0107] 本发明在Dom0中控制不同虚拟机之间的数据通信。使用了链路层工具,ebtables,控制虚拟机位于链路层的通信通道。链路层工具ebtables能够改变链路层数据帧的帧头等信息,因此能够实现对不同应用虚拟机之间数据帧的控制。
[0108] 比如,如图2所示,有一个提供web服务的虚拟机2以及另一个提供office服务的虚拟机1,由于两类虚拟机提供了不同的应用服务,因而处于不同的VLAN中。如果当虚拟机2需要远程访问或登录虚拟机1时,通过控制虚拟网桥Xenbr0,来限制虚拟机2的行为,限制用户的操作,以保证虚拟机之间的安全性。
[0109] 主要模块及功能说明:
[0110] 隔离器(Isolator):节点的Domain0,通过控制虚拟网桥达到隔离控制效果。
[0111] 虚拟隔离器(visolator):为虚拟机内部的模块,通过对虚拟机内部虚拟网卡处的IP包进行过滤实现隔离效果。
[0112] 过滤Filter表:为现有技术netfilter/iptables框架中实现网络层数据包过滤的过滤表,记录了完成过滤功能的规则集合。对于网络层和数据链路层均有过滤表,其中维护的规则集合不同。
[0113] 数据链路层隔离流程如下所述。
[0114] 步骤401,每个虚拟机启动的时候,在该虚拟机所在节点的domain0里的隔离器,利用ebtable实现,通过Xend命令获取到虚拟机的MAC地址和虚拟机所在的VLAN。
[0115] 在对虚拟机进行VLAN划分时,根据当先计算环境中虚拟机提供的服务将虚拟机划分成不同的VLAN。提供相同应用的虚拟机在逻辑上组成一个VLAN,比如虚拟机A提供高性能计算服务,同时该虚拟机属于VLAN1即VLAN_ID=1,高性能计算服务对应VLAN1,虚拟机的类型同时反映了虚拟机所能提供的服务以及相应的VLAN ID号。
[0116] 步骤402,该隔离器将该虚拟机的MAC地址广播给所有其他节点的domain0的隔离器,以在每个隔离器里维护了所有虚拟机的MAC地址,并构成一个过滤表。
[0117] 该过滤表里是source MAC(源MAC地址)—》dst MAC(目的MAC地址)的值对,在这个值对后面是所对应的规则,表明是通过还是隔离。
[0118] 隔离器根据虚拟机所在的VLAN制定相应隔离规则。例如,源MAC地址和目的MAC地址在同一个VLAN内的对应规则为通过。其中,通过MAC地址对应的VLAN ID确定源MAC地址和目的MAC地址是否在同一个VLAN。
[0119] 在实施例中,获得虚拟机和其所属VLAN映射关系方法如下所述。
[0120] 其他隔离器收到该广播的消息后,解析请求包并获取虚拟机的MAC地址以及类型type,类型表示为VLAN ID,建立虚拟机同VLAN的映射关系。
[0121] 隔离器通过对本地数据库中已有的虚拟机信息比较,制定隔离规则。
[0122] 另一实施例中,获得虚拟机和其所属VLAN映射关系方法如下所述。
[0123] 在初始阶段,隔离器通过分析网卡处每一个数据帧的帧头部分来确定该数据帧所属的虚拟机以及该虚拟机的类型,建立VLAN同虚拟机间的映射表,该映射表能够反映虚拟机及其所属的VLAN ID号。
[0124] 根据该映射表就能对后期的数据帧进行转发控制处理。
[0125] 步骤403,当虚拟机要发送一个数据包时,隔离器会检查该数据包的源地址和目的地址是否在过滤表里;如果在过滤表则执行源MAC地址和目的MAC地址值对后面所对应的规则,如果在过滤表里没有找到对应的值对则默认执行拒绝操作。
[0126] 例如,某个虚拟机的MAC地址是00-30-48-5b-12-53,其要发送数据包给MAC地址为00-30-48-5b-15-53的虚拟机。而在isolator的过滤表里面这个值对的操作规则是pass,则这个包就可以被成功发送。
[0127] 对于隔离器而言,实现隔离时最终调用ebtables模块的API,该模块可以根据一个数据帧的帧头相关位段判断一个帧所属的虚拟机,通过分析虚拟机的MAC地址实现,进行可以判断一个虚拟机所在的VLAN ID号。
[0128] 网络层隔离流程如下所述。
[0129] 除了上面在数据链路层对不同VLAN内部的虚拟机加以访问控制,本发明另一隔离的具体实施方式。由于在Xen内部,同一节点虚拟机之间的通信通过Xen网桥进行。现有技术中防火墙控制的工具iptables具有IP数据包过滤、地址转换等功能。
[0130] 所以,借助于iptables提供的某些过滤机制在虚拟机内部实现网络层的隔离控制。当某一应用类型的虚拟机启动完成后,本地虚拟机通过获取本地的地址信息自动分析本地网络信息,根据解析出的网络ID号进行自动地添加网络层的隔离规则,规则的实现是允许同类型的虚拟机与虚拟机所在节点建立正常数据通信,对于不同应用类型的虚拟机进行拒绝。
[0131] 网络层的隔离流程如下:
[0132] 步骤501,虚拟机启动成功,虚拟机内部的隔离进程或隔离模块自启动运行。
[0133] 步骤502,隔离进程或隔离模块获取该虚拟机的IP地址。
[0134] 步骤503,隔离进程或隔离模块获得该虚拟机所在的应用网段的子网IP地址。
[0135] 步骤504,隔离进程调或隔离模块用iptables相关接口,建立隔离规则。
[0136] 在实现网络层的隔离时,不同类型的虚拟机会专门有一个网段组成,比如:提供office服务的虚拟机ip全部在10.10.1.0/24网段内,而提供web服务的虚拟机ip全部在10.10.2.0/24网段内。
[0137] 虚拟机启动后,自动运行虚拟隔离器(visolator)服务和探测器(detector)服务;
[0138] 探测器察看本地网络配置信息,获取以下信息:IP地址,子网掩码(netmask)信息,并据此算出本地机器所在的子网地址,该子网地址为本VLAN的地址。
[0139] 探测器将计算得到的VLAN子网信息发给虚拟隔离器,虚拟隔离器根据收到的客户的请求定义相应的规则,并自动向iptables的filter表中添加规则。
[0140] 隔离器根据虚拟机所在的VLAN制定相应隔离规则。例如,源IP地址和目的IP地址在同一个VLAN内的对应规则为通过。其中,通过IP地址和子网掩码计算网络号,由网络号确定源IP和目的IP是否在同一个VLAN。
[0141] 探测器在网络广播消息,请求获取所在节点的IP信息。
[0142] 本地网络是指的所有的物理节点组成的网络,由于探测器需要知道该虚拟机所在的物理宿主节点,而VLAN又是跨节点的,所以需要的本地网络内广播消息。
[0143] 探测器将获取的物理节点IP信息添加到iptables维护的filter表中。
[0144] 在Filter表中添加规则是IP信息。
[0145] 一种多核处理器的计算环境中实现TPM的系统,包括节点,
[0146] 所述节点,用于在启动时,允许处理器的一个核工作,所述核运行高权限操作系统,所述处理器的其他核处于休眠状态;
[0147] 所述工作的核进入正常工作状态后,写入TPM函数,形成用以实现TPM的功能的TPM模拟器;
[0148] 所述处于休眠状态的核开始工作运行普通操作系统,由所述高权限操作系统为所述普通操作系统的启动提供TPM安全服务。
[0149] 所述计算环境为虚拟化计算环境,所述节点还用于采用Xen对所述节点进行虚拟化。
[0150] 较佳的,所述系统还包括VTPM管理器,
[0151] 计算环境中的一个虚拟机形成一个VTPM管理器;
[0152] 所述VTPM管理器,用于创建一个线程监听Xen中操作;当节点创建一个虚拟机时,为所述虚拟机创建一个VTPM实例;所述VTPM实例通过同所述TPM模拟器通信为虚拟机提供TPM服务。
[0153] 较佳的,所述系统还包括同节点连接的前端代理;
[0154] 所述VTPM管理器还用于生成平台配置信息,发送给所述前端代理;
[0155] 所述前端代理,用于接收所述平台配置信息,并存储到平台配置信息表中;当客户端请求访问时,从所述平台配置信息表中查找同所述客户端访问相关的虚拟机的平台配置信息,发送给所述客户端。
[0156] 较佳的,所述节点包括隔离器,虚拟机的网卡通过虚拟接口连接到虚拟网桥;
[0157] 所述隔离器,用于检测所述节点上是否有新的虚拟机创建,如果有,则获取虚拟机的MAC地址和虚拟机的类型,根据所述虚拟机类型制定对应隔离规则,将所述隔离规则添加到链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0158] 较佳的,所述节点还用于将新创建的虚拟机的MAC地址和类型广播给其他节点的隔离器;
[0159] 所述隔离器还用于接收到广播的MAC地址和类型,根据节点的本地存储的虚拟机的信息,制定隔离规则,将隔离规则添加到本地的链路过滤表中;在节点接收到数据包时,根据所述链路过滤表中隔离规则,将所述数据包转发给虚拟机。
[0160] 较佳的,所述系统还包括:虚拟隔离器,
[0161] 所述节点还用于虚拟机启动后,查看虚拟机本地的网络配置信息获得IP地址和子网掩码,计算出虚拟机所述的子网地址,将子网地址的信息发给虚拟机的虚拟隔离器;
[0162] 所述虚拟隔离器,用于根据收到的子网地址信息制定相应的过滤规则,将所述过滤规则存储到网络过滤表中;在虚拟机接收到IP包时,根据所述网络过滤表中隔离规则,处理所述IP包。
[0163] 较佳的,所述节点还用于由虚拟机向本地网络广播请求消息;
[0164] 所述虚拟隔离器还用于在虚拟机向本地网络广播请求消息时,请求获取所在所述节点的虚拟机的网络地址信息;将获取的网络信息添加到网络过滤表中。
[0165] 本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。