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