專利名稱:一種主板的保護(hù)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)領(lǐng)域,尤其涉及一種主板的保護(hù)方法和裝置。
背景技術(shù):
主板廠商在向客戶提供主板時,一般都需要同時提供適用于該主板的軟件,以使 客戶可以采用提供的軟件對主板廠商提供的主板進(jìn)行試用或測試。由于開發(fā)適用于該主板 的軟件也給主板廠商增加了成本,因此,主板廠商一般會提供適用于主板的試用版本的軟 件和完整版本的軟件。其中試用版本的軟件是在軟件功能上相對于完整版本的軟件做了裁 剪得到的。在客戶購買主板前,主板廠商向客戶提供試用版本的軟件,以使客戶可以采用該 試用版本的軟件對主板廠商提供的主板進(jìn)行試用或測試。而當(dāng)客戶購買主板后,向用戶提 供完整版本的軟件。通過這種方式,達(dá)到對主板廠商提供的主板以及開發(fā)的適用于該主板 的軟件進(jìn)行保護(hù)的目的。但是由于試用版本的軟件在軟件功能上相對于完整版本的軟件做了裁剪,因此, 其功能沒有完整版本的軟件的功能齊全,不便于用戶對主板進(jìn)行試用和測試。同時由于沒 有對主板以及試用版本的軟件進(jìn)行任何保護(hù),因此,容易被客戶破解,安全性低,且可能損 害主板廠商的利益。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供一種主板的保護(hù)方法,旨在解決現(xiàn)有的主板保護(hù)方 法安全度低、用戶使用不便的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種主板的保護(hù)方法,所述方法包括下述步驟A、將主板的使用限制條件存儲至主板上不對客戶開放的密鑰空間;B、在程序引導(dǎo)階段,從主板的密鑰空間中讀取主板的使用限制條件;C、監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的使用限制條件時,系統(tǒng) 掛起,限制對主板的繼續(xù)使用。本發(fā)明實施例的另一目的在于提供一種主板的保護(hù)裝置,其特征在于,所述裝置 包括密鑰存儲單元,用于存儲主板的使用限制條件,所述主板的使用限制條件為使用 次數(shù),時間域、系統(tǒng)時鐘修改次數(shù)、軟件版本中的一個或多個組合,所述密鑰存儲單元為主 板上不對客戶開放的密鑰空間;密鑰讀取單元,用于在程序引導(dǎo)階段,從主板中的所述密鑰存儲單元中讀取主板 的使用限制條件;主板使用限制單元,用于監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的 使用限制條件時,系統(tǒng)掛起,限制對主板的繼續(xù)使用。在本發(fā)明實施例中,預(yù)先將主板的使用限制條件存儲至主板上不對客戶開放的密 鑰空間,在程序引導(dǎo)階段,從該密鑰空間中讀取主板的使用限制條件,并在主板的使用情況達(dá)到主板的使用限制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用,從而不僅可以提供完整 版本的軟件給客戶,以便客戶對主板進(jìn)行測試和試用,而且由于對主板的使用進(jìn)行了限制, 從而提高了主板的安全性,保證了主板廠商的利益。
圖1是本發(fā)明實施例提供的主板保護(hù)方法的實現(xiàn)流程圖;圖2是本發(fā)明實施例提供的圖1中的步驟S103的具體實現(xiàn)流程圖;圖3是本發(fā)明另一實施例提供的圖1中的步驟S103的具體實現(xiàn)流程圖;圖4是本發(fā)明實施例提供的主板保護(hù)裝置的結(jié)構(gòu)框圖;圖5是本發(fā)明實施例提供的圖3中的主板使用限制單元的結(jié)構(gòu)框圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。在本發(fā)明實施例中,預(yù)先將主板的使用限制條件存儲至主板上不對客戶開放的密 鑰空間,在程序引導(dǎo)階段,從該密鑰空間中讀取主板的使用限制條件,并在主板的使用情況 達(dá)到主板的使用限制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用,從而不僅可以提供完整 版本的軟件給客戶,以便客戶對主板進(jìn)行測試和試用,而且由于對主板的使用進(jìn)行了限制, 從而保證了主板廠商的利益。圖1示出了本發(fā)明實施例提供的主板保護(hù)方法的實現(xiàn)流程,詳述如下在步驟SlOl中,將主板的使用限制條件存儲至主板上不對客戶開放的密鑰空間。一般主板上均存在有不向客戶開放的硬件存儲空間,如NOR Flash、NandFlash, CF 卡、SD 卡、電可擦可編程只讀存儲器(Electrically ErasableProgrammable Read-Only Memory,EEPR0M)、串行外設(shè)接口 Gerial PeripheraUnterface,SIP) Flash 等。在本發(fā)明 實施例中,將主板上存在的不向客戶開放的硬件存儲空間中的一種作為密鑰空間,用于存 儲主板的使用限制條件。如將用于存放程序引導(dǎo)文件(BootLoader文件)的NOR Flash作 為密鑰空間。為了避免主板的使用限制條件與BootLoader文件發(fā)生沖突,在本發(fā)明實施例 中,將用于存放程序引導(dǎo)文件(BootLoader文件)的NOR Flash的最后一個存儲扇區(qū)作為 密鑰空間,存儲主板的使用限制條件。其中主板的使用限制條件為使用次數(shù)(times)。在本發(fā)明另一實施例中,主板的使 用限制條件還包括時間域、系統(tǒng)時鐘修改次數(shù)(err0r_C0imt)、軟件版本(version)中的一 個或多個組合。其中使用次數(shù)為主板的允許使用次數(shù)或者主板的實際累計使用次數(shù)。時間 域是指允許用戶使用該主板的時間段,可以采用任意時間格式,如yy-mm-dd-hh等格式。系 統(tǒng)時鐘修改次數(shù)為允許對主板的系統(tǒng)時鐘進(jìn)行修改的次數(shù)或者系統(tǒng)時鐘的實際累計修改 次數(shù)。軟件版本是指適用于該主板的軟件的版本。在本發(fā)明另一實施例中,該主板的使用 限制條件還包括設(shè)置標(biāo)識,該設(shè)置標(biāo)識用于標(biāo)識主板的使用限制條件是否被設(shè)置。在具體實現(xiàn)時,可以定義主板的使用限制條件的數(shù)據(jù)結(jié)構(gòu)(也稱為密鑰數(shù)據(jù)結(jié) 構(gòu)),并將該密鑰數(shù)據(jù)結(jié)構(gòu)存儲至主板上的密鑰空間。其中密鑰數(shù)據(jù)結(jié)構(gòu)舉例說明如下
struct CK_info
//密鑰數(shù)據(jù)結(jié)構(gòu)unsigned char setted ; unsigned char version ;unsigned char timesunsigned char yy unsigned char mmunsigned char dd unsigned char hh unsigned char error_count;};其中setted參數(shù)用于標(biāo)識是否設(shè)置了主板的使用限制條件,如果設(shè)置了,setted 參數(shù)的值為1,否則為0。version參數(shù)用于指示適用于該主板的軟件的版本。times參數(shù) 用于指示主板的允許使用次數(shù)或者主板的實際累計使用次數(shù)。yy、mm、dd、hh參數(shù)共同用于 指示時間域。err0r_C0Unt參數(shù)用于指示允許對主板的系統(tǒng)時鐘進(jìn)行修改的次數(shù)或者系統(tǒng) 時鐘的實際累計修改次數(shù)。其中步驟SlOl是本發(fā)明實施例的準(zhǔn)備步驟,不一定在每次對主板進(jìn)行保護(hù)時都 執(zhí)行。在步驟S102中,在程序引導(dǎo)階段,從主板的密鑰空間中讀取主板的使用限制條 件。在本發(fā)明實施例中,可以通過密鑰讀取函數(shù),如Get_CKJnfo(structCKJnfo*ck_ info)函數(shù),從主板的密鑰空間中讀取主板的使用限制條件。由于主板的存儲介質(zhì)可能各不 相同,因此密鑰讀取函數(shù)的具體實現(xiàn)方法也可能不盡相同。由于根據(jù)主板的存儲介質(zhì)的不 同,密鑰讀取函數(shù)的具體實現(xiàn)方法屬于現(xiàn)有技術(shù),在此舉例說明如下,但不以該舉例說明為 限。當(dāng)在步驟SlOl中將主板的使用限制條件以數(shù)據(jù)結(jié)構(gòu)(如名稱為CKjnfo的密鑰 數(shù)據(jù)結(jié)構(gòu))的方式存儲在主板的密鑰空間時,則從主板的密鑰空間中讀取CK_info的密鑰 數(shù)據(jù)結(jié)構(gòu)到內(nèi)存。如果使用NOR Flash存儲主板的使用限制條件,其代碼舉例說明如下int Get_CK_Info(struct CK_info*ck_info){int i ;FLASH_BYTE_SIZE *buf0 = (volatile FLASH_BYTE_SIZE(base_addr+BIOS_SIZE-sizeof(struct CK_info));FLASH_BYTE_SIZE*bufl = (FLASH_BYTE_SIZE*)ck_info ;for(i = 0 ;i < sizeof(struct CK_info) ;i++){ * bufl++ =* bufO++ ;ndelay(120);}
printkC Get_CK_Info % χ, % χ, % d, % d, % d, % d, % d\n",ck_info- > setted, ck_info- > version, ck_ info- > times,ck_info- > yy, ck_info- > mm, ck_info- > dd, ck_ info- > hh);return 0 ;}首先得到存放密鑰的地址,然后從該地址中取出CKjnfo結(jié)構(gòu)體,將其賦給ck_ info指針。其中FLASH_BYTE_SUE 為訪問該 Nor Flash 的端 口大小,一般是 unsignedchar 或 者unsigned short, base_addr表示該Flash在主板中的地址。BI0S_SIZE表示該Flash芯 片的容量。在步驟S103中,監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的使用限制 條件時,系統(tǒng)掛起,限制對主板的繼續(xù)使用。在本發(fā)明實施例中,根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使 用次數(shù)是否超過預(yù)設(shè)的允許使用次數(shù),并在主板的實際使用次數(shù)超過預(yù)設(shè)的允許使用次數(shù) 時,系統(tǒng)掛起,停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。當(dāng)主板的使用限制條件中的使用次數(shù)為主板的允許使用次數(shù)時,上述步驟具體如 下A、判斷從主板的密鑰空間中讀取的使用次數(shù)(times)是否為0,即判斷CK_info. times ==0 ?,如果是,系統(tǒng)掛起,停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用,否則,執(zhí) 行步驟B;B、將從主板的密鑰空間中讀取的使用次數(shù)(times)減1,即設(shè)置CK_info. times = CK_info. times-1,并將主板的使用限制條件重新寫入主板的密鑰空間。當(dāng)主板的使用限制條件中的使用次數(shù)為主板的實際累計使用次數(shù)時,上述步驟具 體如下A’、將從主板的密鑰空間中讀取的使用次數(shù)(times)加1,即設(shè)置CK_info. times =CK_info. times+1 ;B’、判斷經(jīng)步驟Α’處理后的使用次數(shù)(times)是否大于預(yù)設(shè)的閾值,如果是,系統(tǒng) 掛起,停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用,否則,將主板的使用限制條件重新寫 入主板的密鑰空間。其中預(yù)設(shè)的閾值是預(yù)設(shè)的主板的允許使用次數(shù),即如果預(yù)設(shè)的閾值為 5,則判斷CK_info. times > 5 ?,系統(tǒng)掛起,停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用, 否則,將主板的使用限制條件重新寫入主板的密鑰空間。一般情況下,主板在出廠時,均會設(shè)置好主板的密鑰空間存儲的主板的使用限制 條件,這種情況下,從主板的密鑰空間中讀取的setted參數(shù)一般為已被設(shè)置。但是客戶 在使用主板過程中,可能采用某種方式清除了主板的密鑰空間中存儲的主板的使用限制條 件,此時,從主板的密鑰空間中讀取的setted參數(shù)一般為未被設(shè)置。當(dāng)主板的密鑰空間中 存儲的主板的使用限制條件未被設(shè)置時,可能給本發(fā)明提供的方法造成影響,為了避免該問題,在本發(fā)明的優(yōu)選實施例中,主板的使用限制條件包括使用次數(shù)和設(shè)置標(biāo)識,此時,在 判斷主板的實際使用次數(shù)是否超過預(yù)設(shè)的允許使用次數(shù)前,該方法還包括下述步驟根據(jù)主板的使用限制條件中的設(shè)置標(biāo)識判斷主板的使用限制條件是否被設(shè)置,如 果是,則根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使用次數(shù)是否超過預(yù)設(shè) 的允許使用次數(shù),否則,設(shè)置主板的使用限制條件。在本發(fā)明實施例中,通過判斷讀取的密鑰數(shù)據(jù)結(jié)構(gòu)中的setted參數(shù)是否被設(shè)置 來判斷主板的使用限制條件是否被設(shè)置,如果是,則主板的使用限制條件已被設(shè)置,否則, 主板的使用限制條件未被設(shè)置。在設(shè)置主板的使用限制條件時,可以通過密鑰設(shè)置函數(shù)如Set_CKJnfo (struct CK_Info*ck_info)函數(shù),設(shè)置主板的使用限制條件。由于主板的存儲介質(zhì)可能各不相同,因 此密鑰設(shè)置函數(shù)的具體實現(xiàn)方法也可能不盡相同。由于根據(jù)主板的存儲介質(zhì)的不同,密鑰 設(shè)置函數(shù)的具體實現(xiàn)方法屬于現(xiàn)有技術(shù),在此不再贅述。為了進(jìn)一步提高對主板的保護(hù)力度,提高主板的安全性,在本發(fā)明的另一優(yōu)選實 施例中,主板的使用限制條件包括使用次數(shù)和軟件版本,或者設(shè)置標(biāo)識、使用次數(shù)和軟件版 本,此時,在判斷主板的實際使用次數(shù)是否超過預(yù)設(shè)的允許使用次數(shù)之前或者之后,該方法 還包括下述步驟判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中的軟件版本相符,并 在判定主板當(dāng)前所用的軟件版本與主板的使用限制條件中的軟件版本不符時,系統(tǒng)掛起, 停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。在本發(fā)明實施例中,主板廠商在向客戶提供主板的同時,向客戶提供適用于該主 板的完整版本的軟件,以使客戶可以采用該完整版本的軟件對主板進(jìn)行測試和試用。為 了對主板廠商提供的主板以及適用于該主板的完整版本的軟件進(jìn)行保護(hù),在本發(fā)明實施例 中,一套完整版本的軟件僅適用于同一型號的主板,而且同一型號的主板也只能使用一套 完整版本的軟件。在本發(fā)明另一實施例中,當(dāng)主板中存在時間設(shè)備,且主板的使用限制條件為時間 域時,則步驟S103具體為從主板的時間設(shè)備中讀取當(dāng)前時間,并判斷讀取的當(dāng)前時間是否超過主板的使用 限制條件中的時間域,在判定讀取的當(dāng)前時間超過主板的使用限制條件中的時間域時,系 統(tǒng)掛起,停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。在本發(fā)明的優(yōu)選實施例中,主板的使用限制條件包括設(shè)置標(biāo)識和時間域,此時,在 判斷讀取的當(dāng)前時間是否超過主板的使用限制條件中的時間域之前,該方法還包括下述步 驟判斷主板的使用限制條件是否被設(shè)置,如果是,則判斷讀取的當(dāng)前時間是否超過 主板的使用限制條件中的時間域,否則,設(shè)置主板的使用限制條件。為了進(jìn)一步提高對主板的保護(hù)力度,提高主板的安全性,在本發(fā)明的另一優(yōu)選實 施例中,主板的使用限制條件包括時間域和軟件版本,或者時間域、軟件版本和設(shè)置標(biāo)識, 此時,在判斷讀取的當(dāng)前時間是否超過主板的使用限制條件中的時間域之前或者之后,該 方法還包括下述步驟判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中的軟件版本相符,并在判定主板當(dāng)前所用的軟件版本與主板的使用限制條件中的軟件版本不符時,系統(tǒng)掛起, 停止引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。為了避免用戶無限制的對主板的使用限制 條件中的初始時間進(jìn)行修改,進(jìn)一步提高對主板的保護(hù)力度,在本發(fā)明另一優(yōu)選實施例中, 主板的使用限制條件包括使用次數(shù)和系統(tǒng)時鐘修改次數(shù),或者使用次數(shù)、系統(tǒng)時鐘修改次 數(shù)和軟件版本,或者使用次數(shù)、系統(tǒng)時鐘修改次數(shù)、設(shè)置標(biāo)識和軟件版本,此時,在判定讀取 的當(dāng)前時間未超過主板的使用限制條件中的時間域之后,該方法還包括下述步驟判斷讀取的當(dāng)前時間是否早于主板的使用限制條件中的初始時間,如果否,采用 讀取的當(dāng)前時間更新主板的使用限制條件中的初始時間,并將主板的使用限制條件重新寫 入主板的密鑰空間,如果是,根據(jù)主板的使用限制條件中的系統(tǒng)時鐘修改次數(shù),判斷對主板 的系統(tǒng)時鐘的實際修改次數(shù)是否超過預(yù)設(shè)的允許修改次數(shù),如果是,系統(tǒng)掛起,終止正常引 導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用,否則,將主板的使用限制條件重新寫入主板的密鑰 空間。圖2示出了本發(fā)明實施提供的圖1所示的步驟S103的具體實現(xiàn)流程,其中主板的 使用限制條件包括設(shè)置標(biāo)識、使用次數(shù)、時間域和軟件版本,詳述如下在步驟S201中,根據(jù)主板的使用限制條件中的設(shè)置標(biāo)識,判斷主板的使用限制條 件是否被設(shè)置,如果是,執(zhí)行步驟S203,否則,執(zhí)行步驟S202。在本發(fā)明實施例中,通過判斷讀取的密鑰數(shù)據(jù)結(jié)構(gòu)中的setted參數(shù)是否被設(shè)置 來判斷主板的使用限制條件是否被設(shè)置,如果是,則主板的使用限制條件已被設(shè)置,否則, 主板的使用限制條件未被設(shè)置。一般情況下,主板在出廠時,均會設(shè)置好主板的密鑰空間存儲的主板的使用限制 條件,這種情況下,從主板的密鑰空間中讀取的setted參數(shù)一般為已被設(shè)置。但是客戶 在使用主板過程中,可能采用某種方式清除了主板的密鑰空間中存儲的主板的使用限制條 件,此時,從主板的密鑰空間中讀取的setted參數(shù)一般為未被設(shè)置。在步驟S202中,設(shè)置主板的使用限制條件。在本發(fā)明實施例中,設(shè)置主板的使用限制條件包括但不限于設(shè)置使用次數(shù) (times)、時間域(yy-mm-dd-hh)等。其中時間域是初始時間與最長使用時間之和。在設(shè) 置主板的使用限制條件時,設(shè)置該主板的初始時間,即采用CK_info結(jié)構(gòu)體中的一組參數(shù) yy-mm-dd-hh保存設(shè)置的初始時間,通過將設(shè)置的主板的初始時間加上預(yù)設(shè)的最長使用時 間,即得到主板的使用限制條件中的時間域。其中最長使用時間一般是主板出廠時即已設(shè) 定,一般是不允許修改的。在本發(fā)明實施例中,可以通過密鑰設(shè)置函數(shù)實現(xiàn),如Set_CKJnfo (structCK_ Info*ck_info)函數(shù),設(shè)置主板的使用限制條件。由于主板的存儲介質(zhì)可能各不相同,因此 密鑰設(shè)置函數(shù)的具體實現(xiàn)方法也可能不盡相同。由于根據(jù)主板的存儲介質(zhì)的不同,密鑰設(shè) 置函數(shù)的具體實現(xiàn)方法屬于現(xiàn)有技術(shù),在此不再贅述。在步驟S203中,判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中的 軟件版本相符,如果是,執(zhí)行步驟S204,否則執(zhí)行步驟S208。在本發(fā)明實施例中,主板廠商在向客戶提供主板的同時,向客戶提供適用于該主 板的完整版本的軟件,以使客戶可以采用該完整版本的軟件對主板進(jìn)行測試和試用。為 了對主板廠商提供的主板以及適用于該主板的完整版本的軟件進(jìn)行保護(hù),在本發(fā)明實施例中,一套完整版本的軟件僅適用于同一型號的主板,而且同一型號的主板也只能使用一套 完整版本的軟件。在步驟S204中,根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使用次 數(shù)是否超過預(yù)設(shè)的允許使用次數(shù),如果是,執(zhí)行步驟S208,否則,執(zhí)行步驟S205。當(dāng)主板的使用限制條件中的使用次數(shù)為主板的允許使用次數(shù)時,步驟S204的具 體如下A、判斷從主板的密鑰空間中讀取的使用次數(shù)(times)是否為0,即判斷CK_info. times ==0 ,如果是,則執(zhí)行步驟S208,否則,執(zhí)行步驟B ;B、將從主板的密鑰空間中讀取的使用次數(shù)(times)減1,即設(shè)置CK_info. times = CK_info. times-1。并繼續(xù)執(zhí)行步驟S205。當(dāng)主板的使用限制條件中的使用次數(shù)為主板的實際累計使用次數(shù)時,步驟S204 的具體步驟如下A’、將從主板的密鑰空間中讀取的使用次數(shù)(times)加1,即設(shè)置CK_info. times =CK_info. times+1 ;B’、判斷經(jīng)步驟Α’處理后的使用次數(shù)(times)是否大于預(yù)設(shè)的閾值,如果是,則執(zhí) 行步驟S208,否則,執(zhí)行步驟S205。其中預(yù)設(shè)的閾值是預(yù)設(shè)的主板的允許使用次數(shù),即如 果預(yù)設(shè)的閾值為5,則判斷CK_info. times > 5 ?,如果是,執(zhí)行步驟S208,否則,執(zhí)行步驟 S205。在步驟S205中,判斷主板中是否存在時間設(shè)備(也稱為RTC設(shè)備),如果是,執(zhí)行 步驟S206,否則執(zhí)行步驟S207。在步驟S206中,從主板的時間設(shè)備中讀取當(dāng)前時間,并判斷讀取的當(dāng)前時間是否 超過主板的使用限制條件中的時間域,如果是,執(zhí)行步驟S208,否則,執(zhí)行步驟S207。在本發(fā)明實施例中,讀取的當(dāng)前時間的格式一般與主板的使用限制條件中時間域 的格式一致,如為yy-mm-dd-hh格式。其中主板的使用限制條件中的時間域是主板的使用限制條件中保存的初始時間 與預(yù)設(shè)的最長使用時間之和。在步驟S207中,將主板的使用限制條件重新寫入主板的密鑰空間,不再執(zhí)行以下步驟。在本發(fā)明實施例中,通過上述步驟后,主板的使用限制條件發(fā)生了變化,如設(shè)置標(biāo) 識、使用次數(shù)等可能全部或者部分發(fā)生了改變,將改變后的主板的使用限制條件重新寫入 主板的密鑰空間。在步驟S208中,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。綜上所述,通過圖2所示的步驟,即可實現(xiàn)在主板的使用情況達(dá)到主板的使用限 制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用。在本發(fā)明實施例中,對軟件版本的判斷是為了使主板得到更好的保護(hù),該步驟在 具體實現(xiàn)時,可以省略。另外對主板的使用限制條件是否進(jìn)行設(shè)置的判斷也是為了達(dá)到更 好的效果而增加的,該步驟在具體實現(xiàn)時,也可以省略??梢岳斫?,判斷主板的實際使用情況是否達(dá)到主板的使用限制條件時,不以圖2 所示的判斷順序為限,可以以任意順序進(jìn)行判斷,在此不再贅述。
圖3示出了本發(fā)明另一實施例提供的圖1所示的步驟S103的具體實現(xiàn)流程,其中 主板的使用限制條件包括使用次數(shù)、時間域、軟件版本和系統(tǒng)時鐘修改次數(shù),詳述如下在步驟S301中,判斷主板的使用限制條件是否被設(shè)置,如果是,執(zhí)行步驟S303,否 則,執(zhí)行步驟S302。在步驟S302中,設(shè)置主板的使用限制條件。在本發(fā)明實施例中,設(shè)置主板的使用限制條件包括但不限于設(shè)置使用次數(shù) (times)、時間域(yy-mm-dd-hh)等。其中時間域是初始時間與最長使用時間之和。在設(shè) 置主板的使用限制條件時,設(shè)置該主板的初始時間,即采用CK_info結(jié)構(gòu)體中的一組參數(shù) yy-mm-dd-hh保存設(shè)置的初始時間,通過將設(shè)置的主板的初始時間加上預(yù)設(shè)的最長使用時 間,即得到主板的使用限制條件中的時間域。其中最長使用時間一般是主板出廠時即已設(shè) 定,一般是不允許修改的。在步驟S303中,判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中的 軟件版本相符,如果是,執(zhí)行步驟S304,否則執(zhí)行步驟S3011。在步驟S304中,根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使用次 數(shù)是否超過預(yù)設(shè)的允許使用次數(shù),如果是,執(zhí)行步驟S3011,否則,執(zhí)行步驟S305。其具體過 程如上所述,在此不再贅述。在步驟S305中,判斷主板中是否存在時間設(shè)備(也稱為RTC設(shè)備),如果是,執(zhí)行 步驟S306,否則執(zhí)行步驟S3010。在步驟S306中,從主板的時間設(shè)備中讀取當(dāng)前時間,并判斷讀取的當(dāng)前時間是否 超過主板的使用限制條件中的時間域,如果是,執(zhí)行步驟S3011,否則,執(zhí)行步驟S307。在步驟S307中,判斷讀取的當(dāng)前時間是否早于主板的使用限制條件中的初始時 間,如果是,執(zhí)行步驟S308,否則,執(zhí)行步驟S309。在步驟S308中,根據(jù)主板的使用限制條件中的系統(tǒng)時鐘修改次數(shù),判斷對主板的 系統(tǒng)時鐘的實際修改次數(shù)是否超過預(yù)設(shè)的允許修改次數(shù),如果是,執(zhí)行步驟S3011,否則,執(zhí) 行步驟S3010。當(dāng)主板的使用限制條件中的系統(tǒng)時鐘修改次數(shù)為允許對主板的系統(tǒng)時鐘進(jìn)行修 改的次數(shù)時,步驟S308的具體步驟如下Al、判斷從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)(err0r_C0unt)是否為0, 即判斷CK_info. error_count ==0 ?,如果是,則執(zhí)行步驟S2011,否則,執(zhí)行步驟Bl ;Bi、將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)(err0r_C0unt)減1,并繼續(xù) 執(zhí)行步驟 S3010。即設(shè)置 CK_info. error_count = CK_info. error_count_l。在本發(fā)明另一實施例中,當(dāng)從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)為系統(tǒng) 時鐘的實際累計修改次數(shù)時,步驟S308的具體步驟還可以如下Al’、將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)(err0r_C0unt)加1,即設(shè) 置 CK_info. error_count = CK_info. error_count+l ;ΒΓ、判斷經(jīng)步驟Al’處理后的系統(tǒng)時鐘修改次數(shù)(err0r_C0unt)是否超過預(yù)設(shè)的 值(如5),即此時設(shè)置的允許修改次數(shù)為5,即判斷CK_info. error_count > 5 ?,如果是, 則執(zhí)行步驟S3011,否則,執(zhí)行步驟S3010。在步驟S309中,采用讀取的當(dāng)前時間更新主板的使用限制條件中的初始時間。
在步驟S3010中,將主板的使用限制條件重新寫入主板的密鑰空間。在本發(fā)明實施例中,通過上述步驟后,主板的使用限制條件發(fā)生了變化,如設(shè)置標(biāo) 識、使用次數(shù)、時間域、系統(tǒng)時鐘修改次數(shù)等可能全部或者部分發(fā)生了改變,將改變后的主 板的使用限制條件重新寫入主板的密鑰空間。在步驟S3011中,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使用。為了提示用戶設(shè)置正確的系統(tǒng)時鐘,以使用戶在主板的使用限制條件中的時間域 內(nèi)可以正常使用主板,在本發(fā)明另一實施例中,在步驟S308中判斷對主板的系統(tǒng)時鐘的實 際修改次數(shù)未超過預(yù)設(shè)的允許修改次數(shù)時,該方法還包括下述步驟打印信息,并提示客戶有預(yù)設(shè)次啟動機(jī)會來更新系統(tǒng)時鐘。并繼續(xù)執(zhí)行步驟 S3010。綜上所述,通過圖3所示的步驟,即可實現(xiàn)在主板的使用情況達(dá)到主板的使用限 制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用??梢岳斫?,在本發(fā)明實施例中,對軟件版本的判斷是為了使主板得到更好的保護(hù), 該步驟在具體實現(xiàn)時,可以省略。另外對主板的使用限制條件是否進(jìn)行設(shè)置的判斷也是為 了達(dá)到更好的效果而增加的,該步驟在具體實現(xiàn)時,也可以省略??梢岳斫?,判斷主板的實際使用情況是否達(dá)到主板的使用限制條件時,不以圖3 所示的順序為限,可以以任意順序進(jìn)行判斷,在此不再贅述。圖4示出了本發(fā)明實施例提供的主板保護(hù)裝置的結(jié)構(gòu),為了便于說明,僅示出了 與本發(fā)明實施例相關(guān)的部分。該主板保護(hù)裝置可以是內(nèi)置于計算機(jī)系統(tǒng)中的軟件單元、硬件單元或者軟硬件相 結(jié)合的單元,或者作為獨立的掛件集成到計算機(jī)系統(tǒng)或者計算機(jī)系統(tǒng)的應(yīng)用系統(tǒng)中。其 中設(shè)置于主板上不向客戶開放的密鑰存儲單元1存儲主板的使用限制條件。該密鑰 存儲單元1可以為NOR Flash、NandFlash, CF卡、SD卡、EEPROM、SPI Flash等。在本發(fā)明 實施例中,將用于存放BootLoader文件的NOR Flash作為密鑰存儲單元1。為了避免主板 的使用限制條件與BootLoader文件發(fā)生沖突,在本發(fā)明實施例中,將用于存放BootLoader 文件的NOR Flash的最后一個存儲扇區(qū)作為密鑰存儲單元1。其中主板的使用限制條件為使用次數(shù)(times)。在本發(fā)明另一實施例中,主板的使 用限制條件還包括時間域、系統(tǒng)時鐘修改次數(shù)(err0r_C0imt)、軟件版本(version)中的一 個或多個組合。其中使用次數(shù)為主板的允許使用次數(shù)或者主板的實際累計使用次數(shù)。時間 域是指允許用戶使用該主板的時間段,可以采用任意時間格式,如yy-mm-dd-hh等格式。系 統(tǒng)時鐘修改次數(shù)為允許對主板的系統(tǒng)時鐘進(jìn)行修改的次數(shù)或者系統(tǒng)時鐘的實際累計修改 次數(shù)。軟件版本是指適用于該主板的軟件的版本。在本發(fā)明另一實施例中,該主板的使用 限制條件還包括設(shè)置標(biāo)識,該設(shè)置標(biāo)識用于標(biāo)識主板的使用限制條件是否被設(shè)置。密鑰讀取單元2在程序引導(dǎo)階段,從設(shè)置于主板中的密鑰存儲單元1中讀取主板 的使用限制條件。在本發(fā)明實施例中,可以通過密鑰讀取函數(shù),如Get_CK-Info(structCK-Info*ck_ info)函數(shù),從主板的密鑰空間中讀取主板的使用限制條件。由于主板的存儲介質(zhì)可能各不 相同,因此密鑰讀取函數(shù)的具體實現(xiàn)方法也可能不盡相同。由于根據(jù)主板的存儲介質(zhì)的不同,密鑰讀取函數(shù)的具體實現(xiàn)方法屬于現(xiàn)有技術(shù),在此不再贅述。主板使用限制單元3監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到密鑰讀取單 元2讀取的主板的使用限制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用。圖5是本發(fā)明實施例提供的圖4所示的主板使用限制單元3的具體結(jié)構(gòu),為了便 于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。當(dāng)主板的使用限制條件為使用次數(shù)時,該主板使用限制單元3包括使用次數(shù)判斷 單元31、主板限制單元32和密鑰更新單元33。其中使用次數(shù)判斷單元31根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際 使用次數(shù)是否超過預(yù)設(shè)的允許使用次數(shù),并在判定主板的實際使用次數(shù)未超過預(yù)設(shè)的允許 使用次數(shù)時,觸發(fā)密鑰更新單元33。主板限制單元32在使用次數(shù)判斷單元31判定主板的實際使用次數(shù)超過預(yù)設(shè)的允 許使用次數(shù)時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主板的繼續(xù)使用。密鑰更新單元33將主板的使用限制條件重新寫入主板的密鑰空間。在本發(fā)明實 施例中,密鑰更新單元33在將主板的使用限制條件重新寫入主板的密鑰空間時,僅將發(fā)生 改變的主板的使用限制條件重新寫入主板的密鑰空間,也可以將所有主板的使用限制條件 均重新寫入主板的密鑰空間。在本發(fā)明實施例中,當(dāng)主板的使用限制條件中的使用次數(shù)為主板的允許使用次數(shù) 時,該使用次數(shù)判斷單元31包括第一使用次數(shù)判斷模塊(圖中未示出)和使用次數(shù)遞減模 塊(圖中未示出);當(dāng)主板的使用限制條件中的使用次數(shù)為主板的實際累計使用次數(shù)時,該 使用次數(shù)判斷單元31包括第二使用次數(shù)判斷模塊(圖中未示出)和使用次數(shù)遞增模塊(圖 中未示出)。其中第一使用次數(shù)判斷模塊判斷從主板的密鑰空間中讀取的使用次數(shù)是否為0,并在 判定從主板的密鑰空間中讀取的使用次數(shù)為0時,觸發(fā)主板限制單元32。使用次數(shù)遞減模塊在第一使用次數(shù)判斷模塊判定從主板的密鑰空間中讀取的使 用次數(shù)不為O時,將從主板的密鑰空間中讀取的使用次數(shù)減1,并觸發(fā)密鑰更新單元33。使用次數(shù)遞增模塊將從主板的密鑰空間中讀取的使用次數(shù)加1。第二使用次數(shù)判斷模塊判斷使用次數(shù)遞增模塊處理后的使用次數(shù)是否大于預(yù)設(shè) 的閾值,如果是,觸發(fā)主板限制單元32,否則,觸發(fā)密鑰更新單元33。其中預(yù)設(shè)的閾值是預(yù) 設(shè)的主板的允許使用次數(shù)。在本發(fā)明另一實施例中,當(dāng)主板的使用限制條件為時間域時,該主板使用限制單 元3包括時間域判斷單元34和主板限制單元32。其中時間域判斷單元34判斷從主板的時間設(shè)備中讀取的當(dāng)前時間是否超過主板的使 用限制條件中的時間域。此時,主板限制單元32在時間域判斷單元34判定從主板的時間 設(shè)備中讀取的當(dāng)前時間超過主板的使用限制條件中的時間域時,系統(tǒng)掛起,終止正常引導(dǎo) 內(nèi)核啟動,限制對主板的繼續(xù)使用。在本發(fā)明實施例中,從主板的時間設(shè)備中讀取的當(dāng)前時間的格式一般與主板的使 用限制條件中時間域的格式一致,如為yy-mm-dd-hh格式。在本發(fā)明另一實施例中,當(dāng)主板的使用限制條件為使用次數(shù)和時間域時,該主板 使用限制單元3包括使用次數(shù)判斷單元31、主板限制單元32、密鑰更新單元33和時間域判斷單元34。此時,主板限制單元32在使用次數(shù)判斷單元31判定主板的實際使用次數(shù)超過 預(yù)設(shè)的允許使用次數(shù)時,或者在時間域判斷單元34判定從主板的時間設(shè)備中讀取的當(dāng)前 時間超過主板的使用限制條件中的時間域時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主 板的繼續(xù)使用。在本發(fā)明另一實施例中,當(dāng)主板的使用限制條件包括時間域和系統(tǒng)時鐘修改次數(shù) 時,該主板使用限制單元3包括主板限制單元32、密鑰更新單元33、時間域判斷單元34、當(dāng) 前時間判斷單元35、修改次數(shù)判斷單元36和初始時間更新單元37。其中當(dāng)前時間判斷單元35判斷從主板的時間設(shè)備中讀取的當(dāng)前時間是否早于主板的 使用限制條件中保存的初始時間。修改次數(shù)判斷單元36在當(dāng)前時間判斷單元35判定從主板的時間設(shè)備中讀取的當(dāng) 前時間早于主板的使用限制條件中保存的初始時間時,根據(jù)主板的使用限制條件中的系統(tǒng) 時鐘的修改次數(shù),判斷對主板的系統(tǒng)時鐘的實際修改次數(shù)是否超過預(yù)設(shè)的允許修改次數(shù)。 此時,主板限制單元32在時間域判斷單元34判定從主板的時間設(shè)備中讀取的當(dāng)前時間超 過主板的使用限制條件中的時間域時,或者在修改次數(shù)判斷單元36判定對主板的系統(tǒng)時 鐘的實際修改次數(shù)超過預(yù)設(shè)的允許修改次數(shù)時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,以限制 對主板的繼續(xù)使用。在本發(fā)明實施例中,當(dāng)主板的使用限制條件中的系統(tǒng)時鐘的修改次數(shù)為允許對主 板的系統(tǒng)時鐘進(jìn)行修改的次數(shù)時,該修改次數(shù)判斷單元36包括第一修改次數(shù)判斷模塊(圖 中未示出)和修改次數(shù)遞減模塊(圖中未示出);當(dāng)從主板的密鑰空間中讀取的系統(tǒng)時鐘 修改次數(shù)為系統(tǒng)時鐘的實際累計修改次數(shù)時,該修改次數(shù)判斷單元36包括第二修改次數(shù) 判斷模塊(圖中未示出)和修改次數(shù)遞增模塊(圖中未示出)。其中第一修改次數(shù)判斷模塊判斷從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)是否 為0,并在判定從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)為0時,觸發(fā)主板限制單元 32。修改次數(shù)遞減模塊在第一修改次數(shù)判斷模塊判定從主板的密鑰空間中讀取的系 統(tǒng)時鐘修改次數(shù)不為0時,將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)減1,并觸發(fā)密 鑰更新單元33。修改次數(shù)遞增模塊將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)加1。第二修改次數(shù)判斷模塊判斷修改次數(shù)遞增模塊處理后的系統(tǒng)時鐘修改次數(shù)是否 超過預(yù)設(shè)的允許修改次數(shù),如果是,觸發(fā)主板限制單元33,否則,觸發(fā)密鑰更新單元33。初始時間更新單元37在當(dāng)前時間判斷單元35判定從主板的時間設(shè)備中讀取的當(dāng) 前時間晚于或者等于主板的使用限制條件中保存的初始時間時,采用讀取的當(dāng)前時間更新 主板的使用限制條件中的初始時間,并在更新主板的使用限制條件中的初始時間后,觸發(fā) 密鑰更新單元33。在本發(fā)明另一實施例中,當(dāng)主板的使用限制條件包括使用次數(shù)、時間域和系統(tǒng)時 鐘修改次數(shù)時,該主板使用限制單元3包括使用次數(shù)判斷單元31、主板限制單元32、密鑰更 新單元33、時間域判斷單元34、當(dāng)前時間判斷單元35、修改次數(shù)判斷單元36和初始時間更 新單元37。此時,主板限制單元32在使用次數(shù)判斷單元31判定主板的實際使用次數(shù)超過 預(yù)設(shè)的允許使用次數(shù)時,或者在時間域判斷單元34判定從主板的時間設(shè)備中讀取的當(dāng)前時間超過主板的使用限制條件中的時間域時,,或者在修改次數(shù)判斷單元36判定對主板的 系統(tǒng)時鐘的實際修改次數(shù)超過預(yù)設(shè)的允許修改次數(shù)時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動, 以限制對主板的繼續(xù)使用。在本發(fā)明另一實施例中,當(dāng)主板的使用限制條件包括設(shè)置標(biāo)識、軟件版本、使用次 數(shù)、時間域、系統(tǒng)時鐘修改次數(shù)時,該主板使用限制單元3還包括密鑰設(shè)置判斷單元38、密 鑰設(shè)置單元39和軟件版本判斷單元310,其中密鑰設(shè)置判斷單元38根據(jù)主板的使用限制 條件中的設(shè)置標(biāo)識判斷主板的使用限制條件是否被設(shè)置。一般情況下,主板在出廠時,均會設(shè)置好密鑰存儲單元1中存儲的主板的使用限 制條件。但是客戶在使用主板過程中,可能采用某種方式清除了密鑰存儲單元1中存儲的 主板的使用限制條件,此時,密鑰存儲單元1中存儲的主板的使用限制條件一般為未被設(shè)置。密鑰設(shè)置單元39在密鑰設(shè)置判斷單元38判定主板的使用限制條件未被設(shè)置時, 設(shè)置主板的使用限制條件。在本發(fā)明實施例中,設(shè)置主板的使用限制條件包括但不限于設(shè)置使用次數(shù) (times)、時間域(yy-mm-dd-hh)、系統(tǒng)時鐘修改次數(shù)(eroor_count)等。其中時間域是初 始時間與最長使用時間之和。在設(shè)置主板的使用限制條件時,設(shè)置該主板的初始時間,即采 用CK_info結(jié)構(gòu)體中的一組參數(shù)yy-mm-dd-hh保存設(shè)置的初始時間,通過將設(shè)置的主板的 初始時間加上預(yù)設(shè)的最長使用時間,即得到主板的使用限制條件中的時間域。其中最長使 用時間一般是主板出廠時即已設(shè)定,一般是不允許修改的。在本發(fā)明實施例中,可以通過密鑰設(shè)置函數(shù),如kt_CKJnfo (structCKJnfo*ck_ info)函數(shù),設(shè)置主板的使用限制條件。由于主板的存儲介質(zhì)可能各不相同,因此密鑰設(shè)置 函數(shù)的具體實現(xiàn)方法也可能不盡相同。由于根據(jù)主板的存儲介質(zhì)的不同,密鑰設(shè)置函數(shù)的 具體實現(xiàn)方法屬于現(xiàn)有技術(shù),在此不再贅述。軟件版本判斷單元310判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條 件中的軟件版本相符,并在判定主板當(dāng)前所用的軟件版本與主板的使用限制條件中的軟件 版本不符時,觸發(fā)主板限制單元32。在本發(fā)明實施例中,主板廠商在向客戶提供主板的同時,向客戶提供適用于該主 板的完整版本的軟件,以使客戶可以采用該完整版本的軟件對主板進(jìn)行測試和試用。為 了對主板廠商提供的主板以及適用于該主板的完整版本的軟件進(jìn)行保護(hù),在本發(fā)明實施例 中,一套完整版本的軟件僅適用于一塊主板,而且一塊主板也只能使用一套完整版本的軟 件。為了提示用戶設(shè)置正確的系統(tǒng)時鐘,以使用戶在主板的使用限制條件中的時間域 內(nèi)可以正常使用主板,在本發(fā)明另一實施例中,該裝置還包括信息提示單元311。該信息提 示單元311在修改次數(shù)判斷單元36判定對主板的系統(tǒng)時鐘的實際修改次數(shù)沒有超過預(yù)設(shè) 的允許修改次數(shù)時,打印信息,并提示客戶有預(yù)設(shè)次啟動機(jī)會來更新系統(tǒng)時鐘。可以理解,由于在圖5所示的主板使用限制單元中,主板的使用限制條件包括使 用次數(shù)、時間域、系統(tǒng)時鐘修改次數(shù)和軟件版本,當(dāng)主板的使用限制條件僅包括使用次數(shù)、 時間域、系統(tǒng)時鐘修改次數(shù)和軟件版本中一種、兩種或三種時,圖5所示的主板使用限制單 元應(yīng)相應(yīng)的減少與相應(yīng)的主板的使用限制條件對應(yīng)的單元,且其判斷步驟也可以任意。
在本發(fā)明實施例中,通過預(yù)先將主板的使用限制條件存儲至主板上不對客戶開放 的密鑰空間,在程序引導(dǎo)階段,從該密鑰空間中讀取主板的使用限制條件,并在主板的使用 情況達(dá)到主板的使用限制條件時,系統(tǒng)掛起,以限制對主板的繼續(xù)使用,從而不僅可以提供 完整版本的軟件給客戶,以便客戶對主板進(jìn)行測試和試用,而且由于對主板的使用進(jìn)行了 限制,從而提高了主板的安全性,保證了主板廠商的利益。由于可以通過主板的使用次數(shù)、 使用時限、軟件版本、系統(tǒng)時鐘修改次數(shù)等多個條件對主板的使用進(jìn)行控制,從而進(jìn)一步提 高了主板的安全性。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種主板的保護(hù)方法,其特征在于,所述方法包括下述步驟A、將主板的使用限制條件存儲至主板上不對客戶開放的密鑰空間;B、在程序引導(dǎo)階段,從主板的密鑰空間中讀取主板的使用限制條件;C、監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的使用限制條件時,系統(tǒng)掛起, 限制對主板的繼續(xù)使用。
2.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述主板的使用限制條件為使用次數(shù)時, 所述步驟C具體為Cl、根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使用次數(shù)是否超過預(yù)設(shè) 的允許使用次數(shù),并在主板的實際使用次數(shù)超過預(yù)設(shè)的允許使用次數(shù)時,執(zhí)行步驟C2 ;C2、系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主板的繼續(xù)使用。
3.如權(quán)利要求2所述的方法,其特征在于,當(dāng)主板的使用限制條件中的使用次數(shù)為主 板的允許使用次數(shù)時,所述步驟Cl具體為C11、判斷從主板的密鑰空間中讀取的使用次數(shù)是否為0,如果是,執(zhí)行所述步驟C2,否 則,執(zhí)行步驟C12;C12、將從主板的密鑰空間中讀取的使用次數(shù)減1,并將主板的使用限制條件重新寫入 主板的密鑰空間;當(dāng)主板的使用限制條件中的使用次數(shù)為主板的實際累計使用次數(shù)時,所述步驟Cl具 體為C13、將從主板的密鑰空間中讀取的使用次數(shù)加1 ;C14、判斷步驟C13處理后的使用次數(shù)是否大于預(yù)設(shè)的閾值,,所述預(yù)設(shè)的閾值是預(yù)設(shè) 的主板的允許使用次數(shù),如果是,執(zhí)行所述步驟C2,否則,將主板的使用限制條件重新寫入 主板的密鑰空間。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述主板的使用限制條件為時間域時,所 述步驟C具體為Cl’、從主板的時間設(shè)備中讀取當(dāng)前時間,并判斷讀取的當(dāng)前時間是否超過主板的使用 限制條件中的時間域,在判定讀取的當(dāng)前時間超過主板的使用限制條件中的時間域時,執(zhí) 行步驟C2’ ;C2’、系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主板的繼續(xù)使用。
5.如權(quán)利要求4所述的方法,其特征在于,當(dāng)所述主板的使用限制條件還包括系統(tǒng)時 鐘修改次數(shù)時,所述步驟C還包括C3’、判斷讀取的當(dāng)前時間是否早于主板的使用限制條件中的初始時間,如果是,執(zhí)行 所述步驟C4’,如果否,采用讀取的當(dāng)前時間更新主板的使用限制條件中的初始時間,并將 主板的使用限制條件重新寫入主板的密鑰空間;C4’、根據(jù)主板的使用限制條件中的系統(tǒng)時鐘修改次數(shù),判斷對主板的系統(tǒng)時鐘的實際 修改次數(shù)是否超過預(yù)設(shè)的允許修改次數(shù),如果是,執(zhí)行所述步驟C2’,否則,將主板的使用限 制條件重新寫入主板的密鑰空間。
6.如權(quán)利要求5所述的方法,其特征在于,當(dāng)主板的使用限制條件中的系統(tǒng)時鐘修改 次數(shù)為允許對主板的系統(tǒng)時鐘進(jìn)行修改的次數(shù)時,所述步驟C4’具體為C41’、判斷從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)是否為0,如果是,執(zhí)行所述步驟C2,,否則,執(zhí)行步驟C42,;C42’、將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)減1,并將主板的使用限制條件 重新寫入主板的密鑰空間;當(dāng)從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)為系統(tǒng)時鐘的實際累計修改次數(shù)時, 所述步驟C4’具體為C43’、將從主板的密鑰空間中讀取的系統(tǒng)時鐘修改次數(shù)加1 ;C44’、判斷經(jīng)所述步驟C43’處理后的系統(tǒng)時鐘修改次數(shù)是否超過預(yù)設(shè)的允許修改次 數(shù),如果是,執(zhí)行所述步驟C2’,否則,將主板的使用限制條件重新寫入主板的密鑰空間。
7.如權(quán)利要求4所述的方法,其特征在于,當(dāng)所述主板的使用限制條件還包括使用次 數(shù)時,在所述步驟Cl’之前或者之后,所述方法還包括下述步驟根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際使用次數(shù)是否超過預(yù)設(shè)的允 許使用次數(shù),并在主板的實際使用次數(shù)超過預(yù)設(shè)的允許使用次數(shù)時,執(zhí)行所述步驟C2’。
8.如權(quán)利要求2至7任一權(quán)利要求所述的方法,其特征在于,所述方法還包括下述步驟根據(jù)主板的使用限制條件中的設(shè)置標(biāo)識,判斷主板的使用限制條件是否被設(shè)置,并在 判定主板的使用限制條件未被設(shè)置時,設(shè)置主板的使用限制條件;和/或判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中的軟件版本相符,并在判 定為不符時,執(zhí)行所述系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主板的繼續(xù)使用的步驟。
9.一種主板的保護(hù)裝置,其特征在于,所述裝置包括密鑰存儲單元,用于存儲主板的使用限制條件,所述主板的使用限制條件為設(shè)置標(biāo)識、 使用次數(shù),時間域、系統(tǒng)時鐘修改次數(shù)、軟件版本中的一個或多個組合,所述密鑰存儲單元 為主板上不對客戶開放的密鑰空間;密鑰讀取單元,用于在程序引導(dǎo)階段,從主板中的所述密鑰存儲單元中讀取主板的使 用限制條件;主板使用限制單元,用于監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的使用 限制條件時,系統(tǒng)掛起,限制對主板的繼續(xù)使用。
10.如權(quán)利要求9所述的裝置,其特征在于,所述主板使用限制單元包括主板限制單 元、密鑰更新單元、使用次數(shù)判斷單元和/或時間域判斷單元;所述使用次數(shù)判斷單元用于根據(jù)主板的使用限制條件中的使用次數(shù),判斷主板的實際 使用次數(shù)是否超過預(yù)設(shè)的允許使用次數(shù);所述時間域判斷單元用于從主板的時間設(shè)備中讀取當(dāng)前時間,并判斷讀取的當(dāng)前時間 是否超過主板的使用限制條件中的時間域;所述主板限制單元用于在所述使用次數(shù)判斷單元判定主板的實際使用次數(shù)超過預(yù)設(shè) 的允許使用次數(shù)時,或者在所述時間域判斷單元判定讀取的當(dāng)前時間超過主板的使用限制 條件中的時間域時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,限制對主板的繼續(xù)使用; 所述密鑰更新單元用于將主板的使用限制條件重新寫入主板的密鑰空間。
11.如權(quán)利要求10所述的裝置,其特征在于,所述主板使用限制單元還包括當(dāng)前時間判斷單元,用于判斷讀取的當(dāng)前時間是否早于主板的使用限制條件中保存的 初始時間;修改次數(shù)判斷單元,用于在所述當(dāng)前時間判斷單元判定讀取的當(dāng)前時間早于主板的使 用限制條件中保存的初始時間時,根據(jù)主板的使用限制條件中的系統(tǒng)時鐘的修改次數(shù),判 斷對主板的系統(tǒng)時鐘的實際修改次數(shù)是否超過預(yù)設(shè)的允許修改次數(shù);此時,所述主板限制單元在所述修改次數(shù)判斷單元判定對主板的系統(tǒng)時鐘的實際修改次數(shù) 超過預(yù)設(shè)的允許修改次數(shù)時,系統(tǒng)掛起,終止正常引導(dǎo)內(nèi)核啟動,以限制對主板的繼續(xù)使 用;初始時間更新單元,用于在所述當(dāng)前時間判斷單元判定從主板的時間設(shè)備中讀取的當(dāng) 前時間晚于或者等于主板的使用限制條件中保存的初始時間時,采用讀取的當(dāng)前時間更新 主板的使用限制條件中的初始時間,并觸發(fā)所述密鑰更新單元。
12.如權(quán)利要求10或11所述的裝置,其特征在于,所述主板使用限制單元還包括 密鑰設(shè)置判斷單元,用于根據(jù)主板的使用限制條件中的設(shè)置標(biāo)識,判斷主板的使用限 制條件是否被設(shè)置;密鑰設(shè)置單元,用于在所述密鑰設(shè)置判斷單元判定主板的使用限制條件未被設(shè)置時, 設(shè)置主板的使用限制條件;和/或軟件版本判斷單元,用于判斷主板當(dāng)前所用的軟件版本是否與主板的使用限制條件中 的軟件版本相符,并在判定為不符時,觸發(fā)所述主板限制單元。
全文摘要
本發(fā)明適用于計算機(jī)領(lǐng)域,提供了一種主板的保護(hù)方法和裝置,所述方法包括下述步驟A、將主板的使用限制條件存儲至主板上不對客戶開放的密鑰空間;B、在程序引導(dǎo)階段,從主板的密鑰空間中讀取主板的使用限制條件;C、監(jiān)測主板的使用情況,并在主板的使用情況達(dá)到主板的使用限制條件時,系統(tǒng)掛起,限制對主板的繼續(xù)使用。本發(fā)明實施例由于通過各種使用限制條件對主板的使用進(jìn)行限制,從而不僅可以提供完整版本的軟件給客戶,以便客戶對主板進(jìn)行測試和試用,而且由于對主板的使用進(jìn)行了限制,從而提高了主板的安全性,保證了主板廠商的利益。
文檔編號G06F21/02GK102103672SQ20091018905
公開日2011年6月22日 申請日期2009年12月17日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者劉志超, 申娟 申請人:研祥智能科技股份有限公司