林果園,賀珊,黃皓,吳吉義,陳偉
(1.中國礦業大學 計算機學院,江蘇 徐州 221116;2. 南京大學 計算機系,江蘇 南京 210093;3. 杭州師范大學 杭州市電子商務與信息安全重點實驗室,浙江 杭州 310036)
云計算是一種新興的計算模式,它是一種分布式計算,是在網格計算的基礎上發展而來的[1],它體現了“網絡就是計算機”的思想,將網絡大量計算資源、存儲資源與軟件資源鏈接在一起,形成巨大規模的共享虛擬資源池,為遠程計算機用戶提供服務。
云計算以動態的服務計算為主要技術特征,以靈活的“服務合約”為核心商業特征[2]。在云計算環境中,數據存儲方式打破傳統模式,所有數據以托管的方式存儲在云端服務器中,用戶只需利用云服務商提供的API(應用程序編程接口),通過瀏覽器就可以隨時隨地獲取所需要的數據和服務。服務模式的改變也帶來了諸多云計算信息系統的安全問題,例如開放的接口為非法訪問提供了可能,非法用戶會進入信息系統竊取企業和用戶機密數據,因此數據完整性和保密性受到巨大威脅。
目前,云計算安全所面臨的3大安全問題主要體現在身份與權限控制、Web安全防護和虛擬化安全方面等。在云計算時代,安全設備和安全措施的部署位置有所不同,安全責任的主體發生了變化。目前,常用的解決云計算安全問題的辦法主要有數據備份、建立企業私有云、數據加密后放到云端保存,但這并不能從根本上解決云計算所面臨的安全問題。云計算已成為一種嶄新的服務模式,針對云端服務器中數據完整性和保密性的問題,需要符合自身特點的安全模型。
圍繞遠端用戶對云資源進行訪問時,如何保證數據的完整性和保密性展開研究是目前云計算安全研究的一個重要方向[2]。
有些學者結合云計算的特點提出了相應的訪問控制方法,但是沒有綜合考慮數據的完整性和保密性。文獻[3]認為API是云服務提供者和使用者之間的橋梁,云計算的安全很大程度上依賴API的安全,提出了云計算環境下 API層面的一種基于RBAC的兩階段訪問控制機制。但是該訪問機制只允許白名單中的用戶進行訪問,與云計算的開放性不相符。Li等人[4]提出了適于SaaS系統的S-RBAC訪問控制模型,解決了 SaaS系統中的一些訪問控制問題,但是對于一些權限許可缺少時間約束。文獻[5]在分析云計算環境的特點和安全現狀的基礎上,介紹了一種安全訪問控制服務(SACS, security access control service)的概念,基于SACS提出了一種層次化的云安全模型,但是描述過于簡化,沒有指出如何保證完整性或者保密性。
20世紀70年代,保護數據完整性或保密性的安全模型被提出。BLP模型是由 El-liott Bell 和Leonard J La Padula 于1973 年創立的一種模擬符合軍事安全策略的計算機操作的模型[6,7]。在 BLP模型中允許下讀、上寫2個安全特性,這2個特性保證了信息的單向流動,即信息只能向高安全屬性的方向流動,BLP模型就是通過信息的單向流動來防止信息的擴散,抵御特洛伊木馬對系統機密信息的攻擊。BLP 模型的不足[8]之處在于對完整性控制不夠??赡艹霈F的情況是,已授權的用戶對數據進行非法的修改。BLP模型通過提供保證數據保密性的安全策略來保證系統的安全,但它不能有力地保證數據的完整性。因此,20世紀70年代,Ken Biba等人提出了Biba訪問控制模型[9],該模型對數據提供了分級別的完整性保證,類似于 BLP保密性模型,Biba模型也使用強制訪問控制系統。Biba模型是和 BLP模型相對立的模型,Biba模型改正了被BLP模型所忽略的信息完整性問題,但在一定程度上卻忽視了保密性。
針對傳統安全模型中完整性與保密性相沖突的問題,有些學者提出了相應的解決方案,但是沒有深入云計算環境的特點進行展開。李益發[10]提出將BLP模型和Biba模型結合建立操作系統安全模型。由于該模型基于一個特殊可信主體,使得其實用性受到限制。周正等人[11]提出了兼顧保密性與完整性的安全策略,并且為避免通過交互訪問操作以及多角色主客體存在造成的泄密與完整性破壞事件提供了理論基礎。但沒有解釋在具體信息系統環境中如何對主客體密級以及安全級進行合理確定。文獻[12]針對Sandhu 等人提出模型的基礎上,引入了輔助角色層次, 加強了角色間關系并提供了對可信主體概念的支持,在RBAC 中實施了經典的BLP模型及其變種模型。但該文獻僅停留在理論證明層面,如何在商業系統中以較小的代價引入強制訪問控制并沒有詳細論述。李鳳華等[13]結合角色、時態和環境的概念, 給出了行為的定義。然后介紹了行為、時態狀態和環境狀態的層次結構, 提出了基于行為的訪問控制(ABAC, action based access control)模型。與已有其他模型相比,ABAC模型更加適用于解決網絡環境下支持移動計算的信息系統中的訪問控制問題。
本文吸收這些文獻的技術成果,以BLP模型和Biba模型為基礎,借鑒有關行為定義的思想,結合云計算環境的特點,用行為綜合角色、時態和環境狀態的相關安全信息,通過基于行為的訪問控制技術將 BLP和 Biba模型相結合,并做了一定的取舍與擴充,提出了CCACSM。通過該模型,力求解決云計算環境下的完整性與保密性的問題。
將BLP模型與Biba模型通過訪問控制有機結合,各取其優點,提出了一種保護云端服務器中數據的保密性和完整性的云計算訪問控制安全模型(CCACSM, cloud computing access control security model)。該模型主要繼承了BLP模型的簡單安全屬性和*屬性公理,以此加強了數據的保密性,并且結合了Biba模型的嚴格完整性策略,以此保證了數據的完整性。
CCACSM需要刻畫用戶、服務器及其訪問權限和行為所處的時態和環境等,有多個元素、相應關系和規則構成。
1) 元素
為了方便模型的形式化描述,將模型中涉及到的元素進行了數學形式的定義,如表1所示。
模型中的環境即用戶訪問系統時的客觀因素,例如平臺(硬件平臺、軟件平臺等)、位置(場所物理位置、網絡位置等),還有其他與訪問控制相關的外部客觀信息等。云計算系統可以使用與安全相關的環境信息來限制對系統資源的訪問。環境狀態對云用戶在何種外部客觀因素下的權限進行約束,將環境狀態的集合通常記為E。
2) 時態、環境和行為的關系
定義 1 對于相同的環境狀態,若 Ti、Tj是 T中的元素,角色r在時態Ti中得到的權限為Di滿足Di∈Dj,則稱 Ti為 Tj的子時態狀態,記為 Ti≤Tj。
定義2 對于相同的時態狀態,若Ei、Ej是E中的元素,角色r在環境Ei中得到的權限為Di滿足Di∈Dj,則稱 Ei為 Ej的子環境狀態,記為 Ei≤Ej。
定義3 將行為集合記為A,行為層次結構AH∈A×A是行為集合 A上的偏序關系。當且僅當Ti≤Tj、Ei≤Ej、Di≤Dj同時成立,對于任意的Ai={ Di,Ti,Ei}, Aj={ Dj,Tj,Ej}∈A,(Ai,Aj) ∈AH。如果(Ai,Aj) ∈AH成立,則稱Ai是Aj的低級行為,Aj是Ai的高級行為。
3) 狀態轉換規則
狀態轉換規則主要是用來保證系統的每一個狀態都是安全狀態。除了保證初始狀態是安全的,還要保證系統的每一次轉換都從一個安全狀態轉移到另一個安全狀態。在CCACSM中的狀態轉換主要包括以下5個規則。
規則1 get-read規則,用于云用戶集合對云端服務器集合請求只讀訪問。
當云用戶 Si可以對云端服務器 Oj進行只讀訪問時,需滿足以下條件:
1) Si的行為集合中有對Oj的只讀權限;
2) Si的安全等級支配Oj的安全等級;
3) Si是可信云用戶或云用戶的當前安全等級與云端服務器Oj的安全等級相同。
規則 2 get-execute規則,用于云用戶對云端服務器請求執行訪問。
當云用戶 Si可以對云端服務器 Oj進行執行訪問時,需滿足:Si的行為集合中有對Oj的執行權限,要完成執行操作還必須有讀寫權限。
規則 3 get-append規則,用于云用戶對云端服務器請求讀寫訪問。
當云用戶 Si可以對云端服務器 Oj進行讀寫訪問時,需滿足以下條件:
1) Si的行為集合中有對Oj的讀寫權限;
2) Si的安全等級支配Oj的安全等級;
3) Si是可信云用戶或云用戶當前的安全等級支配Oj的安全等級。
規則4 change-subject-current-security-level規則,用于云用戶請求改變當前的安全等級。
當 Si可以改變其當前 Oj的安全等級至 fo時,需滿足以下條件。
1) Si是可信云用戶或它的安全等級被改變為fo并且導致的狀態滿足*屬性;

表1 CCACSM的組成元素
2) Si的安全等級支配fo。
規則5 resolve-conflict規則,用于云端數據的機密性與完整性產生沖突時的處理機制。
當云用戶Si可以對云端服務器Oj進行訪問,機密性與完整性發生沖突時,需滿足以下條件:
Si的行為集合中有對 Oj的 Ai權限,Oj的行為集合中包括Aj權限;
當且僅當(Ai,Aj) ∈AH時,即Aj是Ai的高級行為時,滿足簡單安全屬性和*屬性公理;
當且僅當(Aj,Ai) ∈AH時,即Ai是Aj的高級行為時,滿足嚴格完整性策略。
CCACSM 側重于更強的完整性和保密性同時滿足,如圖1所示,其訪問控制分為2個層次。
1) 權限層次:訪問規則——允許同級別的云用戶對云端服務器數據有只讀權限,高級別云用戶對低級別云端服務器數據有所有權限,低級別云用戶對高于自己級別的云端服務器數據只具有最小權限(即只可以讀取云端服務器中的部分共享的數據)。
2) 行為層次:行為層次包括時態層和環境層,行為的狀態隨著角色、時態和環境的不同而動態變化,其中,環境狀態和時態狀態對角色所能享有的權限具有直接影響,如不同的物理位置、網絡位置、軟件平臺等外部環境可以對角色產生影響,同時不同的時態狀態如事件發生的起始時間、終止時間、持續時間等也會對角色產生影響。
定理1 CCACSM滿足經典BLP模型的簡單安全屬性和*屬性公理。
證明 假設≤BLP和≥BLP都表示偏序關系,Lw為相應于≥BLP的最低安全等級的寫權限,fo對應o的當前安全等級,T對應云用戶S的時態,E對應S所處的環境。
1) 對于非可信云用戶S
? o∈O , x =F(o);
?s∈S, 令 s的讀權限集為 Drs,寫權限集為Dws,行為集為As;
設s具有的訪問權限為f’e、fr和fw,即D (s) ={f’e,fr, fw},As={D(s),T,E},那么有:
Ars= { (o, r) |?for≤fr [ (( o, r) , for )∈D]};
Aws= { (o, w) |?fow≤fw[ (( o, w) , fow)∈D]},
又因為每個云端服務器o的訪問權限被精確地分配給了角色F(x)r和F(x)w,即:
即 D={((o, r), f’(o)r),((o, w), f’(o)w)}; A={D,T,E}。
推理得:Ars={ ( o, r) |?for≤fr[fo= f’(o) ]}
= { ( o, r) | f’(o)r≤fr}
= { ( o, r) | f’(o)≤BLP f};
Aws= { ( o, w) |?fow≤fw[fo=f’(o) ]}
= { ( o, w) | f(o)w≤fw}
= { ( o, w)| f’(o)≥BLP f}。
若 s 能讀訪問 o,即(o, r)∈Drs,必有 f’(o)≤BLP f= f(s),即滿足*屬性。

圖1 CCACSM的訪問控制規則
又因為 f≤BLP f’ =f’(s),所以 f’(o)≤BLP f’(s),即滿足簡單安全屬性。
若 s 能寫訪問 o,即(o , w)∈Aws,必有 f’(o)≥BLPf = f(s),即滿足*屬性。
又因為簡單安全屬性并不約束只寫操作, 所以也滿足簡單安全屬性。
2) 對于可信云用戶S’
?o∈O , x = F(o),? s∈S’,令 s的讀權限集為Drs,寫權限集為Dws,行為集為As。
設 s具有的權限為 f’e,fr和 Lw,即 F(s) ={ f’e,fr, Lw},與上同理,有 Ars = { (o, r) | f’(o)≤BLP f},Aws = { ( o, w) | f’(o)≥BLP f }。
若s 能讀訪問o,即(o,r) ∈Drs,必有f’(o)≤BLP f= f(s)。又因為 f≤BLP f’= f’(s),所以 f’(o)≤BLP f’(s),滿足簡單安全屬性。
對于可信云用戶,*屬性對其訪問無任何約束,自然被滿足。
綜上所述,CCACSM模型保證了系統的保密性。 證畢。
定理2 CCACSM滿足Biba模型的嚴格完整性策略。
嚴格完整性策略主要防止信息從低完整性級別客體向高完整性級別客體傳遞,即對于任意的云用戶 s,若(Drs,To1,E)∈A, (DWs,To2,E)∈A,則有fo1≤fo2。
證明 假設L為完整性標識,Lr為完整性標識范圍,Dxs={Dx1s, Dx2s,…,Dxns}為云用戶s對云端服務器o的訪問權限集合并且Dx1s﹤Dx2s…﹤Dxns(表示訪問權限依次增大)。
假設當前的 A集合存在訪問權限 Ar=(Drs,To1,E), Ax1s=(Dx1s,To2,E), Ax2s=(Dx2s,To3,E)…Axns= (Dxns,Ton,E)
經過Ar訪問后變為,經過Ax1s訪問后變為,經過 Ax2s訪問后變為…經過 Axns訪問后變為,又因為 Dx1s﹤Dx2s…﹤Dxns???? …。
綜上所述,CCACSM滿足Biba模型的嚴格完整性策略。 證畢。
CCACSM中,簡單安全屬性要求對模型的所有云用戶都成立,是為了防止云用戶寫入安全等級比其當前安全級別高的云端服務器中的信息,并且防止云用戶直接從不允許其存取的級別的云端服務器中存取信息。而*屬性公理僅要求對非可信云用戶成立,此屬性防止了云用戶有意或無意地把高密級信息寫入低密級云端服務器中,從而造成秘密的泄露。定理2防止了信息從低級別向高級別云端服務器中傳遞,保證了信息的完整性。
假設在該模型中系統管理員為系統定義k個安全等級(1,2,3,…,k),安全等級由高向低排列,其中1代表最高安全等級,k代表最低安全等級。系統中云端服務器 o擁有其中某一個安全等級 f(o)(1≤f(o)≤k),把云用戶 s劃分為幾個類型 z,每個云用戶屬于一種類型,假設每個類型對應某個安全等級 f(z)(1≤f(z)≤k),則屬于該類型的某云用戶 s的安全等級f(s)=f(z)。任務T’與云用戶s之間形成一一對應關系。假設某任務T’對應某云用戶s,云用戶s的安全等級f(s)=n,1≤n≤k,把任務劃分為子任務 T’(i)以后,T’={T’(i),1≤i≤n 且 n≥1},完成該任務T’的云端服務器集合O={Oi,1≤i≤n且n≥1},某云端服務器的安全等級為 f(Oi),則可用如表2所示的M矩陣表示當o對s的行為是A時,f(s)和f(Oi)之間應有的關系。

表2 M矩陣
該模型的總體架構如圖2所示,其基本實現過程由以下幾個步驟組成。
1) 第一次訪問云端服務器的云用戶需進行以下幾個步驟。
Step1 每個申請訪問云端服務器的云用戶 Si都要進行用戶注冊。
Step2 用戶注冊完畢后要進行系統認證。
Step3 沒有通過認證的用戶被強制退出;通過認證的云用戶,系統要再次對其進行行為的判斷,判斷此云用戶的時態T以及所處環境E。環境可以分為內部網絡E1和外部網絡E2;時態T可以分為工作時間T1和休息時間T2。此時,系統根據E-T的不同對云用戶分配相應的權限行為A。

圖2 CCACSM完整性和保密性規則模型
Step4 判斷完云用戶的行為訪問規則后,要進行相應狀態轉換。
Step5 經過狀態轉換后的云用戶被授權,即被賦予相應的權限,即A= type(o, s)。例如,用戶1的行為狀態為E1-T2,那么它對云端服務器的數據集具有規則1的只讀權限A=get-read(o, s);用戶2的行為狀態為E2-T2,那么它對云端服務器的數據集具有規則2的執行權限A=get-execute(o,s);用戶3的行為狀態為E1-T1,那么它對云端服務器的數據集具有規則3的讀寫權限A=get-append(o,s);用戶4的行為狀態為E2-T1,那么它對云端服務器的數據集具有規則4的請求改變當前的安全等級的權限A=change-subject-current-security-level(o, s)。其中,所有的云用戶在進行云端服務器數據集訪問之前都要經過定理1簡單安全屬性與*屬性的驗證,這一步保證了數據的保密性;而被賦予規則2、規則3和規則4的云用戶在進行云端服務器數據集訪問之前都要經過定理2完整性驗證,這一步確保了數據的完整性。
Step6 云端服務器的數據都要經過完整性驗證返回給云用戶。
2) 已經注冊的云用戶再次登錄系統時,直接跳過上述步驟的Step1與Step2進行行為的判斷與狀態轉換等。
Hadoop是Apache軟件基金會組織下的一個開源項目,提供了分布式計算環境下的可靠和可擴展軟件。基于Hadoop框架的Distributed File System和 Map/Reduce Engine子系統,本文構建了一個云計算實驗平臺,在此平臺下對CCACSM進行了應用。該平臺以校園網絡中的用戶使用環境為背景,假設云用戶訪問某學校服務器端的數據信息,云用戶所處的環境E可以分為學校內部網絡E1和學校外部網絡E2;時態T可以分為上班時間T1和下班時間T2,以2種訪問行為(E2-T1,E1-T1)為例進行說明。



從以上分析中可以看出:當s是可信云用戶,且 s對 o有讀訪問權限,即(o, r)∈Drs,必有f’(o)≤BLP f= f(s),又因為 f≤BLP f’= f’(s),所以f’(o)≤BLP f’(s),滿足簡單安全屬性;對于可信云用戶,*屬性是自然被滿足的。
當s是非可信云用戶,且s對o有讀訪問權限,即(o, r)∈Drs,必有 f’(o)≤BLP f= f(s),即滿足*屬性,又因為 f≤BLP f’ =f’(s),所以 f’(o)≤BLP f’(s),即滿足簡單安全屬性。
當s是非可信云用戶,且s對o有寫訪問權限,即(o , w)∈Aws,必有 f’(o)≥BLPf = f(s),即滿足*屬性,又因為簡單安全屬性并不約束只寫操作, 所以也滿足簡單安全屬性。
云計算的安全問題是云計算中的核心問題之一。本文結合云計算時代所面臨的安全問題,提出了CCACSM,并闡述了該模型的組成部分、安全定理以及典型的實現過程。該模型的優點在于其不僅繼承了 BLP模型嚴格保密性的特點,而且具備了Biba模型保證數據完整性的特點。為了適應云計算用戶位置可變性這一特點,模型還引進了基于行為的訪問控制技術。針對CCACSM的進一步研究主要是改進該模型的“下讀,上寫”特性,提高系統的可用性。
[1] MILLER M. Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online[M]. Que Print Publication, 2008.
[2] 馮登國, 張敏, 張妍等. 云計算安全研究[J]. 軟件學報. 2011, 22(1),71-83.FENG D G, ZHANG M, ZHANG Y, et al. Study on cloud computing security[J]. Journal of Software, 2011 22(1):71-83.
[3] SIRISHA A, GEETHAKUMARI G. API access control in cloud using the role based access control model[A]. Trendz in Information Sciences and Computing-TISC2010[C]. 2010.
[4] LI D, LIU C, WEI Q, et al. RBAC-Based access control for SaaS systems[A]. 2010 2nd International Conference on Information Engineering and Computer Science (ICIECS)[C]. 2010.
[5] XUE J, ZHANG J J. A brief survey on the security model of cloud computing[A]. 2010 Ninth International Symposium on Distributed Computing and Applications to Business Engineering and Science(DCABES)[C]. 2010.
[6] Nat’l Computer Security Center. Trusted network interpretation of the trusted computer system evaluation criteria[A]. NCSC-TG2005[C].1987.
[7] BELL D E, LAPADULA L J. Secure Computer Systems: Mathematical Foundations[R]. The MITRE Corporation, Bedford, Massachussetts, 1973.
[8] LIN T, BELL Y, AXIOMS L. A “new” paradigm for an “old”model[A]. Proc 1992 ACM SIGSAC New Security Paradigms Workshop[C]. 1992.
[9] BIBA K J. Integrity Considerations for Secure Computer Systems[R] .Bedford: ESD-TR-76-732, 1977.
[10] 李益發, 沈昌祥. 一種新的操作系統安全模型[J]. 中國科學 E輯(信息科學), 2006, 36(4): 347-356.LI Y F, SHEN C X, A new operating system security model[J]. Science in China, Series E, Information Sciences. 2006, 36(4): 347-356
[11] 周正, 劉毅, 沈昌祥.一種新的保密性與完整性統一安全策略[J].計算機工程與應用, 2007, 43(34):1-2.ZHOU Z, LIU Y, SHEN C X. New kind of secrecy/integrity union policy[J]. Computer Engineering and Applications, 2007, 43(34):1-2.
[12] 梁彬,孫玉芳,石文昌等. 一種改進的以基于角色的訪問控制實施
BLP模型及其變種的方法[J].計算機學報. 2004,15(5): 636-644.
LIANG B, SUN Y F, SHI W C, et al. An improved method to enforce BLP model and its variations in role-based access control[J]. Journal of Computer, 2004, 15(5): 636-644.
[13] 李鳳華, 王巍, 馬建峰等. 基于行為的訪問控制模型及其行為管理[J].電子學報, 2008,3(10):1881-1890.LI F H, WANG W, MA J f. et al. Action-based access control model and administration of actions[J]. Acta Electronica Sinica. 2008. 36(10):1881-1890.