用于可信数据的方法、设备和数据结构的制作方法

文档序号:6577989阅读:162来源:国知局
专利名称:用于可信数据的方法、设备和数据结构的制作方法
用于可信数据的方法、设备和数据结构
本申请是申请号为200680009269.X、申请日为2006年3月22日、发 明名称为"用于可信数据的方法、设备和数据结构,,的申请的分案申请。
4支术领^戈
本发明涉及可信任的数据,其意义在于为担保该数据而准备了至少 一个可信实体。它特别地涉及了包括软件的数据(比如数据结构或可执 行指令),并且在实施例中涉及了计算设备上软件的升级或替换。
背景技术
计算实体之间交互的一个重要考虑是信任一一外来计算实体是以 可靠和可预测的方式行动,还是将(或已经)受到破坏。已经由形成可 信计算小组(TCG)的公司开发了包含至少在逻辑上免受破坏的组件的 可信系统——这个团体开发了该领域中的规范,例如在"可信计算平 台——上下文中的TCPA技术,,,Siani Pearson于2003年编著,Prentice Hall PTR中所讨论的。可信系统的隐含可信組件能够测量可信系统并且接着 能够将这些测量以完整性度量的形式来提供,以供给希望与可信系统交 互的适当实体。接收实体接着能够根据所测量的完整性度量与已知或期 望的值的 一致性来确定可信系统按照所期望的来操作。
完整性度量将通常包括对可信系统使用的软件的测量。这些测量可 以通常相结合地用于指明可信系统的状态或可信状态。在可信计算小组 规范中,教导了用于将数据"密封"到特殊平台状态的机制一一这就导 致将密封数据加密为不可测的"不透明斑点",其包含至少部分根据平 台上的软件的测量而导出的值。该测量包括软件的摘要,因为摘要值将 在对软件的任何修改时改变。如果可信组件测量当前平台状态并发现它 由与不透明斑点中相同的值表示,则可以只恢复该密封数据。
将会理解,软件中的任何改变将引起多个问题,既对于这个特定过 程且更一般的是软件测量被当作为计算机系统状态的表示的情况一一 无论软件的变化有多小,测量的有效形式(比如摘要)将给出不同的值。 在以上"密封,,的例子中,这意味着软件的变化——其可能例如对于改进功能或移除错误和弱点是完全期望的——具有阻止了对密封数据进 行连续访问的缺点。而这只是一个示例性问题,但是——在新的或替换 软件中具有与原始软件中相同的信任是存在 一般性困难的,这种一般性 困难在基于该信任的维护功能中具有伴随的实践困难。
所期望的是找到 一种方式来更新或改变被信任用来提供信任中以 及软件功能中连续性的软件。

发明内容
在一个方面,本发明提供一种数据结构,包括数据结构类型的标识 和数据结构类型的两个或以上的实例彼此一样值得信任的证据。


现在将仅仅通过举例的方式并参考附图来描述本发明的优选实施
例,所述附图中
图l是适用于本发明实施例的示例现有技术计算机平台的图解; 图2指示在适用于本发明实施例的现有技术可信计算机平台的母板
上存在的功能元件;
图3指示适用于本发明实施例的图2的可信计算机平台的可信设备
的功能元件;
图4说明将值扩展到适用于本发明实施例的图2的可信计算机平台
的平台配置寄存器中的过程;
图5说明根据本发明的实施例的记录完整性度量的过程;
图6说明根据本发明的实施例的完整性度量的两个信任等效集合以
及第二集合的实施例;
图7说明根据本发明的实施例的担保新的或替换软件的声明;
图8示出根椐本发明的实施例的在图5中所示类型的声明的链接列
表;
图9说明根据本发明的实施例的在图8中所示类型的声明的保密性 增强版本;
图10说明根据本发明的实施例的信任等效的两个完整性度量集合 的配置,以及PCR值的合成集合;
图ll示意性说明根据本发明实施例的虛拟可信平台从一个物理可信平台到另一个物理可信平台的迁移;和
图12说明根据本发明实施例的用于将虚拟可信平台从 一 个物理可 信平台迁移到另一个物理可信平台的方法。
具体实施例方式
在描述本发明的实施例之前,将结合图l到4来描述一种一般适用于 执行本发明的实施例的可信计算平台。对可信计算平台的该说明描述了 其构造和操作的某些基本元素。在本文中,"用户"可以是远程用户, 比如远程计算实体。可信计算平台还在申请人于2000年2月15日提交的 题目为"可信计算平台"的国际专利申请No. PCT/GB00/00528中描述, 其内容合并在此作为参考。技术人员将理解,本发明对于其操作不依赖 于精确按如下所描述的来使用可信计算平台本发明的实施例是针对这 种可信计算平台来描述的,但是技术人员将理解,本发明的这些方面可 以应用于不同类型的计算机平台,这些计算机平台不需应用可信计算小 組的可信计算平台功能的所有方面。
这里所描述的这种可信计算平台是可信设备合并到其中的计算平 台,可信设备的功能是将平台的身份(identity)与可靠测量的数据绑定, 可靠测量的数据提供平台的 一个或多个完整性度量。将该身份和完整性 度量与由可信方(TP)提供的期望值进行比较,可信方被准备用来担保 平台的值得信任度。如果存在匹配,则暗示了至少一部分平台正确地操 作,这取决于完整性度量的范围。
用户在与平台交换其它数据之前验证平台的正确操作。用户通过请 求可信设备提供其身份和一个或多个完整性度量来这样做。(可选地, 如果可信设备本身不能验证平台的正确操作,则可信设备将拒绝提供身 份的证据。)用户接收身份的证据和一个或多个身份度量,并且将它们 与认为是真实的值比较。这些适当的值由TP或用户所信任的另一个实体 来提供。如果由可信设备报告的数据与由TP所提供的数据相同,则用户 相信该平台。这是因为用户相信该实体。该实体相信平台,因为它先前 已经确认了身份,并确定了平台的适当完整性度量。
一旦用户已经证实了平台的可信操作,则他与平台交换其它数据。 对于本地用户,该交换可能是通过与一些在平台上运行的软件应用进行 交互。对于远程用户,该交换可能涉及安全事务。在任一情况下,交换的数据由可信设备"签名"。那么用户可以对数据正在与行为受信任的 平台进行交换具有更大的置信度。所交换的数据可以是与一些或所有在 计算机平台上运行的软件有关的信息。现有的可信计算小组的可信计算 机平台适于提供平台上软件的摘要——它们可以与已知软件的已知摘 要的公共可用列表相比较。但是,这确实提供了在可信计算平台上运行 的特定软件的标识一一这对于保密场所的可信计算平台的所有者可能 是不期望的。如将在下面所述的,本发明的一些方面可用于改善可信计 算平台拥有者的保密位置的方面。
可信设备使用密码进程,但是不需要向那些密码进程提供外部接 口。可信设备应当在逻辑上不受其它实体的影响一一包括其本身也是平 台一部分的平台其它部分。并且,最期望的实施方式是使可信设备防篡
上对未授权修改免疫的环境、'(即:在物;里上;逻辑上都得到保;)r由 于防篡改是不可能的,所以最好的近似方案是抗篡改或检测篡改的可信 设备。因此,该可信设备优选地由抗墓改的一个物理组件组成。与抗篡
于抗篡改的方法(比如适:封装可信设备)'、用于检测篡改的方法(比
如在可信设备外壳中检测超出规定电压、x射线或丟失物理完整性)、
以及用于当检测到篡改时消除数据的方法。
可信平台10是在图1的图中说明的。计算机平台IO看上去完全是传
统的——它关联有键盘14、鼠标16和可视显示单元(VDU) 18的标准特 征,这些特征提供了平台的物理"用户接口"。
如图2所示,可信计算平台10的母板20包括(除了其它标准组件) 主处理器21、主存储器22、可信设备24、数据总线26和相应的控制线27 和28、包含平台10的BISO程序的BIOS存储器29和输入/输出(10 )设备 23, 10设备23控制母板的组件和键盘14、鼠标16以及VDU18之间的交互。 主存储器22通常是随机访问存储器(RAM)。在操作中,平台10从硬盘 (未示出)将比如WindowXpTM的操作系统加载到RAM中。此外,在操 作中,平台10从硬盘(未示出)将可由平台10执行的进程或应用加载到 RAM中。
通常,在个人计算机中,BIOS程序位于专门的保留存储区域,系统 存储器的第一千兆字节的上面64K(地址F①①①h到FFFFh)中,并且主处理器被布置为根据工业一般标准来首先查看该存储单元。该平台和传 统平台的显著差异在于,在重置之后,主处理器初始地受可信设备控制,
其接着将控制移交给特定于平台的BIOS程序,该程序转而按常规初始化 所有输入/输出设备。在已经执行了BIOS程序之后,控制按常M^由BIOS 程序移交给操作系统程序,比如Window XP (TM),操作系统程序通 常从硬盘驱动器(未示出)加载到主存储器212中。主处理器初始地由 可信设备控制,因为它需要对将在可信计算平台上执行的第 一测量设置 信任。该第一测量的测量代理被称为测量的信任根(RTM)并通常至少 -故部分信任,因为其起源被信任。在一个实际有用的实施方式中,RTM 是平台,而主处理器在可信设备的控制下。如下筒要所述的,RTM的一 个作用是在其它测量代理被使用且依赖其测量之前来测量这些测量代 理。RTM是信任链的基础。注意到,RTM和后续测量代理不需要验证后 续的测量代理,而仅仅需要在它们执行之前测量并记录它们。这被称为 "筌权的引导过程,,。有效的测量代理可以通过将测量代理的摘要与有 效测量代理的摘要列表进行比较来识别。未列出的测量代理将不会被识 別,并且由它们以及后续测量代理作出的测量是不可信的。
可信设备24包括多个块,如图3所示。在系统重置之后,可信设备 24执行鉴权? 1导过程以确保平台10的操作状态以安全的方式被记录。在 鉴权引导过程期间,可信设备24获取计算平台10的完整性度量。可信设 备24还经由加密/解密和签名/验证来执行安全数据传送,和例如在它和 智能卡之间的鉴权。可信设备24还可安全地执行各种安全控制策略,比 如锁定用户接口。在特殊优选的方案中,计算平台的显示驱动器位于可
数据显示——这还在申请人于2000年5月2口5日提交的i目为"^于提供 值得信任的用户接口的系统,,的囯际专利申请No.PCT/GB00/02005中描 述,其内容合并在此作为参考。
具体地,本实施例中的可信设备包括控制器30,其被编程用于控 制可信设备24的全部操作,并与可信设备24上的其它功能并与母板20上 的其它设备交互;测量功能31,用于经由直接测量或可替换地间接地经 由要在平台的主处理器上执行的可执行指令而从平台IO获取第一完整 性度量;密码功能32,用于签名、加密或解密规定的数据;鉴权功能33, 用于鉴权智能卡;和接口电路34,具有用于将可信设备24相应连接到母板20的数据总线26、控制线27和地址线28的适当端口 (36、 37和38)。 可信设备24中的每个块可以访问(通常经由控制器30)可信设备24的适 当易失性存储区域4和/或非易失性存储区域3。此外,以已知的方式将可 信设备24设计为抗篡改。
因为性能的原因,可信设备24可被实现为特定用途集成电路 (ASIC)。但是,对于灵活性,可信设备24优选的是适当编程的微控制 器。ASIC和微控制器都在微电子领域中是已知的,并且在这里不作进一 步详细的描述。
在可信设备24的非易失性存储器3中存储的一个数据项是证书350。 证书350至少包含可信设备24的公共密钥351和由可信方(TP)测量的平 台、完整性度量的鉴权值352。证书350在被存储到可信设备24之前由TP 使用TP的私有密钥来签名。在之后的通信会话中,平台10的用户可通过 验证TP在证书上的签名来推出公共密钥属于可信设备。并且,平台IO 的用户可通过将所获取的完整性度量与真实的完整性度量进行比较来 验证平台10的完整性。如果存在匹配,则用户可以相信平台10还没有被 破坏。TP—般可用公共密钥的知识能对证书350进行简单验证。非易失 性存储器35还包含身份(ID)标签353。 ID标签353是传统的ID标签,例 如序列号,其在一些上下文中是唯一的。ID标签353—般用于与可信设 备24有关的数据的索引和标记,但是其本身不足以证明平台10的身份在 可信条件下。
可信设备24装备有用于可靠测量或获取与其关联的计算平台IO的 完整性度量的至少一个方法。在本实施例中,在涉及在BIOS存储器中生 成BI0S指令的摘要的进程中 由测量功能31获取存储器第一完整性度量。 该所获取的完整性度量,如果如上述那样被验证,则为平台10的潜在用 户给出平台10还没有在硬件、或BIOS程序级被破坏的高级别置信度。其 它已知过程,例如病毒检查,将通常在适当的位置检查操作系统和应用 程序代码没有被破坏。
测量功能31已经访问非易失性存储器3,用于存储可信设备24的 散列程序354和私有密钥355,和非易失性存储器4,用于存储所获取的 完整性度量,可信设备具有受限的存储器,但它期望存储与大量完整性 度量测量有关的信息。这是通过使用平台配置寄存器(PCR) 8a-8n在可 信计算平台中完成的,如可信计算小组所述。可信设备具有多个固定大在初始化平台时,它们被设置为固 定初始值。完整性度量接着通过图4中所示的过程被"扩展,,到PCR中。 PCR8i值与输入401级联403,输入401是要扩展到PCR中的完整性度量的 值。接着将该级联散列402以形成新160的比特值。该散列被反馈到PCR 以形成其新的值。除了完整性度量扩展到PCR之外,为了提供所执行测 量的清晰历史,测量过程还可记录在传统日志文件中(其可以简单地位 于计算机平台的主存储器中)。但是为了信任目的,将要被依赖的是PCR 值且不是软件日志。
清楚地,存在多个不同的方式,其中可以根据所要求信任的范围来 计算初始的完整性度量。BIOS程序的完整性的测量提供了对平台的基本 处理环境的完整性的基础检查。完整性度量应当有这么一种形式,使得 其能够推出引导过程的有效性一 一完整性度量的值可以用于验证是否 使用正确的BIOS来引导平台。可选地,BIOS内的各个功能块可以具有 它们自己的摘要值,并且总体BIOS摘要是这些各个摘要的摘要。这使得 一种策略能够声明BIOS操作的哪些部分对于预期的目的是关键的,并且 哪些是无关的(在该情况下各个摘要必须以如此方式存储使得该策略下 操作的有效性被证实)。
其它完整性检查可涉及证实各种其它附着到平台的设备、组件或装 置存在且按照正确的工作顺序。在一个例子中,与SCSI控制器关联的 BIOS程序可以被验证以确保与外围设备的通信可以被信任。在另 一个例 子中,平台上的其它设备,例如存储设备或协处理器的完整性可以通过 制定固定询问/响应交互来验证,以确保一致性结果。如上所指,大量的 完整性度量可以通过测量由RTM直接或间接测量的代理来收集,并且这 些完整性度量扩展到可信设备24的PCR中。这些完整性度量的一些一一 许多将与可信平台的软件状态有关。
优选地,BIOS引导过程包括验证引导过程本身完整性的机制。这种 才几制例如已经/人Intel的草案"Wired for Management baseline specification v 2.0 - BOOT Integrity Service"中得知,并且涉及在加载软件或固件之 前计算该软件或固件的摘要。这样所计算的摘要与存储在由可信实体提 供的证书中的值比较,可信实体的公共密钥对于BIOS是已知的。如果所
计算的值匹配来自证书的所期望值,则接着加载软件/固件,并且已经使 用可信实体的公共密钥来证明证书有效。否则,调用适当的异常处理例程。可选地,在接收了计算的BIOS摘要后,可信设备24可以检查证书中 BIOS摘要的正确值并且如果计算的摘要不匹配该正确值,则不把控制传 递到BIOS——可调用适当的异常处理例程。
简要地描述可信计算平台制造的工艺和第三方的验证,但是其不属 于本发明的基本意义而在上面所标识的"可信计算平台一一上下文中的 TCPA技术,,中详细讨论。
在第一个实例(其可能处于制造中),为可信平台担保的TP将检查 平台的类型以判断是否为它担保。该TP将签署一个与可信设备身份和检 查结果有关的证书 一 一 这接着被写到可信设备。
在平台操作期间的某之后的点,例如当它被接通或复位时,可信设 备24获取并存储平台的完整性度量。当用户希望与平台通信时,他使用 询问/响应例程来询问可信设备24(平台的操作系统或适当的软件应用可 设置为识别该询问并且以适当方式通常经由BIOS类型的调用将它传递 给可信设备24)。可信设备24接收询问并基于测量的一个或多个完整性 度量来创建适当的响应——这可具有证书和签名。这提供了充足的信息 以允许用户-睑证。
由PCR保存的值可用作为可信平台状态的指示。不同的PCR可以分 配有特定目的(这例如是在可信计算组规范中完成的)。可要求可信设 备为一些或所有的其PCR提供值(实际中是这些值的摘要——通过 TPM—Quote命令)并签名这些值。如上所述,数据(通常是密钥或口令) 可以针对一些或所有PCR的值的摘要被密封(通过TPM一Seal命令)到不 透明斑点中。这将确保如果平台在PCR所表示的(可信)状态下,则只 使用所密封的数据。对应的TPM一Unseal命令对PCR的当前值执行相同的 摘要。如果新的摘要与不透明斑点中的摘要不相同,那么用户不能通过 TPM一Unseal命令恢复数据。如果导出了PCR值的任何测量与已经变化的 平台上的软件有关,则对应的PCR将具有不同的值——传统可信平台将 因此不能恢复密封的数据。
现在将参考在有所修改的情况下应用如上所述的可信计算平台结 构的实施例来描述本发明的各方面。提供等效功能和可信属性的新的或 更新软件的方法将被首先描述,连同还描述了用于允许可信计算平台指 明其软件功能并验证其可信状态而不需要显露它所使用的特定软件的 机制。示例方法被描述为用于展示在用在功能上和信任上等效的软件来替换所述软件之前和之后的PCR值可以-波示出为等效,并且使用该方法 来解决诸如上面对于软件状态密封数据中所述的问题。
注意到,在现有可信计算平台布置中,实体实际上将它们在可信计 算平台中的置信度以与在平台中安装的软件有关的签名声明为基础。发 明人已经理解,可信平台可以提供软件要被信任的声明验证证据,而不 是提供实际的软件测量。这具有若干优点。如果可信设备不再保存软件 测量的值,则在物理上可信设备不可能报告软件测量的值。如果验证处 理包括两个软件测量的值的信任等效性的证据(并且声明由可信测量实 体做出),则在以规定方式改变软件后,可信设备将包含可用来(如下 在示例布置中所述的)重新能够访问密封纯文本数据的信息。
积极结果得之于根据担保平台中的软件的声明所进行的工作,而不 是平台中的实际软件。如果担保现有软件的一方准备担保替换软件就像 现有软件一样可接受,则为此目的的适当声明的用途可如此被使用使 得平台可以重新能够在安装这种替换软件之后访问密封的纯文本数据。 在实践中,可信平台的拥有者必须选择他期望为他的平台担保的各方。 拥有者可以选择任何方或者他们的集合,只要该 一 或多方对于与平台交
互的那些人具有可信性。拥有者可以改变各方或他们的集合,只要那些 方愿意确认彼此为可信对等体。这使商业公司和非营利组织都担保相同 的可信平台。
图5说明了根据本发明的实施例进行测量并将它们记录在TPM507 中的过程中的显著步骤。在步骤5.1,为测量的信任根(RTM)或测量 代理501做出数字对象502的摘 要。在步骤5.2, RTM或测量代理501读取 与数字对象502关联的验证声明503。在步骤5.3, RTM或测量代理501写 出描述摘要对象502及其验证声明503的日志504。在步骤5.4, RTM或测 量代理501,验证所述验证声明503并将任何故障记录在与PCR506关联的 标记505中。在步骤5.5, RTM或测量代理501将验证处理503的明确指示 记录在PCR506中。
图6说明完整性度量的两个集合601, 602 (第二个表示与第一个表 示的软件状态信任等效的软件状态),加上第三个集合603,其是在本 发明的该实施例中所使用的第二集合602的版本。完整性度量的第 一集 合601由三个完整性度量组成,标记为A、 B和C。完整性度量的第二集 合602也由三个完整性度量组成,标记为A、 B1和C。第一集合601中的度量A和C与第二集合602中的度量A和C相同。如果由完整性度量B1表示 的软件与完整性度量B表示的软件信任等效,则第二集合602与第一集合 601信任等效。完整性度量的第三集合603说明了完整性度量A、 B、 Bl、 C,根据本发明的本实施例,它们必须被记录以便允许由软件A、 Bl、 C 生成的平台状态被识别为与由软件A、 B、 C生成的平台状态信任等效。 如果一方想要担保特定的程序,则它产生签名的声明。如果该程序 不是升级或替换,则该方创建新的声明,或者如果该程序是升级或替换, 则在声明列表中创建下一个条目。声明可描述一个或多个程序。如果声 明描述一个以上的程序,则暗示了所有程序被签名方当作为对期望的任 务功能相同且同样值得信任。
在图7中示出声明的示例形式。声明701具有结构[programDigestsN, statementID—N, prevStatementDigestN, nextPubKeyN]和具有辅助结构 732 [pubKeyN] (734)和[signatureValueN] (736)。字段pubKey和声明ID足 以明确识别在声明中暗示的验证处理。下面将描述声明701的元素。 oprogramDigests710是由声明担保的程序摘要。这不需要是单个程序 的摘要——它可能由包含由声明担保的一个以上程序的摘要的结 构组成。它甚至可能是包含由声明担保的 一个以上程序的摘要的结 构摘要。清楚地,在这样的实施方式中,实际摘要还必须对于平台 可用。如下所述,可能对于多个程序的用户存在保密性优点,称为 programDigests。
o statementlD720是一个标签,使得能够识别声明的目的的描述。该 描述可包括程序的描述、程序的预期使用、程序的效果、关于程序 的另一信息、和随机数或其它数。statementID用作为从用相同密钥 签名的任何其它数据中区分声明。
o 如果程序不是另 一程序的升级或替换,则prevStatementDigest730是 NULL,并且PubKey是应当用于验证signatureValue的密钥。但是, 如果程序是现有程序的升级或替换,则prevStatementDigest是该先 前声明的摘要,并且来自该先前声明的nextPubKey740是应当用于 -验证signature Value的密钥。换句话说, 一 个声明中的nextPubKey是 必须在下一声明中使用的PubKey。
可以看出,nextPubKey和它们之间的prevStatement允许有关的声明 形成向后和向前链接的列表——这样的连接由图8说明。使用与pubKeyO734.0, nextPubKeyO 740.0,認tPubKeyl 740.1,....認tPubKeyN 740.N对 应的私有密钥,借助签名值来向前链接这样的声明801、 802和803的列 表。4昔助prevStatementDigestl 730.1, ..... prevStatementDigestN 730.N来 向后链接列表。通过包括programDigests 710.0 710.1 710.N的数据借助签 名值736.0 736.1 736.N来将列表的每个成员链接到一个或多个程序。
在图8所示的 一 种方法中,声明的列表开始于跟有[statementID_0
720.0, programDigestsO 710.0, NULL 730.0, nextPubKeyO 740.0]和 [signatureValueO 736.0]的pubKey0 734.0,其是用与pubKeyO 734.O对应的 私有密钥签名[statementID_0 720.0, programDigestsO 710.0, NULL
730.1, nextPubKeyO 740.0]的结果。列表以[statementID—1 720.1, programDigestsl 710.1, prevStatementDigestl 730.1, nextPubKeyl 740.1] 和[signatureValue 1 736.1]继续,其是用与nextPubKeyO 740.O对应的私有 密 钥 签名 [statementID—1 720.1, programDigestsl 710.1, prevStatementDigestl 730.1, nextPubKeyl 740.1]的结果。列表以相同的方 式继续。
图8中的箭头说明了 nextPubKeyO 740.0与pubKey 1 734.1相同, nextPubKeyl 740.1与pubKeyN 734.N相同,依此类推。
发布声明方应当理解,列表中的声明共同具有功能等效性和信任的 普通证据,但是在其它方面,声明可以不同。例如,与statementN关联 的程序不必须得是与statementM关联的程序,因此programDigestsN不必 与programDigestsM相同。这意味着,在列表的开始处与声明关联的程序 可以与在列表的任何中间点或列表的结束处的声明关联的程序不同(或 相同)。类似地,列表中的PubKeyN可以或可以不与nextPubKeyN相同。 因此,用于验证signatureValueO的密钥可以或可以不与用于验证 signatureValueN的密钥相同,无论N是列表中的中间声明或列表中的最 后声明。因此, 一方可以相隔一定距离改变它的签名密钥(根据推荐的 安全措施)或可以将信任交接给具有不同签名密钥的另 一方。
在该方法的修改中,PubKey和nextPubKey可以是密钥的摘要或包含 一个或多个密钥的结构的摘要。清楚地,在这样的实施方式中,实际的 公共密钥必须还对于平台可用。在这样的情况下,与该结构中的任何公 共密钥摘要对应的任何私有密钥可以用于签名声明,并且多个方可以同 时担保平台值得信任。应当注意,对于给定的软件类型,需要一致地使用该类型的声明或
根本不^f吏用它们(并相反例如使用传统TCG方法)。如果声明将要用于
一种软件类型,则要由平台担保的软件类型的第一实例需要具有声明。
如所述的,从传统TCG方法切换到具有声明的升级不是可行的方法。
现在将描述当被要求识别其软件时允许可信平台实现私有保密性 测量的机制。这要求发出声明的一方实际上发出两个声明,如上面描述 的一个以及省略了programDigests字段的类似辅助声明。图9说明了辅助 声明910,它由字段pubKey 734, StatementID 720, prevStatementDigest 730,豐tPubKey 740, signature Value 736组成并缺少programDigests字段 710。这些辅助声明而不是先前描述的主声明可能被返回到从可信设备 接收完整性度量的询问器。这些辅助声明能够防止识别安装在平台中的 实际程序。如果主声明中的programDigests字段仅仅描述了 一个程序, 则它当然识别该程序由平台4吏用——因此如果辅助声明应当在询问响 应中使用时,就存在清楚的保密性优点。即使programDigests字段描述 了一些程序,它可被认为显露太多有关平台的信息,并且如果要求私有 性,则辅助声明应当在询问响应中使用。只有当programDigests字段描 述许多程序时,询问响应中的主声明的使用才与私有性明显无关。用于 验证主声明的公共密钥必须还用于验证辅助声明,并且相同的 statementID应当在两个声明中出现。这些约束对于提供主声明和辅助声 明之间的可验证连接是必须的。自然地,主声明的签名值不同于辅助声 明的签名值。
现在描述与声明关联的新的或替代软件的验证,这将会是验证处理 的记录。该处理的本质是用 一个或多个扩展操作来代替单个扩展操作 (对于平台的一个方面),每个扩展操作描述与平台的这方面有关的声 明。
对于要执行和记录的验证,随后要求了可信测量代理执行声明验 证处理,并且可信验证实体必须^r证程序、必须验证声明、且必须马t证 声明的列表充分链接。测量实体被信任是因为与实体有关的证明或由可 信测量代理进行的实体测量。
为了验证程序,测量实体创建程序的摘要并将该摘要与声明中(来 自字段programDigests)的信息比较。测量实体必须记录该处理是否成 功的指示。
一 个实施方式是在可信设备中记录为真或假的verifiedProgram标记。如果程序与链接列表关联,则该比较应当只使用 列表中最后的声明来完成。(列表中先前的声明只提供程序演化的历史 和程序的证明)。
为了创建声明的可验证记录,测量实体必须在可信设备中记录至少 声明的签名是否被成功验证。 一个实施方式是在可信设备中记录设置为 真或,i的verifiedStatement才示i己。
为了创建声明的验证的可审计记录,测量代理必须记录用于执行验 证的技术。 一个实施方式是在可信设备中记录用于验证声明上的签名的 公共密钥(pubKey或nextPubKey)。如果可行,测量代理还4全证用于-验 证声明上的签名的该公共密钥是现存的(未被撤销),但这可能超过了 大多数测量代理的能力。如果还可能确定此,则测量实体总是在公共密 钥不是现存的时将verifiedStatement标记设置为假。
如果与公共密钥对应的私有密钥只用于签名单个类型的声明,则不 要求与签名的意图有关的声明。否则,指明签名属于特定声明的信息必 须用7>共密钥来记录。 一个实施方式是在可信i殳备中记录StatementID。
为了区分单个声明或列表的开始, 一个实施方式是如果声明不是用 另 一个声明的nextPubKey验证的或者如果声明的prevStatementDigest不 是前一个声明的摘要值,则用标记startStatement--TRUE来对声明的验 证加标签,否则用标记startStatement-二FALSE来对声明的验证加标签。
链接列表的任何成员必须向前和向后纟ia全证。如果4连接测试通过,
则声明用标记verifiedList ==TRUE来加标签。否则,声明用标记 verifiedList 二^FALSE来加标签。
为了创建被验证声明的列表的完整记录,测量实体必须在可信设备 中记录列表中所有声明的实质特性,并且列表中的所有声明是否通过了 它们的验证测试。优选实施方式是在可信设备中记录列表中的所有声 明,同时在可信设备中单独记录列表中每个声明上的验证测试结果。
按照该方法,在访问声明之后,测量实体可以在可信设备中记录至 少数据结构STATEMENT—VERIFICATION,其至少包含(1)用于验证 声明的7>共密钥,(2) StatementID,如果存在的话。对于每个PCR,可 信设备维护upgradesPermitted标记,该标记在PCR初始化时为真但是每 当平台遇到与该PCR关联的且verifiedProgram==FALSE, 或 verifiedStatement==FALSE,或verifiedList二-FALSE的声明时被复位为假。如果upgradesPermitted是假,则关联的PCR的信息内容不可靠。如 果叩gradesPermitted是假,则可信设备(TPM)必须拒绝执行在校正该 PCR值时预测的安全操作,比如对该PCR的密封数据(例如,创建TCG 的"digestAtCreation "参数)、开封数据(例如,检查TCG的 "digestAtRelease,,参数)。如果叩gradesPermitted是假,则TPM可拒绝 报告(例如使用TPM—quote )该PCM值,或可替换地可报告 upgradesPermitted的值以及PCR值。
描述一种用于用声明的记录或声明列表的记录来代替传统TCG完 整性度量的算法
o 测量实体(在加载程序之前)初始地通过创建程序的摘要而遵循通 常的TCG过程。测量实体接着确定一个或多个声明是否与该程序关 联。
o 如果没有声明与程序关联,则测量实体通过利用TPVLExtend将程 序的摘要扩展到可信设备而遵循现有的TCG过程。
o 如杲声明与程序关联,则测量实体必须将声明解析成单个的声明和 声明链。当单个声明#皮识另'J时,适当的标记和 STATEMENT—VERIFICATION必须记录在可信设备中( <旦注意到, 适当的verifiedList没有被记录并且甚至不需要被计算)。当链的开 始或中间链接被识别时,适当的STATEMENT—VERIFICATION和标 记记录在可信设备中(但注意到,适当的verifiedProgram没有^L记 录并且甚至不需要被计算)。当链的结束被识别时,适当的 STATEMENT—VERIFICATION结构和标记记录在可信设备中。在解 析声明的同时使用的一些算法是(a )总是计算venfiedStatement; (b)如果存在先前和/或随后的声明则计算verifiedList; (c)如果 (不存在随后声明)或如果(随后声明具有startStatement二-TRUE) 则 计 算 verifiedProgram ; ( d ) 总 是 i己 录 STATEMENT—VERIFICATION; ( e )每当verifiedProgram==FALSE, 或verifiedStatement--FALSE,或verifiedList二二FALSE时,复位适当 的upgradesPermitted才示"i己。
上面描述的验证处理捕获了证实升级或替换软件与早先软件信任 等效而所需要的信息。与报告询问时的软件状态关联的保密顾虑因此可 通过使用描述许多程序的声明或通过使用辅助声明而改进。要求进一步的步骤来解决访问对于早先平台状态以及早先软件密封的不透明斑,g 中的数据的问题。如下将所指出的,将可能重新填封这些不透明斑点到 与新软件状态关联的PCR值。这要求多个动作,有效地相当于从密封了
不透明斑点的早先PCR值合法地导出之后的PCR值的证据。要求四种类 型的动作证明可从另一个PCR值导出一个PCR值;证明一个完整性度 量是另一个完整性度量的替换(证明两个完整性度量被链接);证明由 测量的摘要组成的PCR值的等效性;和证明由多个PCR值构成的复合 PCR值的等效性。每个动作建立在先前的动作之上,并且在下面依次在 示例实施例中描述每个动作,提出补充现有可信计算组系统的新功能。 在用第二复合PCR值替换不透明密封斑点中的第 一复合PCR值的示例实 施例中描述这些功能的使用,第二复合PCR值与第一复合PCR值信任等 效。
应当注意,在可信计算组技术中,PCR值的集合被描述为 TPM—COMPOSITE—HASH值。可信计算组将TPM—COMPOSITE—HASH 值定义为TPM—PCR—COMPOSITE结构的摘要,该结构被定义为
typedef struct tdTPM—PCR—COMPOSITE {
TPM—PCR一SELECTION select;
UINT32 valueSize; TPM—PCR VALUE pcrValue[];
} TPM—PCR—COMPOSITE; 这意味着,TPM—PCR—COMPOSITE结构(实质上)是跟有四个字 节值的、跟有PCR值链接数的TPM—PCR—SELECTION 。 TPM—COMPOSITE一HASH值是在散列算法中串行散列那些结构的结果。 当描述完整性度量和PCR值时,随后在该说明书中使用特定命名 法。大写字母表示完整性度量值并且跟有代字符号" "的大写字母表 示PCR值,其中大写字母是表示要扩展到PCR中的最近完整性度量值。 因此,PCR状态A 意思是要扩展到PCR中的最近完整性度量具有值A。 用完整性度量值B扩展A 的PCR值的操作被写成X(A ,B),得出PCR值 B 。必须理解,由[字母] 表示的PCR值是多值的。实际的PCR值取决于 PCR的先前历史。
贯穿该示例实施例使用的方法用于管理程序以引导可信设备 (TPM)通过一系列步骤,每个步骤创建作为已经验证了可信设备的断言证据的数据。(存在可替换的方式来通过签名声明的可信设备实现涉 及检查的相同目标,但是所描述的方法被选择为与现有可信计算组方法 相一致。)可信设备可以随后识别出它创建了这种证据。这些识别方法 对于本领域技术人员是已知的,并且在现有的可信计算组技术中使用。
该识别使TPM能够相信当数据被重新加载到TPM时在数据中宣称的断
在一个实施方式中,可信设备要求证明两个PCR值集合是信任等效 的新能力。随后的原型可信设备命令集合说明了概念
TPM—upgrade—extend(A ,B)产生一个PCR值可以从另 一个PCR值导 出的证据。该命令产生输出数据[Uextend, A~, B ,B]作为PCR值B 可以从PCR值A 导出并且最近扩展的完整性度量具有值B的证据。 为了产生该证据,TPM加载具有值A 的临时PCR并使用完整性度量 B来扩展它,产生了PCR值B 。可信设备用串"Uextend"给输出数 据加标签以示出证据的类型。在可信设备已经输出了数据之后,可 丟弃临时PCR。
TPM—upgrade—co隐t([Uextend, A~, B~, B], [Uextend, B ,C ,C])产 生 一 个PCR值可以从另 一个PCR值导出的证据。它产生输出数据 [Uextend, A~, O, C]作为PCR值C 可以从PCR值A 产生并且最近 扩展的完整性度量具有值C的证据。为了产生该证据,TPM被加载 了数据结构[Uextend, A ,B~, B]和[Uextend, B ,C~, C]并-险证(1 ) 它创建这两个结构;(2 )[Uextend, A ,B~, B]和[Uextend, B ,C ,C] 都包含串Uextend; (3) [Uextend, A~, B~, B]中B的值与[Uextend, B ,C~, C]中B的值相同。可信设备用串"Uextend"给输出数据加 标签以示出证据的类型。
TPM—upgrade—link(SA, SB)产生一个完整性度量与另 一个完整性度 量信任等效的证据。它产生输出数据[Ulinked, A, B]作为完整性度量 值B与完整性度量值A信任等效的证据。为了产生该证据,TPM被 加载了声明SA和SB,其中SA描述完整性度量A (pubKey-A和 statementID-A )并且SB描述完整性度量B ( pubKey-B和 statementID-B ) 。 TPM验证SA向前链接到SB并且SB向后链接到SA, 并产生输出数据[Ulinked, A,B]。串"Ulinked"指明证据的类型。
TPM—upgrade—forkRoot(Uextend, A ,B~, B)创建从单个完整性度量序列分叉成两个信任等效序列的证据,并产生输出数据[Ufork, A , B ,B,B ,B]。串"Ufork"指明证据的类型。Ufork数据结构的规范 表示是[Ufork, A~, B ,B, C ,C],指明两个PCR状态[B ,B] [C~, C] 是信任等效的并且从相同的PCR状态A~导出。 TPM—叩grade—forkRoot创建在分叉点处状态的证据,并产生数据结 构[Ufork, A~, B ,B, B~, B],意思是两个等同的PCR状态[B ,B]和 [B ,B]是信任等效的,这是显然的。为了产生该证据,TPM被加载 了数据结构[Uextend, A~, B~, B]。该TPM验证(1 )它创建了该结 构;并且(2 )它包含串Uextend。
TPM一upgmde—forkLink([Ufork, A ,B ,B, C ,C], [Ulinked, E, F], [branch])使TPM修改有两个信任等效PCR值[B ,B]和[C ,C]的集 合中的一个[branch] PCR值,但是要求完整性度量F与完整性度量E 信任等效的证据。如果[bmnch]参数是O且B-二E,则该命令用F到[F , F]扩展了第一PCR值[B ,B],但是第二PCR值[C ,C]不变。因此, 该命令产生数据[Ufork, A~, F~, F, C ,C]。如果[branch]参数是l且 C==E,则该命令用F到[F ,F]扩展了第二PCR值[C ,C],但是第一 PCR值[B ,B]不变。因此,该命令产生数据[Ufork, A~, B ,B, F ,F]。 TPM被加载了数据结构[Ufork, A~, B ,B, C ,C], [Ulinked, E, F], [branch]。该TPM总是验证(1 )它创建了第一和第二结构;(2) 第一结构包含串Ufork; ( 3 )第二结构包含串Ulinked。如前面那样, 输出数据中的串"Ufork"是证据的类型。
TPM—upgrade—forkExtend([Ufork, A ,B~, B, C ,C], [D])使TPM修 改两个信任等效PCR值[B ,B]和[C ,C]的分支。该命令产生输出数 据[Ufork, A~, X(B ,D), D, X(C ,D), D]。 TPM被加载了数据结构 [Ufork, A~, B~, B, C ,C]和完整性度量D。该TPM验证(1 )它创 建了第一结构;并且(2)第一结构包含串Ufork。如前面那样,输 出数据中的串"Ufork"是证据的类型。
TPM—upgrade—forkPCR([Ufork, A~, B~, B, C ,C], [PCR陽mdex])创建 PCR值B 和C 对于特定PCR是信任等效的证据。TPM被加载了数据 结构[Ufork, A ,B~, B, C~, C]和[PCR-index]。该TPM验证(1 )它 创建了第一结构;(2)第一结构包含串Ufork; (3) A 是具有索 《1 [PCR-index]的PCR的初始化值。该TPM产生输出数据[uPCR,PCR-index, B~, C ]以示出PCR状态B 和C 对于具有索引PCR-index 的PCR是信任等效的值。输出数据中的串"uPCR"是证据的类型。
TPM—upgrade一forkHash([uPCR, PCR國index, A ,B~], [PCR-index, C ],[...],…)创建两个复合PCR摘要[compHash]和[compHash&]对 于在列表[PCR-indexList]中指示的PCR是信任等效的证据[Uhash, compHash, compHash&, PCR画indexList] 。 TPM^f皮力。载了形式为 [uPCR, PCR-index, A~, B ]或[PCR-index, C ]的多个数据结构。该 TPM验证(1 )它创建了形式为[uPCR, PCR-index, A~, B ]的任何 数据结构;(2)这样的数据结构包含串uPCR。在该命令中,形式 为[uPCR, PCR-index, A ,B ]的数据结构指明具有索引PCR-mdex 的PCR必须由复合散列compHash中的PCR值A~和复合散列 compHash&中的PCR值B 来表示。形式为[PCR-index, C~]的数据结 构指明具有索引PCR-index的PCR必须由复合散列compHash和复合 散列compHash&中的PCR值C 来表示。TPM以PCR-indexList中反映 的顺序从输入数据中提取相关的PCR值,并将它们用于创建复合散 列compHash和compHash&。输出数据中的串Uhash是证据的类型。
TPM—upgrade—seal([sealedBlob], [Uhash, compHash, compHash&, PCR-indexList]) 用复合散歹l!值compHash&替换密封斑点 [sealedBlob]中的复合散列值compHash。 TPM被加载了密封斑点 [sealedBlob]和[Uhash, compHash, compHash&, PCR隱indexList]。 该 TPM验证它创建了这两个结构并且第二结构包含串Uhash 。如果
合散列值是compHash,则该TPM用compHash&来替换compHash, 并且输出修改的密封斑点。
现在纯粹作为 一 个例子来描述这些新功能的 一 个用途。 图10说明了两个信任等效的完整性度量序列1001、 1002。这两个序 列都是同 一完整性度量序列A0 B0 CO D0 E0的升级。第 一序列1001已经 不同于第二序列1002被升级。第一完整性度量序列1001是A0 Bl CO Dl E0。第二完整性度量序列1002是A0B0C1 D2E0。字母之后的数字指明 升级的演变完整性度量AO不是升级;完整性度量B1是从B0的升级; 完整性度量C1是从C0的升级;完整性度量D1是从D0的升级;完整性度 量D2是从D1的升级;完整性度量E0不是升级。这些关系在图1003和1004中说明,其中每个连续列是可信平台不同方面的完整性度量,并且每列 说明了特定完整性度量的演变。根据本发明的该实施例加载到PCR中的
完整性度量的实际序列在图1005和1006中说明。与第 一序列1001等效的 完整性度量的实际序列是A0B0B1 C0D0D1 E0 1005。与第二序列1002 等效的完整性度量的实际序列是AO BO CO CI DO Dl D2 EO 1006。所得 的完整性度量序列在图1007和1008中说明。与第 一序列1001等效的PCR 值的实际序列是1007 R~ A0~ B0 B1 ~ C0~ D0~ D1 ~ E0~,其中R 是该特 定PCR的复位状态。与第二序列1002等效的PCR值的实际序列是1008 R A0 B0 C0~ Cl~ D0~ Dl~ D2~ EO 。要求向TPM证明第一PCR序歹'J 1007 与第二PCR序列1008是信任等效的。使用上面功能的一个实施方式是
1. TPM—upgrade—extend(R ,AO) => [Uextend, R~, A0 ,AO]
2. TPM—upgrade—extend(AO ,BO) =〉 [Uextend, R ,B0 ,BO]
3. TPM upgrade—concat([Uextend, R~, A0 ,AO], [Uextend, A0~, B0~
BO])
4. TPM—upgrade—forkRoot(Uextend, R ,B0 ,BO) =〉 [Ufork, R ,B0 BO, B0~, BO]
5. TPM—upgmde一link(BO, Bl) [Ulinked, BO, Bl]
6. TPM—upgmde—forkLink([Ufork, R ,B0 ,BO, B0 ,BO], [Ulinked, BO, Bl], [O]) => [Ufork, R~, Bl ,Bl, B0~, BO]
7. TPM—upgrade—forkExtend([Ufork, R~, B卜,Bl, B0 ,BO], [CO])=〉 [Ufork, A~, C0~, CO, C0 ,CO]
8. TPM—upgrade一link(CO, CI) =〉 [Ulmked, CO, CI]
9. TPM—upgrade一forkLink([Ufork, R~, C0 ,CO, C0 ,CO], [Ulinked, CO, CI], [l]) => [Ufork, R~, C0 ,CO, C卜,CI]
10. TPM—upgrade—forkExtend([Ufork, R~, C0~, CO, Cl~, CI], [DO]) =〉[Ufork, R~, D0 ,DO, D0 ,DO]
11. TPM—upgrade一forkExtend([Ufork, R ,D0 ,DO, D(K DO], [Dl]) =〉[Ufork, R ,D卜,Dl, Dl~, Dl]
12. TPM—upgrade—link(D 1, D2) => [Ulinked, D1, D2]
13. TPM—upgrade一forkLink([Ufork, R~, Dl~, Dl, Dl ,Dl], [Ulinked, Dl, D2], [l]) =〉 [Ufork, R~, D卜,Dl, D2 ,D2]14. TPM—upgrade—forkExtend([Ufork, R~, D卜,Dl, D2 ,D2], [EO]) =〉[Ufork, R~, E0~, EO, E0 ,EO]
15. TPM—upgrade—forkPCR([Ufork, R~, E0~, EO, E0 ,EO], P)=> [uPCR, P, E0~, E0~]
结构[uPCR, P, E0~, E0 ]可接着与TPM_upgrade—forkHash —起用于 创建信任等效的复合PCR摘要值。这些值可以接着在TPM—upgrade—seal 中用于升级密封斑点中的复合散列值。
优选地,生成复合PCR的现有可信计算组方法被改变为将每个后续 PCR值扩展到中间复合PCR值中。那么,不要求TPM_upgrade_forkHash。
在一个补充方法中,进一步新的可信设备能力创建并签名了包含由 这些新能力产生的数据斑点的内容的凭证。这样的凭证可以连同当前平 台状态的证据(比如由TPM—Quote创建的)净皮提供给第三方,以作为 平台的新状态与前一状态同样值得信任的证据。这样的凭证必须包括标 签,比如digestPairData, compositePairData等等,以指明凭证的意思。 应当根据可信计算组中的普通实施,使用TPM的证明身份之一来签名 这样的凭证,以保护保密性。
该方法作为整体允许之后的软件状态(如通过关耳关的PCR值证明 的)与之前的软件状态相关联。因此,尽管软件状态变化也可访问密封
的斑点是可能的,因为新的PCR值可以被示出为可从旧的PCR值导出 并且新的 TPM—COMPOSITE—HASH 值可以替换旧的 TPM—COMPOSITE—HASH值。适当的方法是^U又作为在可信平台上升 级或替换软件的处理中的一个步骤来更新所有这样的"密封斑点"。
如果平台是这样的,使得它不具有足够的资源来执行声明验证处 理,可信设备可具有执行那些验证处理的能力。因此,新的可信设备能 力可以由测量实体用来验证声明上的签名,验证声明的链接列表等。可 信设备甚至可以作为便笺式存储器来存储验证处理的中间结果,因此, 一个验证处理的结果可由将来的验证处理使用而不需要存储在可信设 备的外侧。已经在可信计算组技术中使用了类似的技术来计算摘要并将 该摘要扩展到PCR中。
迄今,已经假设了信任等效性是互逆的例如由完整性度量AO表 示的软件与由完整性度量Al表示的软件同样值得信任。可能不总是这 样的情况。升级软件的原因可能是校正或提高软件的值得信任度,例如在该情况下,由完整性度量Al表示的软件可能代替由完整性度量AO 表示的软件而使用,而完整性度量AO表示的软件可能不能代替由完整 性度量Al表示的软件而使用。因此,将额外信息添加到声明701、指 明值得信任度是否是互逆的是必要的。这必须作为要签名以创建签名值 736的数据的一部分而被包括,并且在新的TPM功能中被反映,使得(当 需要时)一个分支中的完整性度量总是与另一个分支中的完整性度量相 同,或者向后链接到其它分支中的度量。 在一个实施方式中
reciprocalFlag字段被插入到声明701中,并且如果前一(向前链接) 度量是当前(向后链接)度量的可接受替换,则被设置为真,否则 为假。
结构[Ulinked, A, B]被修改为变成[Ulinked, A, B, reciprocalLink]并 且意思是如果reciprocalLink为真,则A可以由B替换而B只能由 A替换。
命令TPM—upgrade—lmk(SA, SB)一皮修改为产生reciprocalLink标记并 且如果[SB的reciprocalFlag为假],则将reciprocalLink设置为假。
结构[Ufork, A~, B ,B, C~, C]4皮修改为变成[Uforkl, A~, B ,B, C , C, reciprocal, reciprocal 1] 。 reciproca10 牙口 redprocalO 者卩由 TPM—upgrade—forkRoot设置为真。如果在TPM—upgrade Jink操作 期间曾扩展第一完整性集合[B ,B]并且其reciprocalLink为假,则 reciproca10被设置为假。类似地,如果在TPM—upgrade—link操作期 间曾扩展第二完整性集合[C ,C]并且其reciprocalLink为假,则 reciprocal 1被设置为假。
如果reciproca10在4俞入到TPM—upgrade—forkLink的Ufork 1数据中 为假,则在[branch]-爿时该命令必须失败。类似地,如果reciprocal 1 在输入到TPM—upgrade_forkLink的Ufork 1数据中为假,则在 [branch]==0时该命令必须失败。
命令TPM—upgrade—forkPCR被修改为才企查输入Ufork结构中的标记 reciproca10和reciprocall。如果那些标记指明一个PCR值可以用于 开封用其它PCR值密封的数据,但是反之不亦然,TPM排序修改 的uPCR结构[uPCR, PCR-index, X ,Y~]中的PCR值,使得对于X~ 密封的数据可用Y 开封。在实施例中,该发明涉及记录TPM中的声明的链接列表。我们现
整的链接^表的记录被期望来明确地记录平台状态^完整世i。、不幸的 是,记录完整列表将增加记录完整性度量所需的时间,并且增加验证声 明所需要的存储,这二者或其一可能是不期望的。因此,所期望的是从 链接列表中移除较旧的声明,并且在限制内将链接列表减小到单个声明
(最近链接的声明)。
任意数量的声明(包括仅仅一个声明)可以记录在TPM中,只要 它们是以连续顺序记录的相同链接列表的相邻成员。由为测量的信任根 或测量代理执行的记录处理容易被改编成列表的长度——RTM/MA仅 仅穿过该列表,无论其长度如何,如前所述,在TPM中记录验证处理 的结果并在TPM中记录-验证处理。仍然要向TPM证明缩短的链接列表 与原始(更长的)链接列表是信任等效的。该证据取决于缩短列表的开 始声明是更长列表的一部分的证据。在一个实施方式中,这涉及(先前 描述的)[Ulmked, Slong, Sstartshort]结构,其中Sstartshort是缩短列表 的开始声明并且Slong是更长列表中Sstartshort之前的某个声明。该 Ulinked结构是声明Slong和Sstartshort是同 一链接列表中的声明并且 Slong出现在Sstartshort之前的列表中的某个位置的证据。除非声明 Slong与声明Sstartshort在链接列表中相邻,则生成该Ulinked结构要求 进一步新的命令(如下所述)来合并两个Ulinked结构为单个Ulinked 结构。给定了证据[Ulinked, Slong, Sstartshort]和任何任意的Ufork结构 [Ufork, A~, B ,B, C~, C],由此可见,另外的合法Ufork结构可以通过 扩展具有Slong的B 和扩展具有Sstartshort的C ,产生数据结构[Ufork, A~, Slong~, Slong, Sstartshort ,S start short]来导出。这要求进一步新的命 令(如下所述)。如果Slong是链接列表的开始且Sstartshort是链接列 表的缩短片反本的开始,例如[Ufork, A~, Slong ,Slong, Sstartshort—, Sstartshort]是PCR(其最近记录的声明是第一列表的开始)对于另一 PCR
(其最近记录的声明是第一列表缩短版本的开始)信任等效的证据。可 接着和对ufork结构进行操作的任何命令一起来使用数据结构[Ufork, A~, Slong-, Slong, Sstartshort ,Sstartshort]。
在限制情况下,其中只有来自给定列表的单个声明被记录在TPM 中,由命令TPM—upgrade—forkLink提供的功能变得冗余。先前描述的新结构净皮修改为省略了声明值。在这样的情况下,Ufork结构[Ufork, A ,B~ B, C~, C]例如变成[Ufork, A~, B ,C~]。
在前面提到,可以要求进一步的新命令来将两个Ulinked结构组合 成单个Ulinked结构。该进 一 步新命令的 一 个例子是 TPM_upgrade—link—concat([Ulinked, A, B], [Ulinked, C, D])。这个命令产 生完整性度量D链接到完整性度量A的证据。该证据采用数据结构 [Ulinked, A, D]的形式。为了产生该证据,TPM被加载了声明([Ulinked, A, B]和[Ulinked, C, D〗)。TPM验证了这两个Ulinked结构是由TPM创 建的,并且验证了 B==C 。接着TPM创建输出结构[Ulinked, A, D〗。
在前面提到,可以要求进一步的新命令来扩展具有第一声明的第一 PCR值和扩展第二 PCR,第二 PCR与具有链接到第 一声明的第二声明 的第一 PCR信任等效。该进 一 步新命令的例子是 TPM—upgrade—forkLinkl([Ufork, A ,B~, B, O, C], [Ulinked, E, F], [branch]),其使TPM扩展具有声明E的[branch]PCR值和具有声明F的 另一 PCR值。TPM总是-睑证它在产生任何输出之前创建了 Ufork和 Ulinked结构。如果[branch]参数是0,则该命令扩展具有E到[E ,E]的 PCR值B 和具有F到[F 》F]的PCR值C 。因此该命令产生输出数据 [Ufork, A~, E ,E, F ,F]。如果[branch]参数是],则该命令扩展具有F 到[F ,F]的PCR值B 和具有E到[E-, E]的PCR值C~。因此该命令产生 输出数据[Ufork, A~, F ,F, E ,E]。
我们现在纯粹作为 一 个例子描述P CR的升级,其中只有链接列表的 单个声明被记录在TPM中。我们假设我们纟皮要求证明完整性度量序列 AOBO与完整性度量序列AOBl是信任等效的。该例子使用省略了如上 提到的声明字段的修改数据结构。 一个实施方式是
1. TPM—upgrade一extend(R ,AO) =〉 [Uextend, R ,A0~〗
2. TPM—upgrade一forkRoot(Uextend, R~, A0 )=> [Ufork, R~, A0~,
A0 ]
3. TPM—upgrade一link(BO, B1) => [Ulinked, B0, B1 ]
4. TPM—upgrade一forkLink([Ufork, R~, A0 ,A0 ],[Ulmked, B0, Bl],
) =>[Ufork, R ,B0 ,Bl~]
5. TPM—upgrade一forkPCR([Ufork, R ,B0 ,Bl~], P) => [uPCR, P, B0 ,BH结构[uPCR, P, B0~, Bl ]可接着与TPM—upgrade—forkHash —起用于 创建信任等效的复合PCR摘要值。这些值接着在TPM_upgrade—seal中 用来升级密封斑点中的复合散列值。
本发明的先前实施例将链接列表与仅仅一 个程序的执行关联。(尽 管与链接列表中多个声明有关的方面记录在TPM中,但每个链接列表 只有一个程序实际上在装载TPM的计算机上执行)。本发明的进一步 实施例涉及链接列表中相邻声明的各段的识别,伴随了在计算机中对于 段中的每个声明执行一个程序。这有益于使相同的实体能够担保在平台 上^l行的多个程序,同时保持了信任等效性。优选地,图7中说明的声 明结构被修改为包括区别链接列表各段的额外数据,即使一个段只包含 一个声明。例如,该数据可以是对于相同段的所有成员相同但是对于列 表中不同相邻段不同的值。该数据使列表能够被解析成段。
当RTM或测量代理穿过链接列表并验证声明并且将结果记录在 TPM中时,RTM或测量代理可识别链接列表的各段。段中的每个声明 可以用于实际上验证单独的程序,并且每个这种程序可由计算机执行。
这允许实体使用相同的链接列表来担保在一个平台上执行的多个 连续程序,而不用必须为每个个别的程序创建单独的链接列表。
这还允许实体用与单个程序信任等效的多个程序替换单个程序。为 了这样做,实体提供了包含与替换程序数量相同的相邻链接声明数 量的链接列表段,所述替换程序链接到与原始单个程序关联的列 表。平台中的RTM或测量代理验证段中的每个声明,验证与段中 每个声明对应的每个程序,将验证结果记录在TPM中,并执行由 那些声明验证的程序。先前参照本发明的实施例描述的技术可接着 用于引导TPM通过以下考验,用多个程序引导的平台信任等效于 用原始单个平台引导的平台。
如果链接列表的相同段中的多个声明用于担保在平台上执行的多 个程序,则该段中的声明可作为单独的链接列表的分支的枝干,每个分 支链接到段中单独的声明。如上所述,这样的分支可用于支持对于每个 链接列表的段仅执行 一 个程序,或对于每个链接列表的段执行多个程 序。因此,创建了链接的声明树。
在本发明的进一 步实施例中,如果程序不再在计算机平台上执行, 则实体可使用验证声明来担保平台的可信状态未改变。该方法允许信任等效的状态以包括比先前状态更少的程序。
在本发明的该实施例中,programDigests 710字段净皮允许包含NULL 指示符。RTM或测量代理应当决不会遇到包含NULL指示符的声明, 因为它暗指了没有关联的程序需要被执行、没有验证结果需要被记录在 TPM中、并且没有验证值需要^皮记录在TPM中。当TPM引导通过证明 两个PCR值是信任等效的处理时,使用包含NULL指示符的声明。如 果声明SA中的programDigests 710字段仅仅包含NULL标记,则命令 TPM—叩grade—link(SA, SB)被修改为产生输出数据[UHnked, NULL, B], 并且如果声明SB中的programDigests 710字段仅仅包含NULL标记,则 修改为产生输出数据[Ulinked, A, NULL]。 命令 TPM—upgrade—forkLink([Ufork, A~, B ,B, C ,C], [Ulinked, E, F], [bmnch])被如此修改使得如果E是NULL ,则应当用E更新的分支没有 被改变,并且如果F是NULL,则应当用F更新的分支没有被改变。
纯粹是举例,我们描述了引导TPM通过以下考验的一个方式,所 述考验即是在移除程序BO之前的计算机状态与移除程序BO之后的计算 机状态是信任等效的。假设平台引导并生成完整性度量[AO], [B0], [CO], [D0]的第一集合。接着平台重新引导并生成完整性度量[AO], [CO], [DO] 的第二集合。该第二集合与[AO], [Bl], [CO], [D0]相同,其中B1==NULL。 目的是要向TPM证明完整性度量[AO], [B0], [CO], [DO]的第一集合与完 整性度量[AO], [NULL],[CO], [DO]的第二集合是信任等效的。 一个实施方 式包括序列
1. TPM一upgrade一forkRoot(Uextend, R~, A0 ,AO) =〉 [Ufork, R , A0 ,AO, A0~, AO]
2. TPM—upgrade—link(BO, Bl) =〉 [Ulinked, B0, NULL]
3. TPM—upgrade—forkLink([Ufork, R~, A0 ,AO, A0~, AO], [Ulinked, BO, NULL], [O]) =〉 [Ufork, R~, B0~, BO, A0~, AO]
4. TPM—upgrade—forkExtend([Ufork, R ,B0~, BO, A0 ,AO], [CO])=> [Ufork, R ,X(B0 ,CO), CO, X(A0 ,CO), CO]
剩余的考验如前述那样进行。
本发明的实施例允许三种类型的升级
"substitute",其中一个程序用一个信任等效程序来替换
"more",其中 一个程序用 一个以上的信任等效程序来替换 "less",其中一个程序被消除但是结果状态仍认是信任等效的 在本发明的进一步实施例中,当允许密封数据的自动复合散列升级
时,创建密封数据的实体明确地声明了升级的类型,并且数椐结构记录 了示出已经发生的完整性度量升级的类型的指示符。这允许实体明确地 声明可引起密封数据中的复合散列值被自动升级的升级类型。例如如果 数据拥有者愿意接受程序的单个升级但没有增加或移除程序,或者不期 望自动接受任何升级,则这是有益的。
密封数据、开封数据并引导TPM通过证明一个复合散列值与另一 个复合散列值是信任等效的处理的处理与前面描述的相同,并有如下变 化
数据结构[Ufork, A~, B ,B, C ,C], [uPCR, PCR-index, A~, B ], [Uhash, compHash, compHash&, PCR-indexList]4皮改变为包4舌标i己
"substitute" 、 "more"和"less"。
命令TPM—upgrade—forkRoot被改变为将输出Ufork结构中的
"substitute" 、 "more"和"less"设置为假。
命令TPM—叩grade—forkLink被改变,使得
当该命令用一个信任等效声明替换声明时,它在输出Ufork结 构中将substitute设置为真;
当该命令用一个以上的信任等效声明替换声明时,它在输出 Ufork结构中设置more-真;
当该命令消除声明时,它在输出Ufork结构中设置less二真。
命令TPM_upgrade—forkPCR被改变为使得它将"substitute"、
"more"和"less"标记的状态从输入Ufork结构复制到输出uPCR 结构。
"substitute" 、"more"和"less"标记的状态复制到输出Uhash 结构。
通过添力口包含才示i己 "substitute " 、 " more " 和 "less ,, 的#f upgradeOptions字段来修改现有TCG结构TPM—STORED—DATA和 /或TPM—STORED—DATA12。
如果upgradeOptions=〉substitute为々支(缺省值),贝'J在程序的 1对1替换对复合散列的变化有贡献时,禁止自动更新TPM—STORED—DATA—UFLAGS中的复合散列值。
如果upgradeOptions=〉more为,i (缺省寸直),则在牙呈序的1 对多替换对复合散列的变化有贡献时,禁止自动更新 TPM—STORED—DATA—UFLAGS中的复合散列值。
如果upgradeOptions=〉less为假(缺省值),则在程序的消除 对复合散列的变化有贡献时,禁止自动更新 TPM—STORED—DATA—UFLAGS中的复合散列值。
现有TCG命令TPM—Seal和TPM—Unseal以及新的命令 TPM—upgrade—seal 一皮改变为4吏得它们对修改的 TPM—STORED—DATA结构进行操作。
TPM—Seal被改变为包括额外输入参数"substitute" 、 "more" 和"less "。这些额外输入参数的状态被复制到输出 TPM—STORED—DATA结构中具有相同名称的参数。
TPM—Unseal的操作未改变。
TPM—upgrade—seal ^皮改变为^f吏4寻 ■ 长口果upgradeOptions=〉substitute为J叚^旦Uhash=〉substitute为
真,则命令失败。 , 如果upgradeOptions=>more为々K旦Uhash=〉more为真,贝寸命
令失败。
, 如果upgradeOptions=>less为々M旦Uhash=>less (true)为真, 则命令失败。
在本发明的进一步实施例中,可选择创建密封数据的实体以强迫该 密封数据中复合散列值变化。例如,这允许实体明确地批准由升级的程 序来访问现存的密封数据。正密封和开封的数据的处理要求如下变化
通过添加包含标准TCG授权值的新upgradeAuth字段来修改现有的 TCG结构TPM—STORED—DATA和/或TPM—STORED—DATA12。
改变现有TCG命令TPM—Seal和TPM—Unseal使得它们对修改的 TPM—STORED—DATA进行操作。
改变现有TCG命令TPM—Seal为包括额外#T入参数 upgmdeAuth (通常是力口密的)。 TPM_Unseal的操作未改变。 使用标准 TCG 授权协议来授权新的 TPM 命令TPM—upgrade—SealForce([sealedBlob], compHash), 以证明拥有与 sealedBlob中的upgradeAuth相同的值。TPM打开现有的sealedBlob, 用值compHash来替换现有的复合散列值并输出修改的密封斑点。
用TCG技术当前不可能进行自动的复合散列升级并且一些数据拥 有者已经在认为它们不能自动升级的情况下使用密封的斑点。TCG已经 声明了无论何时可能都维持反向兼容性的意图。因此不期望的是,允许 使用现有命令和结构来自动升级密封斑点。优选的是,创建数据结构和 命令的新版本以实施为本发明的实施例描述的技术。当数据拥有者希望 允许自动升级时,他们应当使用这些新的结构和命令,并且当他们不期 望允许自动升级时,继续使用这些新的结构和命令。TCG还可能期望仅 就将来的TPM而反对现有的TPM—STORED—DATA结构以及TPM—Seal 和TPM—Unseal命令。因此被设计为允许自动升级的任何新结构和命令 还应当使自动升级能够被禁用。不信任一些或所有形式自动升级的数据 拥有者可能期望使用显式升级,其固有地要求新的数据结构。因此,任 何新的结构和命令还应当允许显式升级。因此,优选的
现有TPM—STORED—DATA和/或TPM—STORED—DATA 12结构没 有按如上所述一皮修改,但是通过向TPM—STORED—DATA和/或 TPM—STORED—DATA 12增加字,殳upgmdeOptions和upgradeAuth 字段来创建新的结构(称为TPM_STORED—DATA_UPGRADE)。
TPM—Seal和TPM—Unseal没有按如上所述被修改,但是通过向 TPM—Seal和TPM—Unseal增力口 upgradeOptions和upgradeAuth字段 来创建新的命令。该新的命令应当对 TPM—STORED—DATA—UPGRADE结构进4亍4喿作。
命令TPM—upgmde—seal 和 TPM—upgrade—SealForce([sealedBlob], compHash)应当只对TPM—STORED—DATA—UPGRADE结构进行才喿 作。
现在将描述完整性度量和PCR值的升级的一个例子。这发生在虛拟 平台从一个主机可信平台迁移到另 一个主机可信平台期间。这个例子假
设虛拟平台使用对PCR值密封的数据斑点,所述PCR值表示主机平台 的属性。本发明的实施例允许在这些密封数据斑点中记录的PCR值不在 它们当前能被开封的环境下升级。因此,使用本发明的实施例的优点在 于,虛拟平台可以^l定制为在迁移到不同主机平台之前或之后在不同主机平台上工作。
如果客户愿意信任虚拟平台,则客户应当信任管理主机平台的实 体。这是因为管理实体具有将虚拟平台移动到不同主机平台的能力。所 期望的是,管理实体应当采取行动来实例化同样值得信任的主机平台上 的虚拟平台。这是因为流氓主机平台能破坏它所装载的任何虛拟平台, 并且虚拟平台无法保护它自己免于流艰主机平台或流氓管理实体的破 坏。因此使用虛拟平台的客户会要求不知道主机平台——要么管理实体 实例化同样值得信任的主机平台上的虛拟平台,要么它不实例化。
第三方通过执行完整性询问并检查返回的PCR值、事件日志和证书 来发现平台的信任属性。揭露平台是否是虛拟的信息(以及主机平台的
性质,其可能本身是虛拟的)可以在虛拟平台的PCR中和/或可以在虚
拟平台的证书中。
将与安全服务协定有关的信息放入虚拟平台的PCR栈中对于主机 管理实体存在一个优点。该优点是,它使得在保持所协定的安全等级的
同时平衡计算负载更加容易。虛拟平台的用户可将他们的数据密封到指 明其协定的安全服务等级协定(SSLA)的PCR。 SSLA限制越少,可支 持用户的主机平台的范围就越大,主机实体提供服务并在主机平台之间 交换虛拟平台就更容易。如果虚拟平台的实际SSLA PCR值匹配密封数 据斑点中用户的SLA值,则用户可访问他的数据并消耗平台资源。否则, 用户不能访问并消耗。因此,如果主机管理实体将客户移动到不满足用 户的SSLA的主机,则用户的数据将自动被防止在不适当的环境中使用。 在SSLA中表示的因素包括
虛拟TPM的类别
IP地址
正常运行时间
地理位置
虛拟LAN的存在
虚拟LAN的类型
虛拟平台是否可克隆 平台算法灵活性
将与主机平台有关的信息放入虚拟平台的PCR栈中对于客户存在 一个缺点。这是因为虚拟平台的PCR栈会不同于专用(非虛拟)平台的
31PCR栈,因此配置为使用专用平台操作的软件将不能自然地在虚拟平台 上操作。
一些设计者可决定将与主机平台有关的信息放到所装载的虚拟平 台的证书中,另外的设计者决定将主机信息放到所装载的虚拟平台的上
的PCR中,而其它设计者可能选择两者。
如果设计者将主机信息放在所装载的虚拟平台的上的PCR中,并且 用户创建对那些PCR密封的数据斑点,则所期望的是,升级那些PCR 值,前提是目的地主机平台的属性至少与源主机平台的属性等效。这可 以通过使用前述技术来完成。前述的PCR和完整性度量升级技术尤其有 利,因为他们不要求由密封数据当前描述的环境存在。因此,虛拟平台 可迁移到新的主才几并且当它到达该新的主才几时一皮重新创建,或反之亦 然。
该优点对于主机管理实体的一个影响是,主机管理实体可给使用由 主机管理实体提供的虛拟平台的客户提供优选项,前提是它们同意与虚 拟所允许的平台实例化有关的信息出现在平台的PCR栈中。因此,如果 用户的密封数据斑点总是包括其值表示与所允许的平台实例化有关的 信息的PCR,则即使当平台是专用平台时,用户也可在所有平台上使用 相同的软件配置,并且当使用虚拟平台时利用优选项。自然地,该技术 还允许客户在不同类型的专用平台上使用他们的密封数据。
我们现在纯粹作为例子而描述了虛拟平台VP从一个主机可信平台 Pl迁移到另一个主机可信平台P2。在图11中示意性说明了所示平台的 元件。平台Pl可以是物理或虚拟平台。平台P2可以是物理或虛拟平台。 主机平台包含TPM(在Pl上称为TPM-P1并且在P2上称为TPM-P2 )。 虚拟平台VP包括主虚拟平台计算环境VPCE和虚拟可信平台模块
(VTPM)。其主才几平台的至少一个属性记录在VTPM的PCR中。该 VPCE包括由VTPM保护的数据斑点并且可被密封到取决于主机平台属 性的PCR。主机平台将VPCE和VTPM彼此以及与主机平台的其它部件 相隔离。主机平台包括在另一个隔离的计算环境中运行的迁移进程MP
(在P1上称为MP-P1并且在P2上称为MP-P2)。主机平台中提供隔离 的组件是虛拟化组件(VC)(在Pl上称为VC-P1并且在P2上称为 VC-P2 )。主机平台的TPM中的PCR值包括表示其MP和VC状态所需 的所有数据。VP初始地在P1上^L实例化。当VP需要迁移(当用户请求或作为 来自提供者的维护操作时),迁移进程MP-P1首先挂起VPCE在Pl上 的执行并且接着桂起对应的VTPM。尽管VTPM的挂起可能不要求任何 附加的步骤,但是VTPM的挂起必须确保由VTPM使用的任何秘密 VTPM-秘密从存储器移除并由TPM-P1来保护。如图12所示,MP-P1 接着通过执行如下步骤将VP从P1迁移到P2。
1 )检查(1210)目的地平台P2是适当的真实可信平台并获得其证 明身份密钥之一。
如果MP-P1还不信任P2并且知道其TPM密钥之一,则Pl使用与 P2的询问-响应协议来确定P2是否是合法可信平台(即,MP-P1是否信 任TPM-P2和P2的构造)。这个询问-响应进程向MP-P1提供P2是特 定类型的真实可信平台的i正明以及P2的特定TPM密钥的细节。
2)升级(1220)在由VTPM保护的密封斑点中的完整性度量
如果由P2提供的属性等效于在密封到VTPM的个别数据斑点中的 PCR值中记录的主机属性(或是其超集),则MP-P1升级那些个别的 VTPM密封斑点,创建包括PCR值的新密封斑点,该PCR值指明由P2 提供的属性。取决于升级方法,这可以或可以不要求来自与密封斑点相 关联的升级实体的显式授权。
3 )将VTP-秘密从Pl迁移(1230 )到P2
MP-P1对VTPM-秘密执行从TPM-P1到TPM-P2的迁移命令并将所 得数据发送到MP-P2。 MP-P2通过提供所接收的数据给TPM-P2来结束 迁移进程。使用标准TCG技术以确保VTPM-秘密在P2中不可用,除非 P2正在执行MP-P2和VC-P2的所期望版本。
4) MP-P1发送(1240)表示VPCE和VTPM的数据到P2 (以及 MP-P2运行VTPM)。
通过创建VPCE和VTPM的实例,MP-P2使用该数据来在P2上创 建相同的VP实例。MP-P2接着恢复VTPM执行。在恢复后,VTPM试 图重新加载VTPM-秘密到存储器中。不能这样做指明了 P2上不可接受 的VP环境。如果重新加载成功,则MP-P2恢复VPCE,该VPCE现在 可使用VTPM并当由VTPM保护的秘密在Pl上时保护它们。最后在 VP上的应用试图开封在由VTPM保护的密封斑点上存储的数据。失败 指明了 P2不适合于揭露特定的密封数据。注意到,步骤2和3能以相反的顺序执行,在该情况下,VTPM密 封的斑点在P2上升级之前迁移到P2。
上述的方法显然可以应用并适于任何包含完整性度量或从完整性 度量导出的数据结构的升级。该方法可用于提供一个完整性度量与另一 个完整性度量信任等效、 一个PCR值与另一个PCR值信任等效、以及 一个PCR—COMPOSITE值与另 一个PCR—COMPOSITE值信《壬等效的证 据。这些方法因此可用于升级取决于完整性度量、PCR值和 PCR—COMPOSITE值的任意数据结构。可以升级的其它数据结构的 一 些 例子是TCG结构,其取决于PCR—COMPOSITE值,比如TCG密钥结构 TPM—KEY、 TPM-KEY12及其辅助结构。类似于TPM—upgrade—seal的 TPM命令例如可以用于升级TPM-KEY结构中的PCR—COMPOSITE值。 当原始环境不可用时、当从备份中恢复数据时、或当在不同系统上复制 它时,密钥结构的升级例如可能是所期望的。尤其,可迁移密钥可用于 方便备份和恢复,并用于复制数据(在不同的平台上或在不同的操作系 统上)。当前TCG密钥迁移命令,比如TPM—CreateMIgrationBlob和 TPM—CMK—CreateBlob明确地忽略了 PCR—COMPOSITE值。因此TCG 可信平台技术可得益于在本发明的实施例中所描述的方法,从而改变 TPM密钥结构中的复合-PCR值。
权利要求
1.一种将虚拟可信计算平台从第一可信计算平台迁移到第二可信计算平台的方法,每个可信计算平台包括免受破坏并适于测量该可信计算平台的计算环境方面的可信设备,并且其中虚拟可信计算平台包括虚拟可信设备和虚拟计算环境,虚拟可信设备不受虚拟计算环境的影响,虚拟可信平台中的信任根源于运行有虚拟可信平台的可信平台的可信设备,该方法包括第一可信计算平台上的第一迁移进程确定第二可信计算平台是可信计算平台;第一迁移进程用第二可信计算平台的属性来更新虚拟可信平台的数据结构;第一迁移进程将虚拟可信平台的秘密从第一可信计算平台迁移到第二可信移动平台;和将虚拟可信平台转换到第二可信计算平台并恢复虚拟可信平台的操作。
2. 如权利要求l中所述的方法,其中第一可信计算平台和第二可信 计算平台中的至少一个本身是虚拟可信计算平台。
3. 如权利要求1或权利要求2中所述的方法,其中更新虛拟可信平 台的数据结构的过程是根据权利要求34到38中任意 一 个的方法来执行 的。
全文摘要
一种数据结构在其中具有以下元素数据结构类型标识;以及数据结构类型的两个或以上的实例彼此一样值得信任的证据。描述了使用这种数据结构的方法和设备。
文档编号G06F21/57GK101551841SQ20091013703
公开日2009年10月7日 申请日期2006年3月22日 优先权日2005年3月22日
发明者D·库尔曼, D·普拉奎恩, G·J·普鲁德勒, W·伯顿 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1