專利名稱::用于控制計算機系統(tǒng)上組件的運行的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種用于控制計算機系統(tǒng)中組件的運^"的系統(tǒng)和方法。具體地,本發(fā)明涉及一種系統(tǒng)和方法,其用于控制對組件的授權(quán)以在對變化具有容差的計算機系統(tǒng)中運行。該組件可以是軟件組件或石更件組件。
背景技術(shù):
:計算機系統(tǒng)中給定軟件應(yīng)用(application)或計算機程序的使用通常在許可下管理,該許可將特定使用權(quán)限分配給指定的計算機系統(tǒng)。然而,軟件應(yīng)用和計算機程序的非法使用的情況是普遍的,并且在監(jiān)視計算機系統(tǒng)中(特別在軟件應(yīng)用和/或硬件設(shè)備隨時經(jīng)歷改變的計算機系統(tǒng)中)軟件應(yīng)用或計算機程序的非法使用上存在顯著的問題。EP-1469369公開了一種用于對給定計算機系統(tǒng)產(chǎn)生硬件標識的系統(tǒng),用于依賴于在計算機系統(tǒng)的硬件中發(fā)生的改變級別,控制計算機系統(tǒng)上的軟件應(yīng)用的運行。當新的軟件產(chǎn)品最初加載到系統(tǒng)上時,計算機系統(tǒng)的硬件配置被標識,并且產(chǎn)生硬件標識并將其存儲用于以后使用。該硬件標識考慮了計算機系統(tǒng)中的每個硬件設(shè)備類內(nèi)的每個硬件設(shè)備,并且產(chǎn)生表示即時計算機硬件配置的相應(yīng)硬件標識。在隨后出于任何原因重加載軟件產(chǎn)品時,以相同方式產(chǎn)生新的硬件標識,并且將新的硬件標識與初始硬件標識相比較,以便確定應(yīng)該允許還是阻止該軟件程序?qū)淼氖褂?。這樣的已知系統(tǒng)具有許多缺點,包括特別的復(fù)雜度和缺少通用性。例如,檢查并標識計算機系統(tǒng)中的每個硬件設(shè)備類內(nèi)的每個硬件設(shè)備以便建立硬件標識的需要,導(dǎo)致產(chǎn)生硬件標識的過程費力并耗時。此外,已知的系統(tǒng)僅監(jiān)視計算機系統(tǒng)內(nèi)的硬件,并不考慮軟件,并且這是固有的限制。因此,存在對用于控制計算機系統(tǒng)內(nèi)的軟件和硬件組件的使用的更通用的系統(tǒng)的需要。
發(fā)明內(nèi)容本發(fā)明試圖克服現(xiàn)有技術(shù)的問題,并提供一種用于控制計算機系統(tǒng)中的組件運行的系統(tǒng)和方法,該系統(tǒng)和方法是通用的并易于4吏用。進一步,本發(fā)明試圖提供一種用于控制計算機系統(tǒng)中的組件運行的系統(tǒng)和方法,通過該系統(tǒng)和方法可以為決定給定組件是否可在特定計算機系統(tǒng)中運行而快速計算控制標識。此外,本發(fā)明試圖提供一種靈活的這樣的系統(tǒng),其具有考慮計算機系統(tǒng)內(nèi)硬件設(shè)備的變化和軟件應(yīng)用的變化的能力,用于確定在計算機系統(tǒng)內(nèi)運行組件的可行性。本發(fā)明涉及一種用于將軟件或硬件組件綁定到(優(yōu)選地在給定平臺上的)特定計算機系統(tǒng)的系統(tǒng)和方法。綁定是確保給定組件將僅能夠在對其已經(jīng)授予權(quán)限的計算機系統(tǒng)內(nèi)運行的概念。因此,當新組件安裝在計算機系統(tǒng)中并激活許可權(quán)限時,該組件將綁定到對其安裝該組件的特定計算機系統(tǒng)。該組件可以是硬件設(shè)備或軟件應(yīng)用,并且該計算機系統(tǒng)可以包括例如桌面型計算機、膝上型計算機、服務(wù)器計算機、蜂窩電話或個人數(shù)字助理(PDA)。根據(jù)本發(fā)明一個方面,提供了一種用于產(chǎn)生控制標識的系統(tǒng),該控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定在一起,所述綁定系統(tǒng)包括處理器;驗證器模塊,用于控制所述處理器以產(chǎn)生所述控制標識;以及用于存儲所述控制標識的存儲體;其中所述驗證器模塊被安排來定義所述組件的綁定配置,所述綁定配置表示在所述計算機系統(tǒng)內(nèi)為所述組件的運行所需的硬件元件組和軟件元件組的至少一個的加權(quán)組合,并且被安排來提示所述處理器決定所述至少一個元件組內(nèi)的元件實例在所述計算機系統(tǒng)中是否存在;其中所述驗證器模塊向決定為存在的每類元件分配標識值,并且將所述標識值加到表示所述綁定配置的數(shù)據(jù),以定義所述控制標識;并且其中所述驗證器模塊使得所述控制標識傳輸?shù)剿龃鎯w。根據(jù)本發(fā)明另一方面,提供了一種承載用于產(chǎn)生控制標識的程序的計算機可讀介質(zhì),該控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定在一起,所述程序包括用于定義所述組件的綁定配置的代碼,所述綁定裝置表示在所述計算機系統(tǒng)內(nèi)為所述組件的運行所需的硬件元件組和軟件元件組的至少一個的加;f又組合;用于決定所述至少一個元件組內(nèi)的元件實例在所述計算機系統(tǒng)中是否存在的代碼;用于為決定為存在的每類元件分配標識值的代碼;用于將每個標識值加到表示所述綁定配置的數(shù)據(jù)以定義所述控制標識的代碼;以及用于使所述控制標識傳輸?shù)剿龃鎯w的代碼。根據(jù)本發(fā)明另一方面,提供了一種用于產(chǎn)生控制標識的方法,所述控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定到一起,所述方法包括定義所述組件的綁定配置,所述綁定配置表示所述計算機系統(tǒng)內(nèi)為所述組件的運4于所需的^更件元件組和4欠件元件組的至少一個的加4又組合;決定所述至少一組元件內(nèi)的元件實例在所述計算機系統(tǒng)中是否存在;為決定為存在的每類元件分配標識值;將所述標識值加到表示所述綁定配置的數(shù)據(jù)以定義所述控制標識;以及存儲所述控制標識。將在下面參照示出優(yōu)選實施例的附圖通過實例描述本發(fā)明,附圖中圖1是包含本發(fā)明的計算機系統(tǒng)的框圖2是通過驗證器根據(jù)本發(fā)明產(chǎn)生的、表示圖1的計算機系統(tǒng)的控制標識的圖示性視圖3是表示用于在計算機系統(tǒng)內(nèi)第一次安裝新組件時決定綁定配置的驗證器的過程的流程圖4是表示用于基于通過圖3的驗證過程獲得的綁定配置產(chǎn)生控制標識的驗證器的過程的流程圖5是表示用于檢驗給定組件是否將允許在計算機系統(tǒng)內(nèi)運行的驗證器的過程的流程圖6是表示圖5中圖示的過程中的子例程的流程圖,其中在當前控制標識和先前控制標識之間進4亍比較;圖7是表示當不能決定綁定配置時、用于產(chǎn)生特定環(huán)境中的修復(fù)指示的驗證器的過程的流程圖;以及圖8是表示用于響應(yīng)于修復(fù)指示重置綁定配置的驗證器的過程的流程圖。具體實施例方式現(xiàn)在將參照附圖中示出的實施例描述本發(fā)明。要理解到,描述的實施例僅是示例性的,并且各種修改是可能的,其中一些將在下面的描述中提到。首先參照圖1,包含本發(fā)明的計算機系統(tǒng)包括計算機10,該計算機典型地包括中央處理單元(CPU)12、系統(tǒng)存儲器14和用于耦合計算機10的各種設(shè)備(包括系統(tǒng)存儲器14)到CPU12的系統(tǒng)總線16。系統(tǒng)存儲器可以包括基本輸入/輸出系統(tǒng)(BIOS)18,該基本輸入/輸出系統(tǒng)包含用于在計算機10內(nèi)的各元件之間傳輸信息的基本例程,以及隨機存取存儲器(RAM)20。此外,圖1的計算機系統(tǒng)包括通過顯示適配器24連接到系統(tǒng)總線16的顯示器22。在本說明書中假定計算機系統(tǒng)是個人桌面型計算機的形式,因此顯示器22示為從計算機10分離的項目。然而,對以膝上型計算機、蜂窩電話或個人數(shù)字助理(PDA)形式的計算機系統(tǒng)、并且對要集成地包括在計算機10內(nèi)的顯示器22,本發(fā)明將同樣是可能的。作為替代,計算機系統(tǒng)可以包括服務(wù)器計算機并且顯示器22可以省略。計算機系統(tǒng)還典型地包括通過硬盤驅(qū)動器接口28連接到系統(tǒng)總線16的硬盤驅(qū)動器26,以及通過光盤驅(qū)動器接口32連接到系統(tǒng)總線的光盤驅(qū)動器30,如CDROM驅(qū)動器。將認識到,其他形式的計算機可讀介質(zhì)設(shè)備(如軟盤驅(qū)動器)也可以包括在計算機10中。計算機IO還包括網(wǎng)絡(luò)接口卡(NIC)34,用于將系統(tǒng)總線16耦合到外部網(wǎng)絡(luò)35,如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。此外,計算機10包括各種其他接口,如串行端口接口36和通用串行總線(USB)端口接口38,用于將各種其他的外圍輸入和輸出設(shè)備連接到計算機系統(tǒng)的系統(tǒng)總線16。這樣的硬件設(shè)備的兩個特定實例在圖1中示為連接到串行端口接口36的加密狗(dongle)40以及連接到USB端口接口38的加密狗42。硬盤驅(qū)動器26包含各種計算機應(yīng)用文件44。例如,文件44可以包括操作系統(tǒng)46、多個應(yīng)用48以及庫50,包含當安裝時用于并入計算機操作系統(tǒng)的新應(yīng)用中的例程等。根據(jù)本發(fā)明,計算機系統(tǒng)還包括驗證器排列,用于在特定組件或應(yīng)用52加載到計算機系統(tǒng)中的每種情形產(chǎn)生唯一的控制標識(在下面的描述中稱為機器標識(MID))。當組件或應(yīng)用加載到計算機系統(tǒng)中時,系統(tǒng)分配計算機的RAM20中的一部分存儲器54給該組件使用。更具體地,組件52包含驗證器模塊56,并且當加載組件52時驗證器模塊56提示CPU12,以發(fā)起唯一地綁定或鏈接特定組件到特定計算機系統(tǒng)的驗證過程。該綁定隨后被維持,而無論一定容差內(nèi)的計算機系統(tǒng)的軟件和硬件配置的改變。驗證器模塊56通過產(chǎn)生唯一的MID實現(xiàn)它,該唯一的MID將從組件52得到的信息與基于計算機系統(tǒng)的當前配置的信息組合。當組件52隨后出于任何原因重加載時,驗證器模塊56檢查系統(tǒng)的配置是否在給定容差內(nèi)保持相同,以及因此MID是否保持相同,并因此確定組件52是否可以允許運行。在本實施例中,驗證器模塊56包括在組件52內(nèi)提供并通過硬盤驅(qū)動器26可訪問的驗證器程序。如所示,驗證器模塊56訪問在加密文件64中包含的用于組件52的綁定配置數(shù)據(jù)62用于產(chǎn)生MID。當然,驗證器程序56還可以在安裝計算機操作系統(tǒng)時或之后并入硬盤驅(qū)動器26。驗證器模塊56還可以被提供為硬件產(chǎn)品而不是軟件程序,并且在此情形,配置數(shù)據(jù)62可以包含在組件中是可能的。然而在下面的描述中,將描述以軟件算法形式的驗證器。還將認識到,如下所述,對計算機系統(tǒng)上的不同平臺可產(chǎn)生不同MID。然而,對任何給定組件,將存在唯一的MID以標識對給定平臺的計算機系統(tǒng)。該唯一的MID與為不同平臺產(chǎn)生的其他MID—起存儲在安全存儲設(shè)備58中,用于在以后重加載組件52的情形引用,以便通過驗證器程序56確定是否允許組件52運行。如圖1中所示,安全存儲設(shè)備58是能夠包含在加密文件60內(nèi)和/或存儲在加密狗40、42之一中的分開的單元。采用這樣的安全存儲設(shè)備58用于存儲MID的優(yōu)點在于,其保護了相關(guān)的數(shù)據(jù),并且阻止刪除或至少確保檢測到潛在的刪除。圖1還將計算機10示為包含硬件卡66,該硬件卡可以可選地由組件52的制造商提供用于隨組件52使用。在一些環(huán)境中,可能需要硬件卡66以便組件52內(nèi)的驗證器程序56能夠運行。此外,圖1還示出計算機IO可以通過網(wǎng)絡(luò)35訪問由組件制造商提供的服務(wù)器70。現(xiàn)在轉(zhuǎn)到圖2,將描述對計算機系統(tǒng)的給定平臺和特定組件52的唯一的MID的內(nèi)容。根據(jù)涉及的特定平臺,計算機系統(tǒng)的某些硬件設(shè)備或軟件應(yīng)用對組件52的運行將是必需的;計算機系統(tǒng)的某些設(shè)備或應(yīng)用將比其他的具有更大的重要性或影響;并且計算機系統(tǒng)的某些設(shè)備或應(yīng)用可以在執(zhí)行期間經(jīng)因此,驗證器程序56被安排來通過將元件標識組102分配給組件52需要的并且將在計算機系統(tǒng)中發(fā)現(xiàn)的各種類型的硬件設(shè)備和軟件應(yīng)用,產(chǎn)生用于組件52以及給定平臺上的計算機系統(tǒng)的即時配置的組合的MID100。這些元件標識102在下面的描述中指定為機器部件標識(MPID1,MPID2等)。驗證器程序56還分配容差值104給MPID組102。MPID組102有效地包括來自組件制造商的機器部件列表。在一些平臺上該列表將相對地長,而在其他平臺上該列表將相對地短。這些不同平臺的實例在下面給出WindowsMPID一SYSTEMMPID—HARDISKMPID—NETWORKMPIDINTERNETMPID一BIOSMPID—MEMORYMPIDCPUMPID一DONGLEMPID_PUBLISHERMacintoshMPID_SYSTEMMPIDHARDISKMPIDNETWORKMPID—INTERNETMPIDMEMORYMPIDCPUMPIDDONGLEMPIDPUBLISHERLinuxMPIDSYSTEMMPIDNETWORKMPIDDONGLEMPIDPUBLISHER驗證器程序56通過使CPU12首先詢問已經(jīng)被加載到計算機10上的新組件52以決定對組件52運行需要什么計算機配置,來確定每個MPID102。這是綁定配置。更具體地,CPU12決定需要的設(shè)備和應(yīng)用的類型,其重要性,不論它們在執(zhí)行期間是否可以改變和它們是否是必要的。驗證器程序56然后分配一組驗證標識符106給需要的每類設(shè)備或應(yīng)用。這樣的標識符可以由組件直接提供或它們可以是包括在驗證器程序56中的缺省值。接下來,在驗證器程序56的控制下,CPU12還詢問計算機系統(tǒng)以決定是否存在相關(guān)的設(shè)備或應(yīng)用類型,并且如果存在,則將指定的標識值或多個標識值108分配給該類設(shè)備或應(yīng)用,并且用該組標識符106包括(多個)標識值108。更具體地,該組驗證標識符106包括指示設(shè)備或應(yīng)用種類的類型值110;指示該種類對組件52的重要性的權(quán)重值112;指示在執(zhí)行期間設(shè)備或應(yīng)用是否可以改變的易失性標識符114;以及指示該種類的設(shè)備或應(yīng)用對組件52能夠在計算機系統(tǒng)上運行是必需的還是可選的的必要性標識符116。該組標識符106還包括指示對組件需要可允許模糊比較還是模式匹配的掩碼標識符118。此外,從計算機系統(tǒng)獲得的特定標識值108包括對各類設(shè)備或應(yīng)用的標識值120,如部件或序列號。如果指示模糊比較可由特定組件52允許,則對涉及的元件集包括掩碼值122。例如,在因特網(wǎng)地址(IP地址)的情形,掩碼值198.168.0.*將包含在198.168.0.0到198.168.0.255范圍內(nèi)的任何IP地址。這樣,組件52需要并在計算機系統(tǒng)中存在的每種設(shè)備或應(yīng)用被分配MPID102和MPID102的列表,以及容差值104,—起組合來才是供唯一的MID100,用于將組件52綁定到特定平臺上的計算機系統(tǒng)的即時配置。如上所示,用于將組件52綁定到給定計算機系統(tǒng)的MID100在不同平臺上可以是不同的。例如,下面的表1示出MPID—SYSTEM和MPID—HARDDISK在三個平臺Windows、Macintosh和Linux上可以如4可不同。如所示,MPID—SYSTEM在Macintosh上具有最大權(quán)重值,因為系統(tǒng)和機器集成地關(guān)聯(lián)在一起,并且計算機序列號全球唯一且難以由用戶修改,而在Windows和Linux上修改是容易可能的。類似地,對于MPID—HARDDISK,Windows被分配了最大權(quán)重值,因為盤序列號是全球唯一的并且非常難以修改。相反,對于Macintosh,4又重佳/僅為4,因為巻序列號可以容易地改變并且盤大小不唯一。對Linux,對于MPIDJIARDDISK沒有標識值可用,因此硬盤沒有包括在MPID組中。<table>tableseeoriginaldocumentpage13</column></row><table>表1只要加載組件52,驗證器程序56就進行相同的4全查以決定新的MPID102組和新的MID100。此外,如果組件的配置已經(jīng)同時更新了,則驗i正器程序56可以從組件接收不同驗證標識符組106用于確定相關(guān)MPID102,并且可以因此決定新的MID100,無論計算機系統(tǒng)的配置是否巳經(jīng)改變。現(xiàn)在將首先參照圖3其次參照圖4描述用于決定綁定配置和用于確定MID100的驗證程序56的初始步驟。參照圖3,通過插入CDROM驅(qū)動器30的CDROM、通過經(jīng)由網(wǎng)絡(luò)接口卡34的網(wǎng)絡(luò)、或通過計算機應(yīng)用庫50之一將新組件52加載到計算才幾系統(tǒng),警告CPU12發(fā)起驗證器算法。這如步驟200所示,其中算法指令CPU12發(fā)起用于從新近加載的組件52獲得相關(guān)綁定配置的過程。在步驟202中,指令CPU12獲得對組件52和計算機系統(tǒng)的相關(guān)平臺合適的配置數(shù)據(jù),即,為需要的計算機硬件設(shè)備或軟件應(yīng)用的每一個獲得驗證標識符106。組件52通過在步驟204中從加密文件64提供配置數(shù)據(jù)62來響應(yīng)。給出實例,根據(jù)該實例需要類型值1的至少一個硬件設(shè)備或軟件應(yīng)用,該類型值1將最終產(chǎn)生標識MPID1;不需要類型值2的設(shè)備或應(yīng)用,該類型值2將最終產(chǎn)生標識MPID2;并且需要類型值3的至少一個設(shè)備或應(yīng)用,該類型值3將最終產(chǎn)生標識MPID3。組件52還提供數(shù)據(jù)以指示MPID1的易失性標識符114示出"是',,其意味著該類設(shè)備或應(yīng)用可以是易失性的;必要性標識符116是"否",其意味著該類不是必要的;并且該類的權(quán)重值是5。類似的,MPID3的驗證標識符106示出該類設(shè)備或應(yīng)用是非易失性的但是必要的并且具有權(quán)重IO。此外,將產(chǎn)生MPID3的該類允許模糊比較或模式匹配。-瞼i正器算法還在步驟204通過詢問組件52來決定應(yīng)當為MID100決定30的容差^直104。這樣的配置數(shù)據(jù)已經(jīng)在步驟202讀取,驗證器算法繼續(xù)到步驟206,并且編譯為特定組件52的驗證需要在計算機系統(tǒng)中發(fā)現(xiàn)的設(shè)備或應(yīng)用種類的列表,并為每個這樣的設(shè)備分配在步驟202讀取的配置設(shè)置。在步驟206編譯的驗證列表在步驟208放置在存儲器54中,并且這完成了驗證過程的初始階段,在該階段中決定對于特定組件52的綁定配置。驗證器程序56接著進行到通過圖4中所示的過程為平臺決定MID100。在步驟300,CPU12檢索存儲在存儲器54中的驗證列表,并且在步驟302,CPU12檢查對該綁定配置需要哪類計算機設(shè)備或應(yīng)用。已經(jīng)決定了需要哪類后,驗證過程在步驟304中檢查計算機系統(tǒng),以對計算機系統(tǒng)內(nèi)每個需要的計算機設(shè)備或應(yīng)用決定標識。例如,計算機系統(tǒng)決定綁定配置需要硬盤驅(qū)動器322或存儲在硬盤驅(qū)動器322上的軟件應(yīng)用,并且向系統(tǒng)詢問以獲得該設(shè)備或應(yīng)用的標識值。該標識值可以是序列號。類似地,作為實例,驗證過程可以從步驟302確定組件52需要顯示器330以及CDROM驅(qū)動器30,或在CDROM驅(qū)動器326內(nèi)的盤上的軟件應(yīng)用,以及擴展槽或擴展卡,在圖4中分別由參考標號350和352表示。在每種情況,在步驟304,CPU12檢索對相關(guān)i殳備或應(yīng)用的標識值120,如序列號。驗證過程然后進行到步驟306,并詢問步驟304是否決定所有必要的計算機設(shè)備或應(yīng)用在計算機系統(tǒng)內(nèi)可用。如果答案為"否",則驗證過程進行到步驟308,并且宣布驗證無效,因為需要的設(shè)備或應(yīng)用不可用。在該情形,驗證過程指令CPU12阻止組件52運行。另一方面,如果步驟306決定所有必要的計算機設(shè)備或應(yīng)用可用,則過程進行到步驟310,并且將在步驟304檢索的標識值120分配給已經(jīng)為MPID102存儲在存儲器54中的配置i殳置。MPID102的完整集和容差值104現(xiàn)在可用,并且這構(gòu)成對于相關(guān)組件52的MID100。這樣的MID]00在步驟312中存儲在存儲i殳備58中,并且這完成了驗證過程的第二階段。組件52現(xiàn)在可以運行在計算機系統(tǒng)上。隨后,每當組件52在計算機系統(tǒng)上運4亍時,執(zhí)4亍綁定驗證^企查,以決定組件52是否仍然有效地匹配計算機系統(tǒng),反之亦然。該過程在圖5中圖示。當組件52重加載或安裝在計算機系統(tǒng)中時發(fā)起該驗證檢查,在該點-驗證程序56指令CPU12啟動驗證檢查。這如步驟400所示。在步驟402,驗證程序提示CPU12詢問組件52以獲得如參照圖3所述的新的綁定配置。驗證過程然后進行到步驟404,其中CPU12對計算機系統(tǒng)內(nèi)的所有可用計算機設(shè)備或應(yīng)用決定標識值,并且將這些分配給MPID,如參照圖4所述。新的當前MID100現(xiàn)在已經(jīng)決定。-驗證4全查過程現(xiàn)在進4亍到步驟406,其中CPU12詢問存儲設(shè)備58以查詢先前的MIDIOO是否包含在存儲體中,作為參照圖3和圖4描述的驗證過程各步驟的先前實現(xiàn)的結(jié)果。在步驟408,CPU12詢問先前的MIDIOO是否可用,并且如果答案是"否",則在步驟410CPU12將當前的MID100寫到存儲設(shè)備58。另一方面,如果對步驟408的查詢的答案是"是",則驗證檢查過程進行到步驟412,并且在參照圖6描述的子例程中將先前的MID100與當前的MID100比較。在步驟414,驗證檢查過程詢問在綁定配置中指定的容差值內(nèi)、先前的MIDIOO和當前的MIDIOO之間是否存在匹配。如果答案是"是",則假定驗證檢查有效,如步驟416所示,并且指令CPU12允許組件52運行。另一方面,如果步驟414的結(jié)果是"否",則推定-驗證檢查無效,并且指令CPU12阻止組件52運4亍?,F(xiàn)在轉(zhuǎn)到圖6,將描述用于將當前的MID100與先前的MID100比4交的子例程,如參照圖5中的步驟412所述。子例程以步驟500開始,其中指令CPU12比較兩個MID100。在步驟502中,CPU12例如通過從存儲體4全索先前計算的分數(shù)(score),或通過重新計算對先前的MID100的分數(shù),決定先前的MIDIOO的分數(shù)。在第一種決定分數(shù)的情況,MID100將是當組件52最初加載到計算機系統(tǒng)中時獲得的初始MID100,并且分數(shù)可通過將分配給初始MID100的每個MPID102的權(quán)重求和來計算。初始MID100的分數(shù)的決定在下表2中圖示。<table>tableseeoriginaldocumentpage16</column></row><table>表2驗證檢查過程現(xiàn)在進行到步驟504,其中例如通過對經(jīng)歷各種規(guī)則的每個指定的計算機設(shè)備或應(yīng)用的權(quán)重值112求和,將分數(shù)分配給當前的MID100。在這些規(guī)則下,例如通過比較分配給每類設(shè)備或應(yīng)用的類型值110,CPU12首先檢查指定的計算機設(shè)備或應(yīng)用是否與為先前的MID100指定的設(shè)備或應(yīng)用相同。對新近可用的計算機設(shè)備或應(yīng)用的權(quán)重值112、以及(直接或通過f莫糊比較)其標識值120匹配先前的MID100中的對應(yīng)標識值120的已經(jīng)指定了的那些的權(quán)重值112求和。如果MPID102的標識值120不匹配來自先前的MID100的對應(yīng)值,則權(quán)重值不加到當前的MID100的分數(shù);并且,如果MPID102不可用,則再次地權(quán)重值不加到該分數(shù)。這在下表3中圖示。<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>3現(xiàn)在已經(jīng)在步驟502決定了先前的MID100的分數(shù),并且在步驟504決定了當前的MID100的分數(shù),驗證檢查過程在步驟506比較兩個分數(shù)。在步驟508,CPU12詢問在兩個分數(shù)之間是否存在匹配。匹配將意味著分^:相等或它們之間的差別在設(shè)置的容差等級內(nèi),意味著在計算機系統(tǒng)中已經(jīng)發(fā)生了不超過正常的改變。如果答案是"否",則驗證檢查過程假設(shè)先前的MID100在不同機器上計算,并且在步驟510指示驗證檢查無效,并且組件52由CPU12阻止運行。另一方面,如果對在步驟508進行的查詢的答案是"是,',則驗證檢查過程指示檢查有效,并且在步驟512,指令CPU12允許組件52運行。同時,存儲在存儲設(shè)備58中的先前的MID100更新到新的MID100??赡艽嬖诋敱仨毣蚱谕刂么鎯υ诖鎯υO(shè)備58中的MID100的情況。即使驗證檢查過程已經(jīng)指示驗證檢查無效,然而在一些情況下可能進行判決允許組件52運行。例如,如果在激活后的指定期間內(nèi)(例如激活后的六個月內(nèi))進行請求,則軟件制'造商可能允許修復(fù)。另一可能性是當軟件制造商使用加密狗作為軟件的綁定的部分,并且當軟件升級時加密狗改變。由于加密狗通常對于綁定是必要的,所以這將導(dǎo)致驗證檢查示出無效的結(jié)果,即使升級的使用在用戶許可范圍內(nèi)。另一個實例是當用戶的硬盤撞壞并且發(fā)布者能夠決定用戶是真實的客戶(可能通過購買證明)。在所有這些情形,MID100的重置可以允許。在提供重置設(shè)備的情形,驗證器模塊56將包括用于實現(xiàn)如圖7和圖8中所示的過程步驟的軟件?,F(xiàn)在將描述這些過程步驟。首先,如果提供重置設(shè)備,則在產(chǎn)生MID100的第一種情況并僅在第一種情況修改圖4中示出的步驟312。在該實例中,原始MIDIOO不僅存儲在存儲設(shè)備58中而且由CPU12產(chǎn)生MID100的散列并通過NIC34發(fā)送到服務(wù)器70。采用散列以確保出于隱私原因各個MPID以及原始的綁定配置不傳輸?shù)椒?wù)器70,并且確保計算機系統(tǒng)的恒定長度的標識符對服務(wù)器70可用。原始的MID100然后保持存儲在存儲設(shè)備58中,然后散列MID保持存儲在服務(wù)器70中,用于將來在可能需要重置的情形的恢復(fù)。其次,如果提供了重置設(shè)備,則修改圖6中所示的步驟504以包括圖7中示出的子例程,以便決定與當前的MID100相關(guān)耳關(guān)的一組々務(wù)復(fù)標志,用于指示在進行修復(fù)判決時可能需要修復(fù)的位置?,F(xiàn)在將描述圖7的子例程。當當前的MID100的分數(shù)在步驟504正在計算時,在步驟600中驗證過程發(fā)起指令以初始化一組修復(fù)標志。該組是N位數(shù)602,其中每位表示選4奪的MPID102并且其中每位初始設(shè)為表示可運行的MPID102的'T,。在本實例中,修復(fù)標志組是覆蓋MID中的16個MPID102的可能性的16位數(shù)。.然而,長度可以根據(jù)需要改變。響應(yīng)于在步驟600中發(fā)起的指令,驗證過程進行到步驟604,并且通過將N位數(shù)的每位設(shè)為"1"初始化修復(fù)標志組。接下來,驗證過程進行到步驟606,其中當前的MID100的每個MPID的標識值120與先前的MPID100中相應(yīng)的MPID的標識值120比較。對于每個這樣的MPID102,在步驟608進行關(guān)于兩個標識值是否匹配的查詢。如果答案是"是",則在步驟610各個MPID102的權(quán)重值112加到當前的MID100的分數(shù)。另一方面,如果答案是"否",則在步驟612表示相關(guān)的MPID102的修復(fù)標志組602的位值設(shè)為值"零"。這意味著在相關(guān)的MPID102中存在錯誤。步驟610或步驟612后,驗證過程進行到步驟614,并且查詢當前的MID100是否包括其他MPID102以與先前的MID100中的其對應(yīng)部分比較。如果答案是"是",則過程再次回到步驟606。然而,如果答案是"否",則通過發(fā)出當前的MID100的分數(shù)以及修復(fù)標志組602,子例程在步驟616結(jié)束。接下來,用于重置的軟件過程跟隨圖8中所示的各步驟。在已經(jīng)如參照圖5描述并如圖8中的步驟700表示的,組件52已經(jīng)在計算機系統(tǒng)內(nèi)重加載并且驗證器模塊56已經(jīng)完成驗證檢查后,驗證器模塊56在步驟702通過CPU12查詢驗證檢查的結(jié)果是有效還是無效。如果答案是"否",則過程進行到以步驟704開始的組件中的子例程。這里,指令CPU12通知用戶檢查產(chǎn)生無效結(jié)果,并向用戶查詢是否應(yīng)做出修復(fù)請求。CPU12可以例如通過顯示器22上的彈出消息,通過直接與用戶的咨詢來檢驗它。如果答案是"是",則在步驟706產(chǎn)生修復(fù)請求。修復(fù)請求將包括從存儲設(shè)備58檢索的原始的MID100的散列,當前的MID100的散列,以及作為圖7的過程的結(jié)果產(chǎn)生的修復(fù)標志602。然后修復(fù)請求在步驟708和710中被加密并發(fā)送到服務(wù)器70。服務(wù)器70在步驟712接收并解密修復(fù)請求,并且由于第一次使用組件52,因此在步驟714檢索已經(jīng)存儲在服務(wù)器70中的散列的原始MID100。來自計算機10的原始MID100的散列和來自服務(wù)器70的散列的原始MID100然后在步驟716比較,并且服務(wù)器70在步驟718查詢它們是否匹配。如果答案是"是",則服務(wù)器進行到步驟720并且處理由服務(wù)器70接收的修復(fù)標志602,以便考慮哪里需要修復(fù)以及是否應(yīng)當允許修復(fù)。服務(wù)器然后進行到步驟722,并且基于步驟720的結(jié)果和為組件52內(nèi)部存儲的規(guī)定進行關(guān)于是否允許修復(fù)的判決。如果答案是"是",則服務(wù)器70在步驟724重置存儲在服務(wù)器70中的散列的原始MID100到散列的當前MID100。服務(wù)器70現(xiàn)在進行到步驟726。如果步驟718或步驟722的結(jié)果是"否",則服務(wù)器70直接進行到步驟726而不分別進行步驟720-724或步驟724的處理。在步驟726中,服務(wù)器70加密并簽名其對來自計算機10的修復(fù)請求的響應(yīng),并且在步驟728,服務(wù)器70通過NIC卡34傳輸對計算機系統(tǒng)的響應(yīng)。該響應(yīng)將包括關(guān)于是否允許修復(fù)的判決。響應(yīng)于步驟728中傳輸?shù)呐袥Q,計算機系統(tǒng)中的CPU12在步驟730認證服務(wù)器70,并解密該響應(yīng)。假定認證了服務(wù)器,則CPU12進行到步驟732,并且查詢是否要進行修復(fù)。如果答案是"是",則驗證器過程在步驟734重置存儲在存儲i殳備58中的先前MID100到當前MID100,并允許組件52重加載和運行。最后,CPU12進行到步驟736,并且還用當前MIDIOO代替存儲設(shè)備58中的原始MID100。如果答案是"否",則因為這是包括在步驟728中傳輸?shù)捻憫?yīng)中的判決或因為服務(wù)器在步驟730沒有認證、或因為通信中斷,所以過程在步驟738終止,具有阻止組件運行的"無效"指示。權(quán)利要求1.一種用于產(chǎn)生控制標識的系統(tǒng),該控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定在一起,所述綁定系統(tǒng)包括處理器;驗證器模塊,用于控制所述處理器以產(chǎn)生所述控制標識;以及用于存儲所述控制標識的存儲體;其中所述驗證器模塊安排來定義所述組件的綁定配置,所述綁定配置表示在所述計算機系統(tǒng)內(nèi)對所述組件的運行所需的硬件元件組和軟件元件組的至少一個的加權(quán)組合,并且被安排來提示所述處理器決定所述至少一個元件組內(nèi)的元件的實例在所述計算機系統(tǒng)中是否存在;其中所述驗證器模塊向決定為存在的每類元件分配標識值,并且將所述標識值加到表示所述綁定配置的數(shù)據(jù),以定義所述控制標識;并且其中所述驗證器模塊使得所述控制標識傳輸?shù)剿龃鎯w。2.如權(quán)利要求1所述的系統(tǒng),其中所述綁定配置根據(jù)選擇的平臺而確定。3.如權(quán)利要求l所述的系統(tǒng),其中所述綁定配置包括用于所述每類元件的標識符列表。4.如權(quán)利要求3所述的系統(tǒng),其中所述標識符列表從包括下述的群中選擇表示所述元件種類的類型號,表示所述元件種類對所述元件的運行的重要性的權(quán)重值,表示關(guān)于所述種類中的元件是否可以改變的指示的易失性指示符,表示關(guān)于所述種類中的元件對所述組件的運行是否必需的指示的必要性指示符,以及表示對于所述種類中的多個元件的各個的通用指示符的掩碼值。5.如權(quán)利要求l所述的系統(tǒng),其中對所述每類元件的所述標識值以及所述綁定配置的所述組合包括種類標識,并且其中所述控制標識包括所述種類標識符列表。6.如權(quán)利要求l所述的系統(tǒng),還包括信令裝置,用于將所述組件的存在傳達給所述處理器,并用于當所述組件加載到所述計算機系統(tǒng)中時發(fā)起控制標識的產(chǎn)生。7.如權(quán)利要求6所述的系統(tǒng),其中安排所述驗證器模塊,使得所述處理器在所述組件加載到所述計算機系統(tǒng)中的每種情形產(chǎn)生新的控制標識。8.如權(quán)利要求7所述的系統(tǒng),其中安排所述驗證器模塊,使得所述處理器將所述新的控制標識與先前的所述控制標識比較,用于決定是否可以允許所述組件在所述計算機系統(tǒng)中運行。9.如權(quán)利要求8所述的系統(tǒng),其中所述驗證器模塊將每個所述控制標識轉(zhuǎn)換成分數(shù)值用于對其進行比較。10.如權(quán)利要求l所述的系統(tǒng),其中所述驗證器模塊包括軟件算法。11.如權(quán)利要求l所述的系統(tǒng),其中所述存儲體是安全存儲體。12.如權(quán)利要求1所述的系統(tǒng),還包括用于發(fā)起》爹復(fù)請求的裝置和用于響應(yīng)于所述修復(fù)請求重置所述控制標識的裝置。13.—種用于產(chǎn)生控制標識的系統(tǒng),該控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定在一起,所述綁定系統(tǒng)包括處理器;驗證器模塊,用于控制所述處理器產(chǎn)生所述控制標識;以及用于存儲所述控制標識的存儲體;所述驗證器模塊包括用于定義所述組件的綁定配置的裝置,所述綁定裝置表示在所述計算機系統(tǒng)內(nèi)對所述組件的運行所需的硬件元件組和壽欠件元件組的至少一個的加權(quán)組合;用于決定所述至少一個元件組內(nèi)的元件的實例在所述計算機系統(tǒng)中是否存在的裝置;用于為決定為存在的每類元件分配標識值的裝置;用于將所述標識值加到表示所述綁定配置的數(shù)據(jù)以定義所述控制標識的裝置;以及用于使所述控制標識傳輸?shù)剿龃鎯w的裝置。14.一種承載用于產(chǎn)生控制標識的程序的計算機可讀介質(zhì),該控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定在一起,所述程序包括用于定義所述組件的綁定配置的代碼,所述綁定裝置表示在所述計算機系統(tǒng)內(nèi)對所述組件的運行所需的硬件元件組和軟件元件組的至少一個的加權(quán)組合;用于決定所述至少一個元件組內(nèi)的元件的實例在所述計算機系統(tǒng)中是否存在的代碼;用于為決定為存在的每類元件分配標識值的代碼;用于將每個標識值加到表示所述綁定配置的數(shù)據(jù)以定義所述控制標識的代碼;以及用于使所述控制標識傳輸?shù)剿龃鎯w的代碼。15.—種用于產(chǎn)生控制標識的方法,所述控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定到一起,所述方法包括定義所述組件的綁定配置,所述綁定配置表示所述計算機系統(tǒng)內(nèi)對所述組件的運4于所需的硬件元件組和軟件元件組的至少一個的加權(quán)組合;決定所述至少一組元件內(nèi)的元件的實例在所述計算機系統(tǒng)中是否存在;為決定為存在的每類元件分配標識值;將所述標識值加到表示所述綁定配置的數(shù)據(jù)以定義所述控制標識;以及存儲所述控制標識。16.如權(quán)利要求15所述的方法,包括根據(jù)選擇的平臺確定所述綁定配置。17.如權(quán)利要求15所述的方法,其中所述綁定配置包括對所述每類元件的標識符列表。18.如權(quán)利要求17所述的方法,包括從下述群中選擇所述標識符列表表示所述元件種類的類型號,表示所述元件種類對所述元件的運行的重要性的權(quán)重值,表示關(guān)于所述種類中的元件是否可以改變的指示的易失性指示符,表示關(guān)于所述種類中的元件對所述組件的運行是否必需的指示的必要性指示符,以及表示對于所述種類中的多個元件的各個的通用指示符的掩碼值。19.如權(quán)利要求15所述的方法,其中對所述每類元件類的所述標識值和所述綁定配置的所述組合包括種類標識,并且其中所述控制標識包括所述種類標識列表。20.如權(quán)利要求15所述的方法,還包括傳達所述組件的存在,并當所述組件加載到所述計算機系統(tǒng)中時發(fā)起所述控制標識的產(chǎn)生。21.如權(quán)利要求20所述的方法,包括在所述組件加載到所述計算機系統(tǒng)中的每種情形產(chǎn)生新的控制標識。22.如權(quán)利要求21所述的方法,還包括將所述新的控制標識與先前的所述控制標識比較,用于決定是否可以允許所述組件在所述計算機系統(tǒng)中運4亍。23.如權(quán)利要求22所述的方法,包括將每個所述控制標識轉(zhuǎn)換為分數(shù)值用于對其進行比較。24.如權(quán)利要求15所述的方法,還包括響應(yīng)于纟f復(fù)請求重置所述控制標全文摘要本發(fā)明提供了一種用于產(chǎn)生控制標識的系統(tǒng)和方法,所述控制標識用于將組件與包括硬件設(shè)備和軟件應(yīng)用的計算機系統(tǒng)綁定到一起。該綁定系統(tǒng)包括處理器;驗證器模塊,用于控制所述處理器以產(chǎn)生控制標識;以及用于存儲控制標識的存儲體。所述驗證器模塊被安排來定義組件的綁定配置,所述綁定配置表示在計算機系統(tǒng)內(nèi)對組件的運行所需的硬件元件組和軟件元件組的至少一個的加權(quán)組合,驗證器模塊還被安排來提示處理器決定至少一個元件組內(nèi)的元件的實例在計算機系統(tǒng)中是否存在。驗證器模塊向決定為存在的每類元件分配標識值,并且將標識值加到表示綁定配置的數(shù)據(jù),以定義控制標識。驗證器模塊然后使得控制標識傳輸?shù)酱鎯w。文檔編號G06F3/00GK101189566SQ200680019783公開日2008年5月28日申請日期2006年4月26日優(yōu)先權(quán)日2005年5月3日發(fā)明者穆罕默德·S·尤韋斯申請人:麥克羅維西恩公司