专利名称:在计算平台中提供可信时间的方法
技术领域:
本发明总体上涉及计算机安全,并且更具体地,涉及在通过执行应用 而可信的计算平台中提供时间。
背景技术:
人们期望在计算平台中获得可信的时间值。例如,可信时间可以结合 其它处理来使用以提升内容保护机制的鲁棒性,从而确保为数字家庭提供 优质的内容。可以将其用于内容保护环境中,以确保计算平台所有者可以 周期性地下载受损密钥的撤销列表。还可以将其用于提供一种安全方式以 使得能够在临时时间窗口期间购买内容以用于访问。但是,如果时间值被 恶意用户修改而没有被系统平台检测到的话,则计算机安全性和内容保护 系统可能会受到损害。现有的提供可信时间的方案需要在防篡改(tamper resistant)硬件模块 中包含电池,其无法由用户轻易地移除(例如由可信计算组在如下文件中所 描述的Trusted Platform Module (TPM) Main Part 1 Design Principles, Specification Version 1.2, Revision 81, November 23, 2004, pp. 93-98)。这对于某些计算机系统的持续运行就可能存在问题,因为这些系统的运行时间 较长,电池可能需要更换。如果用户无法在不中断系统运行的前提下更换 电池,系统可能会随之发生问题。因此, 一种在计算平台中提供可信时间值的更佳机制将是很有用的。
根据本发明的以下详细描述,本发明的特征和优点将变得显而易见,其中图1示出了根据本发明的实施例的可信时间架构;图2的流程图示出了根据本发明的实施例,对可信时间设备进行复位(reset)的过程;图3的流程图示出了根据本发明的实施例的应用初始化的过程; 图4的流程图示出了根据本发明的实施例,由应用来获得当前可信时 间的过程。
具体实施方式
本发明的一个实施例是一种在计算平台中提供可信时间的方法和装 置。 一个安全性要求是用户必须不能够修改可信时间。在一个实施例中, 可以将电池用于向一小组可信时间电路提供电力。可以使用到可信时间源 的初始连接来初始化可信时间。实现了以下特性,即,只要可信时间电路 上电(powerup),就会在计算平台中提供可信时间。如果曾经移除对可信时 间电路的供电,则将会检测到电力缺乏,从而需要连接到可信时间源以重 新初始化该可信时间机制。在说明书中对本发明的"一个实施例"或"实施例"的引用表示结合 该实施例描述的特定的特征、结构或特性包含在本发明的至少一个实施例 中。因此,在说明书全文各个位置出现的词语"在一个实施例中"并不一 定均指代同一个实施例。图1示出了根据本发明的实施例的可信时间架构。计算平台100包括 执行的应用程序102和可信时间设备104。计算平台可以是具有用于执行 指令的处理器的任何系统,例如个人计算机、服务器、膝上型或手持型计 算机、个人数字助理(PDA)、移动电话、机顶盒等等。为了清楚起见,在 图1中省略了这种系统的部件的公知细节。应用102可以是向使用可信平 台以进行某些处理的计算平台的用户提供某些功能的任何计算机程序。该 应用期望使用可信时间,并具有安全地存储信息的功能,使得用户无法轻 易地修改信息而不被检测到。所述应用与可信时间源106进行通信以获得初始可信时间。可信时间 源106包括在位于计算平台外部的源,其能够提供可信时间值。可信时间 源可以任何方式(例如经由诸如互联网或内联网之类的网络)可通信地耦合 到该应用。在本发明的实施例中,所述应用期望信任计算平台上提供的时间,即使用户是对手时也是如此。此外,用于提供可信时间的机制应是有益于私密性的(privacy-friendly)。艮卩,该可信时间机制不应唯一标识计算平台,那 样的话可能会引起对私密性的顾虑。在本发明中,除非移除电源,否则可 信时间设备104均提供可信时间。如果电源被移除,则该应用能够检测到 该事件。可信时间设备104包括硬件计算设备,所述硬件计算设备包含由可信 时间电池108供电的可信电池槽(battery well) 110、以及不由可信时间电池 供电的其它电路(未示出)。在一个实施例中,该可信时间设备被可以集成 到计算机系统的芯片组中的输入/输岀(I/0)控制器中枢(ICH)中。可信时间 设备104包括电池108,该电池包括常规的可更换电源以在很长的时间内 提供少量的电力。在一个实施例中,该电池与在许多计算平台中存在的实 时时钟电池是相同的。可信时间电池槽110包括由电池108供电的一小组 电路,并且只要可信时间电池108处于工作中且没有被移除,就可以保持 上电。可信时间电池槽包括至少三个其它部件。晶振(crystal) 112包括以恒定 已知频率产生时钟脉冲的电路。在一个实施例中,该晶振可以位于可信时 间电池槽之外。可信时间(TT)随机数(Rand)寄存器114包括用于存储随机 数的寄存器。TT计数器(Counter)寄存器116包括一个寄存器,在一个实施 例中其以固定频率加一。该频率可以是晶振112的每个节拍(tick)一次,或 者每秒一次。在一个实施例中,可以将TT计数器的大小设置为使计算平 台例如运行20年而无需计数器从头再来。对于TT随机数和TT计数器寄 存器,当第一次向这些寄存器供电时,它们被设置为全零。如果曾经移除 电源然后又恢复,则这些寄存器被设置为全零。可信时间设备104还包括随机数生成器(RNG) 118。 RNG包括按照需 求提供随机数的电路。计算平台IOO还包括安全存储装置120。安全存储装置是一种用于以 安全方式存储数据使其不会轻易地被用户或任何其他方篡改的部件。在一 个实施例中,安全存储装置120包括由可信计算组发布的规范所描述的可 信平台模块(TPM)。在另一个实施例中,可以使用已知的防篡改软件技术 来提供安全存储装置。应用102有能力安全存储至少以下两个值应用随机值(Rand) 112和应用偏移量124。图2的流程图示出了根据本发明的实施例,对可信时间设备进行复位 的过程200。可以在每当向计算平台供电时(即,系统通电时)执行复位。在 块202,计算平台检査TT随机数114以确定当前存储在TT随机数寄存器 中的值是否为零。如果TT随机数非零,则表示在上一次更换电池后该电 池持续对可信时间设备供电,计算平台可以到在208继续进行初始化处理。 如果TT随机数是零,则表示电池108已经被断开并被重连。随后在块204, 计算平台等待一段时间。在一个实施例中,该段时间是个固定量,l分钟。 在其它实施例中,该段时间可以是不同的固定时间量,例如30秒、2分钟、 3分钟等等。在另一些实施例中,该段时间可以随着逐次的复位而不同。 在块20S中继续进行初始化处理之前,在块206,可以使用随机数生成器 (RNG) 108来生成新的TT随机数并将其存储在TT随机数114中。由于TT随机数的值是个随机数,因此存在可能将其用于标识计算平 台的潜在顾虑。在本发明的实施例中,这是通过仔细选择TT随机数的大 小并修改对TT随机数进行装填(populate)的行为来解决的。第一,可以将 TT随机数的大小选择的足够小,使其不会成为该计算平台的唯一标识符。 第二,当系统复位时TT随机数被重新装填的唯一时间是在移除可信时间 电池槽110的电源(g卩,断开电池)之后。在重新装填TT随机数寄存器之前 的时间延迟仅会出现在断开电池时,而不会出现在计算平台的典型复位期 间。因此,在可信时间设备复位期间在复位和用新随机值装填TT随机数 的时间之间的实质时间延迟可被用于TT随机数为全零时的情况。考虑到这些需求,在一个实施例中,TT随机数寄存器包括16位寄存 器。如果在块204使用一分钟的时间延迟,则在TT随机数的值与存储在 安全存储装置120中的应用随机值122的值相匹配之前,在暴力攻击中预 期将会进行216次的持续尝试(大约需要45天)。但是由于在世界范围内存 在无数处于服务中的计算平台,因此216 (65536)就是一个足够小的数字, 从而其不会被解释为该计算平台的唯一标识符,由此支持了用户私密性。 取决于系统实现要求,还可以使用其它大小的TT随机数寄存器(例如20 位)和时间延迟,而不背离本发明。图3的流程图示出了根据本发明的实施例的应用初始化的过程300。在块302,该应用与可信时间源106联系以获得当前可信时间。在一个实 施例中,这可以通过以下过程来安全地实现该应用向可信时间源发送临 时交互号(nonce),可信时间源用其私钥对当前可信时间和临时交互号进行 数字签名,可信时间源将签名的当前可信时间和临时交互号发给该应用。 如果该应用具有该可信时间源的公钥,则该应用可以对签名的当前可信时 间和临时交互号进行解密,并进行检査以确保接收到的临时交互号与发给 该可信时间源的临时交互号相匹配。在块304,该应用从可信时间设备104 的电池槽内的适当的寄存器114、 116获得TT随机数和TT计数器的值。 接下来,在块306,在必要时,该应用可选地将从可信时间设备获得的TT 计数器和从可信时间源获得的当前可信时间转换为应用时间单位(units)。 在块308,该应用将应用偏移量设置为当前可信时间减去TT计数器。这用 作对于在后面测量自初始化起所经过的时间的基准值。在块310,该应用 将应用随机值设置为TT随机数114。在块312,该应用将经修改的应用偏 移量124和应用随机值122安全地存储在安全存储装置120中。图4的流程图示出了根据本发明的实施例,由应用获得当前可信时间 的过程400。可以在初始化之后的应用处理期间,当正在执行的应用需要 本地访问当前可信时间时,执行这些动作。在块402,该应用从安全存储 装置120获得应用随机值122和应用偏移量124。在块404,该应用从可信 时间设备104的电池槽获得TT随机数114和TT计数器116。在块406, 如果TT随机数与应用随机值不匹配,则在块408会报告一个错误,并且 会如图4中的块410所示的那样再次执行应用初始化。如果TT随机数与 应用随机值相匹配,则在块412,该应用可选地将TT计数器转换为应用时 间单位(如果必要的话),并在块414,将当前可信时间设置为应用偏移量 +丁丁计数器。随后该应用可以使用当前可信时间进行进一步的处理。尽管可以将这里详述的操作描述为顺序的处理过程,但是其中的一些 操作实际上也可以并行或并发地执行。此外,在一些实施例中,可以重新 安排这些操作的顺序。这里所述的技术并不限于任何特定的硬件或软件结构;它们可以适用 于任何计算或处理环境。这些技术可以硬件、软件或这两者的组合来实现。 这些技术可以实现为在可编程机器上执行的程序,所述可编程机器例如是移动或固定计算机、个人数字助理、机顶盒、移动电话和寻呼机、以及其 它电子设备,上述设备均包括处理器、可由处理器读取的存储介质(包括易 失性和非易失性存储器和/或存储元件)、至少一个输入设备以及一个或多 个输出设备。将程序代码应用于使用输入设备输入的数据,以执行所述的 功能并生成输出信息。可以将输出信息应用于一个或多个输出设备。本领 域普通技术人员可以理解的是,可以使用各种计算机系统结构(包括多处理 器系统、小型计算机和大型计算机等)来实践本发明。本发明还可以实现在 分布式计算环境中,在该环境中,可以由通过通信网络链接的远程处理设 备来执行任务。可以用高级的过程或面向对象编程语言来实现每个程序,以与处理系 统进行通信。但是,如果需要的话,也可以用汇编或机器语言来实现这些 程序。在任何情况下,所述语言可以是编译型的或解释型的。可以使用程序指令来令用这些指令编程的通用或专用处理系统执行这 里所述的操作。作为选择,可以由包含用于执行所述操作的硬连线逻辑的 特定硬件部件来执行这些操作,或者由编程的计算机部件和定制硬件部件 的组合来执行这些操作。这里所述的方法可以被作为计算机程序产品来提 供,所述计算机程序产品可以包括其上存储有指令的机器可访问介质,所 述指令用于对处理系统或其它电子设备进行编程以执行所述方法。这里所 用的术语"机器可访问介质"应包括能够对指令序列进行存储或编码的任 何介质,所述指令序列由机器运行,并使机器执行这里所述的任何一种方 法。因此,术语"机器可访问介质"应包括但并不限于固态存储器、光盘 和磁盘、以及对数据信号进行编码的载波。此外,在本领域中,通常会以 用来执行动作或导致结果的一种或另一种形式(例如程序、过程、处理、应 用、模块和逻辑等)来谈及软件。这样的表达仅是表述由处理系统执行该软 件来使处理器执行动作或产生结果的一种简洁方式。
权利要求
1、一种支持计算平台的私密性的方法,所述计算平台具有可信时间设备以向在所述计算平台上执行的应用提供可信时间,所述方法包括通过以下步骤来复位所述可信时间设备确定是否已经设置了寄存器中的值,如果没有的话,则等待一段时间,生成新随机数,并将所述新随机数存储在所述寄存器中。
2、 如权利要求1所述的方法,还包括每当在所述计算平台上电时一供电,就复位所述可信时间设备。
3、 如权利要求l所述的方法,还包括每当向所述可信时间设备第一次供电时,以及每当断电并随后恢复向 所述可信时间设备供电时,就将所述寄存器设置为零。
4、 如权利要求l所述的方法,其中,所述可信时间设备的至少一部分 由电池供电。
5、 如权利要求1所述的方法,还包括在将所述新随机数存储在所述寄存器中之后,继续对所述计算平台进 行初始化。
6、 如权利要求1所述的方法,其中,所述一段时间包括可变的时间量。
7、 一种制品,包括包含指令的机器可访问介质,所述指令在执行时使得通过复位计算平 台所具有的可信时间设备来支持所述计算平台的私密性,所述可信吋间设 备用以向在所述计算平台上执行的应用提供可信时间,其中复位所述可信 时间设备是通过以下过程实现的确定是否已经设置了寄存器中的值,如 果没有的话,则等待一段时间,生成新随机数,并将所述新随机数存储在所述寄存器中。
8、 如权利要求7所述的制品,还包括用于每当在所述计算平台上电时 一供电就复位所述可信时间设备的指令。
9、 如权利要求8所述的制品,还包括用于在将所述新随机数存储在所 述寄存器中之后继续对所述计算平台进行初始化的指令。
10、 一种可信时间设备,用于向在计算平台上执行的应用提供可信时 间而不会唯一标识所述计算平台,所述可信时间设备包括随机数生成器;以及 寄存器;其中,通过以下过程所述可信时间设备能够被复位确定是否已经设 置了所述寄存器中的值,如果没有的话,则等待一段时间,由所述随机数 生成器生成新随机数,并将所述新随机数存储在所述寄存器中。
11、 如权利要求10所述的可信时间设备,其中,每当在所述计算平台 上电时一供电,所述可信时间设备就被复位。
12、 如权利要求10所述的可信时间设备,其中,每当向所述可信时间 设备第一次供电时,以及每当断电并随后恢复向所述可信时间设备供电时, 所述可信时间设备能够将所述寄存器复位为零。
13、 如权利要求IO所述的可信时间设备,还包括向所述可信时间设备 的至少一部分供电的电池,并且其中,所述可信时间设备被并入所述计算 平台的输入/输出控制器中枢中。
14、 如权利要求10所述的可信时间设备,其中,在将所述新随机数存 储在所述可信时间设备的寄存器中之后,所述计算平台被初始化。15、如权利要求10所述的可信时间设备,其中,所述寄存器包括小于或等于20位。
全文摘要
通过让可信时间设备向在计算平台上执行的应用提供可信时间,可以实现在计算平台中提供可信时间并同时支持私密性。可以通过以下步骤来复位可信时间设备确定是否已经设置了可信时间随机数寄存器中的值,如果没有的话,则等待一段时间,生成新随机数,并将该新随机数存储在可信时间随机数寄存器中。每当在计算平台上电时向可信时间设备第一次供电时,以及每当向可信时间设备供电的电池被移除然后重连时,可信时间随机数寄存器被设置为零。通过将可信时间随机数寄存器的大小保持为相对较小,并等待指定的一段时间,可以最小化用来确定可信时间的、对计算平台的攻击,并同时防止该计算平台被唯一地标识。
文档编号G06F21/02GK101268469SQ200680034715
公开日2008年9月17日 申请日期2006年9月14日 优先权日2005年9月23日
发明者C·霍尔, E·布里克尔 申请人:英特尔公司