摘 要: 海洋環(huán)境云平臺是一個多域多級別的云系統(tǒng),包含的資源安全級別多,資源歸屬復雜,海洋云平臺的用戶來自于不同的研究機構,用戶類型多?;谝陨闲枨蟊疚奶岢龆嗉壙缬蚪巧?a class="innerlink" href="http://ihrv.cn/tags/訪問控制模型" title="訪問控制模型" target="_blank">訪問控制模型,利用角色映射機制解決跨域跨級的訪問控制問題。跨域角色訪問控制模型不但能夠保證不同域之間用戶訪問資源的控制,同時域內的角色映射可以將前端用戶與服務端用戶進行分離,不用為每一位前端用戶在云平臺上創(chuàng)建一個對應的用戶,能夠有效地降低平臺用戶的管理難度。本文搭建了海洋環(huán)境信息云平臺訪問控制系統(tǒng),并對系統(tǒng)的安全性和效率進行了驗證。
關鍵詞: 海洋環(huán)境信息云平臺;角色映射;訪問控制模型
0 引言
海洋信息云計算服務平臺是利用云計算技術解決海量海洋觀測數據的有效利用問題而建設的一個云計算系統(tǒng),系統(tǒng)基于Hadoop平臺搭建。
海洋環(huán)境云平臺的數據安全級別多,既包括一般性的溫度場、鹽場觀測數據,也包括關系到國家戰(zhàn)略安全的敏感海洋觀測數據;同時,受海洋觀測的特殊條件限制,這些數據通常來自于不同的部門、不同觀測站,涉及到不同部門的利益[1]。海洋云平臺的用戶來自于不同的研究機構,用戶類型多,權限級別差別大。因此海洋環(huán)境云平臺要保證多個域之間信息共享,同時也要維護不同域用戶的權益。需要一個能夠實現上述要求的云平臺訪問控制系統(tǒng),并能夠實現靈活的授權機制。
對于如何改進傳統(tǒng)的訪問控制模型以便于應用到云平臺環(huán)境下,國內外很多學者和機構都做了研究,例如:Shafiq.B研究了基于RBAC策略的多域安全互操作問題[2],提出一種通過域間角色映射將異構RBAC策略模型集成為一致全局策略的框架,但是該模型只關注了不同域之間異構角色的映射問題,而沒有對角色的安全等級進行嚴格限制,未考慮安全級別等問題。Kapadia.A等在參考文獻[3]中討論了兩個采用RBAC策略間實現安全互操作的問題,首次提出通過動態(tài)角色轉換的方法快速建立域間訪問控制策略關聯(lián)實現跨域訪問的思想,然而該模型僅關注了不同策略之間的安全互操作問題,對于不同域、不同安全級別的資源訪問控制研究較少。馬強[4]等提出了基于云計算基礎設施服務的CIRBAC模型和CITE模型,用來實現基礎設施服務的安全,但是該模型僅從基礎設施訪問安全入手,未考慮云端數據的安全訪問控制。王小威[5]等提出了一種基于任務角色的云計算訪問控制模型,該模型對不同訪問主體采取不同訪問控制策略,以提供分級的安全特性,但是該模型未能提供主體跨域訪問客體的映射策略。
上述關于傳統(tǒng)訪問控制模型在云平臺上應用改進的研究都提出了一些創(chuàng)新性的策略和辦法,但是都是應用于各自專項系統(tǒng)或者某種特定的環(huán)境下[7]。而海洋環(huán)境云平臺的用戶來自不同的部門,包括各地的數據采集員、高校的研究員、海洋研究所的專家等等,用戶之間的級別有著復雜的層次關系。存儲在海洋環(huán)境云平臺的數據也不同于一般的云存儲服務平臺上的數據,不同的數據資源有不同的安全級別。因此,上述的各種改進模型不能夠有效地解決多域多級別的主體訪問客體權限轉換等問題。
海洋信息云計算服務平臺是一個多級信息安全系統(tǒng),數據資源劃分為多個安全級別,同時,角色也具有復雜的層次關系。海洋環(huán)境云平臺采用開源的Hadoop體系構建。Hadoop設計之初并沒有考慮到平臺的安全問題,并未給之前的版本加入嚴格的安全機制,Hadoop 2.0版本中權限控制使用的是操作系統(tǒng)上的ACL機制,用戶連接到Hadoop集群時通常是使用當前Linux系統(tǒng)用戶[8-9],也就是說,Hadoop用戶權限取決于當前使用客戶端的用戶組信息?;贏CL的訪問控制機制只能提供最基本的訪問控制,海洋信息云計算服務平臺這種混合云服務平臺對于敏感信息控制的需求嚴格。為了解決該問題,本文提出基于角色映射的訪問控制思想,結合現有的RBAC模型,給出了適用于海洋環(huán)境信息云平臺的用戶訪問控制模型,即基于角色映射的多級訪問控制模型D-RBAC,并進行了實驗。
1 多級訪問控制模型
基于角色映射的訪問控制的核心思想是運用目前已經比較成熟的基于角色的訪問控制,映射到Hadoop平臺用戶,隔離用戶對Hadoop平臺的直接訪問。云平臺用戶對于海洋信息資源的訪問首先要通過云門戶身份認證和訪問控制模塊,經過訪問控制模塊決策,并為其映射到一個對應權限的Hadoop平臺用戶權限,通過映射的Hadoop用戶實現云平臺資源的使用。海洋信息云服務系統(tǒng)訪問控制模型如圖1所示。
首先,在Hadoop平臺上創(chuàng)建多組固定權限的用戶(這些用戶是Linux的訪問用戶),并設置其分組。分組可以按行政單位的不同安全級別對應不同的用戶組,例如可以設置為北海分局1~5級,南海分局1~5級,東海分局1~5級,國家海洋中心1~5級等分組,每個分組創(chuàng)建多個用戶,承擔不同的角色,比如:管理員、數據操作員、業(yè)務操作員、普通用戶、客戶等角色。這些用戶設置完成后,就不能改變其權限。并且這些Hadoop角色對于WEB前端注冊的用戶是透明的。
在海洋信息云服務平臺的前端門戶新注冊的用戶并沒有直接訪問Hadoop平臺資源的權限。當用戶提出服務請求或資源訪問請求時,先經過云門戶權限控制模塊對其權限進行判斷,然后經角色映射模塊映射到對應權限的Hadoop角色用戶。如圖2所示。
訪問決策采用多級訪問控制模型來實現海洋環(huán)境信息云計算系統(tǒng)的訪問控制和授權管理。用戶管理采用基于角色授權管理模型,通過建立分層的樹形數據模型和訪問控制規(guī)則模型,能夠實現不同領域與不同職能的用戶對不同類型與不同層次的信息資源的細粒度訪問控制,在保證海洋環(huán)境信息安全與保密的同時,能夠向各類用戶提供高效的信息資源服務。下面給出D-RBAC形式化定義。
1.1 D-RBAC模型
D-RBAC模型類似于傳統(tǒng)的基于角色的訪問控制模型,由主體、域、角色、客體、權限五個部分組成,在傳統(tǒng)基于角色的訪問控制模型基礎上引入了多域多級的概念,不同域中分別有不同級別的角色池,對應海洋環(huán)境云平臺中的多個海洋專項研究系統(tǒng)中的不同用戶信息,同時引入了域內角色映射機制和跨域訪問的角色映射機制,其結構如3圖所示。
1.2 D-RBAC模型組件
Useri,j、Domaini、Sessioni、Rolei,j、Oi、Ri分別是用戶、域、會話、角色、客體和權限的集合。
Useri,jDomaini,用戶與域之間是多對一的分配關系。一個用戶只能包含在一個域內;
Rolei,jDomaini,角色與域之間也是多對一的分配關系。
UAiUseri,j×Rolei,j,域Di中用戶與角色間是多對多的分配關系;
PAiRolei,j×Ri,域Di中角色與權限間為多對多的分配關系;
SessioniDiUseri,j×DjRolei,j,用戶Useri,j發(fā)起的跨域會話,是多對一的分配關系;
Authorization(),授權過程。
RoleMapping(Di|Rolei,j,Dj|Rolei,j),角色映射過程。
Assign(Role,R,O),允許將客體O的權限R授予角色Role。
Rvoke(S,O,R),收回主體S對客體O的訪問權限。
onAccess(S,O,R),主體S訪問客體O。
Assign(S,Role)=>Authorization(),將角色Role授予主體S后才可以授權主體S訪問客體。
revoke(S,O,Role)=>!Authorization(),權限收回后,應該取消對主體S的授權。
S.SSlev>O.OSlev&Authorization()=>onAccess(S,O,R),主體的安全等級大于客體的安全等級時才可以進行訪問操作。
onAccess(S,O,R)=>UpdateAttr(ATT(S))/UpdateAttr(ATT(O)),主體S訪問客體O可能引起對主體S或客體O的屬性更新。
1.3 角色映射策略
在本模型中,角色映射的策略有兩種:一種是能夠將映射得到的權限向下傳遞的可傳遞性角色映射策略,另一種是只能夠建立確定的單項傳遞關系,不能夠獲得下級角色的訪問權限的非傳遞性映射策略[10]。
?。?)可傳遞性映射策略
可傳遞映射策略是將外域角色與本地角色建立了映射關系之后,不僅獲得本地角色及其下級角色的訪問權限,而且,外域中高于當前已經建立映射關系角色的安全等級的上級角色都可以通過本次映射獲得本地的操作權限。
(2)非傳遞性映射策略
非傳遞性的角色映射能夠有效地克服傳遞性映射策略帶來的權限風險。當外域角色與本地角色建立映射關系之后,只有當前建立映射關系的角色能夠獲得本地角色及其下級角色的訪問權限。原系統(tǒng)該角色的上級角色并不能通過該次映射獲得本地角色的訪問權限。因此能夠有效地控制授權范圍,顯著地增強系統(tǒng)安全性。在對安全性要求較高的系統(tǒng)中,大部分都會采用非傳遞性的角色映射策略。
1.4 模型域間映射策略
在本地域和外域角色層次之間,通過使用可傳遞關聯(lián)和非傳遞關聯(lián),可以創(chuàng)建一個組合偏序關系,并且定義一種安全策略。這些策略可以分成兩類。
?。?)自動映射策略
自動映射策略是大部分系統(tǒng)都會采用的最小權限映射關系,只能提供最小的本地角色權限集合,建立的都是非傳遞性的角色映射策略。意義是能夠建立兩個域之間的角色映射關系,形式化定義如下:
DefaultRoleMapping(r,r′,Di,Dj:NAME){
Rolei∈Di;Rolej,0∈Dj;
r∈Rolei;r′=Rolej,0;
AddNonTansitiveMapping(r,r′);}
?。?)手動映射策略
當域1中角色想要訪問域2中權限級別高于自身的客體時,需申請角色映射,管理員通過審查后,手動建立角色映射關系,并設置時效,時效結束將撤銷該映射。形式化定義如下:
ApplyRoleMapping(r,r′,Di,Dj:NAME){
Rolei,m∈Di;Rolej,n∈Dj;
r∈Rolei,m;r′=Rolej,n;i≠j;m≥n;
AddNonTansitiveMapping(r,r′)∧
AddNonTansitiveMapping(r,r′);
timeout;
DefaultTansitiveMapping(r,r′)∧
DefaultNonTansitiveMapping(r,r′);}
在本文的訪問控制方案中,由于存放在海洋環(huán)境云平臺的數據進行了分域、分級安全管理,當主體訪問本域內的客體時,可直接進行權限驗證。當客體與主體不同域時,需要進行跨域的角色映射。同時客體擁有者通過監(jiān)控高安全級別的數據訪問請求的方法來減少訪問控制的管理工作,一些較低安全級別的數據訪問可以通過自動的訪問控制來實現。
2 服務訪問流程
系統(tǒng)初始化階段首先在Hadoop系統(tǒng)上根據行政單位和安全級別建立Hadoop平臺用戶組(HGi)和用戶集合(HUij∈HGi)。
定義云服務器ID為CS,用戶Ui訪問客體Oj的過程如下:
?。?)Ui向CS發(fā)送訪問請求Acc。
?。?)CS首先檢查Ui是否是合法用戶,若是合法用戶則為其分配角色,然后檢查客體Oj所在域是否與分配角色在同一域內。若在同一域內,檢查角色權限列表,若擁有該客體的訪問授權,則驗證Ui,并返回授權證書或拒絕,轉第(5)步;若客體Oj不在同一域內,則把Acc轉發(fā)給D-RBAC角色映射機制,轉第(3)步。
?。?)D-RBAC角色驗證機制,首先檢查客體Oj的安全級別,并根據安全級別確定角色映射策略,判斷是否給Ui授權,若不授權,則向Ui發(fā)送reject;若授權,則轉第(4)步。
?。?)Ui向D-RBAC角色映射組件申請進行映射,D-RBAC組件為Ui的角色映射到客體所在域內角色HUij。查角色權限列表,若擁有該客體的訪問授權,則驗證Ui,并返回授權證書或拒絕。
(5)Ui通過云平臺向客體Oj發(fā)起訪問請求,云平臺利用HUij通過Hadoop平臺訪問Oj。
圖4為一次訪問授權過程的序列圖表示。
3 實驗分析
3.1 安全性分析
系統(tǒng)的數據庫設計和主要的類設計如圖5所示。
在系統(tǒng)中分別建立云平臺WEB用戶user和Hadoop平臺用戶root。經測試user用戶不能登錄到Hadoop計算平臺上,無法訪問HDFS文件和提交job任務。建立角色映射關系后,user用戶可以在Hadoop平臺上提交job任務,訪問HDFS文件。實驗結果表明,系統(tǒng)原型滿足策略的如下安全目標:
(1)不同部門之間數據的強隔離性。在海洋云平臺內的每一次數據訪問,由于都需要比較主、客體的組織標簽是否相同,嚴格限制了一個部門用戶對其他部門用戶數據訪問的企圖。
?。?)靈活的部門內部數據隔離。在海洋云平臺內,每一個部門都可以由專門的管理員定義多層次的主體角色,滿足了部門內部不同角色各自的訪問控制安全需求。
?。?)部門之間數據的受控共享。在海洋云平臺內的多個部門可以通過建立臨時的角色映射來實現數據共享,并通過設置,嚴格限制高敏感數據共享。
3.2 性能分析
在未加入任何安全機制之前,基于HDFS的實驗系統(tǒng)讀寫不同大小文件的時間開銷如圖6所示??梢?,讀寫訪問時間開銷基本上是隨著被訪問文件數據塊的增多而呈線性增長。
相對原有讀寫訪問時間(1 000~ 10 000 ms 級),在HDFS加入安全機制后帶來的額外時間開銷極?。?.1~10 ms級),幾乎可以忽略不計,包括的主要開銷為:
控制策略的運算時間:由于權限表達式樹在系統(tǒng)初始化的時候就已經建立好了,因此在運行過程中判斷主體是否能訪問客體的策略在決策上的性能損耗較小。
角色映射時間:當用戶訪問HDFS文件時,初次訪問需要根據權限進行角色映射,角色映射建立好以后,再次訪問不需要再消耗時間。
根據以上實驗結果,訪問控制安全機制的性能損耗對于HDFS原有訪問時間而言確實是可以忽略不計。
4 結束語
隨著海洋信息數據的日益增多,以及云平臺在海洋領域的應用的加深,如何加強平臺的安全性,保證信息安全越來越重要。本文針對目前主流的開源云平臺框架Hadoop中存在的安全問題進行了研究,將默認的ACL方式的簡單用戶訪問控制機制進行了優(yōu)化。這主要包括設置不同級別分組的用戶信息,創(chuàng)新性地將角色映射機制映入到云平臺訪問控制模型中。并針對海洋環(huán)境云平臺的信息級別多、用戶分屬不同域和經常需要跨域訪問資源等問題,提出了一種基于RBAC模型的改進解決方案。實驗表明本文的方法管理簡單有效,能夠解決多級多域的訪問控制問題。
參考文獻
[1] 鹿守本.海洋管理通論[M].北京:海洋出版社,1997.
[2] SHAFIQ B, JOSHI J B D, BERTINO E, et al. Secure interoperation in a multidomain environment employing RBAC policies[J]. Knowledge and Data Engineering, 2005, 17(11): 1557-1577.
[3] KAPADIA A, AL-MUHTADI J, CAMPBELL R H, et al. IR AC 2000: secure interoperability using dynamic role translation[C]. Proceedings of 1st International Conference on Internet Computing, UIUCDCS-R-2000,2000:82-121.
[4] 馬強,艾中良.面向云計算環(huán)境的訪問控制模型[J].計算機工程與設計,2012,33(12):47-50.
[5] 王小威,趙一鳴.一種基于任務角色的云計算訪問控制模型[J].計算機工程,2012,38(24):9-13.
[6] 馬媛.基于Hadoop的云計算平臺安全機制研究[J].信息安全與通信保密,2012(6):89-91.
[7] FERRAIOLO D, CUGINI J, KUHN D R. Role-based access control (RBAC): features and motivations[C]. Proceedings of 11th Annual Computer Security Application Conference, 1995:241-48.
[8] 徐剛.云計算與云安全[J].信息安全與技術,2011(2):24-26.
[9] 趙明斌.基于信任的云計算訪問控制模型研究[D].福州:福建師范大學,2013:17-22.
[10] 郭樂深,張乃靖,尚晉剛.云計算環(huán)境安全框架[J].信息網絡安全,2009(7):62-64.