亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

安全機器計數的制作方法

文檔序號:6568940閱讀:192來源:國知局
專利名稱:安全機器計數的制作方法
安全機器計數北旦 冃尿軟件盜版是使軟件廠商每年流失大量金錢的全球性問題。一種稱為臨時拷 貝的盜版形式是在多個計算機上共享和安裝軟件,這違反了終端用戶許可協 議。產品激活是減少這類盜版的一種方法。產品激活通常依賴于向軟件廠商提交安裝標識代碼和/或硬件標識符。作 為響應,軟件廠商返回激活確認代碼。在典型的零售應用程序的產品激活中, 為每個盒裝軟件封裝提供唯一產品密鑰。通常,在某一試用期(軟件安裝之后 在無需激活的情況下運行的時間段)之后或期間,顧客必須聯系軟件廠商以激 活他或她的軟件副本。未能激活的后果通常是軟件的停用或者軟件功能的降 級。通常,使用唯一產品密鑰來生成唯一產品標識代碼,該代碼可與散列的硬 件相關值組合以生成運行該軟件的機器專用的安裝標識代碼。通常將允許該軟 件運行的激活確認返回給客戶。在這方面,激活確認也可以是許可文件,或者 表示許可的二進制文件。在每次登陸時,獲許可軟件都進行校驗以查看它實際 上是運行在其被激活的同一硬件上。如果校驗失敗,則在軟件再次運行之前需 要再次激活。公司客戶一般購買批量許可,因為對于公司客戶一在其域中可能具有成百 或上千臺機器一而言對每個已安裝軟件副本聯系軟件廠商以獲得機器專用激 活代碼并不可行。因此通常,批量許可的持有者無需聯系軟件廠商來激活其軟 件,因為當檢測到批量許可密鑰時,軟件會繞過激活要求。這就是公知的"產 品激活旁路"。因此,同一批量許可密鑰能夠在許多不同計算機上使用,而無 需在試用期滿之前或之后進行激活以便運行該軟件。雖然該特征使批量許可密 鑰對公司客戶安裝軟件而言更加方便,但是它同樣是吸引力的盜版目標。例如, 盜版者獲得合法的批量許可介質并購買或盜取有效的批量許可產品密鑰??稍?稱為"商家對消費者"盜版通道的方案中將該介質和產品密鑰重新目的化并向 不知情客戶出售。因此,需要一種用于在網絡化計算環(huán)境中阻止盜版而不會使合法客戶過度 承擔繁瑣的反盜版要求的機制。本發(fā)明滿足這一需要。概述針對以上缺點和不足,一實施方式將一種軟件激活旁路機制納入到批量許 可環(huán)境中。根據這一實施方式,向軟件應用程序提供一種指定需要在客戶網絡 上出現以便進行軟件應用程序的正確激活旁路的最少機器數的策略。將網絡內 的一臺計算機指定為綁定服務機,而要安裝軟件應用程序的其它計算機作為客 戶機。在某一時刻,每一客戶機嘗試執(zhí)行該軟件的激活旁路。為此,該客戶機 生成含有機器標識符、時間戳以及與該軟件應用程序相關的信息的激活旁路消 息,并將該信息發(fā)送給綁定服務機。在收到激活旁路消息時,綁定服務機對照所有這些已收到的機器標識符的 列表檢驗該機器標識符。如果該機器標識符并未出現在信任存儲中,則對其進 行添加。綁定服務機對列表中的唯一機器標識符的數量進行計數,并將該計數 輸入到發(fā)送給客戶機的綁定服務消息中。在收到綁定服務消息時,客戶機判定 該計數是否滿足策略,如果是,則該機器能夠激活這一軟件。提供本概述是為了以簡化形式引入在以下詳細描述中將進一步描述的概 念精選。本概述不旨在標識要求保護主題的關鍵特征和本質特征,也不只在用 于幫助確定要求保護主題的范圍。附圖簡述結合附圖進行閱讀,能夠更好地理解以上概述以及以下對較佳實施方式的 詳細描述。出于對本發(fā)明進行說明的目的,附圖中示出本發(fā)明的示例結構;然 而,本發(fā)明并不限于附圖中所公開的具體方法和設備

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