邊根慶,李 榮,邵必林
BIAN Genqing1,LI Rong1,SHAO Bilin2
1.西安建筑科技大學(xué) 信息與控制工程學(xué)院,西安710055
2.西安建筑科技大學(xué) 管理學(xué)院,西安710055
1.School of Information and Control Engineering,Xi’an University of Architecture and Technology,Xi’an 710055,China
2.School of Management,Xi’an University of Architecture and Technology,Xi’an 710055,China
云計(jì)算是指以互聯(lián)網(wǎng)為基礎(chǔ)將規(guī)?;Y源池的處理、存儲(chǔ)、基礎(chǔ)設(shè)施和軟件服務(wù)提供給用戶(hù),實(shí)現(xiàn)低成本、自動(dòng)化、快速提供和靈活伸縮的IT 服務(wù)[1]。企業(yè)可以通過(guò)網(wǎng)絡(luò)租賃云計(jì)算提供的軟硬件服務(wù),即云服務(wù),從而減少運(yùn)營(yíng)成本。云服務(wù)提供商將同一個(gè)實(shí)例租賃給不同租戶(hù),即多租戶(hù)應(yīng)用,租戶(hù)通過(guò)非完全可信的云服務(wù)商存儲(chǔ)和處理數(shù)據(jù)[2-3]。為此,多租戶(hù)應(yīng)用通過(guò)按需定制和共享存儲(chǔ)的交互方式獲得云服務(wù)的同時(shí)也面臨新的挑戰(zhàn):(1)未授權(quán)租戶(hù)為了獲取商業(yè)秘密竊取信息;(2)具有部分權(quán)限的租戶(hù)越權(quán)訪(fǎng)問(wèn)未授權(quán)資源;(3)云服務(wù)提供商可能對(duì)外泄露租戶(hù)業(yè)務(wù)信息。因此云服務(wù)中的租戶(hù)信息面臨的主要問(wèn)題是訪(fǎng)問(wèn)控制問(wèn)題,需要通過(guò)有效控制租戶(hù)的訪(fǎng)問(wèn)權(quán)限來(lái)保護(hù)其信息的安全。
云服務(wù)通過(guò)管理在線(xiàn)共享資源池的訪(fǎng)問(wèn)權(quán)限,以按需分配方式分配系統(tǒng)資源給租戶(hù)[4-5]。為確保租戶(hù)信息的完整性和機(jī)密性,本文提出一種多租戶(hù)授權(quán)管理訪(fǎng)問(wèn)控制模型(Multi-Tenant Access Control Model,MTACM),該模型根據(jù)任務(wù)聚類(lèi)的思想分層授權(quán)管理角色屬性,綜合利用基于角色訪(fǎng)問(wèn)控制(Role-Based Access Control,RBAC)[6]和密文的屬性加密策略(CP-ABE)[7]。首先將云服務(wù)授權(quán)給租戶(hù),再結(jié)合任務(wù)聚類(lèi)思想組成任務(wù)組,采用以CP-ABE 算法為基礎(chǔ)的訪(fǎng)問(wèn)控制模型分組管理租戶(hù)角色屬性,將權(quán)限細(xì)粒度分配給租戶(hù)角色,從而統(tǒng)一管理租戶(hù)訪(fǎng)問(wèn)請(qǐng)求,提高云服務(wù)的安全性和系統(tǒng)訪(fǎng)問(wèn)的有效性。
基于角色訪(fǎng)問(wèn)控制模型(RBAC)是指在實(shí)現(xiàn)訪(fǎng)問(wèn)控制管理時(shí),通過(guò)引入中間元素角色,根據(jù)不同租戶(hù)的任務(wù)授予租戶(hù)不同的資源操作權(quán)限。RBAC 的主要思想就是先由角色聚合權(quán)限,再把權(quán)限賦予租戶(hù),將租戶(hù)、權(quán)限和角色通過(guò)映射關(guān)系聯(lián)系在一起,而租戶(hù)被分配到合適的角色,大大簡(jiǎn)化了授權(quán)的管理。RBAC 的特點(diǎn)是將不同類(lèi)別和級(jí)別的權(quán)限賦予不同的角色,即角色對(duì)應(yīng)業(yè)務(wù)系統(tǒng)中的任務(wù),然后再將角色分配到租戶(hù),在租戶(hù)和權(quán)限訪(fǎng)問(wèn)控制之間搭建一座橋梁[8]。
RBAC 支持3 個(gè)安全原則:最小特權(quán)、責(zé)任分開(kāi)和數(shù)據(jù)抽象。最小特權(quán)原則要求不能賦予租戶(hù)多于他進(jìn)行工作的特權(quán);責(zé)任分開(kāi)要求確保一項(xiàng)任務(wù)可以調(diào)用各個(gè)互斥的角色[9-10];數(shù)據(jù)抽象的支持指的是允許抽象的許可,例如一個(gè)目標(biāo)賬號(hào)的貸款和借款,而不只是經(jīng)典的讀、寫(xiě)和執(zhí)行許可。
RBAC 的關(guān)系模型如圖1 所示,RBAC0 置于最底層表明它是任何支持RBAC 系統(tǒng)的最小要求,RBAC1 和RBAC2 都包括了RBAC0,但是有其自身獨(dú)立的特性,這個(gè)相當(dāng)于角色層次的概念。統(tǒng)一的模型RBAC3 包括RBAC1和RBAC2,同時(shí)根據(jù)傳遞性擁有了RBAC0模型。
圖1 RBAC 模型關(guān)系圖
CP-ABE 是基于屬性加密的密文策略,密文隱藏在訪(fǎng)問(wèn)控制樹(shù)中,密鑰與可描述的屬性相關(guān)[11],只有當(dāng)訪(fǎng)問(wèn)者的屬性符合密文訪(fǎng)問(wèn)策略時(shí),才能解密密文,獲取資源的訪(fǎng)問(wèn)權(quán)限,即訪(fǎng)問(wèn)結(jié)構(gòu)區(qū)分密文,屬性相當(dāng)于私鑰。訪(fǎng)問(wèn)控制基于屬性而不是基于整個(gè)系統(tǒng),則可以實(shí)現(xiàn)細(xì)粒度權(quán)限訪(fǎng)問(wèn)控制管理[12-13]。
CP-ABE 算法的基本步驟如下。
(1)初始化:服務(wù)器端輸入?yún)?shù)λ,通過(guò)循環(huán)群G計(jì)算輸出公鑰PK和主密鑰MK。
(2)生成私鑰:根據(jù)主密鑰MK和訪(fǎng)問(wèn)者屬性集A生成私鑰SK。
(3)加密:對(duì)服務(wù)資源M加密,生成密文CT和訪(fǎng)問(wèn)控制樹(shù)T,訪(fǎng)問(wèn)控制樹(shù)T由屬性集組成,CT中暗含T。
(4)解密:結(jié)合訪(fǎng)問(wèn)者的私鑰SK,通過(guò)解密算法判斷是否授權(quán)給訪(fǎng)問(wèn)者。
多租戶(hù)應(yīng)用是云計(jì)算技術(shù)架構(gòu)中面向服務(wù)的最為典型的應(yīng)用模式,它要求服務(wù)器計(jì)算環(huán)境,存儲(chǔ)資源及其網(wǎng)絡(luò)資源的設(shè)計(jì)和部署必須滿(mǎn)足自動(dòng)化、快速性、動(dòng)態(tài)性以及移動(dòng)性、安全性和面向商業(yè)服務(wù)等需求。云服務(wù)中服務(wù)器虛擬化將傳統(tǒng)的物理服務(wù)器虛擬化成若干個(gè)虛擬服務(wù)器,每個(gè)虛擬服務(wù)器運(yùn)行獨(dú)立的操作系統(tǒng)。每個(gè)租戶(hù)擁有虛擬服務(wù)器資源池中的一臺(tái)虛擬服務(wù)器或一組虛擬服務(wù)器。不同租戶(hù)在共享數(shù)據(jù)中心基礎(chǔ)設(shè)施的同時(shí),會(huì)按照各自的需求定義他們的虛擬化資源。而這些虛擬化資源,對(duì)于不同的租戶(hù)相互獨(dú)立和隔離。云服務(wù)提供商必須按照協(xié)定動(dòng)態(tài)地進(jìn)行部署,滿(mǎn)足租戶(hù)的需求。
為了滿(mǎn)足多組戶(hù)環(huán)境的安全性,降低系統(tǒng)復(fù)雜度,本文提出一種多租戶(hù)授權(quán)管理訪(fǎng)問(wèn)控制模型(MTACM):租戶(hù)租賃到云服務(wù),采用K-modes 算法[14]將各個(gè)租戶(hù)根據(jù)屬性特點(diǎn)聚類(lèi)為任務(wù)組,即通過(guò)聚類(lèi)實(shí)現(xiàn)租戶(hù)中角色的劃分,并將租戶(hù)中相同項(xiàng)目組的角色分配在同一任務(wù)組。任務(wù)組用來(lái)管理角色,是租戶(hù)和角色的橋梁,通過(guò)聚類(lèi)后的任務(wù)組管理簡(jiǎn)化訪(fǎng)問(wèn)控制模型的管理策略;進(jìn)而結(jié)合CP-ABE 算法,針對(duì)任務(wù)組設(shè)置解密密文需要的屬性,租戶(hù)中角色通過(guò)任務(wù)組解密密文,無(wú)需單獨(dú)完成解密密文的屬性匹配。與傳統(tǒng)訪(fǎng)問(wèn)控制模型對(duì)比,針對(duì)多租戶(hù)應(yīng)用,MTACM 采用聚類(lèi)構(gòu)建基于任務(wù)組管理的模型,在保證租戶(hù)安全的前提下,減少了屬性匹配次數(shù),進(jìn)一步降低了系統(tǒng)復(fù)雜度。具體框架如圖2 所示,通過(guò)任務(wù)聚類(lèi)授權(quán)管理訪(fǎng)問(wèn)控制,實(shí)現(xiàn)角色的細(xì)粒度管理。
圖2 MTACM 框架
租戶(hù)按需定制云服務(wù),獲得云服務(wù)的使用權(quán)后,各個(gè)租戶(hù)根據(jù)任務(wù)和自身組織結(jié)構(gòu)聚類(lèi),形成任務(wù)組,將不同資源訪(fǎng)問(wèn)權(quán)分配到任務(wù)組,角色通過(guò)任務(wù)組獲得解密密文,即圖2 虛框所示,訪(fǎng)問(wèn)控制流程見(jiàn)圖3。
圖3 多租戶(hù)訪(fǎng)問(wèn)控制流程
合法租戶(hù)購(gòu)買(mǎi)云服務(wù)后得到授權(quán),此時(shí)租戶(hù)根據(jù)業(yè)務(wù)需求,可分配到某一任務(wù)組的角色,相同項(xiàng)目組的角色分配到同一任務(wù)組Ui∈U,Ui的角色e∈E具有相同屬性Ui(A),角色根據(jù)自己的屬性通過(guò)任務(wù)組獲取資源訪(fǎng)問(wèn)權(quán)限。
多租戶(hù)授權(quán)管理訪(fǎng)問(wèn)控制模型的構(gòu)建算法如下所示。
(1)Setup(λ):云服務(wù)端輸入安全參數(shù)λ(λ決定循環(huán)群G的階數(shù)),由素?cái)?shù)為p、生成元為g的循環(huán)群G隨機(jī)選擇兩個(gè)指數(shù)α,β∈Zp,輸出公鑰PK和主密鑰MK。
PK=G,g,ɡ1=gβ,ɡ2=e(g,g)α
MK={β,gα}
(2)KeyGen(MK,A,U):輸入主密鑰MK,角色屬性集A和任務(wù)組集合U,γ∈Zp,γi∈Zp,?ai∈A,輸出U中每個(gè)角色的私鑰SK。
其中,租戶(hù)根據(jù)任務(wù)給角色e增加任務(wù)組集合U的屬性列Ui(A),給相同任務(wù)組的角色屬性列Ui(A)賦予相同的屬性值。
(3)δKeyGen(U):輸入任務(wù)組集合U,輸出U中每個(gè)任務(wù)組中角色的匹配因子δ。
(4)Encrypt(PK,M,T):云服務(wù)端數(shù)據(jù)提供者對(duì)服務(wù)資源M加密生成密文CT和訪(fǎng)問(wèn)控制樹(shù)T。
步驟1訪(fǎng)問(wèn)樹(shù)T中每個(gè)節(jié)點(diǎn)Nj對(duì)應(yīng)多項(xiàng)式fj,節(jié)點(diǎn)Nj的度為dj(dj=nj-1,nj為節(jié)點(diǎn)j的閾值)。
步驟2根節(jié)點(diǎn)N1選取隨機(jī)數(shù)s∈ZP,且多項(xiàng)式f1(0) =s。
步驟3使用加密公式CT加密:
其中,ai屬于所有角色屬性集,j是葉節(jié)點(diǎn)。
(5)Decrypt(CT,T,SK,A,δ) :私鑰為SK,屬性為A,匹配因子為δ的角色通過(guò)解密算法解密密文CT,當(dāng)角色屬于某個(gè)任務(wù)組時(shí),通過(guò)該任務(wù)組的匹配因子實(shí)現(xiàn)資源共享。
實(shí)驗(yàn)環(huán)境:在操作系統(tǒng)為Windows Server 2003 的VMware Workstation 虛擬機(jī)上安裝Ubuntu 13.04,內(nèi)存4 GB。具體實(shí)現(xiàn)過(guò)程如下所示。
(1)在Ubuntu 安裝需要的庫(kù)[15]:M4,gmp,pbc,glit,openssl,libbswabe,cpabe,它們的依賴(lài)關(guān)系如圖4 所示。
圖4 實(shí)現(xiàn)訪(fǎng)問(wèn)控制需要安裝的庫(kù)
(2)運(yùn)行初始化函數(shù)Setup(λ),生成租戶(hù)租賃云服務(wù)的公鑰pub_key 和主密鑰master_key,如圖5 所示。
(3)角色根據(jù)自己的屬性集和訪(fǎng)問(wèn)策略運(yùn)行KeyGen(MK,A,U)函數(shù),將任務(wù)組中角色的屬性列賦值Ui(A),相同任務(wù)組的角色標(biāo)記相同的匹配因子δ,生成角色ea 和eb 的私鑰ea_priv_key、eb_priv_key,如圖5所示。
圖5 初始化及生成私鑰
(4)運(yùn)行Encrypt(PK,M,T)加密信息security_report.pdf,生成密文security_report.pdf.cpabe,如圖6 所示。
(5)角色利用解密算法Decrypt(CT,T,SK,A,δ)解密密文security_report.pdf.cpabe,角色屬性不符合訪(fǎng)問(wèn)策略則提示無(wú)法成功解密密文,如圖6 所示。
圖6 加密、解密過(guò)程
MTACM 在CP-ABE 的基礎(chǔ)上引入聚類(lèi)和任務(wù)組,聚類(lèi)針對(duì)租戶(hù)劃分人員,并將相同任務(wù)的人員分配在同一任務(wù)組,用匹配因子δ標(biāo)記,故要證明MTACM 的安全性,必須證明基于CP-ABE 通過(guò)聚類(lèi)和任務(wù)組管理后構(gòu)建的模型的安全性。
因?yàn)镃P-ABE 的映射函數(shù)Hi(ai)將屬性ai映射為循環(huán)群G上的一個(gè)隨機(jī)元素,加密密文為:
由于聚類(lèi)和任務(wù)組管理是對(duì)租戶(hù)中人員分任務(wù)組管理,即根據(jù)任務(wù)組實(shí)現(xiàn)CP-ABE中的屬性匹配,依然按照CP-ABE算法實(shí)現(xiàn)交互,故MTACM實(shí)質(zhì)上只是減少了加密密文中屬性ai的個(gè)數(shù),因此MTACM 模型與CP-ABE具有相同的安全性,文獻(xiàn)[7]已經(jīng)證明了CP-ABE 算法的安全性,故本文提出的MTACM 模型也是安全的。此模型可以避免非授權(quán)租戶(hù)角色訪(fǎng)問(wèn)云中存儲(chǔ)的數(shù)據(jù)和惡意訪(fǎng)問(wèn)者的聯(lián)合攻擊,進(jìn)而可以保證多租戶(hù)應(yīng)用環(huán)境下的安全。
本文提出的模型中花費(fèi)時(shí)間最長(zhǎng)的是解密函數(shù)中用到的配對(duì)運(yùn)算。假定Tp代表一次配對(duì)運(yùn)算時(shí)間,Tm代表純量乘法時(shí)間。在Encrypt 算法中,每一位角色e計(jì)算e(g,g)只需要1Tp時(shí)間,但是對(duì)于每一個(gè)屬性相關(guān)的行x,角色總共需要4mTm時(shí)間,其中2Tm的時(shí)間計(jì)算C1,x,1Tm時(shí)間計(jì)算C2,x,1Tm時(shí)間計(jì)算C3,x。在Decrypt過(guò)程中,每個(gè)x都必須運(yùn)行兩次配對(duì)算法,分別計(jì)算e(H(u),C3,x)和e(ski,u,C2,x),總共需要2mTp時(shí)間。角色還需要計(jì)算,最多需要mTm。因此,Encrypt 和Decrypt 總共需要(2m+1)Tp+5mTm時(shí)間。租戶(hù)以任務(wù)組的形式把任務(wù)分配給角色,假設(shè)某一任務(wù)組有n(n<m)個(gè)角色具有相同屬性,通過(guò)其中某一個(gè)角色屬性即可解密,則Encrypt 和Decrypt 總共需要的時(shí)間 為(2m-2n+1)Tp+5(m-n+1)Tm<(2m+1)Tp+5mTm,設(shè)n=5,為一個(gè)任務(wù)組,當(dāng)m值變化時(shí)MTACM 和CP-ABE 解密時(shí)間如圖7 所示,隨著角色屬性不斷增加,MTACM 明顯比CP-ABE 花費(fèi)的解密時(shí)間少,故本文提出的模型比CP-ABE 計(jì)算量開(kāi)銷(xiāo)小。
圖7 解密算法所需時(shí)間
從圖7 分析:采用任務(wù)組授權(quán)管理訪(fǎng)問(wèn)控制模型時(shí),在任務(wù)組個(gè)數(shù)確定的情況下,隨著屬性數(shù)量增加,該模型解密所需時(shí)間比CP-ABE 算法少,因?yàn)閮煞N算法加密時(shí)間相同,故該模型比CP-ABE 算法復(fù)雜度小。
針對(duì)多租戶(hù)應(yīng)用在云服務(wù)中存在訪(fǎng)問(wèn)控制方面的安全隱患和匹配運(yùn)算復(fù)雜度較高的問(wèn)題,提出了多租戶(hù)授權(quán)管理訪(fǎng)問(wèn)控制模型。本文模型利用聚類(lèi)思想將任務(wù)分組,引入匹配因子標(biāo)記同任務(wù)組的角色,實(shí)現(xiàn)角色的細(xì)粒度授權(quán)訪(fǎng)問(wèn)控制管理,減少了屬性匹配運(yùn)算次數(shù),防止了越權(quán)管理,避免了非法訪(fǎng)問(wèn)者聯(lián)合惡意攻擊問(wèn)題。因此,通過(guò)訪(fǎng)問(wèn)控制提高了云服務(wù)下多租戶(hù)的安全性,通過(guò)角色屬性的任務(wù)組管理減少了系統(tǒng)計(jì)算量開(kāi)銷(xiāo),降低了系統(tǒng)的復(fù)雜度。
[1] 馮登國(guó),張敏,張妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(l):71-83.
[2] 徐光俠,陳蜀宇.面向移動(dòng)云計(jì)算彈性應(yīng)用的安全模型[J].計(jì)算機(jī)應(yīng)用,2011,31(4):952-955.
[3] 史玉良,欒帥,李慶忠,等.基于TLA 的SaaS 業(yè)務(wù)流程定制及驗(yàn)證機(jī)制研究[J].計(jì)算機(jī)學(xué)報(bào),2010,33(11):2055-2067.
[4] Itani W,Kayssi A,Chehab A.Privacy as a service:Privacy aware data storage and processingin cloud computing architectures[C]//Proceedings of the 8th IEEE International Conference on Dependable,Autonomic and Secure Computing,2009:711-716.
[5] 張逢結(jié),陳進(jìn),陳海波,等.云計(jì)算中的數(shù)據(jù)隱私性保護(hù)與自我銷(xiāo)毀[J].計(jì)算機(jī)研宄與發(fā)展,2011,48(7):1155-1167.
[6] 劉偉,蔡嘉勇,賀也平.基于角色的管理模型隱式授權(quán)分析[J].軟件學(xué)報(bào),2000,20(4):1048-1057.
[7] Bethencourt J,Sahai A,Waters B.Ciphertext-policy attribute based encryption[C]//Proc of IEEE Symp Security Privacy,2007:321-334.
[8] 楊庚,沈劍剛.基于角色的訪(fǎng)問(wèn)控制理論研究[J].南京郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2006,26(3):1-8.
[9] 王鳳英.訪(fǎng)問(wèn)控制原理與實(shí)踐[M].北京:北京郵電大學(xué)出版社,2010.
[10] Baden R,Bender A,Spring N,et al.Persona:An online social network with user defined privacy[C]//Proc of ACM SIGCOMM Conf Data Commun,2009:135-146.
[11] 孫國(guó)梓,董宇,李云.基于CP-ABE 算法的云存儲(chǔ)數(shù)據(jù)訪(fǎng)問(wèn)控制[J].通信學(xué)報(bào),2011,32(7):146-152.
[12] 王小明,付紅,張立臣.基于屬性的訪(fǎng)問(wèn)控制研究進(jìn)展[J].電子學(xué)報(bào),2010,38(7):1660-1667.
[13] 李曉峰,馮登國(guó),陳朝武,等.基于屬性的訪(fǎng)問(wèn)控制模型[J].通信學(xué)報(bào),2008,29(4):90-98.
[14] 孫吉貴,劉杰,趙連宇,等.聚類(lèi)算法研究[J].軟件學(xué)報(bào),2008,19(l):48-61.
[15] The GNU multiple precision arithmetic library[EB/OL].[2013-05-20].http://gmplib.org/.