邊根慶,李 榮,邵必林
BIAN Genqing1,LI Rong1,SHAO Bilin2
1.西安建筑科技大學 信息與控制工程學院,西安710055
2.西安建筑科技大學 管理學院,西安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
云計算是指以互聯網為基礎將規模化資源池的處理、存儲、基礎設施和軟件服務提供給用戶,實現低成本、自動化、快速提供和靈活伸縮的IT 服務[1]。企業可以通過網絡租賃云計算提供的軟硬件服務,即云服務,從而減少運營成本。云服務提供商將同一個實例租賃給不同租戶,即多租戶應用,租戶通過非完全可信的云服務商存儲和處理數據[2-3]。為此,多租戶應用通過按需定制和共享存儲的交互方式獲得云服務的同時也面臨新的挑戰:(1)未授權租戶為了獲取商業秘密竊取信息;(2)具有部分權限的租戶越權訪問未授權資源;(3)云服務提供商可能對外泄露租戶業務信息。因此云服務中的租戶信息面臨的主要問題是訪問控制問題,需要通過有效控制租戶的訪問權限來保護其信息的安全。
云服務通過管理在線共享資源池的訪問權限,以按需分配方式分配系統資源給租戶[4-5]。為確保租戶信息的完整性和機密性,本文提出一種多租戶授權管理訪問控制模型(Multi-Tenant Access Control Model,MTACM),該模型根據任務聚類的思想分層授權管理角色屬性,綜合利用基于角色訪問控制(Role-Based Access Control,RBAC)[6]和密文的屬性加密策略(CP-ABE)[7]。首先將云服務授權給租戶,再結合任務聚類思想組成任務組,采用以CP-ABE 算法為基礎的訪問控制模型分組管理租戶角色屬性,將權限細粒度分配給租戶角色,從而統一管理租戶訪問請求,提高云服務的安全性和系統訪問的有效性。
基于角色訪問控制模型(RBAC)是指在實現訪問控制管理時,通過引入中間元素角色,根據不同租戶的任務授予租戶不同的資源操作權限。RBAC 的主要思想就是先由角色聚合權限,再把權限賦予租戶,將租戶、權限和角色通過映射關系聯系在一起,而租戶被分配到合適的角色,大大簡化了授權的管理。RBAC 的特點是將不同類別和級別的權限賦予不同的角色,即角色對應業務系統中的任務,然后再將角色分配到租戶,在租戶和權限訪問控制之間搭建一座橋梁[8]。
RBAC 支持3 個安全原則:最小特權、責任分開和數據抽象。最小特權原則要求不能賦予租戶多于他進行工作的特權;責任分開要求確保一項任務可以調用各個互斥的角色[9-10];數據抽象的支持指的是允許抽象的許可,例如一個目標賬號的貸款和借款,而不只是經典的讀、寫和執行許可。
RBAC 的關系模型如圖1 所示,RBAC0 置于最底層表明它是任何支持RBAC 系統的最小要求,RBAC1 和RBAC2 都包括了RBAC0,但是有其自身獨立的特性,這個相當于角色層次的概念。統一的模型RBAC3 包括RBAC1和RBAC2,同時根據傳遞性擁有了RBAC0模型。

圖1 RBAC 模型關系圖
CP-ABE 是基于屬性加密的密文策略,密文隱藏在訪問控制樹中,密鑰與可描述的屬性相關[11],只有當訪問者的屬性符合密文訪問策略時,才能解密密文,獲取資源的訪問權限,即訪問結構區分密文,屬性相當于私鑰。訪問控制基于屬性而不是基于整個系統,則可以實現細粒度權限訪問控制管理[12-13]。
CP-ABE 算法的基本步驟如下。
(1)初始化:服務器端輸入參數λ,通過循環群G計算輸出公鑰PK和主密鑰MK。
(2)生成私鑰:根據主密鑰MK和訪問者屬性集A生成私鑰SK。
(3)加密:對服務資源M加密,生成密文CT和訪問控制樹T,訪問控制樹T由屬性集組成,CT中暗含T。
(4)解密:結合訪問者的私鑰SK,通過解密算法判斷是否授權給訪問者。
多租戶應用是云計算技術架構中面向服務的最為典型的應用模式,它要求服務器計算環境,存儲資源及其網絡資源的設計和部署必須滿足自動化、快速性、動態性以及移動性、安全性和面向商業服務等需求。云服務中服務器虛擬化將傳統的物理服務器虛擬化成若干個虛擬服務器,每個虛擬服務器運行獨立的操作系統。每個租戶擁有虛擬服務器資源池中的一臺虛擬服務器或一組虛擬服務器。不同租戶在共享數據中心基礎設施的同時,會按照各自的需求定義他們的虛擬化資源。而這些虛擬化資源,對于不同的租戶相互獨立和隔離。云服務提供商必須按照協定動態地進行部署,滿足租戶的需求。
為了滿足多組戶環境的安全性,降低系統復雜度,本文提出一種多租戶授權管理訪問控制模型(MTACM):租戶租賃到云服務,采用K-modes 算法[14]將各個租戶根據屬性特點聚類為任務組,即通過聚類實現租戶中角色的劃分,并將租戶中相同項目組的角色分配在同一任務組。任務組用來管理角色,是租戶和角色的橋梁,通過聚類后的任務組管理簡化訪問控制模型的管理策略;進而結合CP-ABE 算法,針對任務組設置解密密文需要的屬性,租戶中角色通過任務組解密密文,無需單獨完成解密密文的屬性匹配。與傳統訪問控制模型對比,針對多租戶應用,MTACM 采用聚類構建基于任務組管理的模型,在保證租戶安全的前提下,減少了屬性匹配次數,進一步降低了系統復雜度。具體框架如圖2 所示,通過任務聚類授權管理訪問控制,實現角色的細粒度管理。

圖2 MTACM 框架
租戶按需定制云服務,獲得云服務的使用權后,各個租戶根據任務和自身組織結構聚類,形成任務組,將不同資源訪問權分配到任務組,角色通過任務組獲得解密密文,即圖2 虛框所示,訪問控制流程見圖3。

圖3 多租戶訪問控制流程
合法租戶購買云服務后得到授權,此時租戶根據業務需求,可分配到某一任務組的角色,相同項目組的角色分配到同一任務組Ui∈U,Ui的角色e∈E具有相同屬性Ui(A),角色根據自己的屬性通過任務組獲取資源訪問權限。
多租戶授權管理訪問控制模型的構建算法如下所示。
(1)Setup(λ):云服務端輸入安全參數λ(λ決定循環群G的階數),由素數為p、生成元為g的循環群G隨機選擇兩個指數α,β∈Zp,輸出公鑰PK和主密鑰MK。
PK=G,g,ɡ1=gβ,ɡ2=e(g,g)α
MK={β,gα}
(2)KeyGen(MK,A,U):輸入主密鑰MK,角色屬性集A和任務組集合U,γ∈Zp,γi∈Zp,?ai∈A,輸出U中每個角色的私鑰SK。

其中,租戶根據任務給角色e增加任務組集合U的屬性列Ui(A),給相同任務組的角色屬性列Ui(A)賦予相同的屬性值。
(3)δKeyGen(U):輸入任務組集合U,輸出U中每個任務組中角色的匹配因子δ。
(4)Encrypt(PK,M,T):云服務端數據提供者對服務資源M加密生成密文CT和訪問控制樹T。
步驟1訪問樹T中每個節點Nj對應多項式fj,節點Nj的度為dj(dj=nj-1,nj為節點j的閾值)。
步驟2根節點N1選取隨機數s∈ZP,且多項式f1(0) =s。
步驟3使用加密公式CT加密:

其中,ai屬于所有角色屬性集,j是葉節點。
(5)Decrypt(CT,T,SK,A,δ) :私鑰為SK,屬性為A,匹配因子為δ的角色通過解密算法解密密文CT,當角色屬于某個任務組時,通過該任務組的匹配因子實現資源共享。
實驗環境:在操作系統為Windows Server 2003 的VMware Workstation 虛擬機上安裝Ubuntu 13.04,內存4 GB。具體實現過程如下所示。
(1)在Ubuntu 安裝需要的庫[15]:M4,gmp,pbc,glit,openssl,libbswabe,cpabe,它們的依賴關系如圖4 所示。

圖4 實現訪問控制需要安裝的庫
(2)運行初始化函數Setup(λ),生成租戶租賃云服務的公鑰pub_key 和主密鑰master_key,如圖5 所示。
(3)角色根據自己的屬性集和訪問策略運行KeyGen(MK,A,U)函數,將任務組中角色的屬性列賦值Ui(A),相同任務組的角色標記相同的匹配因子δ,生成角色ea 和eb 的私鑰ea_priv_key、eb_priv_key,如圖5所示。

圖5 初始化及生成私鑰
(4)運行Encrypt(PK,M,T)加密信息security_report.pdf,生成密文security_report.pdf.cpabe,如圖6 所示。
(5)角色利用解密算法Decrypt(CT,T,SK,A,δ)解密密文security_report.pdf.cpabe,角色屬性不符合訪問策略則提示無法成功解密密文,如圖6 所示。

圖6 加密、解密過程
MTACM 在CP-ABE 的基礎上引入聚類和任務組,聚類針對租戶劃分人員,并將相同任務的人員分配在同一任務組,用匹配因子δ標記,故要證明MTACM 的安全性,必須證明基于CP-ABE 通過聚類和任務組管理后構建的模型的安全性。
因為CP-ABE 的映射函數Hi(ai)將屬性ai映射為循環群G上的一個隨機元素,加密密文為:

由于聚類和任務組管理是對租戶中人員分任務組管理,即根據任務組實現CP-ABE中的屬性匹配,依然按照CP-ABE算法實現交互,故MTACM實質上只是減少了加密密文中屬性ai的個數,因此MTACM 模型與CP-ABE具有相同的安全性,文獻[7]已經證明了CP-ABE 算法的安全性,故本文提出的MTACM 模型也是安全的。此模型可以避免非授權租戶角色訪問云中存儲的數據和惡意訪問者的聯合攻擊,進而可以保證多租戶應用環境下的安全。

本文提出的模型中花費時間最長的是解密函數中用到的配對運算。假定Tp代表一次配對運算時間,Tm代表純量乘法時間。在Encrypt 算法中,每一位角色e計算e(g,g)只需要1Tp時間,但是對于每一個屬性相關的行x,角色總共需要4mTm時間,其中2Tm的時間計算C1,x,1Tm時間計算C2,x,1Tm時間計算C3,x。在Decrypt過程中,每個x都必須運行兩次配對算法,分別計算e(H(u),C3,x)和e(ski,u,C2,x),總共需要2mTp時間。角色還需要計算,最多需要mTm。因此,Encrypt 和Decrypt 總共需要(2m+1)Tp+5mTm時間。租戶以任務組的形式把任務分配給角色,假設某一任務組有n(n<m)個角色具有相同屬性,通過其中某一個角色屬性即可解密,則Encrypt 和Decrypt 總共需要的時間 為(2m-2n+1)Tp+5(m-n+1)Tm<(2m+1)Tp+5mTm,設n=5,為一個任務組,當m值變化時MTACM 和CP-ABE 解密時間如圖7 所示,隨著角色屬性不斷增加,MTACM 明顯比CP-ABE 花費的解密時間少,故本文提出的模型比CP-ABE 計算量開銷小。

圖7 解密算法所需時間
從圖7 分析:采用任務組授權管理訪問控制模型時,在任務組個數確定的情況下,隨著屬性數量增加,該模型解密所需時間比CP-ABE 算法少,因為兩種算法加密時間相同,故該模型比CP-ABE 算法復雜度小。
針對多租戶應用在云服務中存在訪問控制方面的安全隱患和匹配運算復雜度較高的問題,提出了多租戶授權管理訪問控制模型。本文模型利用聚類思想將任務分組,引入匹配因子標記同任務組的角色,實現角色的細粒度授權訪問控制管理,減少了屬性匹配運算次數,防止了越權管理,避免了非法訪問者聯合惡意攻擊問題。因此,通過訪問控制提高了云服務下多租戶的安全性,通過角色屬性的任務組管理減少了系統計算量開銷,降低了系統的復雜度。
[1] 馮登國,張敏,張妍,等.云計算安全研究[J].軟件學報,2011,22(l):71-83.
[2] 徐光俠,陳蜀宇.面向移動云計算彈性應用的安全模型[J].計算機應用,2011,31(4):952-955.
[3] 史玉良,欒帥,李慶忠,等.基于TLA 的SaaS 業務流程定制及驗證機制研究[J].計算機學報,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] 張逢結,陳進,陳海波,等.云計算中的數據隱私性保護與自我銷毀[J].計算機研宄與發展,2011,48(7):1155-1167.
[6] 劉偉,蔡嘉勇,賀也平.基于角色的管理模型隱式授權分析[J].軟件學報,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] 楊庚,沈劍剛.基于角色的訪問控制理論研究[J].南京郵電大學學報:自然科學版,2006,26(3):1-8.
[9] 王鳳英.訪問控制原理與實踐[M].北京:北京郵電大學出版社,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] 孫國梓,董宇,李云.基于CP-ABE 算法的云存儲數據訪問控制[J].通信學報,2011,32(7):146-152.
[12] 王小明,付紅,張立臣.基于屬性的訪問控制研究進展[J].電子學報,2010,38(7):1660-1667.
[13] 李曉峰,馮登國,陳朝武,等.基于屬性的訪問控制模型[J].通信學報,2008,29(4):90-98.
[14] 孫吉貴,劉杰,趙連宇,等.聚類算法研究[J].軟件學報,2008,19(l):48-61.
[15] The GNU multiple precision arithmetic library[EB/OL].[2013-05-20].http://gmplib.org/.