一种私有云计算应用中虚拟机镜像安全方法 技术领域 本发明涉及一种对私有云计算应用中的虚拟机镜像文件提供安全保护的方法, 该 安全方法基于动态分解和重组的方法, 对私有云导入导出的虚拟机镜像文件进行重组加 密, 使得即使虚拟机镜像文件被窃取或者流出私有云外部, 也会被其他虚拟化平台导入和 运行, 属于云计算技术领域。
背景技术
云计算 (Cloud computing), 是一种新兴的共享基础架构的方法, 可以将巨大的系 统池连接在一起以提供各种 IT 服务。它使得超级计算能力通过互联网自由流通成为了可 能。企业与个人用户无需再投入昂贵的硬件购置成本, 只需要通过互联网来购买租赁计算 力, “把你的计算机当做接入口, 一切都交给互联网吧” 。提供资源的网络被称为 “云” 。云计 算是网格计算、 分布式计算、 并行计算、 效用计算网络存储、 虚拟化负载均衡等传统计算机 技术和网络技术发展融合的产物。 它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统, 并借助 SAAS、 PAAS、 IAAS、 等先进的商业模式把这强大 的计算能力分布到终端用户手中。
目前, 云计算按照数据的面向对象可以分为公有云、 私有云、 混合云。公有云是为 公共普通客户使用而构建的, 计算资源为所有的人共享。私有云是为一个客户或者企业单 独使用而构建的, 因而提供对数据、 安全性和服务质量有更高的要求。 混合云是公有云和私 有云的混合服务模式。
虚拟机镜像是以文件的形式存储的虚拟机信息, 包括操作系统文件, 其他数据, 应 用程序等, 被按照特定的格式写入到文件中, 如: VHD(Virtual HardDisk) 是微软提出的标 准, VMX 是 VM-ware 提出的标准。这种方式的好处在于文件的灵活拷贝和易于管理。目前 在 IAAS 云计算服务中, 虚拟机镜像的导入导出用以实现虚拟机的快速部署和迁移, 被大量 的应用在实际虚拟化管理中。
然而, 在私有云的应用模式下, 当虚拟机镜像被带出私有云, 或者被窃取到私有云 外, 由于标准导出的镜像可以直接在其他的虚拟化平台上导入, 并启动和使用, 这样在私有 云中的一些私有和机密信息, 就可以被私有云外的用户窥探, 如果是恶意用户, 带来的安全 隐患非常大。 如果该镜像被再次伪装或者加入了一些恶意的不符合该私有云安全性限制条 件的服务或者代码, 再次进入到该私有云之后将会对整个私有云安全造成威胁, 带来的潜 在后果非常大。
因此, 我们有必要对私有云计算应用中的虚拟机镜像提供有效地安全保障方案。 发明内容 本发明的目的在于解决现有技术中存在的问题, 提供一种对私有云计算应用中的 虚拟机镜像文件提供安全保护的方法, 该安全方法基于动态分解和重组的方法, 对私有云 导入导出的虚拟机镜像文件进行重组加密, 使得即使虚拟机镜像文件被窃取或者流出私有
云外部, 也会被其他虚拟化平台导入和运行。
本发明的目的是通过下述技术方案予以实现的 :
一种私有云计算应用中虚拟机镜像安全加密方法, 其特征在于 : 包括如下具体步 骤:
(1) 通过随机数生成器生成一个随机整数, 把原始的虚拟机镜像和该随机整数输 入到分解算法生成器中 ;
(2) 分解算法生成器中根据所述随机整数的数值大小, 通过乱序数组排列, 生成 一个随机乱序, 并记录之, 假设为 sequence ; 并按照该随机乱序 sequence 把原始的虚拟机 镜像文件 Old VM Image 重新分解组合成一个新的镜像文件 New VM Image ; 把该随机乱序 sequence 输入到文件加密器中 ;
(3) 由 UUID 生成器为这个虚拟机镜像生成一个唯一标识 ;
(4) 通过 Hash 算法将所述唯一标识转换生成一个整数标识, 并将该整数标识输入 到文件加密器中 ;
(5) 文件加密器对步骤 (2) 中输入的随机乱序 sequence 进行加密, 生成加密文件 ; 根据步骤 (4) 中输入的整数标识建立由随机乱序 sequence 生成的加密文件与其公钥之间 的对应关系 ; 并将该加密文件及公钥分别存储于加密文件池和密钥池中 ;
(6) 将所述分解组合后生成的新镜像文件 New VM Image 和 UUID 生成的唯一标识 组合起来, 生成最终的安全虚拟机镜像 Safe VM Image。
所述步骤 (4) 中的 HASH 算法可以采用 MD4、 MD5、 SHA-256、 SHA-384 或 SHA-512 算 法。
所述步骤 (5) 中所采用的公钥加密算法可以采用 RSA 公钥算法或 DSA 公钥算法。
所述加密方法的步骤 (5) 中除了可以用整数标识建立由随机乱序 sequence 生成 的加密文件与其公钥之间的对应关系外, 还可以加入时间参数用以建立加密文件与公钥之 间的对应关系。
所述步骤 (6) 中所述唯一标识可以插入在所述新镜像文件 New VMImage 的头部、 尾部或中间部。
一种私有云计算应用中虚拟机镜像安全解密方法, 其特征在于 : 包括如下具体步 骤:
(1) 从安全虚拟机镜像 Safe VM Image 中获取 UUID 生成的唯一标识 ;
(2) 将安全虚拟机镜像 Safe VM Image 中的唯一标识分离, 获得经过分解组合的新 镜像文件 New VM Image ;
(3) 通过 Hash 算法将所述步骤 (1) 获取的唯一标识转换为整数标识, 并根据该整 数标识在加密文件池中查找相对应的加密文件 ;
(4) 如果未找到相对应的加密文件, 则认为该安全虚拟机镜像 SafeVM Image 为无 效虚拟机镜像 ; 如果找到相对应的加密文件, 则提取该加密文件并执行步骤 (5) ;
(5) 通过该整数标识在密钥池中查找相关公钥, 并解密步骤 (4) 所提取的加密文 件, 获得随机乱序 sequence ;
(6) 通过该随机乱序 sequence 对步骤 (2) 所获得的经过分解组合的新镜像文件 New VM Image 进行反向重组并构建出原始虚拟机镜像文件 Old VM Image ;(7) 判断该原始虚拟机镜像文件 Old VM Image 是否为标准虚拟机镜像文件 ; 如果 不是, 则认为该安全虚拟机镜像 Safe VM Image 为无效虚拟机镜像 ; 如果是, 则将该原始虚 拟机镜像文件 Old VM Image 导入私有云。
所述步骤 (3) 中的 HASH 算法可以采用 MD4、 MD5、 SHA-256、 SHA-384 或 SHA-512 算 法。
本发明的有益效果是 : 这种动态分解组合的方法对私有云的虚拟机镜像文件进行 安全加密, 既可以避免黑客在私有云外运行并使用该虚拟机, 还可以从如下几个方面防止 黑客通过伪造, 或者猜解的方法攻击。 附图说明
图 1 为私有云计算应用中虚拟机镜像安全加密方法流程图 ;
图 2 为私有云计算应用中虚拟机镜像安全解密方法流程图 ;
图 3 为镜像文件与唯一标识组合示意图。 具体实施方式 下面结合附图和实施例对本发明作进一步描述。
如前所述, 本发明设计了一种对私有云计算应用中的虚拟机镜像文件提供安全保 护的方法, 该安全方法基于动态分解和重组的方法, 对私有云导入导出的虚拟机镜像文件 进行重组加密, 使得即使虚拟机镜像文件被窃取或者流出私有云外部, 也会被其他虚拟化 平台导入和运行。
图 1 为私有云计算应用中虚拟机镜像安全加密方法流程图。如图所示, 该安全加 密方法包括如下具体步骤 :
(1) 通过随机数生成器生成一个随机整数, 把原始的虚拟机镜像和该随机整数输 入到分解算法生成器中 ;
这里, 该随机数生成器所生成的随机整数为原始的虚拟机镜像文件要被分解成的 份数, 也即所有片段序号的数组大小。一般取值在 100 到 100000 之间, 其具体取值的范围 可以根据所需的安全级别不同进行调整, 取值范围越大其安全级别越高, 反之则越小。
(2) 分解算法生成器中根据所述随机整数的数值大小, 通过乱序数组排列, 生成 一个随机乱序, 并记录之, 假设为 sequence ; 并按照该随机乱序 sequence 把原始的虚拟机 镜像文件 Old VM Image 重新分解组合成一个新的镜像文件 New VM Image ; 把该随机乱序 sequence 输入到文件加密器中 ;
这里, 原始的虚拟机镜像文件 Old VM Image 按照随机乱序 sequence 进行分解、 重 组, 成为一个新的镜像文件 New VM Image。 该镜像文件 New VM Image 由于已经被打乱重组, 因此不会被窃取者通过其他的虚拟化平台上导入, 也不会被利用加载其他恶意代码威胁整 个私有云的安全。
(3) 由 UUID 生成器为这个虚拟机镜像生成一个唯一标识 ;
UUID(Universally Unique Identifier), 通用唯一识别码。它让分布式系统中 的所有元素, 都能有唯一的辨识资讯, 而不需要透过中央控制端来做辨识资讯的指定。如 此一来, 每个人都可以建立不与其它人冲突的 UUID。在这样的情况下, 就不需考虑数据库
建立时的名称重复问题。目前最广泛应用的 UUID, 即是微软的 Microsoft ′ s Globally UniqueIdentifiers(GUIDs), 而其他重要的应用, 则有 Linux ext2/ext3 档案系统、 LUKS 加 密分割区、 GNOME、 KDE、 Mac OS X 等等。
(4) 通过 Hash 算法将所述唯一标识转换生成一个整数标识, 并将该整数标识输入 到文件加密器中 ;
这里, 通过 Hash 算法将唯一标识转换成一个整数标识, 主要是因为由 UUID 生成的 唯一标识一般为 128bits。但实际应用中并不会有那么多的虚拟机。为了在以后更快速的 查找对应的分解算法文件, 并且不再保存 UUID 副本, 加强安全性, 我们采用 Hash 的方法, 为 此唯一标识生成一个 100000 以内的整数。 Hash 函数的值域范围选择根据安全级别不同, 和 私有云的容量差异, 选择不同的 Hash 函数生成不同的值域。值域越大, 安全性越好, 私有云 容量越大。
(5) 文件加密器对步骤 (2) 中输入的随机乱序 sequence 进行加密, 生成加密文件 ; 根据步骤 (4) 中输入的整数标识建立由随机乱序 sequence 生成的加密文件与其公钥之间 的对应关系 ; 并将该加密文件及公钥分别存储于加密文件池和密钥池中 ;
(6) 将所述分解组合后生成的新镜像文件 New VM Image 和 UUID 生成的唯一标识 组合起来, 生成最终的安全虚拟机镜像 Safe VM Image。( 如图 3 所示 ) 按照上面的做法, 一个安全的虚拟机镜像文件就生成成功了。该文件已经是数据 被以某种粒度粉碎的 ( 和切分原始文件的块数有关 ), 黑客即使拿到这个虚拟机镜像文件, 也是无法启动和使用的。同时, 由于切分算法文件只有私有云系统中有, 而且是加密过的, 那实际上即使内部的取得分解算法文件也不知道真实的排序组合是什么, 从而更进一步的 加强了安全性。这样我们可以保证在私有云外无法使用云内部虚拟机, 而造成信息泄露或 者通过利用该镜像进行攻击。
我们通过上述动态分解和重组的方法对私有云的虚拟机镜像进行安全加密, 保证 在私有云外无法使用云内部虚拟机, 而造成信息泄露或者通过利用该镜像进行攻击。如 果用户想在私有云内部再次使用到该镜像, 可以把上述所生成的安全虚拟机镜像 Safe VM Image 通过反向重组并构建出标准的虚拟机镜像再导入私有云。其具体加载流程如图 2 所 示, 包括如下步骤 :
(1) 从安全虚拟机镜像 Safe VM Image 中获取 UUID 生成的唯一标识 ;
(2) 将安全虚拟机镜像 Safe VM Image 中的唯一标识分离, 获得经过分解组合的新 镜像文件 New VM Image ;
(3) 通过 Hash 算法将所述步骤 (1) 获取的唯一标识转换为整数标识, 并根据该整 数标识在加密文件池中查找相对应的加密文件 ;
(4) 如果未找到相对应的加密文件, 则认为该安全虚拟机镜像 SafeVM Image 为无 效虚拟机镜像 ; 如果找到相对应的加密文件, 则提取该加密文件并执行步骤 (5) ;
(5) 通过该整数标识在密钥池中查找相关公钥, 并解密步骤 (4) 所提取的加密文 件, 获得随机乱序 sequence ;
(6) 通过该随机乱序 sequence 对步骤 (2) 所获得的经过分解组合的新镜像文件 New VM Image 进行反向重组并构建出原始虚拟机镜像文件 Old VM Image ;
(7) 判断该原始虚拟机镜像文件 Old VM Image 是否为标准虚拟机镜像文件 ; 如果
不是, 则认为该安全虚拟机镜像 Safe VM Image 为无效虚拟机镜像 ; 如果是, 则将该原始虚 拟机镜像文件 Old VM Image 导入私有云。
这里, 将标准的虚拟机镜像文件导入私有云的过程为现有技术, 我们在此就不再 敖述。
由此可见, 采用本发明这种动态分解组合的方法对私有云的虚拟机镜像文件进行 安全加密, 既可以避免黑客在私有云外运行并使用该虚拟机, 还可以从如下几个方面防止 黑客通过伪造, 或者猜解的方法攻击。
1、 假设黑客自己生成一个 UUID 唯一标识并加入到自己伪造好的虚拟机镜像中的 时候, 在私有云校验的过程中, UUID 唯一标识并非私有云产生的 ( 而且由于重复的可能性 在计算上不可能 ), 直接就会提示失败, 并认为镜像不合法。
2、 假设黑客通过默写途径, 取得了私有云内部 UUID 信息, 但由于无法知道镜像重 组序列, 这样私有云根据内部绑定的重组序列重组这个伪造的镜像, 而生成的镜像一定是 非标准的镜像, 同样也会被认为是不合法的镜像。
3、 假设黑客取得组合序列, 但由于被加密, 而无法取得公钥, 黑客还是无法产生正 确的组合, 会在私有云中的反向组合的时候失败。 4、 假设黑客取得了组合序列的最终序列, 但由于不知道 UUID( 因为 UUID 根本就是 临时的, 由 UUID 生成器传递给哈希函数之后就不会再存在 ), 还是会在最开始的校验的时 候就会失败, 会被认为是不合法的镜像。
另外, 上述对虚拟机镜像文件的加密和解密过程中, 许多所采用的算法和处理方 式, 事实上有很多等效替换的方案。我们在这里列举一些可行的替换方案。
所述 HASH 算法可以采用 MD4、 MD5、 SHA-256、 SHA-384 或 SHA-512 算法。
所述加密方法的步骤 (5) 中所采用的公钥加密算法可以采用 RSA 公钥算法或 DSA 公钥算法。
所述加密方法的步骤 (5) 中除了可以用整数标识建立由随机乱序 sequence 生成 的加密文件与其公钥之间的对应关系外, 还可以加入时间参数用以建立加密文件与公钥之 间的对应关系。
所述加密方法的步骤 (6) 中所述唯一标识可以插入在所述新镜像文件 New VM Image 的头部、 尾部或中间部。
综上所述, 本发明所设计的对私有云计算应用中的虚拟机镜像文件提供安全保护 的方法, 该安全方法基于动态分解和重组的方法, 对私有云导入导出的虚拟机镜像文件进 行重组加密, 使得即使虚拟机镜像文件被窃取或者流出私有云外部, 也会被其他虚拟化平 台导入和运行。 上述所给出的加密、 解密技术方案仅为本发明的典型实施例, 并不用以限定 本发明的保护范围。本领域一般技术人员在此设计思想之下所作任何不具有创造性的改 造, 均应视为在本发明的保护范围之内。