專利名稱:使用機器屬性來制止企業(yè)環(huán)境中的軟件盜版的系統(tǒng)和方法
使用機器屬性來制止企業(yè)環(huán)境中的軟件盜版的系統(tǒng)和方法 相關(guān)申請的交叉引用本申請是于2003年1月31日提交的題為"Systems And Methods For Deterring Software Piracy in a Volume License Environment"美國專利申請第10/356,225號的部分延續(xù),該申請通過引用如在此處完全描述一般被包含于此。發(fā)明領(lǐng)域本發(fā)明涉及軟件盜版制止領(lǐng)域,尤其涉及使用批量許可證密鑰(VLK)的軟 件批量許可領(lǐng)域。發(fā)明背景軟件盜版是全球性的問題,它每年都花費軟件廠商大量金錢。被稱為隨意復 制的一種形式的盜版是在多臺計算機上共享并安裝軟件,這侵害了最終用戶許可證 協(xié)議。產(chǎn)品激活是減少這種類型的盜版的一種方式。產(chǎn)品激活一般依賴于向軟件廠商提交安裝標識碼和/或硬件標識符。軟件廠商 作為響應返回激活確認碼。在典型的產(chǎn)品激活零售應用中,每一經(jīng)封裝的軟件包配 備唯一的產(chǎn)品密鑰。 一般,在某一寬限期限(軟件安裝之后的一段時間,在此期間 軟件將在沒有被激活的情況下運行)之后,顧客必須聯(lián)系軟件廠商來激活其軟件副 本。不這樣做通常導致軟件的停用或軟件功能降級。 一般,使用該唯一產(chǎn)品密鑰來 生成唯一產(chǎn)品標識碼,它可與經(jīng)散列的硬件相關(guān)值組合來生成其上運行該軟件的機 器所專用的安裝標識碼。允許該軟件運行的激活確認一般被返回給顧客。就這點而 言,激活確認也可以是許可證文件、或表示許可證的二進制數(shù)。每次登錄時,經(jīng)許 可的軟件檢查它是否正運行在其上激活該軟件的基本上同一硬件上。如果檢査失 敗,則在軟件再次運行之前要求重新激活。公司顧客一般購買批量許可證,因為對在其域中具有數(shù)百或數(shù)千機器的公司 顧客而言,為所安裝的每一軟件副本來聯(lián)系軟件廠商以接收機器專用激活碼是不可 行的。從而, 一般批量許可證持有者不必聯(lián)系軟件廠商來激活其軟件,因為當檢測到批量許可證密鑰時,軟件將繞過激活需求。因此,在寬限期限期滿之前或之后可 在眾多不同的計算機上使用同一批量許可證密鑰,其中任何一臺都不需要激活來以 便于該軟件運行。盡管這一特征使得批量許可證密鑰更便于公司顧客安裝軟件,但 它也是盜版的攻擊目標。從而,需要用于使得更難以盜版批量許可證密鑰的機制。本發(fā)明滿足這一需求。發(fā)明概述考慮前述缺點和不足,此處提供一種用于在批量許可證環(huán)境中制止軟件盜版 的方法、系統(tǒng)和計算機可讀介質(zhì)。在該方法中,接收到嵌入在批量許可證文件內(nèi)的 批量許可證密鑰。批量許可證密鑰具有從該環(huán)境的至少一個機器屬性中導出的第一 數(shù)據(jù)。使用從該環(huán)境的至少一個機器屬性導出的第二數(shù)據(jù)來認證批量許可證文件。 然后在該環(huán)境中的至少一個計算設備上激活與該批量許可證密鑰相關(guān)聯(lián)的軟件包。在該系統(tǒng)中,提供了與嵌入在批量許可證文件內(nèi)的批量許可證密鑰相關(guān)聯(lián)的 軟件包。批量許可證文件具有從計算環(huán)境的機器屬性導出的第一數(shù)據(jù)。提供認證例 程用于從計算環(huán)境的機器屬性導出第二數(shù)據(jù),以及將第二數(shù)據(jù)與第一數(shù)據(jù)進行比 較。此外,還提供了用于根據(jù)批量許可證密鑰以及響應于認證批量許可證文件來激 活軟件包的激活例程。附圖簡述當結(jié)合附圖閱讀時,以上概述以及以下優(yōu)選實施例的詳細描述將被更好地理解。為說明本發(fā)明起見,在附圖中示出本發(fā)明的示例構(gòu)造,,然而,本發(fā)明不限于所公開的特定方法和手段。附圖中
圖1是可在其中實現(xiàn)本發(fā)明的各方面的示例計算環(huán)境;圖2A是根據(jù)本發(fā)明的一個實施例示出用于制止軟件盜版的示例強制硬件綁定系統(tǒng)的框圖;圖2B是可結(jié)合本發(fā)明的一個實施例使用的示例客戶機數(shù)據(jù)的框圖; 圖3是根據(jù)本發(fā)明的一個實施例示出用于制止軟件盜版的示例離線系統(tǒng)的框 圖;以及圖4是根據(jù)本發(fā)明的一個實施例用于在強制硬件綁定系統(tǒng)中制止軟件盜版的示例方法的流程圖。
說明性實施例的詳細描述詳細描述本發(fā)明的主題來滿足法定要求。然而,描述本身不旨在限制本專利 的范圍。相反,發(fā)明人構(gòu)想了所要求的主題可結(jié)合其它目前或?qū)淼募夹g(shù)按照其它 方式來具體化,以包括不同的步驟或類似于本文檔中所描述的步驟的步驟的組合。而且,盡管術(shù)語"步驟"可在此處用于指示所采用的方法的不同方面,但除非當明 確描述了各個步驟的順序時,否則該術(shù)語不應被解釋為暗示此處公開的各個步驟之 間的任何特定順序。示例計算環(huán)境圖1示出了可在其上實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的一個示例。計 算系統(tǒng)環(huán)境100只是合適的計算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能提出任何限制。也不應該把計算環(huán)境ioo解釋為對示例操作環(huán)境100中示出的任一組件或其組合有任何依賴性或要求。本發(fā)明可用眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適合在本發(fā)明 中使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計算機、 服務器計算機、手持或膝上型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電子產(chǎn)品、網(wǎng)絡PC、小型機、大型機、包含上述系統(tǒng)或設備中的任一個的分布式計算機環(huán)境等。本發(fā)明可在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的通用語境中 描述。 一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行 特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。 一般,在各個實施例中可按需組合或分布程序 模塊的功能。本發(fā)明也可以在分布式計算環(huán)境中實現(xiàn),其中任務由通過通信網(wǎng)絡鏈 接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲 設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。參考圖l,用于實現(xiàn)本發(fā)明的一個示例系統(tǒng)包括計算機iio形式的通用計算設 備。計算機110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和將 包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總 線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制器、 外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限制, 這樣的體系結(jié)構(gòu)包括工業(yè)標準體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總 線、擴展的ISA (EISA)總線、視頻電子技術(shù)標準協(xié)會(VESA)局部總線和外圍 部件互連(PCI)總線(也被稱為Mezzanine總線)。計算機110通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能夠被計 算機110訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動 介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。 計算機存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。 計算機存儲介質(zhì)包括,但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技 術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存 儲或其它磁性存儲設備、或能用于存儲所需信息且可以由計算機110訪問的任何其 它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計 算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語 "已調(diào)制數(shù)據(jù)信號"指的是這樣一種信號,其一個或多個特征以在信號中編碼信息 的方式被設定或更改。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡或直接線 連接的有線介質(zhì),以及諸如聲學、RF、紅外線和其它無線介質(zhì)的無線介質(zhì)。上述 中任一個的組合也應包括在計算機可讀介質(zhì)的范圍之內(nèi)。系統(tǒng)存儲器130包括易失性或非易失性存儲器形式的計算機存儲介質(zhì),諸如 只讀存儲器(ROM) 131和隨機存取存儲器(RAM) 132。基本輸入/輸出系統(tǒng)133(BIOS)包含有助于諸如啟動時在計算機110中元件之間傳遞信息的基本例程, 它通常被存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/ 或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系 統(tǒng)134、應用程序135、其它程序模塊136和程序數(shù)據(jù)137。計算機110也可以包括其它可移動/不可移動、易失性/非易失性計算機存儲介 質(zhì)。僅作為示例,圖1示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬 盤驅(qū)動器140,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151, 以及從諸如CD ROM或其它光學介質(zhì)等可移動、非易失性光盤156中讀取或向其 寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境下使用的其它可移動/不可移動、易 失性/非易失性計算機存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能 盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由諸如接口 140 等不可移動存儲器接口連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通 常由諸如接口 150等可移動存儲器接口連接至系統(tǒng)總線121。
以上描述和在圖1中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機 110提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應用程序145、其它程序模塊 146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應用程序135、其它程 序模塊136和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應用程序145、其它程序 模塊146和程序數(shù)據(jù)147在這里被標注了不同的標號是為了說明至少它們是不同的 副本。用戶可以通過輸入設備,諸如鍵盤162和定點設備161 (通常指鼠標、跟蹤 球或觸摸墊)向計算機20輸入命令和信息。其它輸入設備(未示出)可以包括麥 克風、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設備通常由 耦合至系統(tǒng)總線的用戶輸入接口 160連接至處理單元120,但也可以由其它接口或 總線結(jié)構(gòu),諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器191 或其它類型的顯示設備也經(jīng)由接口,諸如視頻接口 190連接至系統(tǒng)總線121。除監(jiān) 視器以外,計算機也可以包括其它外圍輸出設備,諸如揚聲器197和打印機196, 它們可以通過輸出外圍接口 l卯連接。計算機UO可使用至一個或多個遠程計算機,諸如遠程計算機180的邏輯連 接在網(wǎng)絡化環(huán)境下操作。遠程計算機180可以是個人計算機、服務器、路由器、網(wǎng) 絡PC、對等設備或其它常見網(wǎng)絡節(jié)點,且通常包括上文相對于計算機IIO描述的 許多或所有元件,盡管在圖1中只示出存儲器存儲設備181。圖1中所示邏輯連接 包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但也可以包括其它網(wǎng)絡。這樣的 聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當在LAN聯(lián)網(wǎng)環(huán)境中使用時,計算機110通過網(wǎng)絡接口或適配器170連接至 LAN 171。當在WAN聯(lián)網(wǎng)環(huán)境中使用時,計算機IIO通常包括調(diào)制解調(diào)器172或 用于在諸如因特網(wǎng)等WAN173上建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi) 置或外置的,它可以通過用戶輸入接口 160或其它合適的機制連接至系統(tǒng)總線121。 在網(wǎng)絡化環(huán)境中,相對于計算機110描述的程序模塊或其部分可以存儲在遠程存儲 器存儲設備中。作為示例,而非限制,圖1示出了遠程應用程序185駐留在存儲器 設備181上??梢岳斫猓镜木W(wǎng)絡連接是示例性的,且可以使用在計算機之間建 立通信鏈路的其它手段。示例分布式計算框架或體系結(jié)構(gòu)考慮到個人計算和因特網(wǎng)的交匯,已經(jīng)開發(fā)且正在開發(fā)各種分布式計算框架。
個人和企業(yè)用戶同等地擁有用于應用程序和計算設備的可無縫互操作且啟用web 的接口,使得計算活動變得日益面向web瀏覽器或網(wǎng)絡。例如,MICROSOFT⑧的.NET平臺包括服務器、諸如基于web的數(shù)據(jù)存儲等 構(gòu)件塊服務、以及可下載的設備軟件。 一般而言,.NET平臺提供(1)使整個范圍 的計算設備一起工作并在所有計算設備上自動更新和同步用戶信息的能力、(2) 通過允許對XML而非HTML的更大量使用而增加的web站點的交互能力、(3) 以自中央起始點至用戶的對產(chǎn)品和服務的自定義訪問和傳遞為特征的在線服務,它 用于管理諸如電子郵件等各種應用程序或諸如Office.Net等軟件、(4)集中數(shù)據(jù) 存儲,這將增加信息訪問以及用戶與設備之間信息同步的效率和簡易性、(5)集 成諸如電子郵件、傳真和電話等各種通信介質(zhì)的能力、(6)供開發(fā)員使用的創(chuàng)建 可重用模塊的能力,從而增加了生產(chǎn)力并減少了編程錯誤的數(shù)目、以及(7)以及 眾多其它跨平臺集成特征。盡管此處結(jié)合駐留在計算設備上的軟件描述了示例實施例,但本發(fā)明的一個 或多個部分也可經(jīng)由操作系統(tǒng)、API或協(xié)處理器與請求對象之間的中間軟件來實 現(xiàn),使得可經(jīng)由所有.NET語言和服務以及在其它分布式計算框架中來執(zhí)行、支持、 或訪問服務。示例實施例圖2A是根據(jù)本發(fā)明的一個實施例的用于制止軟件盜版的強制硬件綁定分發(fā) 系統(tǒng)的框圖。服務器204或廠商202可經(jīng)由諸如WAN、 LAN (有線或無線)、內(nèi) 聯(lián)網(wǎng)、因特網(wǎng)等網(wǎng)絡被連接至一個或多個客戶機206或208。在圖2A中,虛線示 出本發(fā)明的替換實現(xiàn),它示出服務器204因其作用是初始許可證文件發(fā)現(xiàn)而不是實 現(xiàn)本發(fā)明所必需的而是可任選的。軟件廠商可在諸如但不限于CD-ROM等某些介質(zhì)上或直接經(jīng)由諸如以上所述 的網(wǎng)絡向批量許可證持有者提供經(jīng)批量許可的軟件212的副本。軟件212可附帶企 業(yè)專用或批量許可證持有者專用VLK 222。在本發(fā)明的一個實施例中,VLK 222 可被嵌入在被稱為許可證文件224的相對較大的文件內(nèi)。許可證文件224可基于例 如批量許可證持有者以及向該持有者許可的產(chǎn)品的標識來構(gòu)造,且可包括諸如經(jīng)散 列的域控制器(DC)名、現(xiàn)用目錄(AD)等環(huán)境綁定信息。此外,在一個實施例中,許可證文件224可包括基于例如一個或多個機器屬 性260和/或270的硬件綁定信息。例如,許可證文件224可包含分別來自一臺或
多臺客戶機206或208的機器屬性260或270。機器屬性可以是標識與客戶機206 或208相關(guān)聯(lián)的硬件設備的任何類型的數(shù)據(jù)。例如,機器屬性可以是處理器ID等。 在許可證文件224中使用的機器屬性260或270可被散列或以其它方式處理成許可 證文件224。因此,許可證文件224實際上可包含根據(jù)顧客的客戶機206和/或208 網(wǎng)絡內(nèi)所包含的硬件的顧客的計算環(huán)境的映像??梢岳斫?,在許可證文件224中包括無論作為散列值還是其它的機器屬性260 或270阻止?jié)撛谲浖I版者復制軟件212的合法副本的顧客環(huán)境。例如,如果顧客 擁有名為"客戶機1"、"客戶機2"和"客戶機3"的三臺客戶計算機,則軟件盜版者可試圖將該軟件復制到具有例如相同的客戶機名的第二網(wǎng)絡內(nèi)。通過結(jié)合來 自客戶計算機中的一臺或多臺的機器屬性來將硬件綁定信息結(jié)合在許可證文件224內(nèi),創(chuàng)建了可用作一種類型的密鑰的計算環(huán)境映像。如將在以下描述的,當客 戶機206或208試圖認證軟件212時,使用該計算環(huán)境內(nèi)的客戶機的機器屬性來創(chuàng) 建計算環(huán)境的第二映像。然后可將該映像與初始映像進行比較來確定軟件212是否 被安裝在正確的計算環(huán)境中。因此, 一實施例提供了一種用于驗證軟件212可在其 中操作的計算機環(huán)境是否是對其授權(quán)了軟件212的實際環(huán)境的機制。結(jié)果,可以理 解,因為一實施例使用了硬件專用數(shù)據(jù)來對軟件212授權(quán),所以試圖重新創(chuàng)建經(jīng)授 權(quán)的環(huán)境的盜版努力可能會失敗。除包括機器屬性260和/或270以外,根據(jù)一實施例,許可證文件224可包含 當收集機器屬性260或270時創(chuàng)建的時戳。許可證文件224也可包括簽名或其它這 樣的認證機制。可以理解,包括與機器屬性260和/或270相關(guān)聯(lián)的時戳有助于保 護軟件免受"重放"攻擊等,因為機器屬性260和/或270所促成的硬件綁定被認 為是最新的。結(jié)合圖2B示出了根據(jù)一實施例可從客戶機206收集的示例客戶機數(shù) 據(jù)的圖形表示?,F(xiàn)在參考圖2B,示出了可從例如客戶機206發(fā)出以便被結(jié)合到許 可證文件224內(nèi)的數(shù)據(jù)266的示例。在一個實施例中,數(shù)據(jù)266包括一個或多個機 器屬性260、時戳262和簽名264??墒褂煤灻麃眚炞C許可證文件224的完整性等?,F(xiàn)在回到圖2A,注意到在一個實施例中,許可證文件224可以是相對較大的 系統(tǒng)文件。所選的特定文件類型可以是任何一類文件類型,包括但不限于,映像或 音頻文件格式。VLK 222可被嵌入到數(shù)據(jù)中的任何地方,在一個實施例中然后可 使用私鑰來簽署該數(shù)據(jù)以生成許可證文件224。在本發(fā)明的一個實施例中,許可證 文件224的大小大于1.44兆字節(jié)(MB),諸如例如2MB以防止將許可證文件224 復制到軟盤等上。在本發(fā)明的一個實施例中,可在僅包含許可證文件224且其巻標
不同于包含相關(guān)聯(lián)軟件212的CD-ROM的巻標的CD-ROM上提供許可證文件224。 現(xiàn)在參考上述環(huán)境,其中許可證持有者的軟件212在客戶機206、 208等之間 分發(fā),在登錄時,駐留在客戶機206、 208等上的激活碼讀取許可證文件224的內(nèi) 容以驗證該許可證文件224未被篡改。如此處所利用的,激活指的是用于確認軟件 許可證數(shù)據(jù)、網(wǎng)絡環(huán)境綁定、硬件綁定以及允許軟件在一段時間內(nèi)起效而不需進一 步綁定確認的過程。就這點而言,在軟件安裝過程期間,VLK 222和/或許可證文 件224可例如經(jīng)由服務器204發(fā)送給客戶機208或客戶機206。從服務器位置接收 許可證文件是可任選的。驗證過程可包括針對許可證中所定義的綁定或策略來檢查本地機器上的許可 證。例如,在由以上結(jié)合硬件綁定描述的顧客的計算環(huán)境制成的映像的上下文中, 試圖驗證軟件212的客戶機206或208可再次使用如上所述的機器屬性260或270, 并且可對這些屬性與許可證文件224中所包含的屬性是否匹配作出判斷。如果否, 則失配可指示正試圖將軟件212安裝到未經(jīng)授權(quán)的計算機和/或環(huán)境上??梢岳斫?, 顧客可將客戶機206或208替換或添加至己經(jīng)存在的計算環(huán)境。如果許可證文件 224不允許映像文件224中所包含的環(huán)境映像與當認證軟件212時創(chuàng)建的環(huán)境映像 之間存在變化,則顧客不能在沒有從廠商202獲得新許可證文件224和/或重新創(chuàng) 建許可證文件并在計算環(huán)境中的所有客戶機206和208上對軟件212重新認證的情 況下將軟件212添加到新添加的客戶機206、 208。因此, 一實施例提供可允許在當為環(huán)境創(chuàng)建許可證文件224時創(chuàng)建的映像與 在要在特定客戶計算機上認證軟件212時創(chuàng)建的映像之間存在某些差異的硬件綁 定容許度。該容許度例如可由廠商202等設定,且可被選來影響任何安全性級別。 可以理解, 一般而言,所選的容許度越大,提供的安全性越小,因為允許計算環(huán)境 中更大的改變。然而,較大的容許度也允許按照顧客在不重新申請新許可證文件 224的情況下可對計算環(huán)境作出的硬件改變方面的更大的顧客靈活性。因此,可以 理解,這樣的容許度的水平可能需要基于諸如例如盜版可能性、顧客需求等因素來 決定??赏ㄟ^檢查許可證文件224的簽名來驗證該文件的完整性。如果許可證文件 224未被篡改,即驗證了完整性,則該軟件被允許運行。如果許可證文件224被篡 改,則軟件可在減少功能模式中運行。軟件的大范圍部署一般花費太過高昂且消耗太多時間,以至于管理員不能親 自設置大量機器。此外,管理員一般不想要最終用戶親自激活其機器。因此,這樣
的安裝從而一般是自動化的,使用無人操作或遠程進程。對經(jīng)批量許可的軟件的激活可在設置期間執(zhí)行,或可在稍后執(zhí)行。無人操作的應答文件(answer file)是結(jié)合軟件設置例程來使用以繞過正常設置提示的文本 文件。無人操作文件例如可以通過目標機器的局域網(wǎng)(LAN)或經(jīng)由因特網(wǎng)來自 動輸入VLK、代表最終用戶配置代理設置并自動激活系統(tǒng)。也可在設置之后使用 命令行腳本來執(zhí)行激活。當在客戶機206、 208等上安裝經(jīng)批量許可的軟件時,可借助于無人操作文件 來準備安裝映像。無人操作文件是執(zhí)行無人操作安裝的專門腳本??赏ㄟ^執(zhí)行腳本 將軟件212安裝在客戶機206、 208等上。腳本將許可證文件224的位置設為已知 的位置列表,包括服務器204。或者,如果許可證文件224是安裝映像的一部分, 則該文件可被復制到客戶機上。在登錄時,讀取許可證文件224,認證數(shù)據(jù)且激活 客戶機206、 208等。如果當系統(tǒng)連接時不能驗證許可證文件224中指定的環(huán)境特 征,則該系統(tǒng)可繼續(xù)在寬限期中工作。超過寬限期,則系統(tǒng)可在減少功能模式中工 作,或者最終用戶可向軟件廠商202請求延期。如果當系統(tǒng)斷開時不能驗證許可證 數(shù)據(jù),則軟件可繼續(xù)僅使用斷開特征來工作,直到系統(tǒng)再次接入網(wǎng)絡。圖3是根據(jù)本發(fā)明的一個實施例用于制止軟件盜版的強制硬件綁定離線系統(tǒng) 250的框圖。在該離線系統(tǒng)中,企業(yè)接收VLK 222以及軟件廠商202供應的安全 硬件設備252。硬件設備252能夠執(zhí)行簽署操作以生成格式上與許可證文件224完 全相同的許可證文件225??蛻魴C206和208上經(jīng)批量許可的軟件的安裝、激活過 程、以及許可證確認過程與圖2中所述的相同,圖2中VLK許可證文件也被簽署 并來自軟件廠商。與圖2A—樣,在圖3中,虛線示出本發(fā)明的替換實現(xiàn)。圖4是使得更難以在強制硬件綁定系統(tǒng)中進行軟件盜版的方法的流程圖。在 步驟402處,接收企業(yè)專用VLK及其相關(guān)聯(lián)的許可證文件。在步驟403處,可準 備相關(guān)聯(lián)的經(jīng)批量許可的軟件的安裝映像,以便安裝在一臺或多臺客戶機上??梢?理解,這樣的映像準備可涉及收集如上結(jié)合圖2A-B所述的機器屬性和其它數(shù)據(jù)。 在步驟404處,可將硬件專用或批量許可證持有者專用許可證文件存儲在中央服務 器上或部署到客戶機D硬件專用或批量許可證持有者專用許可證文件可能不能由與 服務器相關(guān)聯(lián)的客戶機自由訪問。可準備執(zhí)行無人操作安裝的專門腳本。在步驟406處,將該軟件安裝在一臺或多臺客戶機上。在步驟408處,腳本 將許可證文件位置設置在系統(tǒng)的己知位置列表中,這或者如被部署在客戶機上或者 例如經(jīng)由windows管理接口 (WMI)或經(jīng)由硬編碼注冊表項將許可證文件的位置 發(fā)布給客戶機。在步驟410處,在登錄時,激活例程檢索許可證文件的位置。在許 可證文件位于遠程服務器上的情況中,腳本可任選地例如通過比較互聯(lián)網(wǎng)協(xié)議(IP)地址來驗證許可證文件的位置。在步驟412處,激活例程從許可證文件讀取數(shù)據(jù)、驗證該數(shù)據(jù)是真實的、驗證許可證文件中所指定的機器屬性特征、并激活該軟件。 如果在系統(tǒng)連接時許可證文件中所指定的機器屬性特征不能被驗證,則系統(tǒng)可繼續(xù)在寬限期中工作。在一實施例中,也可在步驟412處作出關(guān)于許可證文件是否處于 如以上結(jié)合圖2A描述的許可證文件中所指定的機器屬性特征的預定容許度之內(nèi)的 判斷。如果是,則該軟件可被激活。超過寬限期,則系統(tǒng)可在減少功能模式中工作, 或最終用戶可向軟件廠商請求延期。如果在系統(tǒng)斷開時許可證數(shù)據(jù)不能被驗證,則 軟件可繼續(xù)僅使用斷開的特征來工作,直到系統(tǒng)被再次接入網(wǎng)絡。注意到,僅出于解釋的目的提供了前述示例,它們決不應該被解釋為對本發(fā) 明的限定。也注意到,存在實現(xiàn)本發(fā)明的各種方式,例如適當?shù)腁PI、工具箱、驅(qū) 動程序代碼、動態(tài)鏈接庫(DLL)、操作系統(tǒng)、控件、單機或可下載軟件對象等, 它們允許應用程序和服務獲得根據(jù)本發(fā)明的許可信息。本發(fā)明構(gòu)想了從API (或其 它軟件對象)的立場、以及從與此處所述的VLK許可技術(shù)連接通信的軟件或硬件 對象來使用本發(fā)明。因此,此處所述的本發(fā)明的各種實現(xiàn)可具有完全使用硬件、部 分使用硬件部分使用軟件、以及使用軟件的各方面。如上所述,結(jié)合各種計算設備和網(wǎng)絡體系結(jié)構(gòu)描述了本發(fā)明的的示例實施例, 其底層概念可被應用于期望在其中制止盜版的任何計算設備或系統(tǒng)。因此,根據(jù)本 發(fā)明的用于編碼/解碼數(shù)據(jù)的技術(shù)可被應用于各種應用程序和設備。例如,本發(fā)明 的算法和硬件實現(xiàn)可被應用于計算設備的操作系統(tǒng),作為設備上的單獨對象、另一對象的一部分、可重用控件、可從服務器下載的對象、設備或?qū)ο笈c網(wǎng)絡之間的"中 間人"、分布式對象、硬件來提供、位于存儲器中、或任何前述的組合。盡管此處 選擇了示例程序設計語言、名稱和示例作為各種選擇的代表,但這些語言、名稱和 示例不旨在為限定性的。對于涉及使用控件來實現(xiàn)本發(fā)明的實施例,本發(fā)明不限于 提供.NET控件,而應在根據(jù)本發(fā)明實現(xiàn)盜版制止目的的任何軟件(和/或硬件)的 寬泛上下文中考慮。本領(lǐng)域的普通技術(shù)人員可以理解,存在提供實現(xiàn)本發(fā)明的各個 實施例所實現(xiàn)的相同、類似或等效功能的目標代碼和術(shù)語的眾多方式。本發(fā)明也可 結(jié)合在線拍賣或競價來實現(xiàn)。如上所述,可結(jié)合硬件或軟件或其適當?shù)慕M合來實現(xiàn)此處所述的各種技術(shù)。 因此,本發(fā)明的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、 硬盤驅(qū)動器、或任何其它機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令) 的形式,其中當將程序代碼加載到諸如計算機等機器中并由其執(zhí)行時,該機器成為 實現(xiàn)本發(fā)明的裝置。在程序代碼在可編程計算機上執(zhí)行的情況中,計算設備一般包 括處理器、該處理器可讀的存儲介質(zhì)(包括易失性和非易失性的存儲器和/或存儲 元件)、至少一個輸入設備以及至少一個輸出設備??衫缤ㄟ^使用數(shù)據(jù)處理API、 可重用控件等來利用本發(fā)明的盜版制止技術(shù)的一個或多個程序優(yōu)選地以高級過程 或面向?qū)ο缶幊陶Z言實現(xiàn)來與計算機系統(tǒng)通信。然而,如果需要,可以使用匯編或 機器語言來實現(xiàn)該程序。在任何情況中,該語言可以是編譯或解釋語言,且與硬件 實現(xiàn)相結(jié)合。本發(fā)明的方法和裝置也可以經(jīng)由通過諸如電線或電纜、光纖或任何其它形式 的傳輸?shù)饶承﹤鬏斀橘|(zhì)傳輸?shù)某绦虼a的形式具體化的通信來實現(xiàn),其中,當程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶計算機、錄影機等、 或具有如在以上示例實施例中描述的信號處理能力的接收機器等機器接收、加載并 執(zhí)行時,該機器成為用于實現(xiàn)本發(fā)明的裝置。當在通用處理器上實現(xiàn)時,程序模塊 結(jié)合處理器來提供操作來調(diào)用本發(fā)明的功能的獨特裝置。此外,結(jié)合本發(fā)明使用的 任何存儲技術(shù)可總是硬件和軟件的組合。盡管結(jié)合各個附圖的優(yōu)選實施例描述了本發(fā)明,但是可以理解,可以使用其 它類似的實施例,或可以對所述實施例進行修改或添加,來用于實現(xiàn)本發(fā)明的相同 的功能而不與之背離。例如,盡管在諸如對等聯(lián)網(wǎng)環(huán)境等聯(lián)網(wǎng)環(huán)境的上下文中描述 了本發(fā)明的示例網(wǎng)絡實施例,但是本領(lǐng)域的技術(shù)人員可以認識到,本發(fā)明不限于此, 且如在本申請中所述的方法可應用于無論是有線還是無線的任何計算設備或環(huán)境, 諸如游戲控制臺、手持式計算機、便攜式計算機等,且可應用于經(jīng)由通信網(wǎng)絡連接 并跨該網(wǎng)絡交互的任何數(shù)目的這樣的計算設備。而且,應該強調(diào),尤其隨著無線聯(lián) 網(wǎng)設備的數(shù)目持續(xù)增長,此處構(gòu)想了各種計算機平臺,包括手持式設備操作系統(tǒng)和 其它應用程序?qū)S貌僮飨到y(tǒng)。此外,本發(fā)明可在多個處理芯片或設備中或跨這些芯 片或設備來實現(xiàn),并且存儲可類似地跨多個設備實現(xiàn)。從而,本發(fā)明不應該限于任 何單個實施例,而應根據(jù)所附權(quán)利要求書的寬度和范圍來解釋。
權(quán)利要求
1.一種用于在批量許可證環(huán)境中制止軟件盜版的計算機實現(xiàn)的方法,包括接收嵌入在批量許可證文件內(nèi)的批量許可證密鑰,其中所述批量許可證密鑰具有從所述環(huán)境的至少一個機器屬性中導出的第一數(shù)據(jù);使用從所述環(huán)境的至少一個機器屬性中導出的第二數(shù)據(jù)來認證所述批量許可證文件;以及在所述環(huán)境中的至少一個計算設備上激活與所述批量許可證密鑰相關(guān)聯(lián)的軟件包。
2. 如權(quán)利要求l所述的方法,其特征在于,所述機器屬性是硬件標識符。
3. 如權(quán)利要求1所述的方法,其特征在于,所述認證步驟還包括確定所述第 二數(shù)據(jù)在預定容許度內(nèi)與所述第一數(shù)據(jù)匹配。
4. 如權(quán)利要求1所述的方法,其特征在于,還包括收集所述環(huán)境的至少一個 機器屬性,并對所述機器屬性進行散列以形成所述第一數(shù)據(jù)。
5. 如權(quán)利要求4所述的方法,其特征在于,還包括收集指示收集所述機器屬 性的時間的時戳。
6. 如權(quán)利要求l所述的方法,其特征在于,所述第一數(shù)據(jù)還從所述計算環(huán)境 的多個機器屬性中導出。
7. 如權(quán)利要求l所述的方法,其特征在于,所述批量許可證密鑰和批量許可 證文件與所述軟件包相關(guān)聯(lián)以便在包括所述至少一個計算設備的多個計算設備上 安裝。
8. —種包括用于實現(xiàn)如權(quán)利要求1所述的方法的計算機可執(zhí)行指令的計算機 可讀介質(zhì)。
9. 一種用于在計算環(huán)境中制止軟件盜版的系統(tǒng),包括與嵌入在批量許可證文件內(nèi)的批量許可證密鑰相關(guān)聯(lián)的軟件包,其中所述批量許可證文件具有從所述計算環(huán)境的機器屬性中導出的第一數(shù)據(jù);用于從所述計算環(huán)境的機器屬性中導出第二數(shù)據(jù),并將所述第二數(shù)據(jù)與所述第一數(shù)據(jù)進行比較的認證例程;以及用于根據(jù)所述批量許可證密鑰以及響應于認證所述批量許可證文件來激活所 述軟件包的激活例程。
10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述認證例程還確定所述第二 數(shù)據(jù)在預定容許度內(nèi)與所述第一數(shù)據(jù)匹配。
11. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)具有從所述機器屬性中導出的散列值。
12. 如權(quán)利要求11所述的系統(tǒng),其特征在于,所述第一數(shù)據(jù)還具有對應于何 時導出所述第一數(shù)據(jù)的時戳。
13. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述第一和第二數(shù)據(jù)是從多個 機器屬性中導出的。
14. 一種含有用于執(zhí)行在批量許可證環(huán)境中制止軟件盜版的方法的計算機可 執(zhí)行指令的計算機可讀介質(zhì),所述方法包括接收嵌入在批量許可證文件內(nèi)的批量許可證密鑰,其中所述批量許可證密鑰 具有從所述環(huán)境的至少一個機器屬性中導出的第一數(shù)據(jù);使用從所述環(huán)境的至少一個機器屬性中導出的第二數(shù)據(jù)來認證所述批量許可 證文件;以及在所述環(huán)境中的至少一個計算設備上激活與所述批量許可證密鑰相關(guān)聯(lián)的軟 件包。
15. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述機器屬性是硬 件標識符。
16. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述認證步驟還包 括確定所述第二數(shù)據(jù)在預定容許度內(nèi)與所述第一數(shù)據(jù)匹配。
17. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述方法還包括收 集所述環(huán)境的至少一個機器屬性,并對所述機器屬性進行散列以形成所述第一數(shù) 據(jù)。
18. 如權(quán)利要求17所述的計算機可讀介質(zhì),其特征在于,所述方法還包括收 集指示收集所述機器屬性的時間的時戳。
19. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述第一數(shù)據(jù)還從 所述計算環(huán)境的多個機器屬性中導出。
20. 如權(quán)利要求14所述的計算機可讀介質(zhì),其特征在于,所述批量許可證密 鑰和批量許可證文件與所述軟件包相關(guān)聯(lián),以便在包括所述至少一個計算設備的多 個計算設備上安裝。全文摘要
一種用于在批量許可證環(huán)境中制止軟件盜版的方法、系統(tǒng)和計算機可讀介質(zhì)。接收嵌入在批量許可證文件內(nèi)的批量許可證密鑰。該批量許可證密鑰具有從環(huán)境的至少一個機器屬性中導出的第一數(shù)據(jù)。使用從環(huán)境的至少一個機器屬性中導出的第二數(shù)據(jù)來認證該批量許可證文件。然后在環(huán)境中的至少一個計算設備上激活與該批量許可證密鑰相關(guān)聯(lián)的軟件包。
文檔編號H04L9/00GK101156166SQ200580048741
公開日2008年4月2日 申請日期2005年8月1日 優(yōu)先權(quán)日2005年3月24日
發(fā)明者R·W·米勒, X·譚 申請人:微軟公司