CN101176100B - 提供基于软件的安全协处理器的方法和装置 - Google Patents
提供基于软件的安全协处理器的方法和装置 Download PDFInfo
- Publication number
- CN101176100B CN101176100B CN2006800164965A CN200680016496A CN101176100B CN 101176100 B CN101176100 B CN 101176100B CN 2006800164965 A CN2006800164965 A CN 2006800164965A CN 200680016496 A CN200680016496 A CN 200680016496A CN 101176100 B CN101176100 B CN 101176100B
- Authority
- CN
- China
- Prior art keywords
- tpm
- disposal system
- vtpm
- device model
- key
- 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.)
- Expired - Fee Related
Links
Images
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Abstract
虚拟安全协处理器框架支持创建至少一个设备模型以对预定的加密协处理器进行仿真。在一个实施例中,虚拟安全协处理器框架使用处理系统中的加密协处理器以创建处理系统中的设备模型(DM)实例。DM可以至少部分基于预定的设备模型设计。根据设备模型设计的控制逻辑,DM可以对预定的加密协处理器进行仿真。在一个实施例中,虚拟安全协处理器框架使用处理系统中的物理的可信平台模块(TPM)来支持该处理系统中一个或多个虚拟主机的一个或多个虚拟TPM(vTPM)。还描述和主张了其它一些实施例。
Description
技术领域
本发明一般涉及数据处理领域,并且尤其涉及支持安全的虚拟化的方法和相关装置。
背景技术
常规的处理系统可以包括硬件资源,例如中央处理单元(CPU)和随机存取存储器(RAM),以及软件资源,例如操作系统(OS)和一个或多个终端用户程序或应用。典型地,所开发的程序都运行在特定的OS上。当典型的常规计算机系统启动时,其在加载终端用户程序或应用之前会加载OS。典型地,OS用作处理系统中软件应用和硬件之间的媒介。
除了RAM和一个或多个CPU之外,处理系统可以包括安全协处理器(security coprocessor,SC),诸如可信平台模块(trusted platformmodule,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.10/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,例如存储器控制器中枢、输入/输出(I/O)控制器中枢和PCI根桥接器等,用于可通信地耦合各种系统组件。这里所用的术语“总线”可以用于指代共享通信路径以及点对点路径。
可以将一些组件,例如NIC,实现为适配器卡,其具有接口(例如PCI连接器)以与总线进行通信。在一个实施例中,使用诸如可编程或非可编程逻辑设备或阵列、专用集成电路(ASIC)、嵌入式计算机和智能卡等的组件,可以将一个或多个设备实现为嵌入式控制器。
如图所示,处理系统20还包括可通信地耦合到处理器24的TPM30。TPM 30还可以被称为物理TPM或硬件TPM(hwTPM)30。在一个实施例中,将TPM 30实现为嵌入式设备,驻留在处理系统20的系统主板或底板上。TPM 30包括几个存储设施,包括易失性平台配置寄存器(PCR)和授权会话,以及持久性数据完整性寄存器(DIR)、授权摘要和通用持久性存储。这些设施中的每一个均具有相应的存储器内数据结构。
可以通过参考或结合相关数据来描述本发明,所述数据包括指令、函数、过程、数据结构和应用程序等,当机器访问所述数据时,会致使该机器执行任务或定义抽象数据类型或底层硬件上下文。数据可以被存储在易失性和/或非易失性数据存储装置中。
例如,RAM 26可以包括一组或多组指令,当这些指令当被执行时,可以实现通用虚拟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。微内核可以包括指令的小核心(smallnucleus),用于诸如指令调度之类的系统管理任务。服务OS可以包括设备驱动和环境虚拟化软件以创建并维护VM。服务OS中的设备驱动可以包括TPM驱动以与TPM 30进行通信。或者,如图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确定其应当创建VM60A时,处理系统20可以将VM定义41作为引导块对待,使用GVTPM框架40测量VM定义41,随后VMM 64将控制传递给VM定义41中的初始化指令或引导代码。通过执行该引导代码,至少可以部分实例化VM 60A。特别地,基于VM定义41中的控制逻辑和/或初始化数据,可以为VM 60A创建vTPM 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中。
在示例性实施例中,在单用户授权会话下,vTPM 44A能够透明地从其自身和hwTPM 30提供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完成了该操作,vTPM 44A可以更新关于用户会话的随机数并进行应答。
在示例性实施例中,GVTPM框架40提供了执行环境,用于可信赖的虚拟TPM(vTPM)44A和44B、和/或诸如vSC 44C之类的其它类似TPM的虚拟组件。为了保护vSC 44A-44C所使用的敏感数据,GVTPM框架40使用TPM 30来确保vSC的可信赖性在符合使用TPM的软件的预期的硬件中是固定的。在本公开中,术语“虚拟TPM”和“vTPM”用于指代物理TPM的软件仿真或模拟、以及相似类型的安全子系统的软件仿真。
GVTPM框架40可以允许多个相互不信任的和/或不知晓的客户共享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进行签名的能力。例如,平台可以使用身份验证密钥(attestationidentify key,AIK)来对PCR进行签名。这种经签名的PCR可以被称为引证(quote)。
为了向远程实体证明该引证是由真正的TPM签名的,每一TPM具有一组凭证。例如,由TPM制造商签名的签署凭证(endorsementcredential)表明该TPM符合TPM规范。制造商还在TPM中存储被称作签署密钥(EK)的唯一密钥,制造商使用该EK来对签署凭证进行签名。理论上讲,可以将EK直接用于对PCR引证进行签名。但是,由于EK是唯一的,因此使用了第三方以提供保密性。特别地,平台使用被称作保密认证机构(certificate authority,CA)的第三方来创建每个AIK的身份凭证。使用EK和签署凭证,TCG定义了一个协议,该协议使TPM能够向保密CA证明该TPM是真正的TPM。继而,保密CA为TPM声称其拥有的AIK创建身份凭证。
假定远程实体信任TPM的制造商、保密CA和可信测量根,则由AIK签名的且附有身份凭证的引证是该平台当前状态的加密证据。例如,如果将常规验证方法用于类似于图1所示的网络环境中,诸如保密CA 76之类的远程处理系统将提供常规TPM的AIK的身份凭证,处理系统20将使用该身份凭证来对诸如挑战者78之类的远程处理系统作出可信赖性断言。但是,正如下面所更详细描述的,本公开引入了经修改的验证方法来支持虚拟安全处理器或虚拟TPM,以用于诸如处理系统20之类的设备中的例如虚拟机60A-60C这样的分区。
图2是一个框图,就支持诸如TPM虚拟化之类的功能的各种结构和密钥,描述了一个示例性TPM,诸如TPM 30。在图2中,TPM30的EK被表示为hwEK 52,存储根密钥被表示为hwSRK 50,由TPM制造商提供的签署凭证被表示为EK_Cred 54。图2还示出了存储38中的PCR 32和DIR 36。
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绑定相匹配,其就可以执行任意功能。
14-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提供处理器和活动存储器资源。由于PSS100为每一DM的持久性数据提供受保护存储,因此PSS 100也可以被称作受保护的持久性存储。在示例性实施例中,GVTPM框架40施加一个安全性要求,即平台将隔离CPU 22和RAM 26的使用,来确保该框架不受平台的其余部分的影响。一种满足隔离要求的方式为,将组件实现在可信虚拟机监视器(TVMM)中或使用TVMM来将GVTPM框架40隔离在其自己的VM中。在示例性实施例中,VMM64通常被接受为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)。例如,当VM60A中的软件试图访问TPM时,则触发VE。响应于VE,可以将控制从VM 60A转移到VMM 64。GVTPM管理器110可以拦截VE以便参考vTPM 44A来处理事件。在示例性实施例中,尽管VM 60A可能不知道除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。
在示例性实施例中,vTPM 44A使用软件来提供模拟的、持久性的、单调的计数器。计数器的数量实际上是无限制的。在示例性实施例中,vTPM 44A至少提供了预期来自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管理器110将收集PSS 100需要用来对DM进行认证的任何信息,例如对DM代码的测量。例如,GVTPM管理器110可以测量特定VM定义之中的PCS,该特定VM定义用作对正在考虑的DM进行实例化的基础。例如,VM定义41可以包括用于特定TPM类型或模型的PCS45,而VM定义51可以包括用于特定智能卡类型或模型的PCS 55。在一个实施例中,由处理系统支持的每一不同的DM设计主要或完全由VM定义中的PCS来定义。
GVTPM管理器110可以提供每一特定OS分区和相应DM之间的通信信道。GVTPM管理器110还可以提供其自身和每一DM之间的通信信道。GVTPM管理器110向DM提供对于其它GVTPM组件的访问,例如到虚拟制造商认证中心的访问,到PSS 100的访问和到hwTPM 30的串行访问。GVTPM管理器110因此负责多个DM共享hwTPM 30。管理的主要资源是一组加载的密钥和授权会话。共享技术,诸如在上面参考的TPM规范的核心服务部分中提出的那些技术,可以适合该任务。
在示例性实施例中,GVTPM管理器110确保每次仅一个vTPM访问TPM 30。此外,GVTPM管理器110将密钥和授权会话换出和换进TPM 30,来确保每一vTPM具有其所需的资源。
2.3-GVTPM受保护存储服务
为了在DM中保持灵活性,GVTPM框架40对每个DM如何工作施加相对较少的要求。在一个实施例中,唯一的要求是,将所有的持久性数据(例如密钥、计数器、NVM数据、和vTPM所需的以便在系统重引导时工作的任何其它状态)从NVM拷贝到加载的活动存储器上,并随后在需要时存储回NVM。根据该要求,在DM不工作时,PSS负责保护DM的NVM。在DM加载后,TVMM负责在DM执行时提供数据隔离和保护。
在示例性实施例中,PSS 100对vTPM进行认证并确保vTPM的状态仅被加载到先前存储了该状态的vTPM中。PSS 100还确保存储的状态的完整性,并提供抗重放保护。为了保护每一DM的离线NVM,PSS 100提供了在TPM 30中确立的强认证和保护机制。该认证识别先前保存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向PSS100发出请求来保存其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测量结果与记录中的测量结果相匹配。随后,PSS 100使用其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。该硬件包括TPM 30。运行在硬件之上的是一个或多个可信分区。在一个实施例中,这些分区包括VM 60A和vMA分区254。VMM 64可以在第三个不同的分区中工作。例如,一个或多个分区可以被实现为虚拟机。在替代性实施例中,一个或多个组件可以共享一个受保护分区。
在示例性实施例中,虚拟制造商认证中心本地驻留处理系统20上,位于可信组件内。例如,虚拟制造商认证中心124可以驻留在可信VMM 64中,或在VMM 64支持的可信分区254(例如,可信VM)中。但是,在替代性实施例中,虚拟制造商认证中心可以驻留在固件或任何其它受保护分区中,在这之中,它们可以被测量,并且测量结果可被存储在平台的TPM中。vTPM也本地驻留在可信组件内的处理系统20上。例如,vTPM 44A驻留在示例性实施例的VM 60A中。
每一虚拟制造商认证中心在TPM 30内创建签名密钥250,其用于对TPM凭证进行签名。在示例性实施例中,为了使来自虚拟制造商认证中心124的凭证有意义,虚拟制造商认证中心124首先令第三方(例如,外部CA)确信虚拟制造商认证中心124的配置是可信赖的、并且虚拟制造商认证中心124的签名密钥受到了TPM的保护。可以将该第三方认为是虚拟制造商保证认证中心(virtual manufacturercertifying 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随后向VMCA 77证明TPM 30将不允许除虚拟制造商认证中心124之外的任何实体访问该TPM签名密钥。
与虚拟制造商认证中心和TCB的状态的绑定证明,虚拟制造商认证中心124将依据GVTPM框架40中体现的策略来工作。虚拟制造商认证中心124因此证明了其受特定平台和软件配置控制。从而,签名密钥250隐含地验证了由GVTPM框架40创建的任何虚拟TPM将依据GVTPM框架40中所体现的策略来工作。然后,例如参考经证明的环境的列表,VMCA 77可以确定环境是否为可信赖的。
例如,当处理系统20处于与当签名密钥被创建时的相同的配置中时,图3中的虚拟制造商认证中心124可以使用协议来向VMCA 77证明,虚拟制造商认证中心124的签名密钥250驻留在TPM 30中,且仅可由虚拟制造商认证中心124使用。这种协议的一个示例为,要虚拟制造商认证中心124在TPM 30内创建AIK。通过标准通道,虚拟制造商认证中心124随后获得该密钥的身份凭证,该身份凭证是由保密CA签名的,并且能够证明身份密钥所做的任何要求是由可信TPM做出的。该身份密钥随后被用于确认签名密钥250,通过该过程,TPM 30使用身份密钥来对一个声明进行签名,该声明说明了签名密钥和身份密钥处于相同的TPM中、并且签名密钥被绑定到特定配置中,其中该特定配置确保了对于支持虚拟制造商认证中心124的环境的信任。当该声明与表明该身份是在真正的TPM中的身份凭证相组合时,可以推导出虚拟制造商认证中心124的签名密钥250是由合法的TPM保护的、且仅用于提供对于虚拟制造商认证中心124的操作的信任的特定配置中。
一旦虚拟制造商认证中心124使VMCA 77确信该虚拟制造商认证中心124具有与特定配置绑定的TPM签名密钥,VMCA 77就基于可靠信息确定该配置是否足够安全以致可信。如果该配置被认为是足以信赖的,则VMCA 77利用签名密钥的公开部分来创建一个证书,这表明VMCA 77向虚拟制造商认证中心的签名密钥委托了用来对签署凭证和平台凭证进行签名的权力。该证书经过信任VMCA 77的决定的其它CA的网络来传递。
虚拟制造商认证中心的凭证和由虚拟制造商认证中心签名的凭证的有效期将很可能与对GVTPM框架和其TCB的检查程度成正比。发现GVTPM框架或基本的TCB中的脆弱性,将导致GVTPM DM中信任的移除。在这种情况下,VMCA 77将希望撤销对虚拟制造商认证中心的委托,并通常向其它CA的网络告知VMCA 77不再信任该虚拟制造商认证中心。例如,在向虚拟制造商认证中心124委托权限后,如果VMCA 77随后确定虚拟制造商认证中心124和/或其vTPM架构是脆弱的,则VMCA 77可以撤销该委托。
在VMCA 77接受了来自虚拟制造商认证中心124的证据后,虚拟制造商认证中心124可以使用签名密钥250来验证诸如vTPM 44A之类的虚拟TPM的可信赖性。特别地,在示例性实施例中,如箭头274所示,虚拟制造商认证中心124基于关于vTPM 44A的信息生成新的签署和平台凭证260,虚拟制造商认证中心124使用来自TPM 30的签名密钥250来对这些凭证进行签名而无需进一步与VMCA 77进行交互。因此如箭头276所示,该新签名262被附加于证书260以创建完成的证书280。诸如完成的证书280之类的由虚拟制造商认证中心签名的证书可以被称为vMA证书或vMA凭证。
虚拟TPM 44A可以随后使用vMA凭证280,其方式就仿佛这些凭证是由TPM制造商和平台制造商所签名的用于硬件TPM的凭证。处理系统20因此可以实时地(即,不存在与从外部处理系统获得凭证相关的延迟)创建诸如vTPM 44A之类的虚拟安全协处理器,同时仍旧提供高安全性保证。
如上所述,在示例性实施例中,至少每一类型的DM都具有其自己的虚拟制造商认证中心。例如,特定GVTPM框架可以包括针对全部TPM DM的一个虚拟制造商认证中心,以及针对每个专属DM设计的不同的虚拟制造商认证中心。因此,例如,虚拟制造商认证中心124可以服务于vTPM 44A和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操作来使TPM 30使用虚拟制造商认证中心的AIK以对签名密钥的属性进行签名,所述属性包括其迁移能力和其所被绑定的PCR。虚拟制造商认证中心124随后可以发送带有身份凭证的CertifyKey结果到VMCA 77。
通常,VMCA 77应当信任由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),填充有斑点图案的椭圆表示签名密钥。此外,粗线条椭圆表示绑定到TPM 30的PCR 32的密钥。密钥之间的线表示密钥之间的父/子关系。例如,这些线表示SRK 50是每一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对象可以继而用作DM 44A内的附加虚拟对象的基础,例如vSigk 150、虚拟AIK(vAIK)158和虚拟存储/加密密钥(vEncK)156。在示例性实施例中,每一DM可以提供由对应的硬件设备提供的所有功能,并具有相同的应用程序接口(API)。例如,DM 44A可以包括其自己的vDIR 94、vPCR 92和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将该身份凭证进行加密。在一个实施例中,VM 60A作为与保密CA 76交互的平台而工作,VM 60A使用基于硬件的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进行签名,这是因为它们是hwTPM 30外部的数据。所以,vAIK 158可以被实现为TPM签名密钥。引证结构可以针对DM 44A中的虚拟PCR 92而构建,并随后使用vAIK来签名。最后,KBK 160是传统的绑定密钥。
3.2.2-对TPM密钥强制实施虚拟PCR
硬件TPM(例如,TPM 30)和使用vTPM的VM(例如使用DM44A的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设备模型(例如,DM 44A)来说是不可读的。如方框212所示,TCG_KEY结构的公开部分中的PCR绑定将用vPCR绑定来替代,并且版本也将被设置为vTPM的版本。存储在私有部分中的摘要将反映这些修改。最后,扩展的私钥部分216将使用KEB 160(如上所述)进行加密。结果得到的是TCG_KEY 210,其具有期望的版本和vPCR绑定、以及无法读取的加密部分,其中该加密部分如果被传递给硬件TPM时,将无法被正确解密。
为了使用,返回给用户的密钥必须被加载到虚拟TPM(例如,DM44A),虚拟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 1)希望将vTPM迁移到第二平台中的PSS(PSS 2),则可能发生下列步骤。
1.PSS 1请求PSS 2传输其存储公钥和对该密钥绑定的证据。
2.PSS 2发送其存储公钥和随机数到PSS 1。
3.PSS 1评估vTPM关于PSS 2状态的策略。如果该策略声明,对于提供vTPM的安全操作以及继续为下一迁移保持该策略,PSS 2的状态是可信赖的,则PSS 1应仅迁移vTPM。
4.如果PSS 2通过,则PSS 1确保vTPM未在运行。PSS 1随后用PSS 2的存储密钥将下列各项加密:vTPM的持久性状态、来自步骤2的随机数、和对该状态应运行在的正确vTPM的测量结果。
5.PSS 1从已知vTPM列表中删除该vTPM的记录。这样确保了该状态无法被再次载入该服务,并且当迁移结束时,该vTPM将仅在PSS 2下存在。
6.PSS 1向PSS 2发送加密数据体、以及vTPM的签署凭证。
7.PSS 2接收vTPM状态,对其进行解密,像PSS 2对所有离线vTPM所做的那样将其密封,并将其记录为已知vTPM。该vTPM现在正式地成为了PSS 2平台的一部分。
8.(可选)PSS 2的虚拟制造商认证中心创建该vTPM的平台证书。对该vTPM来说,继续使用PSS 1的平台证书是不正确的,这是因为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-ROM、ROM和RAM之类的存储介质;以及诸如天线、电缆、光纤、微波、无线电波和其它电磁或光载体之类的通信介质。因此,可以通过传输环境或网络以分组、串行数据、并行数据、传播信号等的形式来传送指令和其它数据,这些指令和其它数据可以被应用于分布式环境中,并被进行本地和/或远程存储以便由单或多处理器主机访问。
应当理解的是,这里所描述的硬件和软件组件表示的功能部件在相当程度上是完备的,从而它们中的每一个可以实质上独立于其它而被设计、构造或更新。在替代性实施例中,许多组件可以被实现为硬件、软件或这两者的组合以提供这里所述的功能。
考虑到可以从这里所述的示例性实施例中容易地获得各种各样的有益变更,本详细说明仅为示例性的,而并不对本发明的保护范围构成限制。因此,本发明所要求保护的,是落入所附权利要求的范围和实质内的所有实现和这些实现的所有等价物。
Claims (21)
1.一种方法,包括:
在处理系统的受保护部分中创建设备模型(DM),所述DM至少部分地基于预定义的设备模型设计,其中,所述预定义的设备模型设计对应于预定的加密协处理器;
在所述DM处从所述处理系统的受保护部分之外的软件实体接收信息;以及
响应于在所述DM处从所述软件实体接收到所述信息,根据所述预定义的设备模型设计,通过使用所述处理系统的物理加密协处理器向所述软件实体提供加密服务,来对所述预定的加密协处理器进行仿真。
2.如权利要求1所述的方法,还包括:
使用所述处理系统的可信平台模块(TPM)来支持所述DM。
3.如权利要求1所述的方法,其中,向所述软件实体提供加密服务的操作包括:
使用所述处理系统的物理加密协处理器来密封与所述DM相关联的数据;以及
将所密封的数据存储在所述处理系统的随机存取存储器(RAM)中。
4.如权利要求1所述的方法,其中,向所述软件实体提供加密服务的操作包括:
使用来自所述处理系统的物理加密协处理器的密钥对与所述DM相关联的信息进行加密;以及
使用受保护存储服务(PSS)来存储所述加密信息。
5.如权利要求4所述的方法,其中,所述PSS至少暂时地使用所述处理系统的随机存取存储器(RAM)来存储所述加密信息。
6.如权利要求1所述的方法,还包括:
在所述处理系统中创建第一组的一个或多个DM,所述第一组DM至少部分地基于第一设备模型设计;以及
在所述处理系统中创建第二组的一个或多个DM,所述第二组DM至少部分地基于第二设备模型设计。
7.如权利要求1所述的方法,其中,所述设备模型设计表示特定类型的可信平台模块(TPM)。
8.如权利要求1所述的方法,其中,所述设备模型设计表示特定类型的安全协处理器。
9.如权利要求1所述的方法,其中,所述设备模型设计包括对所述处理系统的受保护部分之外的软件实体的接口的定义,该接口用于与所述设备模型的实例进行通信。
10.一种装置,包括:
创建模块,用于在处理系统的受保护部分中创建设备模型(DM),所述DM至少部分地基于预定义的设备模型设计,其中,所述预定义的设备模型设计对应于预定的加密协处理器;
接收模块,用于在所述DM处从所述处理系统的受保护部分之外的软件实体接收信息;以及
仿真模块,用于响应于在所述DM处从所述软件实体接收到所述信息,根据所述预定义的设备模型设计,通过使用所述处理系统的物理加密协处理器向所述软件实体提供加密服务,来对所述预定的加密协处理器进行仿真。
11.如权利要求10所述的装置,所述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所述的方法,其中,向所述软件实体提供加密服务的操作包括:
使用所述处理系统的加密协处理器来支持对所述预定的加密协处理器的仿真。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US68109405P | 2005-05-13 | 2005-05-13 | |
US60/681,094 | 2005-05-13 | ||
US11/171,133 | 2005-06-29 | ||
US11/171,133 US7587595B2 (en) | 2005-05-13 | 2005-06-29 | Method and apparatus for providing software-based security coprocessors |
PCT/US2006/018685 WO2006124751A2 (en) | 2005-05-13 | 2006-05-11 | Method and apparatus for providing software-based security coprocessors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101176100A CN101176100A (zh) | 2008-05-07 |
CN101176100B true CN101176100B (zh) | 2010-05-19 |
Family
ID=37418673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800164965A Expired - Fee Related CN101176100B (zh) | 2005-05-13 | 2006-05-11 | 提供基于软件的安全协处理器的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7587595B2 (zh) |
EP (1) | EP1880339A2 (zh) |
JP (1) | JP4732513B2 (zh) |
KR (1) | KR100930218B1 (zh) |
CN (1) | CN101176100B (zh) |
WO (1) | WO2006124751A2 (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7590867B2 (en) | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US7613921B2 (en) | 2005-05-13 | 2009-11-03 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US8074262B2 (en) | 2005-05-13 | 2011-12-06 | Intel Corporation | Method and apparatus for migrating virtual trusted platform modules |
US8458673B2 (en) * | 2006-04-26 | 2013-06-04 | Flexera Software Llc | Computer-implemented method and system for binding digital rights management executable code to a software application |
EP1850260A1 (en) * | 2006-04-26 | 2007-10-31 | Macrovision Corporation | A computer-implemented method and system for binding digital rights management executable code to a software application |
US8108668B2 (en) | 2006-06-26 | 2012-01-31 | Intel Corporation | Associating a multi-context trusted platform module with distributed platforms |
US8510859B2 (en) | 2006-09-26 | 2013-08-13 | Intel Corporation | Methods and arrangements to launch trusted, co-existing environments |
US8479264B2 (en) * | 2006-09-29 | 2013-07-02 | Micron Technology, Inc. | Architecture for virtual security module |
US9171161B2 (en) * | 2006-11-09 | 2015-10-27 | International Business Machines Corporation | Trusted device having virtualized registers |
US9280659B2 (en) * | 2006-12-29 | 2016-03-08 | Intel Corporation | Methods and apparatus for remeasuring a virtual machine monitor |
US8024579B2 (en) * | 2006-12-29 | 2011-09-20 | Lenovo (Singapore) Pte Ltd. | Authenticating suspect data using key tables |
US20080320263A1 (en) * | 2007-06-20 | 2008-12-25 | Daniel Nemiroff | Method, system, and apparatus for encrypting, integrity, and anti-replay protecting data in non-volatile memory in a fault tolerant manner |
US8064605B2 (en) * | 2007-09-27 | 2011-11-22 | Intel Corporation | Methods and apparatus for providing upgradeable key bindings for trusted platform modules |
US8249257B2 (en) | 2007-09-28 | 2012-08-21 | Intel Corporation | Virtual TPM keys rooted in a hardware TPM |
US8724819B2 (en) * | 2007-10-16 | 2014-05-13 | Nokia Corporation | Credential provisioning |
US20090133097A1 (en) * | 2007-11-15 | 2009-05-21 | Ned Smith | Device, system, and method for provisioning trusted platform module policies to a virtual machine monitor |
US8259948B2 (en) * | 2007-12-29 | 2012-09-04 | Intel Corporation | Virtual TPM key migration using hardware keys |
US8443440B2 (en) * | 2008-04-05 | 2013-05-14 | Trend Micro Incorporated | System and method for intelligent coordination of host and guest intrusion prevention in virtualized environment |
FR2929733B1 (fr) * | 2008-04-08 | 2010-08-27 | Eads Defence And Security Syst | Systeme et procede de securisation d'un ordinateur comportant un micronoyau |
GB2470880B (en) * | 2008-04-16 | 2013-04-10 | Lenovo Singapore Pte Ltd | Apparatus and method for enabling applications on a security processor |
JP5309709B2 (ja) * | 2008-06-16 | 2013-10-09 | 株式会社リコー | ソフトウェア改ざん検知方法及び機器 |
EP2172862A1 (en) * | 2008-10-02 | 2010-04-07 | Broadcom Corporation | Secure virtual machine manager |
US8868925B2 (en) * | 2008-12-09 | 2014-10-21 | Nvidia Corporation | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
US8266448B2 (en) * | 2008-12-09 | 2012-09-11 | Nvidia Corporation | Apparatus, system, method, and computer program product for generating and securing a program capable of being executed utilizing a processor to decrypt content |
US8346847B2 (en) * | 2009-06-03 | 2013-01-01 | Apple Inc. | Installing applications based on a seed application from a separate device |
US8402280B1 (en) | 2009-10-15 | 2013-03-19 | Nvidia Corporation | System, method, and computer program product for buffering in association with audio/video digital rights management (DRM) processing |
CN102754077B (zh) | 2009-12-14 | 2015-11-25 | 思杰系统有限公司 | 可从外部媒体装置引导的安全虚拟化环境 |
EP3001326B1 (en) | 2009-12-14 | 2017-07-26 | Citrix Systems Inc. | Methods and systems for communicating between trusted and non-trusted virtual machines |
US9286485B2 (en) * | 2010-03-23 | 2016-03-15 | Fujitsu Limited | Using trust points to provide services |
US20110238402A1 (en) | 2010-03-23 | 2011-09-29 | Fujitsu Limited | System and methods for remote maintenance in an electronic network with multiple clients |
CN102402657A (zh) * | 2010-09-15 | 2012-04-04 | 联想(新加坡)私人有限公司 | 用于使能安全处理器上的应用的装置和方法 |
DE102010053485A1 (de) * | 2010-12-04 | 2012-06-06 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Arbeitsmaschine und Arbeitsmaschine mit virtueller Automatisierung |
CN102833296B (zh) * | 2011-06-13 | 2018-10-23 | 伊姆西公司 | 用于构建安全的计算环境的方法和设备 |
CN102332069B (zh) * | 2011-08-05 | 2014-02-26 | 道里云信息技术(北京)有限公司 | 虚拟机全生命周期安全管理方法及系统 |
GB2513826A (en) | 2012-06-29 | 2014-11-12 | Ibm | Trusted boot of a virtual machine |
US8938796B2 (en) | 2012-09-20 | 2015-01-20 | Paul Case, SR. | Case secure computer architecture |
US9037854B2 (en) * | 2013-01-22 | 2015-05-19 | Amazon Technologies, Inc. | Privileged cryptographic services in a virtualized environment |
US9176910B2 (en) * | 2013-02-15 | 2015-11-03 | International Business Machines Corporation | Sending a next request to a resource before a completion interrupt for a previous request |
US9230081B2 (en) * | 2013-03-05 | 2016-01-05 | Intel Corporation | User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system |
JP2016513840A (ja) * | 2013-06-05 | 2016-05-16 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | データセキュリティを保護するための方法、サーバ、ホスト、およびシステム |
WO2015003310A1 (en) | 2013-07-09 | 2015-01-15 | Hua Zhong University Of Science Technology | Synchronized virtual trusted platform modules (vtpm) and virtual machine (vm) rollbacks |
US9497221B2 (en) * | 2013-09-12 | 2016-11-15 | The Boeing Company | Mobile communication device and method of operating thereof |
US10223538B1 (en) | 2013-11-12 | 2019-03-05 | Amazon Technologies, Inc. | Preventing persistent storage of cryptographic information |
US9235714B1 (en) * | 2013-11-12 | 2016-01-12 | Amazon Technologies, Inc. | Preventing persistent storage of cryptographic information using signaling |
US9231923B1 (en) | 2013-11-12 | 2016-01-05 | Amazon Technologies, Inc. | Secure data destruction in a distributed environment using key protection mechanisms |
US10095532B2 (en) * | 2014-04-28 | 2018-10-09 | Netkine, Inc. | Providing excess compute resources with virtualization |
EP2950229B1 (en) * | 2014-05-28 | 2018-09-12 | Nxp B.V. | Method for facilitating transactions, computer program product and mobile device |
US9870476B2 (en) * | 2014-09-23 | 2018-01-16 | Accenture Global Services Limited | Industrial security agent platform |
US10229272B2 (en) | 2014-10-13 | 2019-03-12 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9584317B2 (en) | 2014-10-13 | 2017-02-28 | Microsoft Technology Licensing, Llc | Identifying security boundaries on computing devices |
US9742762B2 (en) | 2014-12-01 | 2017-08-22 | Microsoft Technology Licensing, Llc | Utilizing a trusted platform module (TPM) of a host device |
JP6357091B2 (ja) * | 2014-12-03 | 2018-07-11 | Kddi株式会社 | 情報処理装置、及びコンピュータプログラム |
US9584325B1 (en) * | 2014-12-04 | 2017-02-28 | Amazon Technologies, Inc. | User-configurable cryptographic interface controller |
US9852295B2 (en) * | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
KR101702771B1 (ko) * | 2015-08-26 | 2017-02-03 | (주)에이티솔루션즈 | 보안운영체제를 이용한 고속 데이터 엔코딩/디코딩 방법 |
US10169591B2 (en) * | 2015-12-07 | 2019-01-01 | Amazon Technologies, Inc. | Chained security systems |
KR102484606B1 (ko) * | 2016-03-11 | 2023-01-05 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US10277407B2 (en) | 2016-04-19 | 2019-04-30 | Microsoft Technology Licensing, Llc | Key-attestation-contingent certificate issuance |
US10708067B2 (en) * | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US9992029B1 (en) * | 2017-04-05 | 2018-06-05 | Stripe, Inc. | Systems and methods for providing authentication to a plurality of devices |
CN107294710B (zh) * | 2017-06-30 | 2020-12-04 | 浪潮(北京)电子信息产业有限公司 | 一种vTPM2.0的密钥迁移方法及装置 |
US20190116022A1 (en) * | 2017-10-16 | 2019-04-18 | Samsung Electronics Co., Ltd. | Encryption device and operation method thereof |
US10659054B2 (en) * | 2018-02-23 | 2020-05-19 | Nxp B.V. | Trusted monotonic counter using internal and external non-volatile memory |
WO2020081499A1 (en) | 2018-10-15 | 2020-04-23 | KameleonSec Ltd. | Proactive security system based on code polymorphism |
US11500988B2 (en) | 2019-03-08 | 2022-11-15 | International Business Machines Corporation | Binding secure keys of secure guests to a hardware security module |
CN110380854A (zh) * | 2019-08-12 | 2019-10-25 | 南京芯驰半导体科技有限公司 | 针对多个系统的根密钥生成、隔离方法及根密钥模块 |
US20200127850A1 (en) * | 2019-12-20 | 2020-04-23 | Intel Corporation | Certifying a trusted platform module without privacy certification authority infrastructure |
US11822664B2 (en) | 2020-06-22 | 2023-11-21 | Apple Inc. | Securely signing configuration settings |
CN115250189B (zh) * | 2021-04-27 | 2023-06-02 | 西门子(中国)有限公司 | 一种智能家居设备的密钥管理方法及装置 |
CN113468563B (zh) * | 2021-06-24 | 2022-11-18 | 曙光信息产业股份有限公司 | 虚拟机数据加密方法、装置、计算机设备和存储介质 |
CN114297699B (zh) * | 2022-03-10 | 2022-06-14 | 好享家舒适智能家居股份有限公司 | 一种复杂结构数据自动加密解密方法及系统 |
CN116841691A (zh) * | 2023-06-15 | 2023-10-03 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169717A1 (en) * | 2001-05-09 | 2002-11-14 | International Business Machines Corporation | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
US20040151319A1 (en) * | 2003-02-03 | 2004-08-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing a hierarchy of nodes |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0001585D0 (en) * | 2000-01-24 | 2000-03-15 | Radioscape Ltd | Method of designing,modelling or fabricating a communications baseband stack |
US6895501B1 (en) * | 2000-03-13 | 2005-05-17 | Wrq, Inc. | Method and apparatus for distributing, interpreting, and storing heterogeneous certificates in a homogenous public key infrastructure |
AU2001271996A1 (en) | 2000-07-18 | 2002-01-30 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
FI110427B (fi) | 2001-03-28 | 2003-01-31 | Kemira Chemicals Oy | Työliuoksen hydraus vetyperoksidin valmistusprosessissa |
US6922774B2 (en) * | 2001-05-14 | 2005-07-26 | The United States Of America As Represented By The National Security Agency | Device for and method of secure computing using virtual machines |
GB2376765B (en) | 2001-06-19 | 2004-12-29 | Hewlett Packard Co | Multiple trusted computing environments with verifiable environment identities |
DE60136168D1 (de) * | 2001-06-28 | 2008-11-27 | Nokia Corp | Verfahren zum Ermöglichen von Übertragung zwischen Prozessen und Verarbeitungssystem unter Verwendung desselben |
GB2382419B (en) * | 2001-11-22 | 2005-12-14 | Hewlett Packard Co | Apparatus and method for creating a trusted environment |
US7103771B2 (en) | 2001-12-17 | 2006-09-05 | Intel Corporation | Connecting a virtual token to a physical token |
US7478233B2 (en) * | 2002-05-30 | 2009-01-13 | Microsoft Corporation | Prevention of software tampering |
JP2004013602A (ja) * | 2002-06-07 | 2004-01-15 | Handotai Rikougaku Kenkyu Center:Kk | データ駆動プロセッサのエミュレーションシステム |
JP2004015667A (ja) * | 2002-06-10 | 2004-01-15 | Takeshi Sakamura | Icカード間暗号通信方法、電子チケット流通システムにおけるicカード間暗号通信方法およびicカード |
US7356197B2 (en) | 2003-06-30 | 2008-04-08 | Intel Corporation | Variable tap filter architecture for image processing |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US7313679B2 (en) * | 2003-10-17 | 2007-12-25 | Intel Corporation | Extended trusted computing base |
US20050132122A1 (en) | 2003-12-16 | 2005-06-16 | Rozas Carlos V. | Method, apparatus and system for monitoring system integrity in a trusted computing environment |
US7222062B2 (en) * | 2003-12-23 | 2007-05-22 | Intel Corporation | Method and system to support a trusted set of operational environments using emulated trusted hardware |
US7380119B2 (en) * | 2004-04-29 | 2008-05-27 | International Business Machines Corporation | Method and system for virtualization of trusted platform modules |
US7590300B2 (en) | 2004-06-24 | 2009-09-15 | Intel Corporation | Image filtering methods and apparatus |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US20060002471A1 (en) | 2004-06-30 | 2006-01-05 | Lippincott Louis A | Motion estimation unit |
US7471844B2 (en) | 2004-12-27 | 2008-12-30 | Intel Corporation | Method, apparatus and system for multi-feature programmable tap filter image processing |
US7707629B2 (en) | 2005-03-31 | 2010-04-27 | Intel Corporation | Platform configuration register virtualization apparatus, systems, and methods |
US8074262B2 (en) | 2005-05-13 | 2011-12-06 | Intel Corporation | Method and apparatus for migrating virtual trusted platform modules |
US7613921B2 (en) * | 2005-05-13 | 2009-11-03 | Intel Corporation | Method and apparatus for remotely provisioning software-based security coprocessors |
US7827550B2 (en) | 2005-08-17 | 2010-11-02 | Intel Corporation | Method and system for measuring a program using a measurement agent |
-
2005
- 2005-06-29 US US11/171,133 patent/US7587595B2/en not_active Expired - Fee Related
-
2006
- 2006-05-11 WO PCT/US2006/018685 patent/WO2006124751A2/en active Application Filing
- 2006-05-11 KR KR1020077026726A patent/KR100930218B1/ko not_active IP Right Cessation
- 2006-05-11 EP EP06759818A patent/EP1880339A2/en not_active Withdrawn
- 2006-05-11 JP JP2008511457A patent/JP4732513B2/ja not_active Expired - Fee Related
- 2006-05-11 CN CN2006800164965A patent/CN101176100B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169717A1 (en) * | 2001-05-09 | 2002-11-14 | International Business Machines Corporation | System and method for installing a remote credit card authorization on a system with a TCPA complaint chipset |
US20040151319A1 (en) * | 2003-02-03 | 2004-08-05 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing a hierarchy of nodes |
Non-Patent Citations (1)
Title |
---|
Mario Strasser.Software-based TPM Emulator for Linux.Semester Thesis.9-11. * |
Also Published As
Publication number | Publication date |
---|---|
JP4732513B2 (ja) | 2011-07-27 |
KR100930218B1 (ko) | 2009-12-09 |
EP1880339A2 (en) | 2008-01-23 |
KR20080008361A (ko) | 2008-01-23 |
CN101176100A (zh) | 2008-05-07 |
US7587595B2 (en) | 2009-09-08 |
US20060256105A1 (en) | 2006-11-16 |
WO2006124751A3 (en) | 2007-07-19 |
JP2008541279A (ja) | 2008-11-20 |
WO2006124751A2 (en) | 2006-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101176100B (zh) | 提供基于软件的安全协处理器的方法和装置 | |
US9483662B2 (en) | Method and apparatus for remotely provisioning software-based security coprocessors | |
US8074262B2 (en) | Method and apparatus for migrating virtual trusted platform modules | |
US7636442B2 (en) | Method and apparatus for migrating software-based security coprocessors | |
CN101488170B (zh) | 向受信任平台模块提供可更新密钥绑定的方法和装置 | |
US7571312B2 (en) | Methods and apparatus for generating endorsement credentials for software-based security coprocessors | |
CN103038745B (zh) | 扩展完整性测量 | |
CN1997955B (zh) | 提供可信平台模块的安全虚拟化的方法和装置 | |
Ekberg | Securing software architectures for trusted processor environments | |
Shepherd | Techniques for Establishing Trust in Modern Constrained Sensing Platforms with Trusted Execution Environments | |
Rowland et al. | A Review of Technologies that can Provide a'Root of Trust'for Operational Technologies | |
Vuillermoz | Analysis of TEE technologies as trust anchors | |
Francis et al. | TPM: A More Trustworthy Solution to Computer Security | |
Feller | Trustworthy Reconfigurable Systems: Enhancing the Security Capabilities of Reconfigurable Hardware Architectures | |
Proudler et al. | Basics of Trusted Platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100519 Termination date: 20170511 |
|
CF01 | Termination of patent right due to non-payment of annual fee |