王靜宇,關(guān)宇亮
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
云環(huán)境下的屬性角色分配研究*
王靜宇,關(guān)宇亮
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
在云計(jì)算環(huán)境中,當(dāng)資源被用戶上傳到服務(wù)器端后,用戶就失去了對(duì)數(shù)據(jù)或資源的控制。如果云服務(wù)供應(yīng)商不提供相應(yīng)的保護(hù),那么該數(shù)據(jù)就存在泄露的風(fēng)險(xiǎn)。因此,云平臺(tái)會(huì)使用訪問(wèn)控制技術(shù)來(lái)保護(hù)用戶的隱私數(shù)據(jù)。文章提出一種基于屬性和角色的復(fù)合訪問(wèn)控制模型。該模型能夠適應(yīng)當(dāng)前不斷變化的云環(huán)境,其控制過(guò)程不會(huì)帶來(lái)時(shí)間復(fù)雜度的大規(guī)模提升。同時(shí)舉例論證云環(huán)境中屬性策略分配時(shí)出現(xiàn)沖突問(wèn)題應(yīng)該如何解決。該研究基于前人的研究之上,這保證了方案的可行性。
訪問(wèn)控制;屬性;角色
本文的研究目的是設(shè)計(jì)一種訪問(wèn)控制模型,能夠滿足云計(jì)算環(huán)境對(duì)于隱私保護(hù)的相關(guān)需求。通過(guò)對(duì)云環(huán)境的分析發(fā)現(xiàn),首先,當(dāng)前的訪問(wèn)控制模型,如基于角色的訪問(wèn)控制(Role-Based Access Control, RBAC)模型和基于屬性的訪問(wèn)控制(Attribute-Based Access Control, ABAC)模型在安全策略管理與判定條件及其執(zhí)行方式上尤其復(fù)雜;其次,大量的用戶帶來(lái)了繁雜的身份認(rèn)證機(jī)制;最后,權(quán)限不好監(jiān)管,權(quán)限過(guò)大容易監(jiān)守自盜,過(guò)小又會(huì)嚴(yán)重影響訪問(wèn)控制的效率。因此,傳統(tǒng)的訪問(wèn)控制模型已經(jīng)不能滿足當(dāng)前復(fù)雜的云環(huán)境。
近年來(lái),許多學(xué)者將傳統(tǒng)的模型相互結(jié)合。文獻(xiàn)[1]憑借屬性自動(dòng)生成角色,并將屬性判定式、許可和角色分為簡(jiǎn)單和復(fù)合兩種。文獻(xiàn)[2]將角色用屬性表示,并將屬性分為動(dòng)態(tài)和靜態(tài)分別進(jìn)行判定授權(quán)。文獻(xiàn)[3]將屬性拓展到RBAC模型中,定義了角色屬性,也就是主體屬性并通過(guò)策略加以驗(yàn)證。文獻(xiàn)[4]將屬性規(guī)則結(jié)合到角色繼承、用戶授權(quán)、會(huì)話激活的各個(gè)部分中,并編寫(xiě)了權(quán)限過(guò)濾策略來(lái)得到最終可用的權(quán)限。文獻(xiàn)[5]在ABAC中加入中心角色和動(dòng)態(tài)角色,并對(duì)屬性進(jìn)行分層以設(shè)立等級(jí)。文獻(xiàn)[6]在RBAC的用戶角色分配中加入了主體組織屬性,在角色權(quán)限分配中加入了客體公共屬性,并使用全局訪問(wèn)控制矩陣來(lái)進(jìn)行約束。但這些文獻(xiàn)要么設(shè)計(jì)了大量的規(guī)則來(lái)滿足動(dòng)態(tài)的屬性和角色關(guān)系,無(wú)疑模型的時(shí)間復(fù)雜度無(wú)法讓人滿意;要么存在策略沖突問(wèn)題,流程和算法需要繼續(xù)優(yōu)化。這些問(wèn)題正是本文要解決的。
為了區(qū)分RBAC和ABAC這樣單一的訪問(wèn)控制,使用復(fù)合訪問(wèn)控制(Composite Access Control, CAC)模型來(lái)命名本文的訪問(wèn)控制模型。如圖1所示,CAC模型改進(jìn)了RBAC模型和ABAC模型。它既有RBAC授權(quán)、分配靈活的特點(diǎn),又能像ABAC那樣適應(yīng)大規(guī)模的動(dòng)態(tài)性訪問(wèn)。
圖1 復(fù)合訪問(wèn)控制模型圖
本文將CAC模型分為兩個(gè)階段:CAC-ABAC階段和CAC-RBAC階段。如圖1所示,本文引入了一種常用的策略描述語(yǔ)言XACML來(lái)搭建CAC模型。
在CAC-ABAC階段,首先進(jìn)行主體的認(rèn)證。當(dāng)主體來(lái)訪問(wèn)時(shí),策略執(zhí)行點(diǎn)接收主體發(fā)起的原始訪問(wèn)請(qǐng)求。然后屬性權(quán)威提取主體屬性和屬性值,將原始訪問(wèn)請(qǐng)求轉(zhuǎn)換成屬性訪問(wèn)請(qǐng)求。接著,策略判定點(diǎn)判別原始訪問(wèn)請(qǐng)求中的屬性及屬性值,看能否匹配之中的規(guī)則。若匹配則分配角色;否則,拒絕該請(qǐng)求。策略判定點(diǎn)中的策略來(lái)自策略管理點(diǎn),用正則表達(dá)式表示。
CAC-RBAC階段主要分為兩步,先根據(jù)主體屬性分配角色,再根據(jù)角色分配權(quán)限。具體來(lái)說(shuō),如果主體的屬性符合CAC-ABAC階段的規(guī)則表達(dá)式,則有權(quán)訪問(wèn),進(jìn)入CAC-RBAC階段;否則,拒絕該主體的請(qǐng)求。然后,給角色賦予權(quán)限。這樣主體便可以進(jìn)行相關(guān)操作,對(duì)客體進(jìn)行訪問(wèn)。
在傳統(tǒng)的訪問(wèn)控制機(jī)制中,用戶與角色之間的關(guān)系是多對(duì)多的。這才引發(fā)了各種角色互相矛盾的問(wèn)題。一個(gè)用戶可能得到多個(gè)角色是引起沖突的根源。所以在CAC模型中,本文進(jìn)行了相關(guān)的改進(jìn)。
2.1 屬性角色分配
本文使用了用空間去換取時(shí)間的方法。具體是:通過(guò)了CAC-ABAC階段認(rèn)證的主體,都會(huì)擁有屬性表達(dá)式。本文消耗了一些空間來(lái)設(shè)計(jì)角色,以達(dá)到節(jié)省時(shí)間的目的。首先對(duì)主體歸類(lèi),一類(lèi)主體只能匹配一個(gè)正則表達(dá)式,每個(gè)正則表達(dá)式只能分配到一種角色。也就是說(shuō),主體和角色是1∶1或N∶1的關(guān)系。此時(shí)角色部分就一定不會(huì)存在沖突。本文的重點(diǎn)即在于此,通過(guò)主體屬性來(lái)進(jìn)行屬性和角色的復(fù)合設(shè)計(jì)。
圖2 角色權(quán)限分配圖
CAC模型之所以可以這樣做,是因?yàn)槟P椭羞€設(shè)計(jì)了角色(或權(quán)限)的優(yōu)先級(jí)。角色和權(quán)限的等級(jí)優(yōu)先程度在某種意義上是一致的。為了確保屬性與角色分配不會(huì)產(chǎn)生沖突,采取了如下做法:即使某個(gè)主體的多個(gè)屬性符合多條規(guī)則,它最終也只能獲得一個(gè)角色。角色和權(quán)限是M∶N的關(guān)系。只有給主體分配有意義的角色,并賦予其權(quán)限,訪問(wèn)控制才能正常進(jìn)行。
如圖2所示,每個(gè)角色可以擁有多種權(quán)限,每種權(quán)限也能由多個(gè)用戶獲得。是多對(duì)多的關(guān)系。對(duì)此本文也作出了一些優(yōu)化。
2.2 示例1:試卷批改系統(tǒng)
示例1:一個(gè)試卷批改系統(tǒng)這樣規(guī)定:本年級(jí)的教師不能批改本年級(jí)學(xué)生的試卷,本課程的教師才能批改本課程學(xué)生的試卷。該課程的教師組組長(zhǎng)可以批改任一年級(jí)的試卷并且不論其在哪個(gè)年級(jí)任教。
現(xiàn)有:高一組語(yǔ)文教師A,高一組數(shù)學(xué)教師B,高二組語(yǔ)文教師C,D兼任高一、高二數(shù)學(xué)教師,高三組語(yǔ)文教師E,高三組數(shù)學(xué)教師F兼任數(shù)學(xué)教師組組長(zhǎng)。
在本例中,拿到試卷進(jìn)行批改即是訪問(wèn)的過(guò)程。發(fā)起訪問(wèn)請(qǐng)求的主體是教師,被訪問(wèn)的客體是學(xué)生的試卷。
用grade=1來(lái)代表高一,grade=2代表高二,grade=3代表高三。用course=chn來(lái)代表語(yǔ)文,用course=math來(lái)代表數(shù)學(xué)。用duty=teacher來(lái)表示教師,用duty=chief來(lái)表示教師組組長(zhǎng)。
如表1所示,對(duì)于主體A,系統(tǒng)識(shí)別其主體屬性:grade=1,course=chn,duty=teacher。給其分配角色#0001,該角色擁有訪問(wèn)某些客體的權(quán)限。這些客體都擁有屬性:grade=2或3 且 course=chn。同理,教師B可以批改高二、高三的數(shù)學(xué)試卷。教師C可以批改高一、高三的語(yǔ)文試卷。
表1 試卷批改系統(tǒng)示例
本模型中涉及的屬性不一定是一個(gè)確定的值,它可能是值域,是一個(gè)取值范圍,或若干散點(diǎn)的集合。而對(duì)于主體D,如果提取的主體屬性是grade=1,那么對(duì)應(yīng)的客體屬性為grade=2或3;而如果提取的主體屬性是grade=2,那么對(duì)應(yīng)的客體屬性為grade=1或3。這時(shí)候,就要取客體屬性的交集,也就是只有g(shù)rade=3能被訪問(wèn)。在這里,D的主體屬性grade的值就是由兩個(gè)散點(diǎn)組成的集合。
對(duì)于主體F而言,他既是教師,又是教師組組長(zhǎng)。所以提取其主體屬性duty=teacher且duty=chief。如果duty=teacher,那么他可以訪問(wèn)grade=1和2的客體;如果duty=chief,那么他可以訪問(wèn)grade=1、2和3的客體。如果按上文所述,取他們的交集,即只能訪問(wèn)grade=1和2的客體,那顯然不符合示例中的題意。為了更直觀地看待,給grade=3,course=math,duty=teacher的主體屬性分配角色#0006,給grade=3,course=math,duty=chief的主體屬性分配角色#0007。在這里定義duty=chief的優(yōu)先級(jí)高于duty=teacher,這樣主體F只會(huì)獲得角色#0007,獲得訪問(wèn)主體屬性為grade=1,2和3的客體。也就是可以批改高中所有年級(jí)的數(shù)學(xué)試卷。之所以這樣定義優(yōu)先級(jí),因?yàn)閏hief相比teacher會(huì)帶來(lái)更多的權(quán)限。歸根究底,根本原因是grade=1,2和3能提供的權(quán)限數(shù)量是一定的,而teacher和chief允許訪問(wèn)的數(shù)量不同。
本文實(shí)行以空間換時(shí)間的方式來(lái)分配角色和權(quán)限。如F的情況,本文會(huì)設(shè)立#0006和#0007兩個(gè)角色。這樣只要多消耗很少的空間預(yù)留出這樣的角色,就會(huì)讓模型遠(yuǎn)離沖突帶來(lái)的問(wèn)題。模型會(huì)設(shè)計(jì)相應(yīng)的優(yōu)先級(jí),優(yōu)先將優(yōu)先級(jí)高的角色分配給符合條件的主體。在本案例中,#0006角色可有可無(wú),但應(yīng)保留,而不是為了考慮空間將其刪除。因?yàn)槿缛糁驠不再是課程的教學(xué)組組長(zhǎng),那他還擁有教師屬性,到時(shí)候就不好分配給其相應(yīng)角色了。
同時(shí),在設(shè)置角色時(shí)還要注意,不能有兩個(gè)角色對(duì)應(yīng)的權(quán)限完全一致。否則,可能會(huì)引發(fā)歧義,誘發(fā)一些誤操作。而且,這也浪費(fèi)了空間,造成了冗余。
在CAC-ABAC階段,需要匹配屬性是否滿足策略規(guī)范。由前文所述,判定屬性是否符合相關(guān)正則表達(dá)式,來(lái)決定其是否能進(jìn)行訪問(wèn)控制。而正則表達(dá)式中的屬性可能并不是若干個(gè)散點(diǎn),而是某一段區(qū)間都符合。這對(duì)于判定屬性并分配角色產(chǎn)生了歧義。又因?yàn)樵骗h(huán)境下的屬性經(jīng)常進(jìn)行變動(dòng),如每個(gè)月完成的項(xiàng)目個(gè)數(shù)和類(lèi)別;有些卻保持不變,如經(jīng)營(yíng)某一片區(qū)工作的員工:他的項(xiàng)目工作地點(diǎn)可能不變。因此,將屬性分為動(dòng)態(tài)屬性和靜態(tài)屬性。動(dòng)態(tài)屬性是一段值域、區(qū)間,如年齡18歲~25歲。而靜態(tài)屬性則表示為一個(gè)或一些散點(diǎn),如工作地點(diǎn)為福州或廈門(mén)。下面通過(guò)示例2來(lái)進(jìn)一步說(shuō)明其中的設(shè)定。
2.3 示例2:文件管理系統(tǒng)
示例2:現(xiàn)有一個(gè)文件管理系統(tǒng),該系統(tǒng)允許企業(yè)中的員工訪問(wèn)其中的文件,但受到訪問(wèn)控制約束。受約束的屬性可能有所屬部門(mén)(Department)、職位等級(jí)(Job Level)、崗位名稱(chēng)(Duty)、工作年限(Seniority)、資格證書(shū)(Qualification Credential, QC)。
如表2所示,如果訪問(wèn)者的主體屬性為人力資源部、職位等級(jí)為10級(jí)、工齡在3~5年之間,可以得到角色#0001。他會(huì)擁有修改文件1和讀取文件2的權(quán)限。而訪問(wèn)者的主體屬性如果為信息部、15級(jí)職位等級(jí)、崗位是管理員、工齡在6~8年間、擁有紅帽資格證書(shū)就可以得到角色#0002,擁有文件1的讀取、修改權(quán)限和文件2的讀取、修改、刪除權(quán)限。由于CAC模型支持細(xì)粒度的策略制定,所以只需兩項(xiàng)規(guī)則、兩個(gè)角色就可以滿足訪問(wèn)控制的需求。下面對(duì)比傳統(tǒng)的RBAC模型,來(lái)分析CAC模型在角色預(yù)設(shè)空間方面的優(yōu)勢(shì)。
表2 CAC模型屬性權(quán)限關(guān)系表
在傳統(tǒng)RBAC模型中,由于不支持細(xì)粒度的訪問(wèn)控制,所以需要這樣設(shè)計(jì)角色權(quán)限的分配。
如表3所示,用戶如果滿足條件:來(lái)自HR部門(mén)、職位等級(jí)10級(jí)、工齡3年,可以獲得角色#0001;來(lái)自HR部門(mén)、職位等級(jí)10級(jí)、工齡4年,可以獲得角色#0002;來(lái)自HR部門(mén)、職位等級(jí)10級(jí)、工齡5年,可以獲得角色#0003。但角色#0001、#0002、#0003的權(quán)限都是修改文件1和讀取文件2。下面的角色#0004、#0005、#0006也都對(duì)應(yīng)同樣的權(quán)限。由于RBAC不能夠像CAC這樣支持某段范圍內(nèi)的細(xì)粒度訪問(wèn),所以只能消耗更多的角色,事倍功半。CAC只需兩個(gè)角色或規(guī)則就可以完成的功能,RBAC需要6個(gè)。因此,CAC模型可以減少角色的設(shè)計(jì)數(shù)量和空間占有量。如果云環(huán)境下的授權(quán)規(guī)則更加復(fù)雜,那么CAC模型的優(yōu)勢(shì)將顯著提升。
表3 RBAC模型用戶權(quán)限關(guān)系表
針對(duì)云環(huán)境下的安全問(wèn)題和隱私問(wèn)題,設(shè)計(jì)了一種適用于云環(huán)境的復(fù)合訪問(wèn)控制模型。它結(jié)合了傳統(tǒng)的RBAC模型和ABAC模型,并在兩者的基礎(chǔ)上進(jìn)行了改進(jìn),以更緊密地發(fā)揮兩者的協(xié)同作用。本文的復(fù)合訪問(wèn)控制先提取主體的屬性進(jìn)行判斷。若符合相應(yīng)的規(guī)則判定表達(dá)式,則給其分配唯一的角色。為了解決傳統(tǒng)訪問(wèn)控制模型中出現(xiàn)的沖突問(wèn)題,本文通過(guò)設(shè)計(jì)優(yōu)先級(jí)的方式,配合多對(duì)一的主體角色分配關(guān)系,從源頭上解決該問(wèn)題。同時(shí),對(duì)于策略沖突的優(yōu)化本文也給出了示例加以分析,證明了其優(yōu)越性。
[1] 崔健. 一種基于屬性角色的訪問(wèn)控制模型研究與實(shí)現(xiàn)[D]. 武漢:華中科技大學(xué), 2011.
[2] 卞一茗. 基于混合屬性的訪問(wèn)控制模型研究[D]. 南京:南京郵電大學(xué), 2012.
[3] 李唯冠, 趙逢禹. 帶屬性策略的RBAC權(quán)限訪問(wèn)控制模型[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2013, 34(2):328-331.
[4] 熊厚仁,陳性元,費(fèi)曉飛,等.基于屬性和RBAC的混合擴(kuò)展訪問(wèn)控制模型[J].計(jì)算機(jī)應(yīng)用研究,2016,33(7):2162-2169.
[5] ANUDEEP L, KUSHAL C. Implementing flexible data access control for cloud storage using ABAC with RBAC[J].MASK International Journal of Science and Technology, 2016, 1(2):12-17.
[6] 李陽(yáng),劉更,王海偉.協(xié)同開(kāi)發(fā)環(huán)境中基于角色和屬性的訪問(wèn)控制模型[J].計(jì)算機(jī)集成制造系統(tǒng),2014,20(6):1335-1341.
Research on attribute and role assignment in Cloud environment
Wang Jingyu, Guan Yuliang
(School of Information Engineering, Inner Mongolia University of Science and Technology, Baotou 014010, China)
In the Cloud computing environment, the user loses control of the data or resource when they are uploaded to the server. If the Cloud service provider does not provide the appropriate protection, the data takes the risk of disclosure. Therefore, the Cloud platform uses access control technology to protect the user′s privacy data. This paper combines attributes with roles to design a composite access control model. The model can adapt to the large-scale dynamic access. The number of determination conditions will not increase exponentially with the increasing number of users. This paper also demonstrates how to solve the conflict problem when the role is distributed to user by attribute policy. The research of this paper is based on previous studies, which ensures the feasibility of the program.
access control; attribute; role
國(guó)家自然科學(xué)基金(61462069,61662056);內(nèi)蒙古自治區(qū)自然科學(xué)基金(2015MS0622,2016MS0609)
TP393
A
10.19358/j.issn.1674- 7720.2017.15.002
王靜宇,關(guān)宇亮.云環(huán)境下的屬性角色分配研究[J].微型機(jī)與應(yīng)用,2017,36(15):5-7,11.
2017-04-12)
王靜宇(1976-),男,博士,副教授,主要研究方向:云計(jì)算、信息安全。
關(guān)宇亮(1993-),男,碩士,主要研究方向:云計(jì)算。