首页> 中国专利> 证明引导过程期间交互式组件的使用

证明引导过程期间交互式组件的使用

摘要

一种证明引导过程期间交互式组件的使用的方法,包含如下步骤:响应于确定交互式组件的使用,读取相关联交互式输入;确定是否应该信任该输入;以及响应于确定应该信任该输入,处理该输入以便创建信任密值,进一步包含:响应于读取的随后交互式输入,将随后交互式输入与一个或多个信任密值匹配,以便确定是否信任随后交互式输入。

著录项

  • 公开/公告号CN103124973A

    专利类型发明专利

  • 公开/公告日2013-05-29

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201180045663.X

  • 申请日2011-08-31

  • 分类号G06F21/57;

  • 代理机构北京市柳沈律师事务所;

  • 代理人周少杰

  • 地址 美国纽约阿芒克

  • 入库时间 2024-02-19 18:13:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-30

    授权

    授权

  • 2013-06-26

    实质审查的生效 IPC(主分类):G06F21/57 申请日:20110831

    实质审查的生效

  • 2013-05-29

    公开

    公开

说明书

技术领域

本发明涉及证明引导过程期间交互式组件的使用的方法。

背景技术

信任引导是在计算系统中引导和建立信任链的过程。参照图1的环境 (100),系统管理员提取服务器(受管理系统(120))并着手安装系统软件。 受管理系统(120)包含安全设备(125),例如,TPM(信任平台模块)。一 旦系统(120)被配置和引导,受管理系统(120)的每个组件(硬件和/或软 件)就加密地测量另一个组件,并且可以将测量值“扩展”(但不是直接写入) 到TPM(125)的平台配置寄存器(PCR)。每个组件也可操作来访问事件日 志,以便将与组件的测量相关联的数据写入与事件日志相关联的条目中。

管理员信任该配置,并将这些初始测量值当作信任的。假设在安装/配置 之前和在记录测量值之后没有人破坏系统。

测量可以通过含有为每个受管理系统的组件存在预期证明值的数据库 (115)的管理系统(105)远程证明。这些值通常与描述这些值是什么意思 的一些元数据一起存储。管理系统(105)包含,例如,将测量与这些值相比 较的TPM模拟器(110)。远程证明过程本身可以由管理或受管理系统启动。

对受管理系统(120)的改变可以通过随后的信任引导和远程证明过程来 检测。

上述过程描述在,例如,如下文献的第4部分中:the Trusted Computing  Group(TCG)Specification Architecture Overview;Specification;版本1.4;2007 年8月2日;以及如下文献的第2部分中:the TCG Infrastructure Working group  Architecture Part II-Integrity Management;Specification;Version1.0;版本1.0; 2006年11月17日。

上面所述的信任引导过程和远程证明过程在良好定义引导过程时,例如, 在具有简单非交互式引导过程的游戏控制台中工作良好。在更先进的计算系 统,例如,POWER(POWER是国际商用机器公司(IBM)的注册商标)服 务器中,引导过程可以因交互式组件的可选介入(involvement)而复杂化, 从而可以使低级固件转向交互式组件。在许多服务器系统中,交互式组件通 常包含OF(开放固件)提示符和Intel(Intel、Intel logo、Intel Inside、Intel Inside  logo、Intel Centrino、Intel Centrino logo、Celeron、Intel Xeon、Intel SpeedStep、 Itanium和Pentium是美国或其他国家的英特尔公司或其子公司的商标或注册 商标)系统,交互式组件通常包含EFI(可扩展固件接口)提示符。交互式 组件不是物理系统特有的—虚拟机也可以含有交互式组件。

例如,系统的用户可以具有在引导时,例如,通过按下功能键,输入交 互式组件中的选项。交互式组件通常被呈现为命令提示符或菜单,并且可以 允许用户在将控制转到下一个被测量引导组件之前改变设置和运行代码。交 互式组件的使用可以针对合法管理使用,例如,管理员可以使用交互式组件 和执行任务,例如,运行预定命令来进行系统配置和诊断;输入将执行的代 码。因此,应该认为不信任交互式组件的使用的一般判定在实际中没有良好 地工作。然而,交互式组件的使用对恶意攻击是开放的,例如,通常,可以 从交互式组件读取存储器以及可以将存储器写入交互式组件中,甚至可能重 写固件驻留的存储器。

注意,保证信任引导过程的安全在某些环境中,例如,在云计算环境中 尤其重要,从而可以将应用,例如,银行业应用(和相关联虚拟机)移植到 云内的共享资源。信任引导过程除了被虚拟机使用之外,也可以应用于共享 资源。

发明内容

注意,信任引导过程对即使有也变化很小的给定系统和每个组件遵循严 格执行路径的给定系统工作良好,其中对组件(诸如操作系统)的任何改变 都伴随着来自组件拥有者的、改变的组件的测量的信任值(例如,生产操作 系统的更新的公司也提供与更新相关联的一个或多个信任值)。这允许可以事 先生成用于各种组件(因此,例如,整个系统)的测量的信任值的数据库。 受管理系统的任何组件因此必须匹配与测量的信任值相关联的现有条目,要 不然它们是不能信赖的隐含性。

优选实施例公开了这样的解决方案,其允许检测在信任引导过程期间交 互式组件的使用,并确定是否信任在交互式组件的使用期间执行的动作。

优选实施例处理了这样的事实:即使在未变化引导组件的情况下,也可 能存在可以允许恶意用户危及系统的交互式组件(诸如命令提示符)。优选实 施例提供了一种机制,其通过使用管理系统特别对待的指定PCR,在交互式 组件的使用期间记录用户的动作的。实际上,指定PCR被认为比其他PCR 更易失,并且可能呈现许多信任值的任一。有利的是,即使与组件相关联的 测量值与信任值不匹配,与测量值相关联的输入也可能与可以被接受和记录 以备将来参考的新信任输入良好地相关联。

按照第一方面,提供了证明引导过程期间交互式组件的使用的方法,其 包含如下步骤:响应于确定交互式组件的使用,读取相关联交互式输入;确 定是否应该信任该输入;以及响应于确定应该信任该输入,处理该输入以便 创建信任密值,进一步包含:响应于读取的随后交互式输入,将随后交互式 输入与一个或多个信任密值匹配,以便确定是否信任随后交互式输入。

按照第二方面,提供了证明引导过程期间交互式组件的使用的装置,其 包含:响应于确定交互式组件的使用,读取相关联交互式输入的部件;确定 是否应该信任该输入的部件;以及响应于确定应该信任该输入,处理该输入 以便创建信任密值的部件,进一步包含:响应于读取的随后交互式输入,将 随后交互式输入与一个或多个信任密值匹配,以便确定是否信任随后交互式 输入的部件。

按照第三方面,提供了包含存储在计算机可读介质上的计算机程序代码 的计算机程序,当该计算机程序代码被加载到计算机系统中并在其上被执行 时,使得所述计算机系统执行上述方法的所有步骤。

附图说明

现在,如下图所例示,将参照本发明的优选实施例,只通过例子的方式 对本发明加以描述。

图1是示出进行信任引导和远程证明过程的已知系统的框图;

图2是示出已知受管理系统的组件的的框图;

图3是示出进行信任引导和远程证明过程的已知系统的更详细视图的框 图;

图4是示出已知远程证明过程所涉及的操作步骤的流程图;

图5是示出按照优选实施例的信任引导过程所涉及的操作步骤的流程 图;以及

图6是示出按照优选实施例的远程证明过程所涉及的操作步骤的流程 图。

具体实施方式

现在将给出已知信任引导和远程证明过程的更详细说明。

参照图2,更详细地示出了受管理系统(200)。在信任引导过程中,受 管理系统(200)的每个组件加密地测量(例如,使用安全散列算法(SHA) 来创建诸如软件文件、模型、编制(make)、组件的序列号等的信息的散列, 以便创建测量值)另一个引导组件。

在一个例子中,信任测量核根(Core Root of Trust for Measurement, CRTM)组件(220),例如BIOS,是在引导期间给予控制的第一段代码,并 且由于不可改变而必须隐含地信任。CRTM(220)加密地测量引导过程中的 下一个组件(例如,固件215));随后,固件(215)测量引导过程中的下一 个组件(例如,操作系统(210));以及随后,操作系统(210)在将控制转 移到用户空间程序(205)之前测量任何用户空间程序(205)。

每个组件可以在将控制转移到所测量组件之前,将测量值“扩展”(但不 是直接写入)到TPM(225)的平台配置寄存器(PCR)(230)。扩展操作包 含PCR的值与测量值的加密组合。

每个组件也可操作来访问事件日志(235),以便将与组件的测量相关联 的数据(例如,诸如组件标识符和事件的元数据;以及相关联测量值)写入 与事件日志(235)相关联的条目中。

注意,CRTM(220)在通常其不能访问事件日志(235)的受限环境中 运行。还要注意,尽管用户空间程序(205)可操作来使用TPM(225)和事 件日志(235),但由于用户空间程序(205)不倾向于装载其他软件组件本身, 所以是否这样做是可选的。

注意,如果交互式组件(诸如命令提示符或菜单)是可用的,则在转移 到操作系统(210)之前的不定时段控制将用固件(215)保持。

一旦受管理系统(200)运行,则将如本文所述,可以使用远程证明过程, 例如DAA(直接匿名证明),通过远程系统(305)提取与“信任链”相关联 的数据用于检查。

参照图3的系统(300),示出了受管理系统(200)和相关联TPM(225)、 PCR(230)、以及包含一个或多个测量值和相关联元数据的事件日志(235)。 证明过程通常涉及受管理系统(200)将用于所测量组件的当前PCR值(230) (即,从扩展操作中得出)与事件日志(235)一起发送给管理系统(305)。

现在将参照图4描述在管理系统(305)上执行的证明过程的简化例子。

在步骤400,检索接收的当前PCR值(230)以及事件日志(235)。在步 骤405,从数据库(325)中检索与受管理系统(200)的组件相关联的预期 证明值。在步骤410,管理系统(305)的模拟器(310)将接收的当前PCR 值(230)与预期证明值相比较。应该明白,管理系统(305)的许多其他组 件可以执行比较逻辑。

如果对于每个PCR值都发生匹配,则认为信任受管理系统(200)(步骤 415),并且没有进一步的工作进行。

如果对于每个PCR值未发生匹配,则管理系统(305)分析(步骤420) 事件日志(235),依次检查每个条目,以判定包含在与讨论的所测量组件相 关联的条目中的测量值是否有效。

如果每个事件日志(235)条目都表现为有效(步骤425的肯定结果), 则认为信任受管理系统(200)(步骤415),并且没有进一步的工作进行。

如果事件日志条目都表现为无效(步骤425的否定结果),则不认为信任 受管理系统(200)(步骤430)——优选地,在转移到“系统不信任”退出 状态之前发出安全警报。

现在将描述上述过程的示范性实现。

通常,受管理系统(200)的组件的制造商提供与组件相关联的测量值的 (大)列表(例如,参考清单)——这些测量值可以当作“信任的”。进一步, 通常,信任引导过程是高度确定的,并且出现在事件日志(235)中的相关联 事件遵循严格的模式。在CRTM(200)测量固件(215),固件(215)又测 量操作系统(210)的例子中,事件日志(235)通常包含两个事件,即,“测 量固件”和“测量操作系统”。即使改变了固件(215)和/或操作系统(210) (例如,更新),在未来的引导过程期间,也将以相同次序发生相同的两个事 件,并且只有相关联测量值将不同。

在一个例子中,将每个测量值与相同的PCR相关联。在该例子中,管理 系统(305)保持指示最后一次引导受管理系统(200)时,其使用固件(例 如,具有测量M1的版本X)和操作系统(例如,具有测量M2的版本Y) 的记录,其中M1和M2分别是固件引导组件和操作系统引导组件的SHA摘 要。两个事件以及测量值,即,“测量固件:SHA(M1)”和“测量操作系统: SHA(M2)”当被扩展到PCR时,给出当前PCR值“Z”。将当前PCR值“Z” 作为固件(215)和操作系统(210)的预期证明值记录在管理系统(305)的 数据库(325)中。

在随后的证明过程期间,管理系统(305)检索(步骤400)接收的当前 PCR值(230)以及事件日志(235),并从数据库(325)中检索(步骤405) 预期证明值。

在步骤410,模拟器(310)将接收的当前PCR值的值与预期证明值相比 较—如果发生匹配,则确定(步骤415)受管理系统(200)正在使用预期固 件(215)和操作系统(210)。

如果未发生匹配(即,接收的当前PCR值不是“Z”),则管理系统(305) 分析(步骤420)事件日志(235)以找出相关联条目。管理系统(305)将 第一事件和测量值相比较,即,“测量固件:SHA(M1)”与固件的具体制造商 提供的信任值列表,并将第二事件和测量值相比较,即,“测量操作系统: SHA(M2)”与操作系统的具体制造商提供的信任值列表。

如果任一组件具有制造商未列为“信任”的测量值,则假设(步骤430) 受管理系统(200)受到破坏。

如果两个组件都具有制造商列为“信任”的测量值,则假设(步骤415) 信任受管理系统(200),并且可以将测量值与在受管理系统(200)的下一个 证明过程期间使用的新预期证明值相关联。

现在将参照图5和6描述支持交互式组件的优选实施例的信任引导和远 程证明过程。

优选地,为了接收与用户向交互式组件的输入(例如,键击)相关联的 测量值保留PCR(例如,“7”)。通常预期PCR(7)具有初始“通电”状态 (例如,零),因为任何其他值都指示已经使用了交互式组件。

现在将参照图5描述当发生交互式组件的使用时,捕获与输入相关联的 值的方法。

在步骤500,例如,固件(215)接收来自CRTM(220)的控制。如果 引导过程未转向交互式组件(步骤505的否定结果),则固件(215)测量(步 骤510)信任引导过程中的下一个组件(例如,操作系统(210))。由固件(215) 将测量值扩展到PCR,由固件(215)将相关联元数据加入(步骤515)事件 日志(235)中,并将控制转移到(步骤520)操作系统(210)。

如果信任引导过程转向交互式组件(步骤505的肯定结果),则在步骤 525,固件(215)读取用户输入的输入(例如,键击、菜单选择、命令)。固 件(215)将每个输入散列化(步骤530)(例如,各个字符的散列化或将每 个离散序列散列化),并创建(步骤530)与输入相关联的元数据(例如,输 入的标识符、输入的类型)。由固件(215)利用散列值扩展(步骤535)PCR (7),并且由固件(215)将元数据加入(步骤535)事件日志(235)中。

在步骤540,执行输入(例如,特定键击),随后,关于是否已经输入任 何进一步的输入作出确定(步骤545)。如果已经输入进一步的输入,则该过 程转到步骤525。如果还未输入进一步的输入,则该过程转到步骤510,从而 固件(215)测量操作系统(210)。

有利的是,可以扩展PCR(7)以提供与输入的输入相关联的唯一散列值, 进一步,可以将相关联元数据存储在事件日志(235)中——输入和相关联散 列值的例子在下表1中示出。

表1

优选地,在使用本发明的系统之前,关于什么样的输入应该认为“信任” 作出判定。例如,管理员确定是否接受特定输入(因此,特定散列值)作为 信任的(例如,通过使用与来自其他信任系统的已知输入相关联的元数据)。 优选地,管理员可以将与输入相关联的信任散列值列表分配给其他管理系统。

注意,在其他实现中,提供交互式组件的固件(215)可能不操作来使用 事件日志(235),使得不能将与输入相关联的事件存储在事件日志(235)中。 因此,例如,管理系统(305)将不能确定在受管理系统(200)上输入的输 入。

如果正是这种情况,则优选地,管理员与引导过程异步地手动检索输入 (例如,成批地)。可替代地,管理员可以与受管理系统(200)的用户接触, 请求用户在引导过程期间意图使用的输入。管理员确定是否接受特定输入作 为信任的(例如,通过使用与来自其他信任系统的已知输入相关联的元数据), 并使用管理系统(305)的模拟器(310)计算输入的信任散列值。

现在将参照图6描述优选实施例的远程证明过程。

在步骤600,检索当前PCR值(230)以及事件日志(235)。在步骤605, 从数据库(325)中检索预期证明值。在步骤610,管理系统(305)的模拟 器(310)将接收的当前PCR值(230)与预期证明值相比较。

如果对于每个PCR值都发生匹配,则认为信任受管理系统(200)(步骤 630),并且没有进一步的工作进行。

如果对于每个PCR值未发生匹配,则在步骤615作出检查以确定PCR(7) 值是否是非零。

如果PCR(7)值不是非零(指示未使用交互式组件),则管理系统(305) 通过依次检查每个条目(参照参考清单)来分析(步骤620)事件日志(235), 以判定讨论的所测量组件是否有效(上面参照图4描述了一种实现)。

如果每个事件日志条目表现为有效(步骤625的肯定结果),则认为信任 受管理系统(200)(步骤630),并且没有进一步的工作进行。

如果事件日志条目表现为无效(步骤625的否定结果),则不认为信任受 管理系统(200)(步骤635)。

如果PCR(7)值是非零(指示使用了交互式组件),则检索与输入相关 联的信任散列值(步骤640),并将PCR(7)值与信任散列值相比较(步骤 645)。

如果PCR(7)值与信任散列值的任一匹配,则将PCR(7)设置(步骤 655)成零,并且在任何其他PCR值也不同的情况下重试值比较逻辑(步骤 610)。

如果在步骤645,确定PCR(7)值未与任何信任散列值匹配,则使用(步 骤650)事件日志(235)来分析与输入相关联的元数据(例如,确定已经使 用了什么特定键击或菜单选择)。这是与分析整个事件日志(235)相比非常 简单的过程,因为只需要读取PCR(7)的事件。

在步骤660,关于是否可以信任输入作出确定。例如,通过对照不信任 输入的已知列表或信任输入的已知列表检查输入来作出确定。

例如,与受管理系统(200)相关联的严格策略可能要求从不使用交互式 命令提示符和只有菜单导航是有效的。在这样的情况下,信任输入将包含, 例如,不导致交互式命令提示符被调用的一组键击。例如,如果通过使用数 字字符“9”会发生交互式命令提示符的调用,则如果将元数据与除了数字字 符“9”之外的其他键击相关联,则在步骤660,确定信任输入。

在另一个例子中,倘若用户从不尝试将值写入存储器中,则与受管理系 统(200)相关联的较不严格的策略可能允许使用交互式命令提示符。如果通 常使用“!”字符将值存储在存储器中,以及如果元数据未与“!”字符相关 联,则在步骤660,确定信任输入。

如果作出可以信任输入的确定,则将与PCR(7)相关联的输入的测量值 加入(步骤665)信任散列值列表中——因此,将来,使用特定输入将不会 不必要地引发警报。随后,将PCR(7)设置(步骤655)成零,并且在任何 其他PCR值也不同的情况下重试值比较逻辑(步骤610)。

如果作出不能信任输入的确定,则认为不信任受管理系统(200)(步骤 635)。

对于本领域的普通技术人员来说是清楚的,本发明的优选实施例的整个 或部分方法可以适当地和有用地在一个或多个逻辑装置中实施,该逻辑装置 包含安排成执行该方法的步骤的逻辑元件,这样的逻辑元件可以包含硬件组 件、固件组件或它们的组合。

对于本领域的技术人员来说同样是清楚的,按照本发明的优选实施例的 整个或部分逻辑安排可以适当地在逻辑装置中实施,该逻辑装置包含执行该 方法的步骤的逻辑元件,这样的逻辑元件可以包含诸如例如可编程逻辑阵列 或专用集成电路中的逻辑门的组件。这样的逻辑安排可以进一步在使能元件 中实施,该使能元件用于使用例如虚拟硬件描述语言在这样的阵列或电路中 临时或永久地建立逻辑结构,该虚拟硬件描述语言可以使用固定或可传输承 载介质来存储和传输。

将认识到,上面所述的方法和安排也可能适合地完全或部分在运行在一 个或多个处理器(在图中未示出)上的软件中实现,该软件可以以一个或多 个计算机程序元件的形式提供,该计算机程序元件承载在诸如磁盘或光盘等 的任何适当数据载体(在图中也未示出)上。传输数据的信道同样可以包含 所有描述的存储介质以及诸如有线或无线信号承载介质的信号承载介质。

本发明可以进一步适合地实施成供在计算机系统使用的计算机程序产 品。这样的实现可以包含一系列计算机可读指令,该计算机可读指令固定在 诸如计算机可读介质(例如,磁盘、CD-ROM、ROM或硬盘)的有形介质上, 或者通过有形介质(包括但不限于光或模拟通信线)或使用无线技术(包括 但不限于微波、红外或其他传输技)无形地,经由调制解调器或其他接口设 备可传输给计算机系统。该一系列计算机可读指令实施本文前面所述的所有 或部分功能。

本领域的技术人员将认识到,这样的计算机可读指令可以用供许多计算 机架构或操作系统使用的许多编程语言编写。进一步,这样的指令可以使用 包括但不限于半导体、磁、或光的当前或将来的任何存储技术来存储,或使 用包括但不限于光、红外、或微波的当前或将来的任何通信技术来传输。可 以设想,这样的计算机程序产品可以分发具有伴随印刷或电子文档的可移除 介质,例如收缩包装软件,利用计算机系统预装载在例如系统ROM或固定 盘上,或者通过例如互联网或万维网的网络从服务器或电子公告板分发。

在一种替代中,本发明的优选实施例可以以部署服务的计算机实现方法 的形式实现,该服务包含部署计算机程序代码的步骤,该计算机程序代码可 操作为当被部署在计算机基础设施中以及在其上被执行时,使所述计算机系 统执行所述方法的所有步骤。

对于本领域的技术人员来说是清楚的,可以不偏离本发明的范围地对上 述示范性实施例作出许多改进和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号