郭冬升,徐建良
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,山東 青島 266100)
摘要:在分析RBAC96模型的基礎(chǔ)上,從角色概念及角色間關(guān)系的角度分析其不明確之處;通過角色理論中的可計(jì)算角色模型,改進(jìn)RBAC96模型,使其具有更好的擴(kuò)展性。
關(guān)鍵詞:RBAC;角色理論;模型改進(jìn)
0引言
隨著信息管理系統(tǒng)面向多用戶、多應(yīng)用的發(fā)展,用戶可以訪問的數(shù)據(jù)和功能資源機(jī)構(gòu)日益復(fù)雜,規(guī)模日益龐大。資源的安全性成為一個重要且亟待解決的問題?;诮巧脑L問控制方法(RoleBased Access Control,RBAC)是當(dāng)前較為有效的資源訪問控制方法,在各類信息系統(tǒng)中有著廣泛的應(yīng)用。然而傳統(tǒng)RBAC模型對于角色的概念模型思考過少,不同信息系統(tǒng)對于RBAC的實(shí)現(xiàn)方案也不盡相同,若將傳統(tǒng)RBAC模型應(yīng)用于不同的信息系統(tǒng)中,需要增強(qiáng)傳統(tǒng)RBAC模型的普適性。
本文首先對訪問控制和RBAC模型的基本概念和思想進(jìn)行探討,之后詳細(xì)分析RBAC96模型[1]中的不明確處;第2節(jié)介紹角色理論,并基于角色模型改進(jìn)RBAC96模型;第3節(jié)對上述部分加以總結(jié)。
1訪問控制與RBAC模型
訪問控制源于美國國防部資助的研究項(xiàng)目,后演化成為現(xiàn)在的訪問控制技術(shù)。顧名思義,訪問控制技術(shù)是實(shí)現(xiàn)訪問者(主體)與資源(客體)之間存在的訪問策略的一項(xiàng)技術(shù),主體只有成功通過訪問控制機(jī)制設(shè)下的關(guān)卡,才可獲取特定的客體。訪問控制策略應(yīng)該滿足下述最基本三個方面的控制:
?。?)機(jī)密性控制:保證客體資源不被非法的讀取。
?。?)完整性控制:保證客體資源不被非法地增加、刪除、改寫,從而保證資源的一致完整性。
(3)有效性控制:保證客體資源不被非法訪問主體使用和破壞。
對如今越來越復(fù)雜的信息系統(tǒng)而言,很多情況下使用單一的訪問控制方法已經(jīng)無法完全保證信息的安全。因此,實(shí)現(xiàn)訪問控制方法必須結(jié)合其他技術(shù),RBAC由此而生,它結(jié)合數(shù)據(jù)完整性、數(shù)據(jù)機(jī)密性、身份驗(yàn)證、安全審計(jì)等技術(shù),已成為目前廣為流行的訪問控制方法。
1.1RBAC簡介
RBAC模型于1992年由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology)組織開發(fā),它是一種基于角色的信息訪問控制方法[2]。
在使用RBAC模型的信息系統(tǒng)中,系統(tǒng)不會直接對主體進(jìn)行訪問控制,而是判別該主體所承擔(dān)的角色,通過角色的不同權(quán)限,最終確定該主體是否可以最終獲取客體資源。因此,RBAC將主體與客體之間的關(guān)系通過角色進(jìn)行了分隔,每個角色在此相當(dāng)于主體的一個集合,自然,一個主體可以同時對應(yīng)多個角色,每種角色也可由多個主體進(jìn)行承擔(dān)。基于角色的訪問控制方法,可以很簡便地完成授權(quán)管理、賦予最小特權(quán)、根據(jù)工作進(jìn)行分級、責(zé)任獨(dú)立、文件分級等工作。在RBAC中,角色的靈活變更可以使得原先主體與客體之間的復(fù)雜關(guān)系變得簡便。
RBAC的本質(zhì)是在用戶與權(quán)限之間建立一個靈活的橋梁。通過用戶角色分配(UA)及角色權(quán)限分配(PA),實(shí)現(xiàn)角色橋梁的搭建,如圖1所示[3]。
在RBAC中,主要有四個實(shí)體:用戶(User)、角色(Role)、權(quán)限(Permission)、會話(Session)。
(1)用戶:前文中的主體,資源的訪問者。一般而言,用戶就是人,但是隨著計(jì)算機(jī)的發(fā)展,也可以是一些智能程序。
(2)角色:可以執(zhí)行特定任務(wù)或被指定擁有一定工作職能的工作頭銜。它代表一種權(quán)利和責(zé)任,它根據(jù)具體的業(yè)務(wù)場景來進(jìn)行劃分。
?。?)權(quán)限:表示用戶對資源的操作許可,與具體的系統(tǒng)應(yīng)用有關(guān),每條權(quán)限通常代表不同的資源。
?。?)會話:即某用戶與角色之間的映射關(guān)系,一個用戶一般情況下?lián)碛幸粋€或多個角色,因此該映射是一對一或一對多的關(guān)聯(lián)關(guān)系。用戶需要在會話中完成某個角色的激活工作,每一個會話都與某個用戶關(guān)聯(lián),每個用戶因其可能同時具有多個角色,因此可同時關(guān)聯(lián)多個會話。
除了給定的四個基本實(shí)體,還需要定義以下概念:
?。?)權(quán)限分配(Permission Assignment,PA):角色與權(quán)限之間的多對多關(guān)系的映射。
?。?)用戶分配角色(User Assignment,UA):用戶與角色之間的多對多關(guān)系的映射。
(3)角色層次(Role Hierarchy,RH):角色與角色之間存在的等級或繼承關(guān)系體現(xiàn)。
?。?)約束條件(Constraints):判別在模型中各個操作是否被允許。
1.2RBAC96模型
Gerorge Mason教授SANDHU R S于1996年對基本RBAC模型進(jìn)行改進(jìn),提出了 RBAC96模型,并在之后的時間里很快成為了使用最為廣泛的訪問控制模型。
RBAC0、RBAC1、RBAC2和RBAC3四個模型共同組成RBAC96模型族。其中RBAC0是其他模型的基礎(chǔ)模型,其核心即是前文中介紹的角色作為用戶與權(quán)限的關(guān)聯(lián)橋梁。RBAC1在RBAC0的基礎(chǔ)上,引入了角色與角色之間的關(guān)系,根據(jù)現(xiàn)實(shí)人類社會的組織構(gòu)造,其將角色之間的關(guān)系以角色的層級來表示,不同層級的角色通過權(quán)限繼承的關(guān)系描述,即上層角色擁有其父角色的所有權(quán)限。RBAC2即角色限制模型,其在RBAC0的基礎(chǔ)上,在會話、角色分配、權(quán)限分配等各個過程中,根據(jù)實(shí)際業(yè)務(wù)需求,添加各種限制。
圖2RBAC96內(nèi)各子模型關(guān)系可以看出,RBAC1與RBAC2是相互獨(dú)立的模型,其在RBAC0模型的基礎(chǔ)上,從不同方面對基礎(chǔ)模型進(jìn)行了擴(kuò)展。結(jié)合RBAC1與RBAC2構(gòu)成一個新的統(tǒng)一模型RBAC3,自然統(tǒng)一模型也具有RBAC0的所有特點(diǎn)。這幾個模型共同組成了RBAC96模型族,如圖2所示。
圖3為RBAC3概念示意圖,該模型聚合了RBAC0、RBAC1與RBAC2三個模型。
2角色理論與RBAC96改進(jìn)模型
2.1角色理論
2.1.1角色的概念
角色的概念無處不在,它常常被認(rèn)為是一種類型或是屬性,角色與一般的自然類型概念不同[4]。
角色具有非常強(qiáng)的上下文依賴性。比如某個人在學(xué)校內(nèi)擔(dān)任教師的角色,而在家中擔(dān)任丈夫的角色,因此對于同一人來講,在不同上下文環(huán)境中,可能扮演不同的角色,上下文在角色的描述中占據(jù)非常重要的位置。
在這里給出角色的一個非正規(guī)定義:角色是在某個上下文環(huán)境中被某個實(shí)體扮演的實(shí)體。
角色具有以下特點(diǎn)[5]:
?。?)角色可以被扮演和停止扮演,是動態(tài)的概念;
?。?)角色的定義必須依靠外部的一些其他概念;
?。?)角色依賴于定義它的上下文環(huán)境;
?。?)一個實(shí)體可以扮演多個角色;
(5)一個實(shí)體可以多次扮演一個角色類型,如一個人多次扮演學(xué)生角色;
(6)一個角色可以扮演另一種角色,如美國公民角色可以扮演美國總統(tǒng)的角色;
(7)一個角色可以同時被多個實(shí)體所扮演;
?。?)角色與所依賴的上下文的關(guān)系可能穩(wěn)定也可能不穩(wěn)定,如教師在睡覺時仍然是教師,而行人在睡覺時即不再是行人。
2.1.2角色模型簡述
舉一個教師角色的例子來說明此模式:“在X高中,張三扮演了A教師角色,因此成為了A教師”,在類的層次上,可以泛化為“在學(xué)校里,某人可以扮演教師,因此成為教師”。圖4所示為這種關(guān)系的描述。
從圖4和舉例描述中,可以發(fā)現(xiàn)幾個重要的元素:
?。?)上下文:包含一系列的事物,但可以看為整體的類。
?。?)角色概念:其實(shí)例可以被別的實(shí)體在某個上下文中扮演。
(3)角色擁有者:是一種依賴實(shí)體的類,角色扮演者和角色概念實(shí)例組合的抽象。它是整個角色模型的核心。
?。?)潛在扮演者:指可以扮演角色概念實(shí)例的一類事物。
?。?)角色扮演事物:在實(shí)例層扮演角色的實(shí)體
上面的例子進(jìn)一步可泛化為“在上下文中,潛在扮演者可以扮演角色概念,因此成為角色擁有者”。在此模型中,傳統(tǒng)的角色扮演者被分為二部分:一是概念層的潛在扮演者,一是實(shí)例層的被扮演事物。傳統(tǒng)的角色扮演關(guān)系被分為兩種:一個是概念的可扮演,另一個是實(shí)例層的已扮演。傳統(tǒng)的角色被分為兩種:角色概念和角色擁有者,傳統(tǒng)的角色概念隱藏了這兩者的區(qū)別,正是產(chǎn)生概念混亂的原因。角色擁有者不允許直接實(shí)例化,因?yàn)樗蕾囉趯?shí)體,角色擁有者的類和實(shí)例之間是用虛線箭頭連接的,表示繼承關(guān)系,而不是實(shí)線箭頭的實(shí)例化。此模型中,一個角色概念即使不被扮演,也可以存在實(shí)例層,因?yàn)樗灰蕾囉谒纳舷挛?,而不是扮演者?br/> 2.1.3角色分類
按照依賴的上下文不同,可將角色分為多個類別,最主要的有三個:關(guān)系角色、組織角色和過程角色。關(guān)系角色依賴于關(guān)系,如丈夫和妻子;組織角色依賴于某社會組織,如信息學(xué)院院長;過程角色依賴于某個過程,如項(xiàng)目審核人。在信息系統(tǒng)中,管理的角色主要包括組織角色和過程角色兩類[6]。
2.2基于角色理論的RBAC96模型改進(jìn)
2.2.1引入上下文環(huán)境
對于同一個角色,不同扮演者扮演時其權(quán)限往往是不同的。譬如張三和李四都扮演“項(xiàng)目負(fù)責(zé)人”角色,維護(hù)自己負(fù)責(zé)的項(xiàng)目,顯然他們所能獲取的數(shù)據(jù)權(quán)限局限于自己的項(xiàng)目;再譬如“部門負(fù)責(zé)人”角色,不同部門的負(fù)責(zé)人顯然權(quán)限有所區(qū)別。因此對角色來講,其依賴的上下文具有非常重要的意義,角色概念與其上下文環(huán)境的組合更加適合承擔(dān)用戶與權(quán)限之間的橋梁。新角色包括兩部分,角色概念和上下文。譬如“信息學(xué)院院長”角色,其包括角色概念“院長”和上下文環(huán)境“信息學(xué)院”兩部分,二者組合到一起可更加清晰地表現(xiàn)用戶承擔(dān)的角色。
2.2.2權(quán)限的分析
RBAC模型只涉及用戶、角色與權(quán)限,沒有對權(quán)限作進(jìn)一步的思考,其實(shí)權(quán)限如何定位往往決定著整個系統(tǒng)在訪問控制上所能做到的程度。本小節(jié)主要討論權(quán)限粒度問題以及角色權(quán)限分配過程(PA)。權(quán)限的描述可以分為兩個組成部分:資源與操作,每一條權(quán)限即是兩者的組合。如“項(xiàng)目”為某一資源,“添加”為某一操作,則二者的組合即為“添加項(xiàng)目”這一權(quán)限。
信息系統(tǒng)中的權(quán)限可分為三個部分:界面、功能、數(shù)據(jù),三者相輔相成。例如“某項(xiàng)目負(fù)責(zé)人登錄科技處管理系統(tǒng)查看項(xiàng)目信息”這一事件,便涉及界面、功能及數(shù)據(jù)三個部分。首先,界面為該專家提供操作接口,其次該專家可以通過系統(tǒng)執(zhí)行“查看項(xiàng)目”功能,最后獲取項(xiàng)目數(shù)據(jù)。如何使用權(quán)限記錄來描述這三者是一個亟待解決的問題。按照權(quán)限為資源與操作的組成模式,上文“某項(xiàng)目負(fù)責(zé)人登錄科技處管理系統(tǒng)查看項(xiàng)目信息”的情況,可簡單描述為權(quán)限“查看項(xiàng)目”,其中“查看”為操作,“項(xiàng)目”為資源??梢?,這類簡單的權(quán)限可以與數(shù)據(jù)庫中的數(shù)據(jù)操作相一致,操作對應(yīng)數(shù)據(jù)庫的增刪改查操作,數(shù)據(jù)對應(yīng)數(shù)據(jù)庫表,如此可以在系統(tǒng)中將權(quán)限關(guān)聯(lián)至數(shù)據(jù)庫操作,非常方便地實(shí)現(xiàn)訪問控制,這種方案便是將權(quán)限粒度定位到數(shù)據(jù)庫表的操作級別。然而對于某些權(quán)限,這種做法卻是不合適的,如“信息學(xué)院院長審核某項(xiàng)目立項(xiàng)”這種情況,院長的審核操作可能改動項(xiàng)目信息、添加審核記錄等,如果沿用數(shù)據(jù)庫操作粒度的權(quán)限,描述這類權(quán)限顯然很不方便。
由此可以考慮另一種權(quán)限粒度劃分方案:根據(jù)系統(tǒng)業(yè)務(wù)劃分。如“信息學(xué)院院長審核某項(xiàng)目立項(xiàng)”簡單描述為“審核立項(xiàng)”,然而在實(shí)現(xiàn)這種粗粒度的權(quán)限描述中,因?yàn)槠渑c實(shí)際業(yè)務(wù)的緊耦合性,需要將訪問控制方法在業(yè)務(wù)層做處理,這對于系統(tǒng)的維護(hù)、擴(kuò)展都是一個不小的負(fù)擔(dān)。
對于信息系統(tǒng)而言,權(quán)限的粒度直接決定著訪問控制復(fù)雜度。對于網(wǎng)絡(luò)信息系統(tǒng),比較適中的方案是將訪問控制方法置于通信層,這便需要對系統(tǒng)權(quán)限做詳細(xì)的分析,在粗粒度和細(xì)粒度的權(quán)限描述中尋求一個權(quán)限描述的合適位置。
角色權(quán)限分配過程分為靜態(tài)與動態(tài)兩個過程,靜態(tài)過程為提前完成的角色概念與權(quán)限之間的關(guān)聯(lián),動態(tài)過程將上下文引入至權(quán)限中,以確定權(quán)限操作的對象。圖5所示為角色權(quán)限分配過程。
RBAC1角色分級模型本質(zhì)上是角色之間普遍存在的繼承關(guān)系的體現(xiàn);RBAC2限制模型對于角色的限制也體現(xiàn)了角色之間的關(guān)系,如互斥,對于不同復(fù)雜度的信息系統(tǒng),所需要的限制也有所不同。改進(jìn)模型將RBAC1與RBAC2融合在一體,體現(xiàn)了角色之間的繼承與互斥關(guān)系。
2.2.4改進(jìn)的RBAC模型
圖6所示為改進(jìn)的RBAC模型。在改進(jìn)模型中引入上下文環(huán)境,作為角色的一個重要組成部分;將權(quán)限分
配過程分為靜態(tài)和動態(tài)兩類;將角色分級泛化為角色關(guān)系,簡化RBAC3中的約束模型,僅在角色關(guān)系中體現(xiàn)。事實(shí)上每個信息系統(tǒng)都有獨(dú)自的約束要求,本文的改進(jìn)模型沒有將其在模型中表示。基于角色理論的RBAC改進(jìn)模型去掉描述不詳?shù)腞BAC2限制模型,在角色的概念上做了一定的補(bǔ)充。這樣,既簡化了RBAC96模型,又提高了其普適性。
3結(jié)束語
本文在角色理論的基礎(chǔ)上,對RBAC96模型中的角色和權(quán)限部分進(jìn)行了擴(kuò)展,并簡化了RBAC3模型中的約束部分,使其具有良好的可擴(kuò)展性。
參考文獻(xiàn)
[1] SANDHU R S, COYNE E J, FEINSTEIN H L, et al. Rolebased access control models[J]. Computer, 1996, 29(2):3847.
?。?] 賈曉輝, 韓玉民. 基于任務(wù)的RBAC模型設(shè)計(jì)與應(yīng)用[J]. 微型機(jī)與應(yīng)用, 2014,33(2):7881.
?。?] 楊靜, 季新生, 劉彩霞. 基于角色訪問控制的HSS數(shù)據(jù)庫越權(quán)訪問防護(hù)[J]. 電子技術(shù)應(yīng)用, 2011, 37(4):145148.
?。?] MIZOGUCHI R, SUNAGAWA E, KOZAKI K, et al. The model of roles within an ontology development tool: Hozo[J]. Applied Ontology, 2007, 2(2):159179.
?。?] 熊晶. 海洋生態(tài)本體的建模方法研究及應(yīng)用[D]. 青島:中國海洋大學(xué), 2010.
[6] 江利萍, 張?jiān)佘S. 社會群體角色本體建模及其公理獲?。跩]. 計(jì)算機(jī)工程, 2012, 38(10):4144.