一種嵌入式固件保護的方法和裝置的制造方法
【技術領域】
[0001]本發明涉及電子設備的嵌入式固件保護技術領域,尤其涉及一種嵌入式固件保護的方法和裝置。
【背景技術】
[0002]隨著嵌入式設備或嵌入式電子產品,尤其是像智能手機、智能電子產品或者專用的智能手持終端產品的發展;這些嵌入式電子產品其自身核心的價值在于其智能系統的創新和應用的創新,而這些創新是由嵌入式電子產品的軟硬件凝聚在一起的結果。而對這樣的一個軟硬件集成系統知識產權的保護需要在軟硬件整體方面加以考慮是比較可行的方案。
[0003]首先,對于嵌入式電子產品來講,對于一些別有用心的山寨者來說,通過操板等方式很容者得到硬件的整個原理圖、電路板結構圖和整個物料清單(B0M,Bill of Material)清單,因此單單從硬件方面做產品的保護而不被復制和克隆是不具備可行性的。其次,從軟件方面,儲存在通用存儲器中的電子產品固件(代碼和數據信息等)也是很容易被讀取出來的。有了硬件和固件,山寨者不用開發就很容易將電子產品加以復制和山寨。
[0004]因此,如何防止嵌入式設備很容易被復制或被克隆,是亟待解決的技術問題。
【發明內容】
[0005]為解決現有存在的技術問題,本發明期望提供一種嵌入式固件保護的方法和裝置。
[0006]為實現上述發明目的,本發明采用以下方式來實現:
[0007]本發明提供了一種嵌入式固件保護的方法,所述方法包括:
[0008]通過嵌入式固件加密機上的硬件安全算法集成電路對嵌入式固件進行加密,并將加密的嵌入式固件存儲在嵌入式固件應用設備Flash存儲器中;
[0009]在嵌入式固件運行之前,由嵌入式固件應用設備上的硬件安全算法集成電路對Flash存儲器中加密的嵌入式固件部分進行解密,獲得解密的嵌入式固件。
[0010]本發明還提供了一種嵌入式固件加密機,內設硬件安全算法集成電路,所述硬件安全算法集成電路用于對嵌入式固件進行加密,獲得加密的嵌入式固件;所述嵌入式固件加密機將加密的嵌入式固件存儲在嵌入式固件應用設備Flash存儲器中。
[0011]本發明提供了一種嵌入式固件應用設備,內設硬件安全算法集成電路,所述硬件安全算法集成電路用于在嵌入式固件運行之前,對Flash存儲器中加密的嵌入式固件進行解密,獲得解密的嵌入式固件。
[0012]本發明所提供的一種嵌入式固件保護的方法和裝置,利用專用的硬件安全算法集成電路對開發平臺編譯好的嵌入式固件進行加密,并將加密的嵌入式固件存儲在Flash存儲器中以起到對來嵌入式固件進行的保護的作用,進而防止嵌入式設備被山寨和復制。
【附圖說明】
[0013]圖1為本發明實施例的嵌入式固件加密示意圖;
[0014]圖2為本發明實施例的嵌入式固件解密示意圖;
[0015]圖3為本發明實施例的嵌入式固件RO段加載域和運行域在不同存儲器的結構圖;
[0016]圖4為本發明實施例的嵌入式固件全加密示意圖;
[0017]圖5為本發明實施例的全加密的嵌入式固件加載運行結構示意圖;
[0018]圖6為本發明實施例的嵌入式固件RO段加載域和運行域在同一存儲器的結構圖;
[0019]圖7為本發明實施例的嵌入式固件部分段(RW段)加密結構示意圖;
[0020]圖8為本發明實施例的部分段(RW段)加密的嵌入式固件加載運行結構示意圖。
【具體實施方式】
[0021]下面結合附圖和具體實施例對本發明的技術方案進一步詳細闡述。
[0022]為了有效的對電子產品進行保護,必須通過軟硬件兩個方面加以考慮。本發明實施例利用專門的硬件安全算法集成電路來對軟件代碼加密保護;并且采用分散加密算法的方式來保證一機一密,使得電子產品被破解或者山寨的安全防護等級更高,破解者或者山寨者付出的代價更大。從而起到保護電子產品的作用。
[0023]本發明實施例為解決嵌入式電子產品設備很容易被山寨或者被克隆的問題,提出了一種利用專用的硬件安全算法集成電路對嵌入式固件代碼進行保護的方法,參見圖1所示的嵌入式固件加密示意圖,嵌入式固件代碼經由嵌入式固件代碼加密機中的硬件安全算法集成電路加密后,輸出的是嵌入式固件代碼的密文。進一步的,本發明實施例的嵌入式固件保護方法主要包括以下內容:
[0024]1、根據嵌入式電子產品所需的嵌入式固件,在開發平臺上根據其加載和運行空間的分配需要進行代碼編譯,生成可執行二進制文件,這個二進制文件就稱之為嵌入式固件;
[0025]2、根據編譯后的嵌入式固件使用專用的嵌入式固件加密機(內置硬件安全算法集成電路)進行加密,將加密的嵌入式固件存放在嵌入式固件應用設備相應的Flash存儲區域中;所述嵌入式固件應用設備上集成有與嵌入式固件代碼加密機相同安全算法的硬件安全算法集成電路;
[0026]3、嵌入式固件加密機和嵌入式固件應用設備的安全算法集成電路具備有兩種安全算法,安全算法I用于嵌入式固件加解密密鑰的生成,安全算法2用于嵌入式固件加解密;安全算法I的密鑰稱之為根密鑰,安全算法2的密鑰稱之為分散密鑰;
[0027]4、使用嵌入式固件加密機對嵌入式固件進行加密時具有一定的原則,根據嵌入式固件的加載和運行空間、以及嵌入式系統開機初始化時間的要求等,只需要對嵌入式固件運行在RAM空間的部分代碼進行加密,對于運行在Flash空間的代碼部分不進行加密;
[0028]5、嵌入式固件代碼進行加密和解密的密鑰具有唯一性,其唯一性的特征來源于其所運行所在嵌入式固件應用設備的SN序列號的唯一性;
[0029]6、嵌入式固件加密機和嵌入式固件應用設備的安全算法集成電路上只發行根密鑰,不發行嵌入式固件代碼進行加密和解密的分散密鑰,嵌入式固件代碼進行加密和解密的分散密鑰由安全算法I使用根密鑰對嵌入式固件應用設備的SN序列號以一定的規則進行加密分散得到;
[0030]7、在嵌入式代碼運行之前,需使用安全算法2對Flash中加密的嵌入式固件中運行在RAM中的代碼進行解密并加載到相應的RAM地址中,參見圖2所示的嵌入式固件解密示意圖。
[0031]本發明利用專用的硬件安全算法集成電路對開發平臺編譯好的嵌入式固件進行加密,并將加密的嵌入式固件存儲在Flash存儲器中以起到對來嵌入式固件進行的保護的作用,進而防止嵌入式設備被山寨和復制。其中,所述嵌入式固件加密是在集成有專用安全算法集成電路的加密機上進行,加密的嵌入式固件存儲在嵌入式固件應用設備的Flash存儲器中,在嵌入式固件運行之前需要利用嵌入式固件應用設備上的專用硬件安全算法集成電路對Flash中加密的嵌入式固件部分進行解密,并加載到其所對應的RAM運行地址空間。本發明的主要思想是將代碼編譯鏈接后生成需要運行在RAM地址空間的嵌入式固件進行加密,然后將其燒錄到Flash存儲器中,通過硬件安全算法集成電路的方式來實現存儲區中固件的私密性,從而起到嵌入式電子設備保護不被山寨和復制的效果。
[0032]本發明將嵌入式固件應用設備存儲器分為兩類,Flash和RAM,整個嵌入式固件的加載地址空間是Flash存儲器,嵌入式固件的運行地址空間可分為兩種:R0和RW段運行地址空間都是RAM存儲器,如圖3所示;RO段運行地址空間為Flash存儲器,RW段運行地址空間為RAM存儲器。
[0033]針對于圖3的映像結構,嵌入式固件加密可以對整個固件映像文件進行加密,也可以對映像RW段進行加密,這里以對整個映像文件進行加密加以敘述。對嵌入式固件加密需要在集成有專用硬件安全算法集成電路的加密機上進行。如圖4所示,硬件安全算法集成電路具有三部分:根密鑰,安全算法I,安全算法2。嵌入式固件在加密機中加密的過程如下所述:
[0034]1、對嵌入式固件應用