專利名稱:一種軟件版本保護(hù)實(shí)現(xiàn)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種軟件版本保護(hù)實(shí)現(xiàn)方法和系統(tǒng)。
背景技術(shù):
人類社會(huì)已經(jīng)踏入了 21世紀(jì)。科學(xué)技術(shù)的發(fā)展使人類的活動(dòng)范圍不斷擴(kuò)展,計(jì)算機(jī)網(wǎng)絡(luò)的進(jìn)步與發(fā)展將人類社會(huì)推進(jìn)了信息社會(huì)和知識(shí)經(jīng)濟(jì)時(shí)代,并創(chuàng)造了一個(gè)超時(shí)空的網(wǎng)絡(luò)空間,其中,計(jì)算機(jī)軟件產(chǎn)業(yè)的發(fā)展在很大程度上影響著一個(gè)國家的社會(huì)經(jīng)濟(jì),并迅速地滲透到人們的生活,產(chǎn)生巨大的沖擊力。但互聯(lián)網(wǎng)提供給我們的并不只是一個(gè)新的平臺(tái),它還給人們提供了一個(gè)迥異于傳統(tǒng)市場(chǎng)經(jīng)濟(jì)的追逐利益的場(chǎng)所和手段,而正是由于這種新的場(chǎng)所和手段,在增進(jìn)經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步的同時(shí),也打破了原有法律體系所建立起來的利益平衡。為了保護(hù)產(chǎn)品的知識(shí)產(chǎn)權(quán),每個(gè)公司都想出來很多方法,傳統(tǒng)的針對(duì)嵌入式應(yīng)用場(chǎng)合的加密方式通常都只針對(duì)文件系統(tǒng)的加密,采用文件系統(tǒng)自身加密方式進(jìn)行加密,這種方法方式易于破解,并且會(huì)影響系統(tǒng)運(yùn)行的效率,不利于產(chǎn)品的保護(hù)。
發(fā)明內(nèi)容
本發(fā)明提供一種軟件版本保護(hù)實(shí)現(xiàn)方法和系統(tǒng),用以解決現(xiàn)有技術(shù)中軟件版本保護(hù)方式易破解且影響系統(tǒng)運(yùn)行效率的問題。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案如下:—方面,本發(fā)明提供一種軟件版本保護(hù)實(shí)現(xiàn)方法,包括:對(duì)制作的版本文件進(jìn)行加密;當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件;將所述版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址,并利用所述版本文件中的內(nèi)核文件啟動(dòng)內(nèi)核;創(chuàng)建基于內(nèi)存的MTD(Memory Technology Device,內(nèi)存技術(shù)設(shè)備)分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。進(jìn)一步地,本發(fā)明所述方法中,所述對(duì)版本文件進(jìn)行加密后還包括:將版本密鑰燒錄在硬件加S芯片中;所述獲取所述版本文件的密鑰的方式包括:讀取所述硬件加密芯片,獲取所述硬件加密芯片中的版本文件密鑰。進(jìn)一步地,本發(fā)明所述方法中,所述將文件系統(tǒng)拷貝到內(nèi)存高地址具體包括:獲取所述文件系統(tǒng)的大小,基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址,進(jìn)行文件系統(tǒng)拷貝。進(jìn)一步地,本發(fā)明所述方法中,所述創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。
進(jìn)一步地,本發(fā)明所述方法中,所述版本文件解密后還包括:對(duì)解密后的版本文件的正確性及合法性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過時(shí),進(jìn)行系統(tǒng)文件拷貝操作。另一方面,本發(fā)明還提供一種軟件版本保護(hù)實(shí)現(xiàn)系統(tǒng),包括:版本加密設(shè)備和版本解密設(shè)備;所述版本加密設(shè)備,用于對(duì)制作的版本文件進(jìn)行加密;所述版本解密設(shè)備,包括:版本加載模塊,用于當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件;文件拷貝模塊,用于將解密后的版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址;內(nèi)核啟動(dòng)模塊,用于利用解密后的版本文件中內(nèi)核文件啟動(dòng)內(nèi)核;分區(qū)模塊,用于在內(nèi)核啟動(dòng)后,創(chuàng)建基于內(nèi)存的MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。進(jìn)一步地,本發(fā)明所述系統(tǒng)中:所述版本加密設(shè)備還包括:密鑰燒錄模塊,用于在對(duì)版本文件進(jìn)行加密后,將版本密鑰燒錄在硬件加密芯片中;所述版本加載模塊,還用于讀取所述硬件加密芯片,獲取所述硬件加密芯片中的版本文件密鑰。進(jìn)一步地,本發(fā)明所述系統(tǒng)中,所述文件拷貝模塊具體包括:信息獲取子模塊,用于獲取所述文件系統(tǒng)的大小;地址分配子模塊,用于基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址;文件拷貝子模塊,用于基于分配的內(nèi)存地址進(jìn)行文件系統(tǒng)拷貝。進(jìn)一步地,本發(fā)明所述系統(tǒng)中,所述分區(qū)模塊具體用于,在創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。進(jìn)一步地,本發(fā)明所述系統(tǒng)中,所述版本解密設(shè)備還包括:校驗(yàn)?zāi)K,用于在所述版本文件解密后,對(duì)解密后的版本文件的正確性及合法性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過時(shí),觸發(fā)所述文件拷貝模塊。與現(xiàn)有技術(shù)相比,本發(fā)明有益效果如下:本發(fā)明所述的方法和系統(tǒng),在制作版本時(shí)通過密鑰對(duì)整個(gè)版本進(jìn)行加密,在版本啟動(dòng)時(shí),對(duì)版本進(jìn)行解密,使得軟件版本具有很高的保密性,從而避免了產(chǎn)品被抄襲,以及別人通過分析版本中有用信息對(duì)產(chǎn)品進(jìn)行攻擊的可能性。
圖1為本發(fā)明提供的一種軟件版本保護(hù)實(shí)現(xiàn)方法的流程圖;圖2為本發(fā)明提供的一種軟件版本保護(hù)實(shí)現(xiàn)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例提供一種軟件版本保護(hù)實(shí)現(xiàn)方法,主要應(yīng)用在嵌入式應(yīng)用環(huán)境中,該方法在制作版本時(shí)通過密鑰對(duì)整個(gè)版本進(jìn)行加密,然后在使用BOOTLOADER啟動(dòng)版本時(shí),通過BOOT LOADER對(duì)版本進(jìn)行解密,用以保證軟件版本不被非法破解,實(shí)現(xiàn)保護(hù)企業(yè)產(chǎn)品知識(shí)產(chǎn)權(quán)的目的。如圖1所示,本發(fā)明實(shí)施例提供的軟件版本保護(hù)實(shí)現(xiàn)方法,具體包括:步驟S101、對(duì)制作的版本文件進(jìn)行加密;該步驟中,版本文件包括:BOOT to RAM、內(nèi)核、文件系統(tǒng);該步驟中,對(duì)版本文件進(jìn)行加密后,優(yōu)選地,將版本密鑰燒錄在硬件加密芯片中。需要說明的是,該步驟所述的加密過程通常由版本制作方完成,后續(xù)解密過程則是對(duì)加密版本文件的應(yīng)用。步驟S102、當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件;步驟S103、將所述版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址,并利用所述版本文件中的內(nèi)核文件啟動(dòng)內(nèi)核;該步驟中,將文件系統(tǒng)拷貝到內(nèi)存高地址,具體包括:獲取所述文件系統(tǒng)的大小,基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址,進(jìn)行文件系統(tǒng)拷貝;該步驟中,利用所述版本文件中的內(nèi)核文件啟動(dòng)內(nèi)核,具體包括:將解密后的版本文件中的內(nèi)核文件進(jìn)行解壓,并跳到解壓后的內(nèi)核文件入口處執(zhí)行。步驟S104、內(nèi)核啟動(dòng)后,創(chuàng)建基于內(nèi)存的MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。該步驟中,創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。為了更清楚的表述本發(fā)明,下面給出本發(fā)明一個(gè)較佳的實(shí)施例,并結(jié)合對(duì)實(shí)施例的描述,進(jìn)一步給出本發(fā)明的技術(shù)細(xì)節(jié)。本發(fā)明實(shí)施例所述的方法的應(yīng)用場(chǎng)景主要涉及到嵌入應(yīng)用環(huán)境中,在嵌入式應(yīng)用環(huán)境中,通常BOOT分為兩個(gè)階段情況,本發(fā)明實(shí)施例可以在BOOT第一階段對(duì)版本進(jìn)行解密,在解密開始之前需要讀取硬件加密電路中密鑰,從而確保版本文件的安全。下面分別從版本加密和版本解密兩個(gè)方面進(jìn)行闡述:一,本發(fā)明實(shí)施例所述的對(duì)嵌入式軟件版本的加密的方案如下:I)編譯出BOOT RAM階段BOOT、內(nèi)核、文件系統(tǒng)。2)通過版本制作軟件將BOOT、內(nèi)核、文件系統(tǒng)制作成整個(gè)版本文件。3)通過密鑰對(duì)整個(gè)版本進(jìn)行加密,生成最終版本文件;優(yōu)選地,對(duì)版本文件進(jìn)行加密后,將版本的密鑰燒錄在硬件加密芯片中;其中,硬件加密芯片的密鑰為一次性燒錄,不可復(fù)制。二,對(duì)于版本啟動(dòng)解密的方案如下:I)版本啟動(dòng)進(jìn)入BOOT第一階段,將整個(gè)版本文件(BOOT to RAM、內(nèi)核、文件系統(tǒng))從FLASH中加載到內(nèi)存中。
2)通過BOOT第一階段驅(qū)動(dòng)程序讀取硬件加密芯片中的版本密鑰。3)通過讀取的版本的密鑰對(duì)整個(gè)版本文件進(jìn)行解密。4)通過對(duì)版本文件進(jìn)行校驗(yàn)確保文件正確無誤,并且對(duì)版本合法性進(jìn)行校驗(yàn),避免別人惡意篡改版本的可能性。5)在內(nèi)存空間的末尾高地址處,為版本文件中的文件系統(tǒng)分配內(nèi)存地址,并將文件系統(tǒng)拷貝到所述內(nèi)存地址中;該步驟主要用于后面創(chuàng)建基于內(nèi)存的MTD (memory technology device,內(nèi)存技術(shù)設(shè)備)分區(qū);該步驟中,分配的內(nèi)存地址大小根據(jù)文件系統(tǒng)的大小確定。6)對(duì)解密后的版本文件中的內(nèi)核版本文件進(jìn)行解壓,然后跳到解壓內(nèi)核文件入口處進(jìn)行執(zhí)行。7)在內(nèi)核啟動(dòng)后,創(chuàng)建基于內(nèi)存的MTD分區(qū),分區(qū)地址映射到BOOT階段將文件系統(tǒng)拷貝的內(nèi)存地址。8)掛載所述MTD分區(qū),掛載成功后,單板進(jìn)入正常工作狀態(tài)。通過上述具體實(shí)施方案可以看出,本發(fā)明所述的方法可以充分保證軟件版本的安全,可以避免別人抄襲產(chǎn)品的可能性,甚至可以避免別人破解后惡意攻擊產(chǎn)品的可能。如圖2所示,本發(fā)明實(shí)施例還提供一種軟件版本保護(hù)實(shí)現(xiàn)系統(tǒng),包括:版本加密設(shè)備210和版本解密設(shè)備220 ;版本加密設(shè)備210,用于對(duì)制作的版本文件進(jìn)行加密;優(yōu)選地,該版本加密設(shè)備210,在對(duì)版本文件進(jìn)行加密后,將版本密鑰燒錄在硬件加密芯片中。版本解密設(shè)備220,具體包括:版本加載模塊221,用于當(dāng)版本啟動(dòng)時(shí),將版本文件加載到內(nèi)存中,并獲取版本文件的密鑰,解密版本文件;優(yōu)選地,該版本加載模塊221讀取所述硬件加密芯片,獲取所述硬件加密芯片中的版本文件密鑰。文件拷貝模塊222,用于將解密后的版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址;該文件拷貝模塊222具體包括:信息獲取子模塊2221,用于獲取所述文件系統(tǒng)的大??;地址分配子模塊2222,用于基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址;文件拷貝子模塊2223,用于基于分配的內(nèi)存地址進(jìn)行文件系統(tǒng)拷貝。內(nèi)核啟動(dòng)模塊223,用于利用解密后的版本文件中內(nèi)核文件啟動(dòng)內(nèi)核;分區(qū)模塊224,用于在內(nèi)核啟動(dòng)后,創(chuàng)建基于內(nèi)存的MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。具體地,該分區(qū)模塊224,在創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。進(jìn)一步地,版本解密設(shè)備220還包括:校驗(yàn)?zāi)K225,用于在所述版本文件解密后,對(duì)解密后的版本文件的正確性及合法性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過時(shí),觸發(fā)文件拷貝模塊222。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種軟件版本保護(hù)實(shí)現(xiàn)方法,其特征在于,包括: 對(duì)制作的版本文件進(jìn)行加密; 當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件; 將所述版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址,并利用所述版本文件中的內(nèi)核文件啟動(dòng)內(nèi)核; 創(chuàng)建基于內(nèi)存的內(nèi)存技術(shù)設(shè)備MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。
2.如權(quán)利要求1所述的方法,其特征在于, 所述對(duì)版本文件進(jìn)行加密后還包括:將版本密鑰燒錄在硬件加密芯片中; 所述獲取所述版本文件的密鑰的方式包括:讀取所述硬件加密芯片,獲取所述硬件加密芯片中的版本文件密鑰。
3.如權(quán)利要求1所述的方法,其特征在于,所述將文件系統(tǒng)拷貝到內(nèi)存高地址具體包括:獲取所述文件系統(tǒng)的大小,基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址,進(jìn)行文件系統(tǒng)拷貝。
4.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。
5.如權(quán)利要求1或2或3或4所述的方法,其特征在于,所述版本文件解密后還包括:對(duì)解密后的版本文件的正確性及合法性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過時(shí),進(jìn)行系統(tǒng)文件拷貝操作。
6.一種軟件版本保護(hù)實(shí)現(xiàn)系統(tǒng),其特征在于,包括:版本加密設(shè)備和版本解密設(shè)備; 所述版本加密設(shè)備,用于對(duì)制作的版本文件進(jìn)行加密; 所述版本解密設(shè)備,包括: 版本加載模塊,用于當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件; 文件拷貝模塊,用于將解密后的版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址; 內(nèi)核啟動(dòng)模塊,用于利用解密后的版本文件中內(nèi)核文件啟動(dòng)內(nèi)核; 分區(qū)模塊,用于在內(nèi)核啟動(dòng)后,創(chuàng)建基于內(nèi)存的MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于, 所述版本加密設(shè)備還包括:密鑰燒錄模塊,用于在對(duì)版本文件進(jìn)行加密后,將版本密鑰燒錄在硬件加密芯片中; 所述版本加載模塊,還用于讀取所述硬件加密芯片,獲取所述硬件加密芯片中的版本文件密鑰。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述文件拷貝模塊具體包括: 信息獲取子模塊,用于獲取所述文件系統(tǒng)的大??; 地址分配子模塊,用于基于所述文件系統(tǒng)的大小在所述內(nèi)存末端的高地址處為所述文件系統(tǒng)分配內(nèi)存地址; 文件拷貝子模塊,用于基于分配的內(nèi)存地址進(jìn)行文件系統(tǒng)拷貝。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述分區(qū)模塊具體用于,在創(chuàng)建基于內(nèi)存的MTD分區(qū)時(shí),將創(chuàng)建的MTD分區(qū)地址映射到拷貝所述系統(tǒng)文件的內(nèi)存地址。
10.如權(quán)利要求6或7或8或9所述的系統(tǒng),其特征在于,所述版本解密設(shè)備還包括:校驗(yàn)?zāi)K,用于在所述版本文件解密后,對(duì)解密后的版本文件的正確性及合法性進(jìn)行校驗(yàn),當(dāng)校驗(yàn)通過時(shí),觸發(fā) 所述文件拷貝模塊。
全文摘要
本發(fā)明公開了一種軟件版本保護(hù)實(shí)現(xiàn)方法和系統(tǒng),所述方法包括對(duì)制作的版本文件進(jìn)行加密;當(dāng)版本啟動(dòng)時(shí),將所述版本文件加載到內(nèi)存中,并獲取所述版本文件的密鑰,解密所述版本文件;將所述版本文件中的文件系統(tǒng)拷貝到內(nèi)存高地址,并利用所述版本文件中的內(nèi)核文件啟動(dòng)內(nèi)核;創(chuàng)建基于內(nèi)存的內(nèi)存技術(shù)設(shè)備MTD分區(qū),掛載所述MTD分區(qū),單板啟動(dòng)。本發(fā)明所述方法在制作版本時(shí)通過密鑰對(duì)整個(gè)版本進(jìn)行加密,在版本啟動(dòng)時(shí),對(duì)版本進(jìn)行解密,使得軟件版本具有很高的保密性,從而避免了產(chǎn)品被抄襲,以及別人通過分析版本中有用信息對(duì)產(chǎn)品進(jìn)行攻擊的可能性。
文檔編號(hào)G06F21/12GK103106355SQ201110361000
公開日2013年5月15日 申請(qǐng)日期2011年11月15日 優(yōu)先權(quán)日2011年11月15日
發(fā)明者彭克青 申請(qǐng)人:中興通訊股份有限公司