專利名稱::用于控制計算機系統上組件的運行的系統和方法
技術領域:
:本發明涉及一種用于控制計算機系統中組件的運^"的系統和方法。具體地,本發明涉及一種系統和方法,其用于控制對組件的授權以在對變化具有容差的計算機系統中運行。該組件可以是軟件組件或石更件組件。
背景技術:
:計算機系統中給定軟件應用(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·尤韋斯申請人:麥克羅維西恩公司