CN105184154B - 一种在虚拟化环境中提供密码运算服务的系统和方法 - Google Patents
一种在虚拟化环境中提供密码运算服务的系统和方法 Download PDFInfo
- Publication number
- CN105184154B CN105184154B CN201510586037.1A CN201510586037A CN105184154B CN 105184154 B CN105184154 B CN 105184154B CN 201510586037 A CN201510586037 A CN 201510586037A CN 105184154 B CN105184154 B CN 105184154B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- key file
- key
- input
- subsystem
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种在虚拟化环境中提供密码运算服务的系统和方法。该系统中,配置子系统为管理员和普通用户提供输入虚拟密码设备相关信息的接口;密钥文件存储子系统存储密钥文件,并使用保护口令进行保护;虚拟机运行子系统根据配置子系统的输入,从存储子系统中获取相应的密钥文件并为客户虚拟机创建虚拟密码设备,最后运行客户虚拟机,为客户虚拟机提供密码运算服务。采用本发明,管理员/普通用户可以通过相应的接口为客户虚拟机指定密钥文件和输入保护口令,以便创建虚拟的密码设备,能够友好地对虚拟密码设备进行集中化的管理;虚拟化管理平台中的客户虚拟机可以请求安全的密码运算服务,缓解了虚拟化环境中的密钥安全问题。
Description
技术领域
本发明属于计算机安全技术领域,特别涉及一种在虚拟化环境中提供密码运算服务的系统和方法。
背景技术
随着云计算的不断发展,虚拟化技术也越发得到广泛应用。利用虚拟化技术,可以在单一的计算机物理平台上同时运行多台虚拟机(Virtual Machine,简称VM)。虚拟化技术有着诸多的优点。首先,虚拟机监控器(Virtual Machine Monitor,简称VMM)能够对物理平台的资源进行统一管理,并监控其之上运行的虚拟机;其次,虚拟化技术确保了不同虚拟机之间的彼此隔离,一台虚拟机上的服务并不会影响到其它虚拟机;最后,虚拟机可以快捷方便地复制、移动等。
使用虚拟化技术,能够为广大的网络用户群体提供虚拟桌面办公等多种方便、快捷的服务。参与到这个模式中的群体大致可划分为两类:管理员与普通用户。其中,管理员是指负责对整个虚拟化环境进行后台的维护与管理的群体,普通用户则是指仅使用虚拟化环境对外提供的虚拟机功能(例如虚拟桌面办公等)而无权访问虚拟化环境后台的群体。
在上述的虚拟桌面办公情况下,管理员需要对虚拟化环境中的多台虚拟机进行集中化的管理。当前的虚拟化管理平台主要有oVirt,RHEV,Xen-Center,Virt-Manager等,利用虚拟化管理平台,可以方便地在云计算环境中的多个物理平台上搭建虚拟化环境,并对虚拟化环境中的各类资源进行统一有效的管理,尤其是对于虚拟机可以进行创建、复制、移动、备份等工作。虚拟化平台的结构主要包括如下组件:宿主机(host),即虚拟机运行所基于的物理平台,为虚拟机的运行提供实际的硬件平台。一个云计算环境中可以有多台宿主机,每台宿主机上可以运行多台虚拟机;客户虚拟机(guest VM),即运行在宿主机上的虚拟机,由于虚拟机监控器的存在,一台宿主机上可以运行多台彼此独立的客户虚拟机,每台客户虚拟机拥有独立的操作系统以及应用;管理中心(manager),它负责对整个虚拟化平台环境中的主机、虚拟机、网络等资源进行统一管理;存储系统(storage),用于存储虚拟化平台中包括客户机磁盘映象在内的各类数据资源。
当前许多计算机应用的实现依赖于密码学。例如通过密码学中的密码算法,能够实现数据加密、完整性验证、证书签名等应用。密码算法的基本假设是:攻击者无法获得密钥,只有密钥的所有者能够访问密钥。但这一假设在实际的信息系统中往往难以保证。在传统的计算机系统中,攻击者可以通过多种攻击手段窃取密钥:一方面,攻击者可以通过软件或者硬件的攻击方法直接从计算机内存中窃取密钥数据;另一方面,攻击者也可以通过侧信道攻击等间接攻击方法还原出密钥数据。
针对密钥安全问题,通常有两种解决方案:一种是开发硬件密码设备,这类方案用专用的硬件来进行密钥的存储、运算等工作。但是许多硬件密码设备和虚拟化环境并不能很好地结合,难以在虚拟化环境平台中部署。
另一种解决方案是利用软件方法开发安全的密码运算服务。基于软件开发的密码运算服务成本较低,大规模的部署较为容易,并且能够很好地与虚拟化环境相结合。一个方案是中国科学院信息工程研究所提出的虚拟密码设备方案。该方案设计了运行在虚拟机监控器中的虚拟密码管理器,用以对宿主机上的可用密码计算资源(可以是虚拟机监控器执行的软件密码算法实现)进行管理,创建虚拟的密码运算设备(称为虚拟密码设备,用以存储分配给客户虚拟机的密钥资源,客户虚拟机通过虚拟的设备接口与之进行通信)供客户虚拟机使用。当客户虚拟机需要进行密码运算时,会向虚拟密码设备发送密码运算请求,由虚拟密码设备管理器完成密码运算,并将运算结果返回给客户虚拟机。
具体的,上述的虚拟密码设备方案以QEMU-KVM下的实现为例(称为virtio-ct),如图5所示。Virtio-ct的主要目标是计算过程中的所有密钥和敏感中间状态不能被客户虚拟机访问。密钥以文件的形式存储在宿主机的磁盘中,通过指定密钥文件的路径为客户虚拟机分配密钥实体。密码计算时,可以根据客户虚拟机发来的消息,直接调用密码算法实现软件来进行相应的密码运算操作。虚拟密码设备管理器在QEMU-KVM中实现,集成在QEMU进程中。虚拟密码设备和客户虚拟机之间的计算请求和结果的传递采用virtio技术实现,Virtio的基本结构框架如图6所示:其中前端驱动(frondend,如virtio-blk、virtio-net等)是在客户虚拟机中存在的驱动程序模块,而后端处理程序(backend)是在QEMU中实现的。在QEMU-KVM下的实现中,前端驱动是virtio-ct,而后端处理程序调用密码算法实现软件(在virtio-ct中,使用OpenSSL软件包)来进行相应的密码操作。
前后端驱动间还定义了两层来支持客户虚拟机与QEMU之间的通信。其中,包括虚拟队列(virtqueues)接口,它在概念上将前端驱动程序附加到后端处理程序,虚拟队列通过调用下层virtio-ring使前端驱动程序与后端处理程序在相同应用二进制接口(ABI:Application Binary Interface)下,能够相互发送及接受数据。因此,虚拟队列被视为客户虚拟机和虚拟机监控器的衔接点。Virtio-ct实例化的虚拟队列按照功能可分为两类:一类用于虚拟机监控器和客户虚拟机之间传递设备管理消息,另一类则用于传递密码服务消息。每一对虚拟队列都分别连接虚拟机监控器和客户虚拟机,可以支持客户虚拟机向虚拟机监控器发送消息或者从其处接受消息。Virtio-ring实现了环形缓冲区(ring buffer),用于保存前端驱动和后端处理程序执行的信息,并且它可以一次性保存前端驱动的多次I/O请求,并且交由后端驱动去批量处理。在virtio-ct中,客户虚拟机动态申请内存,并把地址通过PCI配置接口发送给虚拟密码设备管理器,虚拟密码设备管理器通过添加一个偏移得到该内存区域的虚拟地址。两者通过该共享的内存区域进行通信。
不同于以往架构中由客户虚拟机本身进行密码运算,Virtio-ct所有的密码运算都在虚拟机监控器中完成,即便攻击者攻占了客户虚拟机,也无法窃取密钥数据,实现了虚拟化环境中的密钥安全防护。
虽然上述的虚拟密码设备方案一定程度解决了密码服务的安全问题,但仍然存在不足:虚拟密码设备对应的密钥文件由口令保护,故而在启动客户虚拟机的时候,需要负责虚拟密码设备的管理员在宿主机端输入口令。这样便无法向使用客户虚拟机的普通用户提供便捷、友好的安全密码服务,无法实现集中式的管理。如果密钥文件以明文存储,则无须管理员输入口令,但是就无法提供安全的密码服务。基于这些问题,需要设计新的系统和方法,对虚拟密码设备进行统一的、集中式的管理,同时给使用虚拟机的普通用户提供友好的使用接口。
发明内容
本发明提供了一种在虚拟化环境中提供密码运算服务的方法和系统。该方案在虚拟化管理平台中融合了安全的密码运算服务(该服务由虚拟密码设备来实现)。一方面,通过虚拟化管理平台能够对虚拟密码设备进行集中化的统一管理,并提供友好的操作接口;另一方面,虚拟化平台也可以为其管理的客户虚拟机提供安全的密码运算服务(该服务由虚拟密码设备来实现),解决了客户虚拟机中的密钥安全问题。
具体来说,本发明的技术方案如下:
一种在虚拟化环境中提供密码运算服务的系统,该系统中包含以下三个子系统:
配置子系统:部署于虚拟化平台的管理中心,为管理员/普通用户提供输入虚拟密码设备相关信息(包括密钥文件名、密钥文件保护口令)的接口,为客户虚拟机指定所使用的密钥,以便之后为客户虚拟机创建虚拟密码设备。配置子系统支持两种不同方式的密钥文件分配操作:(1)密钥文件名和保护口令都由管理员输入,或者(2)密钥文件名由管理员输入、保护口令由普通用户输入。
密钥文件存储子系统:部署于虚拟化平台的存储系统,用于存储密钥文件(密钥可以是非对称密码算法的私钥、或者对称密码算法的对称密钥),密钥文件中的密钥数据用口令进行保护。具体来讲,可以对保护口令使用Hash算法,生成256bit的AES密钥,来对密钥文件中的数据进行加密。
虚拟机运行子系统:部署于每台宿主机,根据配置子系统的输入,从密钥文件存储子系统中获取相应的密钥文件,为相应的客户虚拟机创建虚拟密码设备,并运行客户虚拟机,为其提供密码运算服务。
一种采用上述系统在虚拟化环境中提供密码运算服务的方法,该方法包括以下步骤:
1)管理员/普通用户通过配置子系统输入配置给客户虚拟机的密钥文件名和保护口令。若保护口令需要由管理员输入,则管理员在输入密钥文件名的同时输入相应的保护口令;若保护口令需要由普通用户输入,则在管理员事先已经指定密钥文件的情况下,由普通用户在启动客户虚拟机时根据系统提示输入保护口令。这些信息最终将传输至虚拟机运行子系统。
2)虚拟机运行子系统根据配置子系统输入的密钥文件名和保护口令,从密钥文件存储子系统的密钥文件中获取分配给客户虚拟机的密钥,将其存储于虚拟机监控器中,然后为客户虚拟机创建虚拟密码设备,并启动客户虚拟机。
3)当运行中的客户虚拟机需要密码运算时,利用虚拟密码设备与客户虚拟机之间的通道发送密码运算请求。虚拟机监控器解析密码运算请求,然后利用之前分配给客户虚拟机的密钥以及客户虚拟机的输入数据完成密码运算。最终将运算结果通过通道返回输出给客户虚拟机。由此完成了安全的密码运算服务。
本发明中的存储子系统,可以基于NFS(Network File System)等文件系统实现,也可以基于iSCSI(Internet Small Computer System Interface),FCoE(Fibre Channelover Ethernet)等存储块设备实现。
本发明将密钥文件作为虚拟化资源的一部分,以此为基础在虚拟化环境中创建虚拟密码设备。配置子系统可以设定指派给每一个客户虚拟机的密钥文件,单个客户虚拟机可以指定一个或多个密钥文件,不同客户虚拟机之间也可以指定相同或不同的密钥文件。
本发明中的密钥文件通过保护口令对文件的内容进行保护,使得只有在知道保护口令的情况下,才能够从密钥文件中获得密钥数据。分配给客户虚拟机的密钥文件由管理员指定,能够支持下列两种情况下的密钥数据获取方式:(1)密钥文件名和保护口令都由管理员输入,或者(2)密钥文件名由管理员输入、保护口令由普通用户输入。
本发明的虚拟化环境中提供密码运算服务的系统和方法具有如下优点:
1)管理员/普通用户可以通过接口,为客户虚拟机指定相应的密钥文件,以便创建虚拟密码设备,能够更加友好地对虚拟密码设备进行集中化的管理。
2)虚拟化管理平台中的客户虚拟机可以请求安全的密码运算服务,一定程度上缓解了客户虚拟机被攻击导致的密钥安全问题。
附图说明
图1为在虚拟化环境中提供密码运算服务的系统的组成示意图。
图2为实施例中配置子系统的架构示意图。
图3为实施例中存储子系统的架构示意图。
图4为实施例中虚拟机运行子系统的架构示意图。
图5为virtio-ct在虚拟化环境中提供密码服务的示意图。
图6为virtio体系结构的示意图。
具体实施方式
本发明对于oVirt,RHEV,Xen-Server,Virt-Manager等虚拟化管理平台全部适用。为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例,对本发明做进一步说明。图1为系统的组成示意图,包括配置子系统、密钥文件存储子系统和虚拟机运行子系统。
本实施例是一个在oVirt虚拟化管理平台下提供密码运算服务的实例。
图2为本方法中配置子系统的架构示意图。该子系统的目标是提供一个友好的接口,使得管理员/普通用户可以进行密钥文件名、密钥文件所对应的口令等虚拟密码设备相关信息的输入,将虚拟密码设备指定给特定的客户虚拟机。
本例中的配置子系统融合于oVirt的ovirt-engine部分,通过ovirt-engine开放的自定义属性接口来实现。Ovirt-engine用Java编写而成,是oVirt的核心部分。Ovirt-engine的主要功能可以概括为如下三个部分:1.ovirt-engine与管理界面工具进行通信,包括验证管理员/普通用户的合法性以及接收来自管理界面工具的管理请求。2.ovirt-engine负责对虚拟化环境平台中的资源进行管理和操作,包括客户虚拟机、客户虚拟机磁盘映像、网络等。3.ovirt-engine与宿主机以XML-RPC(XML Remote Procedure Call)的形式进行通信,协同完成客户虚拟机的配置、启动、暂停、迁移等基本功能。oVirt提供Web页面作为管理界面工具、以方便管理员/普通用户进行操作。除了Web页面,还有名为oVirt Cli的、命令行形式的管理界面工具,允许管理员/普通用户以命令行的方式进行操作。
oVirt允许在ovirt-engine端,对客户虚拟机自定义新的属性,并且在使用管理界面工具配置客户虚拟机时,可以启用这些自定义属性。当管理员或普通用户通过管理界面工具启动客户虚拟机时,自定义属性将伴随着启动请求一并从ovirt-engine发送到宿主机端并为虚拟机运行子系统接收。我们利用自定义属性在ovirt-engine中定义用于传输虚拟密码设备相关参数的变量Virtio_ct_Device。在oVirt的管理界面工具中,可以对客户虚拟机进行编辑,设置自定义变量Virtio_ct_Device,并向其中输入虚拟密码设备的相关信息。Virtio_ct_Device在客户虚拟机的启动过程中将被传输至宿主机端,供虚拟机运行子系统中的相应模块进行进一步的处理。
本例中配置子系统为两种情况下的密钥文件分配都提供了配置接口:当保护口令必须由管理员输入时,管理员只需通过Web管理页面中为Virtio_ct_Device输入密钥文件名以及保护口令即可;保护口令必须由普通用户输入的情况,本例在命令行形式的管理界面工具oVirt Cli中为普通用户实现了保护口令的输入接口:具体来讲,管理员依旧通过Web管理页面为客户虚拟机分配密钥文件,而普通用户则登录oVirt Cli,使用命令行启动客户虚拟机,此时oVirt Cli会出现“输入密钥文件保护口令”的提示,普通用户在此处输入保护口令即可。
图3为本方法中密钥文件存储子系统的架构示意图。该子系统的目标是对密钥文件进行安全的存储。
本例中的密钥文件存储子系统融合于oVirt的存储系统部分。存储系统中存储着客户虚拟机磁盘映像以及相关的重要资源(虚拟网络的数据等)。oVirt存储系统架构中的常用概念有存储域(Storage Domain)、存储池(Storage Pool)、主存储域(Master StorageDomain)等。存储域是最基本的存储实体,用于存储客户虚拟机磁盘映象以及相应的元数据(描述虚拟映象相关数据大小、状态、锁等内容的一组数据集合);存储池是指一组能够进行跨域操作(引用、备份、恢复、合并等)的存储域的集合;每个存储池中都必须选择一个存储域来保存存储池中的所有元数据、异步请求、任务数据等,这个存储域被称为主存储域(Master Storage Domain)。
本例中包括主存储域在内的所有存储域都是利用NFS建立。在每个主存储域所对应的路径下,我们创建相应的文件夹对密钥文件进行存储,并且利用NFS提供的访问控制机制对密钥文件进行保护。这样实现了密钥文件存储子系统。
图4为本方法中虚拟机运行子系统的架构示意图。虚拟机运行子系统的目标,是为客户虚拟机创建虚拟密码设备并启动客户虚拟机,使得客户虚拟机能够请求安全的密码服务。
本例中虚拟机运行子系统部署于oVirt平台的每台宿主机上。宿主机上参与oVirt协同工作的主要组件有VDSM(Virtual Desktop Server Manager)和Libvirt;宿主机运行有虚拟机监控器VMM(以下描述以QEMU-KVM为实例)。
1)VDSM是用于管理宿主机与客户虚拟机的后台程序,通过Python编写而成,VDSM的主要功能包括以下几点:1.VDSM监控并管理宿主机的存储、内存、网络等资源。2.VDSM协助完成客户虚拟机的创建、统计收集、日志收集以及其它的管理任务。VDSM接收来自ovirt-engine的XML-RPC调用,并以Libvirt domain XML格式来定义客户虚拟机,最终将其发送给Libvirt完成客户虚拟机的相应操作。此外,VDSM还提供一个名为VDSM-HOOK的可扩展接口,后面将详细介绍。
2)Libvirt是一款用于和Linux下多种虚拟化实现方案进行交互的工具包。在oVirt中,Libvirt根据VDSM发送的描述客户虚拟机的Libvirt domain XML,生成相应的QEMU命令行,调用QEMU-KVM的相应功能,从而来对客户虚拟机进行直接的管理和配置。Libvirt的目标是为不同的虚拟化实现方案提供一个共同而稳定的管理接口,故而虽然oVirt目前的主要工作与研究都是基于QEMU-KVM,但是同样可以兼容其它类型的虚拟化实现方案。
本例中虚拟机运行子系统中虚拟密码设备的创建工作由扩展编写的VDSM-Hook脚本完成。VDSM-Hook是VDSM所提供的可扩展接口,允许开发者通过编写Python脚本,在VDSM或客户虚拟机运行周期内的特定阶段完成特定的功能。具体来讲,当客户虚拟机进入运行周期中的特定阶段(例如客户虚拟机的启动之前)时,将会查看在这个检查点是否存在相应的Hook脚本:如果存在,则Hook脚本中的内容将被执行,执行完毕之后,客户虚拟机的运行周期会继续进行。故而本方案需要编写在客户虚拟机启动前执行的Hook脚本,对描述客户虚拟机的Libvirt domain XML进行调整与修改,从而实现对Virtio-ct的调用与管理。
本例中VDSM-Hook完成的具体工作主要包括以下两点:
1)获取配置子系统传输至宿主机端的密钥文件名与保护口令
VDSM-Hook脚本读取Virtio_ct_Device,进而获取密钥文件名与保护口令,以便之后完成虚拟密码设备的配置工作。
2)添加Virtio-ct的相关参数
VDSM-Hook能够在描述客户虚拟机的Libvirt domain XML中添加调用Virtio-ct的相关内容,使得Libvirt将生成相应的QEMU命令行,为客户虚拟机创建虚拟密码设备。
Libvirt domain XML格式中,<qemu:commandline>与<qemu:arg>元素支持开发者直接定义希望添加的命令行参数。利用这两个元素,以及(1)中获取的密钥文件名和保护口令,可以在描述客户虚拟机的Libvirt domain XML中添加为客户虚拟机创建虚拟密码设备的相关内容,能够成功为Libvirt启动的客户虚拟机创建虚拟密码设备。
本例中密码运算服务提供的具体操作流程如下:
1)管理员通过配置子系统,利用管理界面工具输入为客户虚拟机分配的密钥文件名,之后管理员/用户通过相应的接口输入密钥文件所对应的保护口令。
2)输入的密钥文件名以及保护口令存储在自定义属性Virtio_ct_Device中,并被发送往虚拟机运行子系统。
3)虚拟机运行子系统中的VDSM-Hook脚本根据Virtio_ct_Device中的信息,从存储子系统中选取相应的密钥文件,为客户虚拟机创建虚拟密码设备,并启动客户虚拟机。由此完成了为客户虚拟机创建虚拟密码设备的工作,客户虚拟机可通过虚拟密码设备请求安全的密码运算服务。
本发明同样可以在基于其它虚拟化解决方案的环境下实现。我们以基于Xen(另一种VMM工具实例)的虚拟化环境为例:
基于Xen的虚拟化环境架构利用XenServer和XenCenter来进行搭建。XenServer是Citrix开发的基于Xen的虚拟化服务器,以操作系统的形式被安装在每台宿主机上,用来提供基于Xen的虚拟化环境;XenCenter是基于Xen的虚拟化环境的管理中心,通过XenCenter,管理员能够远程地对整个虚拟化环境进行有效的管理,创建、运行、配置、关闭客户虚拟机,在存储方面,XenCenter既可以为每个XenServer配置本地存储,也可以配置共享的网络存储。
在Xen下实现本方案,可以使用以下路线:
对于Xen环境中实现类似QEMU-KVM下virtio-ct的虚拟密码设备方案,我们在XenServer客户虚拟机之中部署前端设备驱动程序,而在Xen的特权域中部署后端处理程序,并且利用Xen现成的XenBus和XenStore技术,能够实现前端与后端之间的计算请求和结果的传递;对于配置子系统,我们将其部署于XenCenter中,以便为管理员和普通用户输入密钥文件名以及保护口令的接口,将密钥文件指派给特定的客户虚拟机;对于密钥文件存储子系统,我们将其部署于XenCenter配置的网络存储中,用以实现对密钥文件的存储;对于虚拟机运行子系统,我们将其部署于XenServer中,令XenServer能够配置子系统输入信息并为客户虚拟机创建虚拟密码设备的功能。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (10)
1.一种在虚拟化环境中提供密码运算服务的系统,其特征在于,包括:
配置子系统,用于为管理员和普通用户提供输入虚拟密码设备相关信息的接口,通过该接口输入配置给客户虚拟机的密钥文件名和保护口令,以将虚拟密码设备指定给特定的客户虚拟机;所述配置子系统支持两种不同方式的密钥文件分配操作:(1)密钥文件名和保护口令都由管理员输入,或者(2)密钥文件名由管理员输入、保护口令由普通用户输入;
密钥文件存储子系统,用于存储密钥文件,密钥文件中的密钥用口令进行保护;
虚拟机运行子系统,用于根据配置子系统的输入,从密钥文件存储子系统中获取相应的密钥文件并为客户虚拟机创建虚拟密码设备,然后运行客户虚拟机,客户虚拟机在运行期间通过虚拟密码设备请求安全的密钥服务。
2.如权利要求1所述的系统,其特征在于:所述密钥文件存储子系统基于NFS为代表的文件系统实现,或者基于iSCSI或FCoE块设备实现。
3.如权利要求1所述的系统,其特征在于:所述配置子系统中设定指派给每一个客户虚拟机的密钥文件,单个客户虚拟机指定一个或多个密钥文件,不同客户虚拟机之间指定相同或不同的密钥文件。
4.如权利要求1所述的系统,其特征在于:对所述保护口令使用Hash算法生成256bit的AES密钥,以对密钥文件中的数据进行加密或者解密。
5.如权利要求1所述的系统,其特征在于:在虚拟化管理平台下实现,所述虚拟化管理平台包括但不限于oVirt、RHEV、Xen-Server、或者Virt-Manager。
6.如权利要求5所述的系统,其特征在于,在oVirt虚拟化管理平台下实现:所述配置子系统融合于oVirt的ovirt-engine部分,通过ovirt-engine开放的自定义属性接口来实现;所述密钥文件存储子系统融合于oVirt的存储系统部分,在每个数据中心的主存储域所对应的路径下创建相应的文件夹对密钥文件进行存储,并且利用NFS提供的安全机制对密钥文件进行保护;所述虚拟化运行子系统融合于oVirt平台的宿主机端,通过VDSM-Hook脚本实现虚拟密码设备的创建。
7.一种采用权利要求1所述系统的在虚拟化环境中提供密码运算服务的方法,其特征在于,包括如下步骤:
1)管理员或普通用户通过配置子系统输入配置给客户虚拟机的密钥文件名和保护口令;若保护口令需要由管理员输入,则管理员在输入密钥文件名的同时输入相应的保护口令;若保护口令需要由普通用户输入,则在管理员事先已经指定密钥文件的情况下,由普通用户在启动客户虚拟机时根据系统提示输入保护口令;
2)虚拟机运行子系统根据配置子系统输入的密钥文件名和保护口令,从密钥文件存储子系统的密钥文件中获取分配给客户虚拟机的密钥,将其存储于虚拟机监控器中,然后为客户虚拟机创建虚拟密码设备,并启动客户虚拟机;
3)当运行中的客户虚拟机需要密码运算时,利用虚拟密码设备与客户虚拟机之间的通道发送密码运算请求;虚拟机监控器解析密码运算请求,然后利用之前分配给客户虚拟机的密钥以及客户虚拟机的输入数据完成密码运算,最终将运算结果通过所述通道返回给客户虚拟机。
8.如权利要求7所述的方法,其特征在于:所述存储子系统基于NFS文件系统实现,或者基于iSCSI或FCoE块设备实现。
9.如权利要求7所述的方法,其特征在于:通过所述配置子系统设定指派给每一个客户虚拟机的密钥文件,单个客户虚拟机指定一个或多个密钥文件,不同客户虚拟机之间指定相同或不同的密钥文件。
10.如权利要求7所述的方法,其特征在于:对所述保护口令使用Hash算法生成256bit的AES密钥,以对密钥文件中的数据进行加密或者解密。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510586037.1A CN105184154B (zh) | 2015-09-15 | 2015-09-15 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
PCT/CN2015/092562 WO2017045244A1 (zh) | 2015-09-15 | 2015-10-22 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
US15/551,083 US10262130B2 (en) | 2015-09-15 | 2015-10-22 | System and method for providing cryptographic operation service in virtualization environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510586037.1A CN105184154B (zh) | 2015-09-15 | 2015-09-15 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105184154A CN105184154A (zh) | 2015-12-23 |
CN105184154B true CN105184154B (zh) | 2017-06-20 |
Family
ID=54906228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510586037.1A Active CN105184154B (zh) | 2015-09-15 | 2015-09-15 | 一种在虚拟化环境中提供密码运算服务的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10262130B2 (zh) |
CN (1) | CN105184154B (zh) |
WO (1) | WO2017045244A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844013A (zh) * | 2017-02-27 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种虚拟机控制台 |
CN107070902B (zh) * | 2017-03-28 | 2020-09-04 | 山东超越数控电子股份有限公司 | 一种基于中标麒麟操作系统的单点登录方法和装置 |
CN109274646B (zh) * | 2018-08-22 | 2020-12-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于kmip协议的密钥管理客户端服务端方法和系统及介质 |
CN109240855B (zh) * | 2018-09-11 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种针对服务器虚拟化系统实现双活容灾的方法及装置 |
CN109684829B (zh) * | 2018-12-04 | 2020-12-04 | 中国科学院数据与通信保护研究教育中心 | 一种虚拟化环境中服务调用监控方法和系统 |
CN109639705B (zh) * | 2018-12-27 | 2021-08-31 | 成都国信安信息产业基地有限公司 | 云平台安全检测方法 |
CN109688139B (zh) * | 2018-12-27 | 2021-08-31 | 成都国信安信息产业基地有限公司 | 云平台安全检测系统 |
US11714676B2 (en) * | 2020-01-03 | 2023-08-01 | International Business Machines Corporation | Software-directed value profiling with hardware-based guarded storage facility |
CN111400733A (zh) * | 2020-03-13 | 2020-07-10 | 中国电力科学研究院有限公司 | 一种用于嵌入式Linux系统的信息安全防护系统及方法 |
CN112463725B (zh) * | 2020-11-19 | 2024-05-14 | 北京思特奇信息技术股份有限公司 | 一种云化架构日志文件批量处理方法、装置及存储介质 |
CN112433824B (zh) * | 2020-12-28 | 2023-06-20 | 郑州信大先进技术研究院 | 一种密码设备的虚拟化实现架构 |
CN112636927B (zh) * | 2020-12-28 | 2022-08-16 | 郑州信大先进技术研究院 | 一种基于kpi双证书的云平台密码化方法 |
CN113467970B (zh) * | 2021-06-25 | 2023-09-26 | 阿里巴巴新加坡控股有限公司 | 云计算系统中的跨安全区域的资源访问方法及电子设备 |
CN113179285B (zh) * | 2021-06-29 | 2021-09-21 | 杭州海康威视数字技术股份有限公司 | 视频物联网高性能密码服务方法、装置和系统 |
CN114338124B (zh) * | 2021-12-23 | 2024-04-12 | 成都卫士通信息产业股份有限公司 | 云密码计算服务的管理方法、系统、电子设备及存储介质 |
CN115396478B (zh) * | 2022-10-31 | 2023-03-07 | 长城汽车股份有限公司 | 用户域与设备的通信方法、装置以及汽车 |
CN116095149B (zh) * | 2023-01-18 | 2023-09-19 | 北京安盟信息技术股份有限公司 | 云环境下密码服务应用配额的方法、系统、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101784045A (zh) * | 2009-01-20 | 2010-07-21 | 英华达(上海)电子有限公司 | 密钥产生方法及装置和密钥加载方法及装置 |
CN102609643A (zh) * | 2012-01-10 | 2012-07-25 | 道里云信息技术(北京)有限公司 | 一种对虚拟机作动态密码学保护与所需的密钥管理方法 |
CN104461678A (zh) * | 2014-11-03 | 2015-03-25 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码服务的方法和系统 |
WO2015100188A1 (en) * | 2013-12-24 | 2015-07-02 | Microsoft Technology Licensing, Llc | Virtual machine assurances |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009013673A2 (en) * | 2007-07-20 | 2009-01-29 | Nxp B.V. | Device with a secure virtual machine |
TW201015322A (en) * | 2008-10-08 | 2010-04-16 | Ee Solutions Inc | Method and system for data secured data recovery |
US8295481B2 (en) * | 2009-08-31 | 2012-10-23 | International Business Machines Corporation | Virtualization of cryptographic keys |
US9094210B2 (en) * | 2009-10-26 | 2015-07-28 | Citrix Systems, Inc. | Systems and methods to secure a virtual appliance |
US20110154023A1 (en) * | 2009-12-21 | 2011-06-23 | Smith Ned M | Protected device management |
US8375437B2 (en) * | 2010-03-30 | 2013-02-12 | Microsoft Corporation | Hardware supported virtualized cryptographic service |
CN102971722B (zh) * | 2010-05-09 | 2015-01-07 | 思杰系统有限公司 | 用于创建和传送加密的虚拟盘的系统和方法 |
US8719557B2 (en) * | 2010-05-28 | 2014-05-06 | Dell Products, Lp | System and method for secure client hosted virtualization in an information handling system |
US20130061293A1 (en) * | 2011-09-02 | 2013-03-07 | Wenbo Mao | Method and apparatus for securing the full lifecycle of a virtual machine |
SG189388A1 (en) * | 2011-11-16 | 2013-05-31 | V Key Inc | Cryptographic system and methodology for securing software cryptography |
GB2515536A (en) * | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
CN103414558A (zh) * | 2013-07-17 | 2013-11-27 | 电子科技大学 | 一种基于xen云平台的虚拟机块设备隔离方法 |
US10078754B1 (en) * | 2013-09-24 | 2018-09-18 | Amazon Technologies, Inc. | Volume cryptographic key management |
US9571279B2 (en) * | 2014-06-05 | 2017-02-14 | Cavium, Inc. | Systems and methods for secured backup of hardware security modules for cloud-based web services |
US9961059B2 (en) * | 2014-07-10 | 2018-05-01 | Red Hat Israel, Ltd. | Authenticator plugin interface |
US9641321B1 (en) * | 2014-11-05 | 2017-05-02 | Dark Signal Research, Llc | Method and apparatus for the virtualization of cryptographic resources |
CN106063218B (zh) * | 2014-12-30 | 2018-06-05 | 华为技术有限公司 | 虚拟化系统中加解密的方法、装置和系统 |
US10169591B2 (en) * | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
US20170277903A1 (en) * | 2016-03-22 | 2017-09-28 | Qualcomm Incorporated | Data Protection Using Virtual Resource Views |
-
2015
- 2015-09-15 CN CN201510586037.1A patent/CN105184154B/zh active Active
- 2015-10-22 US US15/551,083 patent/US10262130B2/en active Active
- 2015-10-22 WO PCT/CN2015/092562 patent/WO2017045244A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101784045A (zh) * | 2009-01-20 | 2010-07-21 | 英华达(上海)电子有限公司 | 密钥产生方法及装置和密钥加载方法及装置 |
CN102609643A (zh) * | 2012-01-10 | 2012-07-25 | 道里云信息技术(北京)有限公司 | 一种对虚拟机作动态密码学保护与所需的密钥管理方法 |
WO2015100188A1 (en) * | 2013-12-24 | 2015-07-02 | Microsoft Technology Licensing, Llc | Virtual machine assurances |
CN104461678A (zh) * | 2014-11-03 | 2015-03-25 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码服务的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2017045244A1 (zh) | 2017-03-23 |
US20180232519A1 (en) | 2018-08-16 |
US10262130B2 (en) | 2019-04-16 |
CN105184154A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105184154B (zh) | 一种在虚拟化环境中提供密码运算服务的系统和方法 | |
US10171432B2 (en) | Systems to implement security in computer systems | |
US20190238323A1 (en) | Key managers for distributed computing systems using key sharing techniques | |
CN108228316B (zh) | 一种密码设备虚拟化的方法及设备 | |
US8694786B2 (en) | Virtual machine images encryption using trusted computing group sealing | |
US9143491B2 (en) | Quorum-based virtual machine security | |
TWI744797B (zh) | 用於將安全客體之安全金鑰繫結至硬體安全模組之電腦實施方法、系統及電腦程式產品 | |
US20190068370A1 (en) | Key managers for distributed computing systems | |
US20190104115A1 (en) | Restricting guest instances in a shared environment | |
CN106063218A (zh) | 虚拟化系统中加解密的方法、装置和系统 | |
CN103069428A (zh) | 不可信云基础设施中的安全虚拟机引导 | |
CN102811239A (zh) | 一种虚拟机系统及其安全控制方法 | |
US11196548B1 (en) | Hypervisor protected key | |
Descher et al. | Retaining data control to the client in infrastructure clouds | |
CN106612280B (zh) | 一种终端设备虚拟化管理的方法及系统 | |
CN115373796A (zh) | 具有分区和动态混洗模型更新的联合学习 | |
US20180368123A1 (en) | Optimized Caching of Data in a Network of Nodes | |
CN103020543A (zh) | 一种虚拟磁盘映像加密管理系统及方法 | |
Yao et al. | CryptVMI: A flexible and encrypted virtual machine introspection system in the cloud | |
US10691356B2 (en) | Operating a secure storage device | |
CN113574837A (zh) | 跟踪客户端设备上的图像发送者 | |
US20230066427A1 (en) | Distributed trusted platform module key management protection for roaming data | |
US11385946B2 (en) | Real-time file system event mapping to cloud events | |
CN110121857A (zh) | 一种凭据分发的方法和设备 | |
Sarddar et al. | Secure Co-processor and Billboard Manager Based Architecture Help to Protect & Store the Citrix Xenserver Based Virtual Data |
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 |