一种虚拟磁盘文件保护方法、装置、设备及可读存储介质与流程

文档序号:14653820发布日期:2018-06-08 22:36阅读:167来源:国知局
一种虚拟磁盘文件保护方法、装置、设备及可读存储介质与流程

本发明涉及虚拟化安全技术领域,特别是涉及一种虚拟磁盘文件保护方法、装置、设备及可读存储介质。



背景技术:

随着云计算和大数据的兴起,多数业务系统已经由原有的搭建在物理平台上的系统中迁移至了虚拟系统环境中。

在虚拟系统中,Qemu尤其突出Qemu(虚拟操作系统模拟器)可以模拟X86、ARM等多种平台。Qemu也是KVM、Xen等Hypervisor核心组件。Qemu模拟出的设备很多需要独立的虚拟磁盘空间用于存放数据,而这些磁盘空间是以文件的形式存放在Qemu所在操作系统上的,因此一旦这些文件被窃取,Qemu上运行的虚拟机也将面临信息被窃取的风险。

现有的,Qemu也对这些磁盘文件进行加密保护的措施,但Qemu只负责使用密钥加解密,不负责密钥的管理,而这些密钥多是以明文的方式存放的系统文件中,这大大降低了Qemu中虚拟磁盘文件的安全性。

综上所述,如何有效地解决虚拟系统环境中磁盘文件安全等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种虚拟磁盘文件保护方法、装置、设备及可读存储介质,以提高虚拟系统环境中磁盘文件安全性。

为解决上述技术问题,本发明提供如下技术方案:

一种虚拟磁盘文件保护方法,包括:

读取预设软件密钥对应的目标密文;

使用预设硬件密钥对所述目标密文进行解密,获得所述软件密钥;

基于所述软件密钥对目标文件进行处理。

优选地,所述基于所述软件密钥对目标文件进行处理,包括:

基于所述软件密钥对目标文件进行加密并存入虚拟磁盘中。

优选地,所述基于所述软件密钥对目标文件进行处理,包括:

基于所述软件密钥对虚拟磁盘中存储的目标文件进行解密。

优选地,所述使用预设硬件密钥对所述目标密文进行解密,获得所述软件密钥,包括:

使用目标硬件设备中预设硬件密钥对所述目标密文解密,获得所述软件密钥。

优选地,在获得所述软件密钥之后,在基于所述软件密钥对需要写入虚拟磁盘的文件进行加密之前,还包括:

将所述软件密钥加载至Qemu内存中。

优选地,在获得所述软件密钥之后,还包括:

在关闭虚拟机时,基于所述软件密钥将驻留在内存中的虚拟磁盘数据加密并存储至虚拟磁盘文件中。

优选地,在所述读取预设软件密钥对应的目标密文之前,还包括:

创建硬件密钥和软件密钥;

使用所述硬件密钥为所述软件密钥进行加密,获得所述软件密钥对应的目标密文。

一种虚拟磁盘文件保护装置,包括:

目标密文读取模块,用于读取预设软件密钥对应的目标密文;

软件密钥获取模块,用于使用预设硬件密钥对所述目标密文进行解密,获得所述软件密钥;

目标文件处理模块,用于基于所述软件密钥对目标文件进行处理。

一种虚拟磁盘文件保护设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述虚拟磁盘文件保护方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述虚拟磁盘文件保护方法的步骤。

应用本发明实施例所提供的方法,读取预设软件密钥对应的目标密文;使用预设硬件密钥对目标密文进行解密,获得软件密钥;基于软件密钥对目标文件进行处理。使用预设硬件密钥将用于保护虚拟磁盘文件的软件密钥本身进行加密,使得虚拟系统中存储的软件密钥以密文的方式存在。软件密钥以密文的形式出现,在发生软件密钥被盗的情况下,因其是密文,盗取者也无法使用该软件密钥对虚拟磁盘文件进行解密,虚拟磁盘文件的安全性得到提升。

相应地,本发明还提供了一种虚拟磁盘文件保护装置、设备及计算机可读存储介质,具有上述技术效果,本发明在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种虚拟磁盘文件保护方法的实施流程图;

图2为本发明实施例中一种虚拟磁盘文件保护方法的添加配置信息示意图;

图3为本发明实施例中一种虚拟磁盘文件保护方法的具体实施流程图;

图4为本发明实施例中一种虚拟磁盘文件保护装置的结构示意图;

图5为本发明实施例中一种虚拟磁盘文件保护设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例中一种虚拟磁盘文件保护方法的流程图,该方法包括以下步骤:

S101、读取预设软件密钥对应的目标密文。

在本实施例中,可以预先设置硬件密钥和软件密钥,然后,使用硬件密钥对软件密钥进行加密,得到预设软件密钥对应的目标密文。目标密文可以直接存储在虚拟操作系统中。其中,硬件密钥对软件密钥进行加密的可以对称加密或非对称加密。

当需要使用软件密钥时,可以从虚拟操作系统中读取预设的软件密钥对应的目标密文。

S102、使用预设硬件密钥对目标密文进行解密,获得软件密钥。

使用预设硬件密钥对目标密文进行解密,可以获得软件密钥。具体而言,就是通过预设硬件密钥将加密后的软件密钥对应的密文进行解密,得到明文状态的软件密钥。

在本发明的一个实施例中,步骤S102可以包括:使用目标硬件设备中预设硬件密钥对目标密文解密,获得软件密钥。

在本实施例中,可以使用目标硬件设备预先设置的硬件密钥对目标密文进行解密,获得软件密钥。当然,可以使用相应的硬件密钥该软件密钥进行加密。其中,目标硬件设备可以为硬件密钥芯片或具备硬件加密功能的其他硬件设备。

S103、基于软件密钥对目标文件进行处理。

使用软件密钥对目标文件进行处理,其中,目标文件可以为虚拟系统中的虚拟磁盘文件,也可以为虚拟系统内存中的文件,即,目标文件可以为已加密文件,也可以为未加密文件。

在本发明的一个具体实施例中,步骤S103可以包括:基于软件密钥对目标文件进行加密并存入虚拟磁盘中。

当目标文件为待加密文件时,可以通过软件密钥对目标文件进行加密,并将加密之后的目标文件存入虚拟磁盘中。

相应地,步骤S103还可以包括:基于软件密钥对虚拟磁盘中存储的目标文件进行解密。

当目标文件为虚拟磁盘中已加密文件时,可以通过软件密钥对目标文件进行解密。

在本发明的一个实施例中,在获得软件密钥之后,在基于软件密钥对需要写入虚拟磁盘的文件进行加密之前,还可以将软件密钥加载至Qemu内存中。即,将软件密钥明文加载至Qemu内存中,供虚拟系统使用。

另外,在获得软件密钥之后,在关闭虚拟机时,基于软件密钥将驻留在内存中的虚拟磁盘数据加密并存储至虚拟磁盘文件中。考虑到虚拟系统可能对驻留在内存中的虚拟磁盘数据进行了相应操作,即驻留在内存中的虚拟磁盘数据可能已经被修改。未来保障虚拟磁盘文件的一致性,在关闭虚拟机时,基于软件密钥将驻留在内存中的虚拟磁盘数据进行加密,并将加密得到的数据文件存储在虚拟磁盘文件中。

在本发明的一个具体实施例中,在读取预设软件密钥对应的目标密文之前,可以创建硬件密钥和软件密钥,使用硬件密钥为软件密钥进行加密,获得软件密钥对应的目标密文。即,先创建硬件密钥和软件密钥,然后,使用硬件密钥将软件密钥进行加密,使从明文变为密文。

应用本发明实施例所提供的方法,读取预设软件密钥对应的目标密文;使用预设硬件密钥对目标密文进行解密,获得软件密钥;基于软件密钥对目标文件进行处理。使用预设硬件密钥将用于保护虚拟磁盘文件的软件密钥本身进行加密,使得虚拟系统中存储的软件密钥以密文的方式存在。软件密钥以密文的形式出现,在发生软件密钥被盗的情况下,因其是密文,盗取者也无法使用该软件密钥对虚拟磁盘文件进行解密,虚拟磁盘文件的安全性得到提升。

为了便于理解本发明实施例提供的虚拟磁盘文件保护方法,下面以以目标硬件设备为具体的TPM2.0芯片为例,对本发明实施例提供的虚拟磁盘文件保护方法进行详细说明。

在本实施例中,TPM2.0芯片中存储有用于加密软件密钥的硬件密钥。其中,TPM2.0为TCG(Trusted Computing Group,可信计算组织)发布可信芯片,它包含了密钥管理、授权管理、身份管理等多种密码学功能,同时支持国密SM算法系列。与传统的完全基于软件的加密方案相比,利用TPM2.0芯片能够为加密密钥提供更安全的保证,保证加密时的效率,更好的保护用户数据。即,本实施例为基于TPM2.0芯片保护Qemu虚拟设备磁盘文件的方法,借鉴Qemu原有的虚拟磁盘文件保护方法,并利用TPM2.0芯片完成密钥的管理与保护,保护Qemu虚拟磁盘文件不被窃取。

其核心思想为:当Qemu创建虚拟机前,首先创建一软件密钥,通过TPM2.0密钥管理模块使用已创建的TPM2.0硬件用户密钥加密该软件密钥,并将该软件密钥以密文的方式存放到系统的文件中。每次Qemu启动虚拟机时先获取该软件密钥的密文,然后通过TPM2.0硬件用户密钥解密至Qemu内存空间中。当虚拟设备需要写入或读取虚拟磁盘文件的内容时,由Qemu使用软件密钥加密或解密对应的数据,保证数据在内存中为虚拟设备可用的信息,数据存放到虚拟磁盘文件时为密文状态。

请参考图2,在Qemu部署完毕使用前,需要完成TPM芯片的初始化操作,包括获取用户身份,创建硬件密钥等操作。其具体实现如下:

设置用户密码:TPM2.0芯片初始状态下用户的密码为空,任何对象利用空授权操作芯片。Qemu要设置该密码,防止其他对象修改芯片中的敏感信息。可以通过TPM2.0指令TPM2_HierarchyChangeAuth设置用户密码。

创建芯片存储根密钥(Storage Root Key,SRK):TPM2.0芯片采用存储加密的方式保存密钥,即每一个密钥的私钥都由其父密钥加密保护。该结构的最顶层为根密钥,该密钥根据TPM中随机数计算而出,无法导出到TPM芯片外,因此TPM2.0芯片生成的密钥的私钥只能由该芯片使用。芯片存储根密钥可以作为后续用户密钥的父密钥。需要说明的是,芯片存储根密钥只能在TPM2.0芯片中使用,无法导出。这一特性,可以提升虚拟磁盘文件的安全性。

创建用户硬件密钥:由于芯片存储根密钥为TPM2.0芯片的根密钥,不建议直接用于加解密操作,可以以芯片存储根密钥为父密钥创建一用户硬件密钥,后续Qemu可直接使用该用户硬件密钥进行加解密操作。可通过TPM2.0指令TPM2_Create创建用户硬件密钥。为保证加密效率,可以创建对称密钥。需要说明的是,用户硬件密钥的作用同上文实施例中描述的硬件密钥。

加载用户硬件密钥并将用户硬件密钥设置为持久密钥:TPM2.0芯片中创建的用户硬件密钥并不能直接使用,需要TPM2_Load指令加载至TPM芯片,而且加载的密钥在TPM2.0芯片掉电后需要重新加载,为Qemu使用方便,通过TPM2_EvictControl指令即可将用户硬件密钥设置为持久对象,即使是TPM2.0芯片重启后无需加载即可使用。

创建软件密钥:为保证加密的效率,在创建软件密钥时,可以使用软件对称算法加密虚拟磁盘文件,通过Openssl即可完成软件密钥的创建及使用。

使用用户硬件密钥加密软件密钥:因Openssl创建的密钥以明文的方式存放在系统文件中。通过用户硬件密钥加密该软件密钥,并且只保留该软件密钥的目标密文。通过TPM2_EncryptDecrypt指令即可使用对称软件密钥加密指定内容。

初始化完毕后,Qemu即可创建并运行虚拟机。

请参考图3,在Qemu启动过程中,要将软件密钥解密至Qemu中,供Qemu后续加解密使用,其具体实现如下:

1、读取软件密钥密文:软件密钥对应的目标密文被保存到了系统文件中,可直接读取。

2、使用用户硬件密钥解密软件密钥:用户硬件密钥已经被设置为了芯片中的持久对象,可直接使用加解密数据。

3、加载软件密钥至Qemu内存中:软件密钥被解密后,Qemu直接将其加载至内存中,后续使用时直接使用内存中的软件密钥明文。

4、加解密数据:当模拟设备需要获取虚拟磁盘中的内容如目标文件时,Qemu会使用软件密钥解密磁盘中的数据,提供给模拟设备明文。当模拟设备向虚拟磁盘写入数据时,Qemu使用软件密钥加密待写入的数据,保证磁盘文件中存放的始终为密文。

5、虚拟机关闭:当虚拟机需要关闭时,Qemu使用软件密钥将驻留在内存中的虚拟磁盘数据加密,然后存放到虚拟磁盘文件中。

需要说明的是,在图2和图3中的各个判断步骤可以参照现有的判断方法,本发明实施例对比不再赘述。当解密目标明文失败时,可以对外输出虚拟机开启失败的提示信息。

在本实施例中,通过使用TPM2.0芯片中的硬件密钥对软件密钥进行加密,使得虚拟磁盘文件以密文的方式存在。另外,若要得到虚拟磁盘文件的明文需要硬件密钥先对软件密钥对应的目标密文进行解密之后,才能使用软件密钥对将虚拟磁盘文件转换为明文。又因硬件密钥本身存储在TPM2.0芯片中,由芯片上的用户密码保护。如此层层保护虚拟磁盘文件,提升了虚拟磁盘文件的安全性。

相应于上面的方法实施例,本发明实施例还提供了一种虚拟磁盘文件保护装置,下文描述的虚拟磁盘文件保护装置与上文描述的虚拟磁盘文件保护方法可相互对应参照。

参见图4所示,该装置包括以下模块:

目标密文读取模块201,用于读取预设软件密钥对应的目标密文;

软件密钥获取模块202,用于使用预设硬件密钥对目标密文进行解密,获得软件密钥;

目标文件处理模块203,用于基于软件密钥对目标文件进行处理。

应用本发明实施例所提供的技术方案,读取预设软件密钥对应的目标密文;使用预设硬件密钥对目标密文进行解密,获得软件密钥;基于软件密钥对目标文件进行处理。使用预设硬件密钥将用于保护虚拟磁盘文件的软件密钥本身进行加密,使得虚拟系统中存储的软件密钥以密文的方式存在。软件密钥以密文的形式出现,在发生软件密钥被盗的情况下,因其是密文,盗取者也无法使用该软件密钥对虚拟磁盘文件进行解密,虚拟磁盘文件的安全性得到提升。

在本发明的一种具体实施方式中,目标文件处理模块203,具体用于基于软件密钥对目标文件进行加密并存入虚拟磁盘中。

在本发明的一种具体实施方式中,目标文件处理模块203,具体用于基于软件密钥对虚拟磁盘中存储的目标文件进行解密。

在本发明的一种具体实施方式中,软件密钥获取模块202,具体用于使用目标硬件设备中预设硬件密钥对目标密文解密,获得软件密钥。

在本发明的一种具体实施方式中,还包括:

软件密钥加载模块,用于在获得软件密钥之后,在基于软件密钥对需要写入虚拟磁盘的文件进行加密之前,将软件密钥加载至Qemu内存中。

在本发明的一种具体实施方式中,还包括:

同步模块,用于在获得软件密钥之后,在关闭虚拟机时,基于软件密钥将驻留在内存中的虚拟磁盘数据加密并存储至虚拟磁盘文件中。

在本发明的一种具体实施方式中,还包括:

创建模块,用于在读取预设软件密钥对应的目标密文之前,创建硬件密钥和软件密钥,并,使用硬件密钥为软件密钥进行加密,获得软件密钥对应的目标密文。

相应于上面的方法实施例,本发明实施例还提供了一种虚拟磁盘文件保护设备,下文描述的一种虚拟磁盘文件保护设备与上文描述的一种虚拟磁盘文件保护方法可相互对应参照。

参见图5所示,该虚拟磁盘文件保护设备包括:

存储器D1,用于存储计算机程序;

处理器D2,用于执行计算机程序时实现上述方法实施例的虚拟磁盘文件保护方法的步骤。

相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种虚拟磁盘文件保护方法可相互对应参照。

一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的虚拟磁盘文件保护方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1