摘 要:針對角色訪問控制的不足,本文提出一種基于本體和規(guī)則的角色訪問控制模型,采用具有形式化描述能力的本體語言O(shè)WL DL和SWRL語言進(jìn)行訪問控制策略的描述和表達(dá),實(shí)現(xiàn)基于規(guī)則的推理,從而彌補(bǔ)傳統(tǒng)的RBAC模型的不足。
關(guān)鍵詞:RBAC;本體;SWRL規(guī)則;SPARQL
中圖分類號:TP393.08
隨著信息系統(tǒng)規(guī)模的日益發(fā)展,對用戶和資源的訪問控制要求也越來越高,訪問控制策略不僅僅是單純的基于用戶身份認(rèn)證,而是建立在用戶和資源屬性特征之上。基于角色的訪問控制(Role-Based Access Control,RBAC)被認(rèn)為是一種普通適用的訪問控制模型,適用于大型組織的統(tǒng)一資源有效的訪問控制機(jī)制。然而,傳統(tǒng)的RBAC模型訪問控制策略中主體、目標(biāo)、角色等實(shí)體關(guān)系復(fù)雜,難于維護(hù);而且實(shí)體和關(guān)系缺少形式化意義,難以處理語義級別的互操作。本文通過對現(xiàn)有基于角色的訪問控制模型進(jìn)行擴(kuò)展和改進(jìn),提出一種基于本體和規(guī)則的模型,采用具有形式化描述能力的本體語言O(shè)WL DL和SWRL作為訪問控制策略的描述語言,在一定程度上彌補(bǔ)了傳統(tǒng)的RBAC模型的不足。
1 相關(guān)理論
1.1 基于角色的訪問控制。1996年,Ravi Sandhu等人提出了RBAC96模型,這是目前應(yīng)用最廣泛的RBAC模型。該模型分為RBAC0、RBAC1、RBAC2和RBAC3四個(gè)層次。其中,RBAC0是最基本的模型,包含RBAC模型的核心部分(用戶、角色、權(quán)限和會話)。
圖1 RBAC96 RBAC0模型圖
RBAC的關(guān)注點(diǎn)在角色和用戶以及權(quán)限間的關(guān)系,稱為用戶委派(User assignment,UA)和權(quán)限委派(Permission assignment,PA)。關(guān)系的左右兩邊都是多對多(Many-to-Many)關(guān)系,即一個(gè)用戶可以擁有多個(gè)角色,一個(gè)角色也可被多個(gè)用戶所擁有。同樣的,一個(gè)角色擁有多個(gè)權(quán)限,一個(gè)權(quán)限能被多個(gè)角色所擁有。用戶建立會話從而對資源進(jìn)行存取,每個(gè)會話 將一個(gè)用戶與它所對應(yīng)的角色集中的一部分建立映射關(guān)系,這個(gè)角色會話子集稱為會話激活的角色集。于是,在這次會話中,用戶可以執(zhí)行的操作就是該會話激活的角色集對應(yīng)的權(quán)限所允許的操作。因此,RBAC模型通過引入角色的概念,實(shí)現(xiàn)了用戶和訪問權(quán)限的邏輯分離,方便了訪問控制安全域的授權(quán)管理,被廣泛應(yīng)用于當(dāng)信息系統(tǒng)的訪問控制模塊,也成為訪問控制領(lǐng)域研究的熱點(diǎn)。
1.2 本體。Studer等在1998年提出,本體(Ontology)是共享概念模型的明確的形式化規(guī)范說明。本體與傳統(tǒng)知識表示的一個(gè)根本區(qū)別就是系統(tǒng)中的概念、屬性、約束條件等內(nèi)容都是“計(jì)算機(jī)可理解的”,并且可以表示隱含(或不明確的)信息,建立人機(jī)之間對信息的共同理解,可以被直接再利用,這樣就能使系統(tǒng)根據(jù)用戶特點(diǎn)智能生成適合用戶的個(gè)性化學(xué)習(xí)路線,并能提高檢索質(zhì)量。
本體語言O(shè)ntology Language是指用于構(gòu)建本體的形式語言。此類語言允許對有關(guān)特定領(lǐng)域的知識加以編碼,包括為處理這些知識提供支持的推理規(guī)則。其中,OWL(Web Ontology Language,網(wǎng)絡(luò)本體語言)是語義網(wǎng)活動(dòng)的一個(gè)組成部分,用來處理資訊的內(nèi)容而不是僅僅向人類呈現(xiàn)信息的應(yīng)用。OWL當(dāng)前已經(jīng)獲得萬維網(wǎng)聯(lián)盟認(rèn)可的,用于編纂本體的知識表達(dá)語言家族。為了滿足不同的表達(dá)能力和計(jì)算效率的需要,OWL提供了3個(gè)表達(dá)能力不同、計(jì)算效率各異的子語言:OWL Lite、OWL DL和OWL Full。
1.3 SWRL。盡管本體語言O(shè)WL能提供令人滿意的語言子集用以支持推理系統(tǒng)實(shí)現(xiàn)其計(jì)算性能,但無法表達(dá)類似于(If…Then…)這樣的基于事實(shí)的推理關(guān)系。因此,SWRL(Semantic Web Rule Language)被提出來以彌補(bǔ)這方面的不足。SWRL基于OWL DL和OWL Lite,它采用了基于Horn子句的Rule ML的一個(gè)子集,SWRL中支持的Rule ML子集僅僅包含一元和二元謂語。在編寫SWRL規(guī)則時(shí),要遵循W3C指定的SWRL規(guī)范,其規(guī)則格式如下:
antecedent→consequent
其中antecedent表示規(guī)則Body,consequent表示規(guī)則Head。通過使用SWRL規(guī)則,可以容易地?cái)嘌詫傩灾g更為復(fù)雜的關(guān)系,使得屬性更具有清晰的語義。
2 基于本體和規(guī)則的角色訪問控制模型
2.1 構(gòu)建本體模型。本文使用OWL的子語言O(shè)WL DL對基于角色的訪問控制模型進(jìn)行形式化描述,構(gòu)建其本體模型。利用OWL DL為模型包含的每種實(shí)體元素建立統(tǒng)一的表示結(jié)構(gòu)。實(shí)體的屬性,實(shí)體之間的關(guān)系、實(shí)體與屬性之間的關(guān)系、屬性之間的關(guān)系等都可被表示為領(lǐng)域共享知識,并可以進(jìn)行有效的語法和語義檢查,從而可以方便的利用這些知識和元素表示結(jié)構(gòu)來定義各種授權(quán)規(guī)則。
圖2 實(shí)體層次關(guān)系圖
圖3 訪問控制策略實(shí)現(xiàn)圖
基于本體的模型設(shè)計(jì)最終目的是實(shí)現(xiàn)訪問控制,策略的核心思想表述為主體(Subject)對目標(biāo)(Object)可以執(zhí)行的動(dòng)作(Action)。在模型中將三個(gè)實(shí)體之間的關(guān)系描述為一個(gè)陳述:主體(Subject)具有的權(quán)限(Permission),并將權(quán)限(Permission)描述為一個(gè)操作(operate),即對指定目標(biāo)對象(Object)所具有的動(dòng)作(Action),如圖3所所示。
2.2 構(gòu)建SWRL規(guī)則。鑒于OWL語言的不足,本文引入語義規(guī)則語言SWRL,結(jié)合了OWL子句和描述邏輯的規(guī)則描述語言可表達(dá)用戶自定義規(guī)則,作為本體的表達(dá)和推理能力的補(bǔ)充。
根據(jù)訪問控制本體模型的需要,建立了以下規(guī)則推理:
Rule1:Object(?o)->baseObject(?o,?o)
Rule2:Action(?a)->baseAction(?o,?o)
Rule1與Rule2規(guī)則表達(dá)動(dòng)作(Action)與目標(biāo)(Object)的繼承的自反性。
Rule3:Action(?a),Object(?o),Permission(?p),ownAction(?p,?a),ownActionObject(?p,?o)->operate(?a,?o)
Rule3規(guī)則根據(jù)一個(gè)的權(quán)限(Permission)定義的,推理出一個(gè)操作(operate)的定義,用于描述一個(gè)訪問控制規(guī)則。
Rule4:Permission(?p),Role(?r),User(?u),ownPermission(?r,?p),ownUser(?r, ?u)->ownPermission(?u,?p)
Rule4規(guī)則說明了用戶、角色與權(quán)限之間的蘊(yùn)涵關(guān)系,即用戶可以通過角色的指派,獲得角色所指派的權(quán)限。
Rule5:Permission(?p),Role(?r1),Role(?r2),ownPermission(?r1,?p),baseRole(?r2,?r1)->ownPermission(?r2,?p)
Rule5規(guī)則說明了角色的繼承關(guān)系與權(quán)限之間的蘊(yùn)涵關(guān)系,即角色可以隱式地繼續(xù)上一級角色的權(quán)限。
通過SWRL規(guī)則,可以通過推理機(jī)有效地實(shí)現(xiàn)用戶、角色與權(quán)限之間繼承和傳遞包蘊(yùn)涵的隱式關(guān)系,簡化系統(tǒng)內(nèi)部實(shí)體之間的語義到操作問題。
2.3 SPARQL查詢。通過OWL和SWRL定義了本體模型后,使用SPARQL進(jìn)行訪問控制的各個(gè)要素的查詢,并進(jìn)行認(rèn)證、授權(quán)和控制。在Protégé中可直接使用SPARQL語句執(zhí)行查詢操作,以本文所使用的應(yīng)用系統(tǒng)為例,下面分別對用戶具有的角色、角色具有的權(quán)限和用戶具有的權(quán)限進(jìn)行查詢。下面以角色授權(quán)查詢?yōu)槔ú樵僆d為admin的角色具有的全部權(quán)限):
SELECT ?role?p ?action ?object
WHERE{
?role rdf:type my:Role.
?role my:hasId \"admin\"^^xsd:string.
?role my:ownPermission ?p.
?p my:ownAction ?a.
?p my:ownActionObject ?o.
?a my:operate ?o.
?a my:baseAction ?action.
?o my:baseObject ?object
}
3 結(jié)束語
本文提出了一種基于本體和規(guī)則的角色訪問控制模型,并對其進(jìn)行了詳細(xì)的闡述:利用本體語言O(shè)WL DL建立本體知識庫來形式化表示模型,將模型中的實(shí)體和關(guān)系定義為本體中的概念和屬性,并利用SWRL語言形式化表示本體中屬性之間的復(fù)雜關(guān)系,定義訪問控制策略規(guī)則;SWRL能夠充分利用本體知識庫中定義的類、屬性和實(shí)例,實(shí)現(xiàn)基于規(guī)則的推理,通過SPARQL獲取模型中的推理信息。
參考文獻(xiàn):
[1]Pascal Hitzler,Markus Krotszsch,Sebastian Rudolph.York Sure.Foundations of Semantic Web Technologies[M].北京:清華大學(xué)出版社(第1版),2012.
[2]陸陽,肖軍模,劉晶.基于角色的對OWL本體的訪問控制模型[J].計(jì)算機(jī)工程與應(yīng)用,2008(30).
[3]張雷,向宏,胡海波.基于語義的RBAC模型權(quán)限沖突檢測方法[J].計(jì)算機(jī)工程與應(yīng)用,2011(26).
作者簡介:羅群(1981-),女,四川內(nèi)江人,教師,講師,碩士學(xué)位,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。
作者單位:重慶科創(chuàng)職業(yè)學(xué)院,重慶永川 402160;重慶市電力公司,重慶長壽 401220