虚拟机架构下的磁盘数据安全保护方法及监控器转让专利

申请号 : CN201310290211.9

文献号 : CN104281818B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 任兰芳柏洪涛刘斐侯长江王静左敏

申请人 : 中国移动通信集团公司

摘要 :

本发明提出虚拟机架构下的磁盘数据安全保护方法及监控器。方法包括:虚拟机监控器接收特权虚拟机发来的客户虚拟机要读的目标数据、目标数据对应的Hash树叶节点、客户虚拟机地址;所述目标数据为:特权虚拟机收到客户虚拟机发来的携带读地址的读请求后,根据读地址从自身的虚拟磁盘上读取的;所述Hash树为:采用预设Hash树构建算法,对目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到的;虚拟机监控器对目标数据进行Hash计算,将得到的Hash值与特权虚拟机发来的目标数据对应的Hash树叶节点进行匹配,若匹配上,将目标数据发送给客户虚拟机。本发明减少了对客户虚拟机的磁盘数据的安全保护处理对磁盘性能的影响。

权利要求 :

1.一种虚拟机架构下的磁盘数据安全保护方法,其特征在于,该方法包括:

虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的哈希Hash树叶节点、以及该客户虚拟机的地址;

其中,所述目标数据为:特权虚拟机接收到客户虚拟机发来的携带读地址的读请求后,根据该读地址从自身的虚拟磁盘上读取的;所述Hash树为:初始时,采用预设Hash树构建算法,对该目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到,并写入特权虚拟机的一个Hash文件的;

虚拟机监控器对所述目标数据进行Hash计算,将计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点进行匹配,判断是否匹配上,若是,则根据所述客户虚拟机的地址,将该目标数据发送给客户虚拟机。

2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:

虚拟机监控器接收并保存特权虚拟机在所述客户虚拟机启动时发来的各虚拟磁盘的Hash树的所有非叶节点;其中,每个虚拟磁盘对应一棵Hash树;

所述虚拟机监控器接收特权虚拟机发来的该目标数据对应的Hash树叶节点进一步包括:虚拟机监控器接收特权虚拟机发来的该目标数据对应的Hash树的其他叶节点;

且所述虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址之后、对所述目标数据进行Hash计算之前进一步包括:虚拟机监控器采用预设Hash树构建算法,对特权虚拟机发来的该目标数据对应的Hash树的所有叶节点进行Hash计算,判断计算得到的根节点和所有中间节点是否与特权虚拟机在所述客户虚拟机启动时发来的该目标数据所在虚拟磁盘的Hash树的根节点和所有中间节点匹配,若是,执行所述对所述目标数据进行Hash计算的动作。

3.根据权利要求1或2所述的方法,其特征在于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点不匹配时,所述方法进一步包括:虚拟机监控器向所述客户虚拟机返回读失败指示。

4.根据权利要求1或2所述的方法,其特征在于,所述虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据为:采用对称加密算法加密后的数据;

且,所述该目标数据所在虚拟磁盘上的所有数据块为:采用所述对称加密算法加密后的数据块;

且,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点匹配时,所述将该目标数据发送给客户虚拟机之前进一步包括:采用所述对称加密算法对该目标数据进行解密,将解密后的目标数据发送给客户虚拟机。

5.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:

虚拟机监控器截获客户虚拟机发出的写请求,该写请求包含要写入的目标数据及写地址,缓存该目标数据,采用预设Hash树构建算法,对目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点;

虚拟机监控器根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以计算得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用预设Hash树构建算法,更新自身保存的该Hash树的非叶节点,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新其保存的该Hash树;

虚拟机监控器将目标数据以及写地址携带在写请求中发送给特权虚拟机,以便特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。

6.根据权利要求5所述的方法,其特征在于,所述虚拟机监控器截获客户虚拟机发出的写请求之后、对目标数据进行Hash计算之前进一步包括:虚拟机监控器采用预设对称加密算法,对目标数据进行加密;

且,所述虚拟机监控器将目标数据以及写地址携带在写请求中发送给特权虚拟机为:

虚拟机监控器将加密后的目标数据以及写地址携带在写请求中发送给特权虚拟机。

7.一种虚拟机架构下的磁盘数据安全保护方法,其特征在于,该方法包括:

特权虚拟机保存每个虚拟磁盘对应的Hash树,所述Hash树为:采用预设Hash树构建算法,对该虚拟磁盘上的所有数据块进行Hash计算得到,并写入特权虚拟机的一个Hash文件的;

当特权虚拟机发现任一客户虚拟机启动时,将各虚拟磁盘的Hash树的非叶节点加载到虚拟机监控器;

当特权虚拟机接收到客户虚拟机发来的携带读地址的读请求时,根据该读地址,从对应虚拟磁盘上读取目标数据,查询该目标数据所在虚拟磁盘的Hash树,将该目标数据对应的Hash树叶节点、该目标数据以及发来读请求的客户虚拟机地址发送给虚拟机监控器。

8.根据权利要求7所述的方法,其特征在于,所述特权虚拟机将该目标数据对应的Hash树叶节点发送给虚拟机监控器的同时进一步包括:特权虚拟机将该目标数据对应的Hash树的其他叶节点一并发送给虚拟机监控器。

9.根据权利要求7或8所述的方法,其特征在于,所述方法进一步包括:

特权虚拟机接收虚拟机监控器发来的针对一虚拟磁盘的Hash树,以该Hash树更新自身保存该虚拟磁盘的Hash树。

10.一种虚拟机架构下的虚拟机监控器,其特征在于,该虚拟机监控器包括:

第一模块:接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址,将该目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址转发给第二模块;

其中,所述目标数据为:特权虚拟机接收到客户虚拟机发来的携带读地址的读请求后,根据该读地址从自身的虚拟磁盘上读取的;所述Hash树为:采用预设Hash树构建算法,对该目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到,并写入特权虚拟机的一个Hash文件的;

第二模块:对所述目标数据进行Hash计算,将计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点进行匹配,判断是否匹配上,若是,则根据所述客户虚拟机的地址,将该目标数据发送给客户虚拟机。

11.根据权利要求10所述的虚拟机监控器,其特征在于,所述虚拟机监控器进一步包括:第三模块,用于接收并保存特权虚拟机在所述客户虚拟机启动时发来的各虚拟磁盘的Hash树的所有非叶节点;其中,每个虚拟磁盘对应一棵Hash树;

且,所述第一模块进一步用于,在接收特权虚拟机发来的该目标数据对应的Hash树叶节点的同时,接收特权虚拟机发来的该目标数据对应的Hash树的其他叶节点,并将该目标数据对应的Hash树的其他叶节点发送给第二模块;

且,所述第二模块进一步用于,采用预设Hash树构建算法,对特权虚拟机发来的该目标数据对应的Hash树的所有叶节点进行Hash计算,判断计算得到的根节点和所有中间节点是否与第三模块保存的该目标数据所在虚拟磁盘的Hash树的根节点和所有中间节点匹配,若是,执行所述对所述目标数据进行Hash计算的动作。

12.根据权利要求10或11所述的虚拟机监控器,其特征在于,所述第二模块进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点不匹配时,向所述客户虚拟机返回读失败指示。

13.根据权利要求10或11所述的虚拟机监控器,其特征在于,所述第一模块接收到的特权虚拟机发来的客户虚拟机要读取的目标数据为:采用对称加密算法加密后的数据;

且,所述第二模块进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点匹配时,采用所述对称加密算法对该目标数据进行解密,将该解密后的目标数据发送给客户虚拟机。

14.根据权利要求10或11所述的虚拟机监控器,其特征在于,所述虚拟机监控器进一步包括:第四模块,用于截获客户虚拟机发出的写请求,该写请求包含要写入的目标数据及写地址,缓存该目标数据,采用预设Hash树构建算法,对目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点;根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以计算得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用预设Hash树构建算法,更新第三模块保存的该目标数据所在虚拟磁盘的Hash树的非叶节点,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新其保存的该Hash树;将目标数据以及写地址携带在写请求中发送给特权虚拟机,以便特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。

15.根据权利要求14所述的虚拟机监控器,其特征在于,所述第四模块进一步用于,对目标数据进行Hash计算之前,采用预设对称加密算法,对目标数据进行加密;且,在将目标数据发送给特权虚拟机时,将加密后的目标数据发送给特权虚拟机。

16.一种虚拟机架构下的特权虚拟机,其特征在于,该特权虚拟机包括:

第一模块:保存每个虚拟磁盘对应的Hash树,所述Hash树为:采用预设Hash树构建算法,对该虚拟磁盘上的所有数据块进行Hash计算得到,并写入特权虚拟机的一个Hash文件的;

第二模块:当发现任一客户虚拟机启动时,将第一模块保存的各虚拟磁盘的Hash树的非叶节点加载到虚拟机监控器;

第三模块:当接收到客户虚拟机发来的携带读地址的读请求时,根据该读地址,从对应虚拟磁盘上读取目标数据,向第一模块查询该目标数据所在虚拟磁盘的Hash树,将该目标数据对应的Hash树叶节点、该目标数据以及发来读请求的客户虚拟机地址发送给虚拟机监控器。

17.根据权利要求16所述的特权虚拟机,其特征在于,所述第三模块进一步用于,在将目标数据对应的Hash树叶节点发送给虚拟机监控器的同时,将该目标数据对应的Hash树的其他叶节点一并发送给虚拟机监控器。

18.根据权利要求16或17所述的特权虚拟机,其特征在于,所述第一模块进一步用于,接收虚拟机监控器发来的针对一虚拟磁盘的Hash树,以该Hash树更新自身保存该虚拟磁盘的Hash树。

说明书 :

虚拟机架构下的磁盘数据安全保护方法及监控器

技术领域

[0001] 本发明涉及数据保护技术领域,尤其涉及虚拟机架构下的磁盘数据安全保护方法及监控器。

背景技术

[0002] 服务器虚拟化技术可以将数据中心的计算、存储、网络等资源以统一的虚拟机(Virtual Machine)的形式进行管理以提高管理效率,或者以虚拟机租赁的方式出租给“租客用户”,得到了高效率的多租客服务应用。Xen是剑桥大学开发的一种开源虚拟机架构,被许多云服务提供商用作服务器虚拟化的软件平台。
[0003] Xen其主要由虚拟机监控器(VMM,Virtual Machine Monitor)和一个特权虚拟机(又称为Dom0)组成。Xen虚拟机监控器直接运行在物理硬件之上,并向上提供运行操作系统的虚拟化环境。特权虚拟机则负责控制硬件设备、为客户虚拟机模拟必要的硬件设备,例如虚拟磁盘设备,并为管理员提供管理客户虚拟机的接口。当客户虚拟机要访问磁盘设备时,其请求都会由虚拟机监控器转发给特权虚拟机,并由特权虚拟机完成真正的磁盘访存操作。由于通常情况下特权虚拟机是可信的,因此客户虚拟机的磁盘数据以及相关的访存操作是安全的。但是由于特权虚拟机的代码量巨大,超过七百五十万行代码,其系统软件自身必然含有许多设计漏洞可以被利用成为攻击源对租客用户的数据造成安全风险,加之系统管理员可以轻易地控制和使用特权虚拟机,这使得如果特权虚拟机被恶意的黑客或系统管理员所控制,客户虚拟机的磁盘数据就可能被恶意访问和篡改。
[0004] 磁盘数据安全性主要包括两个方面:一是隐私性保护,二是完整性保护。磁盘数据的隐私性保护可以通过磁盘数据加密,例如:高级加密标准(AES,Advanced Encryption Standard)对称加密等来实现。磁盘数据的完整性主要通过哈希校验的方法,例如:对磁盘数据构建Merkle哈希树来实现。
[0005] 目前提出的Xen开源虚拟机架构下的磁盘数据安全保护方案如下:该方案采用云管理器(CloudVisor)架构,该架构使用嵌套虚拟化(Nested Virtualization)的方式使得:即使在特权虚拟机被黑客或者恶意的系统管理员操控的情况下,仍能保护磁盘数据的安全性。本方案将专门提供安全服务的模块设置在VMM的下层,该模块被称作云安全管理器(CSV,Cloud Security Visor),用来监管VMM、特权虚拟机以及客户虚拟机的行为,用来保护客户虚拟机的内存资源和磁盘资源免受特权虚拟机和虚拟机监控器的恶意攻击。CSV运行在CPU的最高特权级,即CPU根模式的Ring-1特权层;而VMM位于CSV上,属于CPU非根模式(Non-root Mode)的Ring0特权层。
[0006] 现有的磁盘数据保护方案的缺点如下:
[0007] 一)要添加新的云安全管理器,从而改变了现有的虚拟机架构。
[0008] 二)由于在原来的虚拟机架构中加入了新的虚拟层-云安全管理器,导致虚拟机架构的改变并增长了客户虚拟机的磁盘访存路径,由于磁盘访存需要特权虚拟机协助完成,整个请求的完成路径扩大一倍,从而使得客户虚拟机的磁盘性能受到较大影响,其中,磁盘性能开销来自数据的隐私性及完整性保护以及额外的多次特权级的切换和上下文的切换。

发明内容

[0009] 本发明提供虚拟机架构下的磁盘数据安全保护方法及监控器,以在不改变虚拟机架构,以及不改变客户虚拟机的磁盘访存路径的前提下,实现对磁盘数据的安全保护。
[0010] 本发明的技术方案是这样实现的:
[0011] 一种虚拟机架构下的磁盘数据安全保护方法,该方法包括:
[0012] 虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的哈希Hash树叶节点、以及该客户虚拟机的地址;
[0013] 其中,所述目标数据为:特权虚拟机接收到客户虚拟机发来的携带读地址的读请求后,根据该读地址从自身的虚拟磁盘上读取的;所述Hash树为:采用预设Hash树构建算法,对该目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到的;
[0014] 虚拟机监控器对所述目标数据进行Hash计算,将计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点进行匹配,判断是否匹配上,若是,则根据所述客户虚拟机的地址,将该目标数据发送给客户虚拟机。
[0015] 所述方法进一步包括:
[0016] 虚拟机监控器接收并保存特权虚拟机在所述客户虚拟机启动时发来的各虚拟磁盘的Hash树的所有非叶节点;其中,每个虚拟磁盘对应一棵Hash树;
[0017] 所述虚拟机监控器接收特权虚拟机发来的该目标数据对应的Hash树叶节点进一步包括:虚拟机监控器接收特权虚拟机发来的该目标数据对应的Hash树的其他叶节点;
[0018] 且所述虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址之后、对所述目标数据进行Hash计算之前进一步包括:
[0019] 虚拟机监控器采用预设Hash树构建算法,对特权虚拟机发来的该目标数据对应的Hash树的所有叶节点进行Hash计算,判断计算得到的根节点和所有中间节点是否与特权虚拟机在所述客户虚拟机启动时发来的该目标数据所在虚拟磁盘的Hash树的根节点和所有中间节点匹配,若是,执行所述对所述目标数据进行Hash计算的动作。
[0020] 当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点不匹配时,所述方法进一步包括:虚拟机监控器向所述客户虚拟机返回读失败指示。
[0021] 所述虚拟机监控器接收特权虚拟机发来的客户虚拟机要读取的目标数据为:采用对称加密算法加密后的数据;
[0022] 且,所述该目标数据所在虚拟磁盘上的所有数据块为:采用所述对称加密算法加密后的数据块;
[0023] 且,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点匹配时,所述将该目标数据发送给客户虚拟机之前进一步包括:
[0024] 采用所述对称加密算法对该目标数据进行解密,将解密后的目标数据发送给客户虚拟机。
[0025] 所述方法进一步包括:
[0026] 虚拟机监控器截获客户虚拟机发出的写请求,该写请求包含要写入的目标数据及写地址,缓存该目标数据,采用预设Hash树构建算法,对目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点;
[0027] 虚拟机监控器根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以计算得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用预设Hash树构建算法,更新自身保存的该Hash树的非叶节点,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新其保存的该Hash树;
[0028] 虚拟机监控器将目标数据以及写地址携带在写请求中发送给特权虚拟机,以便特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。
[0029] 所述虚拟机监控器截获客户虚拟机发出的写请求之后、对目标数据进行Hash计算之前进一步包括:
[0030] 虚拟机监控器采用预设对称加密算法,对目标数据进行加密;
[0031] 且,所述虚拟机监控器将目标数据以及写地址携带在写请求中发送给特权虚拟机为:
[0032] 虚拟机监控器将加密后的目标数据以及写地址携带在写请求中发送给特权虚拟机。
[0033] 一种虚拟机架构下的磁盘数据安全保护方法,该方法包括:
[0034] 特权虚拟机保存每个虚拟磁盘对应的Hash树,所述Hash树为:采用预设Hash树构建算法,对该虚拟磁盘上的所有数据块进行Hash计算得到的;
[0035] 当特权虚拟机发现任一客户虚拟机启动时,将各虚拟磁盘的Hash树的非叶节点加载到虚拟机监控器;
[0036] 当特权虚拟机接收到客户虚拟机发来的携带读地址的读请求时,根据该读地址,从对应虚拟磁盘上读取目标数据,查询该目标数据所在虚拟磁盘的Hash树,将该目标数据对应的Hash树叶节点、该目标数据以及发来读请求的客户虚拟机地址发送给虚拟机监控器。
[0037] 所述特权虚拟机将该目标数据对应的Hash树叶节点发送给虚拟机监控器的同时进一步包括:
[0038] 特权虚拟机将该目标数据对应的Hash树的其他叶节点一并发送给虚拟机监控器。
[0039] 所述方法进一步包括:
[0040] 特权虚拟机接收虚拟机监控器发来的针对一虚拟磁盘的Hash树,以该Hash树更新自身保存该虚拟磁盘的Hash树。
[0041] 一种虚拟机架构下的虚拟机监控器,该虚拟机监控器包括:
[0042] 第一模块:接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址,将该目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址转发给第二模块;
[0043] 其中,所述目标数据为:特权虚拟机接收到客户虚拟机发来的携带读地址的读请求后,根据该读地址从自身的虚拟磁盘上读取的;所述Hash树为:采用预设Hash树构建算法,对该目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到的;
[0044] 第二模块:对所述目标数据进行Hash计算,将计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点进行匹配,判断是否匹配上,若是,则根据所述客户虚拟机的地址,将该目标数据发送给客户虚拟机。
[0045] 所述虚拟机监控器进一步包括:第三模块,用于接收并保存特权虚拟机在所述客户虚拟机启动时发来的各虚拟磁盘的Hash树的所有非叶节点;其中,每个虚拟磁盘对应一棵Hash树;
[0046] 且,所述第一模块进一步用于,在接收特权虚拟机发来的该目标数据对应的Hash树叶节点的同时,接收特权虚拟机发来的该目标数据对应的Hash树的其他叶节点,并将该目标数据对应的Hash树的其他叶节点发送给第二模块;
[0047] 且,所述第二模块进一步用于,采用预设Hash树构建算法,对特权虚拟机发来的该目标数据对应的Hash树的所有叶节点进行Hash计算,判断计算得到的根节点和所有中间节点是否与第三模块保存的该目标数据所在虚拟磁盘的Hash树的根节点和所有中间节点匹配,若是,执行所述对所述目标数据进行Hash计算的动作。
[0048] 所述第二模块进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点不匹配时,向所述客户虚拟机返回读失败指示。
[0049] 所述第一模块接收到的特权虚拟机发来的客户虚拟机要读取的目标数据为:采用对称加密算法加密后的数据;
[0050] 且,所述第二模块进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点匹配时,采用所述对称加密算法对该目标数据进行解密,将该解密后的目标数据发送给客户虚拟机。
[0051] 所述虚拟机监控器进一步包括:第四模块,用于截获客户虚拟机发出的写请求,该写请求包含要写入的目标数据及写地址,缓存该目标数据,采用预设Hash树构建算法,对目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点;根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以计算得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用预设Hash树构建算法,更新第三模块保存的该目标数据所在虚拟磁盘的Hash树的非叶节点,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新其保存的该Hash树;将目标数据以及写地址携带在写请求中发送给特权虚拟机,以便特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。
[0052] 所述第四模块进一步用于,对目标数据进行Hash计算之前,采用预设对称加密算法,对目标数据进行加密;且,在将目标数据发送给特权虚拟机时,将加密后的目标数据发送给特权虚拟机。
[0053] 一种虚拟机架构下的特权虚拟机,该特权虚拟机包括:
[0054] 第一模块:保存每个虚拟磁盘对应的Hash树,所述Hash树为:采用预设Hash树构建算法,对该虚拟磁盘上的所有数据块进行Hash计算得到的;
[0055] 第二模块:当发现任一客户虚拟机启动时,将第一模块保存的各虚拟磁盘的Hash树的非叶节点加载到虚拟机监控器;
[0056] 第三模块:当接收到客户虚拟机发来的携带读地址的读请求时,根据该读地址,从对应虚拟磁盘上读取目标数据,向第一模块查询该目标数据所在虚拟磁盘的Hash树,将该目标数据对应的Hash树叶节点、该目标数据以及发来读请求的客户虚拟机地址发送给虚拟机监控器。
[0057] 所述第三模块进一步用于,在将目标数据对应的Hash树叶节点发送给虚拟机监控器的同时,将该目标数据对应的Hash树的其他叶节点一并发送给虚拟机监控器。
[0058] 所述第一模块进一步用于,接收虚拟机监控器发来的针对一虚拟磁盘的Hash树,以该Hash树更新自身保存该虚拟磁盘的Hash树。
[0059] 可见,本发明中,在虚拟机监控器上实现磁盘数据的安全保护,不需改变现有的虚拟机架构,也不改变客户虚拟机的磁盘访存路径,也减少了对客户虚拟机的磁盘性能的影响。

附图说明

[0060] 图1为本发明实施例提供的在Xen开源虚拟机架构下,访问磁盘数据时的安全保护方法流程图;
[0061] 图2为本发明实施例提供的在Xen开源虚拟机架构下,存储磁盘数据时的安全保护方法流程图;
[0062] 图3为本发明实施例提供的Xen开源虚拟机架构下的虚拟机监控器的组成示意图;
[0063] 图4为本发明实施例提供的Xen开源虚拟机架构下的特权虚拟机的组成示意图。

具体实施方式

[0064] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0065] 图1为本发明实施例提供的在Xen开源虚拟机架构下,访问磁盘数据时的安全保护方法流程图,如图1所示,其具体步骤如下:
[0066] 步骤100:初始时,对于特权虚拟机上的每个虚拟磁盘,采用预设Merkle哈希(Hash)树构建算法,为该虚拟磁盘上的数据块构建一棵Merkle Hash树,将该Hash树写入特权虚拟机的一个Hash文件,同时,将该虚拟磁盘对应的AES加密起始向量写入该Hash文件;在虚拟机监控器上配置特权虚拟机的每个虚拟磁盘对应的AES密钥。
[0067] 每个虚拟磁盘对应一棵Merkle Hash树,每棵Merkle Hash树对应一个Hash文件。Merkle Hash树的构建方法与现有技术相同。每棵Merkle Hash树由根节点、中间节点和叶节点组成。其中:
[0068] 叶节点:虚拟磁盘上的每个最小数据块对应的Hash值。即,若虚拟磁盘上有m(m≥1)个最小数据块,则该虚拟磁盘对应的Merkle Hash树就有m个叶节点。
[0069] 中间节点:对每一组相互关联的下一级节点进行Hash计算得到的Hash值。其中,下一级节点为叶节点或者中间节点。
[0070] 中间节点可能有多级,其中,第一级中间节点中的每个节点分别对应一组相互关联的叶节点,该中间节点的值是对该组内的所有叶节点的值进行Hash计算得到的;第二级中间节点中的每个节点分别对应一组相互关联的第一级中间节点,该第二级中间节点的值是对该组内的所有第一级中间节点的值进行Hash计算得到的,依此类推,直到得到所有中间节点。
[0071] 根节点:Merkle Hash树的最高级节点,对所有次高级节点进行Hash计算得到的Hash值。
[0072] 需要指出的是,Hash树的运算对象是AES加密后的数据。其中,每个虚拟磁盘对应一个AES密钥和一个AES加密起始向量。
[0073] 初始时,特权虚拟机上的各虚拟磁盘的Merkle Hash树的构建可由用户完成并配置到特权虚拟机上。
[0074] 步骤101:当特权虚拟机发现任一客户虚拟机启动时,特权虚拟机将各虚拟磁盘的Hash树的所有非叶节点以及AES加密起始向量加载到虚拟机监控器。
[0075] 非叶节点,即根节点和中间节点。
[0076] 客户虚拟机启动时,要与特权虚拟机进行交互,以获取初始配置,因此,特权虚拟机能够及时得知客户虚拟机启动。
[0077] 步骤102:当特权虚拟机接收到客户虚拟机发来的携带读地址的读请求时,特权虚拟机根据该读地址,从对应虚拟磁盘上读取目标数据。
[0078] 步骤103:特权虚拟机在自身查询该目标数据所在虚拟磁盘的Hash文件,得到该目标数据对应的Hash树的所有叶节点以及该虚拟磁盘的AES加密起始向量,将该目标数据、目标数据对应的Hash树的所有叶节点以及该虚拟磁盘的AES加密起始向量、发来读请求的客户虚拟机地址发送给虚拟机监控器;虚拟机监控器缓存该目标数据、目标数据对应的Hash树的所有叶节点以及该虚拟磁盘的AES加密起始向量、发来读请求的客户虚拟机地址。
[0079] 步骤104:虚拟机监控器根据特权虚拟机发来的目标数据对应的Hash树的所有叶节点,采用Merkle Hash树构建算法,计算该Hash树的所有中间节点及根节点,将计算得到的各中间节点和根节点与步骤101中自身保存的该目标数据所在虚拟磁盘的Hash树的各中间节点和根节点进行匹配。
[0080] 步骤105:虚拟机控制器判断是否完全匹配上,若是,执行步骤106;否则,执行步骤109。
[0081] 步骤106:虚拟机监控器确定该目标数据对应的Hash树完整,采用MerkleHash树构建算法,对特权虚拟机发来的目标数据进行Hash计算,并在特权虚拟机发来的该目标数据对应的Hash树的所有叶节点中,查找该目标数据对应的叶节点。
[0082] Hash树完整说明该Hash树没有被恶意攻击过。
[0083] 步骤107:虚拟机监控器判断计算得到的Hash值与查找到的叶节点是否匹配,若是,执行步骤108;否则,执行步骤109。
[0084] 步骤108:虚拟机监控器确定该目标数据完整,在自身查找到该目标数据所在虚拟磁盘的AES密钥,根据该AES密钥和该虚拟磁盘的AES加密起始向量,对目标数据进行解密,将解密后的目标数据发送给请求的客户虚拟机,本流程结束。
[0085] 目标数据完整说明该目标数据没有被恶意攻击过。
[0086] 步骤109:虚拟机监控器向客户虚拟机返回读失败响应,并提示用户Hash树异常或目标数据异常。
[0087] 图2为本发明实施例提供的在Xen开源虚拟机架构下,存储磁盘数据时的安全保护方法流程图,如图2所示,其具体步骤如下:
[0088] 步骤201:客户虚拟机发出写请求,该写请求中包含要写入的目标数据和写地址。
[0089] 步骤202:虚拟机监控器截获该写请求,缓存目标数据,根据写地址,在自身查找到该写地址对应虚拟磁盘的AES密钥,并在缓存中查找该写地址对应虚拟磁盘的AES加密起始向量,使用该AES密钥和该AES加密起始向量,对目标数据进行加密。
[0090] 步骤203:虚拟机监控器采用Merkle Hash树构建算法,对加密后的目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点。
[0091] 步骤204:虚拟机监控器根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以步骤203得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用Merkle Hash树构建算法,对从特权虚拟机获取的Hash树的中间节点和根节点进行更新,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新自身保存的该Hash树;同时,虚拟机监控器以更新的Hash树的根节点和中间节点更新自身保存的该Hash树的根节点和中间节点。
[0092] 步骤205:虚拟机监控器将加密后的目标数据以及写地址携带在写请求中发送给特权虚拟机,特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。
[0093] 需要指出的是,本发明实施例不仅适用于Xen开源虚拟机架构,只要是包含特权虚拟机和虚拟机监控器的虚拟机架构本发明都适用。本发明实施例采用的加密算法也不限于AES算法,只要是对称加密算法都可以。
[0094] 从图1、2所示实施例可以看出:
[0095] 本发明实施例是基于虚拟机监控器安全的前提下,不改变现有虚拟机架构,即虚拟机监控器仍然运行在CPU的根模式Ring-1特权层,特权虚拟机和客户虚拟机仍然运行在CPU的非根模式Ring-0特权层,在虚拟机监控器上实现客户虚拟机的磁盘数据安全保护功能,因此客户虚拟机的磁盘访存路径并不会改变,从而磁盘数据安全保护处理对客户虚拟机的磁盘性能的影响减少,其中,磁盘性能开销仅来自数据的隐私性及完整性保护。
[0096] 图3为本发明实施例提供的Xen开源虚拟机架构下的虚拟机监控器的组成示意图,如图3所示,该虚拟机监控器主要包括:第一模块31和第二模块32,其中:
[0097] 第一模块31:接收特权虚拟机发来的客户虚拟机要读取的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址,将该目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址转发给第二模块32。
[0098] 其中,目标数据为:特权虚拟机接收到客户虚拟机发来的携带读地址的读请求后,根据该读地址从自身的虚拟磁盘上读取的;Hash树为:采用预设Hash树构建算法,对该目标数据所在虚拟磁盘上的所有数据块进行Hash计算得到的。
[0099] 第二模块32:接收第一模块31发来的目标数据、该目标数据对应的Hash树叶节点、以及该客户虚拟机的地址,对该目标数据进行Hash计算,将计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点进行匹配,判断是否匹配上,若是,则根据客户虚拟机的地址,将该目标数据发送给客户虚拟机。
[0100] 图3所示的虚拟机监控器进一步包括:第三模块,用于接收并保存特权虚拟机在客户虚拟机启动时发来的各虚拟磁盘的Hash树的所有非叶节点;其中,每个虚拟磁盘对应一棵Hash树;
[0101] 且,第一模块31进一步用于,在接收特权虚拟机发来的该目标数据对应的Hash树叶节点的同时,接收特权虚拟机发来的该目标数据对应的Hash树的其他叶节点,并将该目标数据对应的Hash树的其他叶节点发送给第二模块32;
[0102] 且,第二模块32进一步用于,采用预设Hash树构建算法,对特权虚拟机发来的该目标数据对应的Hash树的所有叶节点进行Hash计算,判断计算得到的根节点和所有中间节点是否与第三模块保存的该目标数据所在虚拟磁盘的Hash树的根节点和所有中间节点匹配,若是,执行对所述目标数据进行Hash计算的动作。
[0103] 第二模块32进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点不匹配时,向客户虚拟机返回读失败指示。
[0104] 第一模块31接收到的特权虚拟机发来的客户虚拟机要读取的目标数据可以为:采用对称加密算法加密后的数据;
[0105] 且,第二模块32进一步用于,当计算得到的Hash值与特权虚拟机发来的该目标数据对应的Hash树叶节点匹配时,采用对称加密算法对该目标数据进行解密,将该解密后的目标数据发送给客户虚拟机。
[0106] 图3所示的虚拟机监控器进一步包括:第四模块,用于截获客户虚拟机发出的写请求,该写请求包含要写入的目标数据及写地址,缓存该目标数据,采用预设Hash树构建算法,对目标数据进行Hash计算,得到该目标数据所在虚拟磁盘的Hash树的部分叶节点;根据写地址,从特权虚拟机获取该目标数据所在虚拟磁盘的Hash树的所有叶节点,以计算得到的叶节点更新从特权虚拟机获取的Hash树的对应叶节点,同时采用预设Hash树构建算法,更新第三模块保存的该目标数据所在虚拟磁盘的Hash树的非叶节点,将更新后的Hash树发送给特权虚拟机,以便特权虚拟机更新其保存的该Hash树;将目标数据以及写地址携带在写请求中发送给特权虚拟机,以便特权虚拟机将该目标数据写入对应虚拟磁盘的对应位置。
[0107] 第四模块进一步用于,对目标数据进行Hash计算之前,采用预设对称加密算法,对目标数据进行加密;且,在将目标数据发送给特权虚拟机时,将加密后的目标数据发送给特权虚拟机。
[0108] 图4为本发明实施例提供的虚拟机架构下的特权虚拟机,如图4所示,该特权虚拟机主要包括:第一模块41、第二模块42和第三模块43,其中:
[0109] 第一模块41:保存每个虚拟磁盘对应的Hash树,其中,Hash树为:采用预设Hash树构建算法,对该虚拟磁盘上的所有数据块进行Hash计算得到的。
[0110] 第二模块42:当发现任一客户虚拟机启动时,将第一模块41保存的各虚拟磁盘的Hash树的非叶节点加载到虚拟机监控器。
[0111] 第三模块43:当接收到客户虚拟机发来的携带读地址的读请求时,根据该读地址,从对应虚拟磁盘上读取目标数据,向第一模块41查询该目标数据所在虚拟磁盘的Hash树,将该目标数据对应的Hash树叶节点、该目标数据以及发来读请求的客户虚拟机地址发送给虚拟机监控器。
[0112] 第三模块43进一步用于,在将目标数据对应的Hash树叶节点发送给虚拟机监控器的同时,将该目标数据对应的Hash树的其他叶节点一并发送给虚拟机监控器。
[0113] 第一模块41进一步用于,接收虚拟机监控器发来的针对一虚拟磁盘的Hash树,以该Hash树更新自身保存该虚拟磁盘的Hash树。
[0114] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。