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