王智輝,艾中良,王祥根,唐 穩(wěn)
(華北計算技術(shù)研究所,北京100083)
商業(yè)世界的任務(wù)具有多級的安全特性[1],出于保護(hù)商業(yè)秘密的動機(jī),商業(yè)活動必須根據(jù)雇員的工作等級等條件限制其對資源的訪問,以保護(hù)多等級多類別的數(shù)據(jù)。多級環(huán)境中數(shù)據(jù)、人員都具有安全級別,在用戶訪問數(shù)據(jù)時依據(jù)這些等級進(jìn)行不同的處理。
訪問控制技術(shù)是一種對資源訪問進(jìn)行限制的安全方法,它根據(jù)一定的安全策略限制用戶對關(guān)鍵資源的訪問。其中基于角色的訪問控制RBAC(role based access control)是一種強(qiáng)制訪問控制,一般應(yīng)用于用戶分級的環(huán)境[2]。但是它與多級環(huán)境下傳統(tǒng)的強(qiáng)制訪問控制不同,并不是針對多級安全專門提出的,在商業(yè)多級環(huán)境中可能造成敏感信息的泄露。
為了解決多級環(huán)境中的信息安全的問題,安全研究者提出了一些多級安全模型,其中最經(jīng)典的是1973年由David Elliott Bell和 Len LaPadula為美國國防部提出的 BLP(Bell-LaPadula)模型。它是第一個可以用數(shù)學(xué)方法證明系統(tǒng)安全性的模型[3],嚴(yán)格依賴密級進(jìn)行授權(quán)判決。在大型的商業(yè)機(jī)構(gòu)中,很難嚴(yán)格按照BLP模型為用戶劃分安全等級,因此BLP的可用性受到了限制。
語義技術(shù)是一種新興的知識表示技術(shù),允許信息的意義及其之間的關(guān)聯(lián)能夠在運(yùn)行期間被獲得和處理[4],使得軟件理解商業(yè)系統(tǒng)中用戶、資源的等級關(guān)系,使用用戶、資源的信息進(jìn)行推理成為可能。隨著語義技術(shù)的興起,國內(nèi)外都有安全研究者提出采用語義技術(shù)進(jìn)行訪問控制的方法[5][6]。但是這些方法并不是針對多級環(huán)境的特點(diǎn)提出的,不具有多級安全的特性。本文所解決的問題,就是利用語義技術(shù)的描述和推理能力,根據(jù)系統(tǒng)中用戶隸屬關(guān)系、資源擁有關(guān)系等已有信息,結(jié)合RBAC模型和BLP模型的安全特性,在不損失系統(tǒng)安全性的前提下,實現(xiàn)多級環(huán)境中用戶權(quán)限的自動分配,并按照這種權(quán)限進(jìn)行訪問控制。
商業(yè)多級環(huán)境最大的特點(diǎn)之一便是系統(tǒng)中的用戶存在上下級隸屬關(guān)系,這種隸屬關(guān)系隱式地表達(dá)了用戶安全級別的高低關(guān)系。因此,在商業(yè)系統(tǒng)中可以采用多級環(huán)境中已經(jīng)存在的業(yè)務(wù)角色間的上下級關(guān)系作為訪問控制的依據(jù),實現(xiàn)安全級別的動態(tài)判定。具體方法是為用戶指定角色,為文件等資源指定所有者。利用角色間的上下級關(guān)系作為安全級別判斷的依據(jù),使得角色在角色繼承關(guān)系中的級別可以代表用戶在多級系統(tǒng)中的安全級別;資源的所有者的安全級別代表資源在多級系統(tǒng)中的安全級別。在訪問控制時,將角色繼承關(guān)系作為判斷安全級別關(guān)系的依據(jù),對環(huán)境中的用戶進(jìn)行符合*-特性和簡單安全特性的基于角色的授權(quán)。
實際的商業(yè)環(huán)境十分復(fù)雜,不同環(huán)境中用戶的角色等級具有動態(tài)性,同一等級的角色可能有不同的描述。為了對商業(yè)環(huán)境中的多級安全問題更有針對性,本文對商業(yè)多級環(huán)境進(jìn)行了抽象,如圖1所示。
圖1 抽象的多級環(huán)境
環(huán)境中的每個用戶都分配了一個角色,角色間具有繼承關(guān)系。需要為環(huán)境中的資源顯式的指定其所有者和所有者對資源的可以進(jìn)行的操作。為了保證系統(tǒng)的安全性,本文選取BLP模型中可能造成敏感信息泄露的讀和寫操作來研究。
抽象后的多級環(huán)境具有以下特性:
(1)每個資源屬于且只屬于一個所有者,不存在多個用戶共同擁有一個資源的情況;
(2)每個用戶屬于且只屬于一個角色,不存在一個用戶屬于多個角色的情況;
第一個特性避免了資源屬于多個用戶,資源的安全級別無法確定的情況;第二個特性避免了用戶屬于多個角色,用戶的權(quán)限無法確定的情況,這也是對RBAC做出的靜態(tài)職權(quán)分離的約束。
本體 (ontology)是一種構(gòu)建知識模型的技術(shù),它提供對某領(lǐng)域知識的共同理解,確定該領(lǐng)域內(nèi)共同認(rèn)可的術(shù)語,明確地給出這些術(shù)語和術(shù)語之間相互關(guān)系的定義[7],可以用它形式化的描述RBAC模型[8]。
基于OWL DL(web ontology language with description logics)語言的強(qiáng)表達(dá)能力和可計算性[9],本文選擇OWL DL作為本體描述語言,對基于角色的訪問控制方法進(jìn)行建模。RBAC模型的本體描述如圖2所示。
圖2 RBAC的本體描述
該模型中各類的定義如下:
類定義1 Subject:主體,訪問控制請求的發(fā)起方,一般為系統(tǒng)中的用戶;
類定義2 Object:客體,訪問控制請求的被訪問方,一般為系統(tǒng)中的資源;
類定義3 Role:角色,RBAC中系統(tǒng)會給每個用戶分配角色,角色具有繼承關(guān)系;
類定義4 Action:行為,表示訪問控制請求中主體請求對客體進(jìn)行的操作;
類定義5 Request:請求,一個請求會關(guān)聯(lián)一個形如<Object,Action>的二元組,表示對客體Object進(jìn)行操作Action的某次訪問控制請求。
其中角色既可以定義為本體中的類,也可以定義為本體中的值。我們選擇了將角色定義為類的方式創(chuàng)建RBAC的模型。將角色定義為值,雖然比較簡單精確,但是失去了類之間繼承、互斥等復(fù)雜關(guān)系,因此不能充分利用本體的可計算性[10]。在該本體模型中還通過屬性定義了RBAC中各個概念之間的關(guān)系,定義如下:
屬性定義1 subRoleOf(R1,R2):定義域為Subject,值域為Subject,含義是定義域的角色R1繼承了低等級的角色R2的權(quán)限,該屬性是一個傳遞性屬性,即subRoleOf(R1,R2)成立且subRoleOf(R2,R3)成立,可以推出subRoleOf(R1,R3)成立;
屬性定義2 hasRole(S,R):定義域為Subject,值域為Role,含義是給主體S分配了角色R;
屬性定義3 hasObject(R’,O):定義域為Request,值域為Object,表示某次訪問控制的客體是O;
屬性定義4 hasAction(R’,A):定義域為 Request,值域為Action,表示某次訪問控制的主體對客體要進(jìn)行的操作是A;
屬性定義5/6 hasPermission(R,R’)/denyPermission(R,R’):定義域為Role,值域為Request,hasPermission表示了某次訪問控制中允許角色R對Request中的客體O進(jìn)行行為為A的操作,denyPermission表示了某次訪問控制中禁止角色R對Request中的客體O進(jìn)行行為為A的操作;
屬性定義 7/8 hasPrevilege(S,R’)/denyPrevilege(S,R’):定義域為 S,值域為 Request,hasPrevilege表示了某次訪問控制中允許主體S對Request中的客體O進(jìn)行行為為A的操作,denyPrevilege表示了某次訪問控制中禁止主體S對Request中的客體O進(jìn)行行為為A的操作;
屬性定義9 hasOwner(O,S):定義域為Object,值域為Subject,含義為資源O的所有者為主體S;
屬性定義10 hasHierarchy(O,R):定義域為Object,值域為Role,含義為資源O的所有者對應(yīng)的角色為R,R的等級可以代表資源O的等級。
為了能夠利用本體的可計算性,實現(xiàn)角色繼承的自動推理,達(dá)到對多級環(huán)境下的資源進(jìn)行訪問控制的目的,本文創(chuàng)建了適用于1.2小節(jié)中建立的本體模型的6條推理規(guī)則,如表1所示。
表1 規(guī)則描述
規(guī)則a對文件安全級別的推理規(guī)則進(jìn)行描述:如果給文件x的所有者y分配了角色z,則文件y就具有z對應(yīng)的安全級別;
在對角色分配權(quán)限時,分配權(quán)限的方法必須符合BLP模型的簡單安全特性和*-安全特性,規(guī)則b的含義是高層次的角色對低層次角色的用戶所有的文件沒有可寫的權(quán)限,規(guī)則c的含義是低層次的角色對高層次角色的用戶所有的文件沒有可讀的權(quán)限;
規(guī)則d描述了基于角色的訪問控制中角色繼承的推理規(guī)則:高層次的角色繼承了低層次的角色具有的所有權(quán)限;
角色會向主體傳播權(quán)限,規(guī)則e的含義是如果禁止角色x對某個資源進(jìn)行某種操作,則進(jìn)行授權(quán)時禁止具有角色x的用戶z對該資源進(jìn)行這種操作;規(guī)則f含義是如果允許角色x對某個資源進(jìn)行某種操作,則進(jìn)行授權(quán)時允許具有角色x的用戶z對該資源進(jìn)行這種操作。
雖然本體語言O(shè)WL能支持推理系統(tǒng)實現(xiàn)其計算性能,但是無法表達(dá)很多基于事實的推理關(guān)系。因此,本文選擇SWRL(semantic web rule language)[11]作為規(guī)則描述語言。
使用1.2小節(jié)中的訪問控制本體模型對1.1小節(jié)中描述的商業(yè)環(huán)境進(jìn)行描述后,使用本體推理工具Racer按照1.3小節(jié)中提到的規(guī)則進(jìn)行推理,得到語義沖突。
沖突1 Manager角色對Staff和Director角色的文件既允許寫操作又禁止寫操作;
沖突2 Director角色對Staff角色的文件既允許寫操作又禁止寫操作。
產(chǎn)生語義沖突的原因是因為由于RBAC中低等級角色的所有權(quán)限都會向高等級的角色傳播,因此高等級的角色會繼承低等級角色用戶對屬于自己的文件具有的寫權(quán)限;而BLP中高等級的角色對低等級的角色用戶的文件不具有寫權(quán)限。因此如果文件的所有者為擁有低等級角色的用戶,當(dāng)擁有高等級角色的用戶請求對其進(jìn)行寫操作的時候,推理引擎會得到語義沖突。
本文使用protégé軟件進(jìn)行本體的開發(fā),使用Jena語義工具包進(jìn)行編程,實現(xiàn)了基于角色和本體的訪問控制系統(tǒng),系統(tǒng)設(shè)計如圖3所示。
圖3 基于語義和本體的訪問控制系統(tǒng)設(shè)計
(1)語義描述層包括實體數(shù)據(jù)層和RBAC本體規(guī)則描述文件兩部分。實體數(shù)據(jù)層包含了記錄環(huán)境中所有實體的基本信息的數(shù)據(jù)庫,這些數(shù)據(jù)庫記錄了資源和用戶、用戶和角色等這些訪問控制實體間的映射關(guān)系和角色間的繼承關(guān)系等,是系統(tǒng)進(jìn)行訪問控制的依據(jù);RBAC本體規(guī)則描述文件包含了由protégé生成的用OWL DL描述的RBAC本體模型和用SWRL語言描述的RBAC本體模型的推理規(guī)則;
(2)本體推理層中rdf-數(shù)據(jù)記錄轉(zhuǎn)換模塊完成數(shù)據(jù)記錄RBAC本體中類的實例的轉(zhuǎn)化,這些實例用rdf來描述,形成描述多級環(huán)境中所有實體的一個完整的本體文件;規(guī)則轉(zhuǎn)化模塊完成SWRL語言描述的規(guī)則到Jena支持的規(guī)則之間的格式轉(zhuǎn)換。這兩個模塊的輸出作為訪問控制矩陣生成模塊的輸入,使用Jena的本體推理引擎對多級環(huán)境的本體文件進(jìn)行推理,得到訪問控制矩陣;
(3)訪問控制調(diào)用層包含策略判決接口,策略判決接口輸入為形如<Subject,Resource,Action>的三元組,查詢訪問控制矩陣后,輸出為授權(quán)斷言,斷言中包含了本次判決的結(jié)果,策略判決的流程如圖4所示。
圖4 策略判決接口調(diào)用流程
系統(tǒng)中的每個角色對應(yīng)一個訪問控制矩陣,矩陣中的兩個維度分別表示訪問控制的客體和行為,矩陣中每個<Object,Action>坐標(biāo)位置都有值表示角色對資源的操作是允許 (permit)還是拒絕 (deny)。
1.4 小節(jié)中提到BLP模型在和RBAC模型結(jié)合的時候會產(chǎn)生語義沖突,為了保證敏感信息的安全性,規(guī)定denyPermission的優(yōu)先級高于hasPermission,并根據(jù)這個規(guī)則設(shè)計訪問控制矩陣的生成流程如圖5所示。使用圖中描述的訪問控制矩陣的生成流程,可以保證denyPermission的推理結(jié)果會覆蓋hasPermission的推理結(jié)果,最終denyPermission會起效,消除語義沖突。
實體信息數(shù)據(jù)庫中存儲的用戶和資源的詳細(xì)信息清單如表2所示,用戶對資源具有的初始操作權(quán)限如表3所示。用戶Manager_Sun調(diào)用策略判決接口,輸入判決請求<Manager_Sun,Object_Staff,Write>。
圖5 訪問控制矩陣生成
系統(tǒng)運(yùn)行過程中會形成中間文件,記錄訪問控制矩陣推導(dǎo)的過程。推導(dǎo)結(jié)束后訪問控制矩陣形式如圖6所示,比較圖6與表2的權(quán)限,可以發(fā)現(xiàn)高等級的角色在不違反BLP的簡單安全特性和*-安全特性的前提下,自動繼承了低等級角色的權(quán)限,系統(tǒng)安全地實現(xiàn)了權(quán)限的自動分配。
系統(tǒng)查詢生成的訪問控制矩陣后,會返回判決斷言,斷言中包括了本次判決的結(jié)果:Deny。這個結(jié)果符合BLP的*-特性,保證可敏感信息的安全性,是一個合法的判決。
綜上所述,本系統(tǒng)初步實現(xiàn)了了訪問控制權(quán)限的自動分配,且分配的結(jié)果符合BLP模型的安全特性,是符合多級環(huán)境下安全要求的訪問控制系統(tǒng)。
本文提出了多級環(huán)境下基于角色和本體的訪問控制的方法,通過對商業(yè)多級環(huán)境進(jìn)行抽象,提出了一種多級環(huán)境下的新的訪問控制方法。該方法結(jié)合了RBAC模型角色權(quán)限繼承的特點(diǎn)和BLP模型的安全特性,實現(xiàn)了在多級環(huán)境中自動利用現(xiàn)有信息對敏感資源進(jìn)行訪問控制。
表2 系統(tǒng)實體信息清單
表3 初始訪問權(quán)限列表
雖然本文中提出的多級環(huán)境的模型可以滿足當(dāng)前工作的需要,但真實環(huán)境下的角色分配仍存在很多特殊情況,該模型不能滿足角色間存在復(fù)雜的繼承關(guān)系或者用戶和角色存在一對多映射或多對多映射等情況,下一步工作中需要對多級環(huán)境模型作進(jìn)一步完善。另外,系統(tǒng)運(yùn)行時語義推理的時間較長,訪問控制矩陣生成模塊的效率問題也將是下一步研究工作的重點(diǎn)。今后將通過研究推理算法,改進(jìn)訪問控制的本體模型和策略判決的流程,并且引入并行化技術(shù),以解決系統(tǒng)中存在的效率問題。
圖6 訪問控制矩陣輸出結(jié)果
[1]MENG Xiangyi.Research of multilevel security network [D].Xi'an:Xi'an Electronic And Technology University,2008(in Chinese).[孟祥義.多級安全網(wǎng)絡(luò)研究 [D].西安:西安電子科技大學(xué),2008.]
[2]LI Dongdong,TANG Jianlong.Research and implementation of an ontology-based privilege management system[J].Computer Engineering,2005,31(13):43-45(in Chinese).[李棟棟,譚建龍.基于本體的權(quán)限管理系統(tǒng)的研究與實現(xiàn) [J].計算機(jī)工程,2005,31(13):43-45.]
[3]YU Sheng,ZHU Lu,SHENG Changxiang.Multilevel security model[J].Computer Engineering and Design,2012,31(13):2939-2950(in Chinese).[余昇,祝璐,沈昌祥.多級安全模型 [J].計算機(jī)工程與設(shè)計,2012,31(13):2939-2950.]
[4]CHEN JIanwei.Research on access control technology based on semantic in integration of information[D].Beijing:North China E-lectric Power University,2011(in Chinese).[陳建偉.基于語義的訪問控制技術(shù)在信息整合中的研究 [D].北京:華北電力大學(xué),2011.]
[5]Amirreza Masoumzadeh,James Joshi.OSNAC:An ontology-based access control model for social networking systems[C].IEEE International Conference on Privacy,Security,Risk and Trust:SACMAT,2010:751-759.
[6]ZHANG Lei.Research and application on ontology and rule based RBACmodel[D].Chongqing:Chongqing University,2010(in Chinese).[張雷.基于本體和規(guī)則的RBAC模型研究與應(yīng)用[D].重慶:重慶大學(xué),2010.]
[7]LIRuixuan,ZHAOZhanxi,WENKunmei,et al.Ontology-based Integration of Multi-domain Access Control Policies[J].Micro Computer System,2007,28(9):1710-1714(in Chinese).[李瑞軒,趙戰(zhàn)西,文坤梅,等.基于本體的多域訪問控制策略集成研究 [J].小型微型計算機(jī)系統(tǒng),2007,28(9):1710-1714.]
[8]LU Yang,XIAOJunmo,LIU Jing.Role-based access control model for OWL ontology[J].Computer Engineering and Application,2008,44(30):121-124(in Chinese).[陸陽,肖軍模,劉晶.基于角色的OWL本體的訪問控制模型[J].計算機(jī)工程與應(yīng)用,2008,44(30):121-124.]
[9]Dean M,Schreiber G.OWL web ontology language guide[EB/OL].[2009-11-12].http://www.w3.org/TR/owl-guide.
[10]Finin T,Joshi A,Kagal L,et al.ROWLBAC-representing role based access control in OWL[C]//Estes Park,Colorado,USA:SACMAT,2008:73-82.
[11]SWRL:A semantic rule language[EB/OL].[2004-05-21].http://wwww3.org/Submission/SWRL.