專利名稱:用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不必改變和重編譯所述數(shù)字內(nèi)容的方 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及正如軟件的數(shù)字內(nèi)容的安全特征,且更具體地,涉及用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不必改變和重編譯所述數(shù)字內(nèi)容的方法和設(shè)備。
背景技術(shù):
軟件產(chǎn)品的創(chuàng)建和銷售為具有創(chuàng)新產(chǎn)品的公司創(chuàng)造了巨大的財富??蓪⒂嬎阆到y(tǒng)制造為具有默認為禁止的一個或多個特征。詞語"特征"指代提供(或增強)特定功能的計算機組件。"計算系統(tǒng)"指代各種各樣處理數(shù)字化信息的設(shè)備,例如,桌面計算機、膝上型計算機、服務(wù)器、網(wǎng)絡(luò)基礎(chǔ)設(shè)施設(shè)備(例如,路由器、交換機等)、數(shù)字家庭娛樂系統(tǒng)、蜂窩電話等。
默認地禁止特征的一個原因是為計算機(或其組件)提供升級路徑。例如,很多軟件程序被設(shè)計為允許用戶最初獲得程序的簡單版本并隨后將該簡單版本升級為更魯棒的版本。在某些情況下,程序的兩個(或更多)版本間的差異僅僅是程序的哪些特征被禁止的問題。程序的簡單版本可能以較低的價格銷售,反映出并非所有特征都可用。
想要升級軟件的用戶可從例如軟件廠商處購買對更魯棒版本的訪問。通常,軟件廠商不需要向升級軟件的用戶發(fā)送新的軟件模塊。原因是,通常,支持更魯棒特征的代碼已經(jīng)在程序中,但是此代碼被禁止。為了啟用軟件特征,廠商可提供能夠使附加軟件特征被激活的激活密鑰。
因此,激活密鑰(或稱激活碼)可用于啟用在顧客為該特征付費之后可自動激活的特征。然而,相當(dāng)常見的是,用于新軟件功能的附加激活密鑰類型必須被添加到軟件產(chǎn)品中。目前,添加激活密鑰類型需要針對每個新功能的每個新密鑰類型而改變代碼。而且,在產(chǎn)品出廠之前,很多時候是在最后時刻,激活碼的參數(shù)可能改變,這導(dǎo)致最后時刻對代碼的修改。當(dāng)激活碼改變或添加激活密鑰碼時,必須花費時間在代碼開發(fā)上。這時,存在使代碼出錯的風(fēng)險。而且,相當(dāng)大量的時間花費在了測試這種代碼改變上。
為了克服代碼修改帶來的問題,可以創(chuàng)建平面文件,該文件中具有確認特定激活密鑰類型的所需信息。平面文件是包含不具有結(jié)構(gòu)化關(guān)系的記錄的文件。需要附加的知識來解釋這些文件,如文件格式屬性。平面文件只能被順序地讀或?qū)?,但是其包括一個或更多記錄。但是,使用平面文件是有問題的,因為任何人在任何時間都可以修改平面文件。這會允許某些人在沒有進行適當(dāng)檢查的情況下就對激活密鑰進行激活,或者可能允許某些人在激活密鑰所啟用的其余底層代碼尚不可用時便激活密鑰。
可以看出,需要一種用于改變和添加用于數(shù)字內(nèi)容的功能的激
活密鑰而不必改變和重編i奪該數(shù)字內(nèi)容的方法和設(shè)備。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的限制,以及克服當(dāng)閱讀和理解本說明書時變得易見的其他限制,本發(fā)明的實施例包括用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的方法和設(shè)備。
本發(fā)明的實施例對用于確認激活密鑰的規(guī)則、用于提供執(zhí)行用于確認激活密鑰的規(guī)則的指令的代碼以及用于標(biāo)識可能激活密鑰的模板進行了分離,其中所述密鑰目前是有效的,并且確認與每個當(dāng)前有效的激活密鑰相關(guān)聯(lián)的規(guī)則。因此,針對每個新功能的每個新的附加時間,并且因此消除了在產(chǎn)品即將出廠前造成的錯誤。此外,花費在測試代碼修改上的時間可以整合到開發(fā)周期中,而不是添加到產(chǎn)品出廠前的最后時刻,由此消除了由這種代碼改變引起的產(chǎn)品延期。
在本發(fā)明的 一 個實施例中,提供了 一種處理設(shè)備可讀的程序存儲設(shè)備。所述程序存儲設(shè)備包括處理設(shè)備可執(zhí)行的程序指令,用以
執(zhí)行提供用于數(shù)字內(nèi)容的功能的激活密鑰的操作。所述操作包括提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件;提供定義用于確認每個激活密鑰的規(guī)則的非加密文件;提供在執(zhí)行適于確認每個激活密鑰的規(guī)則時使用的代碼指令的文件;以及至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件進行加密。
優(yōu)選地,本發(fā)明提供了一種程序存儲設(shè)備,其中,提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件還包括提供包括以下內(nèi)容的平面文件激活密鑰的列表,激活密鑰的描述,關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個激活密鑰的確認規(guī)則的指示。
優(yōu)選地,本發(fā)明提供了一種程序存儲設(shè)備,其中,至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件進行加密還包括對定義規(guī)則的文件以及代碼指令的文件進行加密。
優(yōu)選地,本發(fā)明提供了一種程序存儲設(shè)備,其中,提供定義用于確認每個激活密鑰的規(guī)則的文件還包括預(yù)先確定確認每個激活密鑰的規(guī)則,使得不必修改定義規(guī)則的文件和用于執(zhí)行該規(guī)則的代碼便可實現(xiàn)新的激活密鑰。
優(yōu)選地,本發(fā)明提供了一種程序存儲設(shè)備,還包括提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件與標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的文件的二進制加密版本之間進行轉(zhuǎn)換的代碼。
優(yōu)選地,本發(fā)明提供了一種程序存儲設(shè)備,其中,提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件與二進制加密版本之間進行轉(zhuǎn)換的
代碼還包括僅編寫該用于轉(zhuǎn)換的代碼一次。
在本發(fā)明的另 一實施例中,提供了另 一種處理設(shè)備可讀的程序存儲設(shè)備。所述程序存儲設(shè)備包括處理設(shè)備可執(zhí)行的程序指令,用以執(zhí)行用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的操作。所述操作包括確定激活密鑰的參數(shù)和屬性;標(biāo)識用于確認激活密鑰的算法;創(chuàng)建非加密的激活密鑰確認模板文件;提供用于將非加密的激活密鑰確認模板文件轉(zhuǎn)換為二進制加密版本且用于確認激活密鑰的代碼;創(chuàng)建非加密的已知規(guī)則模板文件并將所述非加密的已知規(guī)則模板文件轉(zhuǎn)換為二進制加密已知規(guī)則模板文件;創(chuàng)建非加密的定制規(guī)則模板文件并將所述非加密的定制規(guī)則模板文件轉(zhuǎn)換為二進制加密定制規(guī)則模板文件;提供非加密的激活方法文件并將所述非加密的激活方法文件轉(zhuǎn)換為二進制加密激活方法文件;當(dāng)需要新的激活密鑰類型時,修改非加密的激活密鑰確認模板文件并將修改后的非加密的激活密鑰確認模板文件轉(zhuǎn)換為二進制加密激活密鑰確認模板文件;以及當(dāng)需要新的定制確認規(guī)則時,修改非加密的定制規(guī)則模板文件并將修改后的非加密的定制規(guī)則模板文件轉(zhuǎn)換為二進制加密定制規(guī)則模板文件。
在本發(fā)明的另 一實施例中,提供了 一種提供用于數(shù)字內(nèi)容的功能的激活密鑰的系統(tǒng)。所述系統(tǒng)包括標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的加密文件;定義用于確認每個激活密鑰的規(guī)則的加密文件;在執(zhí)行適于確認每個激活密鑰的規(guī)則時使用的代碼指令的文件。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中,標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的加密文件還包括包含以下內(nèi)容的文件激活密鑰的列表,激活密鑰的描述,關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個激活密鑰的確認規(guī)則的指示。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中,定義用于確認每個激活密鑰的規(guī)則的加密文件還包括用于確認每個激活密鑰的、預(yù)先創(chuàng)建的規(guī)則,使得不必修改定義規(guī)則的文件和用于執(zhí)行該規(guī)則的代碼便可實現(xiàn)新的激活密鑰。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),還包括用于將標(biāo)識激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件轉(zhuǎn)換為標(biāo)識激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的加密文件的代碼。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中,規(guī)則模板文件還包括已知規(guī)則模板文件和定制規(guī)則模板文件。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中,規(guī)則模板文件還包括用于確認激活密鑰的算法。
優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中,用于確認激活密鑰的算法僅開發(fā)一次。
在本發(fā)明的另 一 實施例中,提供了 一種提供用于數(shù)字內(nèi)容的功能的激活密鑰的方法。所述方法包括提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件;提供定義用于確認每個激活密鑰的規(guī)則的非加密文件;提供在執(zhí)行適于確認每個激活密鑰的規(guī)則時使用的代碼指令的文件;以及至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件進行加密。
在本發(fā)明的另 一實施例中,提供了 一種提供用于數(shù)字內(nèi)容的功能的激活密鑰的方法。所述方法包括步驟提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)貝'J的非加密文件;提供定義用于確認每個激活密鑰的規(guī)則的非加密文件;提供在執(zhí)行適于確認每個激活密鑰的規(guī)則時使用的代碼指令的文件;以及至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件進行加密。
優(yōu)選地,本發(fā)明提供了一種方法,其中提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則
的非加密文件還包括提供包括以下內(nèi)容的平面文件激活密鑰的列表,激活密鑰的描述,關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個激活密鑰的確認規(guī)則的指示。
優(yōu)選地,本發(fā)明提供了一種方法,其中至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件進行加密還包括對定義規(guī)則的文件以及代碼指令的文件進行加密。
優(yōu)選地,本發(fā)明提供了一種方法,其中,提供定義用于確認每個激活密鑰的規(guī)則的文件還包括預(yù)先確定確認每個激活密鑰的規(guī)
現(xiàn)新的激活密鑰。
優(yōu)選地,本發(fā)明提供了一種方法,還包括提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件與標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的文件的二進制加密版本之間進行轉(zhuǎn)換的代碼。
優(yōu)選地,本發(fā)明提供了一種方法,其中,提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個激活密鑰的規(guī)則的非加密文件與二進制加密版本之間進行轉(zhuǎn)換的代碼還包括僅編寫該用于轉(zhuǎn)換的代碼一次。
在另 一 實施例中,本發(fā)明提供了 一種可加載到數(shù)字計算機內(nèi)存中的計算機程序產(chǎn)品,包括軟件代碼部分,用于當(dāng)所述產(chǎn)品在計算機上運行時實現(xiàn)如上所述的本發(fā)明。
描述本發(fā)明的實施例的特征的這些和各種其他優(yōu)點和新特性用此處所附權(quán)利要求中的特殊性指出并形成其一部分。但是,為了更好地理解本發(fā)明的實施例、其優(yōu)點以及通過其使用獲得的目的,應(yīng)該參考形成這里另 一部分的附圖以及所附的描述內(nèi)容,其中示出和 描述了本發(fā)明的特定實施例。
現(xiàn)在將參考附圖僅通過舉例說明本發(fā)明的實施例,其中
圖1示出了根據(jù)本發(fā)明優(yōu)選實施例的系統(tǒng);
圖2示出了根據(jù)本發(fā)明優(yōu)選實施例的用于改變和添加用于數(shù)字 內(nèi)容的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的系統(tǒng);
圖3示出了根據(jù)本發(fā)明優(yōu)選實施例的激活密鑰確認模板文件;
圖4a-圖b示出了為根據(jù)本發(fā)明優(yōu)選實施例的用于標(biāo)識確認激活 密鑰的算法的規(guī)則模板文件;
圖5示出了根據(jù)本發(fā)明優(yōu)選實施例的激活方法文件;
圖6是根據(jù)本發(fā)明優(yōu)選實施例的用于改變和添加用于數(shù)字內(nèi)容 的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的方法的流程 圖7示出了根據(jù)本發(fā)明優(yōu)選實施例的改變激活密鑰確認模板文 件的示例;
圖8示出了根據(jù)本發(fā)明優(yōu)選實施例的利用新的定制確認規(guī)則改 變激活密鑰確認模板文件的示例。
具體實施例方式
在對實施例的下文描述中將參考形成其一部分的附圖,其中通
其他實施例,因為可以進行結(jié)構(gòu)上的改變而不脫離本發(fā)明實施例的 范圍。
本發(fā)明的實施例提供了 一種用于改變和添加用于數(shù)字內(nèi)容的功 能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的方法和設(shè)備。二進 制加密模板文件被用來確認激活密鑰類型。二進制加密模板文件防 止未授權(quán)的用戶訪問和改變確認模板文件。二進制加密規(guī)則模板文件還被用來指示檢查的功能,使得在需要添加新的檢驗方法時不必 編寫代碼。提供二進制加密激活方法文件,用以指示代碼如何對激 活密鑰進行激活。
圖1示出了根據(jù)本發(fā)明實施例的系統(tǒng)100。本發(fā)明的實施例可采
個優(yōu)選實施例中,本發(fā)明實現(xiàn)在軟件中,包括但不限于固件、駐留 軟件、微碼等。而且,本發(fā)明的實施例可采用計算機可用或計算機
可讀介質(zhì)168可訪問的計算機程序產(chǎn)品190的形式,提供被計算機 或任何指令執(zhí)行系統(tǒng)使用或與其一起使用的程序代碼。
為了此描述的目的,計算才幾可用或計算機可讀介質(zhì)168可以是 任何可包含、存儲、傳遞、傳播或傳輸被指令執(zhí)行系統(tǒng)、裝置或設(shè) 備使用或與其一起使用的程序的裝置。介質(zhì)168可以是電子的、磁 的、光的、電磁的、紅外的或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播 介質(zhì)。計算機可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可 移除計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、 硬磁盤和光盤。當(dāng)前光盤的示例包括壓縮盤-只讀存儲器(CD-ROM )、 壓縮盤-讀/寫(CD-R/W)和DVD。
適合存儲和/或執(zhí)行程序代碼的系統(tǒng)包括通過系統(tǒng)總線120直接 或間接耦合到存儲器元件192的至少一個處理器196。存儲器元件 192可包括在程序代碼實際執(zhí)行期間使用的局部存儲器、大容量存儲 和提供對至少 一些程序代碼的暫時存儲以減少在執(zhí)行期間必須從大 容量存儲檢索代碼的次數(shù)的高速緩沖存儲器。
輸入/輸出或1/0設(shè)備130 (包括但不限于,鍵盤、顯示器、點擊 設(shè)備等)可直接地或通過中間1/0控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器 150也可耦合到系統(tǒng)以使系統(tǒng)能耦合到其他系統(tǒng)。
因此,計算機程序190包括指令,當(dāng)該指令被圖1的系統(tǒng)100 讀和執(zhí)行時,使系統(tǒng)100完成執(zhí)行本發(fā)明的步驟或元件所需的步驟。
用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不 改變和 重編譯該數(shù)字內(nèi)容的本發(fā)明的實施例包括分離的加密文件。二進制
13加密確認模板文件可用于確認特定的激活密鑰類型。二進制加密規(guī) 則模板文件指示檢查功能,使得在需要添加新的檢驗方法時不必編 寫代碼。而且,使用二進制加密激活方法文件來指示代碼如何對激 活密鑰進行激活。
在創(chuàng)建激活密鑰確認模板文件時,確定文件所需的參數(shù)和屬性。 激活密鑰確認模板文件標(biāo)識什么激活密鑰類型是有效的,以及什么 標(biāo)識符與每個密鑰類型相關(guān)聯(lián)。激活密鑰確認模板文件還標(biāo)識明P些 密鑰類型是未來候選但是尚不被允許的。相同的密鑰類型編號將被 加密在激活密鑰中,使得激活密鑰可以與確認模板文件中的密鑰類 型號相關(guān)聯(lián)。
圖2示出了根據(jù)本發(fā)明實施例的用于改變和添加用于數(shù)字內(nèi)容 的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的系統(tǒng)200 。處理 器210訪問激活密鑰確認模板文件220,以標(biāo)識與所提供的激活密鑰 212相關(guān)聯(lián)的參數(shù)和屬性。激活密鑰確認模板文件220可以提供激活 密鑰的描述、關(guān)于所提供的激活密鑰是否有效的指示以及與所提供 的激活密鑰相關(guān)聯(lián)的確認規(guī)則的標(biāo)識等。處理器210繼而可以檢驗 規(guī)則模板文件230,以標(biāo)識用于執(zhí)行確認提供的激活密鑰212的動 作。規(guī)則模板文件230可以包括已知規(guī)則模板文件232和定制模板 文件234。 一旦標(biāo)識了用于確認所提供的激活密鑰212的激活規(guī)則, 便訪問激活方法文件240,以執(zhí)行與處理器在檢驗規(guī)則模板文件230 時所標(biāo)識的確認規(guī)則相關(guān)聯(lián)的過程。
圖3示出了根據(jù)本發(fā)明實施例的激活密鑰確認模板文件300。例 如,激活密鑰類型310可以是Oxl 312、 0x2 314、 0x3 316和0x4 318。 但是,可能僅Oxl 312和0x2 314是被允許的密鑰,而0x3 316和0x4 318將在未來被允許。為每個激活密鑰312-318提供激活密鑰描述 320。所以在這種情況下,0x1312、 0x2 314、 0x3 316和0x4 318可 被添加到確認模板文件300,以及僅為Oxl 312和0x2 314標(biāo)記有效 位330。激活密鑰之一將具有在其中加密的Oxl 312,而另一激活密 鑰將具有在其中加密的Oxl 314。并非每個字段都必須在確認模板文件中具有值, 一些可以是空白的,而模板文件仍將工作。模板文件
300的ASCII版本可以轉(zhuǎn)換為二進制加密版本,從而為激活密鑰確認 模板文件300提供唯一的安全等級。
對于每個激活密鑰類型,例如Oxl 312、 0x2 314、 0x3 316和0x4 318,激活密鑰確認模板文件300包括用于每個確認規(guī)則340-370的 列,其可被標(biāo)記以標(biāo)識特定的確認身見則是否與激活密鑰有關(guān)。可以 根據(jù)需要向激活密鑰確認模板文件300添加附加信息。某些附加信 息(雖然未在圖3中示出)可以包括保存已安裝的激活密鑰的二 進制加密文件中的激活密鑰的開始字節(jié),或二進制加密已安裝激活 密鑰文件中的結(jié)束字節(jié)。
模板文件的ASCII版本的這個示例以表格格式示出,從而使其 較為易讀,但是模板文件不會物理地具有表格格式中的行。在圖3 中,激活密鑰類型Oxl 312和0x2 314是列330中指示的有效激活密 鑰類型,而激活密鑰類型0x3 316和0x4 318在列330中當(dāng)前未標(biāo)記 為有效。但是,未來可改變0x1312、 0x2 314、 0x3 316和0x4 318 的有效性。激活密鑰類型Oxl 312和0x2 314二者示出標(biāo)記342、344, 其指示激活規(guī)則l用于確認。激活密鑰類型0x2 314示出標(biāo)記352, 其指示確認規(guī)則2也用于確認激活密鑰類型0x2 314,而激活密鑰類 型Oxl 312將不使用確認規(guī)則2 350。用于確認規(guī)則3 360的列包括 標(biāo)記362、 364,其指示確認規(guī)則3用于確認激活密鑰類型Oxl 312 和0x2 314。激活密鑰類型0x2 314示出標(biāo)記372,其指示確認規(guī)則4 也用于確認激活密鑰類型0x2 314,而激活密鑰類型Oxl 312將不使 用確{人*見則4 370。
圖4a-圖4b示出了根據(jù)本發(fā)明實施例的標(biāo)識用于確認激活密鑰 的算法的規(guī)則模板文件400。確認規(guī)則被預(yù)先確定,使得代碼不必為 每個未來的激活密鑰類型而修改,或是被添加到規(guī)則模板文件400。 使用確認規(guī)則來檢查該激活密鑰或其上正在安裝該激活密鑰的計算 機系統(tǒng)的特定屬性。
如圖4a-圖4b所示,規(guī)則模板文件400提供關(guān)于什么需要確認的信息。首先開發(fā)規(guī)則模板文件400的ASCII版本。規(guī)則模板文件 的ASCII版本稍后被轉(zhuǎn)換為二進制加密版本,從而為規(guī)則模板文件 400提供安全等級。
如圖4a-圖4b所示,可以提供至少兩類規(guī)則模板文件400。第一 類型提供當(dāng)前已知的規(guī)則410。第二類型的規(guī)則模板文件是未來將確 定或定制的規(guī)則420。 二進制加密已知規(guī)則模板文件410提供確認規(guī) 則編號412和確認規(guī)則描述414。隨著新規(guī)則纟皮開發(fā),二進制加密定 制規(guī)則模板文件420提供確認規(guī)則編號422和規(guī)則確認信息。定制 規(guī)則確認模板文件420包括確認規(guī)則的描述424。
圖4b中的定制規(guī)則模板文件420示出了定制確認規(guī)則5 440的 參數(shù)。為定制確認規(guī)則5 440提供了規(guī)則描述424。在圖4b中,定 制確認規(guī)則5 440的規(guī)則描述424是"模型123" 442。定制規(guī)則模 板文件420標(biāo)識要檢查的項426。在圖4b中,定制確認規(guī)則5 440 的要檢查的項426是"模型"444。定制規(guī)則模板文件420還標(biāo)識檢 查值428。在圖4b中,定制確認規(guī)則5 440的檢查值428是"123" 446。定制規(guī)則模板文件420繼而標(biāo)識當(dāng)動作通過檢查時要執(zhí)行的動 作430。在圖4b中,當(dāng)動作通過檢查時要執(zhí)行的動作430是顯示"確 認已通過"448。定制規(guī)則模板文件420還標(biāo)識當(dāng)動作失敗時要執(zhí)行 的動作432。在圖4b中,當(dāng)動作通過檢查時要執(zhí)行的動作432是顯 示"確認錯誤-錯的模型"450。
定制規(guī)則模板文件420還可包括不同的或附加的參數(shù)、檢查值、 描述、資源管理器動作、調(diào)用函數(shù)、要調(diào)用的可執(zhí)行程序、要檢查 以確定確認過程是通過還是失敗的事項等等。傳遞給函數(shù)的參數(shù)也 可以在定制規(guī)則確認模板文件420中提供。此外,來自資源管理器、 函數(shù)調(diào)用、可執(zhí)行程序或檢查的預(yù)期返回碼可以在定制規(guī)則模板文 件420中提供。例如,大多數(shù)時間返回碼可以是O,但是在某些情況 下,它可以是2。
執(zhí)行檢查的 一 個附加示例是檢查激活密鑰的長度,并且該長度 將在模板中提供,例如16字節(jié)。確認規(guī)則和參數(shù)的其他示例可以包括檢查是否安裝了默認激活碼,激活碼對于其上將安裝它的硬件 序列號而言是否正確,激活密鑰對于固定的塊、CKD或二者是否有 效,是否達到了最大容量等等。但是,本領(lǐng)域技術(shù)人員將會認識到, 本發(fā)明的實施例不是要限制于此處給出的示例。相反,本領(lǐng)域技術(shù) 人員將會認識到,可以實現(xiàn)其他規(guī)則、參數(shù)、例程、可執(zhí)行程序、 屬性等,而不脫離本發(fā)明的實施例的范圍。
圖5示出了根據(jù)本發(fā)明實施例的激活方法文件500。例如函數(shù)、 命令、可執(zhí)行程序的代碼510可以在激活方法文件中提供,以允許 激活與所提供的激活密鑰相關(guān)聯(lián)的功能。代碼510還在激活密鑰確 認規(guī)則的平面文件版本與相同文件的二進制加密版本之間進行轉(zhuǎn) 換。對文件進行轉(zhuǎn)換的已編譯可執(zhí)行程序通常將只必須寫一次,且 不必為未來的激活密鑰類型而修改。代碼510將被修改一次,以便 能夠讀取和解密激活密鑰確認模板文件,并基于規(guī)則模板文件中的 規(guī)則來執(zhí)行必需的確認。
創(chuàng)建激活方法文件500的ASCII版本,其指示代碼進行什么操 作來激活激活密鑰。在圖5中,激活方法文件500的ASCII版本指 示要調(diào)用哪個函數(shù)、命令或可執(zhí)行程序510來激活激活密鑰。激活 方法文件500還包括列520,其提供用于指示是否需要同時發(fā)送所有 激活密鑰或者是否 一次僅發(fā)送激活密鑰之一的信息。激活方法文件 500還包括列530,其標(biāo)識要發(fā)送的參數(shù),例如,完整的激活密鑰、 激活密鑰類型編號、激活密鑰的容量、用于計算激活密鑰容量的值 等等。
圖6是根據(jù)本發(fā)明實施例的用于改變和添加用于數(shù)字內(nèi)容的功 能的激活密鑰而不必改變和重編二澤該數(shù)字內(nèi)容的方法的流程圖600。 在圖6中,確定激活密鑰的參數(shù)和/或?qū)傩?610)。標(biāo)識用于確認激 活密鑰的算法,并且創(chuàng)建激活密鑰確認模板文件的ASCII版本(620 )。 提供用于將激活密鑰確認模板文件的ASCII版本轉(zhuǎn)換為二進制加密 版本以及用于確認激活密鑰的代碼(630)。創(chuàng)建已知規(guī)則模板文件 的ASCII版本,并將其轉(zhuǎn)換為二進制加密已知規(guī)則模板文件(640 )。創(chuàng)建定制規(guī)則模板文件的ASCII版本,并將其轉(zhuǎn)換為二進制加密定 制規(guī)則模板文件(650)。提供激活方法文件的ASCII版本,并將其 轉(zhuǎn)換為二進制加密激活方法文件(660)。進行是否需要新的激活密 鑰類型的決策(670)。如果不需要(674),過程結(jié)束(698 )。如 果需要(672),則修改ASCII激活密鑰確認模板文件,并將其轉(zhuǎn)換 為二進制加密激活密鑰確認模板文件(680)。繼而做出是否需要新 的定制確認規(guī)則的決策(690 )。如果不需要(692 ),過程結(jié)束(698 )。 如果需要(694),則修改定制規(guī)則模板文件的ASCII版本,并將其 轉(zhuǎn)換為二進制加密定制規(guī)則模板文件(696 )。之后,過程結(jié)束(698 )。 圖7示出了根據(jù)本發(fā)明實施例的改變激活密鑰確認模板文件700 的示例。例如,如果需要在沒有新的定制確認規(guī)則的情況下支持新 的激活密鑰類型0x4 718,則針對激活密鑰類型/編號為0x4 718的行 更新激活密鑰確認模板文件700的ASCII版本中的激活密鑰描述。 針對激活密鑰類型/編號為0x4 718的行,在激活密鑰確認模板文件 700的ASCII版本中,將有效列730改變?yōu)?X"。針對激活密鑰類 型0x4 718,將"X"放置在確認模板文件700的ASCII版本中的適 當(dāng)?shù)拇_認規(guī)則列740、 770中。對于這個具體示例,"X"被放置在 密鑰類型編號為0x4 718的行、確認規(guī)則1 740和確認規(guī)則4 770的 列中。然后,可以執(zhí)行用于將激活密鑰確認模板文件的ASCII版本 轉(zhuǎn)換為二進制、加密版本的程序。
圖8示出了根據(jù)本發(fā)明實施例的利用新的定制確認規(guī)則880來 改變激活密鑰確認模板文件800的示例。例如,如果需要利用新的 定制確認規(guī)則880來支持新的激活密鑰類型0x4 818,則針對0x4 818 激活密鑰類型/編號的行更新激活密鑰確認模板文件800的ASCII版 本中的激活密鑰描述。針對0x4 818激活密鑰類型/編號的行,在激 活密鑰確認模板文件800的ASCII版本中,將有效列830更新為"X"。 在激活密鑰確認模板文件的ASCII版本中創(chuàng)建新的列,用于確認規(guī) 則5 880。針對激活密鑰類型0x4 818,將"X" 846、 874、 882放置 在確認模板文件800的ASCII版本中的適當(dāng)確認規(guī)則列中。對于這個具體示例,"x" 846、 874、 882被放置在密鑰類型/編號0x4 818 的行中、且分別在確認規(guī)則1 840、確認規(guī)則4 870和確認規(guī)則5 880 的列中。執(zhí)行用于將激活密鑰確認模板文件800的ASCII版本轉(zhuǎn)換 為二進制加密版本的程序。
修改圖4b所示的定制規(guī)則確認文件420的ASCII版本,使其具 有用于確認規(guī)則5 440的行。圖4b示出了被修改為具有確認規(guī)則5 440的描述"模型=123"442的定制規(guī)則確認文件420的ASCII版本。 定制規(guī)則確認文件420的ASCII版本被修改為具有針對確認規(guī)則5 440的要檢查項"模型"444。定制規(guī)則確認文件420的ASCII版本 被修改為具有用于確認規(guī)則5 440的檢查值"123" 466。如果對于確 認規(guī)則5 440的確認是良好的430,則將定制規(guī)則確認文件420的 ASCII版本修改為使動作"確認通過"448運行。如果對于確認規(guī)則 5 440的確認是不良的432,則將定制規(guī)則確認文件420的ASCII版 本修改為使動作"顯示確認錯誤一錯的模型"450運行。最后,執(zhí)行 用于將定制規(guī)則確認文件420的ASCII版本轉(zhuǎn)換為二進制加密版本 的程序。
因此,本發(fā)明的實施例提供了用于改變和添加用于數(shù)字內(nèi)容的 功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的方法和裝置。使 用二進制加密模板文件確認激活密鑰類型。二進制加密模板文件防 止未授權(quán)的用戶訪問和改變確認模板文件。還使用二進制加密規(guī)則 模板文件指明檢查的功能使得當(dāng)需要添加新的檢查方法時不必寫代 碼。提供二進制加密激活方法文件以指示代碼如何對激活密鑰進行 激活。
本發(fā)明的示范實施例的上述描述是為舉例描述而給出的。不是 要窮舉或?qū)⒈景l(fā)明限制為所公開的精確形式。在以上精神的啟發(fā)下, 很多修改和變更是可能的。本發(fā)明的范圍不是要限制于此詳細描述, 而是由此處所附的權(quán)利要求所限制。
權(quán)利要求
1.一種處理設(shè)備可讀的程序存儲設(shè)備,包括所述處理設(shè)備可執(zhí)行的程序指令,用以執(zhí)行提供用于數(shù)字內(nèi)容的功能的激活密鑰的操作,所述操作包括提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密鑰的規(guī)則的非加密文件;提供定義用于確認每個所述激活密鑰的規(guī)則的非加密文件;提供在執(zhí)行適于確認每個所述激活密鑰的所述規(guī)則時使用的代碼指令的文件;以及至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密鑰的規(guī)則的所述非加密文件進行加密。
2. 根據(jù)權(quán)利要求1所述的程序存儲設(shè)備,其中所述提供標(biāo)識用 于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述 激活密鑰的規(guī)則的非加密文件還包括提供包括以下各項的平面文件激活密鑰的列表,激活密鑰的描 述,關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個激活密 鑰的確認規(guī)則的指示。
3. 根據(jù)權(quán)利要求1所述的程序存儲設(shè)備,其中至少對標(biāo)識用于 實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激 活密鑰的規(guī)則的所述非加密文件進行加密還包括對定義所述規(guī)則的文件以及所述代碼指令的文件進行加密。
4. 根據(jù)權(quán)利要求1所述的程序存儲設(shè)備,其中所述提供定義用 于確認每個所述激活密鑰的規(guī)則的文件還包括預(yù)先確定確認每個所述激活密鑰的所述規(guī)則,使得不必修改定義鑰。
5. 根據(jù)權(quán)利要求1所述的程序存儲設(shè)備,還包括提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個所述激活密鑰的規(guī)則的非加密文件與標(biāo)識用于實現(xiàn) 數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個所述激活密 鑰的規(guī)則的文件的二進制加密版本之間進行轉(zhuǎn)換的代碼。
6. 根據(jù)權(quán)利要求1所述的程序存儲設(shè)備,其中所述提供用于在 標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每 個所述激活密鑰的規(guī)則的非加密文件與二進制加密版本之間進行轉(zhuǎn) 換的代碼還包括僅編寫用于轉(zhuǎn)換的所述代碼 一 次。
7. —種用于提供用于數(shù)字內(nèi)容的功能的激活密鑰的系統(tǒng),包括 標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密鑰的規(guī)則的加密文件;定義用于確認每個激活密鑰的規(guī)則的加密文件;以及 在執(zhí)行適于確認每個所述激活密鑰的所述規(guī)則時使用的代碼指令的文件。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述標(biāo)識用于實現(xiàn)數(shù)字內(nèi) 容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密鑰的規(guī) 則的加密文件還包括包含以下內(nèi)容的文件激活密鑰列表,激活密 鑰的描述,關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個 激活密鑰的確認規(guī)則的指示。
9. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中定義用于確認每個所述激 活密鑰的所述纟見則的所述加密文件還包括用于確認每個所述激活密鑰的、預(yù)先創(chuàng)建的規(guī)則,使得不必修改密鑰。
10. 根據(jù)權(quán)利要求7所述的系統(tǒng),還包括用于將標(biāo)識激活密鑰且標(biāo)識適于確認每個所述激活密鑰的所述 規(guī)則的非加密文件轉(zhuǎn)換為標(biāo)識激活密鑰且標(biāo)識適于確認每個所述激 活密鑰的所述規(guī)則的所述加密文件的代碼。
11. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述規(guī)則模板文件還包括已知規(guī)則模板文件和定制規(guī)則模板文件。
12. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述規(guī)則模板文件還包括 用于確認激活密鑰的算法。
13. 根據(jù)權(quán)利要求7所述的系統(tǒng),其中用于確認激活密鑰的所述 算法僅開發(fā)一次。
14. 一種用于提供用于數(shù)字內(nèi)容的功能的激活密鑰的方法,包括 提供標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密鑰的規(guī)則的非加密文件;提供定義用于確認每個所述激活密鑰的所述規(guī)則的非加密文件; 提供在執(zhí)行適于確認每個所述激活密鑰的所述規(guī)則時使用的代碼指令的文件;以及至少對標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適 于確認每個所述激活密鑰的規(guī)則的所述非加密文件進行加密。
15. 根據(jù)權(quán)利要求14所述的方法,其中所述提供標(biāo)識用于實現(xiàn) 數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活密 鑰的規(guī)則的非加密文件還包括提供包含如下內(nèi)容的平面文件激活密鑰列表,激活密鑰的描述, 關(guān)于激活密鑰是否有效的指示,以及關(guān)于用于驗證每個激活密鑰的 確認規(guī)則的指示。
16. 根據(jù)權(quán)利要求14所述的方法,其中所述至少對標(biāo)識用于實 現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰,且標(biāo)識適于確認每個所述激活 密鑰的規(guī)則的所述非加密文件進行加密還包括對定義所述規(guī)則的文件以及所述代碼指令的文件進行加密。
17. 根據(jù)權(quán)利要求14所述的方法,其中所述提供定義用于確認每個所述激活密鑰的所述規(guī)則的文件還包括預(yù)先確定確認每個所述激活密鑰的所述規(guī)則,使得不必修改定義 , HM始^ ^f車知ffl千;Nl.4千P斤這賴,貝i鑰。
18. 根據(jù)權(quán)利要求14所述的方法,還包括提供用于在標(biāo)識用于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo) 識適于確認每個所述激活密鑰的規(guī)則的非加密文件與標(biāo)識用于實現(xiàn) 數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個所述激活密 鑰的所述規(guī)則的文件的二進制加密版本之間進行轉(zhuǎn)換的代碼。
19. 根據(jù)權(quán)利要求14所述的方法,其中所述提供用于在標(biāo)識用 于實現(xiàn)數(shù)字內(nèi)容的相關(guān)功能的激活密鑰、且標(biāo)識適于確認每個所述 激活密鑰的規(guī)則的所述非加密文件與二進制加密版本之間進行轉(zhuǎn)換 的代碼還包括僅編寫用于轉(zhuǎn)換的所述代碼一次。
20. —種可加載到數(shù)字計算機內(nèi)存中的計算機程序產(chǎn)品,包括軟 件代碼部分,用于當(dāng)所述產(chǎn)品在計算機上運行時實現(xiàn)根據(jù)權(quán)利要求 14至19所述的發(fā)明。
全文摘要
一種用于改變和添加用于數(shù)字內(nèi)容的功能的激活密鑰而不必改變和重編譯該數(shù)字內(nèi)容的方法和裝置。用于確認激活密鑰的規(guī)則、提供在執(zhí)行用于確認激活密鑰的規(guī)則時使用的指令的代碼以及用于標(biāo)識可能的激活密鑰的模板被分離并獨立保護,其中所述密鑰是當(dāng)前有效的,并且確認與每個當(dāng)前有效的激活密鑰相關(guān)聯(lián)的規(guī)則。
文檔編號G06F21/22GK101681415SQ200880016028
公開日2010年3月24日 申請日期2008年5月27日 優(yōu)先權(quán)日2007年6月18日
發(fā)明者B·R·莫德西特 申請人:國際商業(yè)機器公司