郭冬升,,徐建良
(中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,,山東 青島 266100)
摘要:在分析RBAC96模型的基礎(chǔ)上,,從角色概念及角色間關(guān)系的角度分析其不明確之處;通過角色理論中的可計算角色模型,,改進(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的實現(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àn)在的訪問控制技術(shù)。顧名思義,,訪問控制技術(shù)是實現(xiàn)訪問者(主體)與資源(客體)之間存在的訪問策略的一項技術(shù),,主體只有成功通過訪問控制機(jī)制設(shè)下的關(guān)卡,才可獲取特定的客體,。訪問控制策略應(yīng)該滿足下述最基本三個方面的控制:
?。?)機(jī)密性控制:保證客體資源不被非法的讀取。
(2)完整性控制:保證客體資源不被非法地增加,、刪除、改寫,,從而保證資源的一致完整性,。
(3)有效性控制:保證客體資源不被非法訪問主體使用和破壞,。
對如今越來越復(fù)雜的信息系統(tǒng)而言,,很多情況下使用單一的訪問控制方法已經(jīng)無法完全保證信息的安全。因此,,實現(xiàn)訪問控制方法必須結(jié)合其他技術(shù),,RBAC由此而生,它結(jié)合數(shù)據(jù)完整性,、數(shù)據(jù)機(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)?;诮巧脑L問控制方法,,可以很簡便地完成授權(quán)管理、賦予最小特權(quán),、根據(jù)工作進(jìn)行分級,、責(zé)任獨(dú)立、文件分級等工作,。在RBAC中,,角色的靈活變更可以使得原先主體與客體之間的復(fù)雜關(guān)系變得簡便。
RBAC的本質(zhì)是在用戶與權(quán)限之間建立一個靈活的橋梁。通過用戶角色分配(UA)及角色權(quán)限分配(PA),,實現(xiàn)角色橋梁的搭建,,如圖1所示[3]。
在RBAC中,,主要有四個實體:用戶(User),、角色(Role)、權(quán)限(Permission),、會話(Session),。
(1)用戶:前文中的主體,,資源的訪問者,。一般而言,用戶就是人,,但是隨著計算機(jī)的發(fā)展,,也可以是一些智能程序。
?。?)角色:可以執(zhí)行特定任務(wù)或被指定擁有一定工作職能的工作頭銜,。它代表一種權(quán)利和責(zé)任,它根據(jù)具體的業(yè)務(wù)場景來進(jìn)行劃分,。
?。?)權(quán)限:表示用戶對資源的操作許可,與具體的系統(tǒng)應(yīng)用有關(guān),,每條權(quán)限通常代表不同的資源,。
(4)會話:即某用戶與角色之間的映射關(guān)系,,一個用戶一般情況下?lián)碛幸粋€或多個角色,,因此該映射是一對一或一對多的關(guān)聯(lián)關(guān)系。用戶需要在會話中完成某個角色的激活工作,,每一個會話都與某個用戶關(guān)聯(lián),,每個用戶因其可能同時具有多個角色,因此可同時關(guān)聯(lián)多個會話,。
除了給定的四個基本實體,,還需要定義以下概念:
(1)權(quán)限分配(Permission Assignment,,PA):角色與權(quán)限之間的多對多關(guān)系的映射,。
(2)用戶分配角色(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)實人類社會的組織構(gòu)造,其將角色之間的關(guān)系以角色的層級來表示,,不同層級的角色通過權(quán)限繼承的關(guān)系描述,,即上層角色擁有其父角色的所有權(quán)限。RBAC2即角色限制模型,,其在RBAC0的基礎(chǔ)上,,在會話、角色分配,、權(quán)限分配等各個過程中,,根據(jù)實際業(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的所有特點,。這幾個模型共同組成了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)境中被某個實體扮演的實體,。
角色具有以下特點[5]:
?。?)角色可以被扮演和停止扮演,是動態(tài)的概念,;
?。?)角色的定義必須依靠外部的一些其他概念;
?。?)角色依賴于定義它的上下文環(huán)境,;
(4)一個實體可以扮演多個角色,;
?。?)一個實體可以多次扮演一個角色類型,如一個人多次扮演學(xué)生角色,;
?。?)一個角色可以扮演另一種角色,如美國公民角色可以扮演美國總統(tǒng)的角色,;
?。?)一個角色可以同時被多個實體所扮演;
?。?)角色與所依賴的上下文的關(guān)系可能穩(wěn)定也可能不穩(wěn)定,,如教師在睡覺時仍然是教師,而行人在睡覺時即不再是行人,。
2.1.2角色模型簡述
舉一個教師角色的例子來說明此模式:“在X高中,,張三扮演了A教師角色,因此成為了A教師”,,在類的層次上,,可以泛化為“在學(xué)校里,某人可以扮演教師,,因此成為教師”,。圖4所示為這種關(guān)系的描述。
從圖4和舉例描述中,,可以發(fā)現(xiàn)幾個重要的元素:
?。?)上下文:包含一系列的事物,,但可以看為整體的類。
?。?)角色概念:其實例可以被別的實體在某個上下文中扮演,。
(3)角色擁有者:是一種依賴實體的類,,角色扮演者和角色概念實例組合的抽象,。它是整個角色模型的核心。
?。?)潛在扮演者:指可以扮演角色概念實例的一類事物,。
(5)角色扮演事物:在實例層扮演角色的實體
上面的例子進(jìn)一步可泛化為“在上下文中,,潛在扮演者可以扮演角色概念,,因此成為角色擁有者”。在此模型中,,傳統(tǒng)的角色扮演者被分為二部分:一是概念層的潛在扮演者,一是實例層的被扮演事物,。傳統(tǒng)的角色扮演關(guān)系被分為兩種:一個是概念的可扮演,,另一個是實例層的已扮演。傳統(tǒng)的角色被分為兩種:角色概念和角色擁有者,,傳統(tǒng)的角色概念隱藏了這兩者的區(qū)別,,正是產(chǎn)生概念混亂的原因。角色擁有者不允許直接實例化,,因為它依賴于實體,,角色擁有者的類和實例之間是用虛線箭頭連接的,表示繼承關(guān)系,,而不是實線箭頭的實例化,。此模型中,一個角色概念即使不被扮演,,也可以存在實例層,,因為它只依賴于它的上下文,而不是扮演者,。
2.1.3角色分類
按照依賴的上下文不同,,可將角色分為多個類別,最主要的有三個:關(guān)系角色,、組織角色和過程角色,。關(guān)系角色依賴于關(guān)系,如丈夫和妻子,;組織角色依賴于某社會組織,,如信息學(xué)院院長,;過程角色依賴于某個過程,如項目審核人,。在信息系統(tǒng)中,,管理的角色主要包括組織角色和過程角色兩類[6]。
2.2基于角色理論的RBAC96模型改進(jìn)
2.2.1引入上下文環(huán)境
對于同一個角色,,不同扮演者扮演時其權(quán)限往往是不同的,。譬如張三和李四都扮演“項目負(fù)責(zé)人”角色,維護(hù)自己負(fù)責(zé)的項目,,顯然他們所能獲取的數(shù)據(jù)權(quán)限局限于自己的項目,;再譬如“部門負(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)一步的思考,其實權(quán)限如何定位往往決定著整個系統(tǒng)在訪問控制上所能做到的程度,。本小節(jié)主要討論權(quán)限粒度問題以及角色權(quán)限分配過程(PA),。權(quán)限的描述可以分為兩個組成部分:資源與操作,每一條權(quán)限即是兩者的組合,。如“項目”為某一資源,,“添加”為某一操作,則二者的組合即為“添加項目”這一權(quán)限,。
信息系統(tǒng)中的權(quán)限可分為三個部分:界面,、功能、數(shù)據(jù),,三者相輔相成,。例如“某項目負(fù)責(zé)人登錄科技處管理系統(tǒng)查看項目信息”這一事件,便涉及界面,、功能及數(shù)據(jù)三個部分,。首先,界面為該專家提供操作接口,,其次該專家可以通過系統(tǒng)執(zhí)行“查看項目”功能,,最后獲取項目數(shù)據(jù),。如何使用權(quán)限記錄來描述這三者是一個亟待解決的問題。按照權(quán)限為資源與操作的組成模式,,上文“某項目負(fù)責(zé)人登錄科技處管理系統(tǒng)查看項目信息”的情況,,可簡單描述為權(quán)限“查看項目”,其中“查看”為操作,,“項目”為資源,。可見,,這類簡單的權(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ù)庫操作,,非常方便地實現(xiàn)訪問控制,這種方案便是將權(quán)限粒度定位到數(shù)據(jù)庫表的操作級別,。然而對于某些權(quán)限,,這種做法卻是不合適的,如“信息學(xué)院院長審核某項目立項”這種情況,,院長的審核操作可能改動項目信息,、添加審核記錄等,如果沿用數(shù)據(jù)庫操作粒度的權(quán)限,,描述這類權(quán)限顯然很不方便。
由此可以考慮另一種權(quán)限粒度劃分方案:根據(jù)系統(tǒng)業(yè)務(wù)劃分,。如“信息學(xué)院院長審核某項目立項”簡單描述為“審核立項”,,然而在實現(xiàn)這種粗粒度的權(quán)限描述中,因為其與實際業(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),。事實上每個信息系統(tǒng)都有獨(dú)自的約束要求,,本文的改進(jìn)模型沒有將其在模型中表示?;诮巧碚摰腞BAC改進(jìn)模型去掉描述不詳?shù)腞BAC2限制模型,,在角色的概念上做了一定的補(bǔ)充。這樣,,既簡化了RBAC96模型,,又提高了其普適性。
3結(jié)束語
本文在角色理論的基礎(chǔ)上,,對RBAC96模型中的角色和權(quán)限部分進(jìn)行了擴(kuò)展,,并簡化了RBAC3模型中的約束部分,使其具有良好的可擴(kuò)展性,。
參考文獻(xiàn)
?。?] SANDHU R S, COYNE E J, FEINSTEIN H L, et al. Rolebased access control models[J]. Computer, 1996, 29(2):3847.
[2] 賈曉輝, 韓玉民. 基于任務(wù)的RBAC模型設(shè)計與應(yīng)用[J]. 微型機(jī)與應(yīng)用, 2014,,33(2):7881.
?。?] 楊靜, 季新生, 劉彩霞. 基于角色訪問控制的HSS數(shù)據(jù)庫越權(quán)訪問防護(hù)[J]. 電子技術(shù)應(yīng)用, 2011, 37(4):145148.
[4] 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.
?。?] 江利萍, 張再躍. 社會群體角色本體建模及其公理獲取[J]. 計算機(jī)工程, 2012, 38(10):4144.