專利名稱:安全機(jī)器計(jì)數(shù)的制作方法
安全機(jī)器計(jì)數(shù)北旦 冃尿軟件盜版是使軟件廠商每年流失大量金錢的全球性問(wèn)題。一種稱為臨時(shí)拷 貝的盜版形式是在多個(gè)計(jì)算機(jī)上共享和安裝軟件,這違反了終端用戶許可協(xié) 議。產(chǎn)品激活是減少這類盜版的一種方法。產(chǎn)品激活通常依賴于向軟件廠商提交安裝標(biāo)識(shí)代碼和/或硬件標(biāo)識(shí)符。作 為響應(yīng),軟件廠商返回激活確認(rèn)代碼。在典型的零售應(yīng)用程序的產(chǎn)品激活中, 為每個(gè)盒裝軟件封裝提供唯一產(chǎn)品密鑰。通常,在某一試用期(軟件安裝之后 在無(wú)需激活的情況下運(yùn)行的時(shí)間段)之后或期間,顧客必須聯(lián)系軟件廠商以激 活他或她的軟件副本。未能激活的后果通常是軟件的停用或者軟件功能的降 級(jí)。通常,使用唯一產(chǎn)品密鑰來(lái)生成唯一產(chǎn)品標(biāo)識(shí)代碼,該代碼可與散列的硬 件相關(guān)值組合以生成運(yùn)行該軟件的機(jī)器專用的安裝標(biāo)識(shí)代碼。通常將允許該軟 件運(yùn)行的激活確認(rèn)返回給客戶。在這方面,激活確認(rèn)也可以是許可文件,或者 表示許可的二進(jìn)制文件。在每次登陸時(shí),獲許可軟件都進(jìn)行校驗(yàn)以查看它實(shí)際 上是運(yùn)行在其被激活的同一硬件上。如果校驗(yàn)失敗,則在軟件再次運(yùn)行之前需 要再次激活。公司客戶一般購(gòu)買批量許可,因?yàn)閷?duì)于公司客戶一在其域中可能具有成百 或上千臺(tái)機(jī)器一而言對(duì)每個(gè)已安裝軟件副本聯(lián)系軟件廠商以獲得機(jī)器專用激 活代碼并不可行。因此通常,批量許可的持有者無(wú)需聯(lián)系軟件廠商來(lái)激活其軟 件,因?yàn)楫?dāng)檢測(cè)到批量許可密鑰時(shí),軟件會(huì)繞過(guò)激活要求。這就是公知的"產(chǎn) 品激活旁路"。因此,同一批量許可密鑰能夠在許多不同計(jì)算機(jī)上使用,而無(wú) 需在試用期滿之前或之后進(jìn)行激活以便運(yùn)行該軟件。雖然該特征使批量許可密 鑰對(duì)公司客戶安裝軟件而言更加方便,但是它同樣是吸引力的盜版目標(biāo)。例如, 盜版者獲得合法的批量許可介質(zhì)并購(gòu)買或盜取有效的批量許可產(chǎn)品密鑰??稍?稱為"商家對(duì)消費(fèi)者"盜版通道的方案中將該介質(zhì)和產(chǎn)品密鑰重新目的化并向 不知情客戶出售。因此,需要一種用于在網(wǎng)絡(luò)化計(jì)算環(huán)境中阻止盜版而不會(huì)使合法客戶過(guò)度 承擔(dān)繁瑣的反盜版要求的機(jī)制。本發(fā)明滿足這一需要。概述針對(duì)以上缺點(diǎn)和不足,一實(shí)施方式將一種軟件激活旁路機(jī)制納入到批量許 可環(huán)境中。根據(jù)這一實(shí)施方式,向軟件應(yīng)用程序提供一種指定需要在客戶網(wǎng)絡(luò) 上出現(xiàn)以便進(jìn)行軟件應(yīng)用程序的正確激活旁路的最少機(jī)器數(shù)的策略。將網(wǎng)絡(luò)內(nèi) 的一臺(tái)計(jì)算機(jī)指定為綁定服務(wù)機(jī),而要安裝軟件應(yīng)用程序的其它計(jì)算機(jī)作為客 戶機(jī)。在某一時(shí)刻,每一客戶機(jī)嘗試執(zhí)行該軟件的激活旁路。為此,該客戶機(jī) 生成含有機(jī)器標(biāo)識(shí)符、時(shí)間戳以及與該軟件應(yīng)用程序相關(guān)的信息的激活旁路消 息,并將該信息發(fā)送給綁定服務(wù)機(jī)。在收到激活旁路消息時(shí),綁定服務(wù)機(jī)對(duì)照所有這些已收到的機(jī)器標(biāo)識(shí)符的 列表檢驗(yàn)該機(jī)器標(biāo)識(shí)符。如果該機(jī)器標(biāo)識(shí)符并未出現(xiàn)在信任存儲(chǔ)中,則對(duì)其進(jìn) 行添加。綁定服務(wù)機(jī)對(duì)列表中的唯一機(jī)器標(biāo)識(shí)符的數(shù)量進(jìn)行計(jì)數(shù),并將該計(jì)數(shù) 輸入到發(fā)送給客戶機(jī)的綁定服務(wù)消息中。在收到綁定服務(wù)消息時(shí),客戶機(jī)判定 該計(jì)數(shù)是否滿足策略,如果是,則該機(jī)器能夠激活這一軟件。提供本概述是為了以簡(jiǎn)化形式引入在以下詳細(xì)描述中將進(jìn)一步描述的概 念精選。本概述不旨在標(biāo)識(shí)要求保護(hù)主題的關(guān)鍵特征和本質(zhì)特征,也不只在用 于幫助確定要求保護(hù)主題的范圍。附圖簡(jiǎn)述結(jié)合附圖進(jìn)行閱讀,能夠更好地理解以上概述以及以下對(duì)較佳實(shí)施方式的 詳細(xì)描述。出于對(duì)本發(fā)明進(jìn)行說(shuō)明的目的,附圖中示出本發(fā)明的示例結(jié)構(gòu);然 而,本發(fā)明并不限于附圖中所公開的具體方法和設(shè)備
圖1是其中可實(shí)現(xiàn)本發(fā)明諸方面的示例計(jì)算環(huán)境;圖2A是示出根據(jù)一實(shí)施方式的其中軟件盜版可被阻止的示例網(wǎng)絡(luò)的框圖;圖2B是可根據(jù)一實(shí)施方式使用的示例激活旁路消息的框圖; 圖2C是可根據(jù)一實(shí)施方式使用的示例綁定服務(wù)消息的框圖;圖3是示出根據(jù)一實(shí)施方式的允許軟件激活旁路的示例客戶機(jī)方法的流 程圖;以及圖4是示出根據(jù)一實(shí)施方式的激活軟件的示例綁定服務(wù)方法的流程圖。詳細(xì)描述 總覽一實(shí)施方式將軟件激活旁路機(jī)制納入到批量許可環(huán)境中。激活旁路機(jī)制無(wú) 需客戶聯(lián)系軟件廠商。根據(jù)這一實(shí)施方式,向軟件應(yīng)用程序提供一種策略。該 策略指定需要出現(xiàn)在客戶網(wǎng)絡(luò)上以便進(jìn)行該軟件應(yīng)用程序的正確激活旁路的 最少機(jī)器數(shù)。將網(wǎng)絡(luò)內(nèi)的一臺(tái)計(jì)算機(jī)指定為綁定服務(wù)機(jī)。要安裝軟件應(yīng)用程序 的其它計(jì)算機(jī)作為客戶機(jī)。將該軟件應(yīng)用程序的副本安裝在每臺(tái)計(jì)算機(jī)(即, 例如綁定服務(wù)機(jī)和客戶機(jī))上,并且在某一時(shí)刻(例如登陸時(shí)),每一客戶機(jī) 嘗試執(zhí)行該軟件的激活旁路。為此,該客戶機(jī)生成含有機(jī)器標(biāo)識(shí)符、時(shí)間戳和 與該軟件應(yīng)用程序相關(guān)的信息的激活旁路消息,并將這一消息發(fā)送給綁定服務(wù) 機(jī)。在收到激活旁路消息時(shí),綁定服務(wù)機(jī)對(duì)照含有所有這些已收到的機(jī)器標(biāo)識(shí) 符的列表的信任存儲(chǔ)來(lái)校驗(yàn)該機(jī)器標(biāo)識(shí)符。如果該機(jī)器標(biāo)識(shí)符未在信任存儲(chǔ)中 出現(xiàn),則對(duì)其進(jìn)行添加。綁定服務(wù)機(jī)對(duì)信任存儲(chǔ)中的唯一機(jī)器標(biāo)識(shí)符的數(shù)量進(jìn) 行計(jì)數(shù),并將該計(jì)數(shù)輸入到發(fā)送給客戶機(jī)的綁定服務(wù)消息中。在收到該綁定服 務(wù)消息時(shí),客戶機(jī)判定該計(jì)數(shù)是否滿足策略(即是否達(dá)到最少機(jī)器數(shù))。如果 是,則該機(jī)器能夠啟用該軟件的激活旁路。否則,該軟件保持未激活,并且在 適用時(shí)繼續(xù)在"試用"期內(nèi)操作。使用滿足法定要求的特性對(duì)本發(fā)明的主題進(jìn)行描述。然而,描述本身并不 旨在限制本專利的范圍。相反,發(fā)明人已經(jīng)想到,結(jié)合其它現(xiàn)有或未來(lái)的技術(shù), 要求保護(hù)的主題也可通過(guò)其它方式實(shí)施,以包含不同與本申請(qǐng)中所述的類似的 不同步驟或元素。此外,雖然在本文中,屬于"步驟"可用于標(biāo)識(shí)所使用方法 的不同方面,但是該屬于不應(yīng)被解釋為暗示本文所公開的各個(gè)步驟之間的任何 特定次序,除非明示了各個(gè)步驟的次序。示例計(jì)算環(huán)境圖1示出其上可實(shí)現(xiàn)本發(fā)明的合適計(jì)算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境ioo只是合適計(jì)算環(huán)境的一個(gè)示例,并不旨在對(duì)本發(fā)明的使用范圍或功能提出任何限制。計(jì)算系統(tǒng)環(huán)境IOO不應(yīng)被解釋為具有與在示例計(jì)算系 統(tǒng)環(huán)境100中描述的組件中任一個(gè)或組合相關(guān)的任何依賴或要求。本發(fā)明可在許多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置中操作。適用于本發(fā)明的公知計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不局限于個(gè)人計(jì) 算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理 器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì) 算機(jī)、包括以上系統(tǒng)或設(shè)備中任一個(gè)的分布式計(jì)算環(huán)境等。本發(fā)明可在由計(jì)算機(jī)執(zhí)行的諸如程序模塊的計(jì)算機(jī)可執(zhí)行指令的通用 上下文中描述。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類 型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。通常可按照各個(gè)實(shí)施方式中 所述的,對(duì)程序模塊的功能進(jìn)行組合或分布。本發(fā)明還可以在其中由通過(guò) 通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行任務(wù)的分布式計(jì)算環(huán)境中實(shí)施。在分布 式計(jì)算環(huán)境中,程序模塊位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存 儲(chǔ)介質(zhì)中。參照?qǐng)D1,用于實(shí)現(xiàn)本發(fā)明的示例系統(tǒng)包括計(jì)算機(jī)110形式的通用計(jì) 算設(shè)備。計(jì)算機(jī)110的組件可包括,但不局限于處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元120的 系統(tǒng)總線121。系統(tǒng)總線121可以是若干類型總線結(jié)構(gòu)中的任一種,包括存 儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線和使用各種總線架構(gòu)中任一種的局域 總線。作為示例而非限制,這些架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微信 道架構(gòu)(MCA)總線、增強(qiáng)的ISA (EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及也被稱為Mezzanine (夾層)總線的外圍組件互連(PCI)總線。計(jì)算機(jī)IIO通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可 由計(jì)算機(jī)IIO訪問(wèn)的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何方法或技術(shù)實(shí)現(xiàn)的用于存 儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的易失性 和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不局限于RAM、 ROM、 EEPROM、閃存或其它存儲(chǔ)技術(shù)、CD-ROM、數(shù)字多功能盤 (DVD)或其它光盤存儲(chǔ)、盒式磁帶、磁帶、磁盤存儲(chǔ)或其它磁性存儲(chǔ)設(shè) 備、或可用于存儲(chǔ)所需信息并可由計(jì)算機(jī)110訪問(wèn)的任何其它介質(zhì)。通信 介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制的調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可 讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并可包括任何信息傳輸介質(zhì)。 術(shù)語(yǔ)"調(diào)制數(shù)據(jù)信號(hào)"表示以在信號(hào)中編碼信息的方式設(shè)置或改變其一個(gè) 或多個(gè)特征的信號(hào)。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直 接接線連接的有線介質(zhì),以及諸如聲學(xué)、RF、紅外線的無(wú)線介質(zhì)和其它無(wú) 線介質(zhì)。以上中任一種的組合也應(yīng)包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲(chǔ)器130包括諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器 (RAM) 132的易失性和/或非易失性存儲(chǔ)器形式的存儲(chǔ)介質(zhì)。包含在諸如 啟動(dòng)期間幫助在計(jì)算機(jī)110內(nèi)元件之間傳遞信息的基本例程的基本輸入/輸 出系統(tǒng)133 (BIOS)通常存儲(chǔ)在ROM 131中。RAM 132通常包含可由處理 單元120即時(shí)訪問(wèn)和/或正在其上操作的數(shù)據(jù)和/或程序模塊。作為示例而非 限制,圖1示出操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù) 據(jù)137。計(jì)算機(jī)110還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存 儲(chǔ)介質(zhì)。僅作為示例,圖l示出從不可移動(dòng)、非易失性磁性介質(zhì)讀取或向 其寫入的硬盤驅(qū)動(dòng)器141、從可移動(dòng)、非易失性磁盤152讀取或向其寫入的 磁盤驅(qū)動(dòng)器151、和從諸如CDROM或其它光學(xué)介質(zhì)的可移動(dòng)、非易失性 光盤156讀取或向其寫入的光盤驅(qū)動(dòng)器155。可用于示例性操作環(huán)境的其它 可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不局限于磁 帶盒、閃存卡、數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。 硬盤驅(qū)動(dòng)器141通常由諸如接口 140的不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總 線121,而磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155則通常由諸如接口 150的可移 動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121。以上描述和圖1中示出的驅(qū)動(dòng)器及其關(guān)聯(lián)計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī) 110提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如在圖1中,硬盤驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程 序模塊146和程序數(shù)據(jù)147。注意,這些組件可與操作系統(tǒng)134、應(yīng)用程序 135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。在此對(duì)操作系統(tǒng)144、 應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給出不同的附圖標(biāo)記至少 說(shuō)明它們是不同的副本。用戶可通過(guò)諸如鍵盤162和定點(diǎn)設(shè)備161 (通常指 的是鼠標(biāo)、跟蹤球或觸摸墊)的輸入設(shè)備向計(jì)算機(jī)110輸入命令和信息。 其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲墊、圓盤式衛(wèi)星天線、 掃描儀等。這些和其它輸入設(shè)備通常由耦合到系統(tǒng)總線的用戶輸入接口 160 連接到處理單元120,但是也可由諸如并行端口、游戲端口或通用串行總線 (USB)之類的其它接口和總線結(jié)構(gòu)連接。監(jiān)視器191或其它類型的顯示 設(shè)備也可經(jīng)由諸如視頻接口 190的接口連接到系統(tǒng)總線121。除了監(jiān)視器之 外,計(jì)算機(jī)還可包括可以通過(guò)輸出外圍接口 195連接的諸如揚(yáng)聲器197和 打印機(jī)196的其它外圍輸出設(shè)備。計(jì)算機(jī)110可在使用到諸如遠(yuǎn)程計(jì)算機(jī)180的一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī) 的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作-遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服 務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括以 上相關(guān)于計(jì)算機(jī)IIO描述的元件中的多個(gè)或全部,但在圖1中僅僅示出了 存儲(chǔ)器存儲(chǔ)設(shè)備181。在圖1中所描繪的邏輯連接包括局域網(wǎng)(LAN) 171 和廣域網(wǎng)(WAN) 173,但是也可以包括其它網(wǎng)絡(luò)。這種網(wǎng)絡(luò)環(huán)境在辦公 室、企業(yè)內(nèi)部計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中十分常見(jiàn)。當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)IIO通過(guò)網(wǎng)絡(luò)接口或適配器170 連接到LAN171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào) 制解調(diào)器172或用于在諸如因特網(wǎng)的WAN 173上建立通信的任何裝置?;?為內(nèi)置或?yàn)橥庵玫恼{(diào)制解調(diào)器172可經(jīng)由用戶輸入接口 160或其它適當(dāng)機(jī) 制連接到系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相關(guān)于計(jì)算機(jī)IIO描述的程序模 塊或其部分可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖l示 出駐留在存儲(chǔ)器設(shè)備181上的遠(yuǎn)程應(yīng)用程序185。應(yīng)該理解,所示網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。 示例分布式計(jì)算框架或體系結(jié)構(gòu)由于個(gè)人計(jì)算技術(shù)和因特網(wǎng)的結(jié)合,已經(jīng)和正在開發(fā)各種分布式計(jì)算框架。向個(gè)人和企業(yè)用戶提供應(yīng)用程序和計(jì)算設(shè)備的可無(wú)縫共同操作和啟用web 的接口,從而使計(jì)算活動(dòng)日益面向web瀏覽器或面向網(wǎng)絡(luò)。例如,MICROSOFT⑧的.NET平臺(tái)包括服務(wù)器、諸如基于web的數(shù)據(jù)存儲(chǔ) 的構(gòu)建塊服務(wù)以及可下載設(shè)備軟件。 一般而言,.NET平臺(tái)提供(1)使計(jì)算設(shè) 備的全體一起工作并自動(dòng)更新和同步全部設(shè)備上的用戶信息的能力,(2)通 過(guò)更多地使用XML而非HTML實(shí)現(xiàn)web站點(diǎn)交互能力增加,(3)以定制訪 問(wèn)以及從管理諸如電子郵件的各種應(yīng)用程序或諸如Office.NET的軟件的中央 起始點(diǎn)到用戶的產(chǎn)品和服務(wù)傳送為特色的在線服務(wù),(4)集中式數(shù)據(jù)存儲(chǔ), 增加訪問(wèn)信息的效率和便捷以及用戶和設(shè)備之間的信息同步,(5)集成諸如 電子郵件、傳真和電話的各種通信媒介的能力,(6)對(duì)于開發(fā)者,創(chuàng)建可再 使用的模塊的能力,從而增加生產(chǎn)率并減少編程差錯(cuò)的數(shù)量,以及(7)許多 其它交叉平臺(tái)集成特征。雖然在本文中相關(guān)于駐留在計(jì)算設(shè)備上的軟件來(lái)描述示例實(shí)施方式,但是 本發(fā)明的一個(gè)或多個(gè)部分也可通過(guò)操作系統(tǒng)、API或協(xié)處理器與請(qǐng)求對(duì)象之間 的中間軟件來(lái)實(shí)現(xiàn),使得可由.NET語(yǔ)言和服務(wù)的全部以及其它分布式計(jì)算框 架來(lái)執(zhí)行、支持或經(jīng)由其訪問(wèn)服務(wù)。示例實(shí)施方式在以下討論中,假設(shè)與在軟件激活上下文中在計(jì)算機(jī)網(wǎng)絡(luò)中的計(jì)算機(jī)之間 實(shí)現(xiàn)安全通信相關(guān)的細(xì)節(jié)是本領(lǐng)域技術(shù)人員已知的。因此,為簡(jiǎn)潔起見(jiàn),在此 省略這些細(xì)節(jié)。在一實(shí)施方式中,提供具有關(guān)聯(lián)策略的批量許可軟件。該策略指定需要在 客戶網(wǎng)絡(luò)上出現(xiàn)以便進(jìn)行軟件的正確激活旁路的機(jī)器數(shù)目。該策略數(shù)據(jù)可被寫 進(jìn)例如可由客戶網(wǎng)絡(luò)中的機(jī)器進(jìn)行認(rèn)證的已簽名的可擴(kuò)展權(quán)限標(biāo)記語(yǔ)言 (XrML)文件。將網(wǎng)絡(luò)中的一臺(tái)計(jì)算機(jī)指定為綁定服務(wù)機(jī)。這一指定可由例如客戶、軟件廠商、軟件應(yīng)用程序自身等作出。要安裝軟件應(yīng)用程序的其它計(jì) 算機(jī)作為客戶機(jī)。將該軟件應(yīng)用程序的副本安裝在每臺(tái)計(jì)算機(jī)(即例如綁定服 務(wù)機(jī)和客戶機(jī))上,并且在某一時(shí)刻(例如登陸時(shí)),每一客戶機(jī)嘗試激活該 軟件。除了任何其它安全措施之外,可將諸如處理器標(biāo)識(shí)符之類的唯一機(jī)器屬性 用作機(jī)器標(biāo)識(shí)符,以保護(hù)尋求軟件激活旁路的計(jì)算機(jī)與提供啟用這種激活旁路 的綁定服務(wù)的計(jì)算機(jī)之間的通信路徑。尋求激活其軟件副本的客戶機(jī)生成包含 其機(jī)器標(biāo)識(shí)符、時(shí)間戳、與該軟件應(yīng)用程序相關(guān)的信息以及機(jī)器認(rèn)證碼(MAC)的激活旁路信息,并將該消息發(fā)送給綁定服務(wù)機(jī)。通過(guò)使用MAC, 一實(shí)施方式使客戶機(jī)和綁定服務(wù)的消息(以下詳細(xì)描述)能夠通過(guò)消息自身而得到認(rèn)證。 以這種方式,這些消息的認(rèn)證可以是自備的,而不需要依賴于客戶機(jī)與綁定服 務(wù)之間的通信層。 一旦消息被傳輸?shù)浇壎ǚ?wù),綁定服務(wù)就檢査該消息以確保時(shí)間戳和MAC有效。在收到并驗(yàn)證該消息的真實(shí)性時(shí),綁定服務(wù)對(duì)照已知機(jī)器隊(duì)列校驗(yàn)該機(jī)器 標(biāo)識(shí)符,并且如果未發(fā)現(xiàn)該機(jī)器標(biāo)識(shí)符則將其添加到該隊(duì)列。隨后,綁定服務(wù) 對(duì)隊(duì)列中的唯一機(jī)器標(biāo)識(shí)符的數(shù)量進(jìn)行計(jì)數(shù),并向該客戶機(jī)發(fā)送包含計(jì)數(shù)的已 認(rèn)證回復(fù)消息。該客戶機(jī)判定該計(jì)數(shù)是否滿足策略(即是否已達(dá)到最少機(jī)器 數(shù))。如果是,則該機(jī)器能夠啟用軟件激活旁路。否則,該軟件保持未激活, 并且在適用時(shí)繼續(xù)在"試用"期中操作。因此,應(yīng)該意識(shí)到, 一實(shí)施方式在允許進(jìn)行批量許可軟件應(yīng)用程序的激活 旁路之前要求客戶有效地驗(yàn)證該軟件應(yīng)用程序?qū)嶋H上是在計(jì)算機(jī)網(wǎng)絡(luò)中使用。 一實(shí)施方式要求網(wǎng)絡(luò)具有特定的最少機(jī)器數(shù)(軟件在這些機(jī)器上進(jìn)行激活旁 路),并使用機(jī)器專用標(biāo)識(shí)符來(lái)獲取準(zhǔn)確計(jì)數(shù)。雖然一實(shí)施方式并不要求軟件 安裝在特定一組機(jī)器上,但是在網(wǎng)絡(luò)上出現(xiàn)特定數(shù)量的機(jī)器的要求有效地阻止 了大多數(shù)軟件盜版者的企圖。即,軟件盜版者不大可能只是為了非法運(yùn)行軟件 應(yīng)用程序的目的就建立具有所要求機(jī)器數(shù)的網(wǎng)絡(luò),特別是在所要求機(jī)器數(shù)相當(dāng) 多的情況下。這對(duì)不知情或其它購(gòu)買盜版的軟件應(yīng)用程序副本的任何個(gè)人尤其 有效。應(yīng)該意識(shí)到,如果將最少機(jī)器數(shù)被設(shè)置為固定數(shù)字,則需要在安全和用 戶友好性之間作出某種折衷。例如,該數(shù)字設(shè)置得過(guò)小則不大可能會(huì)實(shí)現(xiàn)有益的安全效果,而如果該數(shù)字設(shè)置得過(guò)大則對(duì)合法客戶造成麻煩。通過(guò)使用綁定服務(wù)機(jī)生成機(jī)器計(jì)數(shù),客戶機(jī)無(wú)法偽造計(jì)數(shù)來(lái)繞過(guò)激活要 求。此外,計(jì)數(shù)的使用是判定軟件應(yīng)用程序是否按需在計(jì)算機(jī)網(wǎng)絡(luò)中使用的輕 便和可靠方法。如上所述, 一實(shí)施方式簡(jiǎn)單地校驗(yàn)?zāi)繕?biāo)網(wǎng)絡(luò)內(nèi)有特定數(shù)量的不 同計(jì)算機(jī)。結(jié)果,軟件廠商可向不同客戶銷售同一軟件,而無(wú)需更新或修改該 軟件,如同將該軟件針對(duì)特定網(wǎng)絡(luò)進(jìn)行了剪裁的情形一樣。因此,在一實(shí)施方 式中,在高安全性和阻止盜版與在合法客戶部分上安裝和激活的簡(jiǎn)易性上達(dá)到 可感知的平衡。應(yīng)該意識(shí)到,該平衡可根據(jù)廠商和/或客戶需要而更改。圖2A是根據(jù)一實(shí)施方式的其中軟件盜版可被阻止的示例網(wǎng)絡(luò)的框圖。網(wǎng)絡(luò)內(nèi)的客戶機(jī)220a-c可以是任何類型的計(jì)算設(shè)備。每個(gè)客戶機(jī)220a-c包括軟 件230的副本以及各自的機(jī)器屬性222a-c。軟件廠商可在諸如但不限于 CD-ROM的某種介質(zhì)上或者直接通過(guò)諸如以上相關(guān)于圖1所描述的網(wǎng)絡(luò)向批 量許可持有者提供軟件230的副本。軟件230所附帶的可以是企業(yè)專用或者批 量許可持有者專用的批量許可密匙(VLK)(未示出)。在一實(shí)施方式中,可 將VLK嵌入到稱為許可文件的相對(duì)較大的文件中。相應(yīng)客戶機(jī)220a-c的機(jī)器 屬性222a-c可以是標(biāo)識(shí)與客戶機(jī)220a-c相關(guān)聯(lián)的硬件設(shè)備的任何類型的數(shù)據(jù)。 例如,機(jī)器屬性222a可以是客戶機(jī)220a的處理器標(biāo)識(shí)符等等。在一實(shí)施方式 中,對(duì)每個(gè)客戶機(jī)220a-c使用的機(jī)器屬性222a-c的類型相同(例如每個(gè)客戶 機(jī)220a-c使用其處理器標(biāo)識(shí)符作為其機(jī)器屬性222a-c)。在其它實(shí)施方式中, 每個(gè)客戶機(jī)220a-c可使用不同的機(jī)器屬性222a-c。如上所述,可將網(wǎng)絡(luò)內(nèi)的一臺(tái)計(jì)算機(jī)指定為綁定服務(wù)機(jī)210。綁定服務(wù)機(jī) 210可以是獨(dú)立的機(jī)器,或者還可以是客戶機(jī)220。換言之,諸如客戶機(jī)220a 的客戶機(jī)與綁定服務(wù)機(jī)210可以主宿在同一機(jī)器中,或者可以在不同機(jī)器上。 綁定服務(wù)機(jī)210包含綁定服務(wù)212,該服務(wù)可以是例如在綁定服務(wù)機(jī)210內(nèi)運(yùn) 行以執(zhí)行軟件激活旁路的進(jìn)程。此外綁定服務(wù)機(jī)210包含策略216,該策略指 定必須在網(wǎng)絡(luò)中存在以進(jìn)行軟件激活旁路的最少唯一機(jī)器數(shù)。術(shù)語(yǔ)"機(jī)器"可 以指代網(wǎng)絡(luò)中要安裝軟件230的任何設(shè)備。雖然"機(jī)器"通常指某種類型(例 如臺(tái)式、膝上型等)的計(jì)算機(jī),但是"機(jī)器"還可以指服務(wù)器、諸如PDA的 設(shè)備等。此外,這一機(jī)器無(wú)需一直連接到網(wǎng)絡(luò)(例如膝上型設(shè)備)。策略216中設(shè)置的數(shù)字可被任意設(shè)置、在逐個(gè)情況的基礎(chǔ)上變化、根據(jù)特 定客戶類型(例如公司客戶)設(shè)置、根據(jù)網(wǎng)絡(luò)大小設(shè)置等。例如,可將該策略設(shè)置成要求在允許軟件激活旁路之前在網(wǎng)絡(luò)中存在25個(gè)唯一機(jī)器。信任存儲(chǔ) 214包含已嘗試激活軟件的全部機(jī)器的隊(duì)列。該隊(duì)列可將機(jī)器表示成機(jī)器標(biāo)識(shí)符(如以下所述),或者例如表示成包括機(jī)器標(biāo)識(shí)符和附加信息的條目。這種附加信息可以是例如時(shí)間戳等。信任存儲(chǔ)214可以是信任存儲(chǔ)文件,該文件是 包含一個(gè)或多個(gè)加密密匙的密匙數(shù)據(jù)庫(kù)文件。密匙可作為簽名人證書存儲(chǔ)并且 可用于各種目的,諸如使包含其中的數(shù)據(jù)生效。因此,信任存儲(chǔ)214可以是機(jī) 器標(biāo)識(shí)符和任何附加信息的安全"可信"位置。如上所述,為了激活其軟件230的副本,客戶機(jī)220a-c向綁定服務(wù)機(jī)210 發(fā)送激活旁路消息。任何類型的活動(dòng)都可觸發(fā)這種激活旁路,諸如事件發(fā)生(例 如登陸、啟動(dòng)軟件230等)、用戶引導(dǎo)、時(shí)間流逝之后等。在成功完成軟件230 的激活旁路之前,軟件230可在"試用"期中操作,其中在軟件230的激活旁 路之前全部或部分功能將對(duì)用戶可用。在一實(shí)施方式中,使用試用期是有用的, 因?yàn)樵诳蛻魴C(jī)激活旁路的數(shù)量嘗試將信任存儲(chǔ)214中的隊(duì)列填充到所需機(jī)器數(shù) 之前可能需要一段時(shí)間。因此,在將隊(duì)列構(gòu)建到所需機(jī)器數(shù)期間,客戶的用戶 仍然能夠使用軟件230。因?yàn)樵谝粚?shí)施方式中激活旁路進(jìn)程可完全自動(dòng)化,所 以試用期的使用可將激活旁路進(jìn)程有效地呈現(xiàn)為對(duì)客戶機(jī)220a-c之一的用戶 不可見(jiàn)。圖2B是可根據(jù)一實(shí)施方式使用的示例激活旁路消息240的框圖??筛鶕?jù) 任何適當(dāng)安全消息收發(fā)格式對(duì)激活旁路消息240進(jìn)行格式化。激活旁路消息 240包括指定需要激活旁路的軟件的軟件標(biāo)識(shí)符242。在一實(shí)施方式中,軟件 標(biāo)識(shí)符242可包含軟件標(biāo)識(shí)符、版本號(hào)等。因此,如果多個(gè)軟件應(yīng)用程序根據(jù) 一實(shí)施方式執(zhí)行激活旁路,則可將每個(gè)應(yīng)用程序的激活旁路進(jìn)程保持獨(dú)立,以 避免與其它激活旁路進(jìn)程干擾。激活旁路消息240還可包括機(jī)器標(biāo)識(shí)符244,例如,該標(biāo)識(shí)符可從如上參 照?qǐng)D2A所述的機(jī)器屬性222a-c形成。例如,機(jī)器屬性222a-c可以是散列的、 加密的等,以形成機(jī)器標(biāo)識(shí)符224?;蛘撸瑱C(jī)器標(biāo)識(shí)符244可簡(jiǎn)單地包括機(jī)器 屬性222a-c而不作進(jìn)一步處理或更改。激活旁路消息240還可包括時(shí)間戳246。時(shí)間戳246可用于保護(hù)軟件免受"重放"攻擊等,因?yàn)橛蓹C(jī)器標(biāo)識(shí)符244推進(jìn) 的軟件綁定很流行。最后,激活旁路消息240可包括可以例如通過(guò)消息認(rèn)證碼 (MAC)等執(zhí)行的認(rèn)證248。雖然為清楚起見(jiàn)在圖2B中未示出,但是激活旁 路消息240還可包括諸如與策略216相關(guān)的信息的附加字段。圖2C是可根據(jù)一實(shí)施方式使用的示例綁定服務(wù)消息250的框圖。與以上 參照?qǐng)D2B所述的激活旁路消息240類似,綁定服務(wù)消息250包含軟件標(biāo)識(shí)符 242、機(jī)器標(biāo)識(shí)符244 (標(biāo)識(shí)客戶機(jī))、時(shí)間戳246 (例如在激活旁路消息240 中使用的時(shí)間戳)和認(rèn)證248。認(rèn)證248可以與激活旁路消息240的認(rèn)證248 相同的方式執(zhí)行,或者可根據(jù)不同的協(xié)議執(zhí)行。此外,綁定服務(wù)消息250包括 計(jì)數(shù)252,如上參照?qǐng)D2A所述,該計(jì)數(shù)對(duì)應(yīng)于在信任存儲(chǔ)214的隊(duì)列中列出 的唯一機(jī)器標(biāo)識(shí)符的數(shù)量。雖然為清楚起見(jiàn)在圖2C中未示出,但是綁定服務(wù) 消息250可包括其它字段,諸如與策略216相關(guān)的信息。圖3是示出根據(jù)一實(shí)施方式的激活軟件的示例客戶機(jī)方法的流程圖。應(yīng)該 意識(shí)到,方法300在安裝過(guò)程中啟動(dòng)和/或執(zhí)行,或者可在后來(lái)(例如登陸)執(zhí) 行。方法300可在例如無(wú)人照管文件的幫助下進(jìn)行。無(wú)人照管文件是與軟件安 裝例程結(jié)合使用以繞過(guò)正常安裝提示(以執(zhí)行無(wú)人照管安裝)的文本文件。例 如,無(wú)人照管文件可自動(dòng)輸入VLK,配置代理設(shè)置以及代表終端用戶通過(guò)目 標(biāo)機(jī)器的局域網(wǎng)(LAN)或經(jīng)由因特網(wǎng)等來(lái)自動(dòng)激活系統(tǒng)。激活旁路還可以在 安裝之后使用命令行腳本執(zhí)行。在步驟301,由客戶機(jī)生成客戶機(jī)激活旁路消息,諸如以上參照?qǐng)D2B所 述的激活旁路消息240。在軟件最初安裝時(shí),或者在客戶機(jī)判定已安裝軟件應(yīng) 用程序的當(dāng)前批量許可不再有效時(shí)等等,可生成客戶機(jī)激活旁路消息。在步驟 302,將激活旁路消息發(fā)送到綁定服務(wù)機(jī)。步驟302可在步驟301之后立即進(jìn) 行,或者一段延時(shí)之后進(jìn)行。例如,如果客戶機(jī)是當(dāng)前從網(wǎng)絡(luò)斷開的膝上型計(jì) 算機(jī),則可在用戶啟動(dòng)該計(jì)算機(jī)時(shí)生成激活旁路消息。 一旦用戶將客戶端膝上 型計(jì)算機(jī)重新連接到網(wǎng)絡(luò),則激活旁路消息可被發(fā)送到綁定服務(wù)機(jī)。因此,以 上參照?qǐng)D2B所述的時(shí)間戳可對(duì)應(yīng)于例如生成或發(fā)送激活旁路消息的時(shí)刻。在 步驟303,由客戶端機(jī)器接收綁定服務(wù)消息,諸如以上參照?qǐng)D2C所述的綁定 服務(wù)消息250。以下參照?qǐng)D4討論涉及綁定服務(wù)消息創(chuàng)建的示例方法。在步驟305,在任何必要的消息認(rèn)證處理之后,從綁定服務(wù)消息提取計(jì)數(shù)(諸如計(jì)數(shù)252),并將其與關(guān)聯(lián)于客戶端的軟件應(yīng)用程序副本的預(yù)定計(jì)數(shù)進(jìn) 行比較。應(yīng)該意識(shí)到,預(yù)定計(jì)數(shù)可對(duì)應(yīng)于以上參照?qǐng)D2A所述的策略216。在 步驟307,對(duì)所收到的計(jì)數(shù)是否等于或大于預(yù)定計(jì)數(shù)作出判定。應(yīng)該意識(shí)到, 該策略可以指定需要匹配還是超過(guò)預(yù)定計(jì)數(shù)。如果所收到的計(jì)數(shù)并不適當(dāng)?shù)卮笥诨虻扔陬A(yù)定計(jì)數(shù),則在步驟309,方法 300結(jié)束。應(yīng)該意識(shí)到,沒(méi)有進(jìn)行客戶機(jī)軟件副本的激活旁路,因?yàn)榻壎ǚ?wù) 還未收到軟件策略所要求的最少數(shù)量的唯一機(jī)器標(biāo)識(shí)符。如果例如該軟件包括 允許在給定時(shí)段中使用該軟件而無(wú)需激活旁路的"試用期",則用戶仍然可以 使用該軟件。如果收到的計(jì)數(shù)大于或等于預(yù)定計(jì)數(shù),則在步驟311,軟件允許使用與綁 定機(jī)制協(xié)作的旁路標(biāo)記而進(jìn)行的激活旁路。該綁定機(jī)制確保激活旁路標(biāo)記無(wú)法 被簡(jiǎn)單地拷貝并在另一機(jī)器上使用。在一實(shí)施方式中,綁定機(jī)制專用于每個(gè)單 獨(dú)計(jì)算機(jī)。在一實(shí)施方式中, 一旦步驟311完成,則客戶機(jī)就無(wú)需再為認(rèn)證軟 件應(yīng)用程序的目的而聯(lián)系綁定服務(wù)機(jī)。在一替換實(shí)施方式中,方法300還能夠 以設(shè)定或可變的間隔重復(fù)。例如,如果包含在信任存儲(chǔ)隊(duì)列中的機(jī)器標(biāo)識(shí)符可 以具有指定的使用期限,在該期限之后就將機(jī)器標(biāo)識(shí)符從隊(duì)列中刪除。在這一 實(shí)施方式中,方法300可以以某一間隔重復(fù)以保持隊(duì)列(及其相應(yīng)計(jì)數(shù))是當(dāng) 前的。應(yīng)該意識(shí)到,當(dāng)?shù)谝淮伟惭b該軟件時(shí),在信任存儲(chǔ)的隊(duì)列中可能沒(méi)有所列 出機(jī)器。例如,當(dāng)?shù)谝豢蛻魴C(jī)嘗試執(zhí)行其軟件副本的激活旁路時(shí),綁定服務(wù)會(huì) 訪問(wèn)信任存儲(chǔ)以判定該客戶機(jī)是否被列在包含其中的隊(duì)列內(nèi)。因?yàn)橄惹皼](méi)有客 戶機(jī)嘗試對(duì)其軟件副本執(zhí)行激活旁路,所以在信任存儲(chǔ)中沒(méi)有列出客戶機(jī)直到 第一客戶機(jī)被添加。如果預(yù)定計(jì)數(shù)未達(dá)到,則客戶端機(jī)器可繼續(xù)在試用期中工 作。超過(guò)試用期,客戶端機(jī)器可在功能減少的模式下工作,或者終端用戶可以 向軟件廠商請(qǐng)求延長(zhǎng)。圖4是示出根據(jù)一實(shí)施方式的執(zhí)行軟件激活旁路的示例綁定服務(wù)方法400 的流程圖。在步驟401,接收激活旁路消息,諸如以上參照?qǐng)D2B所述的激活 旁路消息240。在任何適當(dāng)?shù)南⒄J(rèn)證處理完成之后,在步驟403,將包含在激活旁路消息內(nèi)的機(jī)器標(biāo)識(shí)符與包含在綁定服務(wù)機(jī)器的信任存儲(chǔ)的隊(duì)列內(nèi)的 任何機(jī)器標(biāo)識(shí)符進(jìn)行比較,以査看在該隊(duì)列中是否存在該機(jī)器標(biāo)識(shí)符。如果該 機(jī)器標(biāo)識(shí)符已經(jīng)存在,則方法400進(jìn)行到步驟407,隨后馬上描述?;蛘?,在使用時(shí)間戳的實(shí)施方式中,在進(jìn)行到步驟407之前,可用剛收到的機(jī)器標(biāo)識(shí)符 替換存儲(chǔ)在列表中的機(jī)器標(biāo)識(shí)符。以這種方式,列表將包含最近收到的機(jī)器標(biāo) 識(shí)符。如果機(jī)器標(biāo)識(shí)符并未存在,則在步驟405,將該機(jī)器標(biāo)識(shí)符添加到該隊(duì) 列。在某些實(shí)例中,可將附加信息連同機(jī)器標(biāo)識(shí)符一起存儲(chǔ)在隊(duì)列中。例如, 可以存儲(chǔ)時(shí)間戳以避免來(lái)自潛在軟件盜版者的重放攻擊。在步驟407,對(duì)隊(duì)列中的機(jī)器標(biāo)識(shí)符的數(shù)目進(jìn)行計(jì)數(shù)。應(yīng)該意識(shí)到,因?yàn)?方法400只在機(jī)器標(biāo)識(shí)符并未存在的情況下將該機(jī)器標(biāo)識(shí)符置于隊(duì)列中,所以 隊(duì)列持有唯一的機(jī)器標(biāo)識(shí)符(即每個(gè)機(jī)器標(biāo)識(shí)符被存儲(chǔ)一次,不管特定客戶機(jī) 已發(fā)送多少次激活旁路消息)。在步驟409,向發(fā)送在步驟401接收的激活旁 路消息的客戶機(jī)發(fā)送包含計(jì)數(shù)的消息。在一實(shí)施方式中,可在預(yù)定時(shí)間之后將 機(jī)器標(biāo)識(shí)符從隊(duì)列中刪除(未在圖4中示出)。例如,軟件應(yīng)用程序的策略可 以規(guī)定,與一次性啟用軟件激活旁路不同,該軟件應(yīng)該周期性地重復(fù)激活旁路 進(jìn)程以確保該用戶仍然是客戶網(wǎng)絡(luò)的一部分。因此,通過(guò)周期性地刪除機(jī)器標(biāo) 識(shí)符,計(jì)數(shù)值可能會(huì)落到策略所要求的機(jī)器標(biāo)識(shí)符數(shù)之下,除非網(wǎng)絡(luò)上仍然存 在足夠數(shù)量的客戶機(jī)(并發(fā)送激活旁路消息)。應(yīng)該意識(shí)到,在這一實(shí)施方式中,客戶端機(jī)器應(yīng)當(dāng)被配置成周期性地嘗試 重復(fù)激活旁路進(jìn)程以確保機(jī)器標(biāo)識(shí)符計(jì)數(shù)保持足夠高。此外,如果客戶機(jī)從不 嘗試重復(fù)激活旁路進(jìn)程,則即使機(jī)器標(biāo)識(shí)符計(jì)數(shù)落到閾值以下該軟件也可保持 激活。注意,以上示例僅為說(shuō)明目的而提供,完全不能被解讀為對(duì)本發(fā)明的限制。 同樣注意,存在根據(jù)本發(fā)明使應(yīng)用程序和服務(wù)能夠獲取許可信息的各種實(shí)現(xiàn)本 發(fā)明的方式,例如適當(dāng)?shù)腁PI、工具箱、驅(qū)動(dòng)代碼、動(dòng)態(tài)鏈接庫(kù)(DLL)、操 作系統(tǒng)、控件、獨(dú)立或可下載軟件對(duì)象等。本發(fā)明的各個(gè)實(shí)施方式從API (或 其它軟件對(duì)象)的角度、以及從結(jié)合本文所述的VLK許可技術(shù)進(jìn)行通信的軟 件或硬件對(duì)象的角度構(gòu)想本發(fā)明的使用。因此,本文所述的本發(fā)明的各種實(shí)現(xiàn) 可能具有完全硬件、部分硬件和部分軟件以及軟件的多個(gè)方面。如上所述,雖然結(jié)合各種計(jì)算設(shè)備和網(wǎng)絡(luò)架構(gòu)描述了示例實(shí)施方式,但是 根本概念可應(yīng)用于期望阻止盜版的任何計(jì)算設(shè)備或系統(tǒng)。因此,根據(jù)一實(shí)施方 式編碼/解碼數(shù)據(jù)的技術(shù)可用于各種應(yīng)用程序和設(shè)備。例如, 一實(shí)施方式的算法 和硬件實(shí)現(xiàn)可應(yīng)用于計(jì)算設(shè)備的操作系統(tǒng),作為該設(shè)備上的獨(dú)立對(duì)象、另一對(duì) 象的一部分、可重新使用的控件、可從服務(wù)器下載的對(duì)象、設(shè)備或?qū)ο笈c網(wǎng)絡(luò) 之間的"中間人"、分布式對(duì)象、硬件、在存儲(chǔ)器中、上述任一種的組合而提 供。雖然本文中選擇示例編程語(yǔ)言、名稱和示例作為各種選擇的代表,但是這 些語(yǔ)言、名稱和示例并不旨在作為限制。對(duì)于涉及使用控件實(shí)現(xiàn)本發(fā)明的實(shí)施 方式,本發(fā)明不限于提供.NET控件,相反,應(yīng)該在根據(jù)本發(fā)明實(shí)現(xiàn)盜版阻止 目的的任何一個(gè)軟件(和/或硬件)的更寬泛上下文中考慮。本領(lǐng)域技術(shù)人員應(yīng) 該意識(shí)到,存在提供實(shí)現(xiàn)由本發(fā)明的各個(gè)實(shí)施方式實(shí)現(xiàn)的相同、類似或等效功 能的對(duì)象代碼和命名的許多方法。實(shí)施方式可結(jié)合在線拍賣或投標(biāo)站點(diǎn)實(shí)現(xiàn)。如上所述,本文所述的各種技術(shù)可結(jié)合硬件或軟件或者在適當(dāng)時(shí)結(jié)合兩者 的組合來(lái)實(shí)現(xiàn)。因此,本發(fā)明的各個(gè)實(shí)施方式的方法和設(shè)備或其某些方面或部分可采用在諸如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)的有形介質(zhì)上具體化的程序代碼的形式,其中當(dāng)將程序代碼加載到諸如計(jì)算機(jī)的 機(jī)器中并由其執(zhí)行時(shí),該機(jī)器變成用于實(shí)施本發(fā)明的設(shè)備。在可編程計(jì)算機(jī)上 執(zhí)行程序代碼的情形中,計(jì)算設(shè)備通常包括處理器、處理器可讀的存儲(chǔ)介質(zhì)(包 括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備??衫缤ㄟ^(guò)使用數(shù)據(jù)處理API、可重用控件等使用本發(fā)明的盜版阻止 技術(shù)的一個(gè)或多個(gè)程序較佳地采用高級(jí)過(guò)程或面向?qū)ο缶幊陶Z(yǔ)言實(shí)現(xiàn),以與計(jì) 算機(jī)系統(tǒng)通信。然而,程序可以按需采用匯編或機(jī)器語(yǔ)言實(shí)現(xiàn)。在任一情形中, 語(yǔ)言可以是已編譯或已解釋語(yǔ)言,并與硬件實(shí)現(xiàn)相結(jié)合。本發(fā)明的各個(gè)實(shí)施方式的方法和設(shè)備還可經(jīng)由以通過(guò)某種傳輸介質(zhì)(諸如 通過(guò)電配線或敷設(shè)纜線、通過(guò)光纖、或經(jīng)由任何其它形式的傳輸)發(fā)送的程序 代碼形式具體化的通信來(lái)實(shí)施,其中當(dāng)該程序代碼被接收并加載到機(jī)器(諸如 EPROM、門陣列、可編程邏輯設(shè)備(PLD)、客戶端計(jì)算機(jī)、攝像機(jī)等)中 并由其執(zhí)行時(shí),具有如上在示例實(shí)施方式中描述的信號(hào)處理能力的接收機(jī)器變 成用于實(shí)現(xiàn)本發(fā)明的設(shè)備。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),該程序代碼與該處理器結(jié)合以提供用于調(diào)用本發(fā)明的功能的獨(dú)特設(shè)備。此外,結(jié)合本發(fā)明使用的任何 存儲(chǔ)技術(shù)可以始終是硬件和軟件的組合。雖然結(jié)合各個(gè)附圖的較佳實(shí)施方式對(duì)本發(fā)明進(jìn)行描述,但是應(yīng)該理解,可 使用其它類似的實(shí)施方式,或者可對(duì)所述實(shí)施方式進(jìn)行添加以執(zhí)行本發(fā)明的相 同功能而不與其相背離。例如,雖然在諸如對(duì)等網(wǎng)絡(luò)化環(huán)境的網(wǎng)絡(luò)化環(huán)境中對(duì) 本發(fā)明的示例網(wǎng)絡(luò)環(huán)境進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識(shí)到,本發(fā)明 并不限于此,并且在本發(fā)明中描述的方法可應(yīng)用于無(wú)線的或有線的任何計(jì)算設(shè) 備或環(huán)境,諸如游戲操縱臺(tái)、手持式計(jì)算機(jī)、便攜式計(jì)算機(jī)等,并且可用于經(jīng) 由通信網(wǎng)絡(luò)連接并在網(wǎng)絡(luò)上交互的任何數(shù)量的這種計(jì)算設(shè)備。此外,要強(qiáng)調(diào)的 是,包括手持式設(shè)備操作系統(tǒng)和其它應(yīng)用程序?qū)S貌僮飨到y(tǒng)的各種計(jì)算機(jī)平臺(tái) 都是可以預(yù)期的,尤其是隨著無(wú)線網(wǎng)絡(luò)化設(shè)備的數(shù)量不斷激增。此外,本發(fā)明 還可以跨多個(gè)處理芯片或設(shè)備或者在其中實(shí)現(xiàn),并且存儲(chǔ)可類似地跨多個(gè)設(shè)備 實(shí)施。因此,本發(fā)明不應(yīng)局限于任何單個(gè)實(shí)施方式,相反應(yīng)該以根據(jù)所附權(quán)利 要求書的寬度和范圍來(lái)解讀。
權(quán)利要求
1.一種具有用于執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述步驟包括生成激活旁路消息,其中所述激活旁路消息包括機(jī)器標(biāo)識(shí)符和與進(jìn)行激活旁路的軟件應(yīng)用程序相關(guān)聯(lián)的軟件標(biāo)識(shí)符;將所述激活旁路消息發(fā)送到綁定服務(wù)機(jī);從所述綁定服務(wù)機(jī)接收包括機(jī)器計(jì)數(shù)的綁定服務(wù)消息;將所述機(jī)器計(jì)數(shù)與預(yù)定計(jì)數(shù)進(jìn)行比較;以及如果所述機(jī)器計(jì)數(shù)大于或等于所述預(yù)定計(jì)數(shù),則允許所述軟件應(yīng)用程序的激活旁路。
2. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路消 息還包括表明生成所述激活旁路消息的時(shí)刻的時(shí)間戳。
3. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路消 息通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)發(fā)送,并且其中所述機(jī)器計(jì)數(shù)對(duì)應(yīng)于在所述網(wǎng)絡(luò)上存在的已 經(jīng)向所述綁定服務(wù)發(fā)送至少一個(gè)激活旁路消息的機(jī)器的數(shù)量。
4. 如權(quán)利要求3所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路消 息在要繞過(guò)所述軟件應(yīng)用程序的激活的機(jī)器登陸到所述計(jì)算機(jī)網(wǎng)絡(luò)時(shí)發(fā)送。
5. 如權(quán)利要求4所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述機(jī)器標(biāo)識(shí)符 是從要繞過(guò)所述軟件應(yīng)用程序的激活的機(jī)器的硬件屬性導(dǎo)出的。
6. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述預(yù)定計(jì)數(shù)由 與所述軟件應(yīng)用程序相關(guān)聯(lián)的策略來(lái)定義。
7. 如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路消 息還包括所述策略。
8. 如權(quán)利要求6所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述策略作為與 所述軟件應(yīng)用程序相關(guān)聯(lián)的已簽名可擴(kuò)展權(quán)限標(biāo)記語(yǔ)言文件的一部分被存儲(chǔ)。
9. 如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述生成和發(fā)送 步驟以預(yù)定間隔重復(fù)。
10. 如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路消息還包括第一消息認(rèn)證碼,并且所述綁定服務(wù)消息還包括第二消息認(rèn)證碼,所 述步驟還包括使用所述第二認(rèn)證碼認(rèn)證所述綁定服務(wù)消息。
11. 一種具有執(zhí)行以下步驟的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述步驟包括從客戶端機(jī)器接收激活旁路消息,其中所述激活旁路消息包括客戶端機(jī)器 標(biāo)識(shí)符和與具有要繞過(guò)的激活要求的軟件應(yīng)用程序相關(guān)聯(lián)的軟件標(biāo)識(shí)符;判定所接收到的客戶端機(jī)器標(biāo)識(shí)符是否在機(jī)器標(biāo)識(shí)符列表中;如果所接收到的客戶端機(jī)器標(biāo)識(shí)符不在所述機(jī)器標(biāo)識(shí)符列表中,則將所接 收到的機(jī)器標(biāo)識(shí)符添加到所述列表中;確定所述列表內(nèi)機(jī)器標(biāo)識(shí)符的數(shù)量;以及發(fā)送綁定服務(wù)消息,其中所述綁定服務(wù)消息包括唯一機(jī)器標(biāo)識(shí)符的數(shù)量。
12. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路 消息還包括第一消息認(rèn)證碼,且所述綁定服務(wù)消息還包括第二消息認(rèn)證碼,并 且所述步驟還包括使用所述第二認(rèn)證碼認(rèn)證所述激活旁路消息。
13. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括在預(yù)定 時(shí)間之后從所述列表刪除所接收到的客戶機(jī)標(biāo)識(shí)符。
14. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述客戶端機(jī) 器標(biāo)識(shí)符是從所述客戶端機(jī)器的硬件屬性導(dǎo)出的。
15. 如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述激活旁路 消息還包括表明由所述客戶端機(jī)器生成所述激活旁路消息的時(shí)刻的時(shí)間戳。
16. 如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述機(jī)器標(biāo)識(shí) 符列表中的每個(gè)機(jī)器標(biāo)識(shí)符被表示成包括所述機(jī)器標(biāo)識(shí)符和關(guān)聯(lián)時(shí)間戳的條 目。
17. 如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括,如果 所接收到的客戶端機(jī)器標(biāo)識(shí)符在所述機(jī)器標(biāo)識(shí)符條目列表中,則用對(duì)應(yīng)于與最 近時(shí)間戳相關(guān)聯(lián)的機(jī)器標(biāo)識(shí)符的條目代替所述條目。
18. —種阻止批量許可環(huán)境中的盜版的方法,包括 在客戶端機(jī)器處生成激活旁路消息,其中所述激活旁路消息包括機(jī)器標(biāo)識(shí)符和與要繞過(guò)其激活的軟件應(yīng)用程序相關(guān)聯(lián)的軟件標(biāo)識(shí)符;將所述激活旁路消息發(fā)送到綁定服務(wù)機(jī);在所述綁定服務(wù)機(jī)處,判定所收到的客戶端機(jī)器標(biāo)識(shí)符是否在機(jī)器標(biāo)識(shí)符 列表中;如果所收到的客戶機(jī)機(jī)器標(biāo)識(shí)符不在所述機(jī)器標(biāo)識(shí)符列表中,則在所述綁定服務(wù)機(jī)處將所收到的客戶機(jī)機(jī)器標(biāo)識(shí)符添加到所述列表;在所述綁定服務(wù)機(jī)處,確定所述列表內(nèi)機(jī)器標(biāo)識(shí)符的數(shù)量; 向所述客戶端機(jī)器發(fā)送綁定服務(wù)消息,其中所述綁定服務(wù)消息包括所述唯一機(jī)器標(biāo)識(shí)符的數(shù)量;在所述客戶端機(jī)器處,將所述機(jī)器計(jì)數(shù)與預(yù)定計(jì)數(shù)進(jìn)行比較;以及 如果所述機(jī)器計(jì)數(shù)大于或等于所述預(yù)定計(jì)數(shù),則允許所述軟件應(yīng)用程序的激活旁路。
19. 如權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),還包括在所述綁定服務(wù)機(jī)處, 在預(yù)定時(shí)間之后從所述列表刪除所收到的客戶機(jī)標(biāo)識(shí)符,并且在所述客戶端機(jī) 器處,以預(yù)定間隔重復(fù)所述生成和發(fā)送步驟。
20. 如權(quán)利要求18所述的方法,其特征在于,所述激活旁路消息還包括 第一消息認(rèn)證碼,且所述綁定服務(wù)消息還包括第二消息認(rèn)證碼,并且所述方法 還包括在所述綁定服務(wù)機(jī)處,使用所述第一認(rèn)證碼認(rèn)證所述激活旁路消息,并 且在所述客戶端機(jī)器處,使用所述第二認(rèn)證碼認(rèn)證所述綁定服務(wù)消息。
全文摘要
一種用于阻止批量許可環(huán)境中的軟件盜版的方法和計(jì)算機(jī)可讀介質(zhì)。生成并發(fā)送激活旁路消息。將包含在激活旁路消息中的信息與機(jī)器標(biāo)識(shí)符列表進(jìn)行比較。綁定服務(wù)信息包含該列表中的機(jī)器標(biāo)識(shí)符的計(jì)數(shù)。一旦該計(jì)數(shù)到達(dá)預(yù)定閾值,則可進(jìn)行軟件激活旁路。
文檔編號(hào)G06F17/00GK101263489SQ200680033764
公開日2008年9月10日 申請(qǐng)日期2006年9月6日 優(yōu)先權(quán)日2005年9月15日
發(fā)明者C·格恩亞克蒂, R·W·米勒, X·(M·)譚 申請(qǐng)人:微軟公司