http://www.jos.org.cn/html/2014/6/4414.htm
當前,基於TPM[1]和TCM[2]構建可信計算環境已經成為可信計算的研究熱點.基於TPM/TCM的可信度量、報告和遠程證明功能實現了通信雙方信任關系建立,因此成為了構建分布式可信計算環境的核心功能.目前,關於遠程證明的研究主要包括基於實體標識的二進制證明[3,4,5,6,7]和基於屬性的遠程證明[8,9,10,11,12,13,14].
在二進制證明過程中,證明請求包含一系列關於被證明系統中當前運行實體的聲明,其中,每個實體都通過度量機制生成的唯一性標識來表示.接收到證明請求后,驗證方基於表示實體標識間信任傳遞關系的信任鏈組成的可信策略,從而確定被證明系統狀態是否可信.TCG體系中,遠程證明的主要作用是針對平台部件的完整性進行測量,包括檢查部件代碼內容的非授權篡改以及鑒別部件的提供者身份,實質是一種基於二進制的完整性驗證.其優點是證明過程簡單、可靠,不需要可信第三方的參與,而驗證方則能夠可靠地構建起證明平台上從硬件信任根開始的信任鏈.但是,它最大的缺點是對平台配置隱私的暴露,證明過程中要求出示整個平台配置的完整性度量值.
針對二進制證明的上述缺點,研究者們設想從抽象的屬性或者語義上去理解和構建證明平台.基於屬性的遠程證明中,證明方只需要根據驗證方的目標屬性給出相應的屬性聲明,不需要將實體唯一性標識暴露給驗證方;同時,由於系統中運行實體的唯一性標識也可認為是系統的屬性之一,因此基於屬性的遠程證明在保護系統隱私的同時也提高了證明方案的靈活性.但基於屬性的遠程證明只有抽象的概念模型,難以度量、比較和推導,從而無法構建類似二進制度量的信任鏈傳遞信任的功能.
值的注意的是,無論是二進制證明方案還是基於屬性證明方案,針對的均是終端的靜態環境,即反映的是終端的軟件配置結構,並不能證明終端運行環境的真正可信.例如,即使是經過度量的應用程序,也不可能保證終端整個運行環境的可信,因為對應用程序進行完整性度量只能保證該應用程序沒有被惡意程序修改,但不能保證該應用程序本身是否破壞終端的運行環境,如泄露內存、劫持網絡、破壞文件等;再如,即使終端配置有符合可信策略的軟件,但如果這個軟件本身存在漏洞,終端的運行環境也會存在被破壞的可能.針對這一問題,本文提出了一種新的終端可信環境遠程證明方案.該方案不僅考慮了滿足可信平台規范的信任鏈以及相關軟件配置的可信屬性證明,而且針對運行環境考慮了終端行為的可信屬性證明,並分別給出了信任鏈、相關軟件配置和終端行為等屬性證明的可信性判定策略和算法以及終端運行環境遠程證明的綜合性判定策略和算法,從而證明終端運行環境的真正可信.
本文第1節給出相關工作的描述.第2節給出基於屬性的遠程證明模型.第3節給出本模型中可信策略的可判定性定理及證明.第4節給出終端運行環境的遠程證明方案在Windows平台上的實現.第5節給出終端運行環境遠程證明方案的應用案例研究.第6節是比較與評價.最后是本文的總結.
1 相關工作終端遠程證明最初是由TCG組織給出的[1],TCG組織一直是這一工作積極的主導者和推動者.在TCG的遠程證明過程中,主要包括證明方與驗證方,假設平台使用者想要向驗證方證明自己的平台上有一個合法的TPM,並利用這個TPM對平台的PCR(platform configuration register)進行簽名,實現向第三方證明其平台的合法性.最直接的方法是:平台用EK私鑰對PCR簽名並發送給驗證方,驗證方驗證簽名后信任平台為一個可信平台,且其配置信息PCR為可信.上述方法的問題在於:平台使用者的EK固定,當他/她與不同的驗證方多次進行上述協議時,其交易記錄可被第三方關聯起來(linkable),從而無法保護平台使用者的隱私.TCG組織在TPM規范1.1版本中提出了以(privacy CA)認證ID密鑰(attestation identity key,簡稱AIK)的方案來解決上面的問題.在該方案中,平台不再以EK作為簽名的密鑰,而是每次臨時生成一個新的AIK作為簽名密鑰.為了證明AIK的合法性,平台必須首先向隱私CA申請一個AIK證書.當隱私CA收到平台的申請后,隱私CA用自身的私鑰對AIK簽名.平台獲得這個簽名后可以發送給第三方的驗證者,驗證者根據隱私CA的公鑰驗證AIK是否合法,合法的AIK對PCR的簽名被視為TPM的合法簽名.Privacy CA方案的致命缺陷在於:其必須在保證PrivaCy CA可信的同時,還必須有高響應能力,所以其應用必將成為可信平台驗證的瓶頸.TCG定義TPM規范1.2版中提出了直接匿名認證(direct anonymous attestation,簡稱DAA)協議[15],該協議在實現TPM芯片認證的同時,保證了認證的匿名性,驗證方無法得到芯片的唯一標示.但該協議非常復雜,包含4次零知識證明,運算量非常大,包括大量的模指數運算,因此,該協議還缺乏實用性.目前,對該協議的優化工作是一個研究熱點[16,17,18,19,20,21,22,23,24,25,26,27].
除此以外,國內外眾多研究機構和學者提出了許多不同的遠程證明方法.從遵循TCG規范的直接二進制證明,到基於高級語言的語義證明;從嵌入式設備的基於軟件證明,到Web Service的證明.在這眾多的證明方法中,研究成果最多的還是基於實體標識的二進制證明(binary attestation)[3,4,5,6,7]和基於屬性的遠程證明[8,9,10,11,12,13,14].
在實體標識的二進制證明方面,IBM研究院提出了完整性度量方案IMA[4],該方案對於Linux系統加載的可運行實體進行度量,從而生成該實體的唯一性標識符.在證明時,驗證方以可信計算平台作為信任根,從而建立對於證明方包含實體標識的判定.基於IMA方案,Jager等人提出了基於策略規約的遠程證明方案PRIMA[5],該方案基於C-W信息流模型對遠程證明過程中需證明的實體進行規約,從而在一定程度上防止了遠程證明過程中平台配置的隱私暴露.
基於屬性的遠程證明方面,2004年,德國波鴻魯爾大學的Sadeghi等人提出了基於屬性的遠程證明概念和模型[10],給出了基於屬性的遠程證明方案的軟硬件實現方法,該方法在可信引導程序Trusted Grub的基礎上對基於屬性的遠程證明方法、屬性驗證和撤銷等實現技術進行了研究.隨后,為了從框架上解決遠程證明過程中隱私泄露問題,同時保證證明方案的靈活性,Poritz等人率先從體系架構層次提出了基於屬性的遠程證明[11],在該框架中,Poritz等人討論了基於屬性遠程證明在隱私保護、擴展性等方面的優點.在屬性證明的實現方面,波鴻魯爾大學利用在線可信第三方頒發了屬性證書,實現了引導過程中的二進制度量轉換為屬性,基於屬性實現了系統的證明和封裝.該方案建立在在線的可信第三方基礎上,便於完整性管理和安全屬性管理,並采用CRL驗證屬性的撤銷.隨后,他們又對這個方案進行改進,實現了基於屬性的系統引導器解決屬性證明過程中的屬性證書的版本回滾問題.在協議方面,Chen提出了基於屬性的遠程證明協議(簡稱PBA協議)[9].文獻[26]提出了使用遠程證明擴展SSL協議的方案,通信終端通過協商安全參數和在SSL協議上證明平台配置,以此達到建立遠程可信通道.該方案的提出,為基於現有通信協議實現遠程證明過程中證明請求的發送給出了很好的解決方法.文獻[13]提出了一種基於屬性的遠程證明模型.該模型將傳統遠程證明中信任鏈模型擴展為信任圖,使得模型能夠表達更為靈活的可信策略;文獻[14]基於可信計算中的二進制系統完整性測量模型,增加證書權威和可信屬性權威,提出一種屬性遠程證明系統完整性測量模型,並利用謂詞邏輯證明其可信性.
2 終端運行環境的遠程證明方案終端運行環境的遠程證明方案包含5個實體:證明代理、驗證代理、屬性證書頒發中心、可信策略庫管理方和服務提供方.驗證過程如圖 1所示.其中,
![]() |
Fig. 1 Remote attestation project of the running environment of the trusted terminal圖 1 終端運行環境的遠程證明過程方案 |
(1) 證明代理將終端完整性測量值、軟件配置以及終端用戶行為發送給驗證代理;
(2) 驗證代理根據完整性測量值、軟件配置結構以及終端用戶行為,對照其可信策略庫中的安全策略,包括平台組件屬性及完整性特征值、軟件配置目錄結構以及惡意行為特征.如果均滿足可信策略庫的屬性安全策略,則向屬性證書頒發中心申請一個終端運行環境的可信屬性證書;
(3) 屬性證書頒發中心頒發終端運行環境的可信屬性證書,並返回給證明代理;
(4) 終端向服務方證明自己的可信屬性,並獲得服務方資源.
在此遠程證明過程中,證明代理的主要功能是獲取TPM的PCR二進制標示、軟件配置以及終端環境中的用戶行為;驗證代理的主要功能是基於可信策略庫對證明代理收集的信息進行確認,包括滿足可信平台規范確認、軟件配置確認、行為確認以及屬性證書申請;屬性證書頒發中心的主要功能是頒發和管理屬性證書.顯然,此遠程證明過程不僅具有基於屬性的遠程證明方案的所有優點,如:(1) 易實現復雜開放網絡環境下的異構平台之間的驗證;(2) 無論廠商是誰,具備相同屬性的任何配置均被賦予相同的屬性證書;(3) 避免直接暴露平台配置給未知驗證方,使惡意對手攻擊平台更容易等等,而且還具有如下特征:①增加了對終端環境用戶行為的可信屬性證明,使得該遠程證明方案不僅能證明終端的靜態環境可信,而且通過對終端活動進程的行為屬性分析遠程證明終端的動態環境可信;②遠程證明過程中,證明代理、驗證代理、可信策略庫、證書頒發中心和服務方的關系更加具體明確.
值得注意的是,在一個安全域中,驗證代理、可信策略庫以及屬性證書頒發中心通常可以看成為可信第三方.一方面,它們接受此域中各個可信終端無條件信任,接收來自可信終端的PCR二進制標示、軟件配置以及終端環境中的用戶行為,並保證這些信息不被泄漏;另一方面,它們接受此域中各種服務提供方無條件信任,均把它們發出的屬性證書作為獲得服務的主要憑證和相關授權的主要憑證;第三,驗證代理、可信策略庫以及屬性證書頒發中心本身是安全可靠的.
3 終端運行環境遠程證明的判定策略終端運行環境遠程證明方案的核心是判定問題.判定依賴於具體的策略,而策略必須與終端實際環境相吻合.因此,必須詳細分析終端環境的信任鏈傳遞、軟件配置和用戶行為,為遠程證明的判定策略提供基礎保證.為了便於敘述,我們先形式化定義軟件組件、屬性、屬性集等基本概念.
定義1. 終端環境的軟件組件定義為ci={(ci-code,ci-d-code,ci-cofile),(ci-f,ci-v,ci-o)},其中,(ci-code,ci-d-code,ci-cofile)表示軟件的代碼特征,ci-code代表軟件ci的源代碼,ci-d-code代表軟件ci的依賴,如其依賴的靜態庫、動態庫或第三方代碼庫,ci-cofile代表軟件ci的策略配置文件.(ci-f,ci-v,ci-o)表示軟件ci的功能特征,ci-f表示ci的功能,ci-v表示測組件ci的版本號,ci-o表示軟件組件ci的其他相關屬性,比如軟件名、開發者、發布時間等.
依據定義1,軟件組件集為C={c1,c2,…,cn,…}.
定義2. 屬性是指軟件組件滿足某一功能要求而具有的內在特征,形式化為pi;屬性集P是指包含各種屬性的集合,即P={p1,p2,…,pn,…}.
我們用ptpm表示終端運行環境滿足信任鏈傳遞的可信平台規范屬性,psoft-configration表示終端運行環境滿足一定可信策略需要的軟件配置屬性,pbehavior表示終端運行環境滿足一定可信策略需要的用戶行為屬性.下面將分析屬性ptpm,psoft-configration和pbehavior及其判定策略.
3.1 屬性ptpm的分析與判定屬性ptpm的實質含義是指終端系統滿足基於完整性測量的信任鏈傳遞.從第2節的分析可以看出,在本方案的遠程證明過程中,證明代理TAgent運行在被驗證平台上,起着非常重要的作用.為了保證TAgent可信,我們擴展終端的信任傳遞過程為
CRTM®BIOS®OS Loader®OS®TAgent®Application.
如圖 2所示,將TAgent作為可信平台鏈式度量的重要一環.這種方式是可行的,TAgent的度量可由OS主導完成,並由OS將TAgent程序作為第1個應用程序首先啟動.
![]() |
Fig. 2 Measurement of attestation agent by TPM圖 2 基於TPM 的證明代理TAgent的可信度量 |
在圖 2中,實現信任傳遞的相關參數主要包括:
(1) 系統配置:將完整性測量組件的哈希值存入TPM的24個PCR中;
(2) 存儲測量值日志(storage measurement log,簡稱SML),其中包含了存儲在TPM中的所有測量值的事件結構以及被測量的軟件組件的(ci-f,ci-v,ci-o).
為了詳細描述系統完整性測量模型,我們定義信任根、完整性測量組件兩個概念以及測量函數、完整性驗證函數和完整性傳遞函數.
定義3. 信任根集(trusted root set)為一個由特殊屬性組成的集合,包含所有其可信性無需進行證明的屬性,形式化表示為TRS={r|rÎP}.
根據定義3,由圖 2可知,可信終端的信任根集只有一個元素,即具有“首先啟動、防被物理攻擊以及能度量BIOS等功能”的CRTM,即TRSt={CRTM}.
定義4. 完整性測量組件集I={i1,i2,…,in,…},其中,inÎC.
由圖 2可知,終端的完整性測量組件集It={CRTM,BIOS,OS Loader,OS Kernel,TAgent,Applications},顯然,ItÌC.
定義5. Measure(in,in+1,PCRn+1,smln+1)表示在完整性測量過程中,in對in+1的完整性進行測量,其增量哈希值存儲於PCRn+1,相對應的存儲測量值日志為smln+1,n是正整數且0≤n≤23.
定義6. 完整性驗證函數Verify(in,in+1,PCRn+1,LPCRn+1)表示將in對in+1的完整性測量值PCRn+1與可信策略庫中對應的標准LPCRn+1進行比較.如果完全匹配,返回true;否則,返回false.
定義7. 完整性傳遞函數Integrity(in,in+1)表示完整性能夠從in有效地傳遞至in+1,而不遭受破壞與損失.
根據以上定義,我們得出屬性ptpm的判定算法,如圖 3所示.
![]() |
Fig. 3 Decidability algorithm of Ptpm圖 3 屬性Ptpm的判定算法 |
圖 3算法首先判斷信任根集是不是空,然后判斷信任根集里的信任根是不是唯一.如果這兩個條件均成立,則調用measure函數對CRTM®BIOS®OS Loader®OS®TAgent進行完整性測量,並調用完整性驗證函數Verify進行驗證,如果成立,則調用Integrity進行完整性可信傳遞,然后輸出為ptpm,表示終端運行環境滿足信任鏈傳遞的可信平台規范屬性;否則,輸出NULL.
3.2 屬性psoft-configration的分析與判定屬性psoft-configration的實質含義是指終端運行環境的軟件配置滿足一定可信策略.
為了詳細分析屬性psoft-configration,我們首先定義平台軟件配置、基本配置等基本概念以及Draw(), Search-property()和Verify_softwareconfiguration()函數.
定義8. 平台軟件配置是一個平台運行的軟件序列,記為s={c1,c2,…,cm},其中,ciÎC.顯然,sÌC.
一個平台在不同任務要求下可能運行不同的軟件,也可能以不同的順序運行軟件.因此,可能有多個不同的軟件配置,所有的平台軟件配置記為C的冪集P(C).
一個配置s={c1,c2,…,cm}中,若ci在cj的前面執行,記為
定義9. 設s是一個配置,ci,cj,…,ckÎC並且,那么t=áci,cj,…,ckñ是s的一個平台基本軟件配置.
例如,對於配置s=ác1,c2,…,cmñ,áciñ(1≤i≤n)是s的基本配置;由於,因此ác1,cnñ也是s的一個基本配置.平台基本軟件配置與軟件配置不同基,平台基本軟件配置是一個有序集合.如果去掉平台基本軟件配置的有序性,則有tÌs.
屬性psoft-configration由終端運行環境中滿足一定可信策略需要的基本軟件配置提供,驗證代理將證明代理獲得的平台基本軟件配置轉換成對應的屬性psoft-configration.值的注意的是,屬性psoft-configration與平台的綁定不是直接到單個軟件,而是綁定到每個平台基本軟件配置上,因為許多屬性是由幾個軟件按照一定順序運行才提供的.比如,SELinux提供MLS支持需要完整的Linux內核基礎上裝載LSM鈎子模塊,然后再裝載MLS模塊才能使得配置具有MLS能力.因此說,平台基本軟件配置ákernel,LSM,MLSñ提供MLS屬性.
定義10. Draw(Processes)表示從平台的Processes列表中獲取平台基本軟件配置.
定義11. Search-property(p)表示從可信策略庫中查詢屬性p對應的平台基本軟件配置.
定義12. 軟件配置驗證函數Verify_softwareconfiguration(t1,t2)的功能是驗證平台基本配置t1,t2是否匹配:如果匹配,返回ture;否則,返回false.
根據以上定義,我們得出屬性psoft-configration的判定算法,如圖 4所示.
![]() |
Fig. 4 Decidability algorithm of Psoftware-configuration圖 4 屬性Psoftware-configuration的判定算法 |
圖 4算法首先判斷終端平台的已啟動進程列表是不是空,如不是空,就從該進程列表中獲取平台基本軟件配置,將此基本軟件配置與可信策略庫中需要的基本軟件配置進行比較:如果匹配,則輸出為psoft-configration,表示終端運行環境滿足一定可信策略需要的軟件配置屬性;否則,輸出NULL.
3.3 屬性pbehaviour的分析和判定屬性pbehavior的實質含義,是指終端運行環境中的主體行為滿足一定可信策略.為了詳細描述主體行為屬性,我們首先定義與主體行為相關的基本概念.
定義13(基本變量). S為主體集合,也可看作是用戶和用戶啟動的進程集合,在此,把已啟動的進程稱為活動主體;O為客體集合,對於單個客體o,有oÎO,客體可以是文件、程序、設備等資源.
定義14(行為集合). 行為集B=(SxOxA),"bÎB表示主體對客體的操作行為.S={s1,s2,…,sm,…}表示該狀態下所有行為主體集合.在終端系統中,主體包括用戶和進程,用戶啟動程序后產生進程,進程代表用戶執行訪問操作,O={o1,o2,…,om,…}表示行為的客體集合,A={r,w,e}表示訪問操作集合,包括讀、寫和執行.
定義15. 惡意行為特征是指破壞終端運行環境的主體行為表現出來的特征,用ri表示,其中,i是正整數;惡意行為特征集是所有惡意行為特征的集合,記為R={r1,r2,…,rm,…},其中,m是正整數.
對於確定的終端運行環境,惡意行為普遍存在共同屬性,無論是內部威脅、惡意代碼和還是病毒,最終表現出來的惡意行為特征可以概括為自傳播性(感染文件、自我復制等)、自激活性(注冊啟動項、文件關聯)、自保護性(隱藏目錄、守護進程)、破壞性(篡改破壞文件、破壞主機相關設備等)、非法連接性(非法連接並發起網絡攻擊等).這里,我們可以用r1表示自傳播性,可以用r2表示自激活性,可以用r3表示自保護性,可以用r4表示破壞性,可以用r5表示非法連接性,則終端運行環境惡意行為特征R={r1,r2,r3,r4,r5}.
定義16. 行為記錄函數RecordAct(si,x,o,t)表示在t時刻將主體si對o執行的動作x記錄到系統日志log中.
定義17. Get-Badbehavior(si,log)表示從系統日志log中獲取平台主體si的行為集.
定義18. h(si,x,o)表示根據主體si的行為ási,x,oñ計算惡意行為指數.
用表示主體si的行為ási,x,oñ對終端運行環境的惡意影響,其中,
和
分別表主體行為ási,x,oñ體的自傳播指數、自激活指數、自保護指數、破壞指數以及非法連接指數.值為0表示對系統無影響;值越大,表示影響越大.用a,b,c,d和g分別表示自傳播指數、自激活指數、自保護指數、破壞指數以及非法連接指數在計算主體行為惡意指數中所體現的權重,則主體行為ási,x,oñ的惡意行為指數為
當終端運行環境中的任意主體si的惡意行為指數超過設定的安全閾值H時,終端運行環境就不滿足屬性pbehavior.根據以上定義,我們得出屬性pbehavior的判定算法,如圖 5所示.
![]() |
Fig. 5 Decidability algorithm of pbehaviour圖 5 屬性pbehaviour的判定算法 |
圖 5算法首先判斷終端平台的行為日志是否為空,如果不為空,調用Get-Badbehavior函數從系統行為日志log中獲取平台主體si的行為集,並計算其惡意行為指數,如果沒有超過安全閾值,則輸出為pbehavior,表示終端運行環境中的主體行為滿足一定可信策略的需要;否則,輸出NULL.
3.4 終端運行環境遠程證明的綜合判定策略在終端運行環境的遠程證明方案中,存在一個被所有其他計算實體信任並且自身安全能夠得到保證的屬性證書頒發中心TPA(trusted property authority),它的主要作用是發布與可信策略相對應的屬性證書.
定義19. 可信屬性證書是一種輕量級的數字證書,這種數字證書不包括公鑰信息,只包含證書所有人ID、發行證書ID、簽名算法、有效期以及可信屬性ptpm,psoft-configration,pbehavior,它是由屬性證書頒發中心TPA簽發的標志實體屬性信息的一系列數據的集合.
在某一可信安全域中,可信屬性證書是獲得服務的主要憑證和相關授權的主要憑證.
定義20. 屬性證書頒發函數Cert(p)的功能是屬性證書頒發中心為屬性p頒發屬性證書.
綜合判定策略:如果終端運行環境具有屬性(ptpm,psoft-configration,pbehavior),屬性證書頒發中心TPA向終端頒發滿足屬性(ptpm,psoft-configration,pbehavior)的屬性證書,即:
Cert((ptpm,psoft-configration,pbehavior)),
則終端運行環境是可信的.
根據算法1~算法3定義的函數=Check-trusted Platform Specification,Check-softewareconfigration和Check- behavior,我們得出終端運行環境是否可信的綜合判定算法,如圖 6所示.
![]() |
Fig. 6 Combined decidability algorithm圖 6 綜合判定算法 |
圖 6算法首先判斷終端平台是否滿足屬性ptpm,然后判斷是否滿足屬性psoft-configration和屬性pbehavior.如果這幾個屬性都滿足,則調用Cert為該終端頒發可信屬性證Property-Certificate,表示終端運行環境是可信的(基於可信策略);否則,輸出NULL.
4 終端運行環境的遠程證明方案在Windows平台上的實現終端運行環境的遠程證明方案中,證明代理與驗證代理是兩個核心實體.本節主要介紹證明代理與驗證代理在Windows平台上的實現.
4.1 證明代理的設計與實現4.1.1 證明代理的需求規定終端運行環境的遠程證明方案中,證明代理運行在可信終端,通過接受來自驗證代理的命令對終端動態運行環境里PCR值、軟件配置信息以及用戶行為信息進行收集,為驗證方依據可信策略庫來評估終端運行時環境提供依據.因此,證明代理應該具有如下的功能需求和非功能需求.
功能需求包括:
· 協議管理.驗證發送命令,證明代理解析協議並完成相應的功能;
· 信息收集.主要是收集終端運行環境里PCR值、軟件配置信息以及用戶行為信息;
· 信息簽名與加密.代理需要對信息簽名,保證來源可信;也需要對信息加密,保證傳輸可信.
非功能需求包括:
· 可信保障機制,保障代理服務端靜態可信和動態可信.
4.1.2 證明代理的體系結構在Windows XP平台上,我們用Jtpm模擬TPM(Jtpm是一個具有TPM功能的中間件平台),開發了終端運行環境遠程證明方案中的證明代理.證明代理是一個deamon服務程序,沒有用戶界面.服務程序的體系結構如圖 7所示.當終端啟動時,證明代理自動啟動.證明代理通過讀取配置文件和相關本地文件進行一系列的初始化工作,並啟動證明代理線程.證明代理在和驗證代理建立連接時,我們並沒有選擇典型的一個Socket主線程開多個子線程的服務器模型,而采用Socket非阻塞模式的Select模型來將證明代理服務器設計成只有一個線程、而該線程中包含了多條連接的服務器模型.當證明代理監聽到驗證代理的連接請求時,建立連接,並創建新的套接字對象.建立連接完成,一方面,證明代理接收來自驗證代理轉發的指令,調用指令實施模塊進行指令解析、存儲、轉發或執行等功能,在輔助文件和TPM的幫助下進行PCR值、終端進程列表以及用戶行為的收集;另一方面,證明代理將收集的信息存儲於本地,並反饋信息給驗證代理.
![]() |
Fig. 7 Architecture of server of a trusted attestation agent圖 7 可信代理服務端的模塊結構 |
TPM及證明代理之間的關系如圖 8所示.由圖 8可以看出,證明代理與TPM之間由TSS鏈接.TSS由3個邏輯組件構成:TCG設備驅動程序庫(TDDL)、TCG核心服務(TCS)、TCG服務提供者(TSP).
![]() |
Fig. 8 Mechanism of TPM and attestation agent圖 8 TPM及證明代理之間的關系 |
· TDDL為TPM定義了標准接口(TDDLI)以及提供了用戶模式和內核模式之間的轉換;
· TCS提供了標准接口(TCSI)以及管理TPM的資源;
· TSP為應用程序提供了豐富的面向對象的接口(TSPI).
證明代理通過TSP對TPM進行訪問.TSP通過接口TSPI接收來自收集代理的命令參數,TSP做了相應的操作、處理后,將命令進一步封裝成包,通過TCSI交給TCS;TCS做了相應的操作、處理后,將包轉化成TPM能夠識別的字節流,經由TDDL和TDD交送給TPM.TDD主要負責接收TDDL發送過來的字節流並且將其轉發給TPM,待TPM處理完后再將信息傳回.
4.2 驗證代理的設計與實現4.2.1 驗證代理的需求規定終端運行環境的遠程證明方案中,驗證代理是一個運行在網絡中的應用程序,通常和服務提供方處於同一個安全域.驗證代理通過向證明代理發送命令,包括PCR值獲取命令、軟件配置獲取命令以及用戶行為獲取命令等來獲取證明代理所在終端的相關信息,並通過可信策略庫對此類信息進行分析和處理.如果終端運行環境滿足可信策略庫確定的策略,驗證代理需要向屬性證書辦法中心申請屬性證書,並轉發給證明代理所在的可信終端.因此,終端運行環境的遠程證明方案中,驗證代理應該具有如下主要功能需求,包括:
· 命令管理.驗證代理向證明代理發送命令,收集相關信息;
· 信息接收與處理.主要接收來自證明代理的PCR值、軟件配置信息以及用戶行為信息,並對這些信息進行處理;
· PCR屬性驗證.根據可信策略庫中的PCR屬性描述對終端PCR值進行驗證;
· 軟件配置驗證.根據可信策略庫中的軟件配置描述對終端軟件配置進行驗證;
· 用戶行為驗證.根據可信策略庫中的惡意行為描述對終端用戶行為驗證進行驗證;
· 綜合判定.綜合判定終端運行環境是否可信.
4.2.2 驗證代理的體系結構如圖 9所示為終端運行環境的遠程證明方案中驗證代理的模塊結構,從驗證代理的體系結構可以看出,該驗證代理主要包含建立連接模塊和驗證代理主線程模塊.建立連接模塊的作用與證明建立連接模塊的作用相同.由於一個驗證代理需要收集證明代理所在終端的多項內容,因此驗證代理使用了多線程,主線程可以生成多個子線程,一個子線程收集證明代理所在終端的一類信息.驗證代理子線程包含發送命令模塊、接收信息與處理模塊、PCR屬性驗證模塊、軟件配置驗證模塊、用戶行為驗證模塊、綜合判定模塊、協議解析模塊以及屬性證書申請模塊.命令管理模塊的功能是發送命令信息給證明代理;信息接收和處理模塊的功能是接收證明代理發送來的信息,並對信息進行處理;PCR屬性驗證模塊的功能是根據可信策略庫中的PCR屬性描述對終端PCR值進行驗證;軟件配置驗證模塊的功能是根據可信策略庫中的軟件配置描述對終端軟件配置進行驗證;用戶行為驗證模塊的功能是根據可信策略庫中的惡意行為描述對終端用戶行為驗證進行驗證;綜合判定模塊的功能是綜合判定終端運行環境是否可信;協議解析模塊的功能是處理證明代理與驗證代理之間的通信工作;屬性證書申請模塊的功能是申請屬性證書.
![]() |
Fig. 9 Architecture of verificaiton agent圖 9 驗證代理模塊結構 |
為了便於呈現驗證代理的驗證結果,我們通過Web服務器調用驗證代理的相關接口.用戶可以通過瀏覽器直觀看出驗證代理的相關驗證結果.
驗證代理結果呈現的運行界面如下圖 10所示.
![]() |
Fig. 10 Property-Based verification system of the trusted terminal圖 10 可信終端運行環境屬性驗證系統 |
在證明代理和驗證代理共同約定了一種通信協議,使得它們在交換信息時遵循統一的規則.該協議的具體包格式如圖 11所示,該協議包只包含Type和數據段兩段:.
![]() |
Fig. 11 Communication protocol between attestation agent and verification agent圖 11 證明代理與驗證代理的通信協議 |
Type:表示的是驗證代理所選擇的指令.由於證明代理需要獲取PCR值、軟件配置和用戶行為信息,因此Type段的設計如圖 12所示.即Type共32位、4個字節,高30位保留,用於證明代理日后的功能擴展.用低4位比特的二進制來表示不同的指令,見表 1.
![]() |
Fig. 12 State diagram for the trusted service access on the trusted terminal圖 12 可信服務訪問的終端運行環境的狀態圖 |
![]() |
Table 1 Kind of communication protocol表 1 通信協議種類 |
Data:用來填充與協議相關的數據.當證明代理要發送一個指令的相應反饋結果時,就將其填充到data字段.例如獲取PCR信息時,證明代理必須將終端的PCR值發送給驗證代理.
5 終端運行環境的遠程證明的應用案例研究本節以一個開放的局域網為實驗環境分析本文提出的終端運行環境的遠程證明方案.在該實驗環境中,我們選用4台計算機,其中,一台普通PC,基本配置為Windows vista home basic @2007 service pack 1,CPU: Intel(R)Core(TM)2 Duo CPU T6670 @2.20GHz,1.0GB RAM,用於部署證明代理,該機器上配置Jtpm;第2台為服務器,基本配置為Windows XP Professional 2002 Service pack 3,CPU:Intel(R)Core(TM)2 Duo CPU E7500@ 2.93GHz,2.0GB RAM,用於部署驗證代理;第3台為服務器,基本配置為:Ubanq2,CPU:Intel(R)Core(TM)2 Duo CPU E7500@2.93GHz,2.0GB RAM,用於部署策略數據庫和小型開源CA,最后一台也為服務器,基本配置為:Ubanq2,CPU:Intel(R)Core(TM)2 Duo CPU E7500@2.93GHz,2.0GB RAM,用於部署Web服務.本實驗的基本思路是:終端在訪問Web服務之前,需要向Web服務器證明自己滿足訪問Web服務器的可信策略.本實驗也可以應用於實現網絡可信接入等這類開放的分布式計算環境中.
5.1 證明代理的設計與實現終端是滿足可信計算平台規范的終端.在訪問某一服務時,該服務必須滿足可信策略庫中的訪問策略,包括滿足可信計算平台規范策略、軟件配置策略(包括Linux本地安全服務已運行、Linux安全補丁已安裝、Linux防火牆已開啟等等)以及終端用戶行為可信策略,該可信策略是服務訪問決策點判定終端是否可以訪問服務時的判定依據.需要注意的是,本節給出的可信策略表示了訪問服務時服務管理員對於網絡安全要求的定義,根據安全要求不同,可以定義各類可信策略實例.圖 12給出了在終端系統中滿足可信策略的實體圖,其中,信任根是系統符合可信計算平台規范.
該實體圖描述了在服務訪問點處終端的硬件、固件以及軟件屬性的定義以及屬性間的信任關系和用戶行為的信任關系,例如根據可信策略,可以看出,只有當系統同時安裝有操作系統補丁、運行防火牆軟件,並且用戶無惡意行為時,才可以認為該系統處於安全狀態,可以訪問該服務.
圖 13給出了根據一次服務訪問時可信策略,利用評估過程得出的對於平台滿足各個安全屬性的驗證結果.
![]() |
Fig. 13 Property verification by our project for the trusted service access on the trusted terminal圖 13 可信服務訪問的終端運行環境屬性驗證 |
根據服務訪問系統中可信策略定義可以看出:傳統二進制遠程證明過程在能力上無法滿足此類遠程證明要求,例如對於圖 13中定義的信任關系,當系統同時安裝有操作系統補丁、並且運行防火牆軟件時,可以認為該系統處於安全狀態;對於已有的屬性證明方案,在能力上無法滿足終端用戶行為可信屬性證明的要求,例如對於圖 13中定義的信任關系,當系統中的用戶無惡意行為時,則可以認為該系統處於安全狀態.通過本文提出的用戶行為屬性判定策略,可以證明終端運行環境的用戶行為可信.
5.2 證明代理在終端中的性能分析證明代理在一定程度上會影響終端的性能,我們將從啟動時間、CPU負載、內存消耗等方面對此進行詳細的討論.而驗證代理運行在第三方,對終端運行環境和服務訪問的影響很小,本文不予討論.
圖 14所示為終端在使用了證明代理和沒有使用證明代理情況下的啟動時間對比(深色為沒有使用可信證據收集代理,淺色為使用的情況),其中,代理文件的大小為1.28MB,這里的啟動時間是指終端的證明代理開始執行到加載完畢開始執行的時間間隔.在一次系統啟動之后,我們連續4次啟動證明代理,這4次執行的時間如圖 14所示,其中,橫坐標為啟動次數,縱坐標為執行時間(單位:s).實驗是在如下的環境中進行的:Windows XP Professional 2002 Service pack 3,CPU:Intel(R)Corex2 Duo CPU E7500@2.93GHz,2.0GB RAM.從實驗結果可以看出:在使用了證明代理的情況下,代理程序第1次啟動的時間顯著地增加了,這部分增加的時間是用於完成對代理文件的度量;在第2次啟動開始,由於代理文件沒有發生改變,而且度量值是直接在高速緩存中獲得的,所以之后的啟動時間與沒有使用可信證據收集代理時的啟動時間是基本相同的.這個結果與文獻[17]相似.
![]() |
Fig. 14 Initiation time for server of the trust attestation agent圖 14 可信代理服務端啟動時間 |
為了測試終端CPU負載,我們首先關掉終端所有無關的應用進程,待其穩定后測試CPU的利用率.如圖 15所示,圖中顯示的是在4個不同的時間點CPU的利用率(間隔5min).從該圖可以看出,關閉所有應用程序,此時CPU值在0~2%之間浮動,CPU的利用率幾乎為0.
![]() |
Fig. 15 CPU performance of terminal when server of the trusted attestation agent shuts down圖 15 未開啟可信代理服務端時終端CPU 的性能 |
然后啟動證明代理,待其穩定后再測試CUP的利用率.如圖 16所示,圖中顯示的是在4個不同的時間點CPU的利用率(間隔5min).從該圖可以看出,啟動監控代理后CPU的利用率變動范圍在3%~6%,常在3%~6%之間波動.也就是說,收集代理給CPU帶來低於6%的開銷.
![]() |
Fig. 16 CPU performance of terminal when server runs圖 16 開啟代理服務端時終端CPU的性能 |
為了測試內存消耗,我們首先關掉終端所有無關的應用進程,測試內存占用率,如圖 17所示;然后啟動證明代理,再次測試內存占用率.從前后兩個圖可以直觀看出:證明代理帶來的內存開銷為7M,非常小,對終端內存的使用幾乎沒有影響.
![]() |
Fig. 17 Memory expense of terminal when sever of the trusted attestation agent runs and shuts down圖 17 未開啟和開啟可信代理服務端時終端內存開銷 |
目前,為了促進遠程證明方案的實用化,眾多研究機構和學者提出了許多不同的遠程證明方法.從遵循TCG規范的直接二進制證明,到基於高級語言的語義證明;從嵌入式設備的基於軟件證明,到Web Service的證明.在這眾多的證明方法中,研究成果最多的還是基於實體標識的二進制證明和基於屬性的遠程證明.本方案與已有基於實體標識的二進制證明和基於屬性的遠程證明方案相比,具有如下特點:
(1) 與已有的基於實體標識的二進制證明相比,本方案克服了基於實體標識的二進制證明的最大缺點:對平台配置隱私的暴露,證明過程中不再要求出示整個平台的配置的完整性度量值;
(2) 與已有的基於屬性的遠程證明方案相比,本方案不僅包括了滿足可信計算平台規范的屬性判定和軟件配置的屬性判定,而且還包括終端用戶行為的屬性判定.因此,本方案不僅可以判斷終端的靜態環境可信,還可以判定終端的動態環境是否可信,為服務訪問或網絡接入提供更高的可信保障;
(3) 本方案在Windows平台上實現了證明代理和驗證代理,並進行了實際的案例研究,最后分析了證明代理在終端的性能開銷.方案完整詳細,具有較高的參考價值.
7 總 結本文首先提出了終端運行環境遠程證明的總體方案,分別介紹了屬性ptpm、屬性psoft-configration和屬性pbehavior的判定策略以及終端運行環境遠程證明的綜合判定策略.然后,詳細介紹了終端運行環境的遠程證明方案在Windows平台上的實現,包括證明代理與驗證代理的設計與實現以及它們之間的通信協議;其次,我們將證明代理與驗證代理應用於可信服務訪問,並對證明代理在終端中的性能分析;最后,將本方案與已有基於實體標識的二進制證明和基於屬性的遠程證明方案進行了比較.
我們下一步的工作將在兩個方面展開:一是開發本方案的實際產品適用系統;二是尋找更優化的終端運行環境遠程證明方案.
[1] | Trusted Computing Group. TPM main specification, version 1.2. 2003. http://www.trustedcomputinggroup.org. |
[2] | Functionality and Interface Specification of Cryptographic Support Platform for Trusted Computing. 2007 (in Chinese). |
[3] | Garfinkel T, Pfaff B, Chow J. Terra: A virtual machine-based platform for trusted computing. In: Proc. of the 19th ACM Symp. on Operating Systems Principles. 2003 . |
[4] | Sailer R, Zhang X, Jaeger T. Design and implementation of a TCG-based integrity measurement architecture. In: Proc. of the 13th Conf. on USENIX Security Symp. 2004. |
[5] | Trent T, Sailer R, Shanker U. PRIMA: Policy-Reduced integrity measurement architecture. In: Proc. of the 11th ACM Symp. on Access Control Models and Technologies.2006 . |
[6] | Peinado M, Chen Y, England P. NGSCB: A trusted open system. In: Proc. of the Australasian Conf. on Information Security and Privacy.2004 . |
[7] | Shi E, Adrian P, Doom LV. BIND: A fine-grained attestation service for secure distributed systems. In: Proc. of the 2005 IEEE Symp. on Security and Privacy.2005 . |
[8] | Kuhn U, Selhorst M, Stuble C. Realizing property-based attestation and sealing with commonly available hard-and software. In: Proc. of the 2007 ACM Workshop on Scalable Trusted Computing.2007 . |
[9] | Chen L, Landfermann R, Lohr H. A protocol for property-based attestation. In: Proc. of the 1st ACM Workshop on Scalable Trusted Computing.2006 . |
[10] | Sadeghi AR, Stubl C. Property-Based attestation for computing platforms: Caring about properties, not mechanisms. In: Proc. of the 2004 Workshop on New Security Paradigms.2004 . |
[11] | Poritz J, Schunter M, Herreweghen EV. Property attestation-scalable and privacy-friendly security assessment of peer computers. Technical Report, RZ 3548, IBM Research, 2004. |
[12] | Sheehy J, Coker G, Guttman J. Attestation: Evidence and trust MITRE. Technical Report, MTR080072, 2008. |
[13] | Yu AM, Feng DG, Wang D. Property-Based remote attestation model. Journal on Communications, 2010,31(8):1-8 (in Chinese with English abstract). |
[14] | Cui YL, Shen CX. Credibility attestation of integrity measurement in property remote attestation. Computer Engineering, 2010, 36(21):11-16 (in Chinese with English abstract) . |
[15] | Gu L, Guo Y, Wang H, Zou YZ, Xie B, Shao WZ. Runtime software trustworthiness evidence collection mechanism based on TPM. Ruan Jian Xue Bao/Journal of Software, 2010,21(2):373-387 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3789.htm |
[16] | Brickell E, Camenisch J, Chen LQ. Direct anonymous attestation. In: Proc. of the 11th ACM Conf. on Computer and Communications Security. 2004. 132-145. |
[17] | Ge H, Tate SR. A direct anonymous attestation scheme for embedded devices. In: Proc. of the Public Key Cryptography (PKC 2007). 2007. 16-30 . |
[18] | Brickell E, Chen LQ, Li JT. Simplified security notions for direct anonymous attestation and a concrete scheme from pairings. Int’l Journal of Information Security, 2009,8(5):315-330 . |
[19] | Brickell E, Chen LQ, Li JT. A new direct anonymous attestation scheme from bilinear maps. In: Proc. of the Trusted Computing- Challenges and Applications (TRUST 2008). 2008.166-178 . |
[20] | Chen LQ, Morrissey P, Smart NP. Pairings in trusted computing. In: Proc. of the Pairings in Cryptography (Pairing 2008). London: University of London, 2008.1-17 . |
[21] | Chen LQ, Morrissey P, Smart NP. DAA: Fixing the pairing based protocols. Cryptology ePrint Archive, Report 2009/198, 2009. http://eprint.iacr.org/2009/198. |
[22] | Chen LQ, Li JT. A note on the Chen-Morrissey-Smart direct anonymous attestation scheme. Information Processing Letters, 2010, 110(12):485-488 . |
[23] | Chen X, Feng D. Direct anonymous attestation for next generation TPM. Journal of Computers, 2008,3(12):43-50. |
[24] | Brickell E, Li JT. Enhanced privacy ID from bilinear pairing. Cryptology ePrint Archive, Report 2009/095, 2009. http://eprint.iacr.org/2009/09. |
[25] | Chen LQ. A DAA scheme requiring less TPM resources. In: Proc. of the 5th China Int’l Conf. on Information Security and Cryptology. 2009.350-365 . |
[26] | Brickell E, Li JT. A pairing-based DAA scheme further reducing TPM resources. In: Proc. of the 3rd Int’l Conf. on Trust and Trustworthy Computing. 2010. 181-195. |
[27] | Yacine G, Ahma-Reza S, Patrick S. Beyond secure channels. In: Proc. of the ACM Workshop on Scalable Trusted Computing.2007 . |
[2] | 國家密碼管理局.可信計算密碼支撐平台功能與接口規范.2007. |
[13] | 於愛民,馮登國,汪丹.基於屬性的遠程證明模型.通信學報,2010,31(8):1-8. |
[14] | 崔艷莉,沈昌祥.屬性遠程證明中完整性測量的可信性證明.計算機工程,2010,36(21):11-16 . |
[15] | 古亮,郭耀,王華等.基於TPM的運行時軟件可信證據收集機制.軟件學報,2010,21(2):373-387. http://www.jos.org.cn/1000-9825/3789.htm |