專利名稱:一種嵌入式軟件安全保護(hù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一種嵌入式軟件安全保護(hù)系統(tǒng),將該方法應(yīng)用于嵌入式軟件安全防護(hù)過程中,可以增加嵌入式軟件的安全性。
背景技術(shù):
目前市場針對ARM,DSP、單片機(jī)通常的安全防護(hù)手段很少,重要的程序直接暴露在透明的Flash、EEPR0M中。面對不斷發(fā)展的攻擊技術(shù)以及黑客之間的競爭,產(chǎn)品的破解時間和成本越來越低,相對于產(chǎn)品仿制者獲得的巨大利益,有時其破解成本甚至可以忽略不計。因此,如何保護(hù)自身的利益,是產(chǎn)品設(shè)計者必須面對的問題。單片機(jī)和嵌入式系統(tǒng)一般都有內(nèi)部R0M/EEPR0M/FLASH供用戶存放程序,在系統(tǒng)運(yùn)行的過程中;CPU將存儲器中的程序加載到內(nèi)存或者SDRAM中,進(jìn)行執(zhí)行。為了防止未經(jīng)授權(quán)訪問或拷貝單片機(jī)的機(jī)內(nèi)程序,大部分單片機(jī)都帶有加密鎖定位或者加密字節(jié),以保護(hù)片內(nèi)程序。如果在編程時加密鎖定位被使能(鎖定),就無法用普通編程器直接讀取單片機(jī)內(nèi)的程序,這就是所謂拷貝保護(hù)或者說鎖定功能。事實上,這樣的保護(hù)措施很脆弱,很容易被破解。單片機(jī)攻擊者借助專用設(shè)備或者自制設(shè)備,利用單片機(jī)芯片設(shè)計上的漏洞或軟件缺陷,通過多種技術(shù)手段,就可以從芯片中提取關(guān)鍵信息,從而獲取FLASH或者EPROM內(nèi)程序或者直接從SDRAM或者內(nèi)存中或者程序運(yùn)行的關(guān)鍵數(shù)據(jù)內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有技術(shù)的不足,提出一種對設(shè)備和數(shù)據(jù)進(jìn)行安全防護(hù)的嵌入式軟件安全保護(hù)系統(tǒng)。本發(fā)明是這樣實現(xiàn)的—種嵌入式軟件安全保護(hù)系統(tǒng),在嵌入式設(shè)備上設(shè)有安全防護(hù)模塊,所述安全防護(hù)模塊包括物理防撬裝置及防撬蓋板、硬件加解密模塊電路,所述加解密模塊電路用于CPU對EPROM數(shù)據(jù)訪問的接管并配合物理防撬裝置及防撬蓋板實現(xiàn)對SRAM數(shù)據(jù)的動態(tài)防護(hù)。如上所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其中所述加解密模塊電路包括相連的FPGA和安全芯片,F(xiàn)PGA輸出CPU信號和NVM信號;所述FPGA用于邏輯控制信號的生成,并負(fù)責(zé)CPU訪問存儲器的接管;安全芯片用于對數(shù)據(jù)的加解密、密鑰管理。如上所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其中所述物理防撬裝置及防撬蓋板I包括安全狀態(tài)總線及安全總線狀態(tài)檢測電路;所述安全狀態(tài)總線的引出端排線采用亂序方式分布;所述安全狀態(tài)總線的引出端通過固定裝置固定于防撬蓋板。如上所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其中所述安全芯片執(zhí)行安全檢測程序在通信過程中,安全檢測程序定時將安全芯片生成隨機(jī)數(shù)發(fā)送給FPGA,F(xiàn)PGA利用散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算并回傳給安全芯片;安全檢測程序利用同樣的散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算,并將結(jié)果同F(xiàn)PGA回傳的結(jié)果相比較;如果結(jié)果一致,說明安全狀態(tài)總線正確連接,系統(tǒng)安全狀態(tài)正常;否則,視為系統(tǒng)安全狀態(tài)異常;若系統(tǒng)安全狀態(tài)異常,安全檢測程序立即向CPU發(fā)出自毀命令,清除SRAM中數(shù)據(jù)和安全芯片中的密鑰,使CPU掛起,停止工作。如上所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其中所述加解密模塊電路在每次加密時采用的密鑰不同;數(shù)據(jù)加密前,安全芯片生成新的隨機(jī)數(shù),存儲于安全芯片的flash中,讀取硬件序列號,利用隨機(jī)數(shù)和硬件序列號組合生成密鑰種子,通過安全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)加密密鑰,用于數(shù)據(jù)加密處理;數(shù)據(jù)解密前,首先對安全芯片進(jìn)行配置,讀取硬件序列號,再利用安全芯片序列號和存儲的隨機(jī)數(shù)組合生成密鑰種子,最后通過安全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)解密密鑰,用于CPU與存儲器之間的數(shù)據(jù)解密處理;加解密密鑰存儲在安全芯片的內(nèi)存中,所述密鑰在嵌入式設(shè)備掉電后消失,再次 上電時重新合成密鑰種子,生成加解密密鑰。如上所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其中所述加解密模塊電路通過PC端加密處理實現(xiàn)對嵌入式軟件的加密加密芯片先產(chǎn)生一個隨機(jī)數(shù),之后將隨機(jī)數(shù)存儲到加密芯片中,完成安全防護(hù)模塊初始化過程,隨機(jī)數(shù)結(jié)合芯片序列號通過SHAl雜湊算法生成密鑰,再通過SMl分組算法進(jìn)行嵌入式軟件加密;解密時,加密芯片通過已經(jīng)存儲的隨機(jī)數(shù)、加密芯片序列號,同樣的雜湊算法和解密算法進(jìn)行解密處理即可。本發(fā)明的有益效果是通過增加安全防護(hù)模塊,能夠?qū)υO(shè)備和數(shù)據(jù)進(jìn)行有效的安全防護(hù)。通過在安全芯片內(nèi)部運(yùn)行安全監(jiān)測程序,能夠定時檢查物理防撬裝置的有效性。采用物理防撬裝置及防撬蓋板防,具有防破壞能力,防止攻擊者使用探針探測等方式獲取敏感信息;并且防撬蓋板可以屏蔽電磁輻射,防止攻擊者利用電磁輻射泄露攻擊安全系統(tǒng)。通過采用“一次一密”原則,進(jìn)一步保證密鑰和硬件模塊的一一對應(yīng)關(guān)系。
圖I是本發(fā)明提供的一種嵌入式軟件安全保護(hù)系統(tǒng)的結(jié)構(gòu)原理圖;圖4是本發(fā)明提供的一種嵌入式軟件安全保護(hù)系統(tǒng)的外部結(jié)構(gòu)圖;圖2是解密電路工作流程;圖3是安全狀態(tài)監(jiān)控流程;圖5是PC端加密處理流程圖;圖中1.物理防撬裝置及防撬蓋板,2.加解密模塊電路,3.嵌入式設(shè)備主板,4.螺絲。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明提供的一種嵌入式軟件安全保護(hù)系統(tǒng)做進(jìn)一步介紹如圖1、2所示,一種嵌入式軟件安全系統(tǒng),在嵌入式設(shè)備上增加安全防護(hù)模塊,該安全防護(hù)模塊包括物理防撬裝置及防撬蓋板I、硬件加解密模塊電路2 ;加解密模塊電路2實現(xiàn)CPU對EPROM數(shù)據(jù)訪問的接管,并配合物理防撬裝置及防撬蓋板I實現(xiàn)對SRAM數(shù)據(jù)的動態(tài)防護(hù)。其中,
(I)加解密模塊電路包括FPGA、安全芯片、排針(含CPU信號和NVM信號);FPGA與安全芯片相連,F(xiàn)PGA輸出CPU信號和NVM信號。FPGA實現(xiàn)各種邏輯控制信號的生成,并負(fù)責(zé)CPU訪問存儲器的接管;安全芯片實現(xiàn)對數(shù)據(jù)的加解密、密鑰管理以及作為安全檢測程序的運(yùn)行載體,實現(xiàn)對SRAM中數(shù)據(jù)的動態(tài)保護(hù),防止非法分析和破解。如圖3所示,加解密模塊電路工作原理如下嵌入式設(shè)備每次上電時,F(xiàn)PGA控制邏輯信號,掛起CPU,使能安全芯片,運(yùn)行安全檢測程序,使FPGA和安全芯片握手通信,借以判定安全監(jiān)控狀態(tài);如果狀態(tài)正常,則FPGA讀取EPROM中的程序到安全芯片中,利用SHAl算法生成解密密鑰,進(jìn)行解密處理,處理完成后再使能CPU,加載程序到內(nèi)存中執(zhí)行。安全芯片內(nèi)部運(yùn)行有安全監(jiān)測程序,它在系統(tǒng)運(yùn)行過程中常駐安全芯片內(nèi)存,主要工作就是定時檢查物理防撬裝置的有效性,保證安全芯片和FPGA進(jìn)行通信。如圖3所示,在通信過程中,安全檢測程序定時將安全芯片生成隨機(jī)數(shù)發(fā)送給FPGA,F(xiàn)PGA利用散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算并回傳給安全芯片,安全檢測程序也利用同樣的散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算,并將結(jié)果同F(xiàn)PGA回傳的結(jié)果相比較。如果結(jié)果一致,說明安全狀態(tài)總線正確連接,系統(tǒng)安全狀態(tài)正常;否則,視為系統(tǒng)安全狀態(tài)異常。如果攻擊者想竊取內(nèi)存或EPROM中的數(shù)據(jù),首先要移掉防撬蓋板,而一旦防撬蓋板被移除以后,安全狀態(tài)總線被破壞,安全檢測程序不能及時同F(xiàn)PGA進(jìn)行握手通信,從而探測到該攻擊行為,安全檢測程序立即向CPU發(fā)出自毀命令,清除SRAM中數(shù)據(jù)和安全芯片中的密鑰,使CPU掛起,停止工作。(2)物理防撬裝置及防撬蓋板I還包括安全狀態(tài)總線(細(xì)軟排線引出端)及安全總線狀態(tài)檢測電路等。安全狀態(tài)總線的引出端優(yōu)選采用細(xì)軟排線,該排線采用亂序方式分布,一旦拉斷,不可恢復(fù)原來狀態(tài);安全狀態(tài)總線的引出端通過固定裝置固定于防撬蓋板,一旦防撬蓋板被打開即被拉斷,安全檢測程序探測到該行為即清空密鑰、SRAM并通知CPU復(fù)位。防撬蓋板采用硬質(zhì)金屬材質(zhì)制成,具有防破壞能力,并通過螺絲4固定于嵌入式設(shè)備主板3,從而將安全防護(hù)模塊和總控機(jī)CPU、SRAM及EPROM罩入其內(nèi)部,防止攻擊者使用探針探測等方式獲取敏感信息。防撬蓋板采用金屬材質(zhì)制成,具有良好的導(dǎo)熱性能,通過跟CPU導(dǎo)熱片的接觸,可以輔助散熱。此外,防撬蓋板可以屏蔽電磁輻射,防止攻擊者利用電磁福射泄露攻擊安全系統(tǒng)。如圖4所示,安全總線狀態(tài)檢測電路其工作原理為,安全芯片定時產(chǎn)生隨機(jī)數(shù),并通過安全狀態(tài)總線發(fā)送給FPGA,F(xiàn)PGA利用內(nèi)嵌的散列算法對該隨機(jī)數(shù)進(jìn)行運(yùn)算并將結(jié)果通過安全總線回傳到安全芯片,安全芯片驗證運(yùn)算結(jié)果;如果結(jié)果不正確,說明安全總線狀態(tài)存在異常,從而執(zhí)行相關(guān)的安全保護(hù)動作。為了進(jìn)一步保證密鑰和硬件模塊的一一對應(yīng)關(guān)系,本發(fā)明采用“一次一密”原則,即每次加密時采用的密鑰不同,從而從根本上保證軟件加密的安全性。數(shù)據(jù)加密前,安全芯片生成新的隨機(jī)數(shù),存儲于安全芯片的flash中,讀取硬件序列號,利用隨機(jī)數(shù)和硬件序列號組合生成密鑰種子,通過安全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)加密密鑰,用于數(shù)據(jù)加密處理。數(shù)據(jù)解密前,首先對安全芯片進(jìn)行配置,讀取硬件序列號,再利用安全芯片序列號和存儲的隨機(jī)數(shù)組合生成密鑰種子,最后通過安全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)解密密鑰,用于CPU與存儲器之間的數(shù)據(jù)解密處理。加解密密鑰存儲在安全芯片的內(nèi)存中,為保證安全起見,該密鑰不做永久存儲,嵌入式設(shè)備掉電后消失,再次上電時重新合成密鑰種子,生成加解密密鑰。PC端加密程序負(fù)責(zé)對嵌入式設(shè)備軟件加密,同時對加解密電路進(jìn)行隨機(jī)數(shù)初始化,進(jìn)行“一次一密”配置。PC端加密程序運(yùn)行于Windows環(huán)境,通過串口與安全防護(hù)模塊通訊,且通過硬件加解密電路實現(xiàn)對嵌入式軟件加密。PC端加密處理如圖5所示,加密芯片先產(chǎn)生一個隨機(jī)數(shù),之后將隨機(jī)數(shù)存儲到加密芯片中,完成符合“一次一密”的安全防護(hù)模塊初始化過程,隨機(jī)數(shù)結(jié)合芯片序列號通過SHAl雜湊算法生成密鑰,再通過SMl分組算法進(jìn)行嵌入式軟件加密。在正常運(yùn)行過程中,加密芯片通過已經(jīng)存儲的隨機(jī)數(shù)、加密芯片序列 號,通過同樣的雜湊算法和解密算法進(jìn)行解密處理,就可以正確進(jìn)行解密。
權(quán)利要求
1.一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于在嵌入式設(shè)備上設(shè)有安全防護(hù)模塊,所述安全防護(hù)模塊包括物理防撬裝置及防撬蓋板(I)、硬件加解密模塊電路(2),所述加解密模塊電路(2)用于CPU對EPROM數(shù)據(jù)訪問的接管并配合物理防撬裝置及防撬蓋板(I)實現(xiàn)對SRAM數(shù)據(jù)的動態(tài)防護(hù)。
2.如權(quán)利要求I所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于所述加解密模塊電路包括相連的FPGA和安全芯片,F(xiàn)PGA輸出CPU信號和NVM信號;所述FPGA用于邏輯控制信號的生成,并負(fù)責(zé)CPU訪問存儲器的接管;安全芯片用于對數(shù)據(jù)的加解密、密鑰管理。
3.如權(quán)利要求2所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于所述物理防撬裝置及防撬蓋板I包括安全狀態(tài)總線及安全總線狀態(tài)檢測電路;所述安全狀態(tài)總線的引出端排線采用亂序方式分布;所述安全狀態(tài)總線的引出端通過固定裝置固定于防撬蓋板。
4.如權(quán)利要求3所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于所述安全芯片執(zhí)行安全檢測程序在通信過程中,安全檢測程序定時將安全芯片生成隨機(jī)數(shù)發(fā)送給FPGA,F(xiàn)PGA利用散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算并回傳給安全芯片;安全檢測程序利用同樣的散列算法對隨機(jī)數(shù)進(jìn)行運(yùn)算,并將結(jié)果同F(xiàn)PGA回傳的結(jié)果相比較;如果結(jié)果一致,說明安全狀態(tài)總線正確連接,系統(tǒng)安全狀態(tài)正常;否則,視為系統(tǒng)安全狀態(tài)異常;若系統(tǒng)安全狀態(tài)異常,安全檢測程序立即向CPU發(fā)出自毀命令,清除SRAM中數(shù)據(jù)和安全芯片中的密鑰,使CPU掛起,停止工作。
5.如權(quán)利要求4所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于所述加解密模塊電路(2)在每次加密時采用的密鑰不同;數(shù)據(jù)加密前,安全芯片生成新的隨機(jī)數(shù),存儲于安全芯片的flash中,讀取硬件序列號,利用隨機(jī)數(shù)和硬件序列號組合生成密鑰種子,通過安 全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)加密密鑰,用于數(shù)據(jù)加密處理; 數(shù)據(jù)解密前,首先對安全芯片進(jìn)行配置,讀取硬件序列號,再利用安全芯片序列號和存儲的隨機(jī)數(shù)組合生成密鑰種子,最后通過安全芯片自身的SHAl雜湊算法對密鑰種子進(jìn)行運(yùn)算,從而生成數(shù)據(jù)解密密鑰,用于CPU與存儲器之間的數(shù)據(jù)解密處理; 加解密密鑰存儲在安全芯片的內(nèi)存中,所述密鑰在嵌入式設(shè)備掉電后消失,再次上電時重新合成密鑰種子,生成加解密密鑰。
6.如權(quán)利要求5所述的一種嵌入式軟件安全保護(hù)系統(tǒng),其特征在于所述加解密模塊電路⑵通過PC端加密處理實現(xiàn)對嵌入式軟件的加密加密芯片先產(chǎn)生一個隨機(jī)數(shù),之后將隨機(jī)數(shù)存儲到加密芯片中,完成安全防護(hù)模塊初始化過程,隨機(jī)數(shù)結(jié)合芯片序列號通過SHAl雜湊算法生成密鑰,再通過SMl分組算法進(jìn)行嵌入式軟件加密;解密時,加密芯片通過已經(jīng)存儲的隨機(jī)數(shù)、加密芯片序列號,同樣的雜湊算法和解密算法進(jìn)行解密處理即可。
全文摘要
本發(fā)明屬于信息安全技術(shù)領(lǐng)域,具體涉及一種嵌入式軟件安全保護(hù)系統(tǒng),目的是增加嵌入式軟件的安全性。該系統(tǒng)在嵌入式設(shè)備上設(shè)有安全防護(hù)模塊,所述安全防護(hù)模塊包括物理防撬裝置及防撬蓋板、硬件加解密模塊電路,加解密模塊電路用于CPU對EPROM數(shù)據(jù)訪問的接管并配合物理防撬裝置及防撬蓋板實現(xiàn)對SRAM數(shù)據(jù)的動態(tài)防護(hù)。采用物理防撬裝置及防撬蓋板防,具有防破壞能力,防止攻擊者使用探針探測等方式獲取敏感信息;并且防撬蓋板可以屏蔽電磁輻射,防止攻擊者利用電磁輻射泄露攻擊安全系統(tǒng)。
文檔編號G06F21/00GK102799819SQ201210228800
公開日2012年11月28日 申請日期2012年7月4日 優(yōu)先權(quán)日2012年7月4日
發(fā)明者蘇均生, 李寧 申請人:北京京航計算通訊研究所