馬丁義,郭銀章
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024)
云計(jì)算[1]是一種可以對共享可配置計(jì)算資源進(jìn)行方便、按需網(wǎng)絡(luò)訪問的模式,其本質(zhì)是將云資源提供者所提供的軟硬件資源虛擬化為資源池,然后由云基礎(chǔ)服務(wù)提供者布置在云端,以服務(wù)的形式提供給云資源請求者,是一種彈性可伸縮、按需付費(fèi)使用的新型服務(wù)模態(tài)。云計(jì)算的數(shù)據(jù)資源和計(jì)算資源可被迅速的調(diào)配、部署和回收,彈性的進(jìn)行擴(kuò)展和縮減,以提供按需分配和有償使用。云計(jì)算具有按需計(jì)算、多平臺(tái)訪問、資源聚集、彈性擴(kuò)張以及服務(wù)可度量五個(gè)特點(diǎn)。其服務(wù)模式包括基于按需計(jì)算的軟件既服務(wù)(SaaS,Software as a Service)、基于彈性計(jì)算的平臺(tái)既服務(wù)(PaaS,Platform as a Service)以及基于效用計(jì)算的基礎(chǔ)設(shè)施既服務(wù)(IaaS,Infrastructure as a Service)三種模式。
在云計(jì)算環(huán)境中,用戶對放置在云端的數(shù)據(jù)和計(jì)算失去控制,用戶數(shù)據(jù)的機(jī)密性、完整性和可用性無法保證,其計(jì)算任務(wù)是否能夠正確執(zhí)行無法確定,出現(xiàn)了用戶和云平臺(tái)之間缺乏信任的問題。因此,云計(jì)算環(huán)境中的對計(jì)算資源與數(shù)據(jù)資源的訪問控制的重要性凸顯了出來。
訪問控制通過將適當(dāng)?shù)臋?quán)限授予適當(dāng)?shù)闹黧w,使主體對資源進(jìn)行合法的訪問。其中一個(gè)關(guān)鍵點(diǎn)要求權(quán)限授予的剛剛好,即主體通過授予的權(quán)限剛好可以合法的完成任務(wù),不多也不少。目前大部分云平臺(tái)服務(wù)提供商都以基于角色的訪問控制[2](RBAC,Role Based Access Control)方法對云中資源進(jìn)行訪問控制。雖然能夠?qū)崿F(xiàn)對數(shù)據(jù)的基本訪問控制,但角色是靜態(tài)的,用戶一旦獲取角色便擁有了對資源的操作權(quán)限,當(dāng)用戶進(jìn)行惡意操作時(shí),并不能及時(shí)對用戶的權(quán)限進(jìn)行回收以阻止惡意訪問,難以適應(yīng)云計(jì)算環(huán)境的動(dòng)態(tài)性;此外,并不能對用戶的行為進(jìn)行記錄。即使用戶進(jìn)行了惡意操作,也不會(huì)對用戶以后的訪問產(chǎn)生任何影響,缺乏相應(yīng)的懲戒措施,使非法訪問的成本過低,導(dǎo)致用戶可以隨意進(jìn)行非法訪問而不用承擔(dān)任何責(zé)任。
當(dāng)前階段,云計(jì)算環(huán)境中的訪問控制都是以傳統(tǒng)的訪問控制模型為基礎(chǔ),對其進(jìn)行改進(jìn),使之盡可能的適應(yīng)云計(jì)算所帶來的改變。例如,文獻(xiàn)[3]中提出的基于行為的訪問控制模型,其考慮到在RBAC模型中,同一個(gè)角色在不同環(huán)境和時(shí)態(tài)下所獲取的權(quán)限應(yīng)該是不同的,因此將環(huán)境狀態(tài)和時(shí)間狀態(tài)兩個(gè)因素與角色相結(jié)合,提出了行為(Action)的概念,將RBAC中權(quán)限到角色的映射轉(zhuǎn)化為權(quán)限到行為的映射,對訪問控制的粒度進(jìn)行了細(xì)化。文獻(xiàn)[4]針對云計(jì)算環(huán)境提出一種動(dòng)態(tài)自適應(yīng)訪問控制模型,對文獻(xiàn)[3]中基于行為的訪問控制進(jìn)行了擴(kuò)展,引入了“資源生命周期管理器”和“訪問行為歷史管理器”兩個(gè)概念,以資源生命周期為節(jié)點(diǎn)進(jìn)行訪問控制。文獻(xiàn)[5]提出一種基于用戶行為信任的云安全訪問控制模型,引入“用戶行為檢測中心”“用戶行為信任管理中心”“認(rèn)證和授權(quán)中心”三大工作中心,通過實(shí)施檢測云中海量用戶的訪問行為,獲取用戶行為證據(jù),綜合評(píng)估用戶行為信任度,通過用戶的信任度實(shí)施訪問控制。
以上研究多數(shù)是對RBAC模型的擴(kuò)展,但RBAC中角色的靜態(tài)特性已經(jīng)難以滿足云計(jì)算環(huán)境動(dòng)態(tài)復(fù)雜性的要求。因此,本文基于當(dāng)前研究現(xiàn)狀,結(jié)合云計(jì)算環(huán)境的特點(diǎn),對基于屬性的訪問控制模型在云計(jì)算環(huán)境中的應(yīng)用進(jìn)行研究和擴(kuò)展,引入服務(wù)的概念,將訪問控制的客體服務(wù)化,同時(shí)加入訪問行為歷史管理功能,將用戶的訪問行為歷史進(jìn)行記錄,并以一種屬性的形式參與到訪問控制過程中。
傳統(tǒng)的訪問控制技術(shù)大致可分為三類:自主訪問控制(DAC,Discretionary Access Control)、強(qiáng)制訪問控制(MAC,Mandatory Access Control)、基于角色的訪問控制(RBAC,Role-based access control).這三類訪問控制技術(shù)在傳統(tǒng)的計(jì)算環(huán)境中基本能夠?qū)崿F(xiàn)對資源的有效保護(hù)。傳統(tǒng)的訪問控制模型對權(quán)限的分配是靜態(tài)的,并不會(huì)及時(shí)的對權(quán)限進(jìn)行回收。
針對當(dāng)前云計(jì)算環(huán)境動(dòng)態(tài)化的特性,將基于屬性的訪問控制模型進(jìn)行拓展,提出基于信任度量和屬性約束的云計(jì)算服務(wù)化訪問控制模型,如圖1.
定義1:面向云服務(wù)的動(dòng)態(tài)訪問控制模型DACC(Dynamic Access Control Model in Cloud Service)可以用一個(gè)七元組來表示:
DACC=(SAP,PEP,PIP,PDP,PAP,BAP,CAP)
圖1 基于信任度量和屬性約束的云計(jì)算服務(wù)化訪問控制模型
Fig.1 Model of access control based on trust and attribute
其中:SAP(service administration point)為服務(wù)管理點(diǎn),包含兩個(gè)職能:服務(wù)的創(chuàng)建與回收以及服務(wù)的狀態(tài)遷移;PEP(policy execution point)為策略執(zhí)行點(diǎn),用于接收SAP發(fā)來的基礎(chǔ)服務(wù)服務(wù)請求,并根據(jù)基礎(chǔ)服務(wù)請求從PIP中獲取所需的屬性信息建立基于屬性的基礎(chǔ)服務(wù)請求發(fā)送至PDP進(jìn)行判定;PIP(policy information point)為策略信息點(diǎn),用于存放和管理用戶和服務(wù)的屬性信息;PDP(policy decision point)為策略決策點(diǎn),負(fù)責(zé)接收由PEP發(fā)來的請求,根據(jù)從PAP中獲取策略對請求進(jìn)行判定;PAP(policy administration point)為策略管理點(diǎn),用于存放和管理訪問控制策略信息;BAP(behavior administration point)為行為管理點(diǎn),通過管理用戶的行為信息實(shí)現(xiàn)服務(wù)狀態(tài)的動(dòng)態(tài)調(diào)整;CAP(cloud resources administration point)為云資源狀態(tài)管理點(diǎn),通過監(jiān)控系統(tǒng)資源屬性的變化實(shí)現(xiàn)服務(wù)狀態(tài)的動(dòng)態(tài)調(diào)整。
定義2:原子操作(Atomic Operation)是訪問控制中不能再被分解的基本操作,包含三個(gè)要素:客體資源、操作以及約束集,可形式化的表示為一個(gè)三元組< Resource,Operation,Constraints>.其中客體資源既云計(jì)算環(huán)境中的資源,包括基礎(chǔ)設(shè)施、平臺(tái)、軟件等;操作指對云計(jì)算環(huán)境中資源的訪問方式,例如,對存儲(chǔ)設(shè)備的讀、寫操作,對網(wǎng)絡(luò)資源的占用等;約束集則是指對資源訪問的限制,例如存儲(chǔ)設(shè)備的容量,網(wǎng)絡(luò)資源的帶寬,軟件的使用等級(jí)以及對資源的使用時(shí)間等約束的集合。例如一項(xiàng)基礎(chǔ)服務(wù)“對10 GB的存儲(chǔ)空間進(jìn)行2 h的讀寫操作”可表示為M=< storage,R/W,{capacity=10GB,time=2hours}>.
定義3:一項(xiàng)服務(wù)(S, Service)是由多個(gè)子服務(wù)(SS, Sub-Service)組成的集合,即S={SS1,SS2,SS3,…,SSn};而一個(gè)子服務(wù)可表示為多個(gè)原子操作的集合,即SS={AO1,AO2,AO3,…,AOn}.在一項(xiàng)服務(wù)中,多項(xiàng)基礎(chǔ)服務(wù)之間是存在依賴約束關(guān)系的,依賴關(guān)系的種類包括如下:結(jié)束-開始(FS)、開始-開始(BS)和無依賴(NO).其中,F(xiàn)S為當(dāng)BS1結(jié)束之后,SS2才能開始(圖2);BS為當(dāng)SS1開始之后,SS2才能開始(圖3);NO為SS1、SS2兩項(xiàng)基礎(chǔ)服務(wù)之間無依賴約束關(guān)系,即基礎(chǔ)服務(wù)之間是相互獨(dú)立的。
圖2FS依賴
Fig.2FSdependency
圖3BS依賴
Fig.3BSdependency
定義4:服務(wù)的創(chuàng)建與回收。當(dāng)用戶向SAP發(fā)送服務(wù)請求之后,SAP會(huì)將一個(gè)完整的服務(wù)請求拆分成多個(gè)基礎(chǔ)服務(wù)請求,逐一提交PEP,由PEP收集相關(guān)屬性信息提交PDP進(jìn)行判定之后,判定結(jié)果經(jīng)PEP返回至SAP,當(dāng)SAP接收到所有子模塊判定通過的結(jié)果后,從環(huán)境中收集各種所需資源(基礎(chǔ)服務(wù))創(chuàng)建服務(wù)提供給用戶。當(dāng)提供給用戶的服務(wù)結(jié)束(包括正常結(jié)束和異常結(jié)束)之后,SAP將服務(wù)回收并釋放系統(tǒng)資源。
定義5:基于用戶訪問行為的動(dòng)態(tài)調(diào)整請求。服務(wù)過程中,行為管理點(diǎn)(BAP, behavior administration point)對用戶的訪問行為進(jìn)行記錄,并根據(jù)歷史訪問行為實(shí)時(shí)調(diào)整用戶的信任度值,當(dāng)用戶的信任度值超過某個(gè)既定的閥值或當(dāng)信任度值的變化幅度超過某個(gè)閥值時(shí)觸發(fā)服務(wù)調(diào)整功能,由BAP向SAP發(fā)送服務(wù)狀態(tài)調(diào)整請求,請求可表示為一個(gè)三元組(U, S, T),其中U表示需要調(diào)整的服務(wù)所對應(yīng)的用戶,S即為所要調(diào)整的服務(wù),T是用戶當(dāng)前的信任值。
定義6:基于資源屬性變化的動(dòng)態(tài)調(diào)整請求。服務(wù)過程中,上下文環(huán)境管理點(diǎn)(CAP, context administration point)對系統(tǒng)資源狀態(tài)進(jìn)行監(jiān)控,當(dāng)系統(tǒng)資源的某項(xiàng)屬性值超過預(yù)設(shè)閥值或?qū)傩灾档米兓瘸^某個(gè)閥值時(shí)觸發(fā)服務(wù)調(diào)整功能,由CAP向SAP發(fā)送服務(wù)狀態(tài)調(diào)整請求,請求可表示為一個(gè)三元組(U, S, A),其中U表示需要調(diào)整的服務(wù)所對應(yīng)的用戶,S即為所要調(diào)整的服務(wù),A為觸發(fā)調(diào)整的屬性的當(dāng)前值。
定義7:服務(wù)的狀態(tài)遷移。當(dāng)SAP接收到來自AAP和CAP發(fā)送來的服務(wù)狀態(tài)調(diào)整請求,根據(jù)服務(wù)調(diào)整請求要求,生成新的基礎(chǔ)服務(wù)請求,經(jīng)常規(guī)判定流程(SAP→PEP→PDP→PEP→SAP)對某一個(gè)或幾個(gè)基礎(chǔ)服務(wù)進(jìn)行重判定。若每個(gè)基礎(chǔ)服務(wù)判定結(jié)果都與前一次判定結(jié)果相同,則不做出任何操作;否則,根據(jù)判定的結(jié)果對服務(wù)進(jìn)行掛起、恢復(fù)或終止等操作。
初始服務(wù)請求:用戶提交原始服務(wù)請求(SR,service request)到服務(wù)管理點(diǎn)(SAP,service administration point),SAP首先將服務(wù)請求轉(zhuǎn)化為一組基礎(chǔ)服務(wù)請求(BSR, base service requests),然后將這組基礎(chǔ)服務(wù)請求逐一發(fā)送至策略執(zhí)行點(diǎn)(PEP,policy enforcement point),PEP根據(jù)BSR,利用策略信息點(diǎn)(PIP,policy information point)中存儲(chǔ)的屬性信息構(gòu)建基于屬性的基礎(chǔ)服務(wù)請求(ABR,attribute-based base service requests),PEP將ABR發(fā)送給策略決策點(diǎn)(PDP,policy decision point),PDP從策略管理點(diǎn)(PAP,policy administration point)獲取策略對ABR進(jìn)行判定,并將判定結(jié)果返回給PEP,PEP將判定結(jié)果傳給SAP,若說有基礎(chǔ)服務(wù)的判定結(jié)果都通過,則SAP從系統(tǒng)中收集基礎(chǔ)服務(wù),創(chuàng)建服務(wù)提供給用戶。
租戶的在不同時(shí)間的歷史訪問行為對租戶當(dāng)前信任度值的影響是不同的,通常情況下,據(jù)當(dāng)前越近的訪問行為對租戶信任度值的影響越大,而越早發(fā)生的訪問行為對租戶信任度值的影響越小。因此,引入頻次衰減函數(shù)H(k),調(diào)整不同時(shí)間歷史訪問行為對租戶信任值的影響,其中L是租戶訪問評(píng)估的總次數(shù)。
租戶加權(quán)訪問成功系數(shù):
其中:n為租戶歷史訪問行為評(píng)估通過的次數(shù),ak為訪問評(píng)估通過的獎(jiǎng)勵(lì)系數(shù),ak>0.
租戶域內(nèi)訪問失敗系數(shù):
租戶跨域訪問失敗系數(shù)
其中:m1和m2分別代表租戶域內(nèi)歷史訪問行為評(píng)估失敗的次數(shù)和跨域歷史訪問行為評(píng)估失敗的次數(shù);bk和ck分別表示域內(nèi)訪問失敗和跨域訪問失敗行為的懲罰系數(shù),bk>0,ck>0,懲罰系數(shù)越大表明懲罰力度越大;通常情況下,跨域訪問的結(jié)果還會(huì)影響到域與域之間的信任度,因此要加重跨域訪問失敗的懲罰,所以ck的取值一般要大于bk.
租戶歷史行為信任度:
租戶初始信任度:
其中:ek代表對租戶的各種安全要求所對應(yīng)的權(quán)值,如果該項(xiàng)要求不滿足,則權(quán)值為0,tk是各安全要求對應(yīng)的信任值,安全要求及權(quán)值如表所示。
表1 租戶安全要求
Tab.1 Requirement of security in tenant
安全要求權(quán)值ek信任值tk租戶信息完整性0.4完整為1,不完整為0租戶身份級(jí)別0.3分五級(jí){0.2,0.4,0.6,0.8,1.0}租戶接入地0.3分兩級(jí),國內(nèi)為1,國外為0.5
租戶域內(nèi)信任度:
其中:L為租戶總的訪問評(píng)估次數(shù),m是一個(gè)常數(shù),通過引入m來調(diào)整租戶初始信任度與歷史信任度在不同階段的權(quán)重。當(dāng)租戶初次進(jìn)入系統(tǒng)中時(shí),訪問評(píng)估次數(shù)L為0,Tu主要由Tini決定;隨著租戶訪問記錄的增加,L逐漸增大,Tini的權(quán)重逐漸減小,This的權(quán)重逐漸增大,Tu主要由This決定。
請求域Di在服務(wù)域Dj中的歷史信任度:
其中,N為請求域中所有租戶在服務(wù)域中的訪問評(píng)估通過總次數(shù),M為請求域中所有租戶在服務(wù)域中訪問評(píng)估失敗總次數(shù),ak為訪問評(píng)估通過行為的獎(jiǎng)勵(lì)系數(shù),H(k)是頻次衰減函數(shù),ck是訪問評(píng)估失敗行為的懲罰系數(shù)。
請求域Di在服務(wù)域Dj中的初始信任度:
其中ek代表服務(wù)域?qū)φ埱笥虬踩鬂M足后賦予的權(quán)值,如果該項(xiàng)要求不滿足,則權(quán)值為0,服務(wù)域?qū)φ埱笥蚱脚_(tái)的安全要求及權(quán)值如表所示。
表2 環(huán)境安全要求
Tab.2 Requirement of security in environment
要求權(quán)值ek信任值tk請求域?qū)ψ鈶羯矸蒡?yàn)證要求的完整性0.4完整為1,不完整為0請求域平臺(tái)自啟動(dòng)后的完整性0.3完整為1,不完整為0請求域歷史訪問行為日志模塊完整性0.1完整為1,不完整為0請求域域內(nèi)信任管理點(diǎn)的完整性0.1完整為1,不完整為0請求域策略信息點(diǎn)的完整性0.1完整為1,不完整為0
請求域Di在服務(wù)域Dj中的信任度:
其中,L為請求域中租戶在服務(wù)域中總的訪問評(píng)估次數(shù),n是一個(gè)常數(shù),通過引入m來調(diào)整域初始信任度與域歷史信任度在不同階段的權(quán)重。當(dāng)域初次交互時(shí),訪問評(píng)估次數(shù)L為0,Tij主要由域初始信任度Qij決定;隨著訪問記錄的增加,L逐漸增大,Qij的權(quán)重逐漸減小,Pij的權(quán)重逐漸增大,訪問歷史記錄對域間信任值的影響也逐漸增大。
請求域Di中的租戶u在服務(wù)域Dj中的信任度:
Tiju=Tij*Tu
本文使用SUN公司提供的XACML工具包實(shí)現(xiàn)了XACML模型架構(gòu)的搭建,并在此基礎(chǔ)上擴(kuò)展了信任管理點(diǎn)和云資源狀態(tài)管理點(diǎn)兩個(gè)功能模塊。模擬實(shí)驗(yàn)采用Java語言進(jìn)行了模擬實(shí)驗(yàn)。
實(shí)驗(yàn)環(huán)境:Windows10,Eclipse,Sunxacml-1.2.
實(shí)驗(yàn)平臺(tái):個(gè)人便攜式PC(i7-8550U,8G內(nèi)存,256GSSD硬盤)。
實(shí)驗(yàn)1:取租戶域內(nèi)初始信任度為1,跨域初始信任度為1,獎(jiǎng)勵(lì)系數(shù)ak=1,域內(nèi)懲罰系數(shù)bk=1.5,域間懲罰系數(shù)ck=2.user1發(fā)起服務(wù)訪問請求,其中訪問成功300次,訪問失敗200次,每次訪問之后租戶的域內(nèi)信任值如圖4、圖5所示。
圖4 信任度曲線
Fig.4 Curve of trust
圖4結(jié)果為user1訪問成功與失敗隨機(jī)產(chǎn)生情況下的信任值曲線,由實(shí)驗(yàn)結(jié)果顯示租戶的域內(nèi)信任值會(huì)隨著訪問次數(shù)的增加而升高,隨著訪問失敗次數(shù)的增加而降低。
實(shí)驗(yàn)2:取租戶域內(nèi)初始信任度為1,跨域初始信任度為1,獎(jiǎng)勵(lì)系數(shù)ak=1,域內(nèi)懲罰系數(shù)bk=1.5,域間懲罰系數(shù)ck=2.為了使效果便于觀察,人為控制訪問失敗與成功的歷史記錄排序。user1和user2發(fā)起服務(wù)訪問請求,總共500次,user1前100次訪問失敗,其他訪問成功;user2第101到200次訪問失敗,其他訪問成功,訪問后租戶域內(nèi)信任值如4所示;user1和user2對服務(wù)進(jìn)行訪問500次,租戶1前100次訪問成功,其他訪問失?。蛔鈶?第101到200次訪問成功,其他訪問失敗,訪問后租戶域內(nèi)信任值如圖5所示。
圖5 信任度曲線
Fig.5 Curve of trust
圖6 信任度曲線
Fig.6 Curve of trust
圖5中user1,user2在500次訪問中,總訪問失敗與成功記錄數(shù)是相同的,但由于user2訪問失敗的記錄相對user1距當(dāng)前時(shí)間較近,因此,其訪問失敗記錄對用戶當(dāng)前信任值的影響較大,故500次訪問結(jié)束后,user2的當(dāng)前信任值要低于user1;同理,圖6中user1和user2在總訪問失敗與成功記錄數(shù)都相同的情況下,user2訪問成功的記錄相對user1距當(dāng)前時(shí)間較近,因此,其訪問成功記錄對用戶當(dāng)前信任值的影響較大,故500次訪問結(jié)束后,user2的當(dāng)前信任值要高于user1.
故圖5圖6結(jié)果證明了頻次衰減系數(shù)的有效性,用戶訪問歷史記錄離當(dāng)前時(shí)間點(diǎn)越近,對租戶信任度的影響程度越大。
本文基于ABAC模型提出了一種面向云服務(wù)的基于屬性動(dòng)態(tài)訪問控制的模型,并將信任度量引入訪問控制中,旨在解決云計(jì)算訪問控制中資源服務(wù)化與實(shí)時(shí)動(dòng)態(tài)授權(quán)的問題。目前已經(jīng)給出訪問控制的整體模型,以及信任度量的計(jì)算模型,實(shí)現(xiàn)了基于主體屬性的動(dòng)態(tài)訪問控制。在接下來的工作中,會(huì)對云計(jì)算平臺(tái)資源屬性的動(dòng)態(tài)變化對訪問控制的影響進(jìn)行深入研究,以實(shí)現(xiàn)基于客體屬性的動(dòng)態(tài)訪問控制。