999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式TPM及信任鏈的研究與實(shí)現(xiàn)

2012-05-04 08:08:56劉紹方
關(guān)鍵詞:嵌入式系統(tǒng)

吳 悠,李 光,劉紹方,張 鵬

(華北計(jì)算技術(shù)研究所,北京100083)

0 引 言

相比普通PC,嵌入式系統(tǒng)在研發(fā)過(guò)程中對(duì)安全設(shè)計(jì)的重視不夠充分,安全性較差、易受攻擊的特點(diǎn)使其所面臨的硬件和軟件攻擊與日俱增。隨著可信計(jì)算技術(shù)的發(fā)展,將可信計(jì)算理念引入嵌入式領(lǐng)域成為增強(qiáng)嵌入式系統(tǒng)可信與安全的研究方向之一,已經(jīng)有較多學(xué)者在該領(lǐng)域展開(kāi)研究并取得一定的成果。與PC可信平臺(tái)一樣,嵌入式可信平臺(tái)的關(guān)鍵在于信任根和信任鏈。在已有研究中嵌入式信任根通常采用現(xiàn)有的TPM(trusted platform module)芯片或TCM(trusted cryptography module)芯片,而信任鏈則大多為鏈?zhǔn)浇Y(jié)構(gòu),部分研究采用了我國(guó)學(xué)者提出的星型結(jié)構(gòu)。由于依賴(lài)現(xiàn)有的芯片,嵌入式信任根在功能與物理接口的靈活性上存在一定限制,而鏈?zhǔn)胶托切偷男湃谓Y(jié)構(gòu)也分別存在信任損失較大和嵌入式信任根負(fù)擔(dān)較重的缺點(diǎn)。

本文對(duì)嵌入式信任根和信任鏈結(jié)構(gòu)的設(shè)計(jì)進(jìn)行討論,在此基礎(chǔ)上構(gòu)建并實(shí)現(xiàn)了一種嵌入式可信平臺(tái),該平臺(tái)基于Intel的Xscale處理器PXA270和Linux操作系統(tǒng),以FPGA(field-programmable gate array)實(shí)現(xiàn)的嵌入式 TPM作為平臺(tái)的信任根,并在其中內(nèi)置可信度量核心根CRTM(core root of trust for measurement); 嵌 入 式 TPM 與PXA270間通過(guò)FPGA內(nèi)的雙端口RAM地址空間進(jìn)行通信;信任鏈采用了結(jié)合鏈?zhǔn)胶托切徒Y(jié)構(gòu)的混合式結(jié)構(gòu)。嵌入式可信平臺(tái)通過(guò)對(duì)引導(dǎo)程序、操作系統(tǒng)和應(yīng)用程序的完整性度量、驗(yàn)證和執(zhí)行控制,實(shí)現(xiàn)完整的信任關(guān)系傳遞,從而提高嵌入式系統(tǒng)的可信與安全。

1 可信計(jì)算基本思想

對(duì)于信息系統(tǒng)而言,大多數(shù)安全隱患來(lái)自于終端。可信計(jì)算技術(shù)作為近年發(fā)展起來(lái)的一種信息系統(tǒng)安全新技術(shù),將解決信息安全問(wèn)題的思路轉(zhuǎn)移到解決終端安全問(wèn)題上來(lái)[1],從終端計(jì)算平臺(tái)的體系結(jié)構(gòu)入手,結(jié)合底層硬件和軟件,在整體上采取安全措施以保證信息系統(tǒng)的可信與安全,通過(guò)提高終端安全性從源頭上加強(qiáng)對(duì)不安全因素的控制。

可信計(jì)算的兩個(gè)基本要素是信任根和信任鏈,其基本思想是首先在計(jì)算機(jī)系統(tǒng)中建立一個(gè)信任根,信任根的可信性由物理安全、技術(shù)安全和管理安全共同確保;然后建立一條信任鏈,從信任根開(kāi)始到硬件平臺(tái)、操作系統(tǒng)、再到應(yīng)用,一級(jí)測(cè)量認(rèn)證一級(jí),一級(jí)信任一級(jí),最終把這種信任擴(kuò)展到整個(gè)計(jì)算機(jī)系統(tǒng)[2]。在可信計(jì)算組織TCG(trusted computing group)的可信計(jì)算體系中,信任根作為計(jì)算平臺(tái)的信任基礎(chǔ),被定義為可信平臺(tái)模塊TPM,為平臺(tái)身份提供唯一性標(biāo)識(shí)。在TPM 1.2規(guī)范[3]中,建議TPM是一個(gè)包含有多種密碼運(yùn)算部件并具備存儲(chǔ)功能的安全芯片,能夠在其內(nèi)部存儲(chǔ)密鑰,并進(jìn)行加解密操作,其主要功能包括數(shù)字摘要、簽名與認(rèn)證、密鑰與隨機(jī)數(shù)生成、存儲(chǔ)保護(hù)和安全審計(jì),并具有可信啟動(dòng)和自檢功能。TCG的信任度量采用的是鏈?zhǔn)浇Y(jié)構(gòu),信任關(guān)系的建立和傳遞主要基于對(duì)系統(tǒng)組件的完整性度量與驗(yàn)證,信任鏈上的每個(gè)組件都必須通過(guò)驗(yàn)證才被允許加載和運(yùn)行,以此來(lái)確保系統(tǒng)從啟動(dòng)到運(yùn)行的整個(gè)過(guò)程的可信性。

2 嵌入式可信平臺(tái)體系結(jié)構(gòu)

嵌入式可信平臺(tái)采用嵌入式TPM作為信任根,結(jié)合信任鏈技術(shù)增強(qiáng)嵌入式系統(tǒng)的安全性,其硬件基本結(jié)構(gòu)如圖1所示。整個(gè)系統(tǒng)在硬件上主要分為嵌入式系統(tǒng)主板和嵌入式TPM兩部分。嵌入式系統(tǒng)主板以Intel的Xscale處理器PXA270為核心,除SDRAM、Flash等外圍設(shè)備外,還包括Micro SD、觸摸屏、USB等外部輸入輸出設(shè)備。嵌入式TPM則基于SOPC架構(gòu),采用大規(guī)模高端FPGA-Stratix器件,結(jié)合嵌入式微處理器軟核Nios II、Avalon總線(xiàn)交換結(jié)構(gòu)及各種系統(tǒng)外設(shè)IP核(SDRAM控制器、雙端口RAM、Flash總線(xiàn)控制器等)構(gòu)成。Avalon交換總線(xiàn)作為內(nèi)部總線(xiàn),實(shí)現(xiàn)嵌入式TPM內(nèi)Nios II軟核與各個(gè)功能模塊之間的數(shù)據(jù)、控制信號(hào)的互連互通。FPGA內(nèi)部集成了多個(gè)硬件算法功能模塊,包括非對(duì)稱(chēng)加密算法RSA、對(duì)稱(chēng)加密算法AES和散列算法SHA-1,而真隨機(jī)數(shù)則從外置的WNG5物理噪聲源芯片中獲取。

圖1 嵌入式可信平臺(tái)硬件體系結(jié)構(gòu)框架

在PC可信平臺(tái)中,TPM芯片通常采用LPC(Low Pin Count)總線(xiàn)接口實(shí)現(xiàn)與CPU之間的命令和數(shù)據(jù)傳輸,但嵌入式設(shè)備大多不具備LPC接口,因此本文方案中,F(xiàn)P-GA提供了與嵌入式CPU的總線(xiàn)接口,直接掛載在嵌入式CPU上,并在FPGA內(nèi)部設(shè)計(jì)了雙端口RAM作為輸入輸出緩沖區(qū),配合通信協(xié)議實(shí)現(xiàn)嵌入式TPM與嵌入式CPU之間的信息交互。

3 帶數(shù)據(jù)恢復(fù)功能的混合式信任結(jié)構(gòu)

TCG的信任傳遞采用的是一種鏈?zhǔn)浇Y(jié)構(gòu),在PC可信平臺(tái)上,信任關(guān)系沿著CRTM、BIOS、OSLoader、OS、應(yīng)用程序逐級(jí)傳遞,信任邊界的每一次擴(kuò)展都須先進(jìn)行目標(biāo)代碼的度量,然后轉(zhuǎn)移執(zhí)行控制權(quán)[4]。這種鏈?zhǔn)浇Y(jié)構(gòu)的優(yōu)點(diǎn)是實(shí)現(xiàn)了可信計(jì)算的基本思想,與現(xiàn)有計(jì)算機(jī)有較好的兼容性,并且實(shí)現(xiàn)簡(jiǎn)單;而其缺點(diǎn)一是信任鏈較長(zhǎng)導(dǎo)致的信任損失,二是由于采用了迭代計(jì)算方式來(lái)獲得完整性度量值,系統(tǒng)任何軟件組件的變化都會(huì)導(dǎo)致重新計(jì)算[2],在實(shí)現(xiàn)和使用上會(huì)比較麻煩。

我國(guó)學(xué)者提出了一種帶數(shù)據(jù)恢復(fù)功能的星型信任結(jié)構(gòu)并在嵌入式系統(tǒng)中進(jìn)行了研究和應(yīng)用[5-6],相比TCG的鏈?zhǔn)浇Y(jié)構(gòu),星型信任結(jié)構(gòu)沒(méi)有多級(jí)信任傳遞,信任損失小,而數(shù)據(jù)恢復(fù)功能也使其安全性和可靠性更高。但由于所有的完整性度量工作都由內(nèi)置在TPM中的CRTM來(lái)完成,使得TPM的負(fù)擔(dān)會(huì)比較重。

本文方案結(jié)合鏈?zhǔn)胶托切托湃谓Y(jié)構(gòu),基于Linux操作系統(tǒng)提出并實(shí)現(xiàn)了一種帶數(shù)據(jù)恢復(fù)功能的混合式信任結(jié)構(gòu),其信任關(guān)系傳遞和軟件組件啟動(dòng)順序參見(jiàn)圖2。在這種信任結(jié)構(gòu)中,CRTM內(nèi)置于嵌入式TPM中,系統(tǒng)加電后首先由CRTM分別對(duì)引導(dǎo)程序Bootloader和操作系統(tǒng)內(nèi)核OS Kernel進(jìn)行完整性驗(yàn)證,并保存驗(yàn)證結(jié)果;隨后嵌入式CPU在啟動(dòng)過(guò)程中依次從嵌入式TPM獲取Bootloader和OS Kernel的驗(yàn)證結(jié)果,根據(jù)驗(yàn)證結(jié)果判斷是否加載和運(yùn)行;應(yīng)用程序的完整性驗(yàn)證則由操作系統(tǒng)進(jìn)行。在軟件組件(包括系統(tǒng)軟件和應(yīng)用程序)的啟動(dòng)過(guò)程中,當(dāng)發(fā)現(xiàn)完整性度量值與保存的基準(zhǔn)值不一致時(shí)可以利用恢復(fù)功能進(jìn)行修復(fù)。

圖2 嵌入式可信平臺(tái)信任傳遞示意

CRTM是可信計(jì)算平臺(tái)加電后最先啟動(dòng)的部分,由其發(fā)起信任狀態(tài)的傳遞,是整個(gè)信任鏈的起點(diǎn)。因?yàn)椴粫?huì)再有其他組件來(lái)驗(yàn)證CRTM的可信性,因此它被系統(tǒng)默認(rèn)為是絕對(duì)可信的。在TCG可信平臺(tái)中,CRTM并不明確,大多數(shù)PC可信平臺(tái)的實(shí)際實(shí)現(xiàn)是以BIOS的Boot Block或整個(gè)BIOS作為CRTM[7]。但在嵌入式平臺(tái)中,這種方式有其不足之處:首先,PC平臺(tái)的CPU架構(gòu)較為單一,而嵌入式CPU的種類(lèi)繁多,所以CRTM的跨平臺(tái)性在實(shí)現(xiàn)上會(huì)較為困難;其次,PC可信平臺(tái)的CRTM從外部不太容易直接訪(fǎng)問(wèn),故安全性較高,但對(duì)于嵌入式平臺(tái),利用各種嵌入式工具可以很容易的修改燒寫(xiě)在Flash中的引導(dǎo)程序和操作系統(tǒng)等軟件組件,這使得CRTM自身的安全性存在隱患[8]。將CRTM放置在嵌入式TPM內(nèi)部則能夠較好的避免這些問(wèn)題,CRTM的實(shí)現(xiàn)無(wú)需考慮CPU架構(gòu)的差異性,與此同時(shí)TPM也能為CRTM提供物理保護(hù)。

嵌入式可信平臺(tái)在系統(tǒng)啟動(dòng)時(shí)用星型結(jié)構(gòu)驗(yàn)證Bootloader和OS Kernel的完整性,而應(yīng)用程序的完整性驗(yàn)證由操作系統(tǒng)進(jìn)行,因此這部分的信任傳遞仍然是鏈?zhǔn)降摹_@主要是考慮到嵌入式TPM的性能。TPM能夠提供硬件級(jí)密碼學(xué)計(jì)算功能,但其本身資源有限,在計(jì)算平臺(tái)中并不是作為一個(gè)高性能器件而存在的。完全的星型信任結(jié)構(gòu)能最大限度的降低信任傳遞所帶來(lái)的損耗,但TPM需要完成所有的完整性度量及驗(yàn)證工作,計(jì)算壓力比較大,可能會(huì)造成平臺(tái)工作效率的降低。在嵌入式Linux系統(tǒng)中,Bootloader和OS Kernel通常較小,且不同的嵌入式設(shè)備中這兩個(gè)組件的尺寸差異不大,而應(yīng)用程序依據(jù)嵌入式設(shè)備的實(shí)際功能往往有很大差別,因此在本文方案中,Bootloader和OS Kernel由CRTM進(jìn)行完整性度量,降低信任傳遞的損耗,而應(yīng)用程序的完整性度量由資源更豐富、計(jì)算能力更強(qiáng)的嵌入式CPU和操作系統(tǒng)完成,盡量減少完整性驗(yàn)證過(guò)程對(duì)系統(tǒng)運(yùn)行效率的影響。

嵌入式可信平臺(tái)的啟動(dòng)過(guò)程如圖3所示。

系統(tǒng)加電后,嵌入式TPM首先通過(guò)復(fù)位信號(hào)控制嵌入式CPU進(jìn)入復(fù)位狀態(tài),并完成自身的初始化和自檢,隨后CRTM程序啟動(dòng),依次從存儲(chǔ)器讀取Bootloader和OS Kernel進(jìn)行完整性驗(yàn)證并記錄驗(yàn)證結(jié)果。如果驗(yàn)證都成功,嵌入式TPM釋放復(fù)位信號(hào)使嵌入式CPU正常啟動(dòng),而自己則進(jìn)入就緒狀態(tài)等待命令;如果發(fā)現(xiàn)Bootloader驗(yàn)證失敗,會(huì)認(rèn)為其完整性已被破壞,此時(shí)嵌入式TPM會(huì)對(duì)Bootloader進(jìn)行修復(fù),并以一定方式(如指示燈)給用戶(hù)相應(yīng)提示。嵌入式CPU啟動(dòng)后,系統(tǒng)首先加載運(yùn)行Bootloader,隨后由Bootloader從嵌入式TPM獲取OS Kernel的完整性驗(yàn)證結(jié)果,只有確認(rèn)驗(yàn)證通過(guò)時(shí)才進(jìn)一步加載OS Kernel并轉(zhuǎn)移控制權(quán)。

完整性度量與驗(yàn)證的意義在于發(fā)現(xiàn)系統(tǒng)軟件組件本身的數(shù)據(jù)完整性是否被破壞,如果已經(jīng)被破壞,那么可信計(jì)算平臺(tái)除了要阻止其繼續(xù)運(yùn)行外,還需要能夠提供一種機(jī)制將其恢復(fù)到正常狀態(tài)。嵌入式TPM在內(nèi)部構(gòu)建了一個(gè)備份恢復(fù)存儲(chǔ)區(qū),用來(lái)保存Bootloader、OS Kernel等希望保護(hù)的軟件組件備份代碼,如果在系統(tǒng)啟動(dòng)時(shí)發(fā)現(xiàn)完整性驗(yàn)證失敗,可由嵌入式TPM啟動(dòng)恢復(fù)功能。嵌入式TPM會(huì)從備份恢復(fù)區(qū)讀出指定的備份代碼(Bootloade或OS Kernel等),并將其覆蓋到嵌入式主板啟動(dòng)Flash(圖1中Flash-1)的特定位置,從而恢復(fù)系統(tǒng)軟件的完整性,最后嵌入式CPU加載和運(yùn)行恢復(fù)后的代碼,系統(tǒng)繼續(xù)啟動(dòng)。因?yàn)锽ootloader、OS Kernel是系統(tǒng)的核心軟件組件,所以嵌入式TPM在恢復(fù)前同樣會(huì)驗(yàn)證備份代碼本身的完整性,以確保恢復(fù)成功。此外,Bootloader的恢復(fù)操作在嵌入式TPM的啟動(dòng)過(guò)程中進(jìn)行,能夠確保嵌入式CPU上運(yùn)行的整個(gè)軟件系統(tǒng)是從可信狀態(tài)開(kāi)始啟動(dòng)的。

圖3 Bootloader與OS Kernel的啟動(dòng)驗(yàn)證流程

4 嵌入式TPM的片上系統(tǒng)

嵌入式TPM的軟件系統(tǒng)一個(gè)片內(nèi)操作系統(tǒng)(chip operating system,COS),運(yùn)行在Nios II軟核上,負(fù)責(zé)TPM 中所有硬件模塊的初始化與管理,同時(shí)接收和處理來(lái)自外界的命令,完成TPM的各種功能。TPM COS的體系結(jié)構(gòu)參見(jiàn)圖4,主要分為系統(tǒng)層和應(yīng)用層兩部分,系統(tǒng)層負(fù)責(zé)嵌入式TPM內(nèi)部各硬件模塊的管理,屏蔽硬件細(xì)節(jié),并向應(yīng)用層提供統(tǒng)一的訪(fǎng)問(wèn)接口;應(yīng)用層則負(fù)責(zé)完成嵌入式TPM的各種可信功能模塊,包括CRTM與數(shù)據(jù)備份恢復(fù)功能。

在系統(tǒng)層中,RAM、Flash、GPIO等通用外設(shè)的驅(qū)動(dòng)由硬件抽象層(hardware abstraction layer,HAL)提供。HAL是一個(gè)輕量級(jí)、類(lèi)UNIX的C/C++運(yùn)行環(huán)境,由Nios II IDE或 Nios II軟件生成工具根據(jù)特定的SOPC硬件系統(tǒng)自動(dòng)生成。HAL作為Nios II處理器系統(tǒng)的設(shè)備驅(qū)動(dòng)軟件包,為系統(tǒng)中的各種外設(shè)提供驅(qū)動(dòng)程序及相應(yīng)的接口,同時(shí)也提供main函數(shù)運(yùn)行前的系統(tǒng)和設(shè)備初始化服務(wù),HAL應(yīng)用程序接口(HAL API)則負(fù)責(zé)向應(yīng)用層提供統(tǒng)一的外設(shè)訪(fǎng)問(wèn)接口。

圖4 TPM COS體系結(jié)構(gòu)

4.1 TPM可信功能模塊

TPM COS的應(yīng)用層實(shí)現(xiàn)了包括CRTM在內(nèi)的TPM可信功能,是嵌入式TPM功能的核心部分之一。本文方案中以軟件仿真器TPM-Emulator作為應(yīng)用層部分的原型。TPM-Emulator最初是Linux平臺(tái)上的一個(gè)TPM軟件仿真器[9],目前其最新版本已可以在Linux、OpenBSD、Windows和Darwin(Mac OS X)多種平臺(tái)上運(yùn)行。TPM-Emulator遵循TPM 1.2規(guī)范,同時(shí)也提供了對(duì)移動(dòng)可信模塊MTM(mobile trusted module)的仿真。

TPM-Emulator的基本結(jié)構(gòu)如圖5所示。TPM設(shè)備驅(qū)動(dòng)庫(kù)(TPM device driver library,TDDL)是符合TSS規(guī)范的單線(xiàn)程接口模塊,位于TCS(TSS Core Services,TSS核心服務(wù))和TPM底層驅(qū)動(dòng)之間,正常情況下應(yīng)用程序發(fā)往TPM的命令請(qǐng)求以及從TPM返回的應(yīng)答信息都經(jīng)由TD-DL接收和轉(zhuǎn)發(fā)。TPMD(TPM Daemon)是以后臺(tái)方式運(yùn)行在用戶(hù)空間的守護(hù)進(jìn)程,實(shí)現(xiàn)TPM的各種功能模塊。tpm_dev是內(nèi)核模塊,為實(shí)現(xiàn)TPM設(shè)備驅(qū)動(dòng)的底層兼容性提供了一個(gè)字符設(shè)備/dev/tpm。在 Linux平臺(tái)上,TPMD和TDDL之間采用Socket套接字實(shí)現(xiàn)雙向通信,而在Windows平臺(tái)則通過(guò)Named pipe命名管道進(jìn)行。

圖5 TPM-Emulator基本結(jié)構(gòu)

密碼學(xué)功能模塊是TPM其他所有軟件功能模塊的基礎(chǔ),TPM-Emulator 提 供 包 括 RSA、SHA-1、RC4、HMAC在內(nèi)的多種密碼學(xué)計(jì)算功能,其中涉及的大數(shù)運(yùn)算需要使用大數(shù)庫(kù) GMP(GNU multiple precision arithmetic library)[10],不過(guò)GMP只提供了數(shù)學(xué)運(yùn)算功能,并沒(méi)有密碼學(xué)相關(guān)的高級(jí)功能,所以這部分的流程和處理需由TPM-Emulator自己完成。此外隨機(jī)數(shù)生成器也是TPM中的基礎(chǔ)功能部件之一,在Linux平臺(tái)下TPM-Emulator采用了/dev/urandom虛擬設(shè)備作為可信平臺(tái)的隨機(jī)數(shù)源[11],而在 Windows平臺(tái)下則需要微軟CSP(cryptographic service provider)的支持,通過(guò)調(diào)用CryptGenRandom來(lái)獲得。

TPM-Emulator在運(yùn)行過(guò)程中需要保存各種信息,其中包括EK、AIK、PCR等密鑰信息以及TPM-Emulator運(yùn)行相關(guān)的配置信息,缺省狀態(tài)下這些內(nèi)部數(shù)據(jù)會(huì)在TPMD關(guān)閉時(shí)以文件形式保存,在下次啟動(dòng)時(shí)從該文件中讀取并對(duì)TPM-Emulator進(jìn)行初始化。

嵌入式TPM軟件系統(tǒng)的應(yīng)用層在TPM-Emulator的TPM可信功能模塊(圖5中TPM Emulator Engine)基礎(chǔ)上增加CRTM和數(shù)據(jù)備份恢復(fù)模塊,并基于TPM接口規(guī)范擴(kuò)展自定義命令集實(shí)現(xiàn)相應(yīng)的命令接口。

4.2 雙端口RAM數(shù)據(jù)通信

嵌入式TPM在設(shè)計(jì)中需要著重考慮的一個(gè)問(wèn)題就是與嵌入式CPU間的物理接口。目前的TPM產(chǎn)品多數(shù)針對(duì)PC平臺(tái),采用的是LPC總線(xiàn)接口,LPC總線(xiàn)具有容易跨接入南北橋芯片、支持優(yōu)先啟動(dòng)等特點(diǎn)[12],被TCG作為T(mén)PM的標(biāo)準(zhǔn)接口。但是嵌入式設(shè)備大多不具備LPC接口,因此需要考慮其他接口方式。不同的學(xué)者在嵌入式平臺(tái)上嘗試了不同的設(shè)計(jì)方案。文獻(xiàn) [13]使用嵌入式CPU的GPIO模擬LPC接口與TPM芯片連接;文獻(xiàn) [14]中的TPM芯片使用的是SMBus總線(xiàn),因此在嵌入式CPU一側(cè)通過(guò)I2C總線(xiàn)模擬,在驅(qū)動(dòng)代碼中對(duì)I2C總線(xiàn)的時(shí)序、協(xié)議和操作模式等參數(shù)進(jìn)行修改,將I2C的信號(hào)模擬成符合TPM芯片時(shí)序要求的SMBus總線(xiàn);文獻(xiàn) [15]中的TPM芯片通過(guò)TWI總線(xiàn)進(jìn)行通信,該總線(xiàn)接口時(shí)序與I2C總線(xiàn)兼容,故直接采用了I2C接口,上層應(yīng)用通過(guò)I2C設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)對(duì)TPM芯片的訪(fǎng)問(wèn)。

由于采用FPGA實(shí)現(xiàn)嵌入式TPM,故本文方案中嵌入式TPM與嵌入式CPU間的接口設(shè)計(jì)可以更為靈活。嵌入式可信平臺(tái)選擇在FPGA內(nèi)部設(shè)計(jì)一塊雙端口RAM作為輸入輸出緩沖區(qū),通過(guò)數(shù)據(jù)地址總線(xiàn)與嵌入式CPU相連,同時(shí)配合通信協(xié)議來(lái)實(shí)現(xiàn)嵌入式TPM與嵌入式CPU間的信息交互。雙端口RAM有兩個(gè)讀寫(xiě)控制端口,一個(gè)與FPGA內(nèi)部的Avalon交換總線(xiàn)相連,另一個(gè)連接到嵌入式CPU的數(shù)據(jù)地址總線(xiàn),所有發(fā)往嵌入式TPM或者從嵌入式TPM取回的TPM命令包都被封裝在雙端口RAM通信協(xié)議中傳送。

一旦嵌入式CPU啟動(dòng),嵌入式TPM就成為一個(gè)從設(shè)備被動(dòng)等待來(lái)自外部的命令,并按照命令工作和應(yīng)答,因此雙端口RAM數(shù)據(jù)通信協(xié)議的基本流程是由嵌入式CPU通過(guò)驅(qū)動(dòng)將TPM命令寫(xiě)入雙端口RAM的指定地址,TPM COS從該地址中讀取命令并進(jìn)行處理,完成后將應(yīng)答信息送回該地址。雙端口RAM的前8個(gè)字節(jié)是通信協(xié)議的Header,因?yàn)橥ㄐ烹p方需要訪(fǎng)問(wèn)同一段地址空間,所以設(shè)置了Flag字段作為互斥信號(hào)。數(shù)據(jù)通信協(xié)議的流程簡(jiǎn)要描述如下:

(1)初始化。系統(tǒng)加電后,由TPM COS負(fù)責(zé)雙端口RAM的初始化,并在完成后將Flag置為INITIALIZED,表示雙端口RAM已經(jīng)準(zhǔn)備就緒;

(2)嵌入式CPU發(fā)送命令。嵌入式CPU通過(guò)驅(qū)動(dòng)將命令請(qǐng)求包寫(xiě)入Data段,并將Flag置為CMD_REQ,表示命令發(fā)送完成,隨后等待嵌入式TPM的響應(yīng);

(3)嵌入式TPM讀取命令。TPM COS根據(jù)Flag狀態(tài)判斷命令已經(jīng)發(fā)送完成,于是從Data段讀出命令請(qǐng)求包送入TPM命令處理模塊進(jìn)行解析、執(zhí)行,并構(gòu)建應(yīng)答包;

(4)嵌入式TPM發(fā)送應(yīng)答包。待命令執(zhí)行完成后,TPM COS將應(yīng)答包寫(xiě)入Data段,并將Flag置為CMD_ACK,表示嵌入式TPM已經(jīng)處理完畢;

(5)嵌入式CPU接收應(yīng)答包。嵌入式CPU從Data段取出應(yīng)答包,最后將Flag字段恢復(fù)為INITIALIZED(初始化狀態(tài))。

5 應(yīng)用程序的可信驗(yàn)證與恢復(fù)

嵌入式可信平臺(tái)在啟動(dòng)時(shí)對(duì)系統(tǒng)的軟件組件進(jìn)行完整性度量、驗(yàn)證和恢復(fù)(必要時(shí)),以此確保系統(tǒng)在啟動(dòng)前的靜態(tài)條件下軟件組件的完整性受到監(jiān)控和保護(hù),但這一過(guò)程無(wú)法保證系統(tǒng)在啟動(dòng)后的運(yùn)行過(guò)程中完整性都不被破壞。尤其對(duì)于系統(tǒng)運(yùn)行過(guò)程中可能會(huì)多次啟動(dòng)的應(yīng)用程序而言,確認(rèn)其可信需要兩個(gè)條件,一是系統(tǒng)建立了完整的信任鏈,二是在應(yīng)用程序運(yùn)行時(shí)進(jìn)行了完整性驗(yàn)證[16]。前者確保系統(tǒng)初始運(yùn)行環(huán)境的完整性,后者則在應(yīng)用程序每次啟動(dòng)時(shí)都確保其完整性不被破壞,而驗(yàn)證失敗時(shí)的恢復(fù)操作也是保證應(yīng)用程序可信啟動(dòng)的重要環(huán)節(jié)。

在帶有圖形界面的Linux嵌入式系統(tǒng)中,應(yīng)用程序可通過(guò)Shell命令行和圖形界面點(diǎn)擊兩種方式執(zhí)行。嵌入式可信平臺(tái)對(duì)Shell和桌面系統(tǒng)進(jìn)行了修改,并配合運(yùn)行在后臺(tái)的可信服務(wù)程序?qū)崿F(xiàn)對(duì)應(yīng)用程序的啟動(dòng)攔截、完整性驗(yàn)證及恢復(fù)。當(dāng)通過(guò)輸入命令行或桌面點(diǎn)擊執(zhí)行準(zhǔn)備啟動(dòng)應(yīng)用程序時(shí),系統(tǒng)會(huì)首先發(fā)送消息給可信服務(wù)程序,該消息中包含了該應(yīng)用程序的路徑、名稱(chēng)等信息,可信服務(wù)程序根據(jù)這些信息從磁盤(pán)中讀取到應(yīng)用程序文件,計(jì)算其散列值,并與嵌入式TPM中保存的基準(zhǔn)值進(jìn)行比較。如果相同,則認(rèn)為該文件的完整性沒(méi)有被破壞,從而允許其正常啟動(dòng);如果應(yīng)用程序的完整性發(fā)生變化,系統(tǒng)將通過(guò)對(duì)話(huà)框提示用戶(hù),交由用戶(hù)來(lái)選擇。由于嵌入式可信平臺(tái)在應(yīng)用程序在第一次可信啟動(dòng)時(shí)對(duì)其進(jìn)行了備份,所以用戶(hù)可以選擇禁止運(yùn)行,也可以啟動(dòng)恢復(fù)功能將該文件恢復(fù)到上一次可信啟動(dòng)時(shí)的版本,另外在確認(rèn)安全的情況下可以認(rèn)可此次應(yīng)用程序完整性的變化,允許其正常啟動(dòng),同時(shí)對(duì)備份代碼和完整性基準(zhǔn)值進(jìn)行更新。圖6顯示了應(yīng)用程序的啟動(dòng)驗(yàn)證過(guò)程。

圖6 應(yīng)用程序的可信驗(yàn)證過(guò)程

需要注意的是此處應(yīng)用程序的可信驗(yàn)證仍然是基于靜態(tài)完整性,它只能確保應(yīng)用程序在啟動(dòng)時(shí)代碼本身的完整性沒(méi)有發(fā)生變化,但無(wú)法保證應(yīng)用程序啟動(dòng)后的行為是否可信。

6 結(jié)束語(yǔ)

本文針對(duì)嵌入式系統(tǒng)的特點(diǎn),對(duì)嵌入式TPM和信任鏈的設(shè)計(jì)進(jìn)行了討論,結(jié)合鏈?zhǔn)胶托切托湃谓Y(jié)構(gòu),提出了一種帶數(shù)據(jù)恢復(fù)功能的混合式信任結(jié)構(gòu),這種信任結(jié)構(gòu)綜合考慮了嵌入式平臺(tái)上可信計(jì)算功能的實(shí)現(xiàn)及其對(duì)平臺(tái)性能的影響,在降低鏈?zhǔn)浇Y(jié)構(gòu)信任損失的同時(shí),減少星型信任結(jié)構(gòu)對(duì)嵌入式TPM的依賴(lài)。在此基礎(chǔ)上,基于PXA270處理器和Linux操作系統(tǒng)構(gòu)建并實(shí)現(xiàn)了一種嵌入式可信平臺(tái),該平臺(tái)采用FPGA實(shí)現(xiàn)了內(nèi)置CRTM的嵌入式TPM,并通過(guò)FPGA內(nèi)的雙端口RAM實(shí)現(xiàn)嵌入式TPM與PXA270處理器間的雙向通信。嵌入式可信平臺(tái)在啟動(dòng)過(guò)程中對(duì)引導(dǎo)程序和操作系統(tǒng)內(nèi)核進(jìn)行完整性度量、驗(yàn)證、恢復(fù)和執(zhí)行控制,并且通過(guò)捕捉應(yīng)用程序啟動(dòng)命令,對(duì)應(yīng)用程序的啟動(dòng)進(jìn)行動(dòng)態(tài)攔截,度量、驗(yàn)證和恢復(fù)應(yīng)用程序的完整性,保證應(yīng)用程序的可信啟動(dòng),從而實(shí)現(xiàn)完整的信任關(guān)系傳遞。對(duì)嵌入式可信平臺(tái)原理樣機(jī)的測(cè)試表明,該平臺(tái)能夠有效保證嵌入式系統(tǒng)軟件組件的完整性和可信啟動(dòng),當(dāng)被保護(hù)的系統(tǒng)軟件或應(yīng)用程序被修改后,能夠及時(shí)發(fā)現(xiàn)并根據(jù)用戶(hù)的選擇進(jìn)行恢復(fù),提高了嵌入式系統(tǒng)的可信與安全。

[1]LIU Weipeng,HU Jun,F(xiàn)ANG Yanxiang,et al.Research and development on the secure architecture of terminal based on trusted computing [J].Computer Science,2007,34(10):257-259(in Chinese).[劉威鵬,胡俊,方艷湘,等.基于可信計(jì)算的終端安全體系結(jié)構(gòu)研究與進(jìn)展 [J].計(jì)算機(jī)科學(xué),2007,34(10):257-259.]

[2]SHEN Changxiang,ZHANG Huanguo,WANG Huaiming,et al.Research and development of trusted computing [J].Science China:Information Sciences,2010,40(2):139-166(in Chinese).[沈昌祥,張煥國(guó),王懷民,等.可信計(jì)算的研究與發(fā)展 [J].中國(guó)科學(xué):信息科學(xué),2010,40(2):139-166.]

[3]TPM main specification level 2Version1.2 [EB/OL].https://www.trustedcomputinggroup.org/resources/tpm_main_specification,2011.

[4]TCG specification architecture overview revision 1.4 [EB/OL]. http://www.trustedcomputinggroup.org/files/resource _files/AC652DE1-1D09-3519-ADA026A0C05CFAC2/TCG_1_4_Architecture_Overview.pdf,2011.

[5]ZHAO Bo,ZHANG Huanguo,LI Jing,et al.The system architecture and security structure of trusted PDA [J].Chinese Journal of Computers,2010,33(1):82-92(in Chinese).[趙波,張煥國(guó),李晶,等.可信PDA計(jì)算平臺(tái)系統(tǒng)結(jié)構(gòu)與安全機(jī)制 [J].計(jì)算機(jī)學(xué)報(bào),2010,33(1):82-92.]

[6]CHEN Nanyang.Study on construction technology of embedded trusted platform [J].Information Security and Communications Privacy,2010,32(11):56-58(in Chinese).[陳南洋.嵌入式可信平臺(tái)構(gòu)建技術(shù)研究 [J].信息安全與通信保密,2010,32(11):56-58.]

[7]GUO Linger,JIANG Zhixiang.Design and implementation of hardware platform for trusted computing [J].Computer Engineering and Design,2011,32(2):501-504(in Chinese).[郭靈兒,蔣志翔.可信硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(2):501-504.]

[8]LIN Xiaocha,LI Guang,JIN Shuang.Study of embedded trusted computer [J].Computer Engineering and Design,2009,30(16):3730-3734(in Chinese).[林小茶,李光,金爽.嵌入式可信計(jì)算機(jī)研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(16):3730-3734.]

[9]Mario Strasser.Software-based TPM emulator [EB/OL].http://tpm-emulator.berlios.de,2011.

[10]The GNU multiple precision arithmetic library [EB/OL].http://gmplib.org/,2011.

[11]LIU Changping,F(xiàn)AN Mingwang,WANG Guangwei.ESWTPM:An enhanced software-based TPM [C].Progress of Computer Technology and Application 2008(II).Hefei:U-niversity of Science and Technology of China Press,2008:1187-1191(in Chinese).[劉昌平,范明枉,王光衛(wèi).ESWTPM:一種改進(jìn)的TPM軟件仿真器 [C].計(jì)算機(jī)技術(shù)與應(yīng)用進(jìn)展2008(下冊(cè)).合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2008:1187-1191.]

[12]YE Bin.Reliability enhancement of TPM [J].China Information Security,2009,31(7):53-55(in Chinese).[葉 賓.增強(qiáng)可信計(jì)算平臺(tái)模塊的可信度 [J].信息安全與通信保密,2009,31(7):53-55.]

[13]WANG Yu,WANG Zhenyu,YAO Lining.Design and implementation of TPM extension and trusted bootstrap on embedded platform [J].Computer Engineering and Design,2009,30(9):2089-2090(in Chinese).[王禹,王震宇,姚立寧.嵌入式平臺(tái)TPM擴(kuò)展及可信引導(dǎo)設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(9):2089-2090.]

[14]LIU Hailei,WANG Zhenyu,MA Mingjin,et al.Research and implementation of trusted embedded terminal TPM interface [J].Computer Engineering and Design,2008,29(13):3317-3318(in Chinese).[劉海雷,王震宇,馬鳴錦,等.嵌入式可信終端TPM接口的研究與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(13):3317-3318.]

[15]WANG Bo,LI Bo,GAO Zhentie,et al.Embedded trusted computing platform based on TPM [J].Microcontrollers &Embedded Systems,2011,11(1):13-16(in Chinese).[王博,李波,高振鐵,等.基于TPM的嵌入式可信計(jì)算平臺(tái)設(shè)計(jì) [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(1):13-16.]

[16]CHEN Lin,LIN Honggong,HUANG Yuanfei.Research on mechanism of resisting malicious code based on trusted computing [J].Application Research of Computers,2008,25(12):3713-3715(in Chinese).[陳麟,林宏剛,黃元飛.基于可信計(jì)算的惡意代碼防御機(jī)制研究 [J].計(jì)算機(jī)應(yīng)用研究,2008,25(12):3713-3715.]

猜你喜歡
嵌入式系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 奇米影视狠狠精品7777| 91成人在线免费视频| 99尹人香蕉国产免费天天拍| 成人免费一区二区三区| 在线国产你懂的| 国产69精品久久久久孕妇大杂乱 | 波多野结衣视频网站| 国产综合在线观看视频| 国产欧美视频综合二区| 日本91在线| 波多野结衣一区二区三区四区视频 | 国产真实乱人视频| 国产欧美高清| 中文字幕永久在线看| 欧美性天天| 日韩在线中文| 永久在线精品免费视频观看| 999国产精品永久免费视频精品久久 | 日韩av电影一区二区三区四区| 国产xxxxx免费视频| 国产成人艳妇AA视频在线| 高清欧美性猛交XXXX黑人猛交 | 在线视频亚洲色图| 欧美一级一级做性视频| 亚洲人成网站在线观看播放不卡| 欧美在线综合视频| 99偷拍视频精品一区二区| 国产欧美视频在线| 国产好痛疼轻点好爽的视频| 久无码久无码av无码| 亚洲国产精品成人久久综合影院| 国产69精品久久久久妇女| 青草精品视频| 国产尹人香蕉综合在线电影| 午夜欧美理论2019理论| 欧美日韩另类国产| 国产美女丝袜高潮| 成人va亚洲va欧美天堂| 老司机久久99久久精品播放| 久久精品欧美一区二区| 日本亚洲欧美在线| 午夜性爽视频男人的天堂| 精品视频一区在线观看| 中文字幕欧美日韩| 在线观看免费人成视频色快速| 激情乱人伦| 一级毛片高清| 一级香蕉视频在线观看| 一级毛片免费不卡在线| 91亚瑟视频| 国产精品部在线观看| 色哟哟色院91精品网站| 久久精品人人做人人爽97| 日韩天堂视频| 亚洲第一精品福利| 九九视频在线免费观看| 国产白浆一区二区三区视频在线| 福利一区三区| 91视频99| 丝袜国产一区| 久久综合AV免费观看| 亚洲精品久综合蜜| 蜜桃臀无码内射一区二区三区| 在线a视频免费观看| 丰满人妻一区二区三区视频| 国产欧美日韩视频怡春院| 中文字幕亚洲精品2页| 99热这里只有精品免费国产| 久久一日本道色综合久久| 国产亚洲精品yxsp| 黄色网址手机国内免费在线观看| 亚洲AV一二三区无码AV蜜桃| 91视频国产高清| 亚洲av色吊丝无码| 91在线高清视频| 国产综合精品日本亚洲777| 亚洲男人在线| 91欧美亚洲国产五月天| 欧美精品色视频| 亚洲自偷自拍另类小说| 国产成人毛片| 亚洲av无码牛牛影视在线二区|