具有自动完整性参考生成及维护的计算设备的制作方法

文档序号:6418187阅读:265来源:国知局
专利名称:具有自动完整性参考生成及维护的计算设备的制作方法
技术领域
本发明涉及计算领域。更具体来说,本发明涉及可信计算。
背景技术
由于网络化装置如计算机、数字助理、无线电话等的激增,以及由局域网、地区网和广域网,如互联网提供给这些装置的无所不在的接入,即使最受保护的可执行内容和数据也会容易地受到损害。无论这种损害是由病毒、未授权的接入引起的损害,还是简单地由于自然事件如元件的暴露,可执行内容和数据完整性和安全性的重要性无论如何都不可能被估计过高。
不幸的是,在现有技术下,完整性和安全性问题已经大多数被作为安装后问题处理。也就是说,未授权接入的拒绝,可执行内容和数据完整性的保护等已通过与安装过程分离开的协议、应用程序和工具来处理,。
图1说明了用于将软件产品或实体安装到计算设备上的典型现有技术的安装过程。在这里所用的术语“产品”和“实体”基本上同义于表达这样的事实为了应用的目的,安装的对象可以是广范围的“实体”。这些“实体”可包括,但不限于,简单的“实体”,其每个只具有少量的部件并且通常不被称为“产品”,无论它们是否具有商业价值,以及复杂的“实体”,其每个具有大量的部件并且通常被称作“产品”,且典型地具有商业价值。
如所说明的,典型地,具有许多组件110的软件产品/实体102具有一个或多个相关联的说明书和安装指导文件104。总起来说,相关联的说明书和安装指导文件104包括例如软件产品/实体102的特征列表,部件列表114,特征和部件之间的关联116,以及关于怎样和/或在哪里存储部件的指导118。此外,如果是可应用的,相关联的说明书和安装指导文件104也可包括定制指导120,编辑指导122,链接指导124和接入建立指导126。
一般来说,组件110和特征两者都由部件构成。从产品/实体102的结构观点来看,组件110是部件的集合,而从外部用户的观点来看,特征是部件的集合。如在这里所用的,这些术语不一定意味着是互斥的。这些术语的精确限定和描述对于本发明的理解或实施不是必须的。因此,它们将不被限制性地阅读。
继续参阅图1,典型地,安装者100阅读128产品说明书和安装指导文件112,然后基本上基于所提供的说明书和安装指导来安装该产品/实体102。典型地,该安装导致由可执行内容144和相关联的资源146构成的产品/实体102的组件110以允许可执行内容144可被检索用于执行的方式存储在文件系统106中。各种产品/实体相关的信息148,如所安装的部件、它们共享功能的使用等可被存储在系统存储库108中。
除了阅读产品/实体说明书和安装指导104之外,安装者100典型地还阅读202产品/实体文件102以获得所述部件,并且按指导存储132所获得的部件。一旦存储该部件,安装者100典型地请求134来自用户的定制输入,然后依照所提供的指导和所接收的定制输入将该产品编辑136并链接138到一起。此外,对于设计用于交互使用的产品/实体102,典型地,该安装过程还可包括建立用户接入机构,例如“开始”图标等。
因此,如果安装过程可被增强以助于计算设备,或只是可编程设备完整性的安全防护,那么它是值得做的。


本发明将借助于附图中所说明的典型实施例,其非限制,来描述,其中同样的参考符号表示同样的元件,并且其中图1说明现有技术的实例安装过程;图2说明引入本发明讲解内容的另一个实例安装过程;
图3是根据一个实施例进一步详细说明图2中的完整性参考(integrityreference)数据结构;图4是根据一个实施例说明图2中用于自动更新该完整性参考数据结构的该完整性管理器相关方面的操作流程;图5是根据一个实施例说明图2中用于进行周期性的安装后完整性检查的该完整性管理器相关方面的操作流程;以及图6是根据一个实施例说明适合用于施本发明的实例计算机系统。
具体实施例方式
本发明包括一种方法和设备,该方法和设备通过采用控制类型的抽象界面来促进软件实体之间的交互作用。
在下列描述中,本发明的多种方面将被描述。然而,对本领域的技术人员来说显而易见的是,可以用本发明的仅仅一部分或者全部方面来实施本发明。为了解释的目的,特定的数字、材料和配置被提出以便于提供对本发明的全面理解。然而,对本领域的技术人员来说显而易见的是,没有这些特定的细节本发明也可被实施。在其它情况中,众所周知的特征被省略或简化以便于容易理解本发明。
术语部分描述将以数据处理术语给出,如数据、选择、检索、生成等,其与本领域的技术人员用以将他们的工作实质传达给本领域的其他技术人员所采用的方式一致。同样被本领域的技术人员所理解的,这些量采用电、磁或光信号的形式,其能够通过处理器及其子系统的电和/或光组件被存储、传送、组合和其他的操作。
部分描述将采用各种缩写,包括但不限于

段标题,说明顺序和实施例段标题仅被采用以提高可读性,并且它们不被解释为限制或缩小本发明。
各种操作将作为多重分立步骤用最有助于理解本发明的方式依次被说明,然而,该描述的顺序不应被理解为暗示这些操作一定是必须依赖顺序的。具体来说,这些操作不需要以给出的顺序进行。
短语“在一个实施例中”被反复使用。该短语一般不是指相同的实施例,但也可以是。术语“包括”、“具有”和“包括”是同义的,除非上下文另外指示。
概观图2是根据一个实施例,在用本发明的讲授来增强的图1中的实例安装过程的上下文中,示出本发明的概观。如所说明的,根据本发明,安装管理器202被提供以补充安装者100。
简言之,完整性管理器202被配备为作为安装过程的部分,来帮助安装者100使安装到该主计算设备的具有完整性族(integrity family)和完整性测量的软件产品/实体102的每一部分相互关联,并将该信息存储到完整性参考数据结构204。此外,完整性管理器202被配备以至少使用存储在该完整性参考数据结构204中的该信息在该主计算设备上进行周期性的安装后完整性检查。
这样,完整性管理器202可容易地检测并报告该计算设备的恶意受损,特别是如果软件产品/实体到该主计算设备的全部安装是通过安装者100进行的情况。
术语“主计算设备”是指这样的计算设备完整性管理器202至少部分在其上执行,以验证其“相关”组件的完整性。典型地,完整性管理器202完全在该“主计算设备”中执行。然而,在替换的实施例中,本发明设想该验证过程的部分,例如签名的计算部分,可以在另一个相伴/支持计算装置上进行。此外,该“计算”设备可以仅是任何可编程的设备。
典型地,构成“受损”的内容是依赖于组件的。例如,对可执行内容来说,它可以是该可执行内容的签名不再匹配已知的“好的”签名,但是对于某些关键的系统数据,它可以是当前值不匹配已知的“好的”值或者在已知的“好的”值的范围内。
简单来说,构成“优良”的内容可能是依赖应用的,也就是说,随本发明的应用而变化。
数据组织图3是根据一个实施例进一步详细说明相关联的数据结构204。对于该实施例,数据结构204包括具有许多子完整性族对象344的根对象332,其又具有许多子完整性族成员对象352。
每个完整性族对象342具体来说包括完整性族属性344,和受损级(level of compromise)346。从完整性保证的观点,完整性族属性344被用于识别组件的“族”。一个为了完整性保证的目的将软件产品/实体102的组件组织到完整性族的实例是根据该组件是否为该操作系统内核的成员,共享/非共享库,该组件是否已经给予接入特权等等来组织该组件。也就是说,该组件被组织到“该操作系统的特权内核组件”、“该操作系统的其它特权组件”、“该操作系统的非特权组件”、“特权且非共享库组件”、“特权且共享库组件”、“非特权且非共享库组件”、“非特权且共享库组件”等的族。
这里所用的术语“特权”是指该组件在该主计算设备上进行某些操作中的“权限”,例如该组件是否可以接入该主计算设备的某些寄存器和/或存储器位置。典型地,在“特权”和“非特权”实体之间的划界是依赖操作系统的。
在另一实施例中,可用组织的其它方式来代替。
受损级346被用于在该完整性族的成员未通过完整性检查的事件中表示风险级。该风险级使能完整性管理器202或者其它安全管理实体基于该风险级确定补救动作。例如,在一个实施例中,该风险水平使能该完整性管理器202确定软故障转移是否仍会发生。
基于完整性的软故障切换是提交的标题为“Computing Environmentand Apparatuses with Integrity based Fail Over”的共同未决申请的主题,其在这里被全部并入作为参考(本申请的美国版本)。
每个完整性族成员对象352具体包括成员ID属性354,成员类型属性356和完整性测量属性358。成员ID属性354被用于专门表示或识别组件,例如可执行内容、系统数据等的名字,而成员类型属性356被用于表示被命名组件的类型,也就是说,它是否为可执行内容、系统数据等。完整性测量属性358表示待用于确定该完整性族成员是否将被认为是受损的测量,例如可执行内容或系统数据值的签名。签名可以是以MD5,SHA-1或其它相似种类的散列值的形式。
在其它的实施例中,可使用其它数据组织来代替。
完整性管理器图4是根据一个实施例说明图2中用于使组件/部件(component/part)与完整性族和完整性测量相关联的该完整性管理器相关方面的操作流程。如所说明的,一旦被安装者100调用使组件/部件与完整性族和完整性测量相关联,完整性管理器202就首先确定该软件产品/实体102的开发者是否已提供用于该组件/部件的完整性族(例如,通过说明书/指导104),块402。
如果该软件产品/实体102的开发者未提供用于该组件/部件的完整性族,则完整性管理器202确定用于该组件/部件的完整性族,例如基于该组件/部件的性质,块404。
一旦确定用于该组件/部件的完整性族,完整性管理器202就确定该软件产品/实体102的开发者是否已提供用于该组件/部件的完整性测量(例如,通过说明书/指导104),块406。
如果该软件产品/实体102的开发者未提供用于该组件/部件的完整性测量,则完整性管理器202确定用于该组件/部件的完整性测量,例如通过生成用于该组件/部件的散列值(hash value),如MD5或SHA-1,块408。
下一步,完整性管理器202确定该对应的完整性族对象是否已先前在完整性参考数据结构204中被产生,块410。如果该对应的完整性族对象先前未被产生,则完整性管理器202在完整性参考数据结构204中产生该完整性族对象342,块412。
然后,一旦确定该对应的完整性族对象342先前已被产生,或者产生对应的完整性族对象342时,该完整性管理器202就产生该完整性族成员对象352,块414。
图5a-5b是根据一个实施例的说明图2中用于在该计算设备上周期性进行完整性检查的该完整性管理器相关方面的操作流程。如所说明的,在调用中,例如在该主计算设备的初始化之后,完整性管理器202确定是否到了在该主计算设备上进行完整性检查的时间,块502。如果不是,完整性管理器202就等待进行该完整性检查的时间。如果到了该时间,完整性管理器202就在该主计算设备上进行该完整性检查,块504。
在替换的实施例中,完整性管理器202可连续进行该完整性检查。也就是说,完整性检查一被完成,完整性管理器202就可在该主计算设备上进行完整性检查,没有等待。
图5b是根据一个实施例说明用于进行完整性检查的完整性管理器202相关部分的操作流程。如所说明的,完整性管理器202首先选择完整性族以开始验证它的组件,例如该操作系统的特权内核,块512。选择完整性族后,完整性管理器202就选择该完整性族的成员,块514。该选择可使用所较早描述的数据或功能组织204来做。
选择完整性族成员后,完整性管理器202就验证它的完整性,块516。该动作可包括验证可执行组件的状态符合所期望的签名,例如MD5或SHA-1,或者系统数据的状态符合所期望的值等。
在块518处,完整性管理器202确定该组件/数据是否通过该验证检查。如果完整性管理器202确定该组件/数据没有通过该验证检查,它就进一步确定该失败是否将被认为是严重的。该确定例如可以是基于与该组件/数据的完整性族相关联的受损的严重性,块520。
如果该失败将被认为是严重的失败,那么完整性管理器202立即终止该验证过程,并且启动补救操作,其是依赖应用的。适当的补救操作实例可包括引起该主计算设备关闭。
如果该失败不被认为是严重的失败,那么完整性管理器130可仅记录该非关键的完整性失败,块522,并且在块524处继续。
回到块518处,如果完整性管理器202确定该组件/数据通过该完整性验证,那么它也在块524处继续。
在块524处,完整性管理器202确定是否还有该选定的完整性族的成员尚待被验证。如果是这样,完整性管理器202返回到块514,并且从较早描述处继续。
如果该选定的完整性族的所有成员已经都被验证,那么完整性管理器202在块526处继续,并且确定是否还有的完整性族尚待被验证。如果是这样,完整性管理器202就返回到块512,并且从较早描述处继续。
如果所有完整性族都已经被验证,则完成该完整性验证。
实例计算机系统图6是根据一个实施例说明适合作为主计算设备的用于实施本发明的实例计算机系统。如所示,计算机系统600包括一个或多个处理器602,和系统存储器604。另外,计算机系统600包括大容量存储器606(如磁盘,硬盘驱动,CDROM等),输入/输出装置608(如键盘,光标控制等)和通信接口610(如网络接口卡,调制解调器等)。这些元件通过系统总线612被互相耦合,系统总线612代表一个或多个总线。在多总线的情况中,它们通过一个或多个总线桥被桥接(未示出)。
这些元件的每一个都执行它在现有技术中已知的传统功能。具体来说,系统存储器604和大容量存贮器606被采用以存储执行完整性管理器202的该编程指令的工作拷贝和永久拷贝。该编程指令的永久拷贝可以通过例如分布介质(未示出)或通过通信接口610(从分布服务器(未示出))加载到在工厂或者在实地的大容量存贮器606。
这些元件602-612的构成是已知的,因此将不被进一步描述。
结论和结语这样,从上面的描述可以看出,一种新颖的计算设备已经被描述,其具有增强的计算完整性,包括完整性参考的自动生成及维护。
尽管本发明根据上述的实施例被描述,但是那些本领域的技术人员将认识到本发明不限于所描述的实施例。在所附权利要求的精神和范围内本发明可通过修改和变更被实施。因此,本说明将被看作示例性的而不是对本发明的限制。
权利要求
1.计算设备中的一种操作方法,其包括在将软件实体安装到该计算设备期间自动更新该软件实体的一个或多个完整性参考;以及至少部分基于在该软件实体的安装期间被自动更新的该软件实体的所述一个或多个完整性参考,周期性确定该计算设备的完整性是否受损。
2.如权利要求1的方法,其中所述在该软件实体的安装期间该软件实体的一个或多个完整性参考的自动更新包括在该软件实体的安装期间自动确定用于该软件实体组件的完整性族。
3.如权利要求2的方法,其中所述在该软件实体的安装期间用于该软件实体组件的完整性族的自动确定包括在该软件实体的安装期间自动确定是否指定用于该软件实体组件的完整性族,以及如果没有指定用于该软件实体组件的完整性族,则自动分配用于该软件实体组件的完整性族。
4.如权利要求2的方法,其中所述完整性族是从以下各项中选择的一个操作系统的特权内核,该操作系统的其它特权组件,该操作系统的非特权组件,特权且非共享库组件,特权且共享库组件,非特权且非共享库组件,以及非特权且共享库组件。
5.如权利要求1的方法,其中所述在该软件实体的安装期间该软件实体的一个或多个完整性参考的自动更新包括在该软件的安装期间自动确定用于该软件实体组件的签名。
6.如权利要求5的方法,其中所述在该软件实体的安装期间用于该软件实体组件签名的自动确定包括在该软件实体的安装期间自动确定是否提供用于该软件实体组件的签名,以及如果没有指定用于该软件实体组件的签名,则自动生成用于该软件实体组件的签名。
7.如权利要求5的方法,其中所述签名是MD5和SHA-1中选择的一个。
8.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定包括,至少部分基于在该软件实体的安装期间被自动更新的该软件实体的所述一个或多个完整性参考,连续确定该计算设备的完整性是否已受损。
9.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定的每一个包括,至少部分基于在该操作系统特权内核的安装期间被自动更新的该操作系统特权内核的完整性参考,验证该计算设备的操作系统的特权内核尚未被包括。
10.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定的每一个包括至少部分基于在其它特权软件组件的安装期间被自动更新的所述其它特权软件组件的完整性参考,验证该计算设备的其它特权软件组件尚未被包括。
11.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定的每一个包括至少部分基于在共享的非特权软件组件的安装期间被自动更新的所述共享的非特权软件组件的完整性参考,验证该计算设备的共享的非特权软件组件尚未被包括。
12.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定的每一个包括至少部分基于在非共享且非特权的软件组件的安装期间被自动更新的所述非共享且非特权的软件组件的完整性参考,验证该计算设备的非共享且非特权的软件组件尚未被包括。
13.如权利要求1的方法,其中所述该计算设备的完整性是否已受损的周期性确定的每一个包括至少部分基于在该计算设备的系统软件的安装期间被自动更新的某些指定的系统数据的完整性参考,验证该计算设备的所述指定的系统数据尚未被包括。
14.一种计算设备,包括存储介质,其已将多个编程指令存储在其中,所述编程指令被设计用于在将软件实体安装到该计算设备期间自动更新该软件实体的一个或多个完整性参考,并且至少部分基于在该软件实体的安装期间被自动更新的该软件实体的所述一个或多个完整性参考,周期性确定该计算设备的完整性是否已受损。处理器,其被耦合到该存储介质以执行所述编程指令。
15.如权利要求14的设备,其中所述编程指令被设计以通过在该软件实体的安装期间自动确定用于该软件实体的组件的完整性族来在该软件实体的安装期间进行所述一个或多个完整性参考的自动更新。
16.如权利要求14的设备,其中所述编程指令被设计以在该软件实体的安装期间进行用于该软件实体的组件的完整性族的所述自动确定,其是通过在该软件实体的安装期间自动确定用于该软件实体的组件的完整性族是否被指定,并且如果未指定用于该软件实体的组件的完整性族,则自动分配用于该软件实体的组件的完整性族。
17.如权利要求15的设备,其中所述完整性族是以下各项中选择的一个操作系统的特权内核,该操作系统的其它特权组件,该操作系统的非特权组件,特权且非共享库组件,特权且共享库组件,非特权且非共享库组件,以及非特权且共享的库组件。
18.如权利要求14的设备,其中所述编程指令被设计为在该软件实体的安装期间通过自动确定用于该软件实体的组件的签名在该软件实体安装期间进行所述一个或多个完整性参考的自动更新。
19.如权利要求18的设备,其中所述编程指令被设计以在该软件实体的安装期间进行用于该软件实体组件的签名的所述自动确定,其是通过在该软件实体的安装期间自动确定是否提供用于该软件实体组件的签名,并且如果未指定用于该软件实体组件的签名,则自动产生用于该软件实体组件的签名。
20.如权利要求18的设备,其中所述签名是MD5和SHA-1中选择的一个。
21.如权利要求14的设备,其中所述编程指令被设计为至少部分基于在该软件实体安装期间被自动更新的该软件实体的所述一个或多个完整性参考,通过连续地确定该计算设备的完整性是否已受损来进行该计算设备完整性是否已受损的所述周期性确定。
22.如权利要求14的设备,其中所述编程指令被设计为至少部分基于在该操作系统特权内核的安装期间被自动更新的该操作系统特权内核的一个或多个完整性参考,通过验证该计算设备操作系统的特权内核尚未被包括,进行该计算设备的完整性是否已受损的每个周期性确定。
23.如权利要求14的设备,其中所述编程指令被设计为至少部分基于在所述其它特权软件组件的安装期间被自动更新的所述其它特权软件组件的一个或多个完整性参考,通过验证该计算设备的其它特权软件组件尚未被包括,进行该计算设备的完整性是否已受损的每个所述周期性确定。
24.如权利要求14的设备,其中所述编程指令被设计为通过验证该计算设备的共享的非特权软件组件尚未被包括,进行该计算设备的完整性是否已受损的每个所述周期性确定。
25.如权利要求14的设备,其中所述编程指令被设计为至少部分基于在所述非共享且非特权软件组件的安装期间被自动更新的所述非共享且非特权软件组件的一个或多个完整性参考,通过验证该计算设备的非共享且非特权软件组件尚未被包括,进行该计算设备的完整性是否已受损的每个所述周期性确定。
26.如权利要求14的设备,其中所述编程指令被设计为至少部分基于在该计算设备系统软件的安装期间被自动更新的所述指定系统数据的一个或多个完整性参考,通过验证该计算设备的某些指定的系统数据尚未被包括,进行该计算设备的完整性是否已受损的每个所述周期性确定。
27.一种设备,包括用于在将该软件实体安装到该设备期间自动更新软件实体的一个或多个完整性参考的装置;以及至少部分基于在该软件实体的安装期间被自动更新的该软件实体的所述一个或多个完整性参考,用于周期性确定该设备的完整性是否已受损的装置。
全文摘要
一种设备,其被配备为当软件实体安装到该设备时自动更新该软件实体的一个或多个完整性参考。该设备被进一步配备,使得至少部分基于该软件实体的一个或多个完整性参考来周期性确定该设备的完整性是否已受损,所述完整性参考在该软件实体安装期间被自动更新。
文档编号G06FGK1688972SQ03824383
公开日2005年10月26日 申请日期2003年9月11日 优先权日2002年9月19日
发明者托马斯·E·古德, 罗伯特·A·迪佛科, 吉恩·霍·基姆 申请人:特里普怀尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1