提供基于软件的安全协处理器的方法和装置的制作方法

文档序号:6567439阅读:403来源:国知局
专利名称:提供基于软件的安全协处理器的方法和装置的制作方法
技术领域
本发明一般涉及数据处理领域,并且尤其涉及支持安全的虚拟化 的方法和相关装置。
背景技术
常规的处理系统可以包括硬件资源,例如中央处理单元(CPU)和 随机存取存储器(RAM),以及软件资源,例如操作系统(OS)和一个或 多个终端用户程序或应用。典型地,所开发的程序都运行在特定的 OS上。当典型的常规计算机系统启动时,其在加载终端用户程序或 应用之前会加载OS。典型地,OS用作处理系统中软件应用和硬件之 间的媒介。
除了 RAM和一个或多个CPU之外,处理系统可以包括安全协 处理器(security coprocessor, SC),诸如可信平台模块(trusted platform module, TPM)。 TPM是驻留于处理系统中的硬件组件,其提供各种 设施和服务以增强处理系统的安全性。例如,可以将TPM实现为集 成电路(IC)或半导体芯片,并且其可以用于保护数据和验证平台配 置。
可以根据多种规范来实现TPM,例如2003年10月2日的可信 计算组(TCG)的TPM规范版本1.2 (下文中称其为"TPM规范"),其 包括诸如设计原理、TPM结构和TPM命令之类的部分。TPM规范 由TCG发'布,其可人人、互联网www.trustedcomputinggroup.org/home来获得。
TPM的子组件可以包括执行引擎和安全的非易失性(NV)存储器 或存储装置。安全的NV存储器用于存储诸如加密密钥之类的敏感信 息,而执行引擎根据由TPM控制逻辑所指示的安全策略来保护敏感 信息。
通常,遵从TCG的TPM基于平台的特征提供安全服务,诸如验 证该平台的身份和/或完整性。典型地,由TPM考虑的平台特征包括 平台的硬件组件,例如处理器和芯片组,以及驻留于平台中的软件, 例如固件和OS。 TPM还可以支持对软件处理的核查和日志记录,以 及对平台引导完整性、文件完整性和软件许可的检验。所以,可以说 TPM提供了平台的可信根。
因此,当诸如服务器之类的处理系统处置来自诸如客户机之类的 其它处理系统的请求时,服务器可以强制实施以基于TPM的验证为 基础的安全策略。例如,可以将服务器配置为拒绝来自任何客户机系 统的请求,除非这些请求伴随有来自该客户机系统的有效的、基于 TPM的平台验证。但是,当常规处理系统使用TPM时,该处理系统 每次仅能支持一个软件环境。
虚拟化产品具有将处理系统划分成多个虚拟机(virtual machine, VM)的特性。例如,虚拟化产品能够以使多个OS能够同时在同一主 机上执行的方式来划分并管理处理系统的硬件资源。特别地,每一 OS可以运行在不同VM中。因此,可以将每一 VM视为实质上独立 的软件环境。运行在VM中的OS可以被称为客户OS (guest OS)。可 以由诸如虚拟机监视器(VMM)或管理程序(hypervisor)之类的虚拟化 产品来管理VM。
如本发明所指出的,如果VMM能够使每一 OS实质上以该OS 仿佛是在其自己的独立物理机器上工作的方式来运行,这将是比较有 利的。美国专利申请no.l0/876,944('944申请)被转让给本申请的同一 实体,其论述了支持VM使用TPM的功能。本申请披露了与TPM和 虚拟化相关的其它特性和能力。


参照所附权利要求、如下的一个或多个示例性实施例的详细描述
以及相应的附图,本发明的特征和优势将变得显而易见,其中
图1是一个框图,描述了适当的数据处理环境,其中可以实现本 发明的一个示例性实施例的某些方面;图2示出了一个框图,就用于支持诸如TPM虚拟化之类的功能
的各种结构和密钥,描述了一个示例性TPM;
图3是一个框图,示出了示例性的通用虚拟TPM框架的各种组 件和相关项目;
图4示出了虚拟TPM双包裹密钥(double wrapped key)的一个示 例性实施例的框图;以及
图5是一个框图,示出了示例性组件和操作,其用于准备虚拟制 造商认证中心(virtual manufacturer authority)以便为虚拟TPM提供安
全验证。
具体实施例方式
平台分区技术,诸如创建VM的技术,近来因其潜在的安全价值 而越来越受到关注。虚拟化技术使平台能够被分成多个VM,而相比 当今的复杂平台,每一 VM可能运行较少的软件。个别地,如上所示, TCG提供了硬件加强安全性的标准,以便于创建可以被分类为可信 平台的处理系统。TPM可以提供可信平台的可信根。
如果可以识别给定VM中的所有软件,并且如果TPM可以有意 义地验证该VM中所有的软件,这将是比较有利的。但是,共享TPM 以使其被多个VM所使用是很困难的,至少部分是由于TPM的状态 和不透明特性。
一个编写良好的VMM应当阻止运行在一个VM中的恶意软件篡 改运行在另一个VM中的软件。此外,使用TCG可信引导模型,如 果TPM可以测量每一 VM中的OS和应用以提供对OS和应用的数 据保护、以及便于验证远程实体,这将是比较有利的。
不幸的是,TPM的测量工具被设计为仅用于存储一个操作系统 的测量结果。常规TPM缺少单独存储多个同时运行的OS的测量结 果的能力。此外,由于TPM的封闭的、类似智能卡的特性,导致无 法读取或转出其状态。所以,传统的用于设备共享或虚拟化的技术无 法用于TPM。
图1是一个框图,描述了适当的数据处理环境12,其中可以实现本发明的一个示例性实施例的某些方面。数据处理环境12包括处
理系统20,处理系统20包括一个或多个处理器或中央处理单元(22), 其经由一个或多个系统总线24或其它通信路径或介质可通信地耦合 到各种其它组件。
这里所用的术语"处理系统"和"数据处理系统"广泛地涵盖单 机、或可通信地相耦合的一起工作的机器或设备构成的系统。示例性 的处理系统包括(非限制性的)分布式计算系统、超级计算机、高性 能计算系统、计算集群、大型计算机、迷你计算机、客户机-服务器 系统、个人计算机、工作站、服务器、便携式计算机、膝上型计算机、 平板计算机、电话、个人数字助理(PDA)、手持设备、诸如音频和/ 或视频设备之类的娱乐设备以及其它用于处理或传输信息的设备。
可以至少部分地通过来自常规输入设备(例如,键盘、鼠标等)的 输入、和/或通过从另一个机器、生物统计反馈或其它输入源或信号 接收的指令来控制处理系统20。例如通过网络接口控制器(NIC)、调 制解调器或其它通信端口或耦合,处理系统20可以使用一个或多个 到一个或多个远程数据处理系统76-78的连接。可以通过物理和/或逻 辑网络80(例如局域网(LAN)、广域网(WAN)、内联网或互联网等)的 方式来将多个处理系统相互连接。涉及网络80的通信可以利用各种 有线和/或无限短距离或长距离载体或协议,包括射频(RF)、卫星、 微波、IEEE (电气和电子工程师协会)802.11、蓝牙、光纤、红外、电 缆和激光等。
在处理系统20中,处理器22可以可通信地耦合到一个或多个易 失性或非易失性数据存储设备,例如随机存取存储器(RAM) 26、只 读存储器(ROM)、诸如电子集成驱动器(IDE)硬盘之类的大容量存储 设备、和/或诸如软盘、光存储、磁带、闪存、记忆棒、数字视频盘、 生物存储等的其它设备或介质。在本公开中,术语"ROM"可以概 括用于指代非易失性存储设备,例如可擦写可编程ROM (EPROM)、 电可擦写可编程ROM (EEPROM)、闪速ROM、闪存等。处理器22 也可以可通信地耦合到附加组件,例如视频控制器、小型计算机系统 接口(SCSI)控制器、网络控制器、通用串行总线(USB)控制器、诸如键盘和鼠标之类的输入设备等。处理系统20还可以包括一个或多个 桥接器(bridge)或中枢(hub) 34,例如存储器控制器中枢、输入/输出(1/0) 控制器中枢和PCI根桥接器等,用于可通信地耦合各种系统组件。这 里所用的术语"总线"可以用于指代共享通信路径以及点对点路径。
可以将一些组件,例如NIC,实现为适配器卡,其具有接口(例 如PCI连接器)以与总线进行通信。在一个实施例中,使用诸如可编 程或非可编程逻辑设备或阵列、专用集成电路(ASIC)、嵌入式计算机 和智能卡等的组件,可以将一个或多个设备实现为嵌入式控制器。
如图所示,处理系统20还包括可通信地耦合到处理器24的TPM 30。 TPM30还可以被称为物理TPM或硬件TPM(hwTPM)30。在一 个实施例中,将TPM 30实现为嵌入式设备,驻留在处理系统20的 系统主板或底板上。TPM30包括几个存储设施,包括易失性平台配 置寄存器(PCR)和授权会话,以及持久性数据完整性寄存器(DIR)、授 权摘要和通用持久性存储。这些设施中的每一个均具有相应的存储器 内数据结构。
可以通过参考或结合相关数据来描述本发明,所述数据包括指 令、函数、过程、数据结构和应用程序等,当机器访问所述数据时, 会致使该机器执行任务或定义抽象数据类型或底层硬件上下文。数据 可以被存储在易失性和/或非易失性数据存储装置中。
例如,RAM26可以包括一组或多组指令,当这些指令当被执行 时,可以实现通用虚拟TPM (GVTPM)框架40来支持TPM 30的安全 的虚拟化。GVTPM框架40还可以被称为虚拟TPM服务。在本公幵 中,虚拟TPM (vTPM)是逻辑(即,主要是软件实现的)组件,其提供 类似TPM的功能。同样,虚拟安全协处理器(vSC)是一个逻辑设备,
其提供潜在地可由硬件安全协处理器来提供的功能。
在一个示例性实施例中,GVTPM框架40可以部分或全部地在 VMM 64中运行。在另一个实施例中,GVTPM框架40驻留于一个 或多个由VMM支持的服务VM中。服务VM可以被称为轻量VM, 这是因为与具有客户OS的VM相比,其可以需要较少的资源。在替 代性实施例中,GVTPM框架40的一些或所有模块可以驻留于固件
或任何其它受保护的环境中。GVTPM框架的不同实施例可以为各种 VMM架构提供虚拟TPM服务。在其它实施例中,GVTPM架构40 可能根本不是VMM的一部分。
在示例性实施例中,处理系统20可以在引导时或在此后的某时 间将VMM 64加载到RAM 26中,以支持处理系统20中的一个或多 个VM 60A-60C。可以通过执行诸如微内核和服务OS之类的软件或 固件组件来实现VMM 64。微内核可以包括指令的小核心(small nucleus),用于诸如指令调度之类的系统管理任务。服务OS可以包 括设备驱动和环境虚拟化软件以创建并维护VM。服务OS中的设备 驱动可以包括TPM驱动以与TPM30进行通信。或者,如图3所示, 可以将TPM驱动130加载到不同软件组件中,例如GVTPM管理器 110。处理系统20可以从例如ROM和/或一个或多个本地或远程大容 量存储设备加载实现VMM 64和GVTPM框架40的指令。也可以从 例如ROM和/或一个或多个本地或远程大容量存储设备加载任何用 于支持或促进TPM虚拟化的附加指令。在示例性实施例中,VMM 64 支持多个VM 60A-60C,其中每一个运行其自己的独立客户OS。 一 个或多个VM可以运行遵从于TCG标准的可信软件栈或TCG软件栈 (TSS)。
在本公开中,vTPM、专属vSC和类似的虚拟设备可以被称为设 备模型(DM)。在示例性实施例中,这种设备模型由GVTPM框架40 支持。此外,GVTPM框架40可以支持多DM设计。例如,如下参 考图3所更详细描述的,GVTPM框架40可以基于一个DM设计创 建vTPM,并且GVTPM框架40可以基于另一个DM设计创建专属 vSC。因此,可以将不同的DM设计用于帮助实现不同类型的安全协 处理器的虚拟化。GVTPM框架40因此可以支持具有不同安全和性 能权衡的vTPM和其它vSC。由于vSC并不限于vTPM,因此GVTPM 框架40还可以被称为虚拟安全协处理器(vSC)框架。
如图1所示,在一个实施例中,处理系统20包括数据存储设备 28,其包含一个或多个VM定义41、 51。在一个实施例中,VM定 义驻留于硬盘驱动器(HDD)中。在替代性实施例中,VM定义可以驻
留于其它类型的存储设备中。例如,可以从远程系统中获得VM定义 并将其加载到RAM 26或处理器22的高速缓存中。VM定义可以定 义在虚拟机中包括的属性。例如,当VMM 64确定其应当创建VM 60A时,处理系统20可以将VM定义41作为引导块对待,使用 GVTPM框架40测量VM定义41 ,随后VMM 64将控制传递给VM 定义41中的初始化指令或引导代码。通过执行该引导代码,至少可 以部分实例化VM60A。特别地,基于VM定义41中的控制逻辑和/ 或初始化数据,可以为VM 60A创建TPM 44A。如下面所更详细描 述的,该控制逻辑可以构成或包括程序代码段(PCS) 45以用于实现 vTPM。类似地,具有相应PCS 55的VM定义51可以用于创建VM 60C 和相应的vSC 44C。
在示例性实施例中,GVTPM框架40从受保护的主存储器上运 行。例如,处理系统20可以使用诸如在美国专利no.6,507,904、 6,633,963、和/或6,678,825(全部转让给英特尔公司)中描述的技术, 来将GVTPM框架40加载到存储器的隔离区域并从中执行GVTPM 框架40,其中该存储器的隔离区域受硬件保护,以防止其被其它分 区中的软件访问或篡改。在替代性实施例中,其它技术可以用于提供 受保护的存储器。例如,环境可以包括提供受保护的存储器的系统管 理模式(SMM),或受保护执行环境可以使用防篡改的软件编译器来创 建。其它组件(例如,VMM 64、微内核等)也可以驻留于受保护的存 储区域中。在示例性实施例中,受保护的存储器确保了软件/指令可 以不受干扰或监视地运行。
受保护的存储器还可以用于阻止未授权的程序访问或篡改敏感 信息。例如,如下所更详细描述的,GVTPM框架40可以创建虚拟 TPM 44A来为VM 60A仿真硬件TPM。 GVTPM框架40可以使用受 保护的存储器来存储数据并保护存储在vTPM 44A的结构中的数据。
如图3所示,GVTPM框架40可以包括受保护的存储服务(PSS) 100, PSS 100可以使用TPM 30来保护vTPM,即使当vTPM并未运 行时也是如此。例如,当vTPM没有活动工作时,可以将针对该vTPM 的持久性数据结构存储在磁盘上,并使用父SRK将其密封(seal)在
vTPM服务的PCR中。
在示例性实施例中,在单用户授权会话下,vTPM44A能够透明 地从其自身和hwTPM30提供TPM功能。vTPM 44A通过维持与用 户和hwTPM的单独的授权会话来完成这一目的。也就是说,用户将 创建与vTPM 44a的授权会话,就仿佛vTPM 44a是hwTPM —样。 vTPM 44A可以完成hwTPM所会进行的基于这个会话的所有相同的 授权检查。如果vTPM 44A可以直接提供所请求的功能,则vTPM 44A 可以简单地更新会话随机数(nonce)并进行应答。如果vTPM 44A需要 hwTPM来提供服务,则vTPM 44A将创建授权会话或重用与hwTPM 的现有授权会话来生成请求。 一旦vTPM 44A使用hwTPM完成了该 操作,vTPM44A可以更新关于用户会话的随机数并进行应答。
在示例性实施例中,GVTPM框架40提供了执行环境,用于可 信赖的虚拟TPM (vTPM) 和4犯、和/或诸如vSC 4化之类的其 它类似TPM的虚拟组件。为了保护vSC 44A-44C所使用的敏感数据, GVTPM框架40使用TPM 30来确保vSC的可信赖性在符合使用TPM 的软件的预期的硬件中是固定的。在本公开中,术语"虚拟TPM" 和"vTPM"用于指代物理TPM的软件仿真或模拟、以及相似类型的
安全子系统的软件仿真。
GVTPM框架40可以允许多个相互不信任的禾B/或不知晓的客户 共享TPM,而无需修改客户OS或运行在客户OS上的应用。此外, GVTPM框架40可以包括用于提供创建具有增强的专属功能的定制 加密子系统的必要环境的特性。本公开还描述了附加的TPM特性, 用于在诸如GVTPM 40之类的框架内对虚拟化进行优化。
一个或多个示例性实施例的剩余的详细描述将以如下方式进行 安全背景部分提供了 TPM的背景;通用虚拟TPM框架部分论述了一 个示例性框架;示例性vTPM设备模型设计部分描述了两个示例性 vTPM设计或设计模型;硬件优化部分描述了便于TPM虚拟化的示 例性硬件特性;接下来是关于虚拟TPM的远程部署和供给以及迁移 虚拟TPM的部分。
1.0-安全背景
1.1 - TPM功能介绍
产业协会TCG已经将TPM标准化为小型加密子系统,其许诺提 供平台上的信任基础。为此,TPM提供了便于验证的功能和受保护 的存储。
TPM功能的核心在于其存储平台配置信息的能力。而该信息可 以用于TPM的两个主要功能。平台可以向远程实体提供使远程实体 能够确定该平台的可信赖性所需的信息。平台还可以指示TPM确保 仅当系统处于已知"良好"配置状态下时才释放密钥或敏感数据。
为了存储平台状态,常规TPM使用PCR来存储测量结果,存储 的形式为平台的软件和配置信息的160比特SHA1 (安全散列算法1) 散列。这些测量结果开始于引导块。每一引导组件测量下一个,将其 记录在TPM中,并随后启动该组件,直到操作系统接管对其核心的 测量。由于每次向PCR写入都将测量结果增加到寄存器中,而不是 覆写先前的测量结果,因此没有实体可以改变由前一组件所做出的其 代码的测量结果。所以,就形成了测量结果链,使得如果该链的起始 (被称为可信测量根)和每一链接是可信赖的,则整个链都是可信赖 的。
1.2-验证
验证是指TPM功能和协议组,其使平台能够将其配置以可信赖 的方式报告给远程方。例如,TPM提供了对用于存储平台状态的PCR 进行签名的能力。例如,平台可以使用身份验证密钥(attestation identify key, AIK)来对PCR进行签名。这种经签名的PCR可以被称为 引i正(quote)。
为了向远程实体证明该引证是由真正的TPM签名的,每一 TPM 具有一组凭证。例如,由TPM制造商签名的签署凭证(endorsement credential)表明该TPM符合TPM规范。制造商还在TPM中存储被称 作签署密钥(EK)的唯一密钥,制造商使用该EK来对签署凭证进行签 名。理论上讲,可以将EK直接用于对PCR引证进行签名。但是,
由于EK是唯一的,因此使用了第三方以提供保密性。特别地,平台 使用被称作保密认证机构(certificate authority, CA)的第三方来创建每 个AIK的身份凭证。使用EK和签署凭证,TCG定义了一个协议, 该协议使TPM能够向保密CA证明该TPM是真正的TPM。继而, 保密CA为TPM声称其拥有的AIK创建身份凭证。
假定远程实体信任TPM的制造商、保密CA和可信测量根,则 由AIK签名的且附有身份凭证的引证是该平台当前状态的加密证据。 例如,如果将常规验证方法用于类似于图l所示的网络环境中,诸如 保密CA 76之类的远程处理系统将提供常规TPM的AIK的身份凭 证,处理系统20将使用该身份凭证来对诸如挑战者78之类的远程处 理系统作出可信赖性断言。但是,正如下面所更详细描述的,本公开 引入了经修改的验证方法来支持虚拟安全处理器或虚拟TPM,以用 于诸如处理系统20之类的设备中的例如虚拟机60A-60C这样的分 区。
图2是一个框图,就支持诸如TPM虚拟化之类的功能的各种结 构和密钥,.描述了一个示例性TPM,诸如TPM30。在图2中,TPM 30的EK被表示为hwEK 52,存储根密钥被表示为hwSRK 50,由 TPM制造商提供的签署凭证被表示为EK—Cred 54。图2还示出了存 储38中的PCR32和DIR36。
1.3-安全存储
TPM提供的另一组服务是是密钥和其它数据的安全存储。TPM 可以创建Rivest-Shamir-Adleman (RSA)密钥,仅当(a)请求者通过保密 SHA1散列提供授权时,禾口(b)由PCR确定的当前配置表示"良好" 状态时,它才允许使用该密钥。该强大功能使平台能够加密数据,以 使当机器受损、从外部介质引导、或另外受到篡改时,数据将保持不 可访问。
为了支持诸如安全存储之类的服务,TPM创建具有单一目的类 型的密钥用于不同操作。类型为EK的密钥仅用于对来自保密CA的 身份凭证进行解密。AIK用于对其它密钥进行签名和引证PCR。存
储密钥(SK)用于保护其它密钥或"密封"数据,所述"密封"数据是 对数据的特别加密,使用密码或PCR绑定来保护该数据。绑定密钥 (BK)用于对任意数据进行加密,并将数据转换成TPM绑定数据结构。 签名密钥(Sigk)用于对任意数据进行签名。最后,继承(legacy)密钥可 以对数据进行加密或签名,且无需该数据为TPM绑定数据结构的形 式。
每个TPM具有两个核心密钥,EK和被称作存储根密钥(SRK)的 特别类型的SK。 SRK处于可由系统或用户创建的密钥层级的顶部。 该层级的构建以存储密钥作为支干,而以EK类型之外的任意其它类 型作为叶子。在该层级的密钥中,仅SRK和EK需要一直被加载到 TPM中。其它密钥可以存储在TPM之外,被加密为"包裹密钥", 并在使用前加载。下面将更详细地描述包裹密钥。 一旦加载了密钥, 只要该密钥类型对于操作是正确的、给定了适当的授权、且PCR与 该密钥所指定的任何PCR绑定相匹配,其就可以执行任意功能。
1.4- TPM组件
国际商用机器公司的TPM、智能卡、模型4578加密协处理器以 及其它类似的设备或子系统本质上是小型完备计算环境,其通常包含 诸如防篡改之类的边界保护。因此,可以信任这种设备来进行特定的 计算,而无需依靠外部资源来操作。
典型的TPM包括下列四个组件。
1. 程序代码段(PCS): TPM控制逻辑的代码段,通常作为只读 数据存储在ROM中。
2. 处理器执行PCS的小型CPU。
3. 非易失性存储器(NV存储器或NVM): NVM是TPM中的存 储装置,其存储持久性密钥、保密数据和TPM的其它状态。其通常 位于防篡改闪存中,在重启过程中其数据得以保存。
4. 活动存储器其是易失性存储器,用于存储在断电时会丢失 的非持久性数据。
根据这些基本部分构建的设备的技术能力主要受它们的内部资源的限制。在实践中,为了避免高开发和部署成本,这些设备通常仅包括 少数简单、通用目的的构造用于数据保护。例如,在典型的设备中, 提供了简单的加密和解密功能,但却不提供复杂的访问控制策略。通 过提供不具有相同资源限制、并且其开发和部署成本也较低的多个计 算区域,这里所披露的框架减轻了这个问题。
2.0 -通用虚拟TPM框架
图3是示出了示例性GVTPM框架的各种组件和相关项目的框 图。在所示的实施例中,GVTPM框架40包括多个组件,这些组件 有助于提供TPM组件的各种功能和安全属性。
并且,GVTPM PSS 100用作每一DM的NVM的中央储存库, 而平台的CPU 22和RAM 26提供处理器和活动存储器资源。由于PSS 100为每一 DM的持久性数据提供受保护存储,因此PSS 100也可以 被称作受保护的持久性存储。在示例性实施例中,GVTPM框架40 施加一个安全性要求,即平台将隔离CPU22和RAM26的使用,来 确保该框架不受平台的其余部分的影响。 一种满足隔离要求的方式 为,将组件实现在可信虚拟机监视器(TVMM)中或使用TVMM来将 GVTPM框架40隔离在其自己的VM中。在示例性实施例中,VMM 64通常被接受为TVMM。在替代性实施例中,可以不在PSS中存储 NVM。作为替代,PSS可以以上述类似的方式来加密NVM并将NVM 返回到vSC。
此外,GVTPM管理器110提供vSC 44A-44C的创建、去激活 (deactivation)和其它管理功能,虚拟制造商认证中心(MA) 124、 126 用于获得vSC 44A-44C的凭证。GVTPM框架40还包括密钥和会话 管理器140,当一个vTPM从处理器22卸载且另一个vTPM准备好 变为活动时,GVTPM管理器110将密钥和会话管理器140用于诸如 换出密钥和授权会话之类的任务。例如,属于被加载但当前没有在处 理器22上调度执行的vTPM的密钥可以被移除,以为vTPM所需的 密钥腾出空间,该所需密钥被调度(或很快调度)在处理器22上运行。
在示例性实施例中,将GVTPM框架40的所有组件与系统的剩
余部分隔离,以确保这些组件中存储的保密数据的安全。
2.1 - GVTPM设备模型
GVTPM框架40可以使用VM定义41来创建DM 44A和44B, GVTPM框架40可以使用VM定义51来创建DM 44C。当提供或使 用DM时,GVTPM框架40可以使用虚拟化事件(VE)。例如,当VM 60A中的软件试图访问TPM时,则触发VE。响应于VE,可以将控 制从VM 60A转移到VMM 64。 GVTPM管理器110可以拦截VE以 便参考vTPM44A来处理事件。在示例性实施例中,尽管VM60A可 能不知道除vTPM 44A之外的任何TPM,但是GVTPM管理器110 可以使用hwTPM 30来支持vTPM 44A。
实际上,DM将GVTPM功能扩展到诸如VM 60A-60C之类的 OS分区。每一 DM的保护边界由其执行所处环境(例如TVMM)来提 供。通过单独在每一 GVTPM组件和每一 DM周围设置边界,每一 DM在另一DM被损害的事件中保持隔离。因此,根据该设备模型设 计在DM中实现的数据结构可以被认为是该设备模型的防篡改结构。
框架的设计使得在设备模型设计中有灵活性。例如,与由一般硬 件SC支持的有限功能不同,VMM允许的任何功能可以运行在DM 中。在专属功能的情况下,框架的灵活性支持各种各样的加密算法、 签名方案、访问控制策略和存储机制。
在示例性实施例中,针对虚拟TPM,每一DM管理其自己所有 的一组TPM结构和资源,包括其自己的EK、 SRK、 PCR、 DIR、单 调计数器、用户密钥层级和通用NVM等。这使得vTPM具有和硬件 TPM相同的功能,确保应用可以透明地使用硬件或虚拟TPM。
在示例性实施例中,vTPM44A使用软件来提供模拟的、持久性 的、单调的计数器。计数器的数量实际上是无限制的。在示例性实施 例中,vTPM44A至少提供了预期来自hwTPM的四个计数器。vTPM 计数器可以不需要至硬件TPM计数器的任何直接链接。
诸如vPCR 92之类的虚拟PCR不具有hwTPM的资源约束,而 是具有可被其使用的可配置数量的PCR。在示例性实施例中,vPCR 92存储在PSS 100内的vTPM 44A的存储空间中,vTPM 44A在vPCR 92 上对标准PCR操作进行仿真。
该框架使单体DM设计有能力平衡性能和安全性。通过在DM内 的软件中实施密钥,某些实现可能具有更快的加密操作或增强的迁 移,而其它则可能需要所有密钥总是驻留在硬件TPM中并且DM作 为它们的入口。此外,该方法透明地使不同的DM设计能够调整它们 的服务以满足不同地方的数据保护和加密规定。
如下面将更详细描述的,GVTPM管理器110可以为每一 DM设 计提供不同的虚拟制造商认证中心(vMA)。例如,在图3中,虚拟制 造商认证中心124基于由VM定义41提供的DM设计来向DM提供 服务,而虚拟制造商认证中心126基于由VM定义51提供的DM设 计来向DM提供服务。
2.2 - GVTPM管理器
GVTPM管理器110是GVTPM框架40的中央管理组件。在示 例性实施例中,GVTPM管理器110是负责vTPM供给、桥接其它框 架组件并准予DM串行访问TPM 30的管理组件。在一个实施例中, GVTPM管理器110通过请求VMM 64 (a)创建必要的VM和(b)提供 通信信道,来供给新DM。在供给新DM的过程中,GVTPM管理器 IIO将收集PSS 100需要用来对DM进行认证的任何信息,例如对 DM代码的测量。例如,GVTPM管理器110可以测量特定VM定义 之中的PCS,该特定VM定义用作对正在考虑的DM进行实例化的 基础。例如,VM定义41可以包括用于特定TPM类型或模型的PCS 45,而VM定义51可以包括用于特定智能卡类型或模型的PCS55。 在一个实施例中,由处理系统支持的每一不同的DM设计主要或完全 由VM定义中的PCS来定义。
GVTPM管理器110可以提供每一特定OS分区和相应DM之间 的通信信道。GVTPM管理器IIO还可以提供其自身和每一DM之间 的通信信道。GVTPM管理器110向DM提供对于其它GVTPM组件 的访问,例如到虚拟制造商认证中心的访问,到PSS100的访问和到hwTPM 30的串行访问。GVTPM管理器110因此负责多个DM共享 hwTPM 30。管理的主要资源是一组加载的密钥和授权会话。共享技 术,诸如在上面参考的TPM规范的核心服务部分中提出的那些技术, 可以适合该任务。
在示例性实施例中,GVTPM管理器110确保每次仅一个vTPM 访问TPM 30。此外,GVTPM管理器110将密钥和授权会话换出和 换进TPM30,来确保每一vTPM具有其所需的资源。
2.3 - GVTPM受保护存储服务
为了在DM中保持灵活性,GVTPM框架40对每个DM如何工 作施加相对较少的要求。在一个实施例中,唯一的要求是,将所有的 持久性数据(例如密钥、计数器、NVM数据、禾QvTPM所需的以便在 系统重引导时工作的任何其它状态)从NVM拷贝到加载的活动存储 器上,并随后在需要时存储回NVM。根据该要求,在DM不工作时, PSS负责保护DM的NVM。在DM加载后,TVMM负责在DM执 行时提供数据隔离和保护。
在示例性实施例中,PSS 100对vTPM进行认证并确保vTPM的 状态仅被加载到先前存储了该状态的vTPM中。PSS 100还确保存储 的状态的完整性,并提供抗重放保护。为了保护每一 DM的离线 NYM, PSS 100提供了在TPM30中确立的强认证和保护机制。该认 证识别先前保存NVM的DM的PCS,并确保PCS因NVM被保存而 没有受到篡改。除了对加载NVM的PCS进行认证之外,也很关键的 是,TPM确保因NVM被保存而使得TVMM、 GVTPM管理器110 和任何其它能够破坏组件隔离的代码没有受到篡改。
为了实现这一 目的,在示例性实施例中,将GVTPM组件的散列、 以及基本的可信计算基础(TCB)内的所有软件的散列存储在TPM 30 内的PCR中。通常,术语TCB通指处理系统中这样的组件,其能够 影响处理系统的基础安全策略。例如,TCB可以包括硬件、引导代 码、内核、控制系统工作的配置文件、以及运行时具有特权或访问权 限来更改内核或配置文件的任何程序。在示例性实施例中,TPM 30
将检测对GVTPM组件或TCB的篡改,将阻止将保密数据释放给不 适当的DM,并将确保适当的存储保护正常工作。
2.3.1 -保存NVM
在示例性实施例中,每次操作改变DM的NVM时,DM向PSS 100发出请求来保存其NVM。在替代性实施中,可以将DM设计为 延迟保存它们的NVM,从而以可能的较低确保度的开销来提升性能。
当PSS 100接收NVM时,NVM是作为不透明数据而到达的。 NVM数据被视为不透明的,这是因为PSS无法分析其接收到的NVM 数据。PSS可以简单地生成随机数并随后加密NVM数据和随机数。 在示例性实施例中,PSS 100使用其自己的非可迁移TPM密钥来执 行加密,该密钥具有其自己的PCR绑定,该绑定被设置给平台TCB、 GVTPM管理器110和PSS100的测量。通过使用PCR绑定,TPM 30 将确保,当TCB和GVTPM管理器110未被更改时,仅可由该密钥 来对该数据体(blob)进行解密。PSS 100可以随后将加密的NVM非透 明数据体的一个拷贝发送给DM。
一旦保存了该NVM数据体,PSS 100测量DM,并且PSS 100 将DM的测量结果、NVM数据体标识以及随机数保存在持久性数据 库中。该数据体的散列可以作为良好的唯一标识符。如果该DM具有 先前的存储状态,则PSS 100可以用新记录覆写旧记录。
2.3.2-恢复NVM
在示例性实施例中,当DM启动时,其请求其之前存储的NVM 由PSS 100恢复。响应于此,PSS 100首先计算该数据体的标识符, 使PSS 100能够在数据库中查找记录。接下来,PSS 100测量DM并 验证该DM测量结果与记录中的测量结果相匹配。随后,PSS100使 用其TPM密钥来对数据体进行解密,并检验其中的随机数。
在示例性实施例中,在恢复NVM之前,PSS 100确保五个条件
NVM对应于请求DM。
NVM是该DM的最新NVM 。
NVM在存储后未经修改。
NVM数据体由PSS 100创建。
在NVM存储后TCB未改变。
将DM测量结果进行比较确保符合条件1。成功查询和成功解密 的组合表明条件2和条件3也满足。包含有保密的随机数表明是PSS 创建了该数据体,其并非是使用PSS公钥的伪造品,从而满足条件4。 最后,成功使用PSS TPM密钥来进行解密表明TPM已证实了 GVTPM 框架和TCB均处于和它们以前相同的状态。
一旦证实了这个五个条件,则不透明的NVM被返回给DM,而 DM将继续进行其初始化。
2.4-虚拟制造商认证中心
在许多情况下,有证据表明,给定密钥驻留在DM中而该DM驻 留在给定GVTPM环境中是很有价值的。在硬件TPM的情况下,TPM 制造商对签署凭证进行签名,以表明EK在TPM内部受到保护,平 台制造商对平台凭证进行签名,以表明TPM驻留在遵从TCG的平台 中。在GVTPM框架40中,每一虚拟制造商认证中心以类似的方式 工作,保证密钥驻留在DM中,该DM是依照遵从TCG的平台内的 GVTPM框架40中的特定设备模型。
实际上,GVTPM框架40使可信的认证机构向虚拟制造商认证 中心委托TPM制造商和平台制造商状态。在一个示例性实施例中, 虚拟制造商认证中心是作为TPM制造商、平台制造商或两者的平台 上的可测量软件。采用验证所需的适当的凭证,虚拟制造商认证中心 使平台能够使用虚拟化来安全地创建新vTPM。
图5是示出了示例性组件和操作的框图,所述组件和操作用于准 备虚拟制造商认证中心以便为vTPM提供安全验证。在图5中,处理 系统20的硬件被共同表示为平台硬件252。该硬件包括TPM30。运 行在硬件之上的是一个或多个可信分区。在一个实施例中,这些分区 包括VM 60A和vMA分区254。 VMM 64可以在第三个不同的分区 中工作。例如, 一个或多个分区可以被实现为虚拟机。在替代性实施 例中, 一个或多个组件可以共享一个受保护分区。
在示例性实施例中,虚拟制造商认证中心本地驻留处理系统20 上,位于可信组件内。例如,虚拟制造商认证中心124可以驻留在可 信VMM 64中,或在VMM 64支持的可信分区254 (例如,可信VM) 中。但是,在替代性实施例中,虚拟制造商认证中心可以驻留在固件 或任何其它受保护分区中,在这之中,它们可以被测量,并且测量结 果可被存储在平台的TPM中。VTPM也本地驻留在可信组件内的处 理系统20上。例如,vTPM44A驻留在示例性实施例的VM 60A中。
每一虚拟制造商认证中心在TPM 30内创建签名密钥250,其用 于对TPM凭证进行签名。在示例性实施例中,为了使来自虚拟制造 商认证中心124的凭证有意义,虚拟制造商认证中心124首先令第三 方(例如,外部CA)确信虚拟制造商认证中心124的配置是可信赖的、 并且虚拟制造商认证中心124的签名密钥受到了 TPM的保护。可以 将该第三方认为是虚拟制造商保证认证中心(virtual manufacturer certifying authority, VMCA)。实质上,VMCA是保密CA可信的实体, 以确定哪些GVTPM环境是可以被足够信赖以用来制造可靠的虚拟 TPM。相同实体可以被用作保密CA和VMCA,或者如图1所示, 保密CA 76和VMCA 77可以是分离开的实体,而保密CA 76信任 VMCA 77来正确评估vSC框架和DM。
在示例性实施例中,当处理系统20启动VMM 64时,并且当 VMM 64创建分区254并将虚拟制造商认证中心24加载到该分区中 时,PCR 32中的值被修改来反映平台的变化,如箭头270和271所 示。
如箭头272所示,虚拟制造商认证中心124随后创建TPM签名 密钥250,该密钥被绑定到虚拟制造商认证中心124的状态、以及影 响虚拟制造商认证中心124的完整性的任何软件上,所述软件例如 GVTPM框架40、 VMM 64和TCB中的任何其它组件,如PCR 32 中所反映的。虚拟制造商认证中心124随后向VMCA77证明TPM 30 将不允许除虚拟制造商认证中心124之外的任何实体访问该TPM签 名密钥。
与虚拟制造商认证中心和TCB的状态的绑定证明,虚拟制造商 认证中心124将依据GVTPM框架40中体现的策略来工作。虚拟制 造商认证中心124因此证明了其受特定平台和软件配置控制。从而, 签名密钥250隐含地验证了由GVTPM框架40创建的任何虚拟TPM 将依据GVTPM框架40中所体现的策略来工作。然后,例如参考经 证明的环境的列表,VMCA77可以确定环境是否为可信赖的。
例如,当处理系统20处于与当签名密钥被创建时的相同的配置 中时,图3中的虚拟制造商认证中心124可以使用协议来向VMCA77 证明,虚拟制造商认证中心124的签名密钥250驻留在TPM 30中, 且仅可由虚拟制造商认证中心124使用。这种协议的一个示例为,要 虚拟制造商认证中心124在TPM30内创建AIK。通过标准通道,虚 拟制造商认证中心124随后获得该密钥的身份凭证,该身份凭证是由 保密CA签名的,并且能够证明身份密钥所做的任何要求是由可信 TPM做出的。该身份密钥随后被用于确认签名密钥250,通过该过程, TPM 30使用身份密钥来对一个声明进行签名,该声明说明了签名密 钥和身份密钥处于相同的TPM中、并且签名密钥被绑定到特定配置 中,其中该特定配置确保了对于支持虚拟制造商认证中心124的环境 的信任。当该声明与表明该身份是在真正的TPM中的身份凭证相组 合时,可以推导出虚拟制造商认证中心124的签名密钥250是由合法 的TPM保护的、且仅用于提供对于虚拟制造商认证中心124的操作 的信任的特定配置中。
一旦虚拟制造商认证中心124使VMCA77确信该虚拟制造商认 证中心124具有与特定配置绑定的TPM签名密钥,VMCA77就基于 可靠信息确定该配置是否足够安全以致可信。如果该配置被认为是足 以信赖的,则VMCA77利用签名密钥的公开部分来创建一个证书, 这表明VMCA77向虚拟制造商认证中心的签名密钥委托了用来对签 署凭证和平台凭证进行签名的权力。该证书经过信任VMCA77的决 定的其它CA的网络来传递。
虚拟制造商认证中心的凭证和由虚拟制造商认证中心签名的凭 证的有效期将很可能与对GVTPM框架和其TCB的检查程度成正比。
发现GVTPM框架或基本的TCB中的脆弱性,将导致GVTPM DM 中信任的移除。在这种情况下,VMCA 77将希望撤销对虚拟制造商 认证中心的委托,并通常向其它CA的网络告知VMCA 77不再信任 该虚拟制造商认证中心。例如,在向虚拟制造商认证中心124委托权 限后,如果VMCA 77随后确定虚拟制造商认证中心124和/或其vTPM 架构是脆弱的,则VMCA77可以撤销该委托。
在VMCA77接受了来自虚拟制造商认证中心124的证据后,虚 拟制造商认证中心124可以使用签名密钥250来验证诸如vTPM44A 之类的虚拟TPM的可信赖性。特别地,在示例性实施例中,如箭头 274所示,虚拟制造商认证中心124基于关于vTPM 44A的信息生成 新的签署和平台凭证260,虚拟制造商认证中心124使用来自TPM 30 的签名密钥250来对这些凭证进行签名而无需进一步与VMCA77进 行交互。因此如箭头276所示,该新签名262被附加于证书260以创 建完成的证书280。诸如完成的证书280之类的由虚拟制造商认证中 心签名的证书可以被称为vMA证书或vMA凭证。
虚拟TPM44A可以随后使用vMA凭证280,其方式就仿佛这些 凭证是由TPM制造商和平台制造商所签名的用于硬件TPM的凭证。 处理系统20因此可以实时地(g卩,不存在与从外部处理系统获得凭证 相关的延迟)创建诸如vTPM 44A之类的虚拟安全协处理器,同吋仍 旧提供高安全性保证。
如上所述,在示例性实施例中,至少每一类型的DM都具有其自 己的虚拟制造商认证中心。例如,特定GVTPM框架可以包括针对全 部TPM DM的一个虚拟制造商认证中心,以及针对每个专属DM设 计的不同的虚拟制造商认证中心。因此,例如,虚拟制造商认证中心 124可以服务于vTPM44A和44B。在示例性实施例中,当处理系统 20创建新vTPM (例如,vTPM 44A)时,GVTPM管理器110向虚拟 制造商认证中心124提供新vTPM的签署密钥、以及虚拟制造商认证 中心124所需的任何其它信息,以创建签署凭证和平台凭证,所述凭 证适当地标识出TPM 30的软件扩展和vTPM架构所驻留的软件平 台。随后,虚拟制造商认证中心124负责使用可信CA签发的签名密
钥来对这些签署和平台凭证进行签名。
以上的段落描述了一个示例性实施例,其中,虚拟制造商认证中 心使用来自TPM的签名密钥和身份密钥以验证虚拟制造商认证中心 的配置。其它类型的安全子系统,例如专属安全协处理器、以及其它 类型的密钥,可以在替代性实施例中使用。相似地,其它方法可以用 于验证虚拟制造商认证中心的配置对于外部CA服务(实际上,是作
为VMCA)来说是可接受的。例如,外部CA可以以如下方式将保密
数据用密钥进行密封仅当虚拟制造商认证中心具有预定的配置时,
才能由虚拟制造商认证中心解封该保密数据。在外部CA将该保密数 据传输给虚拟制造商认证中心后,如果虚拟制造商认证中心的配置与 预定的配置相匹配,虚拟制造商认证中心将能够解封该保密数据。虚 拟制造商认证中心可以随后向外部CA发送该虚拟制造商认证中心能 够解封该保密数据的证据。响应于此,外部CA可以将所请求的权限 委托给虚拟制造商认证中心。虚拟制造商认证中心可以随后使用被委 托的权限来对vTPM的凭证进行签名。
下面的段落将描述可由虚拟制造商认证中心使用的以获得来自 VMCA的肯定应答的示例性协议,以及创建这种凭证的示例性方法。 来自VMCA的肯定应答可以向虚拟制造商认证中心提供对TPM和非 TPM凭证进行签名所需的凭证。
2.5 - vTPM凭证
如上所述,使用TCG规范中概述的过程,每一虚拟制造商认证 中心可以首先创建TPM身份密钥(AIK)并从可信第三方CA (TTPCA) 获得身份凭证。TTPCA例如可以是TCG保密CA。虚拟制造商认证 中心随后创建其签名密钥,该密钥被绑定在当前的平台配置。例如, 虚拟制造商认证中心124可以使用TPM—CertifyKey操作来使TPM30 使用虚拟制造商认证中心的AIK以对签名密钥的属性进行签名,所 述属性包括其迁移能力和其所被绑定的PCR。虚拟制造商认证中心 124随后可以发送带有身份凭证的CertifyKey结果到VMCA77。
通常,VMCA77应当信任由TCG保密CA签名的身份凭证。该凭证表示,身份密钥驻留在有效的TPM中,而CertifyKey证书表示, 签名密钥仅对该特定虚拟制造商认证中心和TCB可用。
一旦VMCA 77相信虚拟制造商认证中心124是可信赖的,则 VMCA 77将向虚拟制造商认证中心124委托TPM制造商状态。例如, VMCA 77可以创建委托证书并将该证书分发给TCG保密CA。
虚拟制造商认证中心124可以随后使用被委托的TPM制造商状 态来为DM(例如,vTPM 44A)创建签署凭证和平台凭证。这些凭证 里的模型字段可以表示vTPM 44A所驻留的硬件和软件平台。在一个 实施例中,对于签署凭证,模型字段将表示硬件TPM模型和GVTPM 管理器110。对于平台凭证,模型字段江表示硬件平台和TCB,其中 TCB包括VMM 64和类似的软件。
2.6-非vTPM凭证
没有坚持TCG规范的专属DM (例如DM 44C)不应具有签署凭证 或平台凭证;尽管其仍旧可以从类似凭证中受益。专属DM的开发者 可以操作其自己的类似于保密CA的评价服务,用以签发凭证,从而 开发者可以确保在将数据用密钥加密之前该密钥处于开发者的DM 的实例中。进行上述操作的精确协议完全取决于设计专属DM的实体 和与该DM相对应的虚拟制造商认证中心。
3.0-示例性vTPM设备模型设计
本部分描述了用于创建vTPM的两个示例性DM设计。对于 GVTPM框架40,它们大致对应于从严格的安全性到更好的性能和灵 活性的范围的相对两端。第一种模型被称作基于软件的DM, 一旦 vTPM固定在TPM硬件中,软件能够向VM中的OS提供完整的TPM 功能。所有的私钥都存储在设备模型的存储器中,而所有其它数据则 存储在虚拟TPM中。在被称为基于硬件的DM的第二模型中,所有 密钥都存储在硬件TPM中。在第二模型中,当使用密钥时,该设备 模型向TPM发出请求来使用密钥。在第一模型中,vTPM不会被TPM 的性能限制所阻碍,而第二模型仍旧依靠硬件TPM来服务于大多数
请求。在常规的运行期间,第一模型和第二模型之间的安全性是没有 差别的。但是,当发生损害后,系统和其保密数据的结果状态在两种 模型中是不同的。
如果平台的DM或VMM受到损害,存储在DM存储器中的所 有数据都可能受到损害。在损害期间,两种模型都允许攻击者使用该 vTPM中的密钥。 一旦消除了该脆弱性且损害消除时,对这些密钥的 访问在基于硬件的DM中就结束了。但是,在使用基于软件的DM的 情况下,由于私钥存储在存储器中,其就永久性地受到了损害。
在大多数环境中,基于软件的方法可以实现足够级别的安全性。 但是,在撤销并重新生成受损害的密钥的开销较昂贵的环境中,基于 硬件的方法更适合,这是因为损害将是暂时性的。这些类型的环境可 能包括使用高性能、高防篡改性的TPM来保护重要的集体密钥的服 务器。本发明所提出的框架将选择权留给实施者,其能够确定满足确 保特定实施所需的优选方法。例如,使用TPM以容纳某些密钥和/ 或数据结构的混合方法可能适用于特定的实施。
3.1 -基于软件的vTPM设备模型
完全的基于软件的vTPM DM使用很少或不使用硬件TPM资源 来提供TPM功能。 一旦PSS和硬件TPM确保DM和TCB与在DM 的凭证中反映的那些相同时,则该DM独立于硬件TPM而工作。所 有的虚拟PCR、单调计数器、非易失性存储和其它TPM资源都被存 储在DM的存储器中并在其中受到管理。
该设计的益处在于,由设备模型提供的功能没有以任何方式被硬 件TPM所提供的功能或性能所阻碍。可以轻松地支持更强壮的密钥、 更大数量的密钥槽(slot)和更多的PCR。此外,典型的硬件TPM在相 当程度上受到资源的限制,其并不是高性能的设备。但是,基于软件 的DM的性能并不由硬件TPM的性能限制。例如,基于软件的DM 可以支持批量加密,而使用常规硬件TPM进行批量加密是非常缓慢 的。
3.2-基于硬件的vTPM设备模型
第二示例性vTPM设备模型试图最大化地使用硬件TPM内的受 保护的处理。硬件TPM资源的主要使用在于,每一DM的所有密钥 都存储在硬件TPM中,而私钥则从不存储在主存储器中。
3.2.1 -密钥层级
本部分描述了基于硬件的设备模型的示例性实施例中所使用的 总体密钥层级。该示例性实施例是在DM 44A用作VM 60A的vTPM 的上下文中描述的,如图3所示。
再次参见图2, TPM 30照常维护标准的签署密钥(hwEK) 52和存 储根密钥(hwSRK) 50。此夕卜,称为密钥绑定密钥(KBK) 160的AIK被 用于保护vTPM密钥。
同样,每一 DM可以具有适当的密钥和数据结构以便为每个相应 的VM仿真硬件TPM。例如,在示例性实施例中,DM 44A具有虚 拟EK (vEK) 150和虚拟SRK (vSRK) 152, vSRK 152的父密钥是 hwSRK 50。在vSRK的子辈中,有虚拟签名密钥(vSigK) 154、虚拟 存储/加密密钥(vEncK) 156和虚拟身份密钥(vAIK) 158。在每一 DM 中用于对硬件TPM进行仿真的附加结构可以包括虚拟PCR (vPCR) 92和虚拟DIR (vDIR) 94。每一 DM还可以包含诸如虚拟EK凭证 (vEK—Cred) 96和一个或多个虚拟AIK凭证(vAIK一Cred) 98之类的数 据。
如图2右下角的图例所示,无填充的椭圆表示存储密钥,填充有 横线的椭圆表示身份验证密钥(AIK),填充有斑点图案的椭圆表示签 名密钥。此外,粗线条椭圆表示绑定到TPM30的PCR32的密钥。 密钥之间的线表示密钥之间的父/子关系。例如,这些线表示SRK50 是每一DM内某些虚拟密钥的父密钥。凭证由平行四边形表示。
在一个实施例中,vTPM内的虚拟密钥和其它结构或对象可能与 硬件TPM密钥或对象具有相同的结构,但虛拟TPM内的虚拟对象不 仅仅是参考了 TPM 30内的标准对象,例如EK 52、SRK 50和PCR 32。 相反,如下所更详细描述的,每一虚拟TPM具有其自己独特的对象,
例如vEK 150等。这些虚拟对象可以是基于硬件TPM对象或从硬件 TPM对象中推导出的。例如,在示例性实施例中,虚拟SRK和虚拟 EK是硬件SRK的儿子,或者在嵌套的vTPM的情况下,是最终基于 硬件SRK的一个虚拟SRK的儿子。通过使vTPM密钥能够以vSRK 为根,该模型允许vTPM嵌套。
诸如vEK 150、 vSRK 152和vPCR 92之类的虚拟TPM对象可以 继而用作DM44A内的附加虚拟对象的基础,例如vSigk150、虚拟 AIK(vAIK) 158和虚拟存储/加密密钥(vEncK) 156。在示例性实施例 中,每一DM可以提供由对应的硬件设备提供的所有功能,并具有相 同的应用程序接口(API)。例如,DM 44A可以包括其自己的vDIR 94、 vPCR92和vAIK 158等。因此,每一 VM中的客户OS可以完全不 知道对应的vTPM不是hwTPM。因此,VM可以使用继承OS代码。 此外,根据示例性实施例,可以将具有常规hwTPM的处理系统配置 为提供vTPM而无需对hwTPM进行任何修改。
虚拟机架构可以支持硬件TPM保护虚拟密钥和相关数据。在一 个实施例中,vTPM密钥层级和相关数据在标准hwTPM中受到保护。 例如,虚拟TPM密钥可以被存储在硬件TPM中,并且除非数据首先 被加密,否则该密钥不会被从硬件TPM中释放。因此,如果虚拟TPM 受到损害,相关vTPM密钥的公开部分可能会被非授权使用,但仅限 于损害期间。在示例性的基于硬件的实施例中,所有的密钥都保留在 硬件TPM中,因此一旦损害结束就无法窃取或使用私钥。
根据本发明的处理系统还可以提供验证协议架构,其使得vTPM 能够保护常规的TPM验证服务。不知道虚拟TPM的远程挑战者可以 完全参与验证处理。此外,注意到vTPM的远程挑战者无需其它协议 就能够将hwTPM与vTPM相区分,并且可以随后确定是否信任拥有 vTPM的平台。远程挑战者可以包括但不限于仅向经验证的安全客户 机提供数据的实体。这种挑战者可以被称为第三方数据提供者。
如上所述,在示例性的基于硬件的模型中,每一DM的所有密钥 被存储在TPM 30中。取决于TPM 30的容量和特定实施的特定安全 需求,诸如凭证96和98、 vPCR 92、 vDIR 94等的一个或多个其它结构和数据项可以被存储在硬件TPM中,或者它们可以被存储在 GVTPM框架40的PSS 100中。
当保密CA创建平台的身份凭证时,在将身份凭证发送给平台之 前,保密CA用该平台的EK将该身份凭证进行加密。在一个实施例 中,VM60A作为与保密CA76交互的平台而工作,VM60A使用基 于硬件的vTPM设备模型(例如DM 44A)。因此,保密CA 76将用该 VM的vEK 150来对身份凭证(例如vAIK—Cred 98)进行加密。该加密 在传输中保护了凭证。当VM 60A从保密CA接收到该身份凭证时, VM 60A使用来自DM 44A的vEK的私钥来解密该凭证。由于 vAIK—Cred 98不是TCG绑定的数据结构,因此vEK 150必须是TPM 继承密钥,以支持对该凭证进行解密。
在示例性实施例中,vSRK 152和vEncK 156是传统的TPM存储 密钥而无需特别注意。类似地,vSigK 154是传统的TPM签名密钥也 无需特别注意。但身份密钥仅能够对引证PCR值进行签名。这表明 如果将vAIK实现为AIK,则vAIK将无法对存储在DM存储器中的 虚拟PCR进行签名,这是因为它们是hwTPM30外部的数据。所以, vAIK 158可以被实现为TPM签名密钥。引证结构可以针对DM44A 中的虚拟PCR92而构建,并随后使用vAIK来签名。最后,KBK160 是传统的绑定密钥。
3.2.2 -对TPM密钥强制实施虚拟PCR
硬件TPM (例如,TPM 30)和使用vTPM的VM (例如使用DM 44A的VM 60A)对当前PCR值具有不同的解释。必须注意确保vTPM 和TPM之间的信息流保持一致。当VM请求在vTPM中创建密钥时, 该请求伴随有vPCR绑定,尽管客户可能没有意识到绑定是虚拟的。 当该请求被转发给硬件TPM时,该请求中的PCR字段必须被转换为 正确的hwPCR绑定。DM可以使用GVTPM+TCB作为绑定或忽略其 对性能的影响。从硬件TPM返回的生成的新创建的包裹密钥将因此 不包含VM所请求的vPCR绑定。由于保护密钥不包含这些绑定,因 此如果攻击者获得了原始的包裹密钥并将其将其直接加载到硬件TPM,则攻击者可能绕过vTPM。
此外,由硬件TPM返回的包裹密钥是TCG一KEY结构,其含有 TPM版本、PCR绑定、公钥、加密私钥和返回给请求者的其它信息。 版本和PCR绑定信息是硬件TPM而非vTPM的信息。为了保持透明, 由vTPM返回的TPM—KEY结构应具有vPCR绑定和vTPM版本信息。 在一个实施例中,为了处理该问题,由vTPM返回的包裹密钥是由硬 件TPM返回的包裹密钥的修改形式。在本公开中,由vTPM返回的 包裹密钥可以被称为vTPM双包裹密钥。
图4是vTPM双包裹密钥的示例性实施例的框图。在图4中, vTPM包裹密钥210是由TPM 30返回的包裹密钥200的经修改的形 式。在一个实施例中,每当VM 60A请求由vTPM 44A创建新密钥时, 例如当VM60A中的DM 44A创建新vAIK时,可以执行下面的操作, 且处理系统20继续在TPM 30中存储该密钥。
在vTPM包裹密钥210中,该结构的所有公开部分保持完整以确 保透明性。此外,如方框214所示,TCG—KEY结构的加密的私钥部 分216将被扩展以包括hwPCR绑定、使用该密钥的授权、硬件TPM 的版本、密钥的公开部分的概要以及原始的加密的私钥部分,其对于 vTPM设备模型(例如,DM44A)来说是不可读的。如方框212所示, TCG—KEY结构的公开部分中的PCR绑定将用vPCR绑定来替代,并 且版本也将被设置为vTPM的版本。存储在私有部分中的摘要将反映 这些修改。最后,扩展的私钥部分216将使用KEB 160 (如上所述) 进行加密。结果得到的是TCG—KEY210,其具有期望的版本和vPCR 绑定、以及无法读取的加密部分,其中该加密部分如果被传递给硬件 TPM时,将无法被正确解密。
为了使用,返回给用户的密钥必须被加载到虚拟TPM (例如,DM 44A),虚拟TPM将对私钥部分216进行解密,检验虚拟PCR绑定 212,并重新构造原始的包裹密钥200。 一旦vPCR和授权被证实, DM就将原始的包裹密钥200加载到TPM中,包括私钥部分216的 拷贝204。原始的包裹密钥200将类似地被硬件TPM解密,并且在 密钥200被完全加载并可用之前,硬件PCR绑定202将被验证。
3.2.3 -其它设备模型资源
虚拟TPM设备模型可能无法共享多个DM上的大多数其它TPM 资源。如果不修改应用以期待支持非独占使用,则单调计数器通常无 法被共享,并因此可能或者被永久性地分配给特定的DM,或者以与 基于软件的设备模型相似的情况而被实现为软件。vTPM非易失性存 储可以被存储在硬件TPM中,只要其不超出硬件TPM的存储即可。 如果硬件TPM的存储是不充足的,则非易失性存储还可以被虚拟化, 类似于基于软件的DM的情况。
VM必须能够创建授权会话以使用多种TPM功能;但是,其通 常不应在由vTPM设备模型直接处理的功能与被传递给硬件TPM的 功能之间进行区分。在一个实施例中,在单用户授权会话中,DM从 其自身和硬件TPM 二者透明地提供TPM功能。
为了实现这一目的,DM维持与VM和硬件TPM之间单独的授 权会话。即,用户将正常地创建与DM的授权会话。DM可以进行硬 件TPM所会做的、所有相同的基于该会话的授权检査。如果DM直 接提供了所请求的功能,则DM可以简单地更新该会话随机数并进行 回复。如果DM需要硬件TPM来提供该服务,则DM可以创建授权 会话或重用其与硬件TPM的现有认证会话,并生成请求。 一旦DM 使用硬件TPM完成了工作,其可以更新用户的会话的随机数并进行 回复。
4.0 -硬件优化
上述框架可以使用单个常规TPM而将TPM能力提供给多个客 户。该框架可以使用软件或硬件TPM来提供TPM功能;但是,使用 TPM来强制实施虚拟PCR可能比较烦琐。本部分描述TPM用以优 化并简化基于硬件的设备模型的特性。这些特性包括
虚拟PCR
虚拟身份验证密钥
虚拟EK
典型的常规TPM可能无法存储vPCR,以使TPM能够强制实施 密钥绑定并提供vPCR引证。这就导致了对双包裹密钥的需求,同时 DM强制实施并管理vPCR。能够存储vPCR的、经修改的TPM的复杂度大大降低并提供了更高的性能。被转让给本申请的同一受让人的 美国专利申请no. 11/095,034论述了支持虚拟机的PCR和/或vPCR的技术。
一旦vPCR在经修改的TPM中可用,AIK应当能够对它们进行 引证。在一个实施例中,经修改的TPM具有创建虚拟AIK(vAIK)的 能力,所述虚拟AIK引证vPCR而不是主PCR。
最后,为了有效地引证PCR, vAIK需要身份凭证。如前所述, 身份凭证是用EK加密的。在一个实施例中,经修改的TPM包括对 vEK的支持,vEK能够对vAIK的凭证进行解密。
通过这些修改,可以提升GVTPM框架40内的基于硬件DM的 性能,而同时减少框架的复杂度并从而提升其可信赖性。
5.0 -虚拟TPM的远程部署和供给
在平台上使用TPM可以产生对软件和数据分发的新挑战。例如, 组织中的信息技术(IT)部门可以创建软件构件或补丁,并随后把构件 或补丁推送到分布在组织中的成百上千个机器中。由于使用TPM来 保护密钥和密封数据的方式,因此TPM可以为该过程增加新变化。 为了向一台机器分发新的软件包,IT部门会发现该软件所需的任何 密钥都需要被分发给该机器的TPM。
下面将描述在一个机器(例如,服务器)上是如何提供vTPM的, 以及随后如何将其分发给其它的具有期望使用vTPM的软件的主机 (例如,客户机)。下述的该方法的一个示例性使用模型是应用在商业 企业中;但是,该方法或其变型也可以使用在vTPM的服务的消费者 与提供服务的实体具有足够近的关系(例如,当客户机系统运行来自 特定实体的软件,并且该客户机系统使用该软件来访问同一实体提供 的数据时)的任何环境中。例如,医生办公室中的客户机系统将能够 从保险公司获得vTPM和用来使用该vTPM的内容阅读器。该客户机系统可以随后使用该内容阅读器来从保险公司访问受保护的保险记
录。在一个示例性实施例中,仅一个实体需要信任vTPM,即保险公 司,其也是提供vTPM的同一实体。
远程供给的vTPM和常规vTPM不同,前者是在其工作的平台外 被创建的。这意味着虚拟制造商认证中心将不再对该vTPM的签署凭 证和平台凭证进行签名。在一个示例性供给系统中,IT部门制造出 vTPM,生成该vTPM的签署密钥,对签署凭证进行签名,并随后发 送vTPM和签署凭证到目标机器。 一旦vTPM被插入到目标机器,虚 拟制造商认证中心将创建新vTPM的平台凭证并对其进行签名。这两 个凭证上的签名标识出挑战者必须信任的两个实体。IT部门访问私 有签署密钥和其预加载到vTPM中的任何其它密钥,从而IT部门对 签署凭证进行签名。vTPM架构组件(例如,GVTPM框架40)和平台 的隔离机制将vTPM整合到软件平台中。它们潜在地可以访问存储在 vTPM中的保密数据。因此,挑战者也必须信任这些实体。所以,平 台凭证由虚拟制造商认证中心进行签名。
如果挑战者不信任对签署凭证进行签名的实体和对平台凭证进 行签名的实体,则挑战者可以拒绝来自该vTPM的验证。如果是企业 的话,IT部门将可能控制vTPM、 vTPM平台和挑战者软件的制造。 因此,在这些实体之间存在内在的信任。类似地,内容提供者可以控 制vTPM和相关的挑战者软件的制造。因此,这种内容提供者可以仅 需要信任vTPM平台。
一个示例性的部署机制是将vTPM转移到目的地的PSS。但其实 现取决于PSS和GVTPM管理器的实现。在一个示例性实施中,PSS 维护一个存储密钥,PSS可以向外部实体凭证该密钥受硬件TPM的 保护、并绑定到特定的vTPM架构。尽管该密钥用于存储状态,但它 还可以用于接收状态。下面的步骤举例说明了该传输的可能的实现方 式
1) 供给者生成新的VTPM和vTPM中所需的所有密钥。同样, 供给者生成该vTPM的新签署凭证并对其进行签名。
2) 供给者请求目标PSS提供抗重放随机数。
3) PSS向供给者发送随机数和可选的该PSS的公钥。该密钥可 能已经从之前的通信中获知了 。
4) 供给者随后将该新vTPM的状态和来自步骤3的随机数以 PSS的存储密钥进行加密。
5) 供给者发送加密的数据体以及该vTPM的签署凭证到PSS。
6) PSS接收vTPM状态,对其进行解密,像其对所有离线vTPM 所做的那样将其密封,并将其记录为已知vTPM。该vTPM现在正式 地成为了PSS平台的一部分。
7) PSS的虚拟制造商认证中心创建vTPM的平台证书。 PSS现在可以和其它的一样加载并使用vTPM 了。
当需要TPM密钥的软件将被分发给客户机时,如果vTPM将在 客户机系统上创建而不是在服务器上创建并随后传输到客户机,则服 务器通常需要指示客户机创建vTPM,然后在客户机生成软件所需的 每一密钥时等待。客户机随后发送所生成的密钥的公钥部分到服务 器,且服务器随后使用这些公钥以生成部署的应用和数据。如果成百 上千个客户机需要更新,该过程将需要很长时间来完成。此外,服务 器并未控制生成密钥的环境。
当创建密钥的实体也是挑战者时(即,将请求验证或依赖于密钥 的实体),本公开介绍的方法可以提供更快和更有效的方法以创建必 须的密钥和支持这些密钥的vTPM。
如图2所示,和TPM—样,vTPM包括用于存储构成vTPM状 态的数据的结构。例如,vTPM的某些状态存储在PCR和DIR中。 此外,vTPM的状态可以包括各种密钥、凭证和计数器等。在本公开 中,生成vTPM的状态数据的重要部分可以被认为是创建vTPM。
特别地,在本公开中,EK的生成构成了 vTPM的创建。如上所 述, 一旦vTPM创建后,其可以被传输到目标系统。该vTPM的其余 状态可以在平台、VMM或VM拥有vTPM时生成。创建vTPM并将 其传输到另一个处理系统的过程通常可以被称作vTPM的远程供给 和部署。
6.0-迁移虚拟TPM
在某些环境中,TPM的固定特征是较为重要的。但是,某些环 境可以从跨平台的TPM的受控移动性中受益。TCG认可了一种机制, 通过使用该机制,单密钥在第三方的干涉下可以从一个TPM迁移到 另一个。但该机制可能比较烦琐,尤其是当需要迁移多个密钥时。下 面的段落将引入一种新方式,用于以受控的方式从一个平台到另一个 平台迁移vTPM。在示例性实施例中,所有的密钥一次迁移,而无需 第三方对每个迁移的密钥进行干涉。
下面描述的迁移方法提供了高确保性。例如,如果vTPM被告知 具有特定的安全属性,则当在vTPM中创建密钥后,必须向该密钥的 全部所有者确保如果该vTPM被迁移到另一个平台,这些安全属性也 将在新平台上出现。同样,当迁移vTPM后,必须将vTPM状态从源 平台移动(而不是复制)到目标平台。
迁移策略用于支持保证告知的安全属性。该策略确定了 vTPM架 构和保护该架构的平台机制为了将特定vTPM迁移到该平台所必须 满足的标准。此外,该策略严格地强制实施。在一个示例性实施例中, 虚拟制造商认证中心用于强制实施迁移策略,并且虚拟制造商认证中 心维护每一策略的一个密钥(例如,签名密钥)。当虚拟制造商认证中 心向可信CA进行登记以获得制造商状态时,虚拟制造商认证中心还 发送数据以标识该迁移策略,其中虚拟制造商认证中心为任何具有凭 证的vTPM强制实施该迁移策略,所述凭证由虚拟制造商认证中心使 用该签名密钥进行签名。
在一个示例性实施例中,为了支持创建可迁移的vTPM,除了正 常地需要GVTPM管理器110来处理的vTPM管理功能外,GVTPM 管理器110将在vTPM创建期间声明vTPM为可迁移或不可迁移的。 可迁移vTPM可能还需要表明使用什么可用的迁移策略的规范。例 如,当虚拟制造商认证中心创建签署凭证和平台凭证时,虚拟制造商 认证中心可以使用模型号来表明vTPM是可迁移的,并可以使用其可 迁移vTPM制造商密钥来对凭证进行签名。即,虚拟制造商认证中心 可以使用被识别为属于可迁移vTPM的制造商的签名密钥来对凭证进行签名。
因此,在一个实施例中,可迁移vTPM获得它们的由一个签名密 钥签名的签署凭证,非可迁移vTPM获得它们的由一个不同的签名密 钥签名的签署凭证。该方法实现了对可迁移vTPM的更好的识别。在 一些实施例中, 一个虚拟制造商认证中心对可迁移vTPM的凭证进行 签名,而一个不同的虚拟制造商认证中心对非可迁移vTPM的凭证进 行签名。
迁移的示例性机制为,源平台上的PSS将可迁移TPM的状态转 移到目标平台中的PSS。但该转移的实现取决于PSS和GVTPM管理 器的实现。
在一个示例性实施中,PSS维护一个存储密钥,PSS可以向外部 实体证明该密钥由硬件TPM保护并绑定到特定的vTPM架构。尽管 该密钥用于存储状态,但它也可以用于接收状态。如果第一平台中的 PSS (PSS l)希望将vTPM迁移到第二平台中的PSS (PSS 2),则可能
发生下列步骤。
1. PSS 1请求PSS 2传输其存储公钥和对该密钥绑定的证据。
2. PSS 2发送其存储公钥和随机数到PSS 1 。
3. PSS 1评估vTPM关于PSS2状态的策略。如果该策略声明, 对于提供vTPM的安全操作以及继续为下一迁移保持该策略,PSS 2 的状态是可信赖的,则PSS 1应仅迁移vTPM。
4. 如果PSS 2通过,则PSS 1确保vTPM未在运行。PSS 1随 后用PSS2的存储密钥将下列各项加密vTPM的持久性状态、来自 步骤2的随机数、和对该状态应运行在的正确vTPM的测量结果。
5. PSS 1从已知vTPM列表中删除该vTPM的记录。这样确保 了该状态无法被再次载入该服务,并且当迁移结束时,该vTPM将仅 在PSS2下存在。
6. PSS 1向PSS 2发送加密数据体、以及vTPM的签署凭证。
7. PSS2接收vTPM状态,对其进行解密,像PSS2对所有离 线vTPM所做的那样将其密封,并将其记录为已知vTPM。该vTPM 现在正式地成为了 PSS 2平台的一部分。8.(可选)PSS 2的虚拟制造商认证中心创建该vTPM的平台证 书。对该vTPM来说,继续使用PSS1的平台证书是不正确的,这是 因为vTPM不再驻留在该平台上。但是,由于vTPM的可信赖性仅是 将通过策略的最弱配置的可信赖性,因此使用该新证书对安全来说影 响并不大。
PSS 2现在可以和其它的一样加载并使用vTPM 了。
迁移协议的安全可以有效地证明其确保了对于给定的可迁移 vTPM,该vTPM在其移动中不会受损害。通过引入证据方法,如果 可以向挑战者证明下列两项主张,则该确保是可以建立的
1. vTPM状态最初是在安全vTPM中创建的。
2. 如果vTPM处于安全vTPM中,则vTPM架构仅将该vTPM 状态迁移到另一个安全vTPM。
在对凭证的签名中找到这两个声明的确保。当vTPM被创建时,其签 署凭证由虚拟制造商认证中心创建并签名。在此之前,虚拟制造商认 证中心创建其签名密钥并将其和迁移策略一起与认证机构进行交换。 该CA将不对虚拟制造商认证中心的签署凭证进行签名,除非该CA 认可该虚拟制造商认证中心提供安全vTPM并强制实施安全迁移策 略。因此,具有有CA签名的凭证的虚拟制造商认证中心不会将vTPM 迁移到不安全的vTPM。
典型地,挑战者接收一组由AIK签名的PCR,以及伴随的由保 密CA签名的身份凭证。挑战者可以基于该信息评估vTPM。通过查 看该凭证,挑战者可以安全地相信vTPM向保密CA出示了由可信赖 的签名密钥签名的签署凭证。保密CA仅信任其自己的签名或另一个 CA所担保的签名。使另一 CA担保签署凭证上的签名的唯一方法为 签名密钥处于安全虚拟制造商认证中心中,且该签名密钥对应于仅允 许向其它安全的vTPM进行迁移的迁移策略。
因此,身份凭证的存在向挑战者证实了该vTPM是在合法的 vTPM中创建的,其在给出该验证之前没有在非法vTPM中驻留过。
类似地,上述迁移方法可以从接收vTPM的平台开始,而不是从 提供vTPM的平台开始。
所披露的迁移方法可用于多种应用,包括其中个体期望从多个机 器访问数据的使用模型。例如,医生可以方便地在家用计算机和办公
室计算机之间对vTPM进行迁移,以使其能够从多于一个位置访问受
保护的医疗记录。可访问的受保护数据的类型包括但不限于由数字
版权管理(DRM)协议保护的内容、来自提供访问内容的软件的实体的 专属内容、以及应仅由特定实体使用的个人的、敏感的和/或保密的 信息(例如,医疗记录、金融数据等等)。
类似地,上述迁移方法可以支持使用模型,其实际上将个体的计 算环境从任何特定工作站中解放出来。例如,在 http:〃info.pittsburgh.intel-research.net/project/isr/中描述的互联网挂起 /恢复(ISR)项目属于一种"移动计算方法,其中,当用户移动时用户 的计算环境跟随该用户[跨工作站]"。ISR项目描述了一个部署可移动 计算环境的示例,如下
例如,假设有一个远程办公者,其上午在家里工作,下午在办公 室工作。在完成上午的工作后,用户点击家用机上的"挂起"并去往 办公室。当用户在路途中时,用户的计算环境的状态也是在路途中, 其通过网络连到用户办公室的机器。当该远程办公者到达办公室时,
办公机器呈现用户留在家中的机器一样的环境相同的应用和文件被
打开,窗口都处于期望的位置,并且鼠标也处于适当的位置。
这种模型和相似模型可以使用vTPM迁移来支持可移动的、受 TPM保护的计算环境,例如包括受TPM保护的OS、受TPM保护的 应用和/或受TPM保护的数据的环境。
8.0-结论
本公开描述了对诸如TPM之类的安全协处理器进行虚拟化的通 用框架。 一个示例性实施例使用TPM来实现安全的虚拟TPM操作。 所披露的实施例允许多个VM使用TPM功能而无需多个专用的硬件 TPM,无需对VM中的软件进行修改,也无需对与TPM或受vTPM 保护的系统进行交互的远程实体进行修改。根据本公开,虚拟TPM 可以测量VM中的OS和应用以向远程实体提供验证。此外,即使硬件TPM和挑战者可能仅使用当前TPM规范(例如上述的TPM版本 1.2设计规范)中所述的功能,但虚拟TPM可以验证硬件TPM挑战者 的VM状态。VM中的客户OS可以并不知道硬件TPM是被共享的, 以及在系统内的多个VM之间无需信任关系。
所披露的框架还可以便于开发安全的、软件定制的加密子系统, 如果将其实现在硬件中,开销将相当高昂。虚拟TPM使得能够合并 VM技术创建的隔离与提供基于硬件的安全存储和验证的TPM功能。 定制加密子系统实现了比用于提供访问控制和加密协议的TPM更丰 富的功能。本公开包括的实施例说明了如何在确保虚拟化透明性的同 时根据不同安全和性能权衡而使用框架的一些实例。这意味着应用无 需区别对待来自VM内的TPM访问和对不使用虚拟化的平台的TPM 访问。例如,应用可以使用它们与物理的安全协处理器进行通信的相 同API来与DM进行通信。
本公开还描述了附加的硬件TPM特性以用于实现更简单、优化 的TPM虚拟化。此外,本公开描述了用于远程供给和部署虚拟TPM 的机制,以及用于在平台之间迁移虚拟TPM的机制。
如上所述,不同的实施例可以或多或少地依赖硬件TPM来保护 数据。例如,可以将所有密钥存储在硬件TPM中,或者,为了提高 灵活性和/或性能,虚拟密钥可以由vTPM软件创建并使用,以及虚 拟密钥可以不存储在hwTPM中或直接受hwTPM的保护。属于虚拟 TPM或由虚拟TPM生成的私钥不能由硬件TPM操作,因为硬件TPM 无法使用这些私钥来执行加密操作。取而代之的是,虚拟TPM可以 使用主处理器和加密软件来使用其私钥执行加密操作。为了实现此目 的,虚拟TPM服务可以将其私钥存储在受保护的主存储器中。但是, 当未使用私钥时,虚拟TPM服务可以使用硬件TPM特性来将密钥包 裹至其软件配置中。
这些选择使vTPM能够加密、解密、签名和验证vTPM软件中的 对象,其性能远高于硬件TPM提供的性能。因此,例如,这些选择 可以优选用于批量加密或用于对性能敏感的服务器环境中。但是,对 性能增加的折衷在于,如果vTPM受损,则虚拟密钥可能永久性受损。
根据这里所述和所示的原理和示例性实施例,可以发现,在不背 离这样的原理的情况下,可以对所示的实施例的安排和细节进行修
改。例如,虚拟TPM是结合VM而描述的,但在替代性实施例中, 还可以包括结合其它类型的系统子部份(例如,共享硬件TPM的服务 器或一组服务器内的分区)而使用的vTPM。例如,虚拟TPM可以用 于被分成两个逻辑的双处理器系统的四处理器系统中。这里给出的启 示也可以用于将逻辑TPM提供给一个或多个服务协处理器,或提供 给硬件平台上的一个或多个其它类型的独立处理部件。
此外,替代性实施例包括的vTPM服务可以不对硬件TPM进行 仿真,而是(通过提供更多的PCR、更大的存储等)扩展和/或放大了硬 件TPM的能力。替代性实施例还可以包括这样的虚拟TPM服务,其 运行在安全OS之上、受控运行时环境(MRTE)之上、服务处理器或协 处理器中、平台的系统管理模式(SMM)中等等。代替或除了提供虚拟 TPM的是,附加的实施例提供其它类型的仿真的安全协处理器。
而且,上面的论述着重于特定实施例,但其它构造也在预期之内。 具体来说,尽管本文中使用了诸如"在一个实施例中"、"在另一个实 施例中"等等的表达方式,但这些短语是要通常涉及可能的实施例, 而并非用以将本发明限制在特定实施例构造中。如这里所使用的,这 些术语可以涉及能够组合成其它实施例的相同或不同的实施例。
类似地,尽管示例性处理是参照以特定顺序执行的具体操作而描 述的,但可以对这些处理进行各种各样的修改,从而获得本发明的多 种替代性实施例。例如,替代性实施例可以包括使用的操作比所有披 露的操作更少的处理,使用附加操作的处理,以不同顺序使用相同操 作的处理,以及将这里所披露的单个操作进行了组合、细分或更改的 处理。
本发明的替代性实施例还包括机器可访问介质,其中编码有用于 执行本发明的操作的指令。这种实施例还可以被称为程序产品。这种 机器可访问介质可以包括但不限于诸如软盘、硬盘、CD-R0M、 ROM和RAM之类的存储介质;以及诸如天线、电缆、光纤、微波、 无线电波和其它电磁或光载体之类的通信介质。因此,可以通过传输
环境或网络以分组、串行数据、并行数据、传播信号等的形式来传送 指令和其它数据,这些指令和其它数据可以被应用于分布式环境中, 并被进行本地和/或远程存储以便由单或多处理器主机访问。
应当理解的是,这里所描述的硬件和软件组件表示的功能部件在 相当程度上是完备的,从而它们中的每一个可以实质上独立于其它而 被设计、构造或更新。在替代性实施例中,许多组件可以被实现为硬 件、软件或这两者的组合以提供这里所述的功能。
考虑到可以从这里所述的示例性实施例中容易地获得各种各样 的有益变更,本详细说明仅为示例性的,而并不对本发明的保护范围 构成限制。因此,本发明所要求保护的,是落入所附权利要求的范围 和实质内的所有实现和这些实现的所有等价物。
权利要求
1、一种方法,包括在处理系统的受保护部分中创建设备模型(DM),所述DM至少部分地基于预定义的设备模型设计,其中,所述预定义的设备模型设计对应于预定的加密协处理器;在所述DM处从所述处理系统的受保护部分之外的软件实体接收信息;以及响应于在所述DM处从所述软件实体接收到所述信息,根据所述预定义的设备模型设计,通过向所述软件实体提供加密服务,来对所述预定的加密协处理器进行仿真。
2、 如权利要求1所述的方法,还包括 使用所述处理系统的可信平台模块(TPM)来支持所述DM。
3、 如权利要求l所述的方法,其中,向所述软件实体提供加密 服务的操作包括使用所述处理系统的物理加密协处理器来密封与所述DM相关 联的数据;以及将所密封的数据存储在所述处理系统的随机存取存储器(RAM)中。
4、 如权利要求l所述的方法,其中,向所述软件实体提供加密 服务的操作包括使用来自所述处理系统的物理加密协处理器的密钥对与所述 DM相关联的信息进行加密;以及使用受保护存储服务(PSS)来存储所述加密信息。
5、 如权利要求4所述的方法,其中,所述PSS至少暂时地使用 所述处理系统的随机存取存储器(RAM)来存储所述加密信息。
6、 如权利要求1所述的方法,还包括在所述处理系统中创建第一组的一个或多个DM,所述第一组DM至少部分地基于第一设备模型设计;以及在所述处理系统中创建第二组的一个或多个DM,所述第二组 DM至少部分地基于第二设备模型设计。
7、 如权利要求1所述的方法,其中,所述设备模型设计表示特定类型的可信平台模块(TPM)。
8、 如权利要求1所述的方法,其中,所述设备模型设计表示特 定类型的安全协处理器。
9、 如权利要求1所述的方法,其中,所述设备模型设计包括对 所述处理系统的受保护部分之外的软件实体的接口的定义,该接口用于与所述设备模型的实例进行通信。
10、 一种装置,包括 机器可访问介质;以及在所述机器可访问介质中被编码的指令,其中,所述指令当被处 理系统执行时,使所述处理系统执行下列操作至少部分地基于预定义的设备模型设计来创建设备模型(DM), 其中,所述设备模型设计对应于预定的加密协处理器;在所述DM处从在所述处理系统内执行的软件实体接收信息;以及响应于在所述DM处从所述软件实体接收到所述信息,根据所述设备模型设计,通过向所述软件实体提供加密服务,来对所述预定的 加密协处理器进行仿真。
11、 如权利要求IO所述的装置,所述DM使用所述处理系统的可信平台模块(TPM)来支持所述DM。
12、 如权利要求10所述的装置,所述DM使用所述处理系统的 物理安全协处理器来密封与所述DM的结构相关联的数据。
13、 如权利要求10所述的装置,其中,所述指令使所述处理系 统执行下列操作在所述处理系统中创建第一组的一个或多个DM,所述第一组 DM至少部分地基于第一设备模型设计;以及在所述处理系统中创建第二组的一个或多个DM,所述第二组 DM至少部分地基于第二设备模型设计。
14、 如权利要求10所述的装置,其中,所述设备模型设计包括 对软件实体的接口的定义,该接口用于与所述设备模型的实例进行通 信。
15、 一种处理系统,包括 处理器;可通信地耦合到所述处理器的安全协处理器;可通信地耦合到所述处理器的机器可访问介质;以及在所述机器可访问介质中被编码的用于实现虚拟安全协处理器框架的指令,其中所述虚拟安全协处理器框架包括与预定的加密协处理器相对应 的至少一个设备模型设计;所述虚拟安全协处理器框架在所述处理系统中创建设备模型 (DM),所述DM至少部分地基于所述设备模型设计;所述虚拟安全协处理器框架使用所述安全协处理器来支持所述 DM;以及所述DM根据所述设备模型设计对所述预定的加密协处理器进 行仿真。
16、 如权利要求15所述的处理系统,其中所述虚拟安全协处理器框架使用所述安全协处理器来密封与所述DM相关联的数据。
17、 如权利要求15所述的处理系统,其中所述虚拟安全协处理器框架包括第一和第二设备模型设计,分别表示第一和第二类型的加密处理器;以及所述指令使所述处理系统执行下列操作在所述处理系统中创建第一组的一个或多个DM,所述第一组 DM至少部分地基于所述第一设备模型设计;以及在所述处理系统中创建第二组的一个或多个DM,所述第二组 DM至少部分地基于所述第二设备模型设计。
18、 如权利要求15所述的处理系统,其中,所述安全协处理器 包括可信平台模块(TPM)。
19、 如权利要求15所述的处理系统,其中,所述设备模型设计 包括对软件实体的接口的定义,该接口用于与所述设备模型的实例进 行通信。
20、 一种方法,包括在处理系统的受保护部分中创建设备模型(DM),所述DM至少 部分地基于预定义的设备模型设计,其中,所述预定义的设备模型设 计对应于预定的加密协处理器;在所述DM处从所述处理系统的受保护部分之外的软件实体接 收信息;以及响应于在所述DM处从所述软件实体接收到所述信息,使用由所 述预定的加密协处理器支持的操作来向所述软件实体提供加密服务。
21、如权利要求20所述的方法,其中,向所述软件实体提供加密服务的操作包括使用所述处理系统的加密协处理器来支持对所述预定的加密协处理器的仿真。
全文摘要
虚拟安全协处理器框架支持创建至少一个设备模型以对预定的加密协处理器进行仿真。在一个实施例中,虚拟安全协处理器框架使用处理系统中的加密协处理器以创建处理系统中的设备模型(DM)实例。DM可以至少部分基于预定的设备模型设计。根据设备模型设计的控制逻辑,DM可以对预定的加密协处理器进行仿真。在一个实施例中,虚拟安全协处理器框架使用处理系统中的物理的可信平台模块(TPM)来支持该处理系统中一个或多个虚拟主机的一个或多个虚拟TPM(vTPM)。还描述和主张了其它一些实施例。
文档编号G06F21/00GK101176100SQ200680016496
公开日2008年5月7日 申请日期2006年5月11日 优先权日2005年5月13日
发明者C·罗扎斯, V·斯卡拉塔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1