《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種具有自恢復功能的嵌入式可信平臺的設計
一種具有自恢復功能的嵌入式可信平臺的設計
2017年電子技術應用第5期
孫 鉑1,2,溫旭霞1,2,宮樹紅3,劉新生4
1.中北大學 儀器與電子學院,山西 太原030051;2.山西百信信息技術有限公司,山西 太原030006; 3.首鋼長治鋼鐵有限公司,山西 長治046031;4.江蘇曙光光電有限公司,江蘇 揚州225009
摘要: 以TCG規范為基礎,分析和討論了可信鏈技術和安全啟動過程,構造出一種適用于嵌入式平臺的可信鏈模型以及具有自恢復功能的可信啟動實現方法。在Beaglebone開發板上進行了相關實驗,驗證了其可行性,并作出了總結。
中圖分類號: TN918
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.05.018
中文引用格式: 孫鉑,溫旭霞,宮樹紅,等. 一種具有自恢復功能的嵌入式可信平臺的設計[J].電子技術應用,2017,43(5):74-77.
英文引用格式: Sun Bo,Wen Xuxia,Gong Shuhong,et al. Design of an embedded trusted platform with self-recovery function[J].Application of Electronic Technique,2017,43(5):74-77.
Design of an embedded trusted platform with self-recovery function
Sun Bo1,2,Wen Xuxia1,2,Gong Shuhong3,Liu Xinsheng4
1.School of Instrument and Electronics,North University of China,Taiyuan 030051,China; 2.Shanxi Baixin Information Technology Co.,Ltd,Taiyuan 030006,China; 3.Shougang Changzhi Iron&Steel Co.,Ltd,Changzhi 046031,China; 4.Jiangsu Shuguang Photoelectrical Co.,Ltd,Yangzhou 225009,China
Abstract: This paper analyzes and discusses trusted chain technology and security boot process based on the TCG specifications, then constructs a trusted chain model suitable for embedded platform and a trusted boot implementation method with self-recovery function.Finally, some experiments are carried out on Beaglebone development board to verify its feasibility and make a conclusion.
Key words : trusted platform;self-recovery;embedded system;trusted boot

0 引言

    嵌入式系統目前已在國防、國民經濟及社會生活各領域普及,應用于企業、軍隊、辦公室、實驗室以及個人家庭等各種場所。然而,2014年海康威視的大量數碼錄像機設備被曝存在遠程代碼執行漏洞,黑客可以由此直接獲取設備最高權限。2015年末,烏克蘭國家電網遭到網絡攻擊,伊萬諾一弗蘭科夫斯克地區部分變電站的控制系統遭到破壞,造成大面積停電,約140萬人受到影響。嵌入式平臺安全至關重要,將可信計算技術引入到嵌入式設備上來,是一種可行且高效的安全防護方法[1]。文獻[2]對于嵌入式系統的安全進行了研究,并且設計了專門用于嵌入式系統的可信芯片ETPM。文獻[3]以可信計算理論為基礎,提出了一種適用于嵌入式環境的可信框架模型,設計完成嵌入式可信計算硬件模塊以及其邏輯結構。本文旨在設計出具有普遍意義的嵌入式可信平臺,提升系統的可信性,并具有自恢復功能,提高系統的可靠性與健壯性。

1 可信計算技術

    可信計算組織(Trusted Computing Group,TCG)于2003年3月成立,目的是在計算和通信系統中廣泛使用基于硬件安全模塊支持下的可信計算平臺,以提高通信系統的安全性。

    可信平臺模塊(Trusted Platform Module,TPM)是TCG發行的一款可信芯片,是符合TCG規范的一個小型片上系統,內部有隨機數產生器、SHA-1引擎等。目前基于可信計算的安全啟動方式主要通過以TPM為可信根的可信度量來實現[4]

1.1 可信鏈技術

    完整性度量是可信啟動的關鍵,為了實現完整性度量,可信計算組織TCG提出了可信鏈技術。可信鏈的建立直接關系到可信平臺的正常運行。

    根據可信計算的思想,可信鏈的實現是從可信度量根RTM開始,到硬件平臺,再到操作系統以及上層應用,一級度量一級,一級信任一級。

    TCG定義了兩種確保可信啟動的方法:靜態可信根(Static Root of Trusted Measure,SRTM)和動態可信根(Dynamic Root of Trusted Measure,DRTM)。在使用靜態可信度量根時,所有的信任都從BIOS的一段固定的可信代碼開始,在把控制權交給下一段代碼之前,這段可信代碼會去度量下一段將要執行的代碼,并將度量結果擴展到平臺配置寄存器(Platform Configuration Register,PCR)中。如果每一段新的代碼在移交控制權之前都去度量下一段代碼,就可以建立起可信鏈,如果度量貫穿整個啟動過程,最終的PCR值就反應了所有度量對象的度量值。PCR擴展操作基于SHA-1的散列算法,從密碼學角度來說,該算法足夠強大,對于惡意代碼來說,通過計算破解出一個可信啟動下的預期PCR值是不可行的[5]。本設計采用靜態度量根的可信啟動方法。

    既然TPM的PCR值能夠表明軟件是否可信,那么TPM就應該用某種方法表現出它的認知。如果系統啟動過程中的軟件被篡改,那么最后得到PCR值就會不同,這時TPM就會拒絕通過這些不可信的PCR值。如果能夠讓系統在啟動時和封裝密鑰或者密封數據建立聯系,TPM就能保證系統啟動是可信的。

    當可信操作系統、客體操作系統和應用程序都使用TPM時,為了區分當前的度量值是屬于哪個部分的,TCG引入了Locality的概念。Locality認證當前TPM請求的發起者,規范定義了5種不同的Locality,如表1所示。其中第一個PCR值記錄了BIOS的度量信息,該信息是由SRTM度量后得到的不可變信息,此時BIOS獲得控制權。

qrs5-b1.gif

    可信啟動的核心是完整性度量,從建立可信根開始,度量每個模塊的完整性值同期望的完整性值比較,進而維護這個模塊完整性。完整性值通常是一個hash值,如果任何模塊發生改變,其hash值也會發生改變,從而知道出現問題。通過這種方法保護已經建立PCR保護的模塊。

1.2 可信啟動技術

    啟動是指系統從上電開始到各部件復位待命的全過程,系統的初始狀態是否可信對于其安全性至關重要,因此可信啟動對可信平臺意義非凡。安全啟動的概念普遍定義為平臺的安全性和完整性,而可信計算平臺環境的建立是在可信根和可信鏈的基礎上。TCG給出的PC可信鏈定義如下:

CRTM(Core Root of Trusted for Measurement)→BIOS→OS Loader→OS→Applications

    根據TCG規范,嵌入式平臺的可信啟動過程設計步驟如下:

    (1)平臺上電;

    (2)CRTM啟動,然后度量其本身并將度量值擴展到相應的PCR中;

    (3)CRTM請求TPM_unseal命令;

    (4)TPM將相應PCR中現在狀態的值與已密封的值進行比較,如果一致,執行下一步;如果不一致,暫停啟動;

    (5)被證明可信的元件進行度量,隨后啟動元件,并擴展度量值到啟動元件對應的PCR中;

    (6)被證明可信的元件把控制權轉交給啟動元件;

    (7)平臺判斷被證明可信的元件是否為啟動的最后一步,是則執行下一步,否則執行第(3)步;

    (8)最后啟動的元件調用TPM_unseal命令;

    (9)TPM把相應PCR中的當前狀態值與已密封的值比較,如果一致則安全啟動,否則暫停啟動。

2 實驗平臺建立

2.1 硬件環境

    可信嵌入式平臺硬件上由嵌入式微處理器CPU、外圍設備以及可信芯片TPM組成。

    本設計實驗硬件平臺選用嵌入式開發板Beaglebone Black(BBB)。BBB使用主流的ARM CPU,處理器為TI AM335X ARM Cortex A8,1 GHz;存儲器是2 GB eMMC,出于安全考慮,擴展了512 MB的Flash芯片存儲備份系統。

    本設計TPM芯片采用Atmel公司的AT97SC3204T。該芯片遵循TPM1.2規范,內置非對稱密鑰引擎RSA、隨機數發生器、散列算法引擎SHA-1、計算引擎HMAC等,通過TWI總線進行通信。TWI總線是I2C總線的繼承和發展,完全兼容I2C總線。TPM接線電路設計如圖1所示。

qrs5-t1.gif

2.2 軟件環境

    軟件設計總共分為四部分:引導加載程序(Bootloader)、linux內核、文件系統以及應用程序,本文主要說明Bootloader方面的設計。Bootloader是系統上電后執行的第一段程序,其作用相當于PC平臺上的BIOS。一般的嵌入式系統啟動流程如圖2所示[6]

qrs5-t2.gif

    第一級Bootloader:引導加載程序(ROM)。系統上電或復位后,CPU通常從某個固定地址讀取它的第一條指令,ROM被映射安裝到這個地址上,ROM中存著一段代碼,在這里稱為ROM-Code,這段代碼執行第一階段的啟動任務。ROM-Code將在eMMC上讀取第一啟動分區,接著掃描該分區根目錄,在根目錄下尋找MLO文件,并將這個文件下載到片內SRAM,再把控制權移交MLO。

    第二級Bootloader:自舉程序MLO(X-loader)。MLO、u-boot.img被燒寫在eMMC的第一啟動分區中,上電后ROM-Code將體積較小的MLO搬至片內SRAM中運行,而運行在SRAM中的MLO又初始化片外SDRAM,并將eMMC中的u-boot.img下載至SDRAM,控制權移交u-boot.img。

    第三級Bootloader:u-boot(uboot.img)。它的任務是通過各種方式將內核下載至SDRAM,并傳遞一些內核啟動參數。u-boot的啟動任務主要是為引導內核準備環境[7]

3 可信鏈的建立

3.1 可信鏈建立

    由于嵌入式的特殊性,PC的可信鏈模型不適用于本平臺。嵌入式平臺的特殊性在于它是基于Linux的嵌入式平臺,是u-boot啟動,而不是BIOS和Bootloader。

    根據嵌入式平臺的啟動流程及PC可信鏈建立的方法,可以構造出嵌入式的可信鏈:MLO(CRTM)→u-boot→(Linux)OS+tools→(Linux)Kernel→根文件系統加載。

3.2 自恢復的可信啟動設計

    自恢復功能是嵌入式系統健壯性的體現,在系統受到攻擊時,尤其是在操作系統或內核受到破壞時,自恢復功能可以直接縮短嵌入式系統修復的周期。而傳統的系統恢復需要系統的正常加載,依賴用戶級別的應用來完成系統的還原。本設計中的備份系統存儲于獨立的Flash芯片中,且受到TPM芯片的保護,防止被篡改,保障了系統的純潔性。

    根據系統啟動過程,對其進行相應的優化:先用SHA1對u-boot加密,得到hash值,然后將產生的hash值擴展到相應的PCR中,將MLO和u-boot.img密封。在可信啟動過程中,首先從0x40000000讀取第一條指令并執行ROM-Code,然后將從地址0x402f0400獲取的MLO用SHA-1進行hash計算,得到的hash值與原來的hash值比對,如果一致,則對已經密封的MLO解封。MLO從地址0x80000000獲取u-boot.img,再將u-boot.img進行hash計算,得到的hash值與保存的一致,解封u-boot.img,并由MLO執行u-boot.img,u-boot.img被認為是可信的。同理, u-boot從地址0x80008000獲取的內核,再次對內核進行度量,與預期值一致時,系統正常啟動,完成可信啟動過程。如果度量失敗, u-boot直接從備用Flash的0x00000080開始讀取鏡像文件,然后直接調用TCM對鏡像文件解封,完成系統的恢復[8]。啟動流程如圖3所示。

qrs5-t3.gif

4 實驗結果與分析

    實驗使用Beaglebone Black開發板以及AT97SC3204T來驗證本設計的可行性。在內核的編譯過程中,加入對TPM芯片的支持,對/include/configs/am335x_evm.h文件進行適配修改,引入所需的頭文件。

    由于uboot直接加載默認的鏡像文件,沒有與用戶交互的信息,因此還需要更改uboot的啟動腳本來實現用戶選擇默認啟動還是進行系統恢復。編寫uboot/common下的ubootmenu.c文件,設置uboot自啟動參數為ubootmenu命令,設置uboot啟動延時3 s,在ubootmenu命令中加入2個選項,默認選項為加載默認鏡像,第二個選項為還原系統。在此過程中,由于TPM驅動還沒有加載,需要直接調用TPM的指令碼來實現操作。

    在Flash燒寫完成后,重新啟動BBB,通過串口查看輸出,如圖4所示,BBB可以完成可信引導過程,從上電到系統引導完成總計用時19.49 s,而原系統引導用時約為14 s。除去由于之前設置的3 s的u-boot等待時間,引導時間延長了17.8%。

qrs5-t4.gif

    當內核被篡改或者其他原因導致操作系統受到損壞時,可以直接通過uboot的交互菜單完成系統恢復的操作,總計用時4分24秒,過程如圖5。

qrs5-t5.gif

    本文通過研究可信計算技術,結合BBB和TPM可信模塊,驗證了可信鏈和可信啟動在嵌入式平臺上的應用,可信引導過程相比普通引導過程多用時15%~20%,在系統啟動后基本沒有性能上的影響。在u-boot上實現了系統的可信恢復,操作簡單便捷。實驗表明,本研究的內容很容易移植到其他嵌入式平臺。

參考文獻

[1] 馮登國,秦宇,汪丹,等.可信計算技術研究[J].計算機研究與發展,2011,48(8):1332-1349.

[2] 張煥國,李晶,潘丹玲,等.嵌入式系統可信平臺模塊研究[J].計算機研究與發展,2011(7):1269-1278.

[3] 王天舒,張功萱,楊曦晨,等.嵌入式系統可信啟動機制設計與實現[J].計算機測量與控制,2015,23(4):1364-1366.

[4] Trusted Computing Group.TPM main part 1 design principles specification version1.2 revision116[EB/OL].[2013-11-13].http://www.trustedcomputinggroup.org.

[5] David Challener,Kent Yoder,Ryan Catherman,et al.可信計算[M].北京:機械工業出版社,2008.

[6] OMAPpedia.Bootloader project.[EB/OL](2012-4-3)[2016-3-10].http://omappedt.

[7] Song Cheng,Peng Weiping,Xin Yang,et al.Seal-based secure boot scheme for trusted computing platform[J].Elsevier,2010,17(2):16-21.

[8] Beaglebone.org.X-loader[S/OL].(2008-8-17)[2016-3-10].http://beagleboard.org/project/X-Loader/.



作者信息:

孫  鉑1,2,溫旭霞1,2,宮樹紅3,劉新生4

(1.中北大學 儀器與電子學院,山西 太原030051;2.山西百信信息技術有限公司,山西 太原030006;

3.首鋼長治鋼鐵有限公司,山西 長治046031;4.江蘇曙光光電有限公司,江蘇 揚州225009)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 狠狠欧美 | 天天成人综合网 | 中国一级做a爰片久久毛片 中国一级做a爱片免费 | 妇欲欢公爽公妇高h欲 | www.伦理片| 主播蜜汁丝袜 精品自拍 | 亚洲天堂网在线观看 | 免费一级e一片在线播放 | 中文字幕日韩精品亚洲七区 | 香蕉草草久在视频在线播放 | 亚洲一页 | 亚洲影音先锋看看 | 午夜草草 | 午夜久久网 | 精品区卡一卡2卡三免费 | 成人开心网 | 青草视频在线观看视频 | 欧美日韩视频一区二区在线观看 | 免费国产成人α片 | 国产一级高清视频免费看 | 欧美日韩高清在线观看 | 美日毛片 | 亚洲一区成人 | 午夜影视在线免费观看 | 日本黄色影院在线观看 | 国产成人无精品久久久 | 成年人在线免费观看 | 三级欧美日韩 | 最新中文字幕在线观看 | 成年性午夜免费视频网站不卡 | 国产成人精品日本亚洲语音1 | a级特黄一级毛片七仙女思春 | 免费看的黄色小视频 | 亚洲成人中文字幕 | 在线成人免费 | 美女视频ww8888网网 | 进来综合网 | 站长推荐国产精品视频 | 中文字幕成人免费高清在线 | 福利视频黄 | 亚洲精品网站在线观看不卡无广告 |