一种基于鲲鹏芯片的虚拟机保护方法及装置与流程

文档序号:20837939发布日期:2020-05-22 17:06阅读:273来源:国知局
一种基于鲲鹏芯片的虚拟机保护方法及装置与流程

本申请涉及虚拟机领域,具体涉及一种基于鲲鹏芯片的虚拟机保护方法及装置。



背景技术:

虚拟机(virtualmachine,vm)指的是通过相应的软件模拟出的,具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。

使用虚拟机可以起到演示环境、研发测试程序等功能,十分便利。因此虚拟机中往往存储有各企业中比较重要的数据。但是现有技术中,如果虚拟机的磁盘被非法拷贝,则会造成数据丢失,对企业的利益造成严重的影响。



技术实现要素:

为了解决上述问题,本申请提出了一种基于鲲鹏芯片的虚拟机保护方法,所述方法应用在鲲鹏系统中,所述鲲鹏系统包括:管理中心、通过所述管理中心管理的多个主机,每个所述主机中设置有鲲鹏芯片,每个所述鲲鹏芯片中设置有加密模块,所述方法包括:所述主机根据所述管理中心发送的创建指令,在所述主机中创建虚拟机;通过所述加密模块生成用于将所述虚拟机对应的磁盘中的数据加密的秘钥,并将所述秘钥存储在所述加密模块中;接收表示与所述磁盘中数据相关的操作请求信息;通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密,以便于执行所述操作请求信息。

在一个示例中,接收表示与所述磁盘中数据相关的操作请求信息,包括:接收镜像生成指令,所述镜像生成指令用于指示生成所述虚拟机的镜像;通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密之后,所述方法还包括:根据所述镜像生成指令,以及所述秘钥,生成所述虚拟机对应的镜像文件。

在一个示例中,接收表示与所述磁盘中数据相关的操作请求信息,包括:接收模板生成指令,所述模板生成指令用于指示生成所述虚拟机对应的模板;通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密之后,所述方法还包括:通过所述加密模块生成所述模板对应的秘钥,以便根据所述模板对应的秘钥,对所述模板中的数据进行加密。

在一个示例中,所述多个主机中的每个主机设置有与加密模块对应的公钥和私钥,所述方法还包括:通过目标主机的公钥将需要发送的信息加密;向所述目标主机发送加密后的所述信息,以使所述目标主机通过自身的私钥对所述信息解密后进行读取。

在一个示例中,接收表示与所述磁盘中数据相关的操作请求信息,包括:接收虚拟机迁移指令;通过所述目标主机的公钥将需要发送的信息加密,包括:通过所述目标主机的公钥将迁移所述虚拟机时的迁移信息和所述秘钥加密;向目标主机发送加密后的所述信息,包括:向目标主机发送加密后的所述迁移信息和所述秘钥;接收所述目标主机返回的表示迁移成功的反馈信息;删除所述虚拟机和存储在所述加密模块中的所述秘钥。

在一个示例中,将所述秘钥存储在所述加密模块中之后,所述方法还包括:接收虚拟机删除指令;根据所述虚拟机删除指令,判断是否删除所述虚拟机在所述磁盘中存储的数据;若删除,则在删除所述虚拟机时,从所述加密模块中删除所述秘钥;若不删除,则在删除所述虚拟机时,保留所述秘钥。

在一个示例中,在所述主机中创建虚拟机之后,所述方法还包括:在所述虚拟机的操作系统中,创建与所述操作系统的默认超级用户名不同的账号;将创建的账号添加到所述操作系统的超级用户群中;修改本地登录模块和远程登录模块的参数,以便禁止用户通过所述默认超级用户名在本地或远程登录所述操作系统。

在一个示例中,所述方法还包括:对登录所述操作系统的用户进行监控;若存在通过所述默认超级用户名登录所述操作系统的用户,则将该用户对应的登录信息记录在日志中。

在一个示例中,所述操作系统为linux系统;所述默认超级用户名为root。

另一方面,本申请还提出了一种基于鲲鹏芯片的虚拟机保护装置,所述装置应用在鲲鹏系统中,所述鲲鹏系统包括:管理中心、通过所述管理中心管理的多个主机,每个所述主机中设置有鲲鹏芯片,所述鲲鹏芯片中设置有加密模块,所述装置包括:创建模块,所述主机根据所述管理中心发送的创建指令,在所述主机中创建虚拟机;生成模块,通过所述加密模块生成用于将所述虚拟机对应的磁盘中的数据加密的秘钥,并将所述秘钥存储在所述加密模块中;接收模块,接收表示与所述磁盘中数据相关的操作请求信息;处理模块,通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密,以便于执行所述操作请求信息。

通过本申请提出保护方法能够带来如下有益效果:

当用户正常使用虚拟机,读取磁盘中的数据时,可以通过存储在加密模块中的秘钥进行解密后进行读取。但若是磁盘被非法拷贝后,由于秘钥存储在加密模块中,非法拷贝者无法获得秘钥,也就无法对磁盘中已经加密的数据进行读取,保证了虚拟机磁盘中数据的安全性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例中基于鲲鹏芯片的虚拟机保护方法的流程示意图;

图2为本申请实施例中基于鲲鹏芯片的虚拟机保护装置的模块示意图;

图3为本申请实施例中鲲鹏系统的示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

本申请实施例提供一种基于鲲鹏芯片的虚拟机保护方法,该方法应用在鲲鹏系统中。如图3所示,鲲鹏系统中包含有管理中心,以及通过管理中心管理的多个主机。其中,管理中心可以通过有线或无线的方式监控、管理多个主机。例如,监控各主机的运行状态,对各主机的数据做备份等。每个主机中都设置有鲲鹏芯片,在鲲鹏芯片中设置有加密模块。其中,鲲鹏芯片指的是鲲鹏系列芯片,包括有例如鲲鹏920等。

如图1所示,所述方法包括:

s101、所述主机根据所述管理中心发送的创建指令,在所述主机中创建虚拟机。

通常情况下,用户通过相应的操作,在管理中心上控制主机创建虚拟机。此时,主机会接收到管理中心发出的创建指令,然后主机创建虚拟机。具体地,在用户创建的过程中,可以通过相应的软件,例如vmware或virtualpc等,或者也可以相应的程序来创建虚拟机,在此不再赘述。在创建虚拟机的过程中,用户可以根据自身的需要设置相应的操作系统、磁盘空间、磁盘位置、语言、用户名等各项数据,在此不再赘述。当然,每个主机中能够创建的虚拟机的数量可以根据用户的实际需求来确定,在此不做限定。

s102、通过所述加密模块生成用于将所述虚拟机对应的磁盘中的数据加密的秘钥,并将所述秘钥存储在所述加密模块中。

如图3所示,每个主机都对应有相应的磁盘,因此在创建虚拟机时,也会为该虚拟机分配相应的磁盘空间,成为该虚拟机对应的磁盘,该虚拟机中相应的数据即可存储在其对应的磁盘中。另外,可以如图3所示,各主机与磁盘分体设置,也可以组装成一体设置,在此不做限定;各虚拟机对应的磁盘作为一个整体存在,也可以作为个体单独存在,在此不做限定。

在创建完虚拟机后,可以通过鲲鹏芯片中的加密模块生成,用于将该虚拟机对应的磁盘中的数据加密的秘钥,然后将秘钥存储在加密模块中。通常情况下加密模块生成的秘钥与虚拟机是一一对应的,如果多台虚拟机对应着同一个秘钥,也会降低虚拟机数据的保密性。因此该秘钥可以由管理中心生成,或者由加密模块生成后上报管理中心,管理中心进行存储并确定该秘钥是唯一的。其中,秘钥可以是由加密模式生成的随机数。而任何软件的设计都可能陷入伪随机数的可能性,而通过作为硬件的加密模块则可以避免这种情况的发生。

s103、接收表示与所述磁盘中数据相关的操作请求信息。

s104、通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密,以便于执行所述操作请求信息。

主机或虚拟机接收到,与所述磁盘中数据相关的操作请求信息,表示存在程序或用户想要根据磁盘内的数据进行相应操作。此时需要通过秘钥对需要读取的数据进行解密,然后该数据能够被相应的程序或用户读取,以便于执行对应的操作。当用户正常使用虚拟机,读取磁盘中的数据时,可以通过存储在加密模块中的秘钥进行解密后进行读取。但若是磁盘被非法拷贝后,由于秘钥存储在加密模块中,非法拷贝者无法获得秘钥,也就无法对磁盘中已经加密的数据进行读取,保证了虚拟机磁盘中数据的安全性。

类似的,当主机或虚拟机接收到,表示要向磁盘中写入数据的写入请求,表示存在用户或程序想向磁盘内写入数据。此时需要通过秘钥对需要写入的数据进行加密,然后再将加密后的数据写入磁盘中。

由于磁盘在进行输入输出动作时,都需要加密或者解密,通常情况会导致占用时间较长。但是由于本申请中的实施例基于鲲鹏芯片,在鲲鹏芯片中自带加密模块,不需要外插大量的加密硬件,能够有效的降低加密和解密带来的延时,保证了用户的体验。

具体地,当操作请求信息为镜像生成指令时,表示用户或相应的程序想要生成针对该虚拟机的镜像文件。由于镜像文件与源文件,即虚拟机文件是相同的数据,而且能够同步更新。因此,在生成镜像文件时,可以根据镜像指令以及秘钥生成镜像文件,无需更改秘钥。

当操作请求信息为模板生成指令时,表示用户或相应的程序想要根据该虚拟机生成模板。由于模板与虚拟机之间的数据不完全一致,存在不同的地方,因此可以首先通过秘钥将磁盘中的数据解密,然后重新生成一个模板对应的秘钥。接着在生成模板时,可以根据该模板对应的秘钥对磁盘中的数据进行加密。当然,在通过该模板生成新的虚拟机时,可以也为每个新生成的虚拟机生成相对应的秘钥,在此不再赘述。

当操作请求信息为删除指令时,表示用户想要删除该虚拟机。此时可以根据该删除指令来确定,在本次的删除过程中,是否需要删除虚拟机所对应的磁盘。如果需要删除,由于磁盘已经删除,磁盘中的数据也不存在,因此存储在加密模块中的秘钥也就无需保留,可以将该秘钥删除。如果在删除虚拟机时,不删除磁盘,则磁盘中的数据仍然被加密存储在磁盘中,此时需要保留该秘钥,以便后续在磁盘中读取相应的数据。

在一个实施例中,每个主机可以设置有对应的公钥和私钥。其中,可以由加密模块来生成自身的公钥和私钥,也可以由管理中心生成。当然,每个主机的公钥和私钥都是一一对应的。在主机之间传输信息时,发送信息的主机可以首先根据接收信息的目标主机的公钥,将信息进行加密。然后将加密后的信息发送至目标主机,目标主机在收到后,可以通过自身的私钥进行解密后,对解密后的信息进行读取。

进一步地,当接收的操作请求信息为虚拟机迁移指令时,表示用户或相应的程序想要将该虚拟机迁移到别的主机。则可以首先通过目标主机的公钥对迁移信息和秘钥进行加密,然后在发送至目标主机处。其中,迁移信息中包括迁移虚拟机时的相关数据,以便于进行虚拟机的迁移。由于每个虚拟机的秘钥都存储在所在主机中鲲鹏芯片的加密模块中,因此,在迁移时也需要将该秘钥一起发送至目标主机,以使目标主机将其存储在加密模块中。当接收目标主机返回的迁移成功的反馈信息后,则可以删除本地创建的虚拟机以及存储在加密模块中的秘钥。当然,若是反馈信息表示迁移失败,则可以重新进行迁移,在此不再赘述。

在一个实施例中,在用户创建虚拟机后,也需要创建操作系统。通常情况下,操作系统中都会存在超级用户。超级用户即用户管理员,通常在操作系统中拥有最高的权限。而且在操作系统中,超级用户的默认名称都是相同的。例如,在linux系统中,默认超级用户名为root;在windows系统中,默认的超级用户名为administrator。这就为黑客入侵提供了一定的方便,不利于用户存储在虚拟机中数据的安全性。

此时可以首先在操作系统中创建与默认超级用户名不同用户名的用户。例如,针对linux系统,可以将该用户名设置为substitute_root。然后将substitute_root该用户添加到操作系统的超级用户群中,该用户即可获得超级用户的权限。接着通过修改本地登录模块和远程登录模块,禁止用户通过默认超级用户名在本地货远程登录该操作系统。此时黑客在入侵电脑时,无法在通过该默认超级用户名登录操作系统,增加了存储在磁盘中的数据的安全性。

具体地,以centos(communityenterpriseoperatingsystem,社区企业操作系统)系统为例进行解释说明。其中,centos系统为linux系统的发行版之一。

在创建用户名为substitute_root的用户时,设substitute_root用户的初始密码是adminadmin,可以通过如下语句实现:

其中,在kickstart中,可以通过增加如下语句:

rootpw--lock#注释:锁定root用户

来使用户安装的时候,无法配置root用户,也不能增加其它用户。其中,kickstart为自动安装脚本。

在将substitute_root该用户添加到操作系统的超级用户群时,可以修改/etc/sudoers配置文件,将一个名称为substitute_root的普通用户变为超级用户,并在以后的操作中使用此用户名,替代root进行登录。上述功能可以通过如下语句实现:

usermod-gwheelsubstitute_root

echo"%wheelall=(all)nopasswd:all">>/etc/sudoers

在修改本地登录模块时,可以通过在/etc/pam.d/login文件增加下面一行语句来实现:

authrequiredpam_succeed_if.souser!=rootquiet;

在修改远程登录模块时,需要禁止ssh远程登录。可以在/etc/ssh/sshd_config文件中,将#permitrootloginyes改为permitrootloginno来实现该功能。其他远程登录方式可以采用类似方式关闭root用户,或者可以将其它远程登陆方式统一关闭,在此不再赘述。

另外,也可以通过在kickstart文件中加入脚本修改sudoer配置文件,使root用户不能远程ssh登陆:

进一步地,还可以对登录操作系统的用户进行监控。如果发现了通过默认超级用户名登录操作系统的用户,则将该用户对应的登录信息记录在日志中。例如,登陆时间、登录地址等,以便于后续追查。其中,可以通过last命令或者第三方软件监控root的登录事件,在此不再赘述。

如图2所示,本申请实施例还提供了一种基于鲲鹏芯片的虚拟机保护装置,所述装置应用在鲲鹏系统中,所述鲲鹏系统包括:管理中心、通过所述管理中心管理的多个主机,每个所述主机中设置有鲲鹏芯片,所述鲲鹏芯片中设置有加密模块,所述装置包括:

创建模块201,所述主机根据所述管理中心发送的创建指令,在所述主机中创建虚拟机;

生成模块202,通过所述加密模块生成用于将所述虚拟机对应的磁盘中的数据加密的秘钥,并将所述秘钥存储在所述加密模块中;

接收模块203,接收表示与所述磁盘中数据相关的操作请求信息;

处理模块204,通过所述秘钥对所述磁盘中所述操作请求信息对应的数据解密,以便于执行所述操作请求信息。

以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

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