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