CN106063218B - 虚拟化系统中加解密的方法、装置和系统 - Google Patents

虚拟化系统中加解密的方法、装置和系统 Download PDF

Info

Publication number
CN106063218B
CN106063218B CN201480056793.7A CN201480056793A CN106063218B CN 106063218 B CN106063218 B CN 106063218B CN 201480056793 A CN201480056793 A CN 201480056793A CN 106063218 B CN106063218 B CN 106063218B
Authority
CN
China
Prior art keywords
virtual machine
hard disk
image
encryption
disk mirror
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480056793.7A
Other languages
English (en)
Other versions
CN106063218A (zh
Inventor
何伟
吴鸿钟
杨志鹏
任伟峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN106063218A publication Critical patent/CN106063218A/zh
Application granted granted Critical
Publication of CN106063218B publication Critical patent/CN106063218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

本发明实施例提供一种虚拟化系统中加解密的方法、装置和系统,包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,VMM中的控制模块用于对是否待写入数据是否需要加密进行判断并进行待写入数据的转发,功能实现简单,降低了VMM的系统复杂度,同时,由于本发明实施例中的加解密处理是由专门的加解密虚拟机来实现,无需占用VMM中的资源,避免了资源冲突,提高了系统稳定性。

Description

虚拟化系统中加解密的方法、装置和系统
技术领域
本发明涉及计算领域,尤其是涉及一种虚拟化系统中加解密的方法、装置和系统。
背景技术
云计算平台通过将各种互联的计算资源进行有效整合并实现多层次的虚拟化与抽象,可以有效地将大规模的计算资源以虚拟机(Virtual Machine,VM)的形式提供给用户。具体的,云计算主机中部署的虚拟化软件构成了虚拟机运行的环境,为虚拟机提供网络和存储等服务。用户的数据保存在虚拟机的虚拟硬盘中,虚拟硬盘的实际物理存储空间在存储服务器的硬盘阵列中,存储服务器把虚拟硬盘的存储空间组织成一个大文件或者大数据块,该大文件或大数据块被称为硬盘镜像。硬盘镜像是虚拟机数据的存储实体,表示虚拟机的磁盘或硬盘的内容按照扇区为单位组织起来的存储形态。云计算平台需要提供可靠的安全保障技术确保该硬盘镜像中用户数据安全,避免包含商业机密的用户隐私数据的泄露。
如图1所示,为现有虚拟化系统加解密技术实现结构示意图,为保证用户数据的安全性,设备映射和加密模块被包含在虚拟机监视器(Virtual Machine Monitor,VMM)中,用于将硬盘镜像映射为一个虚拟的块设备。硬盘镜像对用户虚拟机不可见,虚拟化软件将块设备连接到用户虚拟机,设备映射和加密模块可以感知用户虚拟机对该块设备的访问,对硬盘镜像中的被访问数据进行加密处理,从而实现对用户数据的保护。但是,云计算主机中可能存在成百上千个硬盘镜像,这些硬盘镜像包含很多类型,例如大文件、本地块设备、网络块设备等等,部分硬盘镜像需要加密,部分不需要加密,因此设备映射和加密模块需要分别进行识别和处理,从而导致该设备映射和加密模块实现复杂,对云计算的操作系统和稳定性带来很大影响。
发明内容
本发明的目的在于提供一种虚拟化系统中加解密的方法、装置和系统,以解决现有技术中由VMM中的设备映射和加密模块进行加解密处理带来的实现复杂、影响系统稳定性等问题。
第一方面,本发明实施例提供了一种虚拟化系统,包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,
所述控制模块,用于获取用户虚拟机的待写入的数据,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述加解密虚拟机,用于根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据,将所述加密数据发送给所述控制模块;
所述控制模块,还用于将所述加密数据写入到所述待写入的硬盘镜像中。
结合第一方面,在第一方面的第一种可能的实施方式中,所述第一关联关系还包括用户虚拟机标识,
所述控制模块,具体用于向所述加解密虚拟机发送所述用户虚拟机的标识、所述待写入的硬盘镜像的标识,以及待写入的数据;
所述加解密虚拟机,具体用于获取所述用户虚拟机的标识以及所述待写入的硬盘镜像标识,确定所述第一关联关系中是否包括所述用户虚拟机的标识与所述待写入的硬盘镜像标识的对应关系,如果否,则向所述控制模块返回加密失败指示,如果是,则使用确定的所述待写入的硬盘镜像标识对应的加密密钥对所述待写入的数据进行加密。
结合第一方面第一种可能的实施方式,在第一方面第二种可能的实施方式中,所述密钥还包括解密密钥,
所述控制模块,还用于获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述加解密虚拟机,还用于接收所述解密请求,确定所述第一关联关系中是否包括所述发送所述读请求的用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,将获得的解密后的数据发送给所述控制模块;
所述控制模块,还用于将所述解密后的数据返回给所述用户虚拟机。
结合第一方面第二种可能的实施方式,在第一方面第三种可能的实施方式中,
所述控制模块,还用于确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
结合第一方面第一种至第三种任一可能的实施方式,在第一方面第四种可能的实施方式中,所述系统还包括系统管理模块以及虚拟机管理模块,
所述系统管理模块,用于向所述虚拟机管理模块发送虚拟机启动请求,所述虚拟机启动请求携带待启动的用户虚拟机的标识;
所述虚拟机管理模块,用于接收所述虚拟机启动请求,根据所述虚拟机启动请求启动所述待启动的用户虚拟机,将启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性发送给所述控制模块;
所述控制模块,还用于接收并记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,建立所述第二关联关系。
结合第一方面第一种至第四种任一可能的实施方式,在第一方面第五种可能的实施方式中,所述系统还包括系统管理模块以及虚拟机管理模块,
所述系统管理模块,还用于向所述虚拟机管理模块发送虚拟机创建请求,所述虚拟机创建请求中携带待创建的用户虚拟机的硬盘镜像的属性;
所述虚拟机管理模块,还用于接收所述虚拟机创建请求,创建用户虚拟机,为创建的所述用户虚拟机创建硬盘镜像,分配硬盘镜像标识,根据所述虚拟机创建请求确定分配的所述硬盘镜像标识对应的硬盘镜像属性,向所述加解密虚拟机发送虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性;
所述加解密虚拟机,还用于接收所述虚拟机创建指示消息,为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的所述第一关联关系。
结合第一方面第五种可能的实施方式,在第一方面第六种可能的实施方式中,
所述加解密虚拟机,还用于向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
结合第一方面第五种可能的实施方式,在第一方面第七种可能的实施方式中,
所述系统管理模块,还用于向所述虚拟机管理模块发送硬盘镜像增加请求消息,所述硬盘镜像增加请求消息中携带所述用户虚拟机标识和新增的盘镜像的属性;
所述虚拟机管理模块,还用于接收所述硬盘镜像增加请求消息,为所述用户虚拟机创建新的硬盘镜像,根据所述硬盘镜像增加请求消息确定所述新的硬盘镜像的硬盘镜像属性,将所述用户虚拟机标识、所述新的硬盘镜像的标识以及所述新的硬盘镜像的硬盘镜像属性发送给所述加解密虚拟机;
所述加解密虚拟机,还用于为所述新的硬盘镜像分配密钥,更新所述第一关联关系。
结合第一方面,在第一方面第八种可能的实施方式中,所述控制模块,具体用于从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
结合第一方面,在第一方面第九种可能的实施方式中,所述密钥还包括解密密钥,
所述控制模块,还用于获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述加解密虚拟机,还用于接收所述解密请求,根据所述第一关联关系,确定所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密所述加密数据,将获得的解密后的数据发送给所述控制模块;
所述控制模块,还用于将所述解密后的数据返回给所述用户虚拟机。
结合第一方面或第一方面第九种可能的实施方式,在第一方面第十种可能的实施方式中,所述系统还包括系统管理模块以及虚拟机管理模块,
所述系统管理模块,用于向所述虚拟机管理模块发送虚拟机启动请求,所述虚拟机启动请求携带待启动的用户虚拟机的标识;
所述虚拟机管理模块,用于接收所述虚拟机启动请求,根据所述虚拟机启动请求启动所述待启动的用户虚拟机,将启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性发送给所述控制模块;
所述控制模块,还用于接收并记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,建立所述第二关联关系。
结合第一方面、第一方面第九种或第一方面第十种可能的实施方式,在第一方面第十一种可能的实施方式中,所述系统还包括系统管理模块以及虚拟机管理模块,
所述系统管理模块,还用于向所述虚拟机管理模块发送虚拟机创建请求,所述虚拟机创建请求中携带待创建的用户虚拟机的硬盘镜像的属性;
所述虚拟机管理模块,还用于接收所述虚拟机创建请求,创建用户虚拟机,为创建的所述用户虚拟机创建硬盘镜像,分配硬盘镜像标识,根据所述虚拟机创建请求确定分配的所述硬盘镜像标识对应的硬盘镜像属性,向所述加解密虚拟机发送虚拟机创建指示消息,所述虚拟机创建指示消息中携带所述分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性;
所述加解密虚拟机,还用于接收所述虚拟机创建指示消息,为所述硬盘镜像标识分配密钥,建立所述硬盘镜像标识以及所述密钥之间的所述第一关联关系。
结合第一方面第十一种可能的实施方式,在第一方面第十二种可能的实施方式中,
所述系统管理模块,还用于向所述虚拟机管理模块发送硬盘镜像增加请求消息,所述硬盘镜像增加请求消息中携带所述用户虚拟机标识和新增的盘镜像的属性;
所述虚拟机管理模块,还用于接收所述硬盘镜像增加请求消息,为所述用户虚拟机创建新的硬盘镜像,确定所述新的硬盘镜像的硬盘镜像属性,将所述新的硬盘镜像的标识以及所述新的硬盘镜像的硬盘镜像属性发送给所述加解密虚拟机;
所述加解密虚拟机,还用于为所述新的硬盘镜像分配密钥,更新所述第一关联关系。
第二方面,本发明实施例提供了一种虚拟化系统中加解密的方法,应用于虚拟化系统,所述虚拟化系统包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述方法包括:
所述控制模块获取用户虚拟机的待写入的数据,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述控制模块接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
所述控制模块将所述加密数据写入到所述待写入的硬盘镜像中。
结合第二方面,在第二方面第一种可能的实施方式中,所述第一关联关系中还包括用户虚拟机标识,所述密钥还包括解密密钥,所述方法还包括:
所述控制模块获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述控制模块接收所述加解密虚拟机返回的解密后的数据,其中,所述解密后的数据为所述加解密虚拟机在确定所述第一关联关系中包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系后,使用根据所述第一关联关系确定的所述硬盘镜像标识对应的解密密钥对所述加密数据进行解密获得的;
所述控制模块将所述解密后的数据返回给所述用户虚拟机。
结合第二方面第一种可能的实施方式,在第二方面第二种可能的实施方式中,
所述控制模块在确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
结合第二方面,在第二方面第三种可能的实施方式中,所述系统还包括虚拟机管理模块,所述方法还包括:
所述控制模块接收虚拟机管理模块发送的虚拟机启动指示消息,所述虚拟机启动指示消息携带启动的用户虚拟机的标识、所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性;
所述控制模块记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,更新所述第二关联关系。
结合第二方面,在第二方面第四种可能的实施方式中,所述控制模块获取用户虚拟机的待写入的数据包括:
所述控制模块从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
第三方面,本发明实施例提供了一种用户虚拟机的创建方法,应用于虚拟化系统,所述虚拟化系统包括VMM、系统管理模块以及加解密虚拟机,所述VMM包括虚拟机管理模块,所述方法包括:
所述加解密虚拟机接收所述虚拟机管理模块发送的虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、为所述创建的用户虚拟机分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性,所述虚拟机创建指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的虚拟机创建请求创建用户虚拟机以及硬盘镜像后发送的;
所述加解密虚拟机为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的第一关联关系;
所述加解密虚拟机向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
结合第三方面,在第三方面第一种可能的实施方式中,
所述加解密虚拟机接收所述虚拟机管理模块发送的硬盘镜像增加指示消息,所述硬盘镜像增加指示消息中携带所述用户虚拟机标识、所述虚拟机管理模块为所述用户虚拟机新增的硬盘镜像标识及其硬盘镜像属性,所述硬盘镜像指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的硬盘镜像增加请求为所述用户虚拟机创建新增的硬盘镜像后发送的;
所述加解密虚拟机为所述新增的硬盘镜像分配密钥,将所述用户虚拟机标识、新增的硬盘镜像标识,以及为所述新增的硬盘镜像分配的密钥更新至所述第一关联关系。
结合第三方面,在第三方面第二种可能的实施方式中,
所述VMM中包括控制模块,所述方法还包括:
所述加解密虚拟机接收所述控制模块发送的加密请求,所述加密请求携带所述用户虚拟机的标识、待写入的硬盘镜像的标识以及所述待写入的数据,确定所述第一关联关系中是否包括所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系,如果否,则向所述控制模块返回加密失败指示,如果是,则根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据,将所述加密数据发送给所述控制模块,以使得所述控制模块将所述加密数据写入到所述待写入的硬盘镜像中。
结合第三方面第二种可能的实施方式,在第三方面第三种可能的实施方式中,还包括:所述加解密虚拟机接收所述控制模块发送的解密请求,所述解密请求携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识,确定所述第一关联关系中是否包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,将获得的解密后的数据发送给所述控制模块,以使得所述控制模块将所述解密后的数据返回给所述用户虚拟机。
第四方面,本发明实施例提供了一种虚拟化系统中的控制装置,所述控制装置位于虚拟化系统的VMM中,所述虚拟化系统还包括加解密虚拟机,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述控制装置包括:
获取单元,用于获取用户虚拟机的待写入的数据;
处理单元,用于根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性;
发送单元,用于当所述确定单元确定的所述硬盘镜像属性为加密时,向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述获取单元,还用于接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
写入单元,用于将所述获取单元接收到的所述加密数据写入到所述待写入的硬盘镜像中。
结合第四方面,在第四方面第一种可能的实施方式中,所述密钥还包括解密密钥,
所述获取单元,还用于获取所述用户虚拟机触发的读请求;
所述处理单元,还用于从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据;
所述发送单元,还用于在所述处理单元确定读取的所述数据为加密数据时,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述获取单元,还用于接收所述加解密虚拟机返回的解密后的数据,其中,所述解密后的数据为所述加解密虚拟机在确定所述第一关联关系中包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系后,使用根据所述第一关联关系确定的所述硬盘镜像标识对应的解密密钥对所述加密数据进行解密获得的;
所述发送单元,还用于将所述获取单元接收到的所述解密后的数据返回给所述用户虚拟机。
结合第四方面第一种可能的实施方式,在第四方面第二种可能的实施方式中,所述发送单元,还用于在所述处理单元确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
结合第四方面,在第四方面第三种可能的实施方式中,
所述获取单元,还用于接收虚拟机管理模块发送的虚拟机启动指示消息,所述虚拟机启动指示消息携带启动的用户虚拟机的标识、所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性;
所述处理单元,还用于记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,更新所述第二关联关系。
结合第四方面,在第四方面第四种可能的实施方式中,所述获取模块,具体用于从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
第五方面,本发明实施例提供了一种虚拟化系统中的加解密装置,应用于虚拟化系统,所述虚拟化系统包括所述加解密装置、VMM以及系统管理模块,所述VMM包括虚拟机管理模块,所述加解密装置包括:
接收单元,用于接收所述虚拟机管理模块发送的虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、为所述创建的用户虚拟机分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性,所述虚拟机创建指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的虚拟机创建请求创建用户虚拟机以及硬盘镜像后发送的;
执行单元,用于在接收单元接收到所述虚拟机创建指示消息后,为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的第一关联关系;
消息返回单元,用于向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
结合第五方面,在第五方面第一种可能的实施方式中,
所述接收单元,还用于接收所述虚拟机管理模块发送的硬盘镜像增加指示消息,所述硬盘镜像增加指示消息中携带所述用户虚拟机标识、所述虚拟机管理模块为所述用户虚拟机新增的硬盘镜像标识及其硬盘镜像属性,所述硬盘镜像指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的硬盘镜像增加请求为所述用户虚拟机创建新增的硬盘镜像后发送的;
所述执行单元,还用于在所述接收单元接收到所述硬盘镜像增加指示消息后,为所述新增的硬盘镜像分配密钥,将所述用户虚拟机标识、新增的硬盘镜像标识,以及为所述新增的硬盘镜像分配的密钥更新至所述第一关联关系。
结合第五方面,在第五方面第二种可能的实施方式中,
所述接收单元,还用于接收所述控制模块发送的加密请求,所述加密请求携带所述用户虚拟机的标识、待写入的硬盘镜像的标识以及所述待写入的数据;
所述执行单元,还用于确定所述第一关联关系中是否包括所述接收单元接收到的所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系,如果是,则根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据;
所述消息返回单元,还用于在所述执行单元确定所述第一关联关系中不包括所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系时,向所述控制模块返回加密失败指示,在所述执行单元确定所述第一关联关系中包括所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系时,将所述加密数据发送给所述控制模块。
结合第五方面第二种可能的实施方式,在第五方面第三种可能的实施方式中,
所述接收单元,还用于接收所述控制模块发送的解密请求,所述解密请求携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述执行单元,还用于确定所述第一关联关系中是否包括所述接收单元接收到的所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,获得解密后的数据;
所述消息返回单元,还用于将获得的解密后的数据发送给所述控制模块。
第六方面,本发明实施例提供了一种虚拟化系统中的控制装置,所述装置包括处理器、存储器、总线和通信接口,
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述路径管理的装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述虚拟化系统中的控制装置执行第二方面或第三方面中任一所述的方法。
第七方面,本发明实施例提供了一种计算机可读介质,包括计算机执行指令,以供计算机的处理器执行所述计算机执行指令时,所述计算机执行第二方面或第三方面中任一所述的方法。
本发明实施例中,在VMM中新增了加解密的控制模块,当所述控制模块获取到用户虚拟机的待写入的数据时,所述控制模块根据待写入的硬盘镜像的属性确定是否需要对待写入的数据进行加密,当需要进行加密时,所述控制模块将待写入数据发送到加解密虚拟机,由加解密虚拟机对待写入数据进行加密处理,并返还加密数据给所述控制模块,所述控制模块将加密数据写入对应的硬盘镜像中,实现用户数据的加密存储。一方面,VMM中的控制模块用于对是否待写入数据是否需要加密进行判断并进行待写入数据的转发,功能实现简单,降低了VMM的系统复杂度,同时,由于本发明实施例中的加解密处理是由专门的加解密虚拟机来实现,无需占用VMM中的资源,避免了资源冲突,提高了系统稳定性;另一方面,加解密虚拟机可以针对不同的用户虚拟机的硬盘镜像分配不同的密钥,针对不同来源的数据流,提供或者不提供加解密服务,从而实现了用户虚拟机的访问权限控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有虚拟化系统中加解密技术实现结构示意图;
图2是本发明实施例提供的一种虚拟机系统结构示意图;
图3是本发明实施例提供的另一种虚拟机系统结构示意图;
图4是本发明实施例提供的一种虚拟机系统中加解密的方法流程示意图;
图5是本发明实施例提供的另一种虚拟机系统中加解密的方法流程示意图;
图6是本发明实施例提供的一种用户虚拟机的创建方法流程示意图;
图7是本发明实施例提供的一种虚拟机系统中的控制装置结构示意图;
图8是本发明实施例提供的一种虚拟化系统中的加解密装置结构示意图;
图9是本发明实施例提供的一种虚拟机化系统中控制装置的硬件构成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图2所示,为本发明实施例提供的一种虚拟化系统结构示意图,包括VMM11和加解密虚拟机13,所述加解密虚拟机13记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述VMM11包括控制模块110,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系。与前述虚拟化系统中的各部件相配合,图2中的用户虚拟机12向其下的硬盘镜像写入数据。
所述控制模块110,用于获取用户虚拟机12的待写入的数据,根据所述第二关联关系确定所述用户虚拟机12的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机13发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述加解密虚拟机13,用于根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据,将所述加密数据发送给所述控制模块110;
所述控制模块110,还用于将所述加密数据写入到所述待写入的硬盘镜像中。
本发明实施例中,在VMM中新增了加解密的控制模块,当所述控制模块获取到用户虚拟机的待写入的数据时,所述控制模块根据待写入的硬盘镜像的属性确定是否需要对待写入的数据进行加密,当需要进行加密时,所述控制模块将待写入数据发送到加解密虚拟机,由加解密虚拟机对待写入数据进行加密处理,并返还加密数据给所述控制模块,所述控制模块将加密数据写入对应的硬盘镜像中,实现用户数据的加密存储。一方面,VMM中的控制模块用于对是否待写入数据是否需要加密进行判断并进行待写入数据的转发,功能实现简单,降低了VMM的系统复杂度,同时,由于本发明实施例中的加解密处理是由专门的加解密虚拟机来实现,无需占用VMM中的资源,避免了资源冲突,提高了系统稳定性;另一方面,加解密虚拟机可以针对不同的用户虚拟机的硬盘镜像分配不同的密钥,针对不同来源的数据流,提供或者不提供加解密服务,从而实现了用户虚拟机的访问权限控制。
更进一步的,在一种具体的实施场景中,如图3所示,为本发明实施例提供的另一种虚拟交互系统结构示意图,虚拟机化系统进一步包括系统管理模块14,所述VMM11中进一步包括虚拟机管理模块112。
在本发明实施例中,首先建立加解密虚拟机13,具体的加解密虚拟机13建立方式可以采用现有的虚拟机建立方式,不同之处在于,新建的加解密虚拟机13专门负责进行加解密处理,所示加解密处理包括密钥分配及数据加解密。在一种具体的应用场景中,加解密虚拟机13中可以安装权限管理程序、密钥管理程序以及加解密程序等等与加解密服务相关的各种程序,从而使得加解密虚拟机13专用于加解密处理,本发明对具体的实现形式并不进行限定。
与前述流程相对应,本发明实施例还提供了用户虚拟机12读数据的流程,前述加解密虚拟机13为用户虚拟机12的硬盘镜像分配的密钥包括加密密钥和解密密钥,对于密钥具体的类型本发明实施例并不进行限定。
当用户虚拟机12需要从硬盘镜像中读取数据时,从硬盘镜像中读取数据,触发读请求,所述读请求携带待读取数据标识。设备驱动获取所述读请求,所述设备驱动调用控制模块110处理所述读请求;
所述控制模块110,还用于获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机13发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;;
所述加解密虚拟机13,还用于接收所述解密请求,确定所述第一关联关系中是否包括所述发送所述读请求的用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,将获得的解密后的数据发送给所述控制模块110;
所述控制模块110,还用于将所述解密后的数据返回给所述用户虚拟机12。
另一方面,所述控制模块110,还用于确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机12。
加解密虚拟机13记录有用户虚拟机标识、硬盘镜像标识以及分配给所述用户虚拟机12的所述硬盘镜像的密钥三者之间的第一关联关系,在读流程和写流程中,加解密虚拟机13可以根据接收到的加密请求或解密请求确定所述加密请求或解密请求针对的硬盘镜像的密钥,从而提供加解密处理。进一步的,如下述方式,本发明实施例还提供了在用户虚拟机12创建过程中记录上述第一关联关系的方式:所述系统管理模块14,还用于向所述虚拟机管理模块112发送虚拟机创建请求,所述虚拟机创建请求中携带待创建的用户虚拟机12的硬盘镜像的属性;所述虚拟机管理模块112,还用于接收所述虚拟机创建请求,创建用户虚拟机12,为创建的所述用户虚拟机12创建硬盘镜像,分配硬盘镜像标识,根据所述虚拟机创建请求确定分配的所述硬盘镜像标识对应的硬盘镜像属性,向所述加解密虚拟机13发送虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机12的标识、所述分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性;所述加解密虚拟机13,还用于接收所述虚拟机创建指示消息,为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机12的标识、所述分配的硬盘镜像标识以及所述密钥之间的所述第一关联关系。
所述加解密虚拟机13,还用于向所述系统管理模块14发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机12的标识。
本发明实施例提供的控制模块110处理用户虚拟机12发起的写请求或读请求时,需要判断读写操作涉及到数据是否需要进行加解密处理,当需要对上述数据进行加解密处理时,将涉及到的数据发送给加解密虚拟机13。其中,控制模块110根据前述第二关联关系判断是否需要对读写操作涉及到数据进行加解密处理。所述控制模块110可以在用户虚拟机12启动过程中建立上述第二关联关系,具体流程包括:所述系统管理模块14,用于向所述虚拟机管理模块112发送虚拟机启动请求,所述虚拟机启动请求携带待启动的用户虚拟机12的标识;所述虚拟机管理模块112,用于接收所述虚拟机启动请求,根据所述虚拟机启动请求启动所述待启动的用户虚拟机12,将启动的用户虚拟机12的硬盘镜像标识及其硬盘镜像属性发送给所述控制模块110;所述控制模块110,还用于接收并记录所述启动的用户虚拟机12的硬盘镜像标识及其硬盘镜像属性,建立所述第二关联关系。
需要说明的是,在一种具体的实施场景中,所述系统管理模块具体可以为云计算操作系统管理模块。
结合图3所示的系统结构,如图4所示,为本发明实施例提供的一种虚拟化系统中加解密的方法流程示意图,包括:
步骤401:系统管理模块发送虚拟机创建请求到虚拟机管理模块,所述虚拟机创建请求用于请求创建用户虚拟机;
具体的,系统管理员通过管理界面设置待创建用户虚拟机的硬盘镜像属性,当系统管理模块发送所述虚拟机创建请求时携带待创建的用户虚拟机的硬盘镜像属性。例如,所述系统管理模块在所述虚拟机创建请求中指示,为用户虚拟机创建3个硬盘镜像,其中1个硬盘镜像的硬盘镜像属性为加密。
步骤402:虚拟机管理模块接收所述虚拟机创建请求,创建用户虚拟机,为创建的所述用户虚拟机创建硬盘镜像,分配硬盘镜像标识,根据所述虚拟机创建请求确定分配的所述硬盘镜像标识对应的硬盘镜像属性;
具体的,虚拟机管理模块在创建用户虚拟机时,为用户虚拟机分配虚拟机标识,配置内存、CPU和网卡等信息。虚拟机管理模块为创建的硬盘镜像分配硬盘镜像标识,根据所述虚拟机创建请求携带的信息确定创建的硬盘镜像的硬盘镜像属性,并将所述硬盘镜像连接到所述用户虚拟机。例如,虚拟机管理模块为创建的用户虚拟机创建3个硬盘镜像,根据所述创建请求消息确定其中1个硬盘镜像的硬盘镜像属性为加密。
步骤403:虚拟机管理模块向加解密虚拟机发送虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、为所述创建的用户虚拟机分配的硬盘镜像标识及其硬盘镜像属性;
步骤404:加解密虚拟机接收所述虚拟机创建指示消息,为所述用户虚拟机的硬盘镜像分配密钥,记录所述用户虚拟机标识、所述硬盘镜像标识以及所述密钥之间的第一关联关系;
步骤405:加解密虚拟机向所述系统管理模块返回虚拟机创建响应消息,所述虚拟机创建响应消息中携带创建的所述用户虚拟机的标识;
步骤406:当系统管理模块确定需要为所述用户虚拟机增加硬盘镜像时,所述系统管理模块向所述虚拟机管理模块发送硬盘镜像增加请求,所述硬盘镜像增加请求消息中携带所述用户虚拟机标识和新增的盘镜像的属性;
需要说明的是,与现有技术中的硬盘镜像增加流程不同的是,本发明实施例中,所述硬盘镜像增加请求中携带硬盘镜像属性,用于指示新增的硬盘镜像是否需要加密。
步骤407:虚拟机管理模块接收所述硬盘镜像增加请求消息,为所述用户虚拟机创建新的硬盘镜像,为所述新的硬盘镜像分配硬盘镜像标识,根据所述硬盘镜像增加请求消息设置所述新的硬盘镜像的硬盘镜像属性,将所述新的硬盘镜像连接到所述用户虚拟机,作为所述用户虚拟机的附加硬盘镜像;
步骤408:所述虚拟机管理模块将所述用户虚拟机标识、所述新的硬盘镜像的标识以及所述新的硬盘镜像的硬盘镜像属性发送给所述加解密虚拟机;
步骤409:所述加解密虚拟机为所述新分配的硬盘镜像标识分配密钥,更新所述第一关联关系,以记录所述用户虚拟机的标识、所述新的硬盘镜像的硬盘镜像标识,以及所述密钥的对应关系。
步骤410:所述加解密虚拟机向系统管理模块返回硬盘镜像增加响应消息,携带所述用户虚拟机的标识以及为所述用户虚拟机新增的硬盘镜像的标识。
步骤411:系统管理模块向虚拟机管理模块发送虚拟机启动请求,所述虚拟机启动请求携带待启动的用户虚拟机的标识;
步骤412:虚拟机管理模块启动所述用户虚拟机,将用户虚拟机连接到硬盘镜像;
步骤413:虚拟机管理模块向所述控制模块发送虚拟机启动指示消息,将启动的用户虚拟机的标识、属于所述用户虚拟机的硬盘镜像的标识和对应的硬盘镜像属性发送给所述控制模块;
步骤414:所述控制模块记录属于所述待启动的用户虚拟机的硬盘镜像的标识和硬盘镜像属性,建立所述第二关联关系;
需要说明的是,所述第二关联关系中还可以包括所述待启动的用户虚拟机的标识。
步骤415:所述控制模块向所述系统管理模块发送虚拟机启动响应消息,携带所述用户虚拟机的标识和硬盘镜像的标识。
步骤416:用户虚拟机向硬盘镜像写入数据,触发写请求,所述写请求携带待写入的数据;
在具体实现中,用户虚拟机向其归属的硬盘镜像写入数据时,设备驱动获取所述写请求,所述设备驱动调用控制模块处理所述写请求;
用户虚拟机向硬盘镜像写入数据的过程可以采用现有技术中的方式,本发明实施例对此并不进行限定。需要说明的是,本发明实施例在上述写入数据的过程中,由设备驱动调用控制模块,以使得控制模块可以判断待写入的硬盘镜像的属性,从而在需要对待写入数据进行加密时,将待写入数据转发到加解密虚拟机中,完成待写入数据的加密过程。具体如下述流程所述。
步骤417:所述控制模块获取所述写请求,查找所述第二关联关系,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则执行步骤418,如果确定的所述硬盘镜像属性为不加密,所述控制模块将所述待写入的数据通过设备驱动写入到所述用户虚拟机的所述待写入的硬盘镜像中。
步骤418:所述控制模块向所述加解密虚拟机发送加密请求,所述加密请求中携带所述待写入的数据和标识头,所述标识头用来区分所述待写入数据对应的用户虚拟机和硬盘镜像。具体的,所述标识头包括所述待写入的硬盘镜像的标识和硬盘镜像属性,进一步的所述标识头中还可以包括硬盘镜像所属的用户虚拟机的标识;
步骤419:加解密虚拟机接收所述加密请求,根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据;
更进一步的,当所述第一关联关系中还记录有用户虚拟机的标识时,所述加解密虚拟机可以对发起所述写请求的用户虚拟机进行权限管理,具体的,所述加解密虚拟机查询所述第一关联关系,确定接收到的标识头中的所述虚拟机的标识和硬盘镜像标识的对应关系是否记录在所述第一关联关系中,如果是,则鉴权通过,获取硬盘镜像标识对应的加密密钥,如果否,则表示所述用户虚拟机与硬盘镜像不匹配,所述用户虚拟机无权向该硬盘镜像写入数据;
具体的,在一种具体的实现场景中,所述加解密虚拟机中可以包含密钥管理模块,由所述密钥管理模块对所述第一关联关系中的密钥进行管理。
步骤420:所述加解密虚拟机将对所述待写入的数据进行加密得到的加密数据返回给所述控制模块;
步骤421:所述控制模块调用所述设备驱动,将所述加密数据写入到所述用户虚拟机的硬盘镜像中;
步骤422:用户虚拟机从硬盘镜像中读取数据,触发读请求,所述读请求携带待读取数据标识;
在具体实现中,用户虚拟机从其硬盘镜像读取数据时触发读请求,设备驱动获取所述读请求,所述设备驱动调用控制模块处理所述读请求;
步骤423:控制模块调用设备驱动的功能,从所述用户虚拟机的硬盘镜像中读取数据,如果读取到的所述数据为加密数据,则执行步骤424
具体的,在硬盘镜像连接到虚拟机的时候,包含控制模块的设备驱动被加载,同时会初始化其中的控制模块。所述控制模块调用现有的设备驱动功能进行寻址,从磁盘中读取所需的数据,而设备驱动从磁盘中读取所需的数据可以采用现有技术中的各种方式,本发明实施例对此并不进行限定。本发明实施例中,所述控制模块具备设备驱动功能调用能力即可。
所述控制模块可以通过判断硬盘镜像属性是否是加密来确定读取的数据是否为加密数据。具体的,如果待读取的硬盘镜像的属性为加密,则说明所述控制模块读取的数据为加密数据,则执行步骤424,以使得所述加解密虚拟机解密读取的加密数据;如果否,则说明所述控制模块读取的数据为非加密数据,无需进行解密,则控制模块直接将读取的数据返回给所述用户虚拟机。
步骤424:所述控制模块向所述加解密虚拟机发送解密请求,所述解密请求中携带所述加密数据、所述用户虚拟机的标识,以及所述硬盘镜像的标识;
步骤425:加解密虚拟机根据接收到的所述用户虚拟机标识和硬盘镜像标识,查询所述第一关联关系,获取所述用户虚拟机的硬盘镜像的解密密钥,使用所述解密密钥解密所述加密数据,获得明文。
具体的,加解密虚拟机查找自身存储的用户虚拟机标识和硬盘镜像标识的对应关系,判断接收到的所述硬盘镜像的标识以及硬盘镜像所属的虚拟机的标识是否保存在所述对应关系中,如果是,则获取记录的所述硬盘镜像标识对应的解密密钥;
具体的,所述加解密虚拟机中的密钥管理模块,用于对各用户虚拟机的硬盘镜像对应的解密密钥进行管理。
步骤426:所述加解密虚拟机将解密得到的明文携带在解密响应中返回给所述控制模块;
步骤427:所述控制模块将接收到的所述解密得到的明文返回给所述用户虚拟机。
需要说明的是,步骤401-410为用户虚拟机创建流程,在流程中,加解密虚拟机记录所述第一关联关系;步骤411-415为用户虚拟机启动流程,当用户虚拟机启动时,所述虚拟机管理模块将启动的用户虚拟机的硬盘镜像标识以及硬盘镜像属性发送给控制模块,所述控制模块记录所述第二关联关系;步骤416-421为写流程,当控制模块获取到用户虚拟机的待写入的数据时,确定对应的待写入的硬盘镜像属性,如果需要对待写入数据进行加密则由加解密虚拟机根据所述第一关联关系对待写入数据进行加密;步骤421-427为读流程,当控制模块获取所述用户虚拟机触发的读请求时,如果读取的数据为加密数据,则将加密数据转发给加解密虚拟机进行解密,从而获得明文。
本发明实施例提供了一种虚拟机系统中进行数据加解密的方法,在本发明实施例中,一方面,加解密处理由专门的加解密虚拟机负责,用户虚拟机无需进行改变,也无需安装其他辅助软件;另一方面,加解密虚拟机位于用户虚拟机的外部,既可以对用户虚拟机的非系统盘进行加密,也可以对用户虚拟机的系统盘进行加密。
在本发明实施例中,与普通的虚拟机类似,上述加解密虚拟机所需的内存、CPU等资源可以动态分配,避免了与主机操作系统及虚拟化软件的资源冲突,提高了主机的可靠性。所述加解密虚拟机上开放限定的端口,限制安装其他应用,也有助于进一步提高系统安全性。更进一步的,在具体产品实现时,由于加解密虚拟机的独立性,还可以针对加解密虚拟机采用看门狗技术、双进程技术、热备技术等方式提高可靠性,安装防病毒、防木马、防火墙等软件提高安全性。
最优地,本发明实施例提供的控制模块可以安装在VMM的设备驱动中,所述控制模块可以调用设备驱动的功能,对于各种类型的硬盘镜像均可以有效提供加解密服务,同时,不影响主机软件系统的构建、发布、安装或启动等。可选地,所述控制模块也可以独立于设备驱动,此时,控制模块具备调用设备驱动功能的能力。
优选地,为所述硬盘镜像分配的密钥可以保存在加解密虚拟机中,使得主机及虚拟化系统外部均无法获知该密钥,保密性较好。另一方面,在加解密虚拟机中保存了用户虚拟机标识、硬盘镜像标识,以及相关的用户信息等等,可以对不同用户虚拟机的硬盘镜像分配不同的密钥,针对不同来源的数据流,提供或不提供加解密服务,实现用户虚拟机的访问权限控制。
在本发明实施例中,所述硬盘镜像,可以是大文件、本地分区、本地块设备,internet小型计算机系统接口(internet Small Computer System Interface,iSCSI)协议提供的网络块设备、通用Internet文件系统(Common Internet File System,CIFS)协议或网络文件系统(Net File System,NFS)协议提供的共享文件等等类型,本发明实施例对此并不进行限定。
如图5所示,为本发明实施例提供的另一种虚拟化系统中加解密的方法流程示意图,应用于虚拟化系统,所述虚拟化系统包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述方法包括:
步骤501:所述控制模块获取用户虚拟机的待写入的数据,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
步骤502:所述控制模块接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
步骤503:所述控制模块将所述加密数据写入到所述待写入的硬盘镜像中。
本发明实施例中,在VMM中新增了加解密的控制模块,当所述控制模块获取到用户虚拟机的待写入的数据时,所述控制模块根据待写入的硬盘镜像属性确定是否需要对待写入的数据进行加密,当需要进行加密时,所述控制模块将待写入数据发送到加解密虚拟机,由加解密虚拟机对待写入数据进行加密处理,并返还加密数据给所述控制模块,所述控制模块将加密数据写入对应的硬盘镜像中,实现用户数据的加密存储。一方面,VMM中的控制模块用于对是否待写入数据是否需要加密进行判断并进行待写入数据的转发,功能实现简单,降低了VMM的系统复杂度,同时,由于本发明实施例中的加解密处理是由专门的加解密虚拟机来实现,无需占用VMM中的资源,避免了资源冲突,提高了系统稳定性;另一方面,加解密虚拟机可以针对不同的用户虚拟机的硬盘镜像分配不同的密钥,针对不同来源的数据流,提供或者不提供加解密服务,从而实现了用户虚拟机的访问权限控制。
如图6所示,为本发明实施例提供的一种用户虚拟机的创建方法流程示意图,应用于虚拟化系统,所述虚拟化系统包括VMM、系统管理模块以及加解密虚拟机,所述VMM包括虚拟机管理模块,所述方法包括:
步骤601:所述加解密虚拟机接收所述虚拟机管理模块发送的虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、为所述创建的用户虚拟机分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性,所述虚拟机创建指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的虚拟机创建请求创建用户虚拟机以及硬盘镜像后发送的;
步骤602:所述加解密虚拟机为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的第一关联关系;
步骤603:所述加解密虚拟机向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
在虚拟机创建完成后,还可以为该用户虚拟机添加新的硬盘镜像,并且为新添加的硬盘镜像分配密钥,具体流程包括:
所述加解密虚拟机接收所述虚拟机管理模块发送的硬盘镜像增加指示消息,所述硬盘镜像增加指示消息中携带所述用户虚拟机标识、所述虚拟机管理模块为所述用户虚拟机新增的硬盘镜像标识及其硬盘镜像属性,所述硬盘镜像指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的硬盘镜像增加请求为所述用户虚拟机创建新增的硬盘镜像后发送的;
所述加解密虚拟机为所述新增的硬盘镜像分配密钥,将所述用户虚拟机标识、新增的硬盘镜像标识,以及为所述新增的硬盘镜像分配的密钥更新至所述第一关联关系。
在上述虚拟机创建过程中,虚拟机管理模块识别出需要提供加解密服务的硬盘镜像,将用户虚拟机标识和硬盘镜像标识发送给加解密虚拟机,由加解密虚拟机为上述硬盘镜像分配密钥,并记录所述第一关联关系,以使得所述解密虚拟机可以对上述用户虚拟机对上述硬盘镜像的读写数据进行加解密处理。
与前述系统和方法实施例相对应,如图7所示,为本发明实施例提供的一种虚拟机系统中的控制装置结构示意图,所述控制装置位于虚拟化系统的VMM中,所述虚拟化系统还包括加解密虚拟机,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述控制装置包括:
获取单元701,用于获取用户虚拟机的待写入的数据;
处理单元702,用于根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性;
发送单元703,用于当所述处理单元702确定的所述硬盘镜像属性为加密时,向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述获取单元701,还用于接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
写入单元704,用于将所述获取单元701接收到的所述加密数据写入到所述待写入的硬盘镜像中。
进一步的,所述密钥还包括解密密钥,
所述获取单元701,还用于获取所述用户虚拟机触发的读请求;
所述处理单元702,还用于从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据;
所述发送单元703,还用于在所述处理单元702确定读取的所述数据为加密数据时,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述获取单元701,还用于接收所述加解密虚拟机返回的解密后的数据,其中,所述解密后的数据为所述加解密虚拟机在确定所述第一关联关系中包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系后,使用根据所述第一关联关系确定的所述硬盘镜像标识对应的解密密钥对所述加密数据进行解密获得的;
所述发送单元703,还用于将所述获取单元701接收到的所述解密后的数据返回给所述用户虚拟机。
所述发送单元703,还用于在所述处理单元702确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
所述获取单元701,还用于接收虚拟机管理模块发送的虚拟机启动指示消息,所述虚拟机启动指示消息携带启动的用户虚拟机的标识、所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性;
所述处理单元702,还用于记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,更新所述第二关联关系。
所述获取模块701,具体用于从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
对应于图6所述的方法,如图8所示,本发明实施例还提供了一种虚拟化系统中的加解密装置结构示意图,应用于虚拟化系统,所述虚拟化系统包括所述加解密装置、VMM以及系统管理模块,所述VMM包括虚拟机管理模块,所述加解密装置包括:
接收单元801,用于接收所述虚拟机管理模块发送的虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、为所述创建的用户虚拟机分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性,所述虚拟机创建指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的虚拟机创建请求创建用户虚拟机以及硬盘镜像后发送的;
执行单元802,用于在接收单元801接收到所述虚拟机创建指示消息后,为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的第一关联关系;
消息返回单元803,用于向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
进一步的,所述接收单元801,还用于接收所述虚拟机管理模块发送的硬盘镜像增加指示消息,所述硬盘镜像增加指示消息中携带所述用户虚拟机标识、所述虚拟机管理模块为所述用户虚拟机新增的硬盘镜像标识及其硬盘镜像属性,所述硬盘镜像指示消息具体为所述虚拟机管理模块根据所述系统管理模块发送的硬盘镜像增加请求为所述用户虚拟机创建新增的硬盘镜像后发送的;
所述执行单元802,还用于在所述接收单元701接收到所述硬盘镜像增加指示消息后,为所述新增的硬盘镜像分配密钥,将所述用户虚拟机标识、新增的硬盘镜像标识,以及为所述新增的硬盘镜像分配的密钥更新至所述第一关联关系。
所述VMM中包括控制模块,
所述接收单元801,还用于接收所述控制模块发送的加密请求,所述加密请求携带所述用户虚拟机的标识、待写入的硬盘镜像的标识以及所述待写入的数据;
所述执行单元802,还用于确定所述第一关联关系中是否包括所述接收单元801接收到的所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系,如果是,则根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据;
所述消息返回单元803,还用于在所述执行单元802确定所述第一关联关系中不包括所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系时,向所述控制模块返回加密失败指示,在所述执行单元确定所述第一关联关系中包括所述用户虚拟机的标识和待写入的硬盘镜像的标识的对应关系时,将所述加密数据发送给所述控制模块。
所述接收单元801,还用于接收所述控制模块发送的解密请求,所述解密请求携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述执行单元802,还用于确定所述第一关联关系中是否包括所述接收单元801接收到的所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,获得解密后的数据;
所述消息返回单元,还用于将获得的解密后的数据发送给所述控制模块。
本发明实施例中,在VMM中新增了加解密的控制模块,当所述控制模块获取到用户虚拟机的待写入的数据时,所述控制模块根据待写入的硬盘镜像属性确定是否需要对待写入的数据进行加密,当需要进行加密时,所述控制模块将待写入数据发送到加解密虚拟机,由加解密虚拟机对待写入数据进行加密处理,并返还加密数据给所述控制模块,所述控制模块将加密数据写入对应的硬盘镜像中,实现用户数据的加密存储。一方面,VMM中的控制模块用于对是否待写入数据是否需要加密进行判断并进行待写入数据的转发,功能实现简单,降低了VMM的系统复杂度,同时,由于本发明实施例中的加解密处理是由专门的加解密虚拟机来实现,无需占用VMM中的资源,避免了资源冲突,提高了系统稳定性;另一方面,加解密虚拟机可以针对不同的用户虚拟机的硬盘镜像分配不同的密钥,针对不同来源的数据流,提供或者不提供加解密服务,从而实现了用户虚拟机的访问权限控制。
进一步的,如图9所示,为本发明实施例提供的一种控制装置的硬件构成示意图,在具体的产品实现中,所述控制装置包括至少一个处理器(例如CPU),至少一个网络接口或者其他通信接口,存储器,和至少一个通信总线,用于实现这些上述实施例中各部件之间的连接通信。处理器用于执行存储器中存储的可执行模块,实现上述各实施例中控制模块中各部件的功能。存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该控制模块与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
在一些实施方式中,计算机可读介质中存储了程序指令,包括计算机执行指令,以供计算机的处理器执行所述计算机执行指令时,所述计算机执行如上述各实施例中任一所述的虚拟化系统中加解密的方法。其中,程序指令可包括本发明上述实施例中指出的各个部件,各部件具体的实现方式可参见本发明上述实施例中的相应内容,这里不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,资源管理服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (16)

1.一种虚拟化系统,其特征在于,包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,
所述控制模块,用于获取用户虚拟机的待写入的数据,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述加解密虚拟机,用于根据所述第一关联关系确定所述待写入的硬盘镜像的标识对应的加密密钥,使用所述加密密钥对所述待写入的数据进行加密,获得加密数据,将所述加密数据发送给所述控制模块;
所述控制模块,还用于将所述加密数据写入到所述待写入的硬盘镜像中;
所述第一关联关系还包括用户虚拟机标识,
所述控制模块,具体用于向所述加解密虚拟机发送所述用户虚拟机的标识、所述待写入的硬盘镜像的标识,以及待写入的数据;
所述加解密虚拟机,具体用于获取所述用户虚拟机的标识以及所述待写入的硬盘镜像标识,确定所述第一关联关系中是否包括所述用户虚拟机的标识与所述待写入的硬盘镜像标识的对应关系,如果否,则向所述控制模块返回加密失败指示,如果是,则使用确定的所述待写入的硬盘镜像标识对应的加密密钥对所述待写入的数据进行加密;
所述系统还包括系统管理模块以及虚拟机管理模块,
所述系统管理模块,用于向所述虚拟机管理模块发送虚拟机启动请求,所述虚拟机启动请求携带待启动的用户虚拟机的标识;
所述虚拟机管理模块,用于接收所述虚拟机启动请求,根据所述虚拟机启动请求启动所述待启动的用户虚拟机,将启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性发送给所述控制模块;
所述控制模块,还用于接收并记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,建立所述第二关联关系。
2.如权利要求1所述的系统,其特征在于,所述密钥还包括解密密钥,
所述控制模块,还用于获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述加解密虚拟机,还用于接收所述解密请求,确定所述第一关联关系中是否包括所述发送所述读请求的用户虚拟机的标识和所述硬盘镜像的标识的对应关系,如果是,则从所述第一关联关系中获取所述硬盘镜像的标识对应的解密密钥,使用所述解密密钥解密读取的所述加密数据,将获得的解密后的数据发送给所述控制模块;
所述控制模块,还用于将所述解密后的数据返回给所述用户虚拟机。
3.如权利要求2所述的系统,其特征在于,
所述控制模块,还用于确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
4.如权利要求1-3中任一所述的系统,其特征在于,
所述系统管理模块,还用于向所述虚拟机管理模块发送虚拟机创建请求,所述虚拟机创建请求中携带待创建的用户虚拟机的硬盘镜像的属性;
所述虚拟机管理模块,还用于接收所述虚拟机创建请求,创建用户虚拟机,为创建的所述用户虚拟机创建硬盘镜像,分配硬盘镜像标识,根据所述虚拟机创建请求确定分配的所述硬盘镜像标识对应的硬盘镜像属性,向所述加解密虚拟机发送虚拟机创建指示消息,所述虚拟机创建指示消息中携带创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述分配的所述硬盘镜像标识对应的硬盘镜像属性;
所述加解密虚拟机,还用于接收所述虚拟机创建指示消息,为创建的硬盘镜像分配密钥,建立所述创建的用户虚拟机的标识、所述分配的硬盘镜像标识以及所述密钥之间的所述第一关联关系。
5.如权利要求4所述的系统,其特征在于,
所述加解密虚拟机,还用于向所述系统管理模块发送虚拟机创建响应消息,所述虚拟机创建响应消息中包括所述创建的用户虚拟机的标识。
6.如权利要求4所述的系统,其特征在于,
所述系统管理模块,还用于向所述虚拟机管理模块发送硬盘镜像增加请求消息,所述硬盘镜像增加请求消息中携带所述用户虚拟机标识和新增的硬盘镜像的属性;
所述虚拟机管理模块,还用于接收所述硬盘镜像增加请求消息,为所述用户虚拟机创建新的硬盘镜像,根据所述硬盘镜像增加请求消息确定所述新的硬盘镜像的硬盘镜像属性,将所述用户虚拟机标识、所述新的硬盘镜像的标识以及所述新的硬盘镜像的硬盘镜像属性发送给所述加解密虚拟机;
所述加解密虚拟机,还用于为所述新的硬盘镜像分配密钥,更新所述第一关联关系。
7.如权利要求1所述的系统,其特征在于,
所述控制模块,具体用于从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
8.一种虚拟化系统中加解密的方法,其特征在于,应用于虚拟化系统,所述虚拟化系统包括虚拟机监视器VMM和加解密虚拟机,所述VMM包括控制模块,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述方法包括:
所述控制模块获取用户虚拟机的待写入的数据,根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性,如果确定的所述硬盘镜像属性为加密,则向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述控制模块接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
所述控制模块将所述加密数据写入到所述待写入的硬盘镜像中;
所述系统还包括虚拟机管理模块,所述方法还包括:
所述控制模块接收虚拟机管理模块发送的虚拟机启动指示消息,所述虚拟机启动指示消息携带启动的用户虚拟机的标识、所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性;
所述控制模块记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,更新所述第二关联关系。
9.如权利要求8所述的方法,其特征在于,所述第一关联关系中还包括用户虚拟机标识,所述密钥还包括解密密钥,所述方法还包括:
所述控制模块获取所述用户虚拟机触发的读请求,从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述控制模块接收所述加解密虚拟机返回的解密后的数据,其中,所述解密后的数据为所述加解密虚拟机在确定所述第一关联关系中包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系后,使用根据所述第一关联关系确定的所述硬盘镜像标识对应的解密密钥对所述加密数据进行解密获得的;
所述控制模块将所述解密后的数据返回给所述用户虚拟机。
10.如权利要求9所述的方法,其特征在于,还包括:
所述控制模块在确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
11.如权利要求8所述的方法,其特征在于,所述控制模块获取用户虚拟机的待写入的数据包括:
所述控制模块从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
12.一种虚拟化系统中的控制装置,其特征在于,所述控制装置位于虚拟化系统的VMM中,所述虚拟化系统还包括加解密虚拟机,所述加解密虚拟机记录有硬盘镜像标识以及密钥之间的第一关联关系,所述密钥包括加密密钥,所述虚拟化系统中记录有硬盘镜像标识以及硬盘镜像属性之间的第二关联关系,所述控制装置包括:
获取单元,用于获取用户虚拟机的待写入的数据;
处理单元,用于根据所述第二关联关系确定所述用户虚拟机的待写入的硬盘镜像的硬盘镜像属性;
发送单元,用于当所述处理单元确定的所述硬盘镜像属性为加密时,向所述加解密虚拟机发送所述待写入的硬盘镜像的标识以及所述待写入的数据;
所述获取单元,还用于接收所述加解密虚拟机使用所述加密密钥对所述待写入的数据进行加密获得的加密数据,其中,所述加密密钥为所述加解密虚拟机根据所述第一关联关系确定的所述待写入的硬盘镜像的标识对应的加密密钥;
写入单元,用于将所述获取单元接收到的所述加密数据写入到所述待写入的硬盘镜像;
所述获取单元,还用于接收虚拟机管理模块发送的虚拟机启动指示消息,所述虚拟机启动指示消息携带启动的用户虚拟机的标识、所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性;
所述处理单元,还用于记录所述启动的用户虚拟机的硬盘镜像标识及其硬盘镜像属性,更新所述第二关联关系。
13.如权利要求12所述的装置,其特征在于,所述密钥还包括解密密钥,所述第一关联关系还包括用户虚拟机的标识,
所述获取单元,还用于获取所述用户虚拟机触发的读请求;
所述处理单元,还用于从待读取的硬盘镜像中读取数据,确定读取的所述数据为加密数据;
所述发送单元,还用于在所述处理单元确定读取的所述数据为加密数据时,向所述加解密虚拟机发送解密请求,所述解密请求中携带所述用户虚拟机的标识、读取的所述加密数据以及所述硬盘镜像的标识;
所述获取单元,还用于接收所述加解密虚拟机返回的解密后的数据,其中,所述解密后的数据为所述加解密虚拟机在确定所述第一关联关系中包括所述用户虚拟机的标识和所述硬盘镜像的标识的对应关系后,使用根据所述第一关联关系确定的所述硬盘镜像标识对应的解密密钥对所述加密数据进行解密获得的;
所述发送单元,还用于将所述获取单元接收到的所述解密后的数据返回给所述用户虚拟机。
14.如权利要求13所述的装置,其特征在于,
所述发送单元,还用于在所述处理单元确定读取的所述数据为非加密数据时,将读取的所述非加密数据返回给所述用户虚拟机。
15.如权利要求12所述的装置,其特征在于,
所述获取模块,具体用于从设备驱动获取所述用户虚拟机触发的写请求,所述写请求携带所述待写入的数据。
16.一种虚拟化系统中的控制装置,其特征在于,所述装置包括处理器、存储器、总线和通信接口,
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述控制装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述虚拟化系统中的控制装置执行如权利要求8-11中任一所述的方法。
CN201480056793.7A 2014-12-30 2014-12-30 虚拟化系统中加解密的方法、装置和系统 Active CN106063218B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/095598 WO2016106566A1 (zh) 2014-12-30 2014-12-30 虚拟化系统中加解密的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN106063218A CN106063218A (zh) 2016-10-26
CN106063218B true CN106063218B (zh) 2018-06-05

Family

ID=56283847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480056793.7A Active CN106063218B (zh) 2014-12-30 2014-12-30 虚拟化系统中加解密的方法、装置和系统

Country Status (5)

Country Link
US (2) US9959410B2 (zh)
EP (1) EP3160103B1 (zh)
JP (1) JP6414863B2 (zh)
CN (1) CN106063218B (zh)
WO (1) WO2016106566A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892265B1 (en) * 2015-03-31 2018-02-13 Veritas Technologies Llc Protecting virtual machine data in cloud environments
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
CN105184154B (zh) * 2015-09-15 2017-06-20 中国科学院信息工程研究所 一种在虚拟化环境中提供密码运算服务的系统和方法
US10303899B2 (en) * 2016-08-11 2019-05-28 Intel Corporation Secure public cloud with protected guest-verified host control
CN106775924B (zh) * 2016-11-07 2018-08-07 北京百度网讯科技有限公司 虚拟机启动方法和装置
US11687654B2 (en) * 2017-09-15 2023-06-27 Intel Corporation Providing isolation in virtualized systems using trust domains
CN110297687B (zh) * 2018-03-21 2023-05-30 阿里巴巴集团控股有限公司 基于虚拟主机的数据交互方法、装置及系统
CN109190386B (zh) * 2018-04-04 2021-11-12 中国电子科技网络信息安全有限公司 基于Device Mapper的容器镜像分层加密存储方法
CN109639424B (zh) * 2018-12-25 2022-06-17 超越科技股份有限公司 一种基于不同密钥的虚拟机镜像加密方法及装置
US11537421B1 (en) * 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
CN110334531B (zh) * 2019-07-01 2023-07-11 深信服科技股份有限公司 虚拟机密钥的管理方法、主节点、系统、存储介质及装置
CN111741068B (zh) * 2020-05-20 2022-03-18 中国电子科技网络信息安全有限公司 一种数据加密密钥传输方法
KR102179185B1 (ko) * 2020-07-02 2020-11-17 굿모닝아이텍(주) 서버 관리 시스템
KR102175317B1 (ko) * 2020-07-02 2020-11-06 굿모닝아이텍(주) 데스크톱 가상화
US11936791B2 (en) * 2020-09-21 2024-03-19 Jason Burt Verification of the reliability of software and devices against assertions and guarantees
CN112748984B (zh) * 2020-12-28 2022-12-06 海光信息技术股份有限公司 虚拟机数据处理、控制方法、处理器、芯片、装置及介质
CN114553478A (zh) * 2022-01-13 2022-05-27 成都储迅科技有限责任公司 一种基于国密的云服务器访问固态硬盘的安全系统和方法
CN114285675B (zh) * 2022-03-07 2022-07-12 杭州优云科技有限公司 一种报文转发方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034046A (zh) * 2010-12-10 2011-04-27 北京世纪互联工程技术服务有限公司 云计算环境中基于磁盘驱动的数据底层加密方法
CN102609643A (zh) * 2012-01-10 2012-07-25 道里云信息技术(北京)有限公司 一种对虚拟机作动态密码学保护与所需的密钥管理方法
CN104104692A (zh) * 2014-08-05 2014-10-15 山东中孚信息产业股份有限公司 一种虚拟机加密方法、解密方法及加解密控制系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096120A1 (ja) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. 実行装置
JP4782871B2 (ja) * 2007-10-03 2011-09-28 富士通株式会社 デバイスアクセス制御プログラム、デバイスアクセス制御方法および情報処理装置
US8364983B2 (en) * 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
CN101587524B (zh) 2009-06-23 2015-02-11 宏碁电脑(上海)有限公司 一种基于虚拟系统的数据存储设备加密方法
US9367341B2 (en) * 2010-03-30 2016-06-14 Red Hat Israel, Ltd. Encrypting and decrypting virtual disk content using a single user sign-on
WO2011150346A2 (en) * 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
JP5552942B2 (ja) * 2010-07-28 2014-07-16 富士通株式会社 情報送信装置、ネットワークシステム、情報送信方法および情報送信プログラム
CN101976317B (zh) * 2010-11-05 2012-12-05 北京世纪互联宽带数据中心有限公司 一种私有云计算应用中虚拟机镜像安全方法
US8495356B2 (en) * 2010-12-31 2013-07-23 International Business Machines Corporation System for securing virtual machine disks on a remote shared storage subsystem
US9021264B2 (en) * 2011-02-03 2015-04-28 Cloudlink Technologies Inc. Method and system for cloud based storage
US8687814B2 (en) 2011-05-20 2014-04-01 Citrix Systems, Inc. Securing encrypted virtual hard disks
JP5786611B2 (ja) * 2011-09-30 2015-09-30 富士通株式会社 ストレージ装置およびストレージシステム
CN103067425B (zh) * 2011-10-20 2016-04-27 中国移动通信集团公司 虚拟机创建方法、虚拟机管理系统及相关设备
US9250945B2 (en) * 2012-03-27 2016-02-02 Microsoft Technology Licensing, Llc Detecting a repeating execution time sequence in a virtual machine
CN103457919A (zh) * 2012-06-04 2013-12-18 中兴通讯股份有限公司 虚拟机镜像的安全验证方法和装置
CN103634339A (zh) 2012-08-22 2014-03-12 中国银联股份有限公司 虚拟加密机装置、金融加密机及加密报文的方法
CN104756127B (zh) * 2012-10-12 2018-03-27 皇家飞利浦有限公司 通过虚拟机进行安全数据处理
CN103107994B (zh) * 2013-02-06 2017-02-08 中电长城网际系统应用有限公司 一种虚拟化环境数据安全隔离方法和系统
US9215067B2 (en) * 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
US10671545B2 (en) * 2014-06-28 2020-06-02 Vmware, Inc. Asynchronous encryption and decryption of virtual machine memory for live migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034046A (zh) * 2010-12-10 2011-04-27 北京世纪互联工程技术服务有限公司 云计算环境中基于磁盘驱动的数据底层加密方法
CN102609643A (zh) * 2012-01-10 2012-07-25 道里云信息技术(北京)有限公司 一种对虚拟机作动态密码学保护与所需的密钥管理方法
CN104104692A (zh) * 2014-08-05 2014-10-15 山东中孚信息产业股份有限公司 一种虚拟机加密方法、解密方法及加解密控制系统

Also Published As

Publication number Publication date
US10409990B2 (en) 2019-09-10
EP3160103B1 (en) 2019-11-20
EP3160103A4 (en) 2017-10-18
EP3160103A1 (en) 2017-04-26
US20180218156A1 (en) 2018-08-02
WO2016106566A1 (zh) 2016-07-07
JP2017535091A (ja) 2017-11-24
US20170300695A1 (en) 2017-10-19
JP6414863B2 (ja) 2018-10-31
US9959410B2 (en) 2018-05-01
CN106063218A (zh) 2016-10-26

Similar Documents

Publication Publication Date Title
CN106063218B (zh) 虚拟化系统中加解密的方法、装置和系统
US9461819B2 (en) Information sharing system, computer, project managing server, and information sharing method used in them
CN102884535B (zh) 受保护装置管理
US7487366B2 (en) Data protection program and data protection method
EP2107486B1 (en) Method and apparatus for providing a secure display window inside the primary display
CN102726027B (zh) 虚拟机全盘加密下预启动时的密钥传输方法和设备
CN113240519A (zh) 基于区块链的智能合约管理方法及装置、电子设备
US20100153749A1 (en) Device-access control program, device-access control process, and information processing apparatus for controlling access to device
TWI744797B (zh) 用於將安全客體之安全金鑰繫結至硬體安全模組之電腦實施方法、系統及電腦程式產品
CN110414268A (zh) 访问控制方法、装置、设备及存储介质
CN110022199A (zh) 用于计数器模式存储器保护的间接目录
US20190102322A1 (en) Cross-domain security in cryptographically partitioned cloud
JP2011048661A (ja) 仮想サーバ暗号化システム
JP2008171076A (ja) ジョブ実行装置及びその制御方法
CN107749862A (zh) 一种数据加密集中存储方法、服务器、用户终端及系统
JP2023511834A (ja) セキュア・ゲストへのセキュリティ・モジュールのセキュア・オブジェクトのバインディング
US20200167085A1 (en) Operating a secure storage device
JP2021530009A (ja) 暗号化されたデータに対するセキュアな動作
JP7412835B1 (ja) 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム
CN117056943A (zh) 数据处理方法、系统、设备及可读存储介质
JP2005020105A (ja) 通信ユニット、情報通信システムおよび情報通信方法
CN110990120A (zh) 虚拟机监视器分区间通信方法及装置、存储介质和终端
JP2020043493A (ja) ネットワーク装置及びプログラム
JPH10320291A (ja) データ変換装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220215

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right