保證嵌入式系統(tǒng)程序完整性的技術(shù)設(shè)計方案
2、安全性原則:由于設(shè)計中任何部件的安全性缺陷以及運行步驟上的漏洞都會導(dǎo)致系統(tǒng)被破壞的可能,所以本方案的安全性必須通過可信計算規(guī)范中可信鏈的建立過程進行論證。從而構(gòu)造一個牢固的安全根基。
3、兼容性原則:基于嵌入式芯片廠商眾多,使用的架構(gòu)也不盡相同。因此本嵌入式系統(tǒng)程序完整性保證設(shè)計方案應(yīng)該盡量做到只經(jīng)過有限的修改甚至無需進行修改,即可應(yīng)用到大部分主流的嵌入式系統(tǒng)之中。保證本設(shè)計的通用性。
3 項目研制內(nèi)容
本項目對嵌入式系統(tǒng)完整性保證技術(shù)中的加密算法實現(xiàn),系統(tǒng)部件身份識別,系統(tǒng)運行效率等關(guān)鍵技術(shù)進行了綜合、深入的研究。
3.1 系統(tǒng)設(shè)計框架
整個嵌入式系統(tǒng)設(shè)計總體結(jié)構(gòu)圖如下圖所示,主要有主處理芯片、提供數(shù)據(jù)驗證功能的可編程邏輯器件(FPGA)、提供TCM規(guī)范服務(wù)的TCM芯片以及外部存儲器件。本系統(tǒng)運行與兩種模式下:1、主要由FPGA與PC進行數(shù)據(jù)交互的配置模式。2嵌入式處理芯片,FPGA,TCM芯片協(xié)同工作的運行模式。
配置模式下,F(xiàn)PGA讀出內(nèi)部Device DNA,輸出到PC端。之后掃描外部存儲設(shè)備(如flash)制定地址區(qū)間的內(nèi)容(一般為boot loader),進行SHA-1運算,產(chǎn)生數(shù)據(jù)摘要,輸出到PC端。Device DNA會作為DES算法的密鑰對上面提到的數(shù)據(jù)摘要進行加密,Device DNA與加密值會通過固件程序保存在TCM芯片的可信存儲區(qū)域內(nèi)。
運行模式下,主處理芯片通過FPGA產(chǎn)生的時鐘信號進行工作。系統(tǒng)上電后,F(xiàn)PGA并不馬上對主處理芯片提供時鐘,而是先進行完整性驗證工作:1、裝載Device DNA,提供給內(nèi)部DES運算部件作為密鑰使用。2、請求TCM芯片發(fā)送32位隨機數(shù),此隨機數(shù)將會被DES算法加密后送到FPGA,F(xiàn)PGA的DES部件對其進行解密后,進行存儲。3、FPGA讀取flash制定區(qū)域的內(nèi)容,并進行SHA-1運算,產(chǎn)生160位數(shù)據(jù)摘要。4、160位數(shù)據(jù)摘要被分為5組,每組32位。每組與此前接收到的32位隨機數(shù)組成64位數(shù)據(jù),進行DES加密后,送到TCM芯片進行校驗。5、TCM芯片接收到5組數(shù)據(jù)后進行解密。首先校驗隨機數(shù)部分是否與之前發(fā)出的一致,若一致,則繼續(xù)校驗數(shù)據(jù)摘要部分數(shù)據(jù)與之前在配置模式下寫入的理想值是否一致。對比結(jié)果存放于特定內(nèi)存位置。6、FPGA為主處理芯片提供時鐘,并接通主處理芯片與外部存儲器與TCM的數(shù)據(jù)通路。用戶可以通過相關(guān)的接口讀取對比值,判斷系統(tǒng)是否被修改。
嵌入式完整性保證方案框架
3.2 安全性分析
硬件安全性: Spartan-3A,全部硬件邏輯固化在芯片內(nèi)部,不可讀取。TCM:通過國家商密辦檢驗,不可讀取。Boot Loader完整性:FPGA將依次讀取Boot Loader的內(nèi)容,并計算Hash值。對Boot ROM的任何篡改都將改變Hash值。從而導(dǎo)致驗證不通過。
以下是幾種可預(yù)見的攻擊方式:1、在已知Boot loader的內(nèi)容的前提下,計算出數(shù)據(jù)摘要的內(nèi)容,偽造FPGA。由于Device DNA是每一塊FPGA的身份識別碼,此值是唯一的。更換FPGA會導(dǎo)致用于DES加密密鑰的Device DNA改變,從而向TCM芯片傳送的加密值不正確。2、監(jiān)聽FPGA與TCM之間的通訊。由于TCM與FPGA通訊內(nèi)容還依賴于隨機數(shù),具有不可預(yù)見性,所以監(jiān)聽當次的通訊內(nèi)容對之后內(nèi)容的破解并沒有作用。
3.3 可信鏈的建立
如之前所提到,一個可信的系統(tǒng)的建立,必須是硬件,操作系統(tǒng),軟件應(yīng)用三者共同作用的結(jié)果,本完整性保證設(shè)計也不例外。本次設(shè)計的可信根建立于以下兩個事實之上:1、TCM的保密區(qū)域存儲空間不能被讀取。2、FPGA的Device DNA是唯一對應(yīng)于一塊FPGA的。
經(jīng)過3.1小結(jié)的驗證步驟,我們把可信根擴展到了Boot Loader。Boot Loader是嵌入式系統(tǒng)中用于系統(tǒng)初始化以及載入操作系統(tǒng)的程序。保證Boot Loader的完整性的意義在于保證了操作系統(tǒng)在正確的環(huán)境以及以正確的方式被加載。之后程序員就可以通過軟件的手段對建立在操作系統(tǒng)之上的應(yīng)用進行安全保證。
信任鏈的建立及傳遞
5 研制成果及應(yīng)用
5.1 研制成果
本項目的主要研制成果有三個方面:
完成了一套具備可信計算功能的硬件開發(fā)板。
經(jīng)過了一年的研發(fā),本開發(fā)板的各項功能都被驗證具備穩(wěn)定運作的能力,由于其采用的是主流的資源配置,因此可擴展性也是有目共睹的,具體指標如下:
ARM7內(nèi)核的三星44B0X處理器,最高運行速度達到66Mhz
Xilinx Spartan3A FPGA芯片,多達200萬門的可編程邏輯資源
16M Nor Flash,16M SDRAM能滿足大部分應(yīng)用需要
100M網(wǎng)絡(luò)接口,支持高速內(nèi)核下載及燒寫
2個標準UART-232接口,能提供與TCM芯片的穩(wěn)定連接及常見外設(shè)的數(shù)據(jù)傳輸
完成了TCM固件程序開發(fā)及uclinux工具鏈的配套
目前,我們已經(jīng)利用中興提供的開發(fā)平臺開發(fā)了相關(guān)的TCM固件程序,使得TCM芯片與本嵌入式平臺在啟動階段可以自動完成驗證功能。而與此同時,通過進一步的固件程序開發(fā),TCM芯片可以提供更豐富的驗證加密功能,以滿足更多的可信計算需要。
與此同時,通過busybox工具鏈,也成功把uclinux2.4成功移植到本嵌入式平臺上,運行正常。
6 項目總結(jié)
通過本項目的研發(fā),項目組總結(jié)經(jīng)驗如下:
1) 需要注意項目經(jīng)驗的積累及轉(zhuǎn)化。從2008年12月提出設(shè)計方案到2010年產(chǎn)品的實現(xiàn),其中進行過數(shù)次的方案改動。改進方案的建議不僅來自領(lǐng)隊老師自己,還來自參與本項目的學(xué)生和過程中不斷吸收進來的一些最新的外來研究經(jīng)驗和成果。不斷的改進并不代表對之前工作的否定,恰恰相反,沒有一些針對前期方案的準備和工作的體會,是沒有可能提出更成熟,更穩(wěn)定的改進方案。因此,在項目實施過程中,積極與外界溝通,同時組織團隊進行方案的再三討論,對于項目的實施和進步是十分有利的。
2) 對中間結(jié)果進行規(guī)范化的制作,形成可用的產(chǎn)品。在本項目進行的過程中,恰逢IBM PowerPC與工業(yè)和信息化部IP核標準工作組共同推廣中國開源IP標準化工作。于是在保證工作質(zhì)量和進度的前提下,我們嘗試把嵌入式系統(tǒng)程序完整性保證的概念移植到PowerPC支持的PLB總線上。同時參照相關(guān)的標準化要求,完成了“帶有完整性驗證功能的外部存儲控制器”的IP核標準化設(shè)計。最終在這個過程中,不僅使學(xué)生的能力得到鍛煉,同時還驗證了本設(shè)計的可擴展性和可移植性。
評論