首页> 中国专利> 受威胁计算机的自动的基于硬件的恢复

受威胁计算机的自动的基于硬件的恢复

摘要

本发明提出了一种受威胁计算机的自动的基于硬件的恢复的方法,大体上,描述了一种用于基于硬件的检测和计算装置从受损害状态自动恢复的技术。此外,本技术提供了从可信任仓库的选择性软件组件的自动的、基于硬件的恢复。基于硬件的监测和自动恢复技术可以被集成到计算装置的引导顺序中以有效且无害的仅替换任意被感染的软件组件。

著录项

  • 公开/公告号CN101676876A

    专利类型发明专利

  • 公开/公告日2010-03-24

    原文格式PDF

  • 申请/专利权人 丛林网络公司;

    申请/专利号CN200910173755.0

  • 发明设计人 史蒂芬·R·汉纳;

    申请日2009-09-14

  • 分类号G06F11/14(20060101);G06F9/445(20060101);

  • 代理机构11240 北京康信知识产权代理有限责任公司;

  • 代理人余刚

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-12-04

    授权

    授权

  • 2010-05-05

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20090914

    实质审查的生效

  • 2010-03-24

    公开

    公开

说明书

技术领域

本发明涉及计算装置,以及更具体地,涉及被恶意软件威胁时的计算装置的恢复。

背景技术

计算装置包括一个或多个处理器,用于执行在处理器的操作存储器中存在的软件指令。为了提供灵活性和适用性,许多计算装置采用交错方法来加载软件指令。在这种方法下,存储在永久性存储器或存储装置中的模块化软件组件配置有需要加载并发起附加的模块化软件组件(包括操作系统)的执行的指令和参数。在装置启动操作期间,这些模块化软件组件被称为“引导组件(bootcomponent)”,其以“引导顺序(boot sequence)”执行,引导顺序以将装置操作所需的所有指令加载到操作存储器中结束。以这种方式启动执行装置允许用于多种引导组件的分散存储方法。此外,对装置的某些必需的更新可以通过简单地修改单独的引导组件或参数来完成。

更新引导组件的能力将脆弱性引入了装置。例如,在装置上运行的病毒、木马或其他恶意的软件(或“恶意软件”)可以修改或替换任意或所有的引导组件以获得对装置的控制。在恶意软件成功的情况下,装置被称为“受威胁的”或“感染的”。

典型地,一旦检测到装置的受威胁状态,则用户在装置上执行设计为识别并隔离被感染软件或数据以尝试恢复装置到其正确操作模式的软件。在一些情况下,由于恶意的软件的性质和感染所建立的防御措施,受威胁装置不能够恢复。例如,恶意的软件修改了操作系统,以防止反病毒程序执行能够修复甚至检测修改的补救例行程序。在另一个实例中,恶意的软件可以修改计算装置的引导加载,以防止操作系统完全加载,从而使装置不起作用。在不可能恢复的情况下,如在这些实例中,管理者被迫通过(例如)重新格式化装置的硬件驱动和安装整个操作系统和其它系统软件组件的无病毒版本来重新安装和/或替换装置的所有引导组件。这种大规模重新安装是耗时的且昂贵的操作。此外,这种大规模重新安装通常导致用户数据和设置的丢失。

发明内容

大体上,描述了一种用于基于硬件的检测和计算装置从受损害状态自动恢复的技术。此外,本技术提供了从可信任仓库的选择性软件组件的自动的、基于硬件的恢复。基于硬件的检测和自动恢复技术可以被集成到计算装置的引导顺序中以有效且无害的仅替换任意被感染的软件组件。

例如,与计算装置的主处理器分离的辅助硬件要求在主处理器执行引导组件之前对于每个引导组件的完整性检验,即,在将引导组件加载到装置处理器的操作存储器之前,辅助硬件在组件上执行完整性检查以检测恶意感染的存在。如果引导组件存在感染或完整性检查失败,则辅助硬件利用从可信任源获得的组件的可信任版本替换该组件。该过程继续使得引导顺序的每个软件组件的完整性可以被单独地检验并且如果受威胁被单独体替换,而不要求替换其他非感染的软件组件。

在一个实例中,一旦通知已经发起了装置的引导顺序,则计算装置中的辅助硬件识别引导顺序中的第一引导组件(典型地,基础输入/输出系统“BIOS”)。辅助硬件计算第一引导组件的密码杂凑或其他校验和。之后辅助硬件将所计算的杂凑值与可信任的、可接受的用于第一引导组件的杂凑值进行比较。如果计算的杂凑值满足,则辅助硬件允许第一引导组件被加载到操作存储器中用于计算装置的主处理器的执行。一旦成功执行第一引导组件,之后,在下一个引导组件可以被主处理器访问并调用之前在引导顺序中的下一个引导组件上执行相同的操作集。该过程继续直到所有引导组件的完整性被检验并且所有的引导组件已经被执行。

然而,当为特定引导组件计算的杂凑值不满足对于该组件的可信任的、可接受的杂凑值时,则往往指示引导组件被感染(例如利用病毒)或被破坏。因此,辅助硬件采取补救措施以确保计算装置的主处理器仅执行未被破坏的引导组件。第一,辅助(auxiliary)硬件获得对应于特定的破坏引导组件的可信任引导组件。可信任引导组件可以(例如)被存储在仅可被辅助硬件访问的计算装置的专用存储器或存储介质中。在另一个实例中,辅助硬件可以从可信任引导组件服务器中获得可信任引导组件。在其他情况下,辅助硬件利用可信任引导组件重写计算装置的被破坏组件并引导计算装置执行可信任引导组件的新拷贝或重新发起整个引导顺序。以这种方式,辅助硬件确保加载到处理器的操作存储器中的每个引导组件不是被感染或被破坏的。

在一个实施例中,本发明指向一种方法:用于利用计算装置中的辅助电路计算用于计算装置的引导组件的完整性检验值,其中引导组件包括要求计算装置的处理器执行的使计算装置进入操作模式的程序指令,确定所计算的完整性检验值是否与可接受的引导组件相关联,并在完整性检验与可接收的引导组件不相关联时,利用计算装置的辅助电路,用引导组件的可信任版本的拷贝替换引导组件。

在另一个实施例中,计算装置包含辅助电路,辅助电路包括,感染检测电路配置为计算用于计算装置的引导组件的完整性检验值,其中引导组件包括要求计算装置的处理器执行的使计算装置进入操作模式的程序指令,感染检测电路配置为确定完整性检验值是否与可接受的引导组件相关联,以及恢复电路配置为在完整性检验值与可接受的引导组件不相关联时,用引导组件的可信任版本的拷贝替换引导组件。

在另一个实施例中,一种系统包括:计算装置和存储用于所述计算装置的引导组件的可信任版本的可信任引导组件服务器。计算装置包含辅助电路,辅助电路包括完整性检验值计算器电路,计算用于计算装置的引导组件的完整性检验值,其中引导组件包括要求被计算装置的处理器执行的使计算装置进入操作模式的程序指令,感染检测电路确定完整性检验值是否与可接受的引导组件相关联,以及恢复电路在完整性检验值与可接受的引导组件不相关联时,利用从可信任引导组件服务器接收的引导组件的可信任版本的拷贝替换引导组件。

这里描述的技术可提供一种或多种优点。例如,由于恶意软件或感染软件不能访问存储可信任引导组件的原始拷贝的辅助硬件或可信任仓库的控制逻辑,使用装置上的辅助硬件执行完整性检验和替换动作防止感染阻止其自身的移除。通过增加成功检测和感染移除的可能性,使用这里描述的技术减少了要求装置的整个操作系统和其他非感染引导组件重新安装的可能性。

本发明的一个或多个实施例的细节将在附图和下列说明中阐述。本发明的其他特征、目的和优点将从说明和附图以及权利要求中变得显而易见。

附图说明

图1是示出了执行本公开中描述的被破坏引导组件的检测和替换技术的示例性系统的框图。

图2是示出了图1的系统的用户端装置的示例性细节的框图。

图3是示出了图2的用户端装置的装置体系结构的示例性细节的框图。

图4A是示出了用于图2装置的引导顺序的示例性引导组件的框图。图4B是示出了对应于图4A的示例性引导组件的示例性可信任引导组件的框图。

图5A和5B是示出了对于图2装置的用于根据这里描述的技术检测和替换被破坏引导组件的操作的示例性模式的流程图。

具体实施方式

图1是示出了执行本公开描述的被感染引导组件检测和选择性替换技术的示例性系统2的框图。在图1的实例中,系统2包括连接至企业网6的装置4。此外,在该实例中,装置4是计算装置,诸如个人计算机、膝上电脑、移动电话、网络电话、电视机顶盒、视频游戏系统、销售点装置、个人数字助理、中间网络装置、网络设施、超级计算机、大型计算机、嵌入式控制器、工业机器人、或能够与企业网6交互并在该企业网上通信的其他类型的装置。装置4可以提供接口(例如,显示器、话筒、键盘、鼠标等),用户10与该接口交互以执行装置4提供的软件应用程序并访问企业网6和公共网络12提供的资源。在一些实施例中,装置4是自动的并且不能与用户交互。

公共网络12连接至企业网6。企业网6和公共网络12可以包括有助于通过装置4访问内容的多个网络装置(图1中未示出)。多个网络装置中的每一个可以包括以下各项之一:路由器、交换机、服务器、数据库、集线器、防火墙、检测入侵/防御(IDP)装置和/或有助于数据转移到装置4并从该装置转移出的任意其他类型的网络设备或装置。

企业网6和公共网络12可以经由一个或多个基于数据包的协议(诸如因特网协议(IP)/传输控制协议(TCP))将内容传输到装置4。在这方面,企业网6和公共网络12可以经由离散的数据单元(通常被称为“数据包”)来支持数据的传输。因此,企业网6和公共网络12被称为“基于数据包的”或“数据包交换的”网络。虽然在本公开中描述为传输、传达、或支持数据包,但是企业网6和公共网络12可以传输根据由任意其他协议定义的任意其他离散的数据单元的数据,诸如由异步传输模式(ATM)协议定义的单元。

此外,企业网6和公共网络12可以每一个均为局域网(“LAN”),诸如令牌环或以太网、虚拟局域网(“VLAN”)、或其他类型的网络。企业网6和公共网络12可以包括一个或多个有线或无线链接。例如,企业网6可以是包括一个或多个以太网线缆的以太网。在另一实例中,公共网络12可以是使用无线射频传输来通信信息的无线保真(“Wi-Fi”)网络。

企业网6和公共网络12提供装置4期望访问的多种资源。在图1的实例中,企业网6包括质量控制服务器14和可信任引导组件8;典型地,企业网6还将连接至多种其他类型的装置(例如,文件服务器、打印机、电话、和电子邮件及其他类型的应用服务器)。公共网络12可以提供对网页服务器、应用程序服务器、公共数据库、媒体服务器、用户端装置、以及多种其他类型的网络资源装置和内容的访问。

企业网6在企业边界5之下操作,企业边界可以用防火墙装置、中间网络装置、入侵检测装置、因特网协议安全网关装置、或控制对一个或多个网络的访问的任意其他类型的装置来执行。典型地,在从企业边界5接收到许可之后,公共网络12经由企业网6向装置4提供内容。

在一些情况中,公共网络12提供的内容可以包括诸如病毒或其他木马、或蠕虫的恶意的软件(或“恶意软件”)。此外,包括在公共网络12中的装置可以突破企业边界5并使用企业网络6以用恶意软件感染装置4。感染装置4的恶意软件可以具有改变装置上的关键软件组件的能力。在许多情况下,恶意软件能够擦除、感染或改变负责加载装置4进入正常操作条件所必需的软件的软件引导组件。例如,装置4上呈现的病毒可以改变操作系统内核以阻止用户10与装置交互。在另一个实例中,病毒可以感染装置4的引导分区以在启动时得到对装置的控制。由于改变装置上的任何引导组件的用户错误或装置4组件(硬件或软件)错误,装置4还可以被迫坏,从而经历不理想操作。

根据本公开的技术,装置4包括可信任平台模块(“TPM”)电路20、在装置的引导顺序期间用于检测和替换的辅助硬件、具有可信任引导组件的感染引导组件。TPM电路20是与装置4的任意主处理器分离的硬件单元,并且可以是专用集成电路(ASIC)、域可编程门阵列(FPGA)、联合可编程逻辑装置(CPLD)、可编程逻辑阵列(PLA)、这些元件的任意组合、或能够执行感染检测和替换功能并且能够与装置4的特定其他硬件组件交互的任意其他类型的硬件。在一些实施例中,TPM电路20可以是能够运行来自装置4内部的可信任存储介质的专用软件或固件指令的单独的微处理器或微控制器,诸如不可访问由装置的主处理器执行的软件指令的只读存储器(ROM)。在一些实施例中,TPM电路20是修改的可信任平台模块芯片,该芯片基本上与可信任计算组织发布的“TPM MainPart 1 Design Principles Specification Version 1.2,”中描述的可信任平台模块芯片的说明书(其结合于此作为参考)一致。

大体上,在允许任意引导组件被加载到处理器的操作存储器并且被执行之前,TMP电路20检验组件的完整性以检测感染的存在。如果该组件出现感染或者完整性检验失败,则TPM电路20利用从可信任源获得的可信任引导组件的拷贝来仅选择性地替换被感染的组件。作为在本公开中使用的术语的可信任引导组件是已知没有感染和破坏的引导组件软件的版本。典型地,可信任源是被包括在装置4中的非易失性存储器装置。在一些实施例中,可信任源是不能被装置4的主处理器写或修改的知识库。通过利用从可信任源获得的可信任引导组件的拷贝来替换被感染组件,TPM电路20确保加载到操作存储器中的由装置4的处理器执行的引导组件是没有被感染和破坏的并且不会被引导进不期望的装置操作。

更具体地,在一个实施例中,装置4的硬件体系结构要求主处理器调用TPM电路20以加载并顺序执行每个引导组件。即,在加载并执行了一个给定引导组件之后,主处理器必须再次调用TPM电路20,并且TPM电路20必须输出一个或多个信号以允许主处理器加载并顺序执行下一个引导组件。如果要加载并执行的引导组件出现感染或完整性检验失败,则TPM电路20在输出这种信号之前,利用从可信任源获得的可信任引导组件的拷贝来仅选择性地替换被感染组件。例如,在利用对应的可信任引导组件拷贝替换特定的被感染引导组件(例如操作系统内核)之后,TPM电路20可以输出必需的信号以允许主处理器以引导顺序继续。以这种方式,利用可信任组件的拷贝替换破坏的组件对主处理器可以是无缝的和透明的。可选地,TPM电路20可以输出一个信号来引导主处理器以引导顺序重新运行一个或多个之前的引导组件。例如,如果TPM电路20由于操作系统内核组件感染而替换该操作系统内核,则TPM电路20之后可以引导装置4来重新运行用于将内核加载到操作存储器中的引导加载器。此外,在替换被感染引导组件之后,TPM电路20可以发起引起主处理器重新开始整个引导顺序的硬件复位。

在一些实施例中,在TPM电路20检验顺序中第一引导组件的完整性并且该第一引导组件被加载到存储器中之后,CPU 44和TPM电路20可以合作执行如上所述的完整性检验和选择性替换技术。CPU 44的协助可以在某些情况下增加引导组件被检验和加载的速度。

不是在检测到感染时发起重新启动或采取补救动作,TPM电路20可以在执行本公开技术之前简单地等待用户10发起的重新启动。(例如)非常迫切地需要装置4进行到操作模式中可以引起这种情况。在这种情况中,TPM电路20可以向用户10提供装置4在受威胁状态中操作的指示,因此使用户10在方便的时候重新启动装置4。该指示可以呈现为(例如)显示器上的消息、指示灯、鸣声或嘟嘟响、语音消息、电子邮件的形式、或用于通知用户10装置4受威胁的任意其他方法。

除了引导时(boot-time)检查和自动恢复,装置4可以周期性地对感染的指示进行自身检查。检查可以通过(例如)反病毒软件、性能监控软件、或TPM电路20来执行。在TPM电路20负责检查装置的情况下,其可以通过周期性地执行引导组件的完整性检验而自动地动作,或者是响应于来自装置4操作系统的请求(可能地由用户10发起的)、装置4上运行的程序的请求、或连接至企业网6的诸如质量控制服务器14的其他装置的请求而动作。在装置4怀疑一个或多个引导组件中存在感染的情况下,该装置可以根据本公开的技术发起重新启动来重新运行引导顺序。可选地,装置4可以停止操作,例如通过卸载操作系统,并引导TPM电路20执行当前引导组件的完整性检查并选择性地替换那些包含感染的组件。

在图1的实例中,可以选择企业系统管理者利用系统2附加地或可选地配置质量控制服务器14,以主动监控装置行为并补救连接至企业网6的装置上的感染。质量控制服务器14可以是高端服务器、工作站、数据中心、中间网络装置、网络设施、超级计算机、大型计算机、或能够监控网络上的其他装置行为的另一类型的装置。

例如,质量控制服务器14可以观察从装置4发送的网络通信并可以指示装置已被感染威胁并且(例如)在不期望的状态中操作的其他动作。在另一个实例中,质量控制服务器14可以使用端口扫描技术来识别装置4上不正常的打开端口,从而指出装置4上可能存在恶意软件。在另一实例中,质量控制服务器14监控来自装置4的详细描述装置4的生产率的电子报告,诸如连接工具的运行速度、数据产生或分析的速度、或其他生产率度量。质量控制服务器14可以确定装置4的不正常的低生产率是受威胁的指示。如另一附加实例,装置4可以直接向质量控制服务器14发送描述其状态和软件结构的信息,并连同发送一个请求,该请求要求服务器根据信息确定装置4是否受威胁。

在质量控制服务器14确定装置4受威胁的情况下,其可以引导装置4采取补救措施。例如,响应于来自质量控制服务器14的其受损威胁的信号或其他消息,装置4可以根据本公开的技术发起重新启动以重新运行引导顺序。在另一个实例中,装置4可以停止操作并引导TPM电路20采取补救措施,诸如用可信任版本替换被感染引导组件。一旦通知了感染,TPM电路20可以在重新运行引导顺序之前简单地等待用户10发起的重新启动。在这种情况下,TPM电路20可以向用户10提供装置4在受威胁状态中操作的指示。

在图1的实例中,网络系统2包括可选可信任引导组件服务器8,其存储可信任引导组件,并在请求时向装置4提供可信任引导组件的拷贝。可信任引导组件服务器8可以是高端服务器、工作站、数据中心、中间网络装置、网络设施、超级计算机、大型计算机、文件服务器、或能够安全地存储内容并在企业网6上传输存储的内容的其他类型的装置。可信任引导组件服务器可以包括受写保护的硬盘或其他非易失性存储介质(未示出)。在受写保护的存储介质的情况下,没有服务器管理者的物理干涉而修改可信任引导组件服务器存储介质是不可能的。以这种方式,存储在介质上的数据不会遭受恶意软件的破坏或感染。

如上所述,可信任引导组件典型地被存储在装置4中的非易失性存储器装置中。然而,在一些情况下,系统2的管理者可以发现值得为可信任引导组件维持中央知识库和可信任引导组件服务器8。在该情况下,TPM电路20通过安全网络通信(例如经由安全Socket层通信或其他加密的方法)来向可信任引导组件服务器8发信号,以获得并响应可信任引导组件的拷贝,利用该拷贝替换装置4上对应的被感染组件。在一些实施例中,TPM电路20可以合并网络接口卡(NIC)或不能到达装置的主处理器和在主处理器上执行的软件应用程序的其他网络连接,以为获得引导组件的可信任拷贝提供附加的安全性。此外,在一些情况中,系统2可以包括装置4和可信任引导组件服务器8之间的专用网络链接(未示出),其可以避免可信任引导组件服务器8连接至企业网6的需要。专用网络链接减少可信任引导组件服务器8和其中的可信任引导组件会被经由企业网6接收的感染威胁的可能性。此外,专用网络链接可以防止伪装攻击,以免连接至企业网6的受威胁装置伪装成可信任引导组件服务器以削弱系统2的操作。在一些实施例中,可以采用加密保护(例如会话安全或数字签名)来代替或结合专用网络连接。

大体上,系统2的管理者与质量控制服务器14交互,以便以可以单独得到并与诸如装置4的装置通信的形式维持可信任引导组件。系统2的管理者可以用更新的版本替换可信任引导组件服务器8上的特定可信任引导组件。在企业网6连接至实现本公开描述的技术的多个相似装置的情况下,每一个装置(例如装置4)都能够在没有管理者帮助的情况下下载可信任引导组件的更新版本。以这种方式,管理者可以有效地向连接至企业网6的装置发布更新的引导组件。

图2是采用示例性细节示出装置4的一个实施例的方框图。如上所述,装置4典型地是为多个硬件和软件模块提供操作环境的计算装置。为了清楚,诸如键盘、显示器、操作系统和在计算装置或设施中一般能找到的组件的特定组件没有在图2中示出。

在图2的实例中,装置4包括可信任引导组件存储装置40、引导组件存储装置42、网络接口34、TPM电路20、具有操作存储器36的中央处理单元(“CPU”)44、以及感染指示器38。

网络接口34促进装置4和企业网6之间的通信并且包括这种通信所需的所有硬件和软件组件。网络接口34可以是有线或无线网络接口。例如,网络接口34可以是以太网接口、Wi-Fi网络接口、或其他类型的网络接口。在一些实施例中,网络接口34与到上述相对于图1描述的可信任引导组件服务器8的专用网络链接交互。

CPU 44代表装置处理器并且可以包括用于执行包含在操作存储器36中的指令的一个或多个通用或专用目的处理器。操作存储器36包含装置4的典型操作所需的指令,并且大体上是诸如DRAM或SDRAM的RAM装置。

引导组件存储装置42包含作为程序指令或参数的装置4引导顺序的装置特定引导组件。引导组件存储装置42可以是电可擦除可编程只读存储器(EEPROM)、压缩磁盘可重写存储器(CD-RW)、光盘存储装置、磁盘存储装置或其他磁盘存储装置、专用盘分区、或可以用来存储程序指令或参数且可以被计算机访问的任意其他存储介质。此外,在装置4为网络可启动的情况下,引导组件存储装置42代表到网络分区的链接。引导组件存储装置42可以代表多个上述列出的装置,其中包括引导组件存储装置42的每个装置包含所请求的引导组件的不同子集。

引导组件存储装置42大体上是可写入的,以促进通过用户10或者管理者更新或改变装置4引导组件。例如,用户10可以向包括引导组件存储装置42的磁盘分区安装新的操作系统。在另一个实例中,用户10可以在包括引导组件存储装置42的第二分区上安装第二操作系统。该操作还要求其他引导组件的改变以加入第二操作系统的位置和引导指令。

通过公共网络12提供给装置4的内容可以包括诸如病毒或其他木马、或蠕虫的恶意的软件(或“恶意软件”)。此外,被包括在公共网络12中的装置可以突破企业边界5并且使用企业网6以用恶意软件来感染装置4。感染装置4的恶意软件可以擦除、感染、或改变包括引导组件存储装置42的引导组件。例如,在装置4上存在的病毒可以改变操作系统内核以阻止用户10与装置进行交互。在另一个实例中,病毒可以感染装置4的引导扇区以在启动时获得对装置的控制。作为改变任意引导组件的用户错误或装置4组件(软件或硬件)错误的结果,包括引导组件存储装置42的引导组件还可以被破坏,从而经历不理想操作。

可信任引导组件存储装置40包含作为程序指令或参数的对应于包括引导组件存储装置42的引导组件的可信任引导组件。可信任引导组件存储装置40可以是ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁盘存储器装置、或可以用于以指令或数据结构形式运载或存储期望的程序代码并可以被计算机访问的任意其他介质。可信任引导组件存储装置40典型地与引导组件存储装置42为物理或逻辑分离的。在一个示例性实施例中,可信任引导组件存储装置40是直接连接至TPM电路20的专用存储器装置。在另一个示例性实施例中,可信任引导组件存储装置40和引导组件存储装置42被存储在同一硬盘上但是位于不同的分区上。

在一些实例中,可信任引导组件存储装置40是不可写入的以最大化可信任引导组件的安全性。在其他实施例中,可信任引导组件存储装置40是可写入的,但是仅在用户10或管理者采取物理步骤来重写引导组件的范围。这种物理步骤可以包括(例如)移动和重写EEPROM、将JTAG兼容存储器芯片连接至编程器、或者替换存储器芯片或CD-ROM磁盘。在其他实施例中,可信任引导组件存储装置40通过具有足够权限访问用于重写可信任引导组件存储装置40的软件的用户10或管理员可写入。一般,在重写可信任引导组件之前,用户10或管理员将检验可信任引导组件的新版本的完整性以确保新版本没有以任意方式被破坏。例如,用户10可以检验新版本被可信任的第三方数字签名。在另一实施例中,用户10可以运行一个程序以计算新版本的密码杂凑并将结果与计算的杂凑值必须与之相符的已知可信任值进行比较。

如图1上下文中所述的TPM电路20是用于在装置的引导顺序期间检测被感染引导组件并利用可信任引导组件来替换被感染引导组件的辅助硬件。TPM电路20包括感染检测电路22、TPM值计算电路24、TPM值26、恢复电路28、和通信电路32。

TPM电路20的每个基于电路的组件被实现为微处理器、微控制器、ASIC、FPGA、CPLD、或PLA,这些元件的任意组合、或能够执行每个组件的各个功能的任何其他类型的硬件。

通信电路32为TPM电路20提供网络通信功能性。例如,通信电路32可以是一组硬件模块,其提供硬件路径,TPM电路20利用该硬件路径可以向网络接口34发信号。

TPM值26包括一组可信任TPM值并且可以实现为ROM、EEPROM、和其他形式的非易失性存储器中的表、列表、或其他的数据结构。在引导组件检验和替换过程之前,通过在包括可信任引导组件存储装置40的可信任引导组件上执行密码杂凑功能来建立可信任TPM值。所得到的用于每个可信任引导组件的可信任TPM值被存储在TPM值26中。TPM值26可以包括用于每个引导组件的多个计算的TPM值。这些对应于可以被许可地在装置4上执行的多个引导组件版本。

在典型的实施例中,TPM电路20在提供至TPM电路20的电源稳定时开始操作。由于电源通常在装置4上电之后不久稳定,TPM电路20立即开始检验用于引导顺序的引导组件的完整性并在检测到破坏时替换那些组件。在其他实施例中,装置4可以直接向TPM电路20发信号以发起完整性检验和替换操作。

引导组件完整性检验和替换如下进行。首先,感染检测电路22从引导组件存储装置42获得第一引导组件(例如,BIOS)。感染检测电路22之后向TPM值计算器电路24发信号以执行(例如)组件的密码杂凑以产生相应的TPM值。TPM值计算器电路24可以使用用于计算TPM值的任意已知的杂凑功能,诸如MD5、SHA-1等。TPM值计算器还可以使用其他功能,诸如循环冗余校验(CRC)来计算TPM值。因此TPM值可以是密码杂凑、CRC值、或作为引导组件分类计算并用作完整性检验值的任意其他值。在一些实施例中,TPM值是由修改的可信任平台模块生成的数字签名,如在“TPMMain Part 1 Design Principles Specification Version 1.2.”中描述的。之后,感染检测电路22接收来自TPM值计算器电路24的计算的TPM值并将所计算的TPM值与包括TPM值26的可信任TPM值的集合进行比较。如果计算的TPM值在可信任TPM值的集合中找到,则引导组件与允许执行的引导组件的版本相同,从而其不是受威胁的。作为结果,之后,感染检测电路22引导CPU 44将该引导组件下载到运算存储器36中。可选地,感染检测电路22自身将该引导组件下载到运算存储器36中。

如果在TPM值比较步骤期间在可信任TPM值集合中没有找到计算的TPM值,则引导组件是受威胁的或者被破坏的。在这种情况下,感染检测电路22向试图从受威胁引导组件恢复的恢复电路28发信号。为了通知请求替换的特定引导组件的恢复电路28,感染检测电路22包括一个诸如名字或存储位置的组件ID值(未示出),用于信号中的受威胁引导组件。

恢复电路28包括查找表(LUT)30,其将组件ID值映射到可信任引导组件40或可信任引导组件服务器8上的存储位置。在被标注为查找表时,LUT 30可以是能够将组件ID值映射到存储位置的一定数量的硬件结构中的任意并且可以实现在ASIC、FPGA、CPLD、PLA或在功能上相似的装置中。

如果恢复电路28被配置为利用来自可信任引导组件存储装置40的相应的可信任引导组件替换受威胁引导组件,则恢复电路28请求LUT 30确定可信任引导组件存储装置40中的合适的可信任引导组件的位置。因此,恢复电路28使用该地址来获得该合适的可信任引导组件。

然而,如果恢复电路28被配置为利用来自可信任引导服务器8的相应的可信任引导组件替换受威胁引导组件,则恢复电路28请求LUT 30确定可信任引导组件服务器8的网络地址和可信任引导组件服务器8中的可信任引导组件的位置。网络地址可以是IP地址、网络名称(SSID)、或用于识别连接到企业网6的装置的任意其他参考。恢复电路28利用从LUT 30获得的网络地址和位置来向通信单元32发信号以(经由网络接口34)请求可信任引导组件服务器8响应一个合适的可信任引导组件。在一些实施例中,LUT 30不包含可信任引导组件服务器8中的可信任引导组件的位置。这里,恢复电路28利用组件ID向通信电路32发信号以(经由网络接口34)请求可信任引导服务器8响应一个合适的可信任引导组件。一旦接收了来自装置4的请求,可信任引导组件服务器8响应一个合适的可信任引导组件。

已经获得来自可信任源的合适的可信任引导组件的恢复电路28开始在可信任引导存储装置42中利用可信任引导组件重写受威胁引导组件。以这种方式,装置4可以确保受威胁引导组件在引导顺序期间没有机会被下载或执行。在替换操作之后,恢复电路28典型地向装置4发信号以重新发起引导顺序(即重新启动),以促进一个无害的引导组件。然而,在一些实施例中,恢复电路28附加地将可信任引导组件下载到操作存储器36,用来通过CPU 44执行并通过检验继续,并且,如果需要,替换引导顺序中之后的组件。在其他实施例中,恢复电路28向CPU 44发信号以将最新恢复的来自引导组件存储装置42的引导组件下载到操作存储器36中用于执行。之后恢复电路28通过检验继续并且如果需要,替换引导顺序中之后的组件。

用于装置4的引导顺序典型地包含必须在装置进入其正常操作条件之前被下载和执行的多个引导组件。相对于建立可信任计算库(必须被正确操作的软件和硬件的集合(即,没有受威胁))所必须的顺序中的每个引导组件来执行上述技术,以用于装置4满足其期望的行为并维持安全。例如,用于装置4的引导顺序可以从BIOS继续到到操作系统的引导装载程序。对于该示例性引导顺序,TPM电路20首先为BIOS,之后为引导装载程序,之后为操作系统执行完整性检查。在该实例中,如果操作系统是建立可信任计算库所请求的最终组件,则对于引导组件的完整性检查在无威胁操作系统下载时结束。在该阶段,TPM电路20进入等待状态,并且装置4进入正常操作。

在其正常操作期间的任意点上,装置4可以向TPM电路20发信号以在引导组件上执行完整性检验和替换技术。如关于图1的上述说明,装置4可以响应于来自质量控制服务器14的请求发起该技术。此外,在装置4上运行的反病毒或其他检测软件可以怀疑一个或多个引导组件是受威胁的并且引导装置4利用TPM电路20采取恢复措施。在另一个实例中,诸如操作系统的在装置4上运行的其他软件可以配置为周期性地向TPM电路20发信号。质量控制服务器14可以通过向网络接口34发送网络消息来发起完整性检验和替换技术,其又经由通信电路32向TPM电路20发信号。最终,TPM电路20自身可以配置为周期性地执行该技术。

在装置4已经进入正常操作之后发生完整性检验和替换操作的情况下,TPM电路20执行上述技术的一个子集。TPM电路20的多种电路组件用作检验引导顺序中的每个引导组件的完整性。如果找到被感染引导组件,则TPM电路20向装置4发信号以重新发起引导顺序(即,重新启动),以根据上述技术替换被感染引导组件。在高安全环境中,可以强制受威胁装置4的立即重新启动,以防止由于感染敏感信息暴露给未授权的代理者。

在发现感染时不发起装置4的重新启动,TPM电路20可以可替换地向感染指示器38发信号以向用户10报警装置4受威胁。即,在确定出现感染之后,TPM电路20可以简单地警告用户10该感染而不是立即采取恢复动作。以这种方式,装置4可以在(例如)存在对于装置服务的紧急需要的情况下继续操作。感染指示器38可以是(例如)扩声器、LED、或包括向用户10发送电子邮件或在显示器上提出警告的能力的软件模块。在适当的时候,用户10可以重新启动装置4,从而发起TPM电路20以执行上述的引导组件完整性检验和替换技术。例如,用户10可以在支持对于以后的恢复的所有用户设置之后重新启动装置4。在其他实施例中,感染指示器38可以向用户呈现立即执行引导组件完整性检验和替换技术的选项。

图3是示出了图2装置的示例性系统构架的框图。可信任引导组件存储装置82是图2的可信任引导组件存储装置40的实现。引导组件存储装置84是图2的引导组件存储装置42的实现。网络接口装置86是网络接口34的实现。操作存储装置88是操作存储器36的实现。最后,指示灯92是感染指示器38的实例。

可信任引导组件存储装置82、引导组件存储装置84、和网络接口装置86每个都彼此交互,并且使用系统总线100与TPM电路20交互。CPU 44和操作存储装置88彼此交互,并且使用系统总线102与TPM电路20交互。系统总线100和102表示使得信号能够在与其连接的装置之间通过的多个有线连接。系统总线100和102可以是彼此串联或并联的总线。连接的装置可以使用,并且系统总线100和102可以支持任意数目的总线协议(包括I2C、PCI、AGP、或超文本传输),以向另一个发信号。

示出的指示器灯92经由线104直接连接至TPM电路20。线104可以包括其他基本电子组件,诸如采用指示器灯92所需的电阻器或电容器。

图4A是示出了图2装置的示例性引导顺序的框图。图4B是利用示例性可信任引导组件示出包括在图2装置中的可信任引导组件存储装置40的框图。包括在可信任引导组件存储装置40中的每个可信任引导组件对应于图4A的引导顺序中的引导组件。图4A的示例性引导顺序中的第一引导组件是BIOS 110。在检验且用可信任BIOS 120替换BIOS(如果需要的话)之后,TPM电路20继续在引导分区112、引导装载程序114、内核116、并最终在内核模块118上执行该技术。一旦内核模块的未受威胁版本被下载到操作存储器中,装置4包含允许装置根据其期望的行为操作并维持基本安全水平的可信任计算库。

图5A和5B是示出了用于图2装置的辅助电路的用于根据上述技术检测和替换破坏的引导组件的操作的示例模式的流程图。

最初地,TPM电路20接收装置2的引导顺序已经被启动的通知(200)。TPM电路20通过发起用于检验装置2的引导顺序组件完整性的过程来处理该通知(202)。为了开始该过程,TPM电路20识别通过装置2被下载到操作存储器36中的引导顺序中的下一个引导组件(204)。之后TPM电路20执行识别组件的密码杂凑以产生对应的TPM值(206)。为了确定引导组件是否被破坏,感染检测电路22将计算的TPM值与一组可信任TPM值26进行比较(208)。

如果感染检测电路22在可信任TPM值26中找到计算的TPM值,则引导组件与可允许地执行的引导组件的版本相同,从而是不受威胁的。装置2的CPU 44现在可以访问并调用检验的引导组件,从而推进了引导顺序。之后TPM电路20在下一个引导组件上执行一组相同的操作;该过程继续直到引导顺序中的所有引导组件被检验(210)。

然而,如果TPM值没有在可信任TPM值26的一组中找到,则引导组件是破坏的并且使用来自可信任仓库的对应的可信任引导组件替换(212)。TPM电路20获得来自可信任仓库(在图5B的实例中为装置2的专用存储器或存储介质)的可信任引导组件,诸如可信任引导组件存储装置40,或配置为提供可信任引导组件的网络装置,诸如可信任引导组件服务器8(216)。

在可信任引导组件存储装置40维持可信任引导组件的情况下,恢复电路28使用破坏的引导组件的组件ID来获得可信任引导组件存储装置40中对应的可信任引导组件的地址(218)。之后恢复电路28在可信任引导组件存储装置40中根据其地址读取该可信任引导组件(220)。最后,恢复电路28利用可信任引导组件在引导组件存储装置42中重写破坏的引导组件(228)。

在可信任引导组件被维持在可信任引导组件服务器8上的情况下,恢复电路28使用破坏的引导组件的组件ID来确定可信任引导组件服务器8的网络地址和可信任引导组件服务器8中对应的可信任引导组件的位置(222)。恢复电路28使用获得的网络地址和位置向通信电路32发信号以(经由网络接口34)请求可信任引导组件服务器8响应合适的可信任引导组件(224)。通信电路32接收由可信任引导组件服务器8响应而发送的可信任引导组件。最终,恢复电路28使用可信任引导组件重写可信任引导组件存储装置42中的破坏的引导组件(228)。

在重写破坏的引导组件之后,TPM电路20提示装置2的重新引导以重新发起引导顺序(214)。

已经描述了本发明的多种实施例。这些和其他实施例均落入权利要求的范围之中。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号