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