專利名稱:許可特定cpu上軟件的使用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明針對控制軟件的分發(fā),尤其針對許可軟件的使用。
背景技術(shù):
保護(hù)諸如軟件等數(shù)字內(nèi)容的權(quán)限在這一數(shù)字時代已變得日益困難。軟件的未授權(quán)復(fù)制和共享是猖獗的。
保護(hù)數(shù)字內(nèi)容的一種常見方法是使用數(shù)字權(quán)限管理(DRM)系統(tǒng)。常規(guī)的DRM系統(tǒng)通常包括至少兩方內(nèi)容提供者和權(quán)限實體。在操作中,用戶向權(quán)限實體注冊,并獲得一解密手段。當(dāng)用戶向內(nèi)容提供者請求數(shù)字內(nèi)容時,該數(shù)字內(nèi)容作為加密的文件被發(fā)送給用戶。文件中的數(shù)字內(nèi)容可以在文件使用該解密手段解密之后被訪問。
常規(guī)的DRM系統(tǒng)對于本質(zhì)上嚴(yán)格地為數(shù)據(jù)的數(shù)字內(nèi)容能起到很好的保護(hù)。諸如音樂文件和視頻文件等數(shù)字?jǐn)?shù)據(jù)可以使用各種加密方案來保護(hù)。然而,加密對于保護(hù)計算機軟件并不能起很好的作用。與數(shù)據(jù)不同,計算機程序被設(shè)計成執(zhí)行各操作,并通常需要安裝。使用加密來保護(hù)計算機程序是不經(jīng)濟的,這是由于與所需的解密機制相關(guān)聯(lián)的體系結(jié)構(gòu)的復(fù)雜性和外來操作的開銷。
當(dāng)前,對于儲存在諸如盤等物理介質(zhì)上的軟件,隱含了使用軟件的許可證以與介質(zhì)本身一起傳播。為此,未被正當(dāng)?shù)卦S可來使用軟件的用戶在不知道需要許可證或故意忽略對許可證的需求的情況下可使用該軟件。例如,在某些盜版嚴(yán)重的地區(qū),用戶能夠購買包含計算機軟件的副本的未授權(quán)盤。由于用戶購買了包含軟件的盤,對用戶至少暗示了該軟件是被正確許可的,而無論實際上是否獲得了正確的許可證。該盜版的軟件可運行在任何適當(dāng)?shù)挠嬎銠C上,而用戶無需獲得使用該軟件的許可證。需要防止在沒有正確許可證的情況下使用軟件,或?qū)⑹褂密浖脑S可證從包含該軟件的介質(zhì)的傳送中分離開來。
某些常規(guī)的方法通過加密包含程序的整個文件來防止計算機可執(zhí)行程序的未授權(quán)分發(fā)。所加密的文件然后被發(fā)送到已獲得了正確的解密手段的預(yù)期用戶。在發(fā)送了文件之后,用戶必須在安裝和使用該程序之前解密該文件。然而,一旦程序被解密,該程序不再受保護(hù)以免遭未授權(quán)使用。
用于控制計算機軟件的非法分發(fā)和許可的有效且高效的系統(tǒng)和方法一直困擾著本領(lǐng)域的技術(shù)人員。
發(fā)明內(nèi)容
本發(fā)明針對許可駐留在計算設(shè)備上特定中央處理單元(CPU)上的軟件的使用。向計算設(shè)備(直接或通過用戶)提供代碼,該代碼進(jìn)而解鎖駐留在計算設(shè)備上或與其結(jié)合使用的適當(dāng)軟件(或軟件的特征)。例如,軟件可駐留在諸如盤等提供給計算設(shè)備的計算機可讀介質(zhì)上。
解鎖代碼可通過例如網(wǎng)站、公用電話亭、售貨機、電話或任何其它發(fā)行方法或手段來提供。解鎖代碼可以直接提供給運行該軟件的計算設(shè)備,或可由用戶手動輸入,或可通過諸如插入到或附加到計算設(shè)備的存儲器單元等存儲設(shè)備來提供。解鎖代碼可解鎖整個軟件應(yīng)用程序或僅解鎖該軟件的特定特征,諸如游戲的更高等級或作為演示版提供的應(yīng)用程序的運行版本。
該代碼理想地基于計算設(shè)備的唯一標(biāo)識符以及與試圖被訪問的軟件相關(guān)聯(lián)的標(biāo)識符。該代碼可以在付費或者滿足了另一條件之后提供。該代碼僅可用于特定的計算設(shè)備。因此,被解鎖的軟件不能在另一計算設(shè)備上使用。理想地應(yīng)當(dāng)很難改變這一計算設(shè)備的標(biāo)識符。
當(dāng)參考附圖閱讀以下說明性實施例的詳細(xì)描述時,可以清楚本發(fā)明的其它特征和優(yōu)點。
以上概述以及以下較佳實施例的詳細(xì)描述在結(jié)合附圖閱讀時可以得到更好的理解。為說明本發(fā)明,附圖中示出了本發(fā)明的示例性構(gòu)造;然而,本發(fā)明不限于所揭示的具體方法和手段。附圖中圖1是示出其中可實現(xiàn)本發(fā)明的各方面的多媒體控制臺的框圖;圖2是依照本發(fā)明的示例性軟件激活控制系統(tǒng)的示意圖;圖3是依照本發(fā)明提供軟件許可證的示例性方法的流程圖;圖4是依照本發(fā)明提供軟件許可證的另一示例性方法的流程圖;圖5是依照本發(fā)明的示例性軟件升級控制系統(tǒng)的示意圖;
圖6是依照本發(fā)明升級計算機程序的示例性方法的流程圖。
具體實施例方式
綜述軟件可以被許可以在諸如游戲控制臺或多媒體控制臺等特定的計算設(shè)備,或更具體地,計算設(shè)備上的CPU上使用。從分發(fā)服務(wù)向計算設(shè)備(直接或通過用戶)提供代碼,該代碼解鎖用于相關(guān)聯(lián)的計算設(shè)備的適當(dāng)軟件或軟件部分。軟件可駐留在諸如CD-ROM或DVD等與計算設(shè)備結(jié)合使用的計算機可讀介質(zhì)上。
解鎖代碼可以私密地(例如,通過電子郵件或移動電話)或公開地(例如,在網(wǎng)站上發(fā)行)提供給用戶。軟件中可解鎖的部分包括游戲的特定等級或其它特征(諸如附加人物或武器),或作為演示版或較舊的版本提供的應(yīng)用程序的運行或更高級的版本。
解鎖代碼理想地基于計算設(shè)備的唯一標(biāo)識符以及與試圖被訪問的軟件相關(guān)聯(lián)的標(biāo)識符。因此,該代碼僅可由該計算設(shè)備使用。這防止未授權(quán)或未許可的計算設(shè)備使用該軟件。因此,軟件比特的傳送與運行該軟件比特的許可相分離。運行特定軟件應(yīng)用程序的許可不需要與實際地?fù)碛邪撥浖谋P相聯(lián)系。
示例性計算環(huán)境圖1示出了其中可實現(xiàn)本發(fā)明的某些方面的多媒體控制臺100的功能組件。多媒體控制臺100具有帶有一級高速緩存102和二級高速緩存104的中央處理單元(CPU)101以及閃速ROM(只讀存儲器)106。一級高速緩存102和二級高速緩存104臨時地儲存數(shù)據(jù),并因此減少了存儲器訪問周期數(shù),由此提高了處理速度和吞吐量。CPU 101可以具有一個以上核心,因此可具有附加的一級和二級高速緩存102和104。閃速ROM 106可儲存可執(zhí)行代碼,該代碼在當(dāng)多媒體控制臺100被通電時的引導(dǎo)過程的初始階段加載。
圖形處理單元(GPU)108和視頻編碼器/視頻編解碼器(編碼器/解碼器)114形成了用于高速和高分辯率圖形處理的視頻處理管道。數(shù)據(jù)經(jīng)由總線從圖形處理單元108傳送到視頻編碼器/解碼器。視頻處理管道向A/V(音頻/視頻)端口140輸出數(shù)據(jù)以供發(fā)送到電視機或其它顯示器。存儲器控制器110連接到GPU 108以便于處理器訪問各種類型的存儲器112,包括但不限于RAM(隨機存取存儲器)。
多媒體控制臺100包括I/O控制器120、系統(tǒng)管理控制器122、音頻處理單元123、網(wǎng)絡(luò)接口控制器124、第一USB主機控制器126、第二USB控制器128以及較佳地在模塊118上實現(xiàn)的面板I/O子組件130。USB控制器126和128擔(dān)當(dāng)外圍控制器142(1)-142(2)、無線適配器148以及外部存儲器設(shè)備146(例如,閃存、外部CD/DVD ROM驅(qū)動器、可移動介質(zhì)等)的主機。網(wǎng)絡(luò)接口124和/或無線適配器148提供了對網(wǎng)絡(luò)(例如,因特網(wǎng)、家庭網(wǎng)絡(luò)等)的訪問,并且可以是各種各樣有線或無線接口組件的任一種,包括以太網(wǎng)卡、調(diào)制解調(diào)器、藍(lán)牙模塊、電纜調(diào)制解調(diào)器等等。
提供了系統(tǒng)存儲器143以儲存在引導(dǎo)過程中加載的數(shù)據(jù)。提供了介質(zhì)驅(qū)動器144,且它包括DVD/CD驅(qū)動器、硬盤驅(qū)動器或其它可移動介質(zhì)驅(qū)動器等等。介質(zhì)驅(qū)動器144對多媒體控制臺100可以是內(nèi)部或外部的。應(yīng)用程序數(shù)據(jù)可經(jīng)由介質(zhì)驅(qū)動器144來訪問以供多媒體控制臺100執(zhí)行、回放等等。介質(zhì)驅(qū)動器144經(jīng)由諸如串行ATA總線其它高速連接(例如,IEEE 1394)等總線連接到I/O控制器120。
系統(tǒng)管理控制器122提供了與確保多媒體控制臺100的可用性有關(guān)的各種服務(wù)功能。音頻處理單元123和音頻編解碼器132形成了具有高保真和立體聲處理的對應(yīng)音頻處理管道。音頻數(shù)據(jù)通過通信鏈路在音頻處理單元123和音頻編解碼器132之間傳送。音頻處理管道向A/V 140端口輸出數(shù)據(jù)以供外部音頻播放器或具有音頻能力的設(shè)備再現(xiàn)。
面板I/O子組件130支持電源按鈕150和彈出按鈕152的功能,以及展現(xiàn)在多媒體控制臺100的外表面上的任何LED(發(fā)光二極管)或其它指示器。系統(tǒng)電源模塊136向多媒體控制臺100的組件提供電源。風(fēng)扇138冷卻多媒體控制臺100內(nèi)的電路。
多媒體控制臺100內(nèi)的CPU 101、GPU 108、存儲器控制器110和各種其它組件通過一個或多個總線互連,包括串行和并行總線、存儲器總線、外圍總線以及使用各種總線體系結(jié)構(gòu)的任一種的處理器或局部總線。
當(dāng)多媒體控制臺100被通電時,應(yīng)用程序數(shù)據(jù)可從系統(tǒng)存儲器143加載到存儲器112和/或高速緩存102、104中,并在CPU 101上執(zhí)行。應(yīng)用程序可呈現(xiàn)在導(dǎo)航到多媒體控制臺100上可用的不同媒體類型時提供一致用戶體驗的圖形用戶界面。在操作中,介質(zhì)驅(qū)動器144中包含的應(yīng)用程序和/或其它介質(zhì)可以從介質(zhì)驅(qū)動器144中發(fā)送或播放,以向多媒體控制臺100提供附加的功能。
多媒體控制臺100可以通過簡單地將系統(tǒng)連接到電視機或其它顯示器來作為獨立的系統(tǒng)操作。在這一獨立模式中,多媒體控制臺100允許一個或多個用戶與系統(tǒng)交互、觀看影片或聽音樂。然而,有了可通過網(wǎng)絡(luò)接口124或無線適配器148獲得的寬帶連接的集成,多媒體控制臺100還可以作為更大網(wǎng)絡(luò)團(tuán)體中的參與者來操作。
當(dāng)多媒體控制臺100被通電時,保留一組硬件資源量以供多媒體控制臺操作系統(tǒng)的系統(tǒng)使用。這些資源可包括存儲器(例如,16MB)、CPU和GPU周期(例如,5%)、網(wǎng)絡(luò)帶寬(例如,8kbs)等的保留。由于這些資源是在系統(tǒng)引導(dǎo)時保留的,因此所保留的資源從應(yīng)用程序的觀點來看并不存在。
具體地,存儲器保留較佳地應(yīng)足夠大以包含啟動內(nèi)核、并發(fā)系統(tǒng)應(yīng)用程序和驅(qū)動程序。CPU保留較佳地以恒定的級別維持。
對于GPU保留,由系統(tǒng)應(yīng)用程序生成的輕量級消息(例如,彈出窗口)通過使用對調(diào)度代碼的GPU中斷來顯示,以將彈出窗口呈現(xiàn)到覆蓋圖(overlay)上。覆蓋圖需要的存儲器量取決于覆蓋圖面積大小,且覆蓋圖較佳地用屏幕分辯率來縮放。當(dāng)并發(fā)系統(tǒng)應(yīng)用程序使用全用戶界面時,較佳的是使用與游戲分辯率無關(guān)的分辯率??墒褂每s放程序來設(shè)置這一分辯率,從而消除了改變頻率且導(dǎo)致TV重新同步的需求。
在多媒體控制臺100引導(dǎo)且保留了系統(tǒng)資源以后,并發(fā)系統(tǒng)應(yīng)用程序執(zhí)行以提供系統(tǒng)功能。系統(tǒng)功能被封裝在一組在上述保留的系統(tǒng)資源內(nèi)執(zhí)行的系統(tǒng)應(yīng)用程序中。操作系統(tǒng)內(nèi)核標(biāo)識作為系統(tǒng)應(yīng)用程序線程和多媒體應(yīng)用程序線程的線程。系統(tǒng)應(yīng)用程序較佳地被調(diào)度成以預(yù)定的次數(shù)和間隔在CPU 101上運行,以向應(yīng)用程序提供一致的系統(tǒng)資源觀點。調(diào)度是最小化運行在控制臺上的多媒體應(yīng)用程序的高速緩存中斷。
當(dāng)并發(fā)系統(tǒng)應(yīng)用程序需要音頻時,由于時間敏感性,與多媒體應(yīng)用程序異步地調(diào)度音頻處理。多媒體控制臺應(yīng)用程序管理器在系統(tǒng)應(yīng)用程序活動時控制多媒體應(yīng)用程序的音頻級別(例如,靜音、衰減)。
輸入設(shè)備(例如,控制器142(1)和142(2))由多媒體應(yīng)用程序和系統(tǒng)應(yīng)用程序共享。輸入設(shè)備不是保留的資源,但是要在系統(tǒng)應(yīng)用程序和多媒體應(yīng)用程序之間共享,使得其每一個將具有該設(shè)備的焦點。應(yīng)用程序管理器較佳地控制輸入流的切換,而無需知道多媒體應(yīng)用程序的知識,且驅(qū)動程序維護(hù)關(guān)于焦點切換的狀態(tài)信息。
示例性實施例圖2是依照本發(fā)明的一個實施例的示例性軟件激活控制系統(tǒng)250的示意圖。為說明起見,軟件激活控制系統(tǒng)250被示為包括激活處理器253和字符代碼(也稱為解鎖代碼或激活代碼)生成器256。然而,實際上,激活處理器253和字符代碼生成器256可以被組合成單個組件。付費系統(tǒng)(未在圖2中示出)也可用于從用戶接收付費,用于要由激活控制系統(tǒng)激活的軟件程序。
激活處理器253是處理諸如計算設(shè)備200等計算設(shè)備的軟件的激活的計算機可執(zhí)行組件。激活處理器253被配置成處理對軟件許可證的請求,以及解鎖在計算設(shè)備上使用的授權(quán)。對于對軟件許可證的每一請求或使用的其它授權(quán),激活處理器253便于用對設(shè)備唯一的設(shè)備標(biāo)識鎖在特定計算設(shè)備上的軟件的激活。
當(dāng)接收到對軟件的請求時,激活處理器253被配置成接收與其中可使用該軟件的計算設(shè)備200相關(guān)聯(lián)的設(shè)備標(biāo)識。為此,激活處理器253可建立到計算設(shè)備200的通信鏈路以接收設(shè)備標(biāo)識,或可以用不使用到計算設(shè)備的直接通信鏈路的替換方式來接收設(shè)備標(biāo)識??墒褂檬沟眉せ钐幚砥?53能夠從計算設(shè)備獲得數(shù)據(jù)的任一類型的有線或無線網(wǎng)絡(luò)連接來建立通信鏈路。例如,激活處理器253可通過因特網(wǎng)、LAN、無線通信網(wǎng)絡(luò)等與計算設(shè)備交互?;蛘?,激活處理器可通過替換的手段接收設(shè)備標(biāo)識(例如,從計算設(shè)備間接接收),諸如通過具有儲存在其上的設(shè)備標(biāo)識的用戶提供的存儲器單元,或通過用戶手動將設(shè)備標(biāo)識輸入到激活控制系統(tǒng)中。
計算設(shè)備200較佳地具有唯一標(biāo)識符。該標(biāo)識符用于創(chuàng)建如下所述的在該特定設(shè)備上使用軟件的“許可證”。字符代碼生成器256是創(chuàng)建在計算設(shè)備200上使用的、允許在計算設(shè)備200上使用特定軟件程序的代碼的計算機可執(zhí)行組件。字符代碼生成器256接收計算設(shè)備的唯一設(shè)備標(biāo)識,并生成在計算設(shè)備200上使用的解鎖代碼。解鎖代碼然后例如通過激活處理器253直接或通過用戶(例如,用戶接收其上儲存解鎖代碼的存儲器單元,然后將該存儲器單元提供給計算設(shè)備200)提供給計算設(shè)備200。此外,解鎖代碼僅涉及具有該特定設(shè)備標(biāo)識的計算設(shè)備。因此,解鎖代碼可例如發(fā)布在公共網(wǎng)站上,而沒有未授權(quán)用戶在另一計算設(shè)備上使用該代碼的風(fēng)險。理想地,機器標(biāo)識符包含防止用戶購買錯誤計算設(shè)備的代碼(例如,通過輸入錯誤的控制臺序列號(計算設(shè)備唯一標(biāo)識符))的校驗和。
解鎖代碼可儲存在計算設(shè)備中,使得用戶在將來獲取運行已被許可給該特定計算設(shè)備的軟件程序的授權(quán)時沒有麻煩。由此,解鎖代碼可以在每次啟動該程序時進(jìn)行校驗。如果提供了解鎖代碼或軟件已被正確許可的其它指示符,則軟件可正確地運作。注意,軟件程序可以是諸如游戲、游戲級別、游戲特征等的任何應(yīng)用程序或應(yīng)用程序的部分。其進(jìn)一步描述在下文給出。
圖3是依照本發(fā)明提供軟件許可證的示例性方法的流程圖、在本示例性實施例中,其上可許可并運行軟件的計算設(shè)備不必連接到諸如因特網(wǎng)等網(wǎng)絡(luò)。
用戶希望在計算設(shè)備上運行軟件程序或產(chǎn)品。在步驟300,在計算設(shè)備上啟動該產(chǎn)品。在步驟305,核查與該產(chǎn)品相關(guān)聯(lián)的持久存儲器(例如,與計算設(shè)備相關(guān)聯(lián)的存儲器,如ROM、存儲器單元或硬盤)的簽名或產(chǎn)品信息(理想地不能被偽造),該簽名或信息知識該產(chǎn)品已對該計算設(shè)備激活。如果是,則取決于所存儲的信息的特性,如果簽名要用公鑰來解碼,則處理在步驟360繼續(xù),或者如果產(chǎn)品要直接運行,則在步驟390繼續(xù)。
如果持久存儲器不包含涉及試圖運行的產(chǎn)品的先前所儲存的信息,則例如在步驟310,可向用戶提供一帶有關(guān)于如何購買用于該計算設(shè)備的軟件產(chǎn)品的許可證的指令的用戶界面?;蛘撸上蛴脩籼峁╆P(guān)于如何繼續(xù)的附加指令。
在這一點上,假定用戶已為該產(chǎn)品付費(若需要付費的話)。在步驟320,向激活控制系統(tǒng)提供計算設(shè)備的唯一標(biāo)識符(例如,序列號)以及需要激活的軟件程序或產(chǎn)品的產(chǎn)品標(biāo)識符(例如,產(chǎn)品代碼)。用戶可手動或通過電話、電話亭、網(wǎng)站或其它手動或電子手段向激活控制系統(tǒng)提供唯一標(biāo)識符和產(chǎn)品標(biāo)識符。
在步驟330,在激活控制系統(tǒng)處(例如,在字符代碼生成器256處)用私鑰(例如,使用RSA簽署、DSA簽署或任何其它私鑰/公鑰簽署技術(shù)或系統(tǒng))來簽署計算設(shè)備的標(biāo)識符和產(chǎn)品標(biāo)識符。所簽署的比特可以被轉(zhuǎn)換成具有預(yù)定數(shù)量的字母數(shù)字字符(例如,大約25到30個字符)的激活代碼。
簽署的代碼或數(shù)據(jù)然后在步驟340被公共地或私密地提供給用戶。例如,所簽署的數(shù)據(jù)可以在網(wǎng)站上張貼、或發(fā)電子郵件、打電話或用其它方式提供給用戶。由于所簽署的數(shù)據(jù)僅涉及一種計算設(shè)備,因此它可以在任何地方公布,甚至可以對公眾可用。僅具有計算設(shè)備的唯一標(biāo)識符的計算設(shè)備能夠激活相關(guān)聯(lián)的軟件程序或應(yīng)用程序。
在步驟350,用戶向計算設(shè)備提供經(jīng)簽署的數(shù)據(jù)(例如,比特串)。(或者,如果計算設(shè)備例如通過網(wǎng)絡(luò)連接到激活控制系統(tǒng),則激活控制系統(tǒng)可向計算設(shè)備透明地提供經(jīng)簽署的數(shù)據(jù)。)計算設(shè)備在步驟360使用對應(yīng)的公鑰來檢索并驗證計算設(shè)備的唯一標(biāo)識符和產(chǎn)品標(biāo)識符。
在步驟370,確定所檢索的唯一標(biāo)識符是否與計算設(shè)備的唯一標(biāo)識符相匹配,以及所檢索的產(chǎn)品標(biāo)識符是否與用戶試圖運行的產(chǎn)品的標(biāo)識符相匹配。如果這些比較的任一個失敗,則在步驟380,激活過程停止,可任選地顯示或向用戶提供出錯消息或其它指示符。此外,軟件程序可被禁用或異常中止。如有需要,該計算設(shè)備也可被禁用。
如果所檢索的唯一標(biāo)識符與計算設(shè)備的唯一標(biāo)識符相匹配,且所檢索的產(chǎn)品標(biāo)識符與用戶試圖運行的產(chǎn)品的標(biāo)識符相匹配,則在步驟390,產(chǎn)品被激活并運行。
在步驟385,可能期望在持久存儲器中儲存一指示符以記住該產(chǎn)品已對該計算設(shè)備激活。以此方式,計算設(shè)備理想地在未來不需要再聯(lián)系激活系統(tǒng)或與其交互以運行該產(chǎn)品。例如,該指示符可以是經(jīng)簽署的代碼或數(shù)據(jù)本身,或標(biāo)識該產(chǎn)品可在該計算設(shè)備上使用的產(chǎn)品標(biāo)識符。理想地,這一代碼可以是加密的且以不能被偽造的形式儲存,使得僅該計算設(shè)備(例如,其CPU)能夠讀取它。
圖4是依照本發(fā)明提供軟件許可證的另一示例性方法的流程圖。在此示例性實施例中,確定顧客激活(解鎖)代碼,并將其提供給用戶或機器。
理想地提供(例如,通過計算設(shè)備的制造商)與計算設(shè)備的唯一標(biāo)識符不同的機器密鑰,并將其儲存在計算設(shè)備上(例如,ROM中)。例如,密鑰可以是在計算設(shè)備的制造過程中生成的隨機128比特密鑰。機器密鑰不必是唯一的。較佳地,密鑰可以在計算設(shè)備上加密。激活控制系統(tǒng)理想地維護(hù)將計算設(shè)備的唯一標(biāo)識符與其機器密鑰相關(guān)聯(lián)的數(shù)據(jù)庫、查找表或其它存儲設(shè)備。
類似于圖3,用戶期望在計算設(shè)備上運行軟件程序或產(chǎn)品。在步驟400,在計算設(shè)備上啟動該產(chǎn)品。在步驟405,核查與該產(chǎn)品相關(guān)聯(lián)的持久存儲器(例如,與計算設(shè)備相關(guān)聯(lián)的存儲器,諸如ROM、存儲器單元或硬盤),以找出指示該產(chǎn)品已對該計算設(shè)備激活的激活代碼或產(chǎn)品信息(理想地不能被偽造)。如果是,則取決于所儲存的信息的特性,如果所儲存的數(shù)據(jù)是激活代碼,則處理在步驟450繼續(xù),或者如果儲存了產(chǎn)品標(biāo)識符,則處理在步驟490繼續(xù)。
如果持久存儲器不包含涉及試圖運行的產(chǎn)品的先前儲存的信息,則在步驟410,例如可向用戶提供一帶有關(guān)于如何購買用于該計算設(shè)備的軟件產(chǎn)品的許可證的指令的用戶界面。或者,可向用戶提供關(guān)于如何繼續(xù)的附加指令。
在這一點上,假定用戶已為該產(chǎn)品付費(如果需要付費的話)。在步驟420,向激活控制系統(tǒng)提供計算設(shè)備的唯一標(biāo)識符(例如,序列號)以及需要激活的軟件程序或應(yīng)用程序的產(chǎn)品標(biāo)識符(例如,產(chǎn)品代碼)。用戶可手動或通過電話、電話亭、網(wǎng)站或其它手動或電子手段向激活控制系統(tǒng)提供唯一標(biāo)識符和產(chǎn)品標(biāo)識符。
在步驟430,例如激活控制系統(tǒng)從數(shù)據(jù)庫(例如,諸如查找表等數(shù)據(jù)庫,具有兩列計算設(shè)備標(biāo)識符和對應(yīng)的機器密鑰)中查找對應(yīng)的機器密鑰(對稱密鑰),并基于機器密鑰和產(chǎn)品標(biāo)識符計算散列(例如,諸如SHA-1(機器密鑰|產(chǎn)品代碼)等單向散列)。如果該密鑰被加密,則它理想地在散列確定之前解密。在步驟435,基于該散列生成激活代碼。該散列或散列的某一部分被轉(zhuǎn)換成用戶可鍵入字符。例如,單向散列的前32個比特可被轉(zhuǎn)換成8字符激活代碼。
然后在步驟440,向用戶提供該激活代碼。例如,激活代碼可以被張貼在網(wǎng)站上、發(fā)電子郵件、打電話或通過其它方式提供給用戶。在步驟445,用戶向計算設(shè)備提供激活代碼。如果計算設(shè)備例如通過網(wǎng)絡(luò)連接到激活控制系統(tǒng),則激活控制系統(tǒng)可透明地向計算設(shè)備提供激活代碼。
在步驟450,在計算設(shè)備處,本地地計算包括機器密鑰和產(chǎn)品代碼的單獨散列。使用步驟435中的同一技術(shù),散列或散列的某一部分被轉(zhuǎn)換成用戶可鍵入字符。
在步驟470,確定本地計算的激活代碼是否與由激活控制系統(tǒng)確定和提供的激活代碼相匹配。如果這一比較失敗,則在步驟480,激活過程停止,可任選地顯示或向用戶提供出錯消息或其它指示符。
如果本地計算的激活代碼與由激活控制系統(tǒng)確定和提供的激活代碼相匹配,則在步驟490,該產(chǎn)品被激活并運行。
類似于相對圖3所描述的,在步驟485,可能期望在持久存儲器中儲存一指示符,以記住該產(chǎn)品已對該計算設(shè)備激活。指示符可以是由激活控制系統(tǒng)本身確定的激活代碼(會導(dǎo)致在將來取框405到框450的路徑),或者標(biāo)識可在該計算設(shè)備上使用該產(chǎn)品的產(chǎn)品標(biāo)識符(會導(dǎo)致在將來取框405到框490的路徑)。
圖5是依照本發(fā)明的另一實施例的示例性軟件升級控制系統(tǒng)500的示意圖。軟件升級控制系統(tǒng)500使用戶能夠購買被鎖定到其特定計算設(shè)備的軟件升級。這些軟件升級可以是任何類型的計算機可執(zhí)行程序。例如,軟件升級可包括當(dāng)前在計算設(shè)備200上找到(例如,許可使用)的軟件的新版本,或游戲上的附加等級、人物或其它特征的解鎖。在一個配置中,軟件升級控制系統(tǒng)500包括激活處理器505、付費系統(tǒng)510、升級代碼生成器515。實際上,這些組件可被組合成單個組件。
尋求對計算設(shè)備200上的先前許可的軟件程序的某一類別的升級的訪問的用戶通過例如綁定到激活處理器505的用戶界面聯(lián)系升級控制系統(tǒng)500。激活處理器505便于通過付費系統(tǒng)510為該軟件升級付費。在作出了適當(dāng)?shù)母顿M之后,升級代碼生成器515生成最終提供給計算設(shè)備200的升級代碼。該升級代碼解鎖附加特征等等。
付費系統(tǒng)510可包括一個或多個計算設(shè)備,并可被配置成使用戶能夠通過電子方式購買軟件升級??蓸?gòu)想付費系統(tǒng)不必是貨幣付費系統(tǒng)。例如,注冊一個人的名字和地址可以是用于訪問附加特征的“付費”。
為提供用戶為計算設(shè)備所購買的軟件升級,升級控制系統(tǒng)500被配置成與激活控制器505和升級代碼生成器515交互并向其提供計算設(shè)備標(biāo)識。使用該計算設(shè)備標(biāo)識信息,升級代碼生成器515被配置成生成軟件升級代碼,并將其鎖定到設(shè)備標(biāo)識,并將該升級代碼提供給計算設(shè)備200(或用戶)。例如,升級代碼生成器515可通過電子郵件、允許用戶通過因特網(wǎng)下載軟件升級代碼、或某些其它類似的方法將軟件升級代碼提供給用戶。
圖6是依照本發(fā)明升級計算機程序的示例性方法的流程圖。在步驟600,用戶能夠使用計算設(shè)備上軟件程序的一部分,這是因為例如軟件程序的該部分已對該計算設(shè)備許可(例如,使用先前相對于圖3和4描述的方法),或者因為軟件程序的該部分不需要許可證(即,它是免費使用的)。軟件程序的剩余部分被鎖定且對用戶不可用。
在步驟610用戶期望升級軟件程序來獲得對附加特征等的訪問,并由此向升級控制系統(tǒng)500提供付費(可以是貨幣或諸如名字和地址等其它東西)和計算設(shè)備標(biāo)識符。升級控制系統(tǒng)500在步驟620處理該付費,并生成升級代碼。
在步驟630,向用戶和計算設(shè)備提供解鎖附加特征的升級代碼。該升級代碼或其它指示符理想地在步驟640儲存在與計算設(shè)備相關(guān)聯(lián)的非易失性存儲器中,使得計算設(shè)備可訪問升級中的附加特征,而不需要進(jìn)一步聯(lián)系升級控制系統(tǒng)500。
升級代碼也可作為經(jīng)簽署的數(shù)據(jù)或依照散列來提供,例如上文相對于圖3和4所陳述的。
作為一個示例,假定用戶去往零售商處并購買了軟件應(yīng)用程序的演示盤。用戶將演示盤插入到計算設(shè)備中并可以玩游戲的演示級別。為了玩游戲的剩余部分,指令用戶訪問網(wǎng)站或呼叫電話號碼,并提供計算設(shè)備的標(biāo)識符(例如,序列號)。用戶也支付了費用,并響應(yīng)于標(biāo)識符和正確的付費,用戶接收到激活該軟件應(yīng)用程序的激活代碼。在此之后,提供適用于在特定計算設(shè)備上運行特定軟件應(yīng)用程序的8字符激活代碼。用戶可將該激活代碼輸入到計算設(shè)備。在此之后,計算設(shè)備允許用戶永遠(yuǎn)能夠玩完整的游戲,而不會再要求激活代碼。
用戶也可從網(wǎng)站下載軟件程序的副本,并且然后使用程序標(biāo)識符和計算設(shè)備的唯一標(biāo)識符(例如,序列號)來購買激活代碼。
此處所描述的激活代碼可以提供給附加到用戶計算設(shè)備的存儲器設(shè)備(例如,可插式USB閃存)。由此,用戶不需要鍵入任何激活代碼,因為它是通過存儲器設(shè)備來提供的?;蛘撸嬎阍O(shè)備本身可連接到提供激活代碼的網(wǎng)站或系統(tǒng),因此不需要手動輸入激活代碼或附加存儲器設(shè)備。
可以構(gòu)想,用戶可通過購買特定軟件產(chǎn)品的軟件許可證以在特定計算設(shè)備上運行一段特定時間(例如,一周、一個月等等)來“租借”軟件應(yīng)用程序。例如,所生成和提供的激活代碼可具有與其相關(guān)聯(lián)的過期時間或日期。當(dāng)用戶在計算設(shè)備上使用該軟件程序時,可對照駐留在計算設(shè)備上的值核查該過期時段,或者計算設(shè)備可能必須向網(wǎng)站登記或連接到網(wǎng)站。
諸如控制系統(tǒng)250或500等控制系統(tǒng)可維護(hù)注冊到個別計算設(shè)備的每一應(yīng)用程序的列表。由此,例如如果計算設(shè)備被破壞或被盜竊,則替換的計算設(shè)備也可用原先在原始設(shè)備上注冊的程序來激活??梢詷?gòu)想用戶可聯(lián)系控制系統(tǒng)并提供原始計算設(shè)備的標(biāo)識符以及新計算設(shè)備的標(biāo)識符??刂葡到y(tǒng)將檢索原始計算設(shè)備的已激活程序列表,并為新計算設(shè)備生成新激活代碼,并將該新激活代碼提供給用戶以用于新計算設(shè)備。
由此,在準(zhǔn)許應(yīng)用程序運行之前,執(zhí)行軟件激活核查。這允許控制激活(解鎖)代碼的分發(fā)和銷售的分發(fā)服務(wù)與其中游戲零售商或發(fā)行商可獲得大部分銷售額的傳統(tǒng)零售環(huán)境相比,能夠獲得更大百分比的銷售額。軟件激活是用于盜版嚴(yán)重地區(qū)的營銷和游戲分發(fā)機制。本發(fā)明允許更快速和簡單地分發(fā)新軟件。在游戲投放過程中由于不正確地計算出版的物理盤的數(shù)量而引起的收入損失可被減少。為了以克服常規(guī)DVD復(fù)制保護(hù)而可能出現(xiàn)一種逐凹點(pit)DVD復(fù)制技術(shù)不會影響本發(fā)明的功效。應(yīng)用程序定價調(diào)整變得更簡單和快速,而無需價格改變來使整個零售渠道起波動。游戲演示可以大規(guī)模地分發(fā),而無需額外的成本。消費者不再需要擔(dān)心破壞、刮傷或甚至丟失應(yīng)用程序盤。
可設(shè)立網(wǎng)站以允許用戶購買在特定計算設(shè)備上使用的軟件產(chǎn)品的激活和/或升級代碼,并且可顯示軟件產(chǎn)品的當(dāng)前解鎖價格。網(wǎng)站也可顯示特定計算設(shè)備的已購買代碼。如果控制臺曾被復(fù)位(再刷新)或重新銷售,則這是有用的。二手計算設(shè)備購買者因此將能夠訪問計算設(shè)備的解鎖代碼列表。
提供解鎖和/或升級代碼的示例性系統(tǒng)可跟蹤銷售、使用等等,并可將解鎖的軟件程序的統(tǒng)計量記入日志,并提供當(dāng)前定價的權(quán)威定位。這也允許系統(tǒng)進(jìn)行第三方軟件發(fā)行商的版稅跟蹤/審計。
如上所述,盡管結(jié)合各種計算設(shè)備描述了本發(fā)明,然而基本概念可應(yīng)用于任何計算設(shè)備或系統(tǒng)。
此處描述的各種技術(shù)可以結(jié)合硬件或軟件,或在適當(dāng)時用兩者的組合來實現(xiàn)。由此,本發(fā)明的方法和裝置或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤或任何其它機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式,其中,當(dāng)程序代碼被加載到諸如計算機等機器并由其執(zhí)行時,該機器變?yōu)橛糜趯嵤┍景l(fā)明的裝置。在可編程計算機上的程序代碼執(zhí)行的情況下,計算設(shè)備一般將包括處理器、處理器可讀的存儲介質(zhì)(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設(shè)備以及至少一個輸出設(shè)備。如有需要,程序可以用匯編語言或機器語言來實現(xiàn)。在任何情況下,語言可以是編譯或解釋的語言,并與硬件實現(xiàn)相組合。
本發(fā)明的方法和裝置也可以經(jīng)由以通過某一傳輸介質(zhì)傳輸?shù)某绦虼a形式具體化的通信來實施,諸如通過電線或電纜、通過光纖或通過任何其它形式的傳輸,其中,當(dāng)該程序代碼由諸如EPROM、門陣列、可編程邏輯器件(PLD)、客戶機計算機等機器接收并加載到其中并由其執(zhí)行時,該機器變?yōu)橛糜趯嵤┍景l(fā)明的裝置。當(dāng)在通用處理器上實現(xiàn)時,該程序代碼與處理器結(jié)合以提供用于調(diào)用本發(fā)明的功能的唯一裝置。另外,與本發(fā)明結(jié)合使用的任何存儲技術(shù)可以不變地為硬件和軟件的組合。
盡管結(jié)合各附圖的較佳實施例描述了本發(fā)明,然而可以理解,可以使用其它類似的實施例或可以對所描述的實施例作出修改和添加以執(zhí)行本發(fā)明的同一功能,而不脫離本發(fā)明。因此,本發(fā)明不應(yīng)當(dāng)由任何單個實施例來限制,而是應(yīng)當(dāng)依照所附權(quán)利要求書的寬度和范圍來解釋。
權(quán)利要求
1.一種用于提供對應(yīng)用程序的訪問的方法,包括基于要在其上運行所述應(yīng)用程序的計算設(shè)備的唯一標(biāo)識符以及與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符,確定一激活代碼;以及向所述計算設(shè)備提供所述激活代碼。
2.如權(quán)利要求1所述的方法,其特征在于,還包括在確定所述激活代碼前確定所述應(yīng)用程序是否已在所述計算設(shè)備上激活,并且僅在所述應(yīng)用程序尚未在所述計算設(shè)備上激活時確定所述激活代碼。
3.如權(quán)利要求1所述的方法,其特征在于,還包括在確定所述激活代碼之前收集所述應(yīng)用程序的付費。
4.如權(quán)利要求1所述的方法,其特征在于,確定所述激活代碼包括用一私鑰簽署所述計算設(shè)備的唯一標(biāo)識符和所述應(yīng)用程序標(biāo)識符。
5.如權(quán)利要求4所述的方法,其特征在于,還包括相應(yīng)于所述激活代碼,在所述計算設(shè)備上激活所述應(yīng)用程序。
6.如權(quán)利要求5所述的方法,其特征在于,激活所述應(yīng)用程序包括使用一公鑰來驗證所述唯一標(biāo)識符和所述應(yīng)用程序標(biāo)識符,以及驗證所檢索到的唯一標(biāo)識符和所檢索到的應(yīng)用程序標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符相匹配。
7.如權(quán)利要求1所述的方法,其特征在于,確定所述激活代碼包括確定對應(yīng)于所述計算設(shè)備的唯一標(biāo)識符的機器密鑰。
8.如權(quán)利要求7所述的方法,其特征在于,還包括基于所述機器密鑰和所述應(yīng)用程序標(biāo)識符確定一散列。
9.如權(quán)利要求8所述的方法,其特征在于,還包括相應(yīng)于所述激活代碼在所述計算設(shè)備上激活所述應(yīng)用程序。
10.如權(quán)利要求9所述的方法,其特征在于,激活所述應(yīng)用程序包括接收所述散列的一固定部分、確定一本地計算的散列、以及驗證所述本地計算的散列的同一固定部分是否與所接收到的散列的同一部分相匹配。
11.如權(quán)利要求1所述的方法,其特征在于,還包括在確定所述激活代碼前在所述計算設(shè)備上啟動所述應(yīng)用程序。
12.如權(quán)利要求1所述的方法,其特征在于,還包括在確定所述激活代碼前在所述計算設(shè)備處請求所述激活代碼。
13.如權(quán)利要求1所述的方法,其特征在于,還包括將所述激活代碼儲存在與所述計算設(shè)備相關(guān)聯(lián)的存儲器設(shè)備中。
14.一種用于提供對應(yīng)用程序的訪問的方法,包括在計算設(shè)備上啟動一應(yīng)用程序;接收所述應(yīng)用程序的激活代碼,所述激活代碼基于所述計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符;以及基于所述激活代碼激活所述應(yīng)用程序。
15.如權(quán)利要求14所述的方法,其特征在于,還包括在接收所述激活代碼之前提供所述激活代碼的付費。
16.如權(quán)利要求14所述的方法,其特征在于,還包括在接收所述激活代碼之前確定所述應(yīng)用程序是否已在所述計算設(shè)備上激活,并且僅在所述應(yīng)用程序尚未在所述計算設(shè)備上激活的時接收所述激活代碼。
17.如權(quán)利要求14所述的方法,其特征在于,激活所述應(yīng)用程序包括使用一公鑰來驗證來自所簽署數(shù)據(jù)的唯一標(biāo)識符和應(yīng)用程序標(biāo)識符,以及驗證所檢索到的唯一標(biāo)識符和所檢索到的應(yīng)用程序標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符相匹配。
18.如權(quán)利要求14所述的方法,其特征在于,激活所述應(yīng)用程序包括接收一散列的固定部分、確定一本地計算的散列、以及驗證所述本地計算散列的同一固定部分是否與所接收到的散列的同一部分相匹配。
19.如權(quán)利要求18所述的方法,其特征在于,所述散列基于所述計算設(shè)備的機器密鑰以及與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符。
20.如權(quán)利要求14所述的方法,其特征在于,還包括將所述激活代碼儲存在與所述計算設(shè)備相關(guān)聯(lián)的存儲器設(shè)備中。
21.一種激活控制系統(tǒng),其特征在于,包括一激活處理器,用于接收對用于在計算設(shè)備上運行應(yīng)用程序的激活代碼的請求;以及一激活代碼生成器,用于基于要在其上運行所述應(yīng)用程序的計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符確定所述激活代碼。
22.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述激活代碼生成器向所述計算設(shè)備提供所述激活代碼。
23.如權(quán)利要求21所述的系統(tǒng),其特征在于,還包括一用于收集為所述應(yīng)用程序的付費的付費系統(tǒng)。
24.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述激活代碼生成器用一私鑰簽署所述計算設(shè)備的唯一標(biāo)識符和所述應(yīng)用程序標(biāo)識符。
25.如權(quán)利要求21所述的系統(tǒng),其特征在于,所述激活代碼生成器確定對應(yīng)于所述計算設(shè)備的唯一標(biāo)識符的機器密鑰。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述激活代碼生成器基于所述機器密鑰和所述應(yīng)用程序標(biāo)識符確定一散列,并將所述散列轉(zhuǎn)發(fā)給所述計算設(shè)備。
27.一種計算設(shè)備,包括一中央處理單元(CPU),用于在所述計算設(shè)備上啟動一應(yīng)用程序、請求和接收所述應(yīng)用程序的激活代碼、以及基于所述激活代碼激活所述應(yīng)用程序,所述激活代碼基于所述計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符;以及一存儲器設(shè)備,用于儲存所述激活代碼。
28.如權(quán)利要求27所述的計算設(shè)備,其特征在于,所述CPU適用于從一輸入設(shè)備接收付費指令,并將所述付費提供給一遠(yuǎn)程付費系統(tǒng)。
29.如權(quán)利要求27所述的計算設(shè)備,其特征在于,所述CPU適用于在請求所述激活代碼之前確定所述應(yīng)用程序是否已在所述計算設(shè)備上激活,并且僅在所述應(yīng)用程序尚未在所述計算設(shè)備上激活時請求所述激活代碼。
30.如權(quán)利要求27所述的計算設(shè)備,其特征在于,所述CPU適用于通過使用一公鑰來驗證來自經(jīng)簽署數(shù)據(jù)的唯一標(biāo)識符和應(yīng)用程序標(biāo)識符,以及驗證所檢索到的唯一標(biāo)識符和所檢索到的應(yīng)用程序標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符相匹配,來激活所述應(yīng)用程序。
31.如權(quán)利要求27所述的計算設(shè)備,其特征在于,所述CPU適用于通過接收一散列、確定一本地計算的散列、以及驗證所述本地計算的散列的至少一部分是否與所接收到的散列的至少一部分相匹配,來激活所述應(yīng)用程序。
32.如權(quán)利要求31所述的計算設(shè)備,其特征在于,所述散列基于所述計算設(shè)備的機器密鑰以及與所述應(yīng)用程序相關(guān)聯(lián)的應(yīng)用程序標(biāo)識符。
33.一種用于提供對應(yīng)用程序的特征的訪問的方法,包括基于要在其上運行所述應(yīng)用程序的特征的計算設(shè)備的唯一標(biāo)識符以及與所述特征相關(guān)聯(lián)的特征標(biāo)識符,確定一升級代碼;以及將所述升級代碼提供給所述計算設(shè)備。
34.如權(quán)利要求33所述的方法,其特征在于,還包括在確定所述升級代碼之前確定所述特征是否已在所述計算設(shè)備上激活,并且僅在所述特征未在所述計算設(shè)備上激活時確定所述升級代碼。
35.如權(quán)利要求33所述的方法,其特征在于,還包括在確定所述升級代碼之前收集所述特征的付費。
36.如權(quán)利要求33所述的方法,其特征在于,確定所述升級代碼包括用一私鑰簽署所述計算設(shè)備的唯一標(biāo)識符和所述特征標(biāo)識符。
37.如權(quán)利要求36所述的方法,其特征在于,還包括相應(yīng)于所述升級代碼在所述計算設(shè)備上激活所述特征。
38.如權(quán)利要求37所述的方法,其特征在于,激活所述特征包括使用一公鑰來驗證所述唯一標(biāo)識符和所述特征標(biāo)識符,以及驗證所檢索的唯一標(biāo)識符和所檢索的特征標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述特征相關(guān)聯(lián)的特征標(biāo)識符相匹配。
39.如權(quán)利要求33所述的方法,其特征在于,確定所述升級代碼包括確定一對應(yīng)于所述計算設(shè)備的唯一標(biāo)識符的機器密鑰。
40.如權(quán)利要求39所述的方法,其特征在于,還包括基于所述機器密鑰和所述特征標(biāo)識符確定一散列。
41.如權(quán)利要求40所述的方法,其特征在于,還包括相應(yīng)于所述升級代碼在所述計算設(shè)備上激活所述特征。
42.如權(quán)利要求41所述的方法,其特征在于,激活所述特征包括接收所述散列的一固定部分、確定一本地計算的散列、以及驗證所述本地計算的散列的同一固定部分是否與所接收到的散列的同一部分相匹配。
43.如權(quán)利要求33所述的方法,其特征在于,還包括在確定所述升級代碼之前在所述計算設(shè)備上啟動所述應(yīng)用程序。
44.如權(quán)利要求33所述的方法,其特征在于,還包括在確定所述升級代碼之前在所述計算設(shè)備處請求所述升級代碼。
45.如權(quán)利要求33所述的方法,其特征在于,還包括將所述升級代碼儲存在與所述計算設(shè)備相關(guān)聯(lián)的存儲器設(shè)備中。
46.一種用于提供對應(yīng)用程序的訪問的方法,包括在計算設(shè)備上啟動一具有鎖定特征的應(yīng)用程序;接收所述應(yīng)用程序的升級代碼,所述升級代碼基于所述計算設(shè)備的唯一標(biāo)識符和與所述鎖定特征相關(guān)聯(lián)的特征標(biāo)識符;以及基于所述升級代碼激活所述鎖定特征。
47.如權(quán)利要求46所述的方法,其特征在于,還包括在接收所述升級代碼之前提供所述升級代碼的付費。
48.如權(quán)利要求46所述的方法,其特征在于,還包括在接收所述升級代碼之前確定所述鎖定特征是否已在所述計算設(shè)備上激活,并且僅在所述鎖定特征尚未在所述計算設(shè)備上激活時接收所述升級代碼。
49.如權(quán)利要求46所述的方法,其特征在于,激活所述鎖定特征包括使用一公鑰來驗證來自經(jīng)簽署數(shù)據(jù)的唯一標(biāo)識符和特征標(biāo)識符,并驗證所檢索到的唯一標(biāo)識符和所檢索到的特征標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述鎖定特征相關(guān)聯(lián)的特征標(biāo)識符相匹配。
50.如權(quán)利要求46所述的方法,其特征在于,激活所述鎖定特征包括接收一散列的固定部分、確定一本地計算的散列、以及驗證所述本地計算散列的同一固定部分是否與所接收到的散列的同一部分相匹配。
51.如權(quán)利要求50所述的方法,其特征在于,所述散列基于所述計算設(shè)備的機器密鑰和與所述鎖定特征相關(guān)聯(lián)的特征標(biāo)識符。
52.如權(quán)利要求46所述的方法,其特征在于,還包括將所述升級代碼儲存在與所述計算設(shè)備相關(guān)聯(lián)的存儲器設(shè)備中。
53.一種升級控制系統(tǒng),包括一激活處理器,用于接收對升級代碼的請求,所述升級代碼解鎖一應(yīng)用程序的特征以在計算設(shè)備上運行;以及一升級代碼生成器,用于基于要在其上解鎖所述特征的計算設(shè)備的唯一標(biāo)識符和與所述特征相關(guān)聯(lián)的特征標(biāo)識符確定所述升級代碼。
54.如權(quán)利要求53所述的系統(tǒng),其特征在于,所述升級代碼生成器向所述計算設(shè)備提供所述升級代碼。
55.如權(quán)利要求53所述的系統(tǒng),其特征在于,還包括一用于收集所述特征的付費的付費系統(tǒng)。
56.如權(quán)利要求53所述的系統(tǒng),其特征在于,所述升級代碼生成器用一私鑰簽署所述計算設(shè)備的唯一標(biāo)識符和所述特征標(biāo)識符。
57.如權(quán)利要求53所述的系統(tǒng),其特征在于,所述升級代碼生成器確定對應(yīng)于所述計算設(shè)備的唯一標(biāo)識符的機器密鑰。
58.如權(quán)利要求57所述的系統(tǒng),其特征在于,所述升級代碼生成器基于所述機器密鑰和所述特征標(biāo)識符確定一散列,并將所述散列轉(zhuǎn)發(fā)給所述計算設(shè)備。
59.一種計算設(shè)備,包括一中央處理單元(CPU),用于在所述計算設(shè)備上啟動一應(yīng)用程序、請求和接收解鎖所述應(yīng)用程序的特征的升級代碼、以及基于所述升級代碼激活所述特征,所述升級代碼基于所述計算設(shè)備的唯一標(biāo)識符和與所述特征相關(guān)聯(lián)的特征標(biāo)識符;以及一存儲器設(shè)備,用于儲存所述升級代碼。
60.如權(quán)利要求59所述的計算設(shè)備,其特征在于,所述CPU適用于從一輸入設(shè)備接收付費指令,并將所述付費提供給一遠(yuǎn)程付費系統(tǒng)。
61.如權(quán)利要求59所述的計算設(shè)備,其特征在于,所述CPU適用于在請求所述升級代碼之前確定所述特征是否已在所述計算設(shè)備上激活,并且僅在所述特征尚未在所述計算設(shè)備上激活時請求所述升級代碼。
62.如權(quán)利要求59所述的計算設(shè)備,其特征在于,所述CPU適用于通過使用一公鑰來驗證來自經(jīng)簽署數(shù)據(jù)的唯一標(biāo)識符和特征標(biāo)識符,以及驗證所檢索到的唯一標(biāo)識符和所檢索到的特征標(biāo)識符是否與所述計算設(shè)備的唯一標(biāo)識符和與所述特征相關(guān)聯(lián)的特征標(biāo)識符相匹配,來激活所述特征。
63.如權(quán)利要求59所述的計算設(shè)備,其特征在于,所述CPU適用于通過接收一散列、確定一本地計算的散列、以及驗證所述本地計算的散列的至少一部分是否與所接收到的散列的至少一部分相匹配,來激活所述特征。
64.如權(quán)利要求63所述的計算設(shè)備,其特征在于,所述散列基于所述計算設(shè)備的機器密鑰和與所述特征相關(guān)聯(lián)的特征標(biāo)識符。
全文摘要
軟件被許可在諸如游戲控制臺或多媒體控制臺等特定計算設(shè)備上使用。一解鎖代碼從分發(fā)服務(wù)提供給計算設(shè)備(直接或通過用戶),它進(jìn)而解鎖適當(dāng)?shù)能浖蜍浖糠忠杂糜谙嚓P(guān)聯(lián)的計算設(shè)備。該軟件可駐留在諸如CD-ROM或DVD盤等與該計算設(shè)備結(jié)合使用的計算機可讀介質(zhì)上。解鎖代碼可私密地(例如,通過電子郵件或移動電話)或公開地(例如,發(fā)布在網(wǎng)站上)直接提供給用戶。軟件中可解鎖的部分包括游戲的特定級別或其它特征(例如,附加人物或武器),或作為演示或較舊版本提供的應(yīng)用程序的運行或更高級版本。解鎖代碼可基于計算設(shè)備的唯一標(biāo)識符和與試圖被訪問的軟件相關(guān)聯(lián)的標(biāo)識符。由此,代碼僅可由具有該唯一標(biāo)識符的計算設(shè)備使用。這防止了未授權(quán)或未許可的計算設(shè)備使用該軟件。
文檔編號G06Q20/00GK1744099SQ20051009108
公開日2006年3月8日 申請日期2005年8月1日 優(yōu)先權(quán)日2004年9月1日
發(fā)明者J·貝納爾, 陳陵, B·C·馬爾特勒 申請人:微軟公司