虚拟机系统的保护方法和装置
技术领域
本发明一般地涉及计算机技术领域,更具体地,涉及虚拟机系统的保护方法和装置。
背景技术
虚拟机系统(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
通过虚拟机系统软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机系统完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。对于用户而言,它只是运行在物理计算机上的一个应用程序,但是对于在虚拟机系统中运行的应用程序而言,它就是一台真正计算机。因此,当在虚拟机系统中进行软件评测时,可能系统一样会崩溃;但是,崩溃的只是虚拟机系统上的操作系统,而不是物理计算机上的操作系统,并且,使用虚拟机系统的“Undo”(恢复)功能,可以马上恢复虚拟机系统到安装软件之前的状态。
在现有技术中,提供了一种基于虚拟机的防火墙系统,其中,包括内核系统,防火墙和客户操作系统,所述内核系统设置在磁盘的安全分区中,客户操作系统为由用户直接使用的操作系统,内核系统和客户操作系统之间采用虚拟网络连接,使得客户操作系统的网络访问都经过了内核系统转发,所述防火墙安装在内核系统上,使得客户操作系统的网络访问经内核系统转发后受到防火墙的控制。该技术方案能够在虚拟机运行期间保护虚拟机。
然而,虚拟机系统在关闭之后,防火墙系统也随之一起关闭,而物理主机不一定关机,因此在虚拟机系统关闭之后,如果物理主机没有关机,则虚拟机系统的系统配置文件和数据文件具有被篡改、恶意删除或者增加的风险,而不能对关闭之后的虚拟机系统进行保护。
发明内容
针对现有技术中的防火墙系统对虚拟机关机之后无法对虚拟机系统的进行保护的缺陷,本发明提出了能够解决上述缺陷的虚拟机系统的保护方法和装置。
根据本发明的一方面,提供了一种虚拟机系统的保护方法,包括:在虚拟机系统关闭之前,将虚拟机系统进行镜像备份以生成备份虚拟机系统;对备份虚拟机系统进行哈希计算并生成第一哈希计算结果;以及对第一哈希计算结果和备份虚拟机系统进行加密和存储。
优选地,保护方法进一步包括:在启动虚拟机系统时,对虚拟机系统进行哈希计算并生成第二哈希计算结果;以及将第一哈希计算结果和第二哈希计算结果进行比较,并根据比较结果启动虚拟机系统。
优选地,在进行比较计算之前,对第一哈希计算结果进行解密。
优选地,当比较结果为第一哈希计算结果和第二哈希计算结果不一致时,对加密的备份虚拟机系统进行解密并利用解密后的备份虚拟机系统恢复虚拟机系统,然后启动关闭之前的虚拟机系统。
优选地,当比较结果为第一哈希计算结果和第二哈希计算结果一致时,直接启动虚拟机系统。
优选地,对备份虚拟机系统和第一哈希计算结果进行加密和解密由加密卡来实现。
优选地,通过存储装置对第一哈希计算结果和备份虚拟机系统进行存储,存储装置为本地磁盘、可移动存储装置或者通过网络连接的远程存储装置。
根据本发明的另一方面,提供了一种虚拟机系统的保护装置,包括:备份模块,用于在虚拟机系统关闭之前,将关闭之前的虚拟机系统进行镜像备份以生成备份虚拟机系统;计算模块,用于对备份虚拟机系统进行哈希计算并生成第一哈希计算结果;以及加密及存储模块,用于对第一哈希计算结果和备份虚拟机系统进行加密和存储。
优选地,计算模块还用于在启动虚拟机系统时,对虚拟机系统进行哈希计算并生成第二哈希计算结果;以及保护装置还包括比较及启动模块,用于将第一哈希计算结果和第二哈希计算结果进行比较,并根据比较结果启动虚拟机系统。
优选地,加密及存储模块包括加密子模块和存储子模块,其中,加密子模块用于在进行比较计算之前,对第一哈希计算结果进行解密;以及加密子模块还用于对备份虚拟机系统进行解密。
优选地,比较及启动模块包括:启动子模块,用于当比较结果为第一哈希计算结果和第二哈希计算结果不一致时,对加密的备份虚拟机系统进行解密并利用解密后的备份虚拟机系统恢复虚拟机系统,然后启动关闭之前的虚拟机系统;以及当比较结果为第一哈希计算结果和第二哈希计算结果一致时,直接启动虚拟机系统。
利用本发明的虚拟机系统的保护方法和保护装置,可以在虚拟机关闭之后,对虚拟机系统进行镜像备份和加密存储,从而对关闭之前的虚拟机进行保护。在启动虚拟机系统时,对虚拟机系统在关闭之后,虚拟机系统的系统配置文件和数据文件是否被篡改、恶意删除或者增加进行检测,如果虚拟机系统的系统配置文件和数据文件具有修改,则将该虚拟机系统恢复为关闭之前的状态,从而实现了对虚拟机系统在关闭之后的进一步保护。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。在附图中:
图1为根据本发明的实施例的虚拟机系统的保护方法的整体流程图;
图2为根据本发明的实施例的虚拟机系统的保护方法的具体流程图;
图3为根据本发明的实施例的虚拟机系统的保护装置的整体结构图;以及
图4为根据本发明的实施例的虚拟机系统的保护装置的具体结构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的实施例的虚拟机系统的保护方法的整体流程图。虚拟机系统的保护方法100包括以下步骤:
在步骤S102中,在虚拟机系统关闭之前,将虚拟机系统进行镜像备份以生成备份虚拟机系统。虚拟机系统包括虚拟机的系统配置文件和数据文件。在虚拟机系统关闭之前,为了对虚拟机的系统配置文件和数据文件进行保护,对虚拟机的系统进行镜像备份,从而生成镜像备份的备份虚拟机系统,以备启动时使用。
在步骤S104中,对备份虚拟机系统进行哈希计算并生成第一哈希计算结果。哈希计算为HASH计算,包括多种HASH计算,其中,HASH主要用于信息安全领域中加密算法,它把一些不同长度的信息转化成杂乱的128位的编码里,叫做HASH值。也可以说,HASH就是找到一种数据内容和数据存放地址之间的映射关系。MD5Hash算法的“数字指纹”特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5checksum的命令。
在步骤S106中,对第一哈希计算结果和备份虚拟机系统进行加密和存储。为了对虚拟机系统进行保护,将备份虚拟机系统进行加密并将加密的虚拟机进行存储。为了确保哈希值准确无误,将该哈希计算结果进行加密并将加密的哈希计算结果进行存储。
利用本发明的实施例的虚拟机系统的保护方法,可以通过对备份虚拟机系统和备份虚拟机系统的哈希计算结果进行加密和存储,来确保备份虚拟机系统的不被篡改、恶意删除和添加等,从而实现对虚拟机系统的保护。
图2为根据本发明的实施例的虚拟机系统的保护方法的具体流程图。在优选实施例中,虚拟机系统的保护方法200包括:在步骤202中,在虚拟机系统关闭之前,将虚拟机系统进行镜像备份以生成备份虚拟机系统;在步骤204中,对备份虚拟机系统进行哈希计算并生成第一哈希计算结果;在步骤206中,对第一哈希计算结果和备份虚拟机系统进行加密和存储。具体地,对备份虚拟机系统和第一哈希计算结果进行加密由加密卡来实现。加密卡速度快,加密卡是利用密钥加密方式进行工作的,所以解密时需要本加密卡进行解密,如果利用其它加密卡进行解密,则需要本加密卡与其它加密卡之间的密钥就交换,因此,加密卡的安全性非常高。将备份虚拟机系统和第一哈希计算结果传输至加密卡,通过加密卡进行加密,以确保第一哈希计算结果和备份虚拟机系统保持为关闭之前的虚拟机系统而不会被篡改、恶意删除或者添加。通过存储装置对第一哈希计算结果和备份虚拟机系统进行存储,存储装置为本地磁盘、可移动存储装置或者通过网络连接的远程存储装置。因此,加密卡将加密的第一哈希计算结果和备份的虚拟机系统通过物理主机传送至本地磁盘和可移动存储装置并进行存储,可选地,加密卡通过因特网、局域网、无线网络等将加密的第一哈希计算结果和备份的虚拟机系统传送至与物理主机连接的远程存储装置并进行存储,例如,传送至云存储中心并进行存储。
虚拟机系统的保护方法200还包括:在步骤208中,在启动虚拟机系统时,对虚拟机系统进行哈希计算并生成第二哈希计算结果。在启动虚拟机系统时,为了确定虚拟机系统在关机之后到启动时的时间段内是否被篡改、恶意删除或者添加等,首先对虚拟机系统进行与步骤204中的哈希计算相同的哈希计算以获取第二哈希计算结果。
在步骤210中,在进行比较计算之前,对第一哈希计算结果进行解密。为了确定虚拟机系统在关机之后,是否具有改动,需要将关机之前的虚拟机系统的哈希结果和启动时的虚拟机系统的哈希计算结果进行比较,所以将加密和存储的哈希计算结果从存储哈希计算结果的存储装置中提取加密的哈希计算结果,并通过加密卡进行解密,以将解密后的第一哈希计算结果作为比较基准。
在步骤212中,将第一哈希计算结果和第二哈希计算结果进行比较,并根据比较结果启动虚拟机系统。具体地,读取解密后的第一哈希计算结果,将第一哈希计算结果和第二哈希计算结果进行比较,从而获取计算结果,并根据获取的计算结果启动虚拟机系统。
当比较结果为第一哈希计算结果和第二哈希计算结果不一致时,对加密的备份虚拟机系统进行解密并利用解密后的备份虚拟机系统恢复虚拟机系统,然后启动关闭之前的虚拟机系统。具体地,比较结果为第一哈希计算结果和第二哈希计算结果不一致时,将加密和存储的备份虚拟机系统从存储备份虚拟机系统的存储装置中提取加密的备份虚拟机系统,并通过加密卡进行解密,然后,利用解密后的备份虚拟机系统将被篡改或者被破坏的虚拟机系统恢复成关闭之前的虚拟机系统,并启动关闭之前的虚拟机系统或者恢复以后的虚拟机系统。从而通过这种恢复方法来保护虚拟机系统。
此外,当比较结果为第一哈希计算结果和第二哈希计算结果一致时,直接启动虚拟机系统。
利用本发明的实施例的虚拟机系统的保护方法,在关闭之前对虚拟机系统进行备份,并对备份的虚拟机系统进行哈希计算,然后将哈希计算结果和备份的虚拟机系统共同进行加密和存储,从而保证备份的虚拟机系统和作为比较基准的哈希计算结果的准确性。然后,在使用虚拟机系统时,即,在虚拟机启动时,对虚拟机系统进行哈希计算,并将哈希计算结果与之前的哈希计算结果进行比较,根据比较结果来确定,当虚拟机系统被篡改或者被破坏时,将被篡改或者被破坏的虚拟机系统恢复为关机之前的虚拟机系统,从而保证启动的虚拟机系统与关闭之前的虚拟机系统相同,来实现对关闭之前和启动时的虚拟机系统进行保护。
图3为根据本发明的实施例的虚拟机系统的保护装置的整体结构图。虚拟机系统的保护装置300包括:备份模块302,用于在虚拟机系统关闭之前,将关闭之前的虚拟机系统进行镜像备份以生成备份虚拟机系统;计算模块304,用于对备份虚拟机系统进行哈希计算并生成第一哈希计算结果;以及加密及存储模块306,用于对第一哈希计算结果和备份虚拟机系统进行加密和存储。其具体细节与上述方法相同,为了简洁,这里没有进行重复描述。
利用本发明的实施例的虚拟机系统的保护装置,可以通过备份模块、计算模块和加密及存储模块对备份虚拟机系统和备份虚拟机系统的哈希计算结果进行加密和存储,来确保备份虚拟机系统的不被篡改、恶意删除和添加等,从而实现对虚拟机系统的保护。
图4为根据本发明的实施例的虚拟机系统的保护装置的具体结构图。虚拟机系统的保护装置400包括:备份模块402,用于在虚拟机系统关闭之前,将关闭之前的虚拟机系统进行镜像备份以生成备份虚拟机系统;计算模块404,用于对备份虚拟机系统进行哈希计算并生成第一哈希计算结果;以及加密及存储模块406,用于对第一哈希计算结果和备份虚拟机系统进行加密和存储。此外,计算模块404还用于在启动虚拟机系统时,对虚拟机系统进行哈希计算并生成第二哈希计算结果。虚拟机系统的保护装置400还包括:比较及启动模块408,用于将第一哈希计算结果和第二哈希计算结果进行比较,并根据比较结果启动虚拟机系统。
具体地,加密及存储模块包括加密子模块和存储子模块,加密子模块用于在进行比较计算之前,对第一哈希计算结果进行解密;以及加密子模块还用于对备份虚拟机系统进行解密。而且,比较及启动模块408包括:启动子模块,用于当比较结果为第一哈希计算结果和第二哈希计算结果不一致时,对加密的备份虚拟机系统进行解密并利用解密后的备份虚拟机系统恢复虚拟机系统,然后启动关闭之前的虚拟机系统;以及当比较结果为第一哈希计算结果和第二哈希计算结果一致时,直接启动虚拟机系统。比较及启动模块408还包括比较子模块,该比较子模块用于将第一哈希计算结果和第二哈希计算结果进行比较。此外,存储子模块用于对第一哈希计算结果和备份虚拟机系统进行存储。
利用本发明的实施例的虚拟机的保护装置,可以保证作为比较基准的第一哈希计算结果和作为虚拟机系统的备份的备份虚拟机系统的准确性。然后,通过第一哈希计算结果与第二哈希计算结果进行比较,根据比较结果确定虚拟机系统在关闭之后是否被篡改。如果被篡改,则利用备份虚拟机系统将被篡改的虚拟机系统恢复成关机之前虚拟机系统,即,将虚拟机系统的系统配置文件和数据文件恢复成关机之前的系统配置文件和数据文件,从而保证虚拟机启动时,虚拟机系统的系统配置文件和数据文件保持不变,由此来实现对虚拟机系统在关机之后到启动之前的时间段内的保护。
利用本发明的虚拟机系统的保护方法和保护装置,首先对在关机之前对虚拟机系统进行备份并加密保护,然后,在启动虚拟机系统时,对虚拟机系统在关闭之后,数据文件是否被篡改、删除或者增加进行检测,如果虚拟机系统的关键数据文件具有修改,则将该虚拟机系统恢复为关闭之前的状态,从而实现了对虚拟机系统在关闭之后的保护。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。