发明内容
本发明实施例提供一种云计算中虚拟机镜像导入和导出系统,以解决非法虚拟机镜像导入的问题,同时也保证了虚拟机镜像安全导出的全问题。
为解决上述技术问题,本发明提供一种云计算中虚拟机镜像导入和导出系统,包括:云计算中虚拟机镜像导出装置和云计算中虚拟机镜像导入装置,其中,
所述云计算中虚拟机镜像导出装置,用于在导出虚拟机镜像时,计算所述虚拟机镜像的哈希值,对所述哈希值进行加密,得到所述虚拟机镜像的数据签名,将所述数据签名添加到导出的所述虚拟机镜像中;
所述云计算中虚拟机镜像导入装置,用于接收所述云计算中虚拟机镜像导出装置导入的虚拟机镜像,提取所述虚拟机镜像的数据签名,对所述数据签名进行解密,得到所述虚拟机镜像的哈希值,计算所述虚拟机镜像的原始哈希值,若判断得到的所述哈希值与计算的原始哈希值相同,则允许所述虚拟机镜像导入。
优选的,所述云计算中虚拟机镜像导出装置包括:
计算单元,用于在导出虚拟机镜像时,计算所述虚拟机镜像的哈希值;
加密单元,用于对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;
添加单元,用于将所述数据签名添加到导出的所述虚拟机镜像中。
优选的,所述加密单元包括:
第一加密单元,用于利用自身的私钥对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;和/或
第二加密单元,用于利用接收端的公钥对所述哈希值进行加密得到所述虚拟机镜像的数据签名。
优选的,所述添加单元:具体用于将所述数据签名添加到导出的所述虚拟机镜像的头部、尾部或中间。
优选的,所述云计算中虚拟机镜像导出装置还包括:
记录单元,用于记录所述添加单元添加到所述虚拟机镜像中的所述数据签名的位置信息。
优选的,所述云计算中虚拟机镜像导入装置包括:
接收单元,用于接收导入的虚拟机镜像;
提取单元,用于提取所述虚拟机镜像的数据签名;
解密单元,用于对所述数据签名进行解密,得到所述虚拟机镜像的哈希值;
计算单元,用于计算所述虚拟机镜像的原始哈希值;
判断单元,用于判断获得的所述哈希值与计算的原始哈希值是否相同;
导入单元,用于在判断单元的判断结果相同时,允许所述虚拟机镜像导入。
优选的,所述提取单元包括:
位置信息获取单元,用于从所述特权虚拟机中获取所述数据签名的位置信息;
提取单元,用于根据所述位置信息获取单元获取的位置信息提取所述虚拟机镜像中的数据签名。
优选的,所述解密单元包括:
第一解密单元,用于利用发送端的公钥对所述数据签名进行解密,如果解密成功,则得到所述虚拟机镜像的哈希值;和/或
第二解密单元,用于利用自身的私钥对所述数据签名进行解密,如果解密成功,则得到所述虚拟机镜像的哈希值。
优选的,所述云计算中虚拟机镜像导入装置集成在云管理服务器中或独立部署。
所述云计算中虚拟机镜像导出装置集成在特权虚拟机中或独立部署。
本发明为导出的虚拟机镜像添加数据签名(身份认证),保证了虚拟机镜像在私有云(或者混合云)的部署,导入导出的身份合法性判断,避免不合法的虚拟机镜像的启动和运行对私有云内部的潜在安全威胁,如:恶意攻击,机密窃取等。同时,通过修改虚拟机镜像(增加了签名数据信息),改变了虚拟机镜像的大小和内容,使得在不知道该机制的情况下,在私有云外部使用该镜像,不能被校验通过。这种方法的实现在一定程度上保证了镜像的私有化(云内部使用)。也就是说,本发明在需要导入,或者已经导出的虚拟机(VM)镜像上添加数据签名,即通过安全校验机制,加上属于某一私有云的签名校验,形成身份校验层,使得不符合安全校验条件的虚拟机镜像不能被导入该云,从而避免潜在的云主机污染,同时也提高了虚拟机镜像的安全导入导出。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
请参阅图1,为本发明提供的一种云计算中虚拟机镜像导出方法的流程图,所述方法包括:
步骤101:在导出虚拟机镜像时,计算所述虚拟机镜像的哈希值;
其中,在特权虚拟机(即管理云管理服务器的服务器)导出虚拟机(VM)镜像时,可以利用安全哈希SHA1、哈希MD2、哈希MD4、哈希MD5算法计算所述虚拟机镜像的哈希值,具体的计算过程已是成熟技术,在此不再赘述。
步骤102:对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;
一种加密的方法为:利用自身的私钥对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;
另一种加密的方法为:利用接收端的公钥对所述哈希值进行加密得到所述虚拟机镜像的数据签名。
这两种算法实时之前,发送端与接收端互相通知自身的公钥,以便后续对所述虚拟机镜像的数据签名进行加密/解密。
也就是说,本发明中的公钥算法是不对称加密算法,它使用两把完全不同但又是完全匹配的一对钥匙-公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。发信方加密明文时可以采用接信方的公钥加密,接信方解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。
其中,不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用自己的私钥加密信件,收信者使用发信者的公钥解密信件。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
步骤103:将所述数据签名添加到导出的所述虚拟机镜像中。
可以将所述数据签名添加到导出的所述虚拟机镜像的头部、尾部或中间,也可以添加到所述虚拟机镜像的任意一个处,只要在所述数据签名中占用固定大小的字节即可。
其中,本发明中的数字签名是一种采用公钥加密算法对电子信息进行签名的方法。其实现原理以对一个文件进行数字签名和校验的过程为例:文件发送方首先依据某种摘要算法生成发送文件的一组摘要信息(特征信息),并用自己的私钥对其进行加密(即“签名”)形成签名文件,然后将原文件和签名文件一起发给接收方。接收方首先计算出原文件的摘要信息,并用发送者提供的公钥解密签名文件,同时得到另外一个摘要信息,通过对两个摘要信息的比对就可以确认文件信息是否完整正确,这就是“校验”。
优选的,所述方法还可以包括:记录添加到所述虚拟机镜像中的所述数据签名的位置信息。并将所述位置信息发送给云管理服务器,以便于云管理服务器根据所述位置信息提取导入的所述虚拟机镜像的数据签名。
本发明通过为导出的虚拟机镜像添加数据签名,即身份校验层(IDcheck):保证虚拟机镜像在导出之后加上相应的私有云的数字签名,这样再次导入该虚拟机镜像的时候,因为有了数据签名的信息,如果该数据签名的信息合法,私有云系统(比如云管理服务器)就会允许导入并运行该虚拟机镜像;如果要导入的虚拟机镜像不包含数字签名的信息,或者签名校验失败,则不会允许导入。
本发明考虑到虚拟机镜像文件一般都比较大,通常都可有几个GB,甚至几十个GB的。可以采用速度较快的SHA1对镜像进行HASH运算,但并不限于此,计算出该虚拟机镜像的哈希值,再对这个哈希值进行RSA公钥算法的数字签名,最后把签名存储在已导出的虚拟机镜像的尾部(或者头部等)。
还请参阅图2,为本发明还提供一种云计算中虚拟机镜像导入方法的流程图,所述方法包括:
步骤201:接收导入的虚拟机镜像;
也就是说,云管理服务器接收特权虚拟机发送的虚拟机镜像,即该虚拟机镜像对于特权虚拟机就是导出,对于云管理服务器就是导入。
步骤202:提取所述虚拟机镜像的数据签名;具体包括:
从所述特权虚拟机中获取所述数据签名的位置信息,并根据所述位置信息提取所述虚拟机镜像中的数据签名。
步骤203:对所述数据签名进行解密,得到所述虚拟机镜像的哈希值;
具体包括:利用发送端的公钥对所述数据签名进行解密,如果解密成功,则得到所述虚拟机镜像的哈希值;或者利用自身的私钥对所述数据签名进行解密,如果解密成功,,则得到所述虚拟机镜像的哈希值。
步骤204:计算所述虚拟机镜像的原始哈希值;
具体可以利用安全哈希SHA1、哈希MD2、哈希MD4、哈希MD5算法计算所述虚拟机镜像的哈希值。
步骤205:若判断得到的所述哈希值与计算的原始哈希值相同,则允许所述虚拟机镜像导入。
本发明的目的就是在需要导入,或者已经导出的虚拟机(VM)镜像上通过安全校验机制,加上属于某一私有云的签名校验,形成身份校验层,使得不符合安全校验条件的虚拟机镜像不能被导入该云,从而避免潜在的云主机污染,同时也提高了虚拟机镜像的安全导入导出。
为了并于本领域技术人员的理解,下面以具体的应用实例来说明。
还请参参阅图3,为本发明提供的一种云计算中虚拟机镜像导入方法的应用实例,具体包括:
步骤301:云管理服务器接收特权虚拟机(即管理云管理服务器的设备,可以是服务器等)发送的虚拟机镜像;即接收导入的虚拟机镜像;
步骤302:云管理服务器提取所述虚拟机镜像的数据签名;具体包括:
云管理服务器从所述特权虚拟机中获取所述数据签名的位置信息(比如虚拟机镜像中的头部、尾部、中部或任意的固定字节),并根据所述位置信息提取所述虚拟机镜像中的数据签名。
步骤303:云管理服务器判断所述数据签名是否合法,如果合法,执行步骤304;否则执行步骤309;
其中,判断所述数据签名是否合法的依据为包括:利用发送端的公钥对所述数据签名进行解密,如果解密成功,则所述数据签名合法;或者利用自身的私钥对所述数据签名进行解密,如果解密成功,则所述数据签名合法。
具体的解密过程详见上述,在此不再赘述。
步骤304:云管理服务器判断所述数据签名是否有效;如果有效,执行步骤305;否则,执行步骤309;
步骤305:云管理服务器得到所述数据签名中的哈希值;
步骤306:云管理服务器计算所述虚拟机镜像的原始哈希值;
也就是,云管理服务器根据除所述数据签名外的虚拟机镜像计算原始哈希值,具体可以利用安全哈希SHA1、哈希MD2、哈希MD4、哈希MD5算法计算所述虚拟机镜像的哈希值。但并不限于此,还可以是其他的哈希算法。
步骤307:云管理服务器判断获得的所述哈希值与计算的原始哈希值是否相同,若是,执行步骤308;否则,执行步骤309;
步骤308:允许所述虚拟机镜像导入;
步骤309:不允许所述虚拟机镜像导入。
本实施例中,考虑到如下几种Hack情况:如果导入的虚拟机镜像不带数字签名,则校验失败,不允许导入;如果虚拟机带了数字签名,可是非该私有云的数字签名(使用对应公钥解密失败),则校验失败,不允许导入;如果数字签名正确,说明是该私有云的镜像,那么校验原始的虚拟机的Hash值,由于对于一个镜像来说Hash值是唯一的,那如果这个镜像被篡改,或者在该私有云外部被使用了,一定会污染到该镜像,再次计算该镜像的Hash值一定与原来保存在数字签名里的Hash值不一样,校验失败,不允许导入,这种方法对该虚拟机镜像还进行了完整性校验,防止了篡改虚拟机的数据。
即,本发明中的应用是在现有的平台中,加入了安全校验,实现IAAS私有云中的安全的虚拟机镜像的导入导出架构。
本发明主要应用于云计算,解决非法虚拟机镜像的导入,而引起的私有云污染的问题。同时也避免了恶意虚拟机镜像(即本发明的虚拟机镜像文件)对私有云的安全威胁,如:恶意攻击,机密窃取等。
进一步,还防止了针对数据签名合法的带有私有云信息的镜像,而通过在私有云外修改镜像并再次导入欺骗私有云系统的HACK手段。防止该私有化的镜像信息被带入私有云外启动,以及获取机密信息。
基于上述方法的实现过程,本发明还提供一种云计算中虚拟机镜像导出装置,其结构示意图详见图4,所述装置包括:计算单元41、加密单元42和添加单元43,其中,计算单元41,用于在导出虚拟机镜像时,计算所述虚拟机镜像的哈希值;加密单元42,用于对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;添加单元43,用于将所述数据签名添加到导出的所述虚拟机镜像中。
其中,所述加密单元包括:第一加密单元和/或第二加密单元,其中,第一加密单元,用于利用自身的私钥对所述哈希值进行加密,得到所述虚拟机镜像的数据签名;第二加密单元,用于利用接收端的公钥对所述哈希值进行加密得到所述虚拟机镜像的数据签名。
优选的,所述添加单元:具体用于将数据签名添加到导出的所述虚拟机镜像的头部、尾部或中间。
所述装置还进一步包括:记录单元,用于记录所述添加单元添加到所述虚拟机镜像中的所述数据签名的位置信息。
还请参阅图5,为本发明提供一种云计算中虚拟机镜像导入装置的结构示意图,所述装置包括:接收单元51,提取单元52,解密单元53,计算单元54,判断单元55和导入单元56,其中,所述接收单元51,用于接收导入的虚拟机镜像;所述提取单元52,用于提取所述虚拟机镜像的数据签名;所述解密单元53,用于对所述数据签名进行解密,得到所述虚拟机镜像的哈希值;计算单元54,用于计算所述虚拟机镜像的原始哈希值;判断单元55,用于判断获得的所述哈希值与计算的原始哈希值是否相同;导入单元56,用于在判断单元的判断结果相同时,允许所述虚拟机镜像导入。
优选的,所述提取单元包括:位置信息获取单元和提取单元,其中,位置信息获取单元,用于从所述特权虚拟机中获取所述数据签名的位置信息;提取单元,用于根据所述位置信息获取单元获取的位置信息提取所述虚拟机镜像中的数据签名。
优选的,所述解密单元包括:第一解密单元和/或第二解密单元,其中,第一解密单元,用于利用发送端的公钥对所述数据签名进行解密,如果解密成功,则所述数据签名合法;第二解密单元,用于利用自身的私钥对所述数据签名进行解密,如果解密成功,则所述数据签名合法。
还请参阅图6,为本发明提供一种云计算中虚拟机镜像导入和导出系统的结构示意图,所述系统包括:云计算中虚拟机镜像导出装置61和云计算中虚拟机镜像导入装置62,其中,所述云计算中虚拟机镜像导出装置包括:计算单元41、加密单元42和添加单元43;所述云计算中虚拟机镜像导入装置包括:所述装置包括:接收单元51,提取单元52,解密单元53,计算单元54,判断单元55,导入单元56。其中,各个单元的功能和作用详见上述,在此不再赘述。
本发明中,为导出的虚拟机镜像添加数据签名(身份认证),保证了虚拟机镜像在私有云(或者混合云)的部署,导入导出的身份合法性判断,避免不合法的虚拟机镜像的启动和运行对私有云内部的潜在安全威胁,如:恶意攻击,机密窃取等。
虚拟机镜像私有化:通过修改虚拟机镜像(增加了签名数据信息),改变了虚拟机镜像的大小和内容,使得在不知道该机制的情况下,在私有云外部使用该镜像,不能被校验通过。这种方法的实现在一定程度上保证了镜像的私有化(云内部使用)。
防止虚拟机镜像防的篡改:对虚拟机镜像进行了HASH,并保存在数字签名中,使得任何在云外部,或内部修改过该虚拟机的使得镜像污染,都会因为在导入之前,算得的HASH值不一样而拒绝导入。
在发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。