文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)01-0115-03
0 引言
針對計(jì)算機(jī)系統(tǒng)的安全問題,TCG組織發(fā)布了TPM1.1規(guī)范[1],該規(guī)范制定了靜態(tài)可信度量根(SRTM)的標(biāo)準(zhǔn)。然而使用SRTM的計(jì)算機(jī)系統(tǒng)存在以下安全隱患:(1)引導(dǎo)裝載程序(BootLoader)作為系統(tǒng)引導(dǎo)程序是整個平臺啟動的關(guān)鍵,但是其存在的一些漏洞使其容易受到攻擊[2];(2)針對BIOS的攻擊源于計(jì)算機(jī)生產(chǎn)廠家允許使用者對BIOS進(jìn)行固件升級,這就給攻擊者創(chuàng)造了條件,通過BIOS實(shí)現(xiàn)對計(jì)算平臺的攻擊;(3)針對惡意重啟TPM的攻擊,通過重啟TPM,破壞其建立的信任鏈,實(shí)現(xiàn)攻擊的目的。
為了彌補(bǔ)SRTM功能的不足,TCG發(fā)布了TPM1.2規(guī)范,該規(guī)范在TPM1.1的基礎(chǔ)上增加了平臺配置寄存器(PCR)以便能夠?qū)崿F(xiàn)動態(tài)可信度量根(DRTM)?;赥PM1.2規(guī)范的DRTM由可信硬件出發(fā),同TPM一起構(gòu)建起一個動態(tài)可信度量架構(gòu)。TPM1.2規(guī)范中新增的8個PCR可以在需要重新構(gòu)建信任鏈時將信任鏈重置而不需要重啟整個平臺[3]。但是TPM1.2規(guī)范中只是定義了DRTM,而沒有給出具體的實(shí)現(xiàn)。
本文基于TPM1.2規(guī)范中的DRTM,提出一種基于FPGA動態(tài)可重構(gòu)技術(shù)的DRTM設(shè)計(jì)實(shí)現(xiàn)方法,同時基于嵌入式系統(tǒng)的計(jì)算環(huán)境對其進(jìn)行驗(yàn)證。
1 信任鏈的構(gòu)建
1.1 信任鏈的選擇
基于TPM模塊構(gòu)建可信計(jì)算的信任鏈?zhǔn)墙⒖尚庞?jì)算環(huán)境的核心,SRTM只在系統(tǒng)啟動時參與建立信任鏈,系統(tǒng)啟動完成后以及系統(tǒng)運(yùn)行中不再對信任鏈進(jìn)行評估。而DRTM可以在任意時刻重新構(gòu)建信任鏈,這是與SRTM根本的區(qū)別,同時DRTM重構(gòu)信任鏈時對系統(tǒng)的正常運(yùn)行沒有影響。SRTM是BIOS軟件的一部分[4],而DRTM始于CPU的安全指令跟BIOS無關(guān),因此可以避免針對BIOS的攻擊,同時基于DRTM的信任鏈也能夠保證BootLoader的可信。因此基于DRTM的可信計(jì)算度量是真正意義上的完整性度量,為可信計(jì)算平臺建立了堅(jiān)實(shí)可信的信任鏈。
TCG的信任鏈中可信度量根(CRTM)是在TPM之外存在于BIOS中的第一個軟件模塊, TPM有3個可信根:度量可信根RTM(a Root of Trust for Measurement)、報告可信根RTR(a Root of Trust for Reporting)和存儲可信根RTS(a Root of Trust for Storage)?;谲浖目尚哦攘扛菀妆还簦布t不容易被篡改,如果將RTM、RTS以及RTR全部集成在TPM芯片中,可以避免遭到軟件攻擊,提高平臺安全性[5],國內(nèi)也有針對這方面的相關(guān)內(nèi)容研究[6-7]。本文基于上述分析給出基于硬件實(shí)現(xiàn)CRTM的方案,其基本結(jié)構(gòu)如圖1所示。
基于這種結(jié)構(gòu)的信任鏈的可靠性得到很大的提高,但是RTM、RTS以及RTR全部集成在TPM芯片中,硬件資源負(fù)擔(dān)較重,并且需要對現(xiàn)有計(jì)算平臺的系統(tǒng)結(jié)構(gòu)重新設(shè)計(jì),成本較高。為實(shí)現(xiàn)安全可靠且節(jié)約硬件成本開銷的目的,采用加入第三方度量模塊,即使用FPGA動態(tài)可重構(gòu)技術(shù)來實(shí)現(xiàn)CRTM。FPGA既是硬件同時又可以利用軟件編程的方式來配置其內(nèi)部結(jié)構(gòu),實(shí)現(xiàn)硬件的可編程能力,而基于FPGA的動態(tài)可重構(gòu)技術(shù)可以在不重啟系統(tǒng)的情況下改變其硬件配置結(jié)構(gòu),完全適合這里的需求。本文使用星形動態(tài)信任鏈結(jié)構(gòu),信任鏈結(jié)構(gòu)如圖2所示。
1.2 動態(tài)信任鏈的模型
對于信任鏈模型的建立需要考量兩方面:(1)對應(yīng)用程序的動態(tài)行為進(jìn)行行為建模;(2)判斷建模后該應(yīng)用程序的行為是否以所期望的方式朝著預(yù)期目標(biāo)發(fā)展。這里提出了一種基于DRTM的完整性度量模型(Dynamic Integrity Measurement Model,DIMM)。DIMM采用度量代理,在加載應(yīng)用程序后對運(yùn)行的進(jìn)程進(jìn)行實(shí)時的監(jiān)控,以完成真正意義上的動態(tài)度量。
根據(jù)進(jìn)程所產(chǎn)生的行為是否對系統(tǒng)的完整性造成破壞,分為觀察行為和修改行為。DIMM將進(jìn)程分為可信、可疑、攻擊三類:針對修改行為進(jìn)行判斷,如果進(jìn)程可信,則在該進(jìn)程執(zhí)行完畢之后更新完整性基準(zhǔn)庫和安全策略;如果不能確定為可信進(jìn)程,則進(jìn)行隔離;對于攻擊性的進(jìn)程則立即停止其運(yùn)行。DIMM構(gòu)架如圖3所示。
應(yīng)用程序在載入時,首先要通過度量模塊度量其完整性,然后將結(jié)果與標(biāo)準(zhǔn)值相比較,如果相同,則其得到信任并且獲得控制權(quán)。針對修改的進(jìn)程,度量代理將該進(jìn)程交給以下四個模塊進(jìn)行完整的動態(tài)度量:判定模塊依據(jù)制定的安全策略判定該進(jìn)程是否被許可,并進(jìn)一步判定是否可信;度量模塊的作用是針對進(jìn)程展開完整性度量;核實(shí)模塊檢測系統(tǒng)的完整性是否遭到破壞;隔離模塊將異常進(jìn)程隔離起來以免影響正常的系統(tǒng)進(jìn)程。
2 設(shè)計(jì)及驗(yàn)證
2.1 基于FPGA的動態(tài)可重構(gòu)
基于DRTM的動態(tài)可信度量分析需要在系統(tǒng)運(yùn)行時能夠根據(jù)需要重建信任鏈并且又不影響系統(tǒng)的運(yùn)行,這里采用FPGA的動態(tài)可重構(gòu)技術(shù)來實(shí)現(xiàn)。動態(tài)可重構(gòu)技術(shù)是指擁有特殊結(jié)構(gòu)的FPGA,使用SRAM編程技術(shù),在特殊情況下能夠?qū)崿F(xiàn)電路的功能和邏輯結(jié)構(gòu)進(jìn)行重新配置的特性。FPGA動態(tài)可重構(gòu)技術(shù)本質(zhì)是對FPGA的內(nèi)部結(jié)構(gòu)或者邏輯連接進(jìn)行部分或者整體的更新,這些更新的運(yùn)行是實(shí)時的,并且不會影響到整個系統(tǒng)的正常運(yùn)行。
2.2 系統(tǒng)搭建
根據(jù)動態(tài)信任鏈的構(gòu)建方式,基于ARM嵌入式系統(tǒng)及可重構(gòu)FPGA搭建了一個系統(tǒng)驗(yàn)證平臺,其架構(gòu)如圖4所示。系統(tǒng)上電后,控制權(quán)首先掌握在FPGA手中,F(xiàn)PGA將ARM復(fù)位,阻止其與其他設(shè)備的通信并啟動TPM,然后將指令發(fā)送給TPM并調(diào)用SHA-1算法;TPM啟動之后其PCR[0]內(nèi)會獲得一段摘要值,F(xiàn)PGA將這段值與存儲在片內(nèi)的標(biāo)準(zhǔn)值進(jìn)行比對,如果不相同則平臺將不會被啟動,并且會更新存儲日志,否則將繼續(xù)對系統(tǒng)變量進(jìn)行度量。若FPGA獲得摘要值均可信,則FPGA將平臺控制權(quán)移交給ARM。
ARM啟動后加載BootLoader,初始化各種外設(shè)并且調(diào)用代碼度量模塊。度量模塊調(diào)用SHA-1算法,并且將擴(kuò)展值存儲在PCR[4]中,F(xiàn)PGA再次進(jìn)行比對,只有度量值和標(biāo)準(zhǔn)庫的值一樣時,F(xiàn)PGA才正式將控制權(quán)交給ARM,然后才正式啟動系統(tǒng)內(nèi)核?;贔PGA的系統(tǒng)整體結(jié)構(gòu)如圖5所示。
其中CM模塊是整個系統(tǒng)的核心,該模塊負(fù)責(zé)控制其他模塊的運(yùn)行,因此對該模塊的穩(wěn)定性要求很高,這里使用有限狀態(tài)機(jī)來實(shí)現(xiàn)CM模塊的設(shè)計(jì)。針對CM狀態(tài)機(jī)進(jìn)行仿真的時序波形如圖6所示。
3 測試及分析
本文算法部分采用Xilinx公司的Virtex-5系列FPGA進(jìn)行驗(yàn)證,運(yùn)用AES算法對DRTM中的重要數(shù)據(jù)進(jìn)行加密。通過對密鑰、明文和密文進(jìn)行測試,圖7為仿真結(jié)果。
針對建立的DRTM的測試從以下幾個方面進(jìn)行:(1)DRTM是否可以正常運(yùn)行;(2)模擬各種類型的攻擊,測試DRTM抵御攻擊的能力;(3)添加有DRTM模塊的可信驗(yàn)證平臺比未安裝的優(yōu)勢在哪里。通過搭建測試平臺,分別模擬針對TPM命令、標(biāo)準(zhǔn)庫、引導(dǎo)程序、內(nèi)核與根文件的攻擊,對應(yīng)這些攻擊的日志返回值分別為:0x00、0x01、0x02、0x03和0x04,如果正常啟動則返回0xaa。
測試流程包括:打開TPM命令,將原文的第二個字節(jié)改為不同的值;將修改后的命令文件加載到NAND Flash中,然后重啟系統(tǒng);下載不含CM模塊的程序到FPGA內(nèi),然后重啟系統(tǒng);將未修改的TPM命令文件和完整的FPGA程序下載到對應(yīng)芯片中,然后重啟系統(tǒng)。
通過測試,添加DRTM模塊的平臺啟動后有著較好的抵御攻擊的能力,這種能力主要體現(xiàn)在:在保證平臺安全啟動的同時,將動態(tài)度量延伸到程序加載之后對進(jìn)程的度量,這就實(shí)現(xiàn)了實(shí)時的動態(tài)可信度量分析。
4 結(jié)束語
通過模擬攻擊實(shí)驗(yàn)可以發(fā)現(xiàn),添加有DRTM系列模塊的可信驗(yàn)證平臺有著很好的抵御攻擊的能力;可信計(jì)算驗(yàn)證平臺的啟動時間比普通平臺慢3 s左右,這個時間不會對平臺的使用者產(chǎn)生明顯的影響。本系統(tǒng)在保證平臺安全啟動的同時,將動態(tài)度量延伸到程序加載之后的階段,達(dá)到了預(yù)期目標(biāo)。
參考文獻(xiàn)
[1] HOFMANN O,DUNN A,KIM S.Ensuring operating system
kernel integrity with OSck[C].Proceeding of the 16th Inter-
national Conference on Architectural Sup- port for Progra-
mming Languages and Operating Systems,2011:164-177.
[2] Feng Dengguo,Qin Yu.A property-based attestation pro-tocol for TCM[J].Science China(Information Sciences),2010(3):243-255.
[3] AZAB A M,Peng Ning,SEZER E C.HIMA:a hypervisor-based integrity measurement agent[C].Proceedings of the 2009 Annual Computer Security Application Conference,2010:1356-1360.
[4] Xu Ziyao,He Yeping,Deng Lingli.An integrity assurance mechanism for run-time programs[C].Lecture Notes in Computer Science,2009:45-53.
[5] 詹靜,張煥國,徐卜偉,等.基于狀態(tài)機(jī)理論的可信平臺模塊測試研究[J].武漢大學(xué)學(xué)報(信息學(xué)版),2008,33(10):1067-1069.
[6] 蘇培培,劉寶明.基于國產(chǎn)處理器的可信系統(tǒng)研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(1):136-138.
[7] 倪樂,戴紫彬,楊同杰,等.可重構(gòu)雙基雙域模乘器設(shè)計(jì)與實(shí)現(xiàn)[J].電子應(yīng)用技術(shù),2012,38(10):136-139.