(1.海军计算技术研究所 北京 100841)(2.海司信息化部工程设计室 北京 100841)
虚拟化是一种将底层物理设备与上层操作系统、软件分离的去耦合技术,其本质是针对用户需求,高效组织计算资源,隔离具体的硬件体系结构和软件系统之间的紧密依赖关系,在动态环境中按需构建计算系统的虚拟映像。系统级虚拟化通过在计算机硬件和操作系统之间增加虚拟机管理器来解除二者之间的依赖[1]。
可信计算技术[2~7]是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,通过引入可信计算芯片和修改相应的硬件、固件和软件,以提高计算机系统整体的安全性。
虚拟机环境[8~9]作为特殊的一类计算机系统,其体系结构与传统的计算机系统不同,虚拟机环境下的可信计算机制的应用也与传统计算机系统有所不同,这给研究人员提出了新的挑战。本文重点研究可信计算技术在系统级虚拟化计算环境中的应用。
可信计算技术的核心是解决系统的完整性问题,建立一条系统从开机到应用启动的信任链,防止程序和重要数据被非法篡改。在运用可信计算技术为虚拟计算环境提供可信服务方面,需重点解决以下三个问题。
1)信任链建立
传统计算平台基于可信平台模块开始建立信任链,按照可信平台模块、可信BIOS、主引导记录、操作系统装载器、操作系统内核、服务应用的顺序,逐层进行完整性验证并建立信任链。与传统计算平台不同,虚拟机环境下虚拟机管理器可以按需建立和关闭虚拟机,虚拟机运行的起点在虚拟机管理器而不是BIOS,传统的单一静态链式信任传递关系已不能满足虚拟计算平台信任链建立的需求[10]。
2)虚拟可信平台模块
在传统计算平台上,用户通过可信软件栈和可信平台模块驱动调用可信平台模块提供的可信服务,其中可信软件栈、可信平台模块驱动和可信平台模块之间是一对一关系。然而,虚拟计算平台多个虚拟机中的操作系统实例在同一虚拟化平台上独立运行,考虑到硬件资源有限和效率问题,不可能为动态创建的每个操作系统实例提供单独的物理可信平台模块,因此需要构建虚拟可信平台模块[11]解决虚拟计算环境下的可信服务问题。
3)可信服务迁移
虚拟计算平台能够为用户创建一种可迁移、可重构的使用环境,方便用户重构历史操作的环境镜像,无缝实现用户操作状态迁移。在可信服务迁移过程中,虚拟机上的操作系统和应用环境可在不影响应用程序执行的情况下迁移到新的硬件环境中,这就需要解决如何将相应的可信平台模块及服务安全地随着应用环境迁移的问题。
系统级虚拟化的核心是虚拟机管理器。一般来说,虚拟机管理器有监控模式、主机模式和混合模式三种实现方式。
监控模式下虚拟机管理器直接运行在宿主计算机的物理平台上,位于处理器的最高特权级,所有的虚拟机则运行在较低的特权级。主机模式下虚拟机管理器运行在操作系统上,虚拟机管理器可以充分利用宿主操作系统所提供的设备驱动和底层服务,但宿主操作系统的介入可能会导致系统性能损失。混合模式集成了监控模式和主机模式的优点,既可以利用主机操作系统的现成设备驱动实现虚拟机的设备使用模型,又不会丢失监控模式的高效率。混合模式的典型代表是英国剑桥大学开发的Xen虚拟机。可信计算虚拟计算环境应用框架基于混合模式系统虚拟平台架构实现如图1所示。
图1 可信计算虚拟化计算环境应用结构框架
构成可信计算虚拟化计算环境应用框架的实体包括物理可信平台模块(Trusted Platform Module,TPM)、可信BIOS、虚拟机管理器、可信系统软件、前端虚拟TPM 驱动、后端驱动、虚拟TPM 管理器、虚拟TPM 实例和TPM 驱动。
物理TPM 是整个系统的信任根,同时为特权虚拟机(运行于处理器最高特权级即VM#0)提供服务。
在启动过程中可信BIOS完成对硬件、虚拟机管理器、特权虚拟机的完整性度量。
虚拟机管理器完成对各个虚拟机中虚拟机装载器、可信系统软件和操作系统内核文件的完整性度量。
可信系统软件为各虚拟机提供可信运行控制等服务。
前端虚拟TPM 驱动与后端驱动通信传递可信服务命令。
虚拟TPM 管理器维护虚拟TPM 实例,接收后端驱动发送的命令传递到相应的虚拟TPM 实例中,必要时通过TPM 驱动调用物理TPM 提供的服务。
虚拟TPM 实例对应相应的虚拟机,为虚拟机提供可信服务。
TPM 驱动对应于物理TPM,与物理TPM 通信传递相应的可信服务命令。
针对系统级可信计算虚拟化计算环境应用结构框架的特点,需要部署的关键技术包括:虚拟机可信计算服务实现、信任链传递和虚拟可信平台模块实例的迁移技术。本节详细说明以上关键技术。
在可信虚拟平台架构中,一个平台只有一个物理TPM,但有多个虚拟机,需要为每个虚拟机创建一个虚拟TPM 实例。虚拟机使用前端虚拟TPM 驱动和虚拟TPM实例交互。其中,前端TPM 驱动运行在需要访问虚拟TPM 实例的虚拟机中,即VM#N;后端驱动运行在具有特权的虚拟机VM#0中。
虚拟TPM 管理器负责创建、保存、恢复和删除虚拟TPM 实例。虚拟TPM 管理器分别接受来自后端驱动、虚拟TPM 实例和虚拟TPM 管理器控制台的命令或数据。必要时虚拟TPM 管理器负责与物理TPM 的交互。
虚拟机可信计算服务由虚拟TPM 实例直接面向虚拟机提供服务,每个虚拟TPM 实例中存储与虚拟机对应的密钥、完整性度量值、完整性度量日志等资源,并提供相应的可信计算服务。
物理TPM 完成以下三个功能。1)对应管理特权域,为管理特权域提供可信计算服务;2)虚拟TPM 实例资源的保护。利用物理TPM,保护存放在计算存储介质虚拟TPM 实例资源,保护密钥存放于物理TPM 内;3)虚拟TPM 实例真实性证明。在远程证明过程中,远程挑战者为了确保虚拟机管理器不能修改虚拟机行为和认证报告,可再次验证虚拟TPM 实例的运行环境是可信的。挑战者除了验证虚拟平台实例对PCR 的签名外,还需验证物理TPM 对PCR 的签名,从而验证虚拟机和物理平台的整体安全性。
由于虚拟TPM 实例运行于特权管理域中,特权管理域必须提供安全性保证,保证每个虚拟TPM 实例中的资源不被非授权修改和窃取。
传统可信计算平台信任链的建立是基于物理TPM 或BIOS实现的,从信任根代码开始运行,在信任当前部件的前提下,对下一个将要执行的部件进行度量,确定下个部件可信后将控制权转交给它。启动过程通过“先度量,后执行”的方式运行,建立起信任链。
由于运行在虚拟机管理器之上的虚拟机可以多次重启和关闭,信任链传递演变成“树型”结构。虚拟机管理器作为启动后相对固定的度量根,度量虚拟机启动过程的完整性,因此虚拟机管理器自身完整性显得尤为重要。
由于虚拟机频繁迁移,可信虚拟平台在虚拟机迁移过程中如何保证其安全性是一个关键问题。传统的可信度量根是与物理平台进行绑定的,不能移动到另一个平台上。在虚拟平台中,虚拟机的可信度量根(即虚拟TPM)没有与物理平台进行绑定,这样虚拟TPM 就可以被复制、迁移或删除。为了防止虚拟环境下未授权的虚拟可信度量根的复制、迁移或删除,需要采取如下措施。
首先,远程挑战者需要对虚拟机进行安全认证(类似于平台安全认证),同时希望评估虚拟机迁移的可能性和可以迁移的新主机平台。远程挑战者不仅需要认证虚拟机和虚拟机管理器,而且需要认证其迁移组件和迁移控制器。
在确定迁移控制器运行在可信的配置上后,远程挑战者获取虚拟机的迁移策略。迁移策略主要包括以下几个方面:对目标物理平台的要求,包括可信平台模块厂商、可信平台模块版本号等;对目标虚拟平台的要求,如虚拟机管理器厂商、虚拟机管理器版本号、虚拟机管理器架构等;对系统架构的一些要求,如目标平台安全级别不能低于当前平台;目标平台和当前平台拥有者相同。
当迁移控制器决定需要移动一个虚拟机,迁移管理员通知迁移系统迁移事件发生。具体迁移步骤包括:首先挂起虚拟机;然后将虚拟机的状态进行打包存储;接下来创建迁移会话;之后传输虚拟机状态包;最后删除虚拟机。
由于一个虚拟可信平台模块包含了虚拟机的许多秘密信息,所以在迁移过程中,虚拟可信平台模块必须被严格保护,进而保证这些信息只对授权实体可见。从源平台到目标平台,虚拟机状态包的迁移,必须在安全的迁移传输协议下进行。
虚拟机环境作为特殊的一类计算机系统,其体系结构与传统的计算机系统不同,虚拟机环境下的可信计算机制的应用也与传统计算机系统有所不同。在虚拟化环境下建立可信计算环境面临虚拟环境下信任链建立、虚拟可信平台模块管理和可信服务迁移等问题。针对系统级可信计算虚拟化计算环境应用结构框架的特点,需要重点突破虚拟机可信计算服务实现、信任链传递、虚拟可信平台模块实例的迁移等关键技术。
[1]郑纬民.虚拟机监视器的运行层次与实现技术[J].中国计算机学会通讯,2008,4(4):42-48.
[2]Trusted Computing Group.TPM Main Part 1:Design Principles Specification Version 1.2[EB/OL].2006.[2013-04-07].https://www.Trusted computinggroup.org/developers/tpm.
[3]Trusted Computing Group.TPM Main Part 2:TPM Structures Specification version l-2[EB/OL].2006.[2013-04-07].https://www.Trusted computinggroup.org/developers/tpm.
[4]Trusted Computing Group.TPM Main Part 3:Commands Specification Version 1.2[EB/OL].2006.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/tpm.
[5]Trusted Computing Group.TCG Architecture Overview[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/infrastructure.
[6]Trusted Computing Group.PC Client Work Group PC Client Specific TPM Interface Specification(TIS),Version 1.2[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/pc_client.
[7]Trusted Computing Group.TCG PC Client Specific Implementation Specification For Conventional BIOS[EB/OL].2007.[2013-04-07].https://www.Trustedcomputinggroup.org/developers/pc_client.
[8]Intel virtualization Technology http://www.intel.com/technology/virtulization/index.htm.
[9]AMD.AMD Virtualization [EB/OL].http://www.amd.com/virtualization,2013-04-07.
[10]Trusted Computing Group.Virtualized Trusted Platform Architecture Specification[EB/OL].http://www.trustedcomputinggroup.org/resources/virtualized_trusted_platform_architecture_specification,2013-04-07.
[11]IBM.vTPM:Virtualizing the Trusted Platform Module[EB/OL].http://domino.research.ibm.com/library/cyberdig.nsf/1e4115aea78b6e7c85256b360066f0d4/a0163fff5b1a61fe85 257178004eee39.2013-04-07.