用于控制计算机系统上组件的运行的系统和方法

文档序号:6567697阅读:246来源:国知局

专利名称::用于控制计算机系统上组件的运行的系统和方法
技术领域
:本发明涉及一种用于控制计算机系统中组件的运^"的系统和方法。具体地,本发明涉及一种系统和方法,其用于控制对组件的授权以在对变化具有容差的计算机系统中运行。该组件可以是软件组件或石更件组件。
背景技术
:计算机系统中给定软件应用(application)或计算机程序的使用通常在许可下管理,该许可将特定使用权限分配给指定的计算机系统。然而,软件应用和计算机程序的非法使用的情况是普遍的,并且在监视计算机系统中(特别在软件应用和/或硬件设备随时经历改变的计算机系统中)软件应用或计算机程序的非法使用上存在显著的问题。EP-1469369公开了一种用于对给定计算机系统产生硬件标识的系统,用于依赖于在计算机系统的硬件中发生的改变级别,控制计算机系统上的软件应用的运行。当新的软件产品最初加载到系统上时,计算机系统的硬件配置被标识,并且产生硬件标识并将其存储用于以后使用。该硬件标识考虑了计算机系统中的每个硬件设备类内的每个硬件设备,并且产生表示即时计算机硬件配置的相应硬件标识。在随后出于任何原因重加载软件产品时,以相同方式产生新的硬件标识,并且将新的硬件标识与初始硬件标识相比较,以便确定应该允许还是阻止该软件程序将来的使用。这样的已知系统具有许多缺点,包括特别的复杂度和缺少通用性。例如,检查并标识计算机系统中的每个硬件设备类内的每个硬件设备以便建立硬件标识的需要,导致产生硬件标识的过程费力并耗时。此外,已知的系统仅监视计算机系统内的硬件,并不考虑软件,并且这是固有的限制。因此,存在对用于控制计算机系统内的软件和硬件组件的使用的更通用的系统的需要。
发明内容本发明试图克服现有技术的问题,并提供一种用于控制计算机系统中的组件运行的系统和方法,该系统和方法是通用的并易于4吏用。进一步,本发明试图提供一种用于控制计算机系统中的组件运行的系统和方法,通过该系统和方法可以为决定给定组件是否可在特定计算机系统中运行而快速计算控制标识。此外,本发明试图提供一种灵活的这样的系统,其具有考虑计算机系统内硬件设备的变化和软件应用的变化的能力,用于确定在计算机系统内运行组件的可行性。本发明涉及一种用于将软件或硬件组件绑定到(优选地在给定平台上的)特定计算机系统的系统和方法。绑定是确保给定组件将仅能够在对其已经授予权限的计算机系统内运行的概念。因此,当新组件安装在计算机系统中并激活许可权限时,该组件将绑定到对其安装该组件的特定计算机系统。该组件可以是硬件设备或软件应用,并且该计算机系统可以包括例如桌面型计算机、膝上型计算机、服务器计算机、蜂窝电话或个人数字助理(PDA)。根据本发明一个方面,提供了一种用于产生控制标识的系统,该控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定在一起,所述绑定系统包括处理器;验证器模块,用于控制所述处理器以产生所述控制标识;以及用于存储所述控制标识的存储体;其中所述验证器模块被安排来定义所述组件的绑定配置,所述绑定配置表示在所述计算机系统内为所述组件的运行所需的硬件元件组和软件元件组的至少一个的加权组合,并且被安排来提示所述处理器决定所述至少一个元件组内的元件实例在所述计算机系统中是否存在;其中所述验证器模块向决定为存在的每类元件分配标识值,并且将所述标识值加到表示所述绑定配置的数据,以定义所述控制标识;并且其中所述验证器模块使得所述控制标识传输到所述存储体。根据本发明另一方面,提供了一种承载用于产生控制标识的程序的计算机可读介质,该控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定在一起,所述程序包括用于定义所述组件的绑定配置的代码,所述绑定装置表示在所述计算机系统内为所述组件的运行所需的硬件元件组和软件元件组的至少一个的加;f又组合;用于决定所述至少一个元件组内的元件实例在所述计算机系统中是否存在的代码;用于为决定为存在的每类元件分配标识值的代码;用于将每个标识值加到表示所述绑定配置的数据以定义所述控制标识的代码;以及用于使所述控制标识传输到所述存储体的代码。根据本发明另一方面,提供了一种用于产生控制标识的方法,所述控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定到一起,所述方法包括定义所述组件的绑定配置,所述绑定配置表示所述计算机系统内为所述组件的运4于所需的^更件元件组和4欠件元件组的至少一个的加4又组合;决定所述至少一组元件内的元件实例在所述计算机系统中是否存在;为决定为存在的每类元件分配标识值;将所述标识值加到表示所述绑定配置的数据以定义所述控制标识;以及存储所述控制标识。将在下面参照示出优选实施例的附图通过实例描述本发明,附图中图1是包含本发明的计算机系统的框图2是通过验证器根据本发明产生的、表示图1的计算机系统的控制标识的图示性视图3是表示用于在计算机系统内第一次安装新组件时决定绑定配置的验证器的过程的流程图4是表示用于基于通过图3的验证过程获得的绑定配置产生控制标识的验证器的过程的流程图5是表示用于检验给定组件是否将允许在计算机系统内运行的验证器的过程的流程图6是表示图5中图示的过程中的子例程的流程图,其中在当前控制标识和先前控制标识之间进4亍比较;图7是表示当不能决定绑定配置时、用于产生特定环境中的修复指示的验证器的过程的流程图;以及图8是表示用于响应于修复指示重置绑定配置的验证器的过程的流程图。具体实施例方式现在将参照附图中示出的实施例描述本发明。要理解到,描述的实施例仅是示例性的,并且各种修改是可能的,其中一些将在下面的描述中提到。首先参照图1,包含本发明的计算机系统包括计算机10,该计算机典型地包括中央处理单元(CPU)12、系统存储器14和用于耦合计算机10的各种设备(包括系统存储器14)到CPU12的系统总线16。系统存储器可以包括基本输入/输出系统(BIOS)18,该基本输入/输出系统包含用于在计算机10内的各元件之间传输信息的基本例程,以及随机存取存储器(RAM)20。此外,图1的计算机系统包括通过显示适配器24连接到系统总线16的显示器22。在本说明书中假定计算机系统是个人桌面型计算机的形式,因此显示器22示为从计算机10分离的项目。然而,对以膝上型计算机、蜂窝电话或个人数字助理(PDA)形式的计算机系统、并且对要集成地包括在计算机10内的显示器22,本发明将同样是可能的。作为替代,计算机系统可以包括服务器计算机并且显示器22可以省略。计算机系统还典型地包括通过硬盘驱动器接口28连接到系统总线16的硬盘驱动器26,以及通过光盘驱动器接口32连接到系统总线的光盘驱动器30,如CDROM驱动器。将认识到,其他形式的计算机可读介质设备(如软盘驱动器)也可以包括在计算机10中。计算机IO还包括网络接口卡(NIC)34,用于将系统总线16耦合到外部网络35,如局域网(LAN)或广域网(WAN)。此外,计算机10包括各种其他接口,如串行端口接口36和通用串行总线(USB)端口接口38,用于将各种其他的外围输入和输出设备连接到计算机系统的系统总线16。这样的硬件设备的两个特定实例在图1中示为连接到串行端口接口36的加密狗(dongle)40以及连接到USB端口接口38的加密狗42。硬盘驱动器26包含各种计算机应用文件44。例如,文件44可以包括操作系统46、多个应用48以及库50,包含当安装时用于并入计算机操作系统的新应用中的例程等。根据本发明,计算机系统还包括验证器排列,用于在特定组件或应用52加载到计算机系统中的每种情形产生唯一的控制标识(在下面的描述中称为机器标识(MID))。当组件或应用加载到计算机系统中时,系统分配计算机的RAM20中的一部分存储器54给该组件使用。更具体地,组件52包含验证器模块56,并且当加载组件52时验证器模块56提示CPU12,以发起唯一地绑定或链接特定组件到特定计算机系统的验证过程。该绑定随后被维持,而无论一定容差内的计算机系统的软件和硬件配置的改变。验证器模块56通过产生唯一的MID实现它,该唯一的MID将从组件52得到的信息与基于计算机系统的当前配置的信息组合。当组件52随后出于任何原因重加载时,验证器模块56检查系统的配置是否在给定容差内保持相同,以及因此MID是否保持相同,并因此确定组件52是否可以允许运行。在本实施例中,验证器模块56包括在组件52内提供并通过硬盘驱动器26可访问的验证器程序。如所示,验证器模块56访问在加密文件64中包含的用于组件52的绑定配置数据62用于产生MID。当然,验证器程序56还可以在安装计算机操作系统时或之后并入硬盘驱动器26。验证器模块56还可以被提供为硬件产品而不是软件程序,并且在此情形,配置数据62可以包含在组件中是可能的。然而在下面的描述中,将描述以软件算法形式的验证器。还将认识到,如下所述,对计算机系统上的不同平台可产生不同MID。然而,对任何给定组件,将存在唯一的MID以标识对给定平台的计算机系统。该唯一的MID与为不同平台产生的其他MID—起存储在安全存储设备58中,用于在以后重加载组件52的情形引用,以便通过验证器程序56确定是否允许组件52运行。如图1中所示,安全存储设备58是能够包含在加密文件60内和/或存储在加密狗40、42之一中的分开的单元。采用这样的安全存储设备58用于存储MID的优点在于,其保护了相关的数据,并且阻止删除或至少确保检测到潜在的删除。图1还将计算机10示为包含硬件卡66,该硬件卡可以可选地由组件52的制造商提供用于随组件52使用。在一些环境中,可能需要硬件卡66以便组件52内的验证器程序56能够运行。此外,图1还示出计算机IO可以通过网络35访问由组件制造商提供的服务器70。现在转到图2,将描述对计算机系统的给定平台和特定组件52的唯一的MID的内容。根据涉及的特定平台,计算机系统的某些硬件设备或软件应用对组件52的运行将是必需的;计算机系统的某些设备或应用将比其他的具有更大的重要性或影响;并且计算机系统的某些设备或应用可以在执行期间经因此,验证器程序56被安排来通过将元件标识组102分配给组件52需要的并且将在计算机系统中发现的各种类型的硬件设备和软件应用,产生用于组件52以及给定平台上的计算机系统的即时配置的组合的MID100。这些元件标识102在下面的描述中指定为机器部件标识(MPID1,MPID2等)。验证器程序56还分配容差值104给MPID组102。MPID组102有效地包括来自组件制造商的机器部件列表。在一些平台上该列表将相对地长,而在其他平台上该列表将相对地短。这些不同平台的实例在下面给出WindowsMPID一SYSTEMMPID—HARDISKMPID—NETWORKMPIDINTERNETMPID一BIOSMPID—MEMORYMPIDCPUMPID一DONGLEMPID_PUBLISHERMacintoshMPID_SYSTEMMPIDHARDISKMPIDNETWORKMPID—INTERNETMPIDMEMORYMPIDCPUMPIDDONGLEMPIDPUBLISHERLinuxMPIDSYSTEMMPIDNETWORKMPIDDONGLEMPIDPUBLISHER验证器程序56通过使CPU12首先询问已经被加载到计算机10上的新组件52以决定对组件52运行需要什么计算机配置,来确定每个MPID102。这是绑定配置。更具体地,CPU12决定需要的设备和应用的类型,其重要性,不论它们在执行期间是否可以改变和它们是否是必要的。验证器程序56然后分配一组验证标识符106给需要的每类设备或应用。这样的标识符可以由组件直接提供或它们可以是包括在验证器程序56中的缺省值。接下来,在验证器程序56的控制下,CPU12还询问计算机系统以决定是否存在相关的设备或应用类型,并且如果存在,则将指定的标识值或多个标识值108分配给该类设备或应用,并且用该组标识符106包括(多个)标识值108。更具体地,该组验证标识符106包括指示设备或应用种类的类型值110;指示该种类对组件52的重要性的权重值112;指示在执行期间设备或应用是否可以改变的易失性标识符114;以及指示该种类的设备或应用对组件52能够在计算机系统上运行是必需的还是可选的的必要性标识符116。该组标识符106还包括指示对组件需要可允许模糊比较还是模式匹配的掩码标识符118。此外,从计算机系统获得的特定标识值108包括对各类设备或应用的标识值120,如部件或序列号。如果指示模糊比较可由特定组件52允许,则对涉及的元件集包括掩码值122。例如,在因特网地址(IP地址)的情形,掩码值198.168.0.*将包含在198.168.0.0到198.168.0.255范围内的任何IP地址。这样,组件52需要并在计算机系统中存在的每种设备或应用被分配MPID102和MPID102的列表,以及容差值104,—起组合来才是供唯一的MID100,用于将组件52绑定到特定平台上的计算机系统的即时配置。如上所示,用于将组件52绑定到给定计算机系统的MID100在不同平台上可以是不同的。例如,下面的表1示出MPID—SYSTEM和MPID—HARDDISK在三个平台Windows、Macintosh和Linux上可以如4可不同。如所示,MPID—SYSTEM在Macintosh上具有最大权重值,因为系统和机器集成地关联在一起,并且计算机序列号全球唯一且难以由用户修改,而在Windows和Linux上修改是容易可能的。类似地,对于MPID—HARDDISK,Windows被分配了最大权重值,因为盘序列号是全球唯一的并且非常难以修改。相反,对于Macintosh,4又重佳/仅为4,因为巻序列号可以容易地改变并且盘大小不唯一。对Linux,对于MPIDJIARDDISK没有标识值可用,因此硬盘没有包括在MPID组中。<table>tableseeoriginaldocumentpage13</column></row><table>表1只要加载组件52,验证器程序56就进行相同的4全查以决定新的MPID102組和新的MID100。此外,如果组件的配置已经同时更新了,则验i正器程序56可以从组件接收不同验证标识符组106用于确定相关MPID102,并且可以因此决定新的MID100,无论计算机系统的配置是否巳经改变。现在将首先参照图3其次参照图4描述用于决定绑定配置和用于确定MID100的验证程序56的初始步骤。参照图3,通过插入CDROM驱动器30的CDROM、通过经由网络接口卡34的网络、或通过计算机应用库50之一将新组件52加载到计算才几系统,警告CPU12发起验证器算法。这如步骤200所示,其中算法指令CPU12发起用于从新近加载的组件52获得相关绑定配置的过程。在步骤202中,指令CPU12获得对组件52和计算机系统的相关平台合适的配置数据,即,为需要的计算机硬件设备或软件应用的每一个获得验证标识符106。组件52通过在步骤204中从加密文件64提供配置数据62来响应。给出实例,根据该实例需要类型值1的至少一个硬件设备或软件应用,该类型值1将最终产生标识MPID1;不需要类型值2的设备或应用,该类型值2将最终产生标识MPID2;并且需要类型值3的至少一个设备或应用,该类型值3将最终产生标识MPID3。组件52还提供数据以指示MPID1的易失性标识符114示出"是',,其意味着该类设备或应用可以是易失性的;必要性标识符116是"否",其意味着该类不是必要的;并且该类的权重值是5。类似的,MPID3的验证标识符106示出该类设备或应用是非易失性的但是必要的并且具有权重IO。此外,将产生MPID3的该类允许模糊比较或模式匹配。-睑i正器算法还在步骤204通过询问组件52来决定应当为MID100决定30的容差^直104。这样的配置数据已经在步骤202读取,验证器算法继续到步骤206,并且编译为特定组件52的验证需要在计算机系统中发现的设备或应用种类的列表,并为每个这样的设备分配在步骤202读取的配置设置。在步骤206编译的验证列表在步骤208放置在存储器54中,并且这完成了验证过程的初始阶段,在该阶段中决定对于特定组件52的绑定配置。验证器程序56接着进行到通过图4中所示的过程为平台决定MID100。在步骤300,CPU12检索存储在存储器54中的验证列表,并且在步骤302,CPU12检查对该绑定配置需要哪类计算机设备或应用。已经决定了需要哪类后,验证过程在步骤304中检查计算机系统,以对计算机系统内每个需要的计算机设备或应用决定标识。例如,计算机系统决定绑定配置需要硬盘驱动器322或存储在硬盘驱动器322上的软件应用,并且向系统询问以获得该设备或应用的标识值。该标识值可以是序列号。类似地,作为实例,验证过程可以从步骤302确定组件52需要显示器330以及CDROM驱动器30,或在CDROM驱动器326内的盘上的软件应用,以及扩展槽或扩展卡,在图4中分别由参考标号350和352表示。在每种情况,在步骤304,CPU12检索对相关i殳备或应用的标识值120,如序列号。验证过程然后进行到步骤306,并询问步骤304是否决定所有必要的计算机设备或应用在计算机系统内可用。如果答案为"否",则验证过程进行到步骤308,并且宣布验证无效,因为需要的设备或应用不可用。在该情形,验证过程指令CPU12阻止组件52运行。另一方面,如果步骤306决定所有必要的计算机设备或应用可用,则过程进行到步骤310,并且将在步骤304检索的标识值120分配给已经为MPID102存储在存储器54中的配置i殳置。MPID102的完整集和容差值104现在可用,并且这构成对于相关组件52的MID100。这样的MID]00在步骤312中存储在存储i殳备58中,并且这完成了验证过程的第二阶段。组件52现在可以运行在计算机系统上。随后,每当组件52在计算机系统上运4亍时,执4亍绑定验证^企查,以决定組件52是否仍然有效地匹配计算机系统,反之亦然。该过程在图5中图示。当组件52重加载或安装在计算机系统中时发起该验证检查,在该点-验证程序56指令CPU12启动验证检查。这如步骤400所示。在步骤402,验证程序提示CPU12询问组件52以获得如参照图3所述的新的绑定配置。验证过程然后进行到步骤404,其中CPU12对计算机系统内的所有可用计算机设备或应用决定标识值,并且将这些分配给MPID,如参照图4所述。新的当前MID100现在已经决定。-验证4全查过程现在进4亍到步骤406,其中CPU12询问存储设备58以查询先前的MIDIOO是否包含在存储体中,作为参照图3和图4描述的验证过程各步骤的先前实现的结果。在步骤408,CPU12询问先前的MIDIOO是否可用,并且如果答案是"否",则在步骤410CPU12将当前的MID100写到存储设备58。另一方面,如果对步骤408的查询的答案是"是",则验证检查过程进行到步骤412,并且在参照图6描述的子例程中将先前的MID100与当前的MID100比较。在步骤414,验证检查过程询问在绑定配置中指定的容差值内、先前的MIDIOO和当前的MIDIOO之间是否存在匹配。如果答案是"是",则假定验证检查有效,如步骤416所示,并且指令CPU12允许组件52运行。另一方面,如果步骤414的结果是"否",则推定-验证检查无效,并且指令CPU12阻止组件52运4亍。现在转到图6,将描述用于将当前的MID100与先前的MID100比4交的子例程,如参照图5中的步骤412所述。子例程以步骤500开始,其中指令CPU12比较两个MID100。在步骤502中,CPU12例如通过从存储体4全索先前计算的分数(score),或通过重新计算对先前的MID100的分数,决定先前的MIDIOO的分数。在第一种决定分数的情况,MID100将是当组件52最初加载到计算机系统中时获得的初始MID100,并且分数可通过将分配给初始MID100的每个MPID102的权重求和来计算。初始MID100的分数的决定在下表2中图示。<table>tableseeoriginaldocumentpage16</column></row><table>表2验证检查过程现在进行到步骤504,其中例如通过对经历各种规则的每个指定的计算机设备或应用的权重值112求和,将分数分配给当前的MID100。在这些规则下,例如通过比较分配给每类设备或应用的类型值110,CPU12首先检查指定的计算机设备或应用是否与为先前的MID100指定的设备或应用相同。对新近可用的计算机设备或应用的权重值112、以及(直接或通过f莫糊比较)其标识值120匹配先前的MID100中的对应标识值120的已经指定了的那些的权重值112求和。如果MPID102的标识值120不匹配来自先前的MID100的对应值,则权重值不加到当前的MID100的分数;并且,如果MPID102不可用,则再次地权重值不加到该分数。这在下表3中图示。<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>3现在已经在步骤502决定了先前的MID100的分数,并且在步骤504决定了当前的MID100的分数,验证检查过程在步骤506比较两个分数。在步骤508,CPU12询问在两个分数之间是否存在匹配。匹配将意味着分^:相等或它们之间的差别在设置的容差等级内,意味着在计算机系统中已经发生了不超过正常的改变。如果答案是"否",则验证检查过程假设先前的MID100在不同机器上计算,并且在步骤510指示验证检查无效,并且组件52由CPU12阻止运行。另一方面,如果对在步骤508进行的查询的答案是"是,',则验证检查过程指示检查有效,并且在步骤512,指令CPU12允许组件52运行。同时,存储在存储设备58中的先前的MID100更新到新的MID100。可能存在当必须或期望重置存储在存储设备58中的MID100的情况。即使验证检查过程已经指示验证检查无效,然而在一些情况下可能进行判决允许组件52运行。例如,如果在激活后的指定期间内(例如激活后的六个月内)进行请求,则软件制'造商可能允许修复。另一可能性是当软件制造商使用加密狗作为软件的绑定的部分,并且当软件升级时加密狗改变。由于加密狗通常对于绑定是必要的,所以这将导致验证检查示出无效的结果,即使升级的使用在用户许可范围内。另一个实例是当用户的硬盘撞坏并且发布者能够决定用户是真实的客户(可能通过购买证明)。在所有这些情形,MID100的重置可以允许。在提供重置设备的情形,验证器模块56将包括用于实现如图7和图8中所示的过程步骤的软件。现在将描述这些过程步骤。首先,如果提供重置设备,则在产生MID100的第一种情况并仅在第一种情况修改图4中示出的步骤312。在该实例中,原始MIDIOO不仅存储在存储设备58中而且由CPU12产生MID100的散列并通过NIC34发送到服务器70。采用散列以确保出于隐私原因各个MPID以及原始的绑定配置不传输到服务器70,并且确保计算机系统的恒定长度的标识符对服务器70可用。原始的MID100然后保持存储在存储设备58中,然后散列MID保持存储在服务器70中,用于将来在可能需要重置的情形的恢复。其次,如果提供了重置设备,则修改图6中所示的步骤504以包括图7中示出的子例程,以便决定与当前的MID100相关耳关的一组々务复标志,用于指示在进行修复判决时可能需要修复的位置。现在将描述图7的子例程。当当前的MID100的分数在步骤504正在计算时,在步骤600中验证过程发起指令以初始化一组修复标志。该组是N位数602,其中每位表示选4奪的MPID102并且其中每位初始设为表示可运行的MPID102的'T,。在本实例中,修复标志组是覆盖MID中的16个MPID102的可能性的16位数。.然而,长度可以根据需要改变。响应于在步骤600中发起的指令,验证过程进行到步骤604,并且通过将N位数的每位设为"1"初始化修复标志组。接下来,验证过程进行到步骤606,其中当前的MID100的每个MPID的标识值120与先前的MPID100中相应的MPID的标识值120比较。对于每个这样的MPID102,在步骤608进行关于两个标识值是否匹配的查询。如果答案是"是",则在步骤610各个MPID102的权重值112加到当前的MID100的分数。另一方面,如果答案是"否",则在步骤612表示相关的MPID102的修复标志组602的位值设为值"零"。这意味着在相关的MPID102中存在错误。步骤610或步骤612后,验证过程进行到步骤614,并且查询当前的MID100是否包括其他MPID102以与先前的MID100中的其对应部分比较。如果答案是"是",则过程再次回到步骤606。然而,如果答案是"否",则通过发出当前的MID100的分数以及修复标志组602,子例程在步骤616结束。接下来,用于重置的软件过程跟随图8中所示的各步骤。在已经如参照图5描述并如图8中的步骤700表示的,组件52已经在计算机系统内重加载并且验证器模块56已经完成验证检查后,验证器模块56在步骤702通过CPU12查询验证检查的结果是有效还是无效。如果答案是"否",则过程进行到以步骤704开始的组件中的子例程。这里,指令CPU12通知用户检查产生无效结果,并向用户查询是否应做出修复请求。CPU12可以例如通过显示器22上的弹出消息,通过直接与用户的咨询来检验它。如果答案是"是",则在步骤706产生修复请求。修复请求将包括从存储设备58检索的原始的MID100的散列,当前的MID100的散列,以及作为图7的过程的结果产生的修复标志602。然后修复请求在步骤708和710中被加密并发送到服务器70。服务器70在步骤712接收并解密修复请求,并且由于第一次使用组件52,因此在步骤714检索已经存储在服务器70中的散列的原始MID100。来自计算机10的原始MID100的散列和来自服务器70的散列的原始MID100然后在步骤716比较,并且服务器70在步骤718查询它们是否匹配。如果答案是"是",则服务器进行到步骤720并且处理由服务器70接收的修复标志602,以便考虑哪里需要修复以及是否应当允许修复。服务器然后进行到步骤722,并且基于步骤720的结果和为组件52内部存储的规定进行关于是否允许修复的判决。如果答案是"是",则服务器70在步骤724重置存储在服务器70中的散列的原始MID100到散列的当前MID100。服务器70现在进行到步骤726。如果步骤718或步骤722的结果是"否",则服务器70直接进行到步骤726而不分别进行步骤720-724或步骤724的处理。在步骤726中,服务器70加密并签名其对来自计算机10的修复请求的响应,并且在步骤728,服务器70通过NIC卡34传输对计算机系统的响应。该响应将包括关于是否允许修复的判决。响应于步骤728中传输的判决,计算机系统中的CPU12在步骤730认证服务器70,并解密该响应。假定认证了服务器,则CPU12进行到步骤732,并且查询是否要进行修复。如果答案是"是",则验证器过程在步骤734重置存储在存储i殳备58中的先前MID100到当前MID100,并允许組件52重加载和运行。最后,CPU12进行到步骤736,并且还用当前MIDIOO代替存储设备58中的原始MID100。如果答案是"否",则因为这是包括在步骤728中传输的响应中的判决或因为服务器在步骤730没有认证、或因为通信中断,所以过程在步骤738终止,具有阻止组件运行的"无效"指示。权利要求1.一种用于产生控制标识的系统,该控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定在一起,所述绑定系统包括处理器;验证器模块,用于控制所述处理器以产生所述控制标识;以及用于存储所述控制标识的存储体;其中所述验证器模块安排来定义所述组件的绑定配置,所述绑定配置表示在所述计算机系统内对所述组件的运行所需的硬件元件组和软件元件组的至少一个的加权组合,并且被安排来提示所述处理器决定所述至少一个元件组内的元件的实例在所述计算机系统中是否存在;其中所述验证器模块向决定为存在的每类元件分配标识值,并且将所述标识值加到表示所述绑定配置的数据,以定义所述控制标识;并且其中所述验证器模块使得所述控制标识传输到所述存储体。2.如权利要求1所述的系统,其中所述绑定配置根据选择的平台而确定。3.如权利要求l所述的系统,其中所述绑定配置包括用于所述每类元件的标识符列表。4.如权利要求3所述的系统,其中所述标识符列表从包括下述的群中选择表示所述元件种类的类型号,表示所述元件种类对所述元件的运行的重要性的权重值,表示关于所述种类中的元件是否可以改变的指示的易失性指示符,表示关于所述种类中的元件对所述组件的运行是否必需的指示的必要性指示符,以及表示对于所述种类中的多个元件的各个的通用指示符的掩码值。5.如权利要求l所述的系统,其中对所述每类元件的所述标识值以及所述绑定配置的所述组合包括种类标识,并且其中所述控制标识包括所述种类标识符列表。6.如权利要求l所述的系统,还包括信令装置,用于将所述组件的存在传达给所述处理器,并用于当所述组件加载到所述计算机系统中时发起控制标识的产生。7.如权利要求6所述的系统,其中安排所述验证器模块,使得所述处理器在所述组件加载到所述计算机系统中的每种情形产生新的控制标识。8.如权利要求7所述的系统,其中安排所述验证器模块,使得所述处理器将所述新的控制标识与先前的所述控制标识比较,用于决定是否可以允许所述组件在所述计算机系统中运行。9.如权利要求8所述的系统,其中所述验证器模块将每个所述控制标识转换成分数值用于对其进行比较。10.如权利要求l所述的系统,其中所述验证器模块包括软件算法。11.如权利要求l所述的系统,其中所述存储体是安全存储体。12.如权利要求1所述的系统,还包括用于发起》爹复请求的装置和用于响应于所述修复请求重置所述控制标识的装置。13.—种用于产生控制标识的系统,该控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定在一起,所述绑定系统包括处理器;验证器模块,用于控制所述处理器产生所述控制标识;以及用于存储所述控制标识的存储体;所述验证器模块包括用于定义所述组件的绑定配置的装置,所述绑定装置表示在所述计算机系统内对所述组件的运行所需的硬件元件组和寿欠件元件组的至少一个的加权组合;用于决定所述至少一个元件组内的元件的实例在所述计算机系统中是否存在的装置;用于为决定为存在的每类元件分配标识值的装置;用于将所述标识值加到表示所述绑定配置的数据以定义所述控制标识的装置;以及用于使所述控制标识传输到所述存储体的装置。14.一种承载用于产生控制标识的程序的计算机可读介质,该控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定在一起,所述程序包括用于定义所述组件的绑定配置的代码,所述绑定装置表示在所述计算机系统内对所述组件的运行所需的硬件元件组和软件元件组的至少一个的加权组合;用于决定所述至少一个元件组内的元件的实例在所述计算机系统中是否存在的代码;用于为决定为存在的每类元件分配标识值的代码;用于将每个标识值加到表示所述绑定配置的数据以定义所述控制标识的代码;以及用于使所述控制标识传输到所述存储体的代码。15.—种用于产生控制标识的方法,所述控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定到一起,所述方法包括定义所述组件的绑定配置,所述绑定配置表示所述计算机系统内对所述组件的运4于所需的硬件元件组和软件元件组的至少一个的加权组合;决定所述至少一组元件内的元件的实例在所述计算机系统中是否存在;为决定为存在的每类元件分配标识值;将所述标识值加到表示所述绑定配置的数据以定义所述控制标识;以及存储所述控制标识。16.如权利要求15所述的方法,包括根据选择的平台确定所述绑定配置。17.如权利要求15所述的方法,其中所述绑定配置包括对所述每类元件的标识符列表。18.如权利要求17所述的方法,包括从下述群中选择所述标识符列表表示所述元件种类的类型号,表示所述元件种类对所述元件的运行的重要性的权重值,表示关于所述种类中的元件是否可以改变的指示的易失性指示符,表示关于所述种类中的元件对所述组件的运行是否必需的指示的必要性指示符,以及表示对于所述种类中的多个元件的各个的通用指示符的掩码值。19.如权利要求15所述的方法,其中对所述每类元件类的所述标识值和所述绑定配置的所述组合包括种类标识,并且其中所述控制标识包括所述种类标识列表。20.如权利要求15所述的方法,还包括传达所述组件的存在,并当所述组件加载到所述计算机系统中时发起所述控制标识的产生。21.如权利要求20所述的方法,包括在所述组件加载到所述计算机系统中的每种情形产生新的控制标识。22.如权利要求21所述的方法,还包括将所述新的控制标识与先前的所述控制标识比较,用于决定是否可以允许所述组件在所述计算机系统中运4亍。23.如权利要求22所述的方法,包括将每个所述控制标识转换为分数值用于对其进行比较。24.如权利要求15所述的方法,还包括响应于纟f复请求重置所述控制标全文摘要本发明提供了一种用于产生控制标识的系统和方法,所述控制标识用于将组件与包括硬件设备和软件应用的计算机系统绑定到一起。该绑定系统包括处理器;验证器模块,用于控制所述处理器以产生控制标识;以及用于存储控制标识的存储体。所述验证器模块被安排来定义组件的绑定配置,所述绑定配置表示在计算机系统内对组件的运行所需的硬件元件组和软件元件组的至少一个的加权组合,验证器模块还被安排来提示处理器决定至少一个元件组内的元件的实例在计算机系统中是否存在。验证器模块向决定为存在的每类元件分配标识值,并且将标识值加到表示绑定配置的数据,以定义控制标识。验证器模块然后使得控制标识传输到存储体。文档编号G06F3/00GK101189566SQ200680019783公开日2008年5月28日申请日期2006年4月26日优先权日2005年5月3日发明者穆罕默德·S·尤韦斯申请人:麦克罗维西恩公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1