APP下载

面向虚拟机系统的可信验证模型研究

2019-09-13贾源泉王乐东

网络安全技术与应用 2019年9期
关键词:密钥虚拟化密码

◆田 楠 贾源泉 王乐东

面向虚拟机系统的可信验证模型研究

◆田 楠 贾源泉 王乐东

(中国人民解放军91977 部队 北京 100841)

虚拟机系统提高了计算的效率,但同时也存在很多安全问题。可信计算技术中对计算机系统的可信验证需要物理可信根作为基础。在虚拟机系统中,如何基于单物理可信根,实现对多个用户虚拟机的可信验证是本文研究的重点。本文基于硬件虚拟化技术,提出了一种面向虚拟机系统的可信验证模型,分析了在该模型下的可信验证流程,为解决虚拟机系统的安全问题提供了一种解决思路。

虚拟机;可信验证;硬件虚拟化

虚拟机系统提高了计算资源的使用效率,但同时引入了新的安全问题[1]。不同用户共享物理计算资源,存在跨虚拟机非授权访问数据等一系列安全问题,传统的安全防护手段在虚拟机环境下难以完全发挥作用。

可信计算[2]作为一种新型安全防护技术,通过可信根,在系统中建立一套完整的可信验证机制,监控系统的运行状态和用户行为,区分可信和非可信的状态,可以从根本上解决系统的安全问题。

在传统计算机系统中,可信验证的实现以可信密码模块(trusted cryptography module,TCM)作为可信根[3]。虚拟机环境下不同用户系统共享同一套物理计算资源,由于密码资源的分割性和独立性,单个可信根不能为多虚拟用户提供物理支撑。围绕这一问题,国内外学者开展了一系列研究[4][5],这些研究大多采用软件虚拟的方式,通过为每一台虚拟机分配一个虚拟的可信密码模块(virtual trusted cryptography module ,vTCM),实现TCM的全部功能,这样做在一定程度上能够为虚拟机提供可信支撑,但是受限于vTCM的软件特性,仍然存在一些问题:

(1)安全性。vTCM中的密码资源缺乏硬件保护,即使对vTCM中的密码资源进行加密保护,但是在使用时仍会明文暴露于内存中,存在泄密风险。

(2)效率。vTCM中的密码算法都是以软件形式实现,计算效率与硬件实现相比要低得多,无法满足高效计算的需求。

本文基于硬件虚拟化技术提出了一种基于虚拟TCM硬件的可信验证模型,为虚拟环境下应用可信验证解决虚拟机安全问题提供了解决思路。

1 可信计算

可信计算的目标是保障计算机系统按照预期的状态运行,其技术手段是在计算机正常工作时,由可信度量部件对系统的状态和行为进行度量,根据度量值来判断系统是否按照预期情况运行,从而拒绝各种非预期行为对系统的干扰。其防御机理类似于人体的免疫系统,免疫系统能够在不影响人体正常工作的情况下,排斥进入人体的有害物质,从而保证人体的安全。

可信计算的基础是可信根,可信根由控制芯片和密码芯片组成,能实现对系统的可信度量,可信存储等功能。可信根的可信性是系统可信的基础。基于可信根的可信,可信度量部件首先对系统的BIOS进行度量,在BIOS可信的基础上,再对系统的boot loader进行度量,然后是对操作系统内核进行度量,最后对上层的应用进行度量,一级验证一级,一级信任一级,从而最终把这种可信性扩展到整个系统,构成可信的计算环境。图1显示了可信验证的过程。

可信度量的功能实现需要密码的支持,可信根中存储的密码主要有背书密钥(endorsement key,EK)、存储根密钥(storage root key,SRK)、平台身份密钥(platform identity key,PIK)等,其中背书密钥具有唯一性,它代表了每个平台的真实身份,用于生成以及授权PIK密钥。对于虚拟机平台的多用户,可由背书密钥授权生存多个PIK密钥。

图1 系统可信验证过程

2 TCM硬件虚拟化

2.1 I/O硬件虚拟化

I/O虚拟化[6]是虚拟化技术的重要组成部分,在虚拟化技术领域,计算虚拟化(如CPU和内存虚拟化)已经日趋成熟,但是, I/O虚拟化技术的发展相对比较滞后。当前,主流的I/O虚拟化技术有三种:软件模拟、设备直通和单根I/0虚拟化(Single Root I/O Virtualization,SR-IOV)。这三种虚拟化技术在不同程度上实现了I/O设备的虚拟化功能。其中,软件模拟是通过虚拟化Hypervisor层模拟虚拟设备,实现与物理设备完全一样的接口,虚拟机操作系统无须修改就能直接驱动虚拟设备,其最大的缺点是性能相对较差;设备直通方式支持虚拟机绕过Hypervisor层,直接访问物理I/O设备,具有最高的性能,但是,在同一时刻,同一I/O设备只能被一个虚拟机独享;SR-IOV是Intel在2007年提出的解决虚拟化I/O硬件的技术方案,该技术不仅有设备直通方式的高性能优势,而且同时支持物理I/O设备的跨虚拟机共享,具有较好的应用前景。

SR-IOV引入了两个新的功能类型:PF(Physical Function,物理功能)和VF(Virtual Function,虚拟功能),一个PF可以扩展出若干个VF,每个VF都具有一个PCI-E内存空间,用于映射其寄存器集,VF设备驱动程序可以通过PF的总线、设备和功能编号访问各个VF的PCI-E配置空间,对寄存器集进行操作以启用其功能,并且显示为实际存在的PCI-E设备。创建VF后,可以直接将其指定给虚拟机用户。此功能使得虚拟机可以共享物理设备,并在没有CPU和虚拟机管理程序软件开销的情况下执行I/O。这样不仅增强了各VF之间的隔离性,使虚拟机环境更加安全,其通信效更能接近真实物理设备。

2.2 TCM硬件虚拟化

TCM虚拟化的硬件结构设计如图2所示,其主要结构包括多通道DMA,计算部件和存储部件。

多通道DMA支持各vTCM同时进行I/0数据的交换,发送和接收的数据被存储在缓冲区中各自的独立空间中,相互之间不会影响。计算部件包括多个算法核,为了提高计算能力,各算法核可以同时执行不同的密码计算任务。存储部件与传统的TCM相同,分为易失性存储区和非易失性存储区。易失性存储区为每个vTCM提供一个PCR寄存器,用于存储可信度量的度量值,非易失性存储区中,存储vTCM的密码资源,vTCM中的vAIK和vSRK分别由存储在pTCM中的EK和SRK生成。

图2 TCM虚拟化硬件设计

3 可信防护模型

3.1 架构设计

图3所示是在虚拟机环境下应用虚拟硬件TCM进行安全防护的架构图。在虚拟机系统的底层除了真实的pTCM之外,还有若干个虚拟vTCM,pTCM负责为宿主机/特权域提供可信验证服务。在宿主机/特权域中,除了虚拟机管理器之外,维护有一个vTCM管理器,它负责vTCM的创建、收回和管理。当系统创建一个虚拟机时,vTCM管理器会相应创建一个vTCM,并完成vTCM密钥分配、初始化、与虚拟机绑定等功能,vTCM基于硬件实现被独立地分配给对应的虚拟机使用,不需要虚拟机管理器管理。

图3 基于虚拟硬件TCM的架构图

3.2 可信验证流程

与传统计算机系统相比,虚拟机系统中的可信验证包括两部分:宿主机/特权域的可信验证和用户虚拟机的可信验证。

(1)宿主机/特权域的可信验证

宿主机/特权域的可信验证过程与传统计算机系统相同,在系统上电后,首先启动TCM对BIOS、boot loader 进行验证,验证了硬件平台的可信后,平台启动操作系统内核,对操作系统内核进行可信度量。可信的硬件和可信的操作系统共同构建了可信的计算环境,为上层的应用环境提供了可信计算基础(Trusted Computing Base,TCB)。

(2)用户虚拟机的可信验证

按照传统可信模型,可信验证应该是从硬件开始,对应到用户虚拟机,应该先启动vTCM,对虚拟BIOS和虚拟boot loader进行验证。但是在虚拟机系统中,vTCM是分配给用户虚拟机的PCI-E设备,在用户虚拟机内核启动前,用户虚拟机并不具备调用PCI-E设备的能力。因此,对用户虚拟机系统不能使用vTCM来完成启动阶段的可信验证。

为了解决可信需求与虚拟机体系结构的矛盾,用户虚拟机的可信验证被分设计为两个阶段。启动阶段,用户虚拟机的虚拟BIOS和虚拟boot loade等硬件平台可信仍然由物理TCM进行验证,可信度量信息和相关日志文件保存在TCM中。用户虚拟机内核加载完成后,启动vTCM从TCM中读取用户虚拟机启动阶段的可信度量信息和相关日志文件,vTCM接替TCM对虚拟操作系统内核和应用程序进行验证,构建最终的可信计算环境。其可信验证流程如图4所示。

图4 虚拟机系统可信验证流程

4 结论

本文基于硬件虚拟化技术,提出了基于单物理可信根的虚拟机系统可信验证模型,通过虚拟TCM硬件,将信任关系从物理环境扩展到虚拟机系统,能够满足虚拟化环境的高安全可信应用需求。

[1]LUO S, LIN Z, CHEN X, et al. Virtualization security for cloud computing service[C]. Internatio-nal Conference on Cloud and Service Computing.

[2]Washington D.C:IEEE Computer Society,2011:174-179.

[3]沈昌祥,张焕国,王怀民,等.可信计算的研究与发展[J].中国科学:信息科学,2010,40(2):139-166.

[4]Luo J,Yan F,Yu F J,et al. Research on cryptology mechanism of trusted computing platform module[J]. Computer Applications,2008,28(8):1907–1915.罗捷,严飞,余发江等.可信计算平台模块密码机制研究[J].计算机应用,2008,28(8):1907-1915.

[5]BERGER S, CERES R, GOLDMAN K A, et al. vTPM: virtualizing the trusted platform module[C]// Conference on Usenix Security Symposium. USENIX Association, 2006:21.

[6]STEFAN B, RAMÓN C, KENNETH A G, et al. vTPM: virtualizing the trusted platform module[J]. Usenix Security, 2007,15:305-320.

[7]DONG Y,YANG X,LI X,et al. High perfor-mance network virtualization with SR-IOV[C]. High Performance Computer Architecture(HPCA),2010 IEEE 16thInternational Symposium on, Wash-Ington D.C:IEEE Computer Society,2010:1-10.

[8]王丽娜,高汉军,余荣威,等.基于信任扩展的可信虚拟执行环境构建方法研究[J].通信学报,2011,32(9):1-8.

猜你喜欢

密钥虚拟化密码
密码里的爱
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
创建KDS根密钥
基于OpenStack虚拟化网络管理平台的设计与实现
密码抗倭立奇功
密码藏在何处
服务器虚拟化的安全威胁及防范分析
夺命密码