《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 一種可信增強(qiáng)的訪問控制框架的設(shè)計與實現(xiàn)

一種可信增強(qiáng)的訪問控制框架的設(shè)計與實現(xiàn)

2009-05-26
作者:于穎超, 徐 寧, 李立新

??? 摘? 要: 借鑒可信計算思想,,從可信增強(qiáng)的角度出發(fā),提出了一個可信增強(qiáng)的訪問控制框架,,并給出了該框架的具體實施流程,。該框架在普通Flask的基礎(chǔ)上引入了身份認(rèn)證和可信監(jiān)控機(jī)制,,解決了傳統(tǒng)訪問控制中存在的“內(nèi)部威脅”問題,它是在訪問控制中引入可信計算的一個嘗試,,具有一定的指導(dǎo)意義,。?

??? 關(guān)鍵詞: 可信計算; Flask; 訪問控制; 身份認(rèn)證; 可信監(jiān)控

?

??? 目前,大部分終端平臺信息安全系統(tǒng)主要是由防火墻,、入侵監(jiān)測和病毒防范等組成,,但僅靠“堵漏洞、作高墻、防外攻”無法從根本上解決終端平臺的安全問題[1],??v觀安全操作系統(tǒng)近40年的發(fā)展歷史可以發(fā)現(xiàn),安全操作系統(tǒng)得到了長足的發(fā)展,,并在訪問控制框架和安全模型方面均取得了豐碩的成果。但是,,傳統(tǒng)的訪問控制并不能解決“內(nèi)部威脅”問題,。造成內(nèi)部威脅的原因主要是“脆弱性或漏洞攻擊”?!按嗳跣曰蚵┒垂簟笔侵竷?nèi)部授權(quán)主體可以繞過檢測和訪問控制機(jī)制,,利用自身的權(quán)限和已知的系統(tǒng)脆弱性及漏洞,通過完全合法的操作發(fā)動內(nèi)部攻擊,。從技術(shù)上講,,這種內(nèi)部威脅的根源在于傳統(tǒng)的訪問控制理論存在的缺陷。傳統(tǒng)的訪問控制理論是基于“關(guān)口控制”理論實施的,,即它不會讓不符合條件的主體對客體進(jìn)行請求的操作,,但是主體一旦取得相應(yīng)的操作權(quán)限,它在允許操作范圍內(nèi)的活動行為就可以暢通無阻,。究其原因,,主體對客體的訪問和行為是根據(jù)授權(quán)和身份識別來決定的,授權(quán)一旦確定,,就不會再考慮主體的表現(xiàn),,也不會再考慮主體行為的可信性,直到另外一次授權(quán)開始,。另外,,傳統(tǒng)的訪問控制也不能保證客體內(nèi)容的真實性和完整性。?

??? 因此,,尋求一種通用的方法對授權(quán)操作的行為進(jìn)行監(jiān)管,,控制授權(quán)后的信息流失,保證合法主體的行為得到應(yīng)有的控制和監(jiān)督,,才能使這類主體的行為規(guī)范可信,,預(yù)防和控制內(nèi)部威脅的發(fā)生。目前,,隨著新的安全技術(shù)的興起,,可信計算也成為人們關(guān)注的熱點。從可信計算的概念及其特征可以發(fā)現(xiàn),,通過引入可信計算解決上述安全問題是可行的,。?

1 可信計算思想?

??? 為了提高計算機(jī)的安全防護(hù)能力,由Intel、惠普,、微軟,、IBM等業(yè)界大公司牽頭,于1999年成立了可信計算平臺聯(lián)盟TCPA(后于2003年改組為TCG),,并提出了“可信計算”的概念[2],。可信計算旨在從硬件體系結(jié)構(gòu)和系統(tǒng)完整性角度來提高終端計算平臺的安全性,,解決終端平臺安全性問題,。它認(rèn)為如果終端計算平臺從一個初始的“可信根”出發(fā),在終端平臺計算環(huán)境的每一次轉(zhuǎn)換時,,這種可信狀態(tài)都可以通過傳遞的方式保持下去而不被破壞,,則該終端平臺就始終是可信的[2]。在可信環(huán)境下不存在不被信任的實體,,因而可以很好地保證平臺本身及上層應(yīng)用的安全,。?

??? 信任鏈的傳遞是體現(xiàn)可信的重要手段,它是可信計算平臺的核心機(jī)制,。系統(tǒng)加電后,,在可信硬件平臺的控制下,BIOS會將信任傳遞給主引導(dǎo)分區(qū),,主引導(dǎo)分區(qū)將信任傳遞給操作系統(tǒng)裝載器,,操作系統(tǒng)裝載器將信任傳遞給操作系統(tǒng)內(nèi)核模塊,也就是說可信鏈的傳遞是分層進(jìn)行的,。當(dāng)?shù)图墑e的節(jié)點驗證到高一級的節(jié)點是可信時,,低級別節(jié)點才會把可信計算平臺的運(yùn)行控制權(quán)轉(zhuǎn)交給高一級節(jié)點??尚庞嬎闫脚_正是基于這種信任鏈傳遞的機(jī)制將可信擴(kuò)展到了應(yīng)用程序部分,。平臺可信的驗證通過哈希運(yùn)算進(jìn)行,在驗證過程中,,各程序的雜湊值將會被存儲在平臺配置寄存器PCR(Platform Configuration registers)中,,而且在關(guān)機(jī)之前這部分PCR的值不會被重置,只能被擴(kuò)展,。當(dāng)遠(yuǎn)程或本地程序(請求者)需要驗證當(dāng)前系統(tǒng)是否處于預(yù)定義的可信狀態(tài)時,,這些PCR的值就會被讀取。請求者對這些可執(zhí)行體或數(shù)據(jù)進(jìn)行雜湊運(yùn)算,,并且與PCR中的預(yù)期值進(jìn)行比較,。如果相同,則可以判定該系統(tǒng)運(yùn)行的程序是預(yù)先規(guī)定的可信程序或者是可信數(shù)據(jù),。?

2 可信增強(qiáng)的Flask訪問控制框架的設(shè)計與分析?

2.1 Flask訪問控制框架?

??? Flask是目前業(yè)界關(guān)注度最高的訪問控制框架之一,,它是由美國國家安全局聯(lián)合猶他州大學(xué)和安全計算公司,,以安全策略靈活性為目標(biāo)設(shè)計開發(fā)的多訪問控制策略支持框架。Flask嚴(yán)格分離了策略實施邏輯和策略決策邏輯,。Flask由對象管理器和安全服務(wù)器兩部分組成,,對象管理器負(fù)責(zé)策略實施邏輯的執(zhí)行,安全服務(wù)器負(fù)責(zé)策略決策邏輯的制定,。Flask描述了對象管理器和安全服務(wù)器的交互,,以及對它們內(nèi)部組成部分的要求。Flask還借助一個訪問向量緩存(AVC)模塊來實現(xiàn)對動態(tài)策略和性能要求的支持[3],。?

??? 如圖1所示,,在Flask訪問控制框架下,主體要對客體進(jìn)行操作,。首先要將訪問請求發(fā)送到對象管理器,對象管理器收集主客體的安全標(biāo)簽,,對訪問請求進(jìn)行判斷;對象管理器首先檢查存放在AVC中的訪問向量,,如果存在此訪問向量,則直接返回在AVC中的訪問向量,否則,,向安全服務(wù)器提出查詢請求,。在安全服務(wù)器中根據(jù)主客體的SID及相應(yīng)的類,針對相關(guān)的安全策略對請求進(jìn)行計算,,然后返回相應(yīng)的訪問向量決策,,同時把此訪問向量存放在AVC中。如果策略允許主體在客體上執(zhí)行預(yù)期的操作,,則該請求就會被允許,,否則,該請求就會被拒絕,。?

?

?

2.2 可信增強(qiáng)的Flask訪問控制框架設(shè)計?

??? 盡管Flask安全框架在一定程度上解決了系統(tǒng)的安全問題,,但其解決的是不讓非法主體對系統(tǒng)資源進(jìn)行惡意的訪問控制,而無法解決合法主體的可信性問題,,即前言中描述的“內(nèi)部威脅”問題,。另一方面,F(xiàn)lask也無法保證系統(tǒng)中客體內(nèi)容的完整性和真實性問題,。結(jié)合可信計算,,本文提出了一種可信增強(qiáng)的Flask訪問控制框架,它在普通Flask框架的基礎(chǔ)上加入了身份認(rèn)證和可信監(jiān)控機(jī)制,,如圖2所示,。?

?

?

??? 訪問控制中,用戶身份認(rèn)證是非常重要的,。在用戶對系統(tǒng)資源進(jìn)行訪問控制之前,,首先要經(jīng)過身份認(rèn)證模塊識別用戶的身份,,訪問控制模塊才能根據(jù)用戶的身份和安全策略庫決定用戶是否能夠訪問某個資源。?

??? 可信監(jiān)控機(jī)制用于保障安全策略的正確實施,,它在安全服務(wù)器內(nèi)實現(xiàn),。其主要工作有:(1)對主體行為進(jìn)行監(jiān)控,即在進(jìn)行訪問控制之前,,確保主體的行為是可信的,,不會給系統(tǒng)造成破壞;(2)對客體進(jìn)行驗證,,即根據(jù)客體的當(dāng)前狀態(tài)驗證主體的身份和客體自身的完整性,,確保客體內(nèi)容的真實性,;(3)監(jiān)控訪問行為,,即監(jiān)控所有與安全相關(guān)的訪問企圖,確保訪問企圖不被篡改,,訪問機(jī)制不被繞過,。圖3是可信監(jiān)控機(jī)制的示意圖。?

?

?

??? 可信監(jiān)控機(jī)制可分為可信驗證,、可信存儲和可信報告三部分,,其中可信驗證必須存在,可信存儲和可信報告可選,。為了實施可信驗證,,首先要對進(jìn)行可信驗證的實體進(jìn)行可信度量,可信度量由度量實體(或者是度量事件)啟動,,通過對度量實體進(jìn)行SHA1運(yùn)算得到一個雜湊值,,度量實體會將這個雜湊值存儲在內(nèi)核里的一個有序度量列表中,同時將可信度量值報告給存儲在可信硬件里的平臺配置寄存器(PCR),,以擴(kuò)展度量列表,。可信驗證結(jié)合度量列表中存儲的度量值,,對主客體進(jìn)行一致性驗證,,檢查其是否被篡改或破壞,以確保主客體的可信性和完整性,。驗證過程依賴于度量列表中存儲的基準(zhǔn)度量值與當(dāng)前狀態(tài)的可信度量值的比較,。若當(dāng)前狀態(tài)的可信度量值符合基準(zhǔn)度量值,則認(rèn)為該實體(或事件)是可信的[4],。?

??? 在加入了身份認(rèn)證和可信監(jiān)控之后,,訪問控制的工作流程如下:?

??? (1) 在身份鑒別的控制下,用戶登錄,,啟動訪問控制模塊,;?

??? (2) 主體向?qū)ο蠊芾砥靼l(fā)送訪問請求,,要求對相應(yīng)的客體進(jìn)行請求操作;?

??? (3) 對象管理器將訪問請求發(fā)送給安全服務(wù)器,。請求包括主客體標(biāo)識以及請求類型等,;?

??? (4) 安全服務(wù)器接收到訪問請求之后,啟動可信監(jiān)控機(jī)制,;?

??? (5) 可信監(jiān)控機(jī)制根據(jù)主體的當(dāng)前訪問行為,,判斷主體的可信性及主體的這次訪問行為是否為不良行為。如果主體可信并且這次訪問行為完全合法,,可信監(jiān)控機(jī)制則會轉(zhuǎn)向?qū)腕w的驗證,,否則,拒絕這次訪問,;?

??? (6) 可信監(jiān)控機(jī)制根據(jù)訪問請求,,驗證客體的真實性和完整性,如果驗證出客體的真實性和完整性未遭到破壞,,可信監(jiān)控機(jī)制則會將訪問控制權(quán)轉(zhuǎn)向安全服務(wù)器的安全決策邏輯的制定,,否則,拒絕這次訪問,;?

??? (7) 安全服務(wù)器根據(jù)當(dāng)前的訪問控制策略庫進(jìn)行訪問決策的判定,如果這次訪問行為滿足訪問控制策略,,則允許主體的這次訪問行為,,否則,拒絕本次訪問,;?

??? (8) 安全服務(wù)器將判定結(jié)果返回給對象管理器,,對象管理器依據(jù)決策結(jié)果實施主體對客體的訪問控制;?

??? (9) 可信監(jiān)控機(jī)制實施主體對客體操作的監(jiān)控,,如果出現(xiàn)違規(guī)行為,,則撤銷此次訪問。?

2.3可信增強(qiáng)的Flask訪問控制框架分析?

??? 本文通過對普通Flask訪問控制框架加入身份認(rèn)證和可信監(jiān)控機(jī)制,,實現(xiàn)了一個可信增強(qiáng)的訪問控制框架,,通過實施這個可信增強(qiáng)的訪問控制框架,可以實現(xiàn)對操作系統(tǒng)終端平臺的機(jī)密性,、一致性保障,,并且具有較好的可用性。下面就這幾個方面做簡要說明,。?

??? (1) 一致性:通過在框架中實施可信監(jiān)控機(jī)制對相應(yīng)主體和客體(包括文件,、目錄、進(jìn)程,、套接字等)進(jìn)行一致性驗證,。對主,、客體的驗證首先要檢查主、客體是否存在預(yù)期摘要值,,如果不存在,,則為其生成預(yù)期摘要值(首次執(zhí)行);否則計算主,、客體的當(dāng)前摘要值,,并且與保存的預(yù)期摘要值進(jìn)行比較;如果不一致,,則拒絕本次訪問請求[5],。這樣做可以保證系統(tǒng)資源的一致性,進(jìn)而保證整個系統(tǒng)的一致性,。?

??? (2) 機(jī)密性:通過在框架中實施強(qiáng)制訪問控制對登錄用戶,、系統(tǒng)主體以及敏感信息進(jìn)行處理,有權(quán)限的合法可信用戶以及合法可信主體才可訪問相應(yīng)級別的敏感信息,,從而解決了前言中闡述的“內(nèi)部威脅”問題,。對于某些由于意外情況而賦予的訪問許可,通過實施強(qiáng)制訪問控制,,其實施范圍也會限定在有限的區(qū)域,,并且當(dāng)再次執(zhí)行訪問控制決策時,也會由于一致性驗證不成功而拒絕訪問,,從而保證了整個系統(tǒng)的機(jī)密性,。?

??? (3) 可用性:身份認(rèn)證是保證用戶身份合法性及唯一性的方法,而訪問控制的有效性也需要建立在合法主體的基礎(chǔ)之上,。該框架在普通Flask框架的基礎(chǔ)上增加了身份認(rèn)證和可信監(jiān)控,,既解決了用戶身份的合法性又解決了訪問控制實施的可信性,它在保證機(jī)密性,、一致性的基礎(chǔ)上,,對用戶透明,不需用戶干預(yù),,具有良好的可用性,,并且能與操作系統(tǒng)良好兼容。?

3 框架實現(xiàn)?

??? 本文以通用硬件平臺和Linux-2.6.19內(nèi)核為基礎(chǔ)實現(xiàn)了此可信增強(qiáng)訪問控制框架,。由于所用通用平臺,,不具備TCG定義的可信根,因此原型中采用在其他項目中開發(fā)的具備密碼功能和存儲機(jī)制的可信支撐模塊作為可信根,。限于篇幅,,本節(jié)只重點闡述這個可信增強(qiáng)的訪問控制框架在內(nèi)核的實施流程。?

3.1 內(nèi)核修改?

??? 可信驗證機(jī)制是在位于內(nèi)核空間的安全服務(wù)器內(nèi)實施的,,其主要在以下幾方面對內(nèi)核進(jìn)行了修改:?

??? (1) 添加了measure系統(tǒng)調(diào)用,。真實的可信驗證是在內(nèi)核中執(zhí)行的,,因此在內(nèi)核中添加了新的系統(tǒng)調(diào)用measure,其主要任務(wù)是識別系統(tǒng)(用戶或內(nèi)核級)上的檢測點,,即與執(zhí)行相關(guān)的內(nèi)容載入的地方,,并且在這些位置上插入measure系統(tǒng)調(diào)用(或在內(nèi)核里直接調(diào)用檢測代碼)。?

??? (2) 添加了一個checkfile文件,。checkfile文件用于存放檢測值列表,,包括BIOS、操作系統(tǒng)裝載器,、內(nèi)核以及應(yīng)用程序的檢測基準(zhǔn)值,。在初始化可信驗證之前,內(nèi)核首先要載入檢測值列表文件checkfile,,若實際的啟動或者運(yùn)行過程與預(yù)期的不同,,則checkfile的驗證將會失敗。不允許對checkfile文件進(jìn)行修改,,否則攻擊者將會隱蔽完整性相關(guān)的行為,。checkfile文件使用可信硬件保護(hù)。?

??? (3) 在內(nèi)核代碼中實現(xiàn)訪問控制的關(guān)鍵點上插入監(jiān)控函數(shù)monitor,。monitor函數(shù)用于監(jiān)控某些關(guān)鍵的訪問控制實施,,對于在訪問控制中出現(xiàn)的某些意外攻擊,monitor函數(shù)返回一個錯誤信息,,并通知相應(yīng)主體訪問被篡改,,需要撤銷此次訪問操作。?

3.2框架實施?

??? 框架的實施過程包括框架的初始化和內(nèi)核實施兩個階段,。前一過程是策略實施的基礎(chǔ),包括用戶身份認(rèn)證以及可信環(huán)境的建立,。用戶身份認(rèn)證通過TCG規(guī)范中的雙向認(rèn)證來實施,,克服了傳統(tǒng)認(rèn)證方式的缺陷,使得操作系統(tǒng)與用戶可以相互認(rèn)證,,從而確保用戶身份信息正確映射到安全策略中,;建立可信環(huán)境的目的在于將可信鏈傳遞到應(yīng)用層以確保系統(tǒng)加電直至可信增強(qiáng)內(nèi)核裝載完畢各個環(huán)節(jié)的可信。內(nèi)核實施包括策略初始化,、主客體的完整性度量及驗證以及安全策略的驗證實施,。策略初始化是將安全策略配置文件解密并導(dǎo)入內(nèi)核空間;主客體的完整性度量及驗證是對實施訪問控制操作的主客體進(jìn)行雜湊運(yùn)算,,與主客體的度量基準(zhǔn)值進(jìn)行比較,,以確保主體行為的可信性和客體數(shù)據(jù)的完整性和真實性。其具體過程將在下面具體描述,;策略實施是對通過了完整性驗證的訪問控制依據(jù)安全策略庫實施安全策略裁決的過程,。整個實施過程中前一環(huán)節(jié)為下一環(huán)節(jié)服務(wù),,逐層建立了系統(tǒng)的可信計算基(TCB),從而保證了框架實施的可信性,。主客體的完整性度量是最為關(guān)鍵的步驟,,下面將重點介紹。?

??? 為了實現(xiàn)對訪問操作涉及的主客體的完整性度量及驗證,,本文在Linux內(nèi)核中加入了一個checkfile文件專門存放度量基準(zhǔn)值,,其格式如下:?

??? ……?

??? fedb1cff009e115f7f5f7b4533667a787798832d(hd0,1)/xen3.0.2.gz?

??? 0b397acac72a31aedc5f63c5f597c462e0815ed5? ftp?

??? 59e6215c821e78ef20d75bd6b63dd5a8b2af00ee/bin/hostname?

??? ……?

??? 當(dāng)主體發(fā)起對客體的訪問請求時,對象管理器將訪問請求提交給安全服務(wù)器,。安全服務(wù)器首先調(diào)用measure對相應(yīng)的主客體進(jìn)行可信檢測與驗證,,也即啟動框架中的可信驗證機(jī)制checkfile_func()函數(shù)來調(diào)用calculate_sha1()函數(shù),以對相應(yīng)的主客體進(jìn)行完整性度量,,并且檢查相應(yīng)的主客體是否存在于checkfile中,。如果不存在,則將已計算出的雜湊值擴(kuò)展到checkfile中,,以作為下次判斷的依據(jù),;如果存在,則調(diào)用strcmp()函數(shù)將所得的雜湊值與基準(zhǔn)值進(jìn)行比較,。若不匹配就顯示警告信息,,告訴用戶此次訪問操作的主體或客體的完整性已經(jīng)被破壞,訪問被拒絕,;若匹配,,則調(diào)用update_checkfile()函數(shù)將所計算出的度量值擴(kuò)展到checkfile文件中,并且在measure系統(tǒng)調(diào)用返回前,,擴(kuò)展相應(yīng)的PCR寄存器,,同時將訪問請求移交給安全策略服務(wù)器,由策略服務(wù)器檢查是否滿足安全策略,。若不滿足,,則拒絕本次訪問;若滿足則由對象管理器實施訪問決策,。在實施訪問控制的過程中調(diào)用monitor監(jiān)控函數(shù)對訪問操作進(jìn)行監(jiān)控,。圖4是上述實施過程的流程圖。

?

?

??? 本文借鑒可信計算思想,,從可信增強(qiáng)的角度出發(fā),,提出了一個可信增強(qiáng)的訪問控制框架,并給出了該框架的具體實施流程,。文章重點闡述了框架的總體設(shè)計和實施,,旨在體現(xiàn)框架的可信增強(qiáng)思想。相比普通的訪問控制,它可以確保主體行為的可信性,、客體內(nèi)容的完整性和真實性,,以及訪問控制行為的正確性。本文提出的這個可信增強(qiáng)的框架是對可信計算在訪問控制中應(yīng)用的一個嘗試,,在下一步工作中,,將主要針對框架中存在的一些安全隱患和具體實施細(xì)節(jié)加以改進(jìn)。?

參考文獻(xiàn)?

[1] 卿斯?jié)h,劉文清,溫紅子.操作系統(tǒng)安全[M].北京:清華大學(xué)出版社,, 2004.?

[2] Trusted Computing Group. TPM main specification: design principles v1.2. https://www.trustedcomputinggroup.org,2003.?

[3] SPENCER R. SMALLEY S, LOSCOCCO P. The flask?security architectrue: system support for diverse security?policies. https://www.cs.utah.edu/flux/flask.?

[4] Design and implementation of a TCG-based integrity?measurement architecture. 13th Usenix Security Symposium, San Diego, California, 2004.?

[5] SMITH S W. Trusted computing platforms: design and?applications(book). Springer, USA, 2005.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:aet@chinaaet.com。