一种在虚拟化环境中提供密码运算服务的系统和方法技术方案

技术编号:12583305 阅读:112 留言:0更新日期:2015-12-23 23:34
本发明专利技术涉及一种在虚拟化环境中提供密码运算服务的系统和方法。该系统中,配置子系统为管理员和普通用户提供输入虚拟密码设备相关信息的接口;密钥文件存储子系统存储密钥文件,并使用保护口令进行保护;虚拟机运行子系统根据配置子系统的输入,从存储子系统中获取相应的密钥文件并为客户虚拟机创建虚拟密码设备,最后运行客户虚拟机,为客户虚拟机提供密码运算服务。采用本发明专利技术,管理员/普通用户可以通过相应的接口为客户虚拟机指定密钥文件和输入保护口令,以便创建虚拟的密码设备,能够友好地对虚拟密码设备进行集中化的管理;虚拟化管理平台中的客户虚拟机可以请求安全的密码运算服务,缓解了虚拟化环境中的密钥安全问题。

【技术实现步骤摘要】
一种在虚拟化环境中提供密码运算服务的系统和方法
本专利技术属于计算机安全
,特别涉及一种在虚拟化环境中提供密码运算服务的系统和方法。
技术介绍
随着云计算的不断发展,虚拟化技术也越发得到广泛应用。利用虚拟化技术,可以在单一的计算机物理平台上同时运行多台虚拟机(VirtualMachine,简称VM)。虚拟化技术有着诸多的优点。首先,虚拟机监控器(VirtualMachineMonitor,简称VMM)能够对物理平台的资源进行统一管理,并监控其之上运行的虚拟机;其次,虚拟化技术确保了不同虚拟机之间的彼此隔离,一台虚拟机上的服务并不会影响到其它虚拟机;最后,虚拟机可以快捷方便地复制、移动等。使用虚拟化技术,能够为广大的网络用户群体提供虚拟桌面办公等多种方便、快捷的服务。参与到这个模式中的群体大致可划分为两类:管理员与普通用户。其中,管理员是指负责对整个虚拟化环境进行后台的维护与管理的群体,普通用户则是指仅使用虚拟化环境对外提供的虚拟机功能(例如虚拟桌面办公等)而无权访问虚拟化环境后台的群体。在上述的虚拟桌面办公情况下,管理员需要对虚拟化环境中的多台虚拟机进行集中化的管理。当前的虚拟化管理平台主要有oVirt,RHEV,Xen-Center,Virt-Manager等,利用虚拟化管理平台,可以方便地在云计算环境中的多个物理平台上搭建虚拟化环境,并对虚拟化环境中的各类资源进行统一有效的管理,尤其是对于虚拟机可以进行创建、复制、移动、备份等工作。虚拟化平台的结构主要包括如下组件:宿主机(host),即虚拟机运行所基于的物理平台,为虚拟机的运行提供实际的硬件平台。一个云计算环境中可以有多台宿主机,每台宿主机上可以运行多台虚拟机;客户虚拟机(guestVM),即运行在宿主机上的虚拟机,由于虚拟机监控器的存在,一台宿主机上可以运行多台彼此独立的客户虚拟机,每台客户虚拟机拥有独立的操作系统以及应用;管理中心(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:ApplicationBinaryInterface)下,能够相互发送及接受数据。因此,虚拟队列被视为客户虚拟机和虚拟机监控器的衔接点。Virtio-ct实例化的虚拟队列按照功能可分为两类:一类用于虚拟机监控器和客户虚拟机之间传递设备管理消息,另一类则用于传递密码服务消息。每一对虚拟队列都分别连接虚拟机监控器和客户虚拟机,可以支持客户虚拟机向虚拟机监控器发送消息或者从其处接受消息。Virtio-ring实现了环形缓冲区(ringbuffer),用于保存前端驱动和后端处理程序执行的信息,并且它可以一次性保存前端驱动的多次I/O请求,并且交由后端驱动去批量处理。在virtio-ct中,客户虚拟机动态申请内存,并把地址通过PCI配置接口发送给虚拟密码设备管理器,虚拟密码设备管理器通过添加一个偏移得到该内存区域的虚拟地址。两者通过该共享的内存区域进行通信。不同于以往架构中由客户虚拟机本身进行密码运算,Virtio-ct所有的密码运算都在虚拟机监控器中完成,即便攻击者攻占了客户虚拟机,也无法窃取密钥数据,实现了虚拟化环境中的密钥安全防护。虽然上述的虚拟密码设备方案一定程度解决了密码服务的安全问题,但仍然存在不足:虚拟密码设备对应的密钥文件由口令保护,故而在启动客户虚拟机的时候,需要负责虚拟密码设备的管理员在宿主机端输入口令。这样便无法向使用客户虚拟机的普通用户提供便捷、友好的安全密码服务,无法实现集中式的管理。如果密钥文件以明文存储,则无须管理员输入口令,但是就无法提供安全的密码服务。基于这些问题,需要设计新的系统和方法,对虚拟密码设备进行统一的、集中式的管理,同时给使用虚拟机的普通用户提供友好的使用接口。
技术实现思路
本专利技术提供了一种在虚拟化环境中提供密码运算服务的方法和系统。该方案在虚拟化管理平台中融合了安全的密码运算服务(该服务由虚拟密码设备来实现)。一方面,通过虚拟化管理平台能够对虚拟密码设备进行集中化的统一管理,并提供友好的操作接口;另一方面,虚拟化平台也可以为其管理的客户虚拟机提供安全的密码运算服务(该服务由虚拟密码设备来实现),解决了客户虚拟机中的密钥安全问题。具体来说,本专利技术的技术方案如下:一种在虚拟化环境中提供密本文档来自技高网
...
一种在虚拟化环境中提供密码运算服务的系统和方法

【技术保护点】
一种在虚拟化环境中提供密码运算服务的系统,其特征在于,包括:配置子系统,用于为管理员和普通用户提供输入虚拟密码设备相关信息的接口,通过该接口输入配置给客户虚拟机的密钥文件名和保护口令,以将虚拟密码设备指定给特定的客户虚拟机;密钥文件存储子系统,用于存储密钥文件,密钥文件中的密钥用口令进行保护;虚拟机运行子系统,用于根据配置子系统的输入,从密钥文件存储子系统中获取相应的密钥文件并为客户虚拟机创建虚拟密码设备,然后运行客户虚拟机,客户虚拟机在运行期间通过虚拟密码设备请求安全的密钥服务。

【技术特征摘要】
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的存...

【专利技术属性】
技术研发人员:林璟锵祝凯捷张令臣罗勃蔡权伟李从午荆继武潘无穷
申请(专利权)人:中国科学院信息工程研究所中国科学院数据与通信保护研究教育中心
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1