本篇文章是由《中國電機(jī)工程學(xué)報》(旬刊)國家一級學(xué)報,國內(nèi)外公開發(fā)行,全國中文核心期刊。主要出版動力和電力工程領(lǐng)域的新理論、新方法、新技術(shù)和新成果。主要服務(wù)對象是電力工業(yè)和電工制造領(lǐng)域的廣大科技工作者、高級工程技術(shù)人員和高等院校師生。
1 引言
可信計算平臺技術(shù)已成為信息安全領(lǐng)域中的研究熱點,可信證明(Remote attestation)是可信計算平臺的一個重要內(nèi)容。目前TCG 發(fā)布的遠(yuǎn)程認(rèn)證機(jī)制是Privacy CA 和DAA,它們都是基于TPM 身份公鑰AIK(Attestation Identity Key)和反映可信平臺事件記錄的順序的PCR(Platform Configuration Register)。Frederic Stumpf 等人改進(jìn)了這種基于二進(jìn)制的認(rèn)證方案,提出了一種魯棒的完整性報告協(xié)議(Robust Integrity Reporting Protocol)可以有效的驗證遠(yuǎn)程可信平臺;但基于二進(jìn)制的認(rèn)證方案被證明是有其固定缺陷的,Vivek Haldar等人提出的基于虛擬機(jī)的遠(yuǎn)程語義認(rèn)證可以驗證遠(yuǎn)程客戶機(jī)的程序是否真正安全,這種動態(tài)的認(rèn)證方案可以解決二進(jìn)制認(rèn)證方案的缺陷, 由于把測試程序的虛擬機(jī)放在客戶端,中間網(wǎng)絡(luò)的不可靠性使得驗證結(jié)果并不是可信的,Liqiang Zhang等人將此工作更進(jìn)一步,用TPM和密鑰來監(jiān)視虛擬機(jī)的接入,這樣可以保證程序執(zhí)行結(jié)果的可信。然而認(rèn)證過的程序要一直認(rèn)證,這樣認(rèn)證的效率是可想而知的。對于客戶端和服務(wù)器這樣機(jī)制是不適合的,因為把虛擬機(jī)放在客戶端,驗證過程必定增加了大量的數(shù)據(jù)流量,這給服務(wù)器帶來額外的負(fù)擔(dān),這是個致命的缺陷。本文正是出于對這些不足的考慮,改進(jìn)前人的認(rèn)證方案,提出在客戶端和服務(wù)器這種特定結(jié)構(gòu)上程序的可信認(rèn)證,并通過實驗對Web 服務(wù)器上的程序進(jìn)行具體的認(rèn)證,實驗結(jié)果表明認(rèn)證結(jié)果是可信的且提高了認(rèn)證效率。
本文組織如下:第二節(jié)介紹可信計算的傳統(tǒng)認(rèn)證機(jī)制;第三節(jié)討論引入虛擬機(jī)概念的可信計算認(rèn)證;第四節(jié)提出服務(wù)器上對客戶端程序的認(rèn)證。第五節(jié)對所做的工作進(jìn)行總結(jié);第六節(jié)對與本文相關(guān)的工作進(jìn)行了介紹。了解SLA網(wǎng)絡(luò)拓?fù)滹@示論文。
2 可信傳統(tǒng)遠(yuǎn)程認(rèn)證機(jī)制
2.1 TCG 簡介TCG 是由包括Intel、微軟、IBM 在內(nèi)的業(yè)界大公司在1999 年牽頭成立,現(xiàn)有近200個公司相繼加入。TCG 的目標(biāo)是建立并推廣一個開放的、與廠商無關(guān)的可信計算構(gòu)建塊的工業(yè)標(biāo)準(zhǔn)和一套跨平臺的軟件接口。
在 TCG 規(guī)范中,可信計算平臺技術(shù)的核心是一個被稱為TPM(可信平臺模塊)的安全芯片,TPM 具有硬件保護(hù)支持功能,即對TPM 內(nèi)部對象的訪問只能通過TPM 規(guī)定的接口實現(xiàn),并且這些對象只能被其屬主(Owner)通過安全方式訪問。
TCG 認(rèn)為如果從一個初始的任信根 (Roots of Trust,RT)出發(fā),在平臺計算環(huán)境每一次轉(zhuǎn)換時,這種信任狀態(tài)可以通過傳遞的方式保持下去而不被破壞,那么平臺計算環(huán)境始終是可信的,可信環(huán)境下的各種操作也不會破壞平臺的可信性,平臺本身的完整性得到保證,終端安全自然也得到了保證,這就是信任鏈的傳遞機(jī)制。
TCG 規(guī)定在建立用戶級進(jìn)程時,內(nèi)核將度量其可執(zhí)行代碼和敏感數(shù)據(jù),這些度量值被存儲在PCR(Platform Configuration Register)寄存器和存儲度量日志SML(Stored MeasurementLog)中,每個PCR 可以被定義只與計算平臺的某一類系統(tǒng)特定事件狀態(tài)相關(guān)。每次相關(guān)事件發(fā)生時,計算平臺將事件記錄結(jié)果保存,并將記錄結(jié)果的Hash 值擴(kuò)充到TPM 中事件對應(yīng)的PCR 中。將Hash 值擴(kuò)充到PCR[n]中的過程為PCR[n]=hash(PCR[n]+R)。顯然,PCR值與事件歷史過程相關(guān),并與事件記錄的順序有關(guān),因此它的值實際反映了事件發(fā)生的歷史順序。每個計算平臺都通過其內(nèi)置的TPM 身份公鑰AIK(Attestation Identity Key)標(biāo)識自己的身份,并利用其AIK 私鑰對消息內(nèi)容簽名,證明其來源。
2.2 基于二進(jìn)制的認(rèn)證—TCG
發(fā)布的認(rèn)證方案目前 TCG 發(fā)布的遠(yuǎn)程認(rèn)證方案包括Privacy CA(Privacy Certification Authority)和直接匿名認(rèn)證DAA(Direct Anonymous Attestation),都是基于二進(jìn)制的認(rèn)證方案。它們都是基于把平臺的現(xiàn)在的狀態(tài)報告給遠(yuǎn)程平臺,每個計算平臺都通過其TPM 身份公鑰AIK 來標(biāo)示自己,如有必要,存儲度量日志SML(Stored Measurement Log)也用來驗證平臺是否可信。
Privacy CA 是通過可信的第三方來驗證自己,首先平臺向可信第三方發(fā)送自己的AIK,可信第三方驗證后發(fā)回簽名的AIK;然后平臺通過自己的AIK 和簽名的AIK 向遠(yuǎn)程平臺來證明自己。
DAA 則不需要可信的第三方,并可以給同一個TPM 產(chǎn)生不同的AIK,DAA 還引入了時戳標(biāo)示。基于二進(jìn)制的認(rèn)證方案主要有以下一些缺陷:(1)可擴(kuò)展性差,(2)對隱私的暴露,(3)缺乏開放性,(4)可能有大量的配置信息的存在,(5)由于時戳標(biāo)示并不能保證執(zhí)行的實時性,因此在完整性度量值和完整性報告之間可能有較大的時間差異。
2.3 基于屬性的認(rèn)證
為了克服二進(jìn)制認(rèn)證的缺點,A.R.Sadeghi 等人提出的基于屬性的證明(property-basedattestation,PBA)方法是一種更加有效且靈活的遠(yuǎn)程證明解決方案,PBA 方法試圖解決平臺配置信息暴露以及系統(tǒng)更新和備份問題。這里的屬性是針對特定需要的平臺行為的表現(xiàn),每種屬性對應(yīng)多種平臺配置信息,從而避免了具體平臺配置信息的直接暴露。在此基礎(chǔ)上L.Chen 等人提出了一個基于屬性證書的證明協(xié)議,每種屬性以及其對應(yīng)的每種配置信息對應(yīng)一個屬性配置證書(Property Configuration Certificates),由一個可信的第三方CA 負(fù)責(zé)管理和發(fā)布。這種證明協(xié)議仍然使用大量零知識證明實現(xiàn)屬性的驗證,運算復(fù)雜度較高。
這里所說的屬性描述了底層對象(平臺或應(yīng)用)關(guān)于特定需求的行為的某個方面(如,安全相關(guān)的需求)。通常,屬性具有不同抽象層次。例如,用平臺屬性描述平臺可以保護(hù)隱私??梢悦枋鰹?,平臺具有內(nèi)建的符合隱私條例的度量,或平臺可以保證孤立性(如,將每個處理器嚴(yán)格的分開),也可以描述為平臺提供多層安全(Multi-Level Security,MLS)等。
是否具有合理的屬性集,主要由用例和需求決定。認(rèn)證屬性的優(yōu)勢是不同的平臺,可以提供相同的屬性并且滿足相同的需求,盡管他們使用不同的構(gòu)件且配置不同。進(jìn)行屬性認(rèn)證之前,應(yīng)該先確定安全屬性。
2.4 傳統(tǒng)認(rèn)證的缺陷
不論是基于二進(jìn)制的還是屬性的認(rèn)證都不能保證遠(yuǎn)程平臺的程序在語義層是安全的,即程序的行為是不是安全的;同時它們都是一次是認(rèn)證,不能動態(tài)的認(rèn)證遠(yuǎn)程實體程序的具體執(zhí)行狀態(tài)和結(jié)果。
3 基于虛擬機(jī)的可信認(rèn)證
為了從更高的語義層去動態(tài)的認(rèn)證遠(yuǎn)程的程序,克服傳統(tǒng)認(rèn)證方案無法動態(tài)的認(rèn)證程序和一次認(rèn)證的缺陷,Seshadri 等人提出Pioneer 系統(tǒng)[6],Pioneer 系統(tǒng)提出一種軟件的認(rèn)證,可以對遠(yuǎn)程代碼進(jìn)行認(rèn)證,它的核心組成部分是一個運行在遠(yuǎn)程系統(tǒng)上的校驗和功能(函數(shù))。Pioneer 系統(tǒng)通過檢查回應(yīng)時間來防止?jié)撛诘墓?,如果回?yīng)時間在一個給定的范圍內(nèi)則認(rèn)為回應(yīng)是可信的。Vivek Haldar 等人將Pioneer 的核心組成部分--校驗和功能(函數(shù))改進(jìn)為可信的虛擬機(jī),讓遠(yuǎn)程的代碼在自己的可信虛擬機(jī)上運行得到結(jié)果后由認(rèn)證方來確定結(jié)果的可信與否。這種基于虛擬機(jī)的認(rèn)證,比Pioneer 系統(tǒng)的認(rèn)證結(jié)果更可信,文獻(xiàn)提出了語義遠(yuǎn)程認(rèn)證,這也是一種綜合認(rèn)證方案。先由TPM 對虛擬機(jī)進(jìn)行認(rèn)證,這里的虛擬機(jī)是基于語言的虛擬機(jī),如JVM,然后虛擬機(jī)對高層程序的語義屬性進(jìn)行認(rèn)證。
在這里要提到的Tal Garfinkel 等人提出的Terra 系統(tǒng),此系統(tǒng)在可信虛擬監(jiān)視器上建立多個不同健壯性的虛擬機(jī),把不同的應(yīng)用運行在不同的虛擬機(jī)上。它把虛擬機(jī)分為“開放的盒子”虛擬機(jī)和“關(guān)閉的盒子”虛擬機(jī),在“關(guān)閉的盒子”虛擬機(jī)上運行可信的操作系統(tǒng),在此系統(tǒng)上運行特定的應(yīng)用;“開放的盒子”上運行簡單應(yīng)用。Terra 系統(tǒng)被證明是一個成功的運用虛擬監(jiān)視器上的體系結(jié)構(gòu)。
4 可信客戶端程序的認(rèn)證
4.1 引入過濾機(jī)制的虛擬認(rèn)證
方案虛擬的可信認(rèn)證能夠有效的提高認(rèn)證的可信性,并能在一定程度上提高認(rèn)證的效率,但它仍然存在不足之處。就文獻(xiàn)[7]中Vivek Haldar 等人的認(rèn)證策略而言,把可信的虛擬機(jī)放在客戶端,不能很好的防止中間人攻擊,同時認(rèn)證過程占用了不少寶貴的網(wǎng)絡(luò)帶寬;此認(rèn)證不夠靈活,對每個遠(yuǎn)程的程序都要進(jìn)行認(rèn)證,對于特定的服務(wù)器來說,有些程序基本上是不可能存在危險,如訪問公共的只讀網(wǎng)頁數(shù)據(jù)的程序。
在 Vivek Haldar 等人研究的基礎(chǔ)上,結(jié)合屬性認(rèn)證的思想和服務(wù)器的特殊要求,對前人的認(rèn)證方案改進(jìn),改進(jìn)后的方案。
此認(rèn)證系統(tǒng)是針對服務(wù)器的特點而進(jìn)行的改進(jìn),因為特定的服務(wù)器它的程序大部分是一類的,比如一個Web 服務(wù)器,訪問它的程序大多數(shù)是讀數(shù)據(jù)程序;同時對于服務(wù)器而言帶寬是很重要的資源,把可信虛擬機(jī)放在客戶端顯然不合適。認(rèn)證過濾器是負(fù)責(zé)認(rèn)證的關(guān)鍵部分,通過它可以動態(tài)的確定哪些程序的行為不用認(rèn)證,哪些程序的行為需要認(rèn)證。這樣認(rèn)證過濾器的過濾策略就顯得至關(guān)重要。
針對有些大型服務(wù)器,可能承載很多不同的服務(wù),在此借鑒Terra 的系統(tǒng)設(shè)計思想,把可信虛擬機(jī)分為多個不同的虛擬機(jī),不同的服務(wù)用不同的虛擬機(jī)來認(rèn)證在它上運行的程序,同時不同的虛擬機(jī)有不同的認(rèn)證過濾器,這種認(rèn)證策略更靈活,認(rèn)證的效率將明顯提高。此認(rèn)證系統(tǒng)的認(rèn)證結(jié)構(gòu)。
4.2 Web 服務(wù)器上認(rèn)證的實現(xiàn)
實驗設(shè)計把服務(wù)器確定為具體的小型Web 服務(wù)器,針對WEB 服務(wù)器的特性設(shè)計具體的認(rèn)證過濾器和認(rèn)證策略,首先把服務(wù)器上的程序進(jìn)行如下分類:1.可執(zhí)行程序;2.讀數(shù)據(jù)程序;3.寫數(shù)據(jù)程序;4.修改配置程序;5.其它程序。再把服務(wù)器上的數(shù)據(jù)分為公開數(shù)據(jù)和保密數(shù)據(jù)。接著給用戶設(shè)定不同的用戶權(quán)限。
用戶的程序到達(dá)服務(wù)器端后,先經(jīng)過過濾器中的程序分類器把程序進(jìn)行分類,分類后的程序類別加上用戶名和程序的HASH 值在程序信任表里查找,若程序信任表有此信息,則可直接訪問服務(wù)器,若無此信息把程序送到可信虛擬機(jī)上進(jìn)行行為認(rèn)證,若可信則讓其訪問服務(wù)器,并在過濾器上為此程序建立三元組加入到程序信任表中。具體的認(rèn)證過程。
實驗采用 Tomcat 服務(wù)器,把本機(jī)上運行的虛擬機(jī)作為可信的虛擬機(jī)。對其上運行的程序進(jìn)行認(rèn)證,對服務(wù)器上第一次運行的100 個不同程序進(jìn)行認(rèn)證,先認(rèn)為其行為是可信的,為它們建立程序信任表花費的時間為20 秒,平均每個0.5 秒。接著再把這100 個不同程序進(jìn)行認(rèn)證,查找程序是否在程序信任表里花費的時間為3 秒,平均每個0.03 秒,相對于網(wǎng)絡(luò)延遲來說這個時間在可以忽略的范圍內(nèi)。本計算機(jī)職稱論文來源于專業(yè)的職稱論文網(wǎng),如有業(yè)務(wù)需求請咨詢網(wǎng)站客服人員!
5 結(jié)論
與相關(guān)工作計算機(jī)可信平臺是未來計算機(jī)發(fā)展的方向,網(wǎng)絡(luò)在現(xiàn)代生活中扮演越來越重要的角色,可信平臺的遠(yuǎn)程認(rèn)證則必然將是研究的熱點。能夠從程序的行為上認(rèn)證程序的語義認(rèn)證無疑能夠使認(rèn)證結(jié)果更可信。本文提出的認(rèn)證體系結(jié)構(gòu),結(jié)合服務(wù)器的特點和語義認(rèn)證的優(yōu)點,對傳統(tǒng)的認(rèn)證做出了改進(jìn),認(rèn)證效率和認(rèn)證的策略上還有待改進(jìn)。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >