新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 保證嵌入式系統(tǒng)程序完整性的技術(shù)設(shè)計(jì)方案

保證嵌入式系統(tǒng)程序完整性的技術(shù)設(shè)計(jì)方案

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

2、安全性原則:由于設(shè)計(jì)中任何部件的安全性缺陷以及運(yùn)行步驟上的漏洞都會(huì)導(dǎo)致系統(tǒng)被破壞的可能,所以本方案的安全性必須通過(guò)可信計(jì)算規(guī)范中可信鏈的建立過(guò)程進(jìn)行論證。從而構(gòu)造一個(gè)牢固的安全根基。

3、兼容性原則:基于嵌入式芯片廠商眾多,使用的架構(gòu)也不盡相同。因此本程序完整性保證設(shè)計(jì)方案應(yīng)該盡量做到只經(jīng)過(guò)有限的修改甚至無(wú)需進(jìn)行修改,即可應(yīng)用到大部分主流的之中。保證本設(shè)計(jì)的通用性。

3 項(xiàng)目研制內(nèi)容

本項(xiàng)目對(duì)完整性保證技術(shù)中的加密算法實(shí)現(xiàn),系統(tǒng)部件身份識(shí)別,系統(tǒng)運(yùn)行效率等關(guān)鍵技術(shù)進(jìn)行了綜合、深入的研究。

3.1 系統(tǒng)設(shè)計(jì)框架

整個(gè)嵌入式系統(tǒng)設(shè)計(jì)總體結(jié)構(gòu)圖如下圖所示,主要有主處理芯片、提供數(shù)據(jù)驗(yàn)證功能的可編程邏輯器件()、提供規(guī)范服務(wù)的芯片以及外部存儲(chǔ)器件。本系統(tǒng)運(yùn)行與兩種模式下:1、主要由與PC進(jìn)行數(shù)據(jù)交互的配置模式。2嵌入式處理芯片,,芯片協(xié)同工作的運(yùn)行模式。

配置模式下,F(xiàn)PGA讀出內(nèi)部Device DNA,輸出到PC端。之后掃描外部存儲(chǔ)設(shè)備(如flash)制定地址區(qū)間的內(nèi)容(一般為boot loader),進(jìn)行SHA-1運(yùn)算,產(chǎn)生數(shù)據(jù)摘要,輸出到PC端。Device DNA會(huì)作為DES算法的密鑰對(duì)上面提到的數(shù)據(jù)摘要進(jìn)行加密,Device DNA與加密值會(huì)通過(guò)固件程序保存在TCM芯片的可信存儲(chǔ)區(qū)域內(nèi)。

運(yùn)行模式下,主處理芯片通過(guò)FPGA產(chǎn)生的時(shí)鐘信號(hào)進(jìn)行工作。系統(tǒng)上電后,F(xiàn)PGA并不馬上對(duì)主處理芯片提供時(shí)鐘,而是先進(jìn)行完整性驗(yàn)證工作:1、裝載Device DNA,提供給內(nèi)部DES運(yùn)算部件作為密鑰使用。2、請(qǐng)求TCM芯片發(fā)送32位隨機(jī)數(shù),此隨機(jī)數(shù)將會(huì)被DES算法加密后送到FPGA,F(xiàn)PGA的DES部件對(duì)其進(jìn)行解密后,進(jìn)行存儲(chǔ)。3、FPGA讀取flash制定區(qū)域的內(nèi)容,并進(jìn)行SHA-1運(yùn)算,產(chǎn)生160位數(shù)據(jù)摘要。4、160位數(shù)據(jù)摘要被分為5組,每組32位。每組與此前接收到的32位隨機(jī)數(shù)組成64位數(shù)據(jù),進(jìn)行DES加密后,送到TCM芯片進(jìn)行校驗(yàn)。5、TCM芯片接收到5組數(shù)據(jù)后進(jìn)行解密。首先校驗(yàn)隨機(jī)數(shù)部分是否與之前發(fā)出的一致,若一致,則繼續(xù)校驗(yàn)數(shù)據(jù)摘要部分?jǐn)?shù)據(jù)與之前在配置模式下寫入的理想值是否一致。對(duì)比結(jié)果存放于特定內(nèi)存位置。6、FPGA為主處理芯片提供時(shí)鐘,并接通主處理芯片與外部存儲(chǔ)器與TCM的數(shù)據(jù)通路。用戶可以通過(guò)相關(guān)的接口讀取對(duì)比值,判斷系統(tǒng)是否被修改。

嵌入式完整性保證方案框架

嵌入式完整性保證方案框架

3.2 安全性分析

硬件安全性: Spartan-3A,全部硬件邏輯固化在芯片內(nèi)部,不可讀取。TCM:通過(guò)國(guó)家商密辦檢驗(yàn),不可讀取。Boot Loader完整性:FPGA將依次讀取Boot Loader的內(nèi)容,并計(jì)算Hash值。對(duì)Boot ROM的任何篡改都將改變Hash值。從而導(dǎo)致驗(yàn)證不通過(guò)。

以下是幾種可預(yù)見的攻擊方式:1、在已知Boot loader的內(nèi)容的前提下,計(jì)算出數(shù)據(jù)摘要的內(nèi)容,偽造FPGA。由于Device DNA是每一塊FPGA的身份識(shí)別碼,此值是唯一的。更換FPGA會(huì)導(dǎo)致用于DES加密密鑰的Device DNA改變,從而向TCM芯片傳送的加密值不正確。2、監(jiān)聽FPGA與TCM之間的通訊。由于TCM與FPGA通訊內(nèi)容還依賴于隨機(jī)數(shù),具有不可預(yù)見性,所以監(jiān)聽當(dāng)次的通訊內(nèi)容對(duì)之后內(nèi)容的破解并沒有作用。

3.3 可信鏈的建立

如之前所提到,一個(gè)可信的系統(tǒng)的建立,必須是硬件,操作系統(tǒng),軟件應(yīng)用三者共同作用的結(jié)果,本完整性保證設(shè)計(jì)也不例外。本次設(shè)計(jì)的可信根建立于以下兩個(gè)事實(shí)之上:1、TCM的保密區(qū)域存儲(chǔ)空間不能被讀取。2、FPGA的Device DNA是唯一對(duì)應(yīng)于一塊FPGA的。

經(jīng)過(guò)3.1小結(jié)的驗(yàn)證步驟,我們把可信根擴(kuò)展到了Boot Loader。Boot Loader是嵌入式系統(tǒng)中用于系統(tǒng)初始化以及載入操作系統(tǒng)的程序。保證Boot Loader的完整性的意義在于保證了操作系統(tǒng)在正確的環(huán)境以及以正確的方式被加載。之后程序員就可以通過(guò)軟件的手段對(duì)建立在操作系統(tǒng)之上的應(yīng)用進(jìn)行安全保證。

信任鏈的建立及傳遞

信任鏈的建立及傳遞

5 研制成果及應(yīng)用

5.1 研制成果

本項(xiàng)目的主要研制成果有三個(gè)方面:

完成了一套具備可信計(jì)算功能的硬件開發(fā)板。

經(jīng)過(guò)了一年的研發(fā),本開發(fā)板的各項(xiàng)功能都被驗(yàn)證具備穩(wěn)定運(yùn)作的能力,由于其采用的是主流的資源配置,因此可擴(kuò)展性也是有目共睹的,具體指標(biāo)如下:

ARM7內(nèi)核的三星44B0X處理器,最高運(yùn)行速度達(dá)到66Mhz

Xilinx Spartan3A FPGA芯片,多達(dá)200萬(wàn)門的可編程邏輯資源

16M Nor Flash,16M SDRAM能滿足大部分應(yīng)用需要

100M網(wǎng)絡(luò)接口,支持高速內(nèi)核下載及燒寫

2個(gè)標(biāo)準(zhǔn)UART-232接口,能提供與TCM芯片的穩(wěn)定連接及常見外設(shè)的數(shù)據(jù)傳輸

完成了TCM固件程序開發(fā)及uclinux工具鏈的配套

目前,我們已經(jīng)利用中興提供的開發(fā)平臺(tái)開發(fā)了相關(guān)的TCM固件程序,使得TCM芯片與本嵌入式平臺(tái)在啟動(dòng)階段可以自動(dòng)完成驗(yàn)證功能。而與此同時(shí),通過(guò)進(jìn)一步的固件程序開發(fā),TCM芯片可以提供更豐富的驗(yàn)證加密功能,以滿足更多的可信計(jì)算需要。

與此同時(shí),通過(guò)busybox工具鏈,也成功把uclinux2.4成功移植到本嵌入式平臺(tái)上,運(yùn)行正常。

6 項(xiàng)目總結(jié)

通過(guò)本項(xiàng)目的研發(fā),項(xiàng)目組總結(jié)經(jīng)驗(yàn)如下:

1) 需要注意項(xiàng)目經(jīng)驗(yàn)的積累及轉(zhuǎn)化。從2008年12月提出設(shè)計(jì)方案到2010年產(chǎn)品的實(shí)現(xiàn),其中進(jìn)行過(guò)數(shù)次的方案改動(dòng)。改進(jìn)方案的建議不僅來(lái)自領(lǐng)隊(duì)老師自己,還來(lái)自參與本項(xiàng)目的學(xué)生和過(guò)程中不斷吸收進(jìn)來(lái)的一些最新的外來(lái)研究經(jīng)驗(yàn)和成果。不斷的改進(jìn)并不代表對(duì)之前工作的否定,恰恰相反,沒有一些針對(duì)前期方案的準(zhǔn)備和工作的體會(huì),是沒有可能提出更成熟,更穩(wěn)定的改進(jìn)方案。因此,在項(xiàng)目實(shí)施過(guò)程中,積極與外界溝通,同時(shí)組織團(tuán)隊(duì)進(jìn)行方案的再三討論,對(duì)于項(xiàng)目的實(shí)施和進(jìn)步是十分有利的。

2) 對(duì)中間結(jié)果進(jìn)行規(guī)范化的制作,形成可用的產(chǎn)品。在本項(xiàng)目進(jìn)行的過(guò)程中,恰逢IBM PowerPC與工業(yè)和信息化部IP核標(biāo)準(zhǔn)工作組共同推廣中國(guó)開源IP標(biāo)準(zhǔn)化工作。于是在保證工作質(zhì)量和進(jìn)度的前提下,我們嘗試把嵌入式系統(tǒng)程序完整性保證的概念移植到PowerPC支持的PLB總線上。同時(shí)參照相關(guān)的標(biāo)準(zhǔn)化要求,完成了“帶有完整性驗(yàn)證功能的外部存儲(chǔ)控制器”的IP核標(biāo)準(zhǔn)化設(shè)計(jì)。最終在這個(gè)過(guò)程中,不僅使學(xué)生的能力得到鍛煉,同時(shí)還驗(yàn)證了本設(shè)計(jì)的可擴(kuò)展性和可移植性。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉