葛 莉
(渭南師范學(xué)院, 陜西 渭南 714000)
在我們今天所處的互聯(lián)網(wǎng)和協(xié)同時(shí)代,信息和知識(shí)交換是計(jì)算技術(shù)的一個(gè)關(guān)鍵要素。本體是關(guān)于存在及真實(shí)世界的任何領(lǐng)域中的對(duì)象、性質(zhì)、時(shí)間、過(guò)程和關(guān)系的種類和結(jié)構(gòu)的學(xué)說(shuō)[1]。近年來(lái),隨著信息化的不斷發(fā)展,本體已成為知識(shí)工程、信息檢索與獲取、知識(shí)表示、軟件工程、自然語(yǔ)言處理等多個(gè)領(lǐng)域的熱門研究話題[2]。它提供了一個(gè)為用戶和應(yīng)用程序交互的共享知識(shí)和領(lǐng)域。因此在許多信息交流領(lǐng)域,特別是安全領(lǐng)域發(fā)揮著重要的作用。本體在確保信息交換間語(yǔ)義等價(jià)的同時(shí)也避免了信息交換的噪音(無(wú)用信息)或沉默(相關(guān)信息的遺漏)。
P2P技術(shù)多點(diǎn)共享式文件傳輸,這種方式可以有效地均衡上下行線路的數(shù)據(jù)量,同時(shí)每個(gè)客戶端又可以部分作為服務(wù)器,減輕了服務(wù)器的壓力[3]。但事實(shí)上,在協(xié)同環(huán)境下(P2P或Web Service)的訪問(wèn)控制無(wú)法在使用不同安全策略的代理間實(shí)現(xiàn)語(yǔ)義兼容。例如,如果是基于角色的訪問(wèn)控制策略,則決策者需要判斷在組織A中角色“作者”和組織B中角色“編輯”是否是一樣的,以便用來(lái)分配相同或不同的訪問(wèn)權(quán)限是非常重要的。 因此,本文通過(guò)在P2P網(wǎng)絡(luò)中對(duì)OrBAC訪問(wèn)控制模型的研究來(lái)實(shí)現(xiàn)語(yǔ)義的兼容性。
1996 年, 由Ravi Sandhu 提出了基于角色的訪問(wèn)控制(RBAC96) 模型, 將權(quán)限和角色聯(lián)系起來(lái), 用戶不直接被授予權(quán)限, 而是通過(guò)被賦予某種角色,間接得此角色所擁有的權(quán)限, 極大簡(jiǎn)化了對(duì)權(quán)限的管理[4-5], 尤其在網(wǎng)絡(luò)環(huán)境中, 可有效管理大量的訪問(wèn)權(quán)限[6]。2001 年, Zhang 提出了面向?qū)ο蟮腞BAC(ORBAC) 模型, 將模型中的用戶、角色、權(quán)限等都作為對(duì)象來(lái)處理, 更接近現(xiàn)實(shí)世界, 并對(duì)職責(zé)分離進(jìn)行了討論[7]。OrBAC是一種基于角色和組織的訪問(wèn)控制模型。OrBAC通過(guò)使用8項(xiàng)基本實(shí)體:組織,角色,活動(dòng),視圖,主體,行為,客體和背景,多個(gè)組織可同時(shí)定義自己的訪問(wèn)控制策略[8]。
在Orbac模型中,允許、禁止和職責(zé)的關(guān)系用來(lái)匹配組織,角色,視圖,活動(dòng)和背景之間的關(guān)系。Permission (org, role, activity, view, context)是指組織org允許角色role在上下文context背景下在視圖view中執(zhí)行活動(dòng)activity。Interdiction (org, role, activity, view, context) 和Obligation (org, role, activity, view, context)的定義也是類似的。允許,職責(zé)和禁止是以事實(shí)的形式引入的。他們不直接與用戶,行為和客體關(guān)聯(lián),而與其抽象角色,活動(dòng)和視圖關(guān)聯(lián)。
然而,在實(shí)踐中,應(yīng)用程序所關(guān)心的授予給主體的權(quán)限(允許或禁止、職責(zé)),是用來(lái)在客體上執(zhí)行行為。為了描述實(shí)現(xiàn)主體在客體上的行為,定義關(guān)系Is_permitted,Is_prohibited和Is_obligated。Is_permitted(subject, action , object)表明允許主體在客體上執(zhí)行行為。Is_prohibited和Is_obligated的定義是類似的。需要注意的是Is_permitted; Is_prohibited Is_obligated也可以用來(lái)表達(dá)安全策略Permission,Interdiction和Obligation外的一些異常。
權(quán)限是對(duì)計(jì)算機(jī)系統(tǒng)中被保護(hù)數(shù)據(jù)或資源的訪問(wèn)許可[9]。權(quán)限的繼承用于根據(jù)角色的等級(jí)傳遞權(quán)限。如:specialized role(org,r1,r2)表明r1比r2更專業(yè)的。senior_role(org,r1,r2)表明r1是一個(gè)高于r2的角色。sub activity(org,a1,a2)表明a1是a2的一個(gè)子活動(dòng)。同樣,一個(gè)組織的視圖、活動(dòng)是同具體流程中抽象出來(lái),可以表達(dá)特定層次上意義的過(guò)程抽象[10]。可以通過(guò)專業(yè)化的等級(jí)對(duì)它們進(jìn)行管理。
約束集不能包含相同的實(shí)例。Separated_role(org, role1, role2)是指所有角色1的實(shí)例不能出現(xiàn)在角色2中。同樣的,活動(dòng)、視圖和上下文的約束為:Separated_activity (org, activity1, activity2) ,Separated_view (org, view1, view2)和 Separated_context (org, context1, context2) 。
圖1 OrBAC訪問(wèn)控制模型
在OrBAC中,定義基本謂詞如下。與組織中分配抽象實(shí)體的有關(guān)的謂詞(見(jiàn)表1)。與定義上下文相關(guān)的謂詞(見(jiàn)表2)。與抽象關(guān)系相關(guān)的謂詞(見(jiàn)表3)。與權(quán)限、禁止相關(guān)的謂詞(見(jiàn)表4)。
表1 與實(shí)體相關(guān)的謂詞
表2 與上下文相關(guān)的謂詞
通過(guò)分析的OrBAC的基本關(guān)系可以看出,有四個(gè)謂詞用于創(chuàng)建本體。這些關(guān)系在組織間是兼容的。兼容性用來(lái)解決兩個(gè)主要問(wèn)題:類似語(yǔ)義可以關(guān)聯(lián)不同的抽象實(shí)體的分配,不同語(yǔ)義可以關(guān)聯(lián)相似實(shí)體的分配[11]。其他關(guān)系都是關(guān)于O2O(Object-to-Object,對(duì)象到對(duì)象型)的。由于Orbac有制約原則的關(guān)系O2O與互操作性相關(guān)。 OrBAC安全政策的范圍僅限于組織內(nèi)。因此,需要通過(guò)O2O使用組織的虛擬原則來(lái)擴(kuò)展OrBAC。role-compatible(A2B, roleA, roleB)是指在組織A2B中角色A和角色B具有相同的含義。activity-compatible(A2B, activityA, activityB),view-compatible(A2B, viewA, viewB) ,view-compatible(A2B, viewA, viewB),context-compatible(A2B, contextA, contextB) 的定義也是類似的。
表3 與抽象關(guān)系相關(guān)的謂詞
表4 與權(quán)限、禁止相關(guān)的謂詞
現(xiàn)有和可獲取的用來(lái)構(gòu)建本體論的編輯器主要有:Protégé,Ontolingua,Chim?ra,OilED 和OntoEdit。從功能上Protégé之所以成為較為成功的本體編輯工具,在于它有一套完善的管理機(jī)制[12]。因?yàn)?,它是用戶最友好的和擁有最多文檔的工具之一,方便提供給非專業(yè)人士,且該軟件使人們有可能以和在Windows資源管理器中訪問(wèn)實(shí)例同樣的方式來(lái)訪問(wèn)文件,軟件Protégé也是免費(fèi)的,可以被任何希望使用本體的用戶下載。此外,該軟件允許創(chuàng)建OWL文件。 OWL是萬(wàn)維網(wǎng)聯(lián)盟在總結(jié)以往本體語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn)的基礎(chǔ)上提出的一種創(chuàng)造本體的語(yǔ)言[13]。即使沒(méi)有軟件Protégé,也可以通過(guò)這種方式來(lái)檢索本體。并且該語(yǔ)言也可以用于顯示網(wǎng)頁(yè)上的本體。
Protégé允許在給定領(lǐng)域建立本體,定義數(shù)據(jù)錄入的格式,并通過(guò)這些格式以本體實(shí)例的方式來(lái)獲取數(shù)據(jù)。Protégé是一個(gè)Java庫(kù),可以擴(kuò)展到創(chuàng)建實(shí)際應(yīng)用中使用推理引擎的知識(shí)庫(kù),通過(guò)推理規(guī)則推理和演繹的本體論的實(shí)例的新的實(shí)例和本體(元推理)。
本體在Protégé中由個(gè)體,類和屬性構(gòu)成。個(gè)體代表我們希望表達(dá)的域中的客體。屬性是將個(gè)體結(jié)合起來(lái)的二元關(guān)系。類又叫做概念,表示個(gè)體的集合,作為本體的骨架支撐起本體的所有結(jié)構(gòu)[14]。在Protégé中,主要有兩種類型的屬性:客體屬性(Object properties)和數(shù)據(jù)類型屬性(Datatype properties)??腕w屬性連接個(gè)體至個(gè)體。數(shù)據(jù)類型屬性將個(gè)體與XML框架的據(jù)類型值或RDF字符結(jié)合起來(lái)。根據(jù)需要,本文使用客體屬性。
本文利用OWL來(lái)定義OrBAC的實(shí)體和關(guān)系。預(yù)先定義的實(shí)體作為類,預(yù)先定義的謂詞作為關(guān)系,而預(yù)先定義的實(shí)例作為個(gè)體。
2.2.1策略
本體是分類(結(jié)構(gòu))和關(guān)系的結(jié)合。在實(shí)現(xiàn)結(jié)構(gòu)之前,必須完成本體關(guān)系的定義。首先需要在Protégé中創(chuàng)建類(實(shí)體)或子類。但需要注意如果必要要將類置為不相交的[14]。
在Protégé中首先定義兩種不同的安全策略的組織。每種策略包括主體,客體,行為和組織。在每個(gè)組織中,有活動(dòng),視圖,角色,背景和不同的安全策略,也有一個(gè)子類subOrg繼承該組織相同的屬性。圖2顯示了在Protégé中組織的一種安全策略。
圖2 第一個(gè)版本的本體結(jié)構(gòu)
第一種策略是相同級(jí)別不分結(jié)構(gòu)的。這是一種直觀的方法,可用于代理在P2P網(wǎng)絡(luò)中的協(xié)作。為了進(jìn)行比較,可能需要遍歷結(jié)構(gòu)中所有的元素直至發(fā)現(xiàn)所尋找的元素。本文提出的第二種策略的實(shí)現(xiàn)更為快速和邏輯。
在第二種策略中,抽象類都放置在releventEntityA中。允許和禁止都放置在securityRuleA中。如果系統(tǒng)要比較角色,那么系統(tǒng)明確不會(huì)在securityRuleA類中尋找實(shí)體。但由于Protégé的類和子類間存在在創(chuàng)建一個(gè)子類relevantEntityA時(shí),會(huì)默認(rèn)創(chuàng)建一個(gè)orgA hasclassof sub_classe relevantEntityA這樣一個(gè)問(wèn)題,這是不符合邏輯的,但它不能被刪除。在這種情況下,本文提出了第三種策略。見(jiàn)圖3。
圖3 最終版本
此策略高度結(jié)構(gòu)化。 ComponentPolicy系統(tǒng)包含三個(gè)部分:entity,relationAmongEntity及securityRule。在entity中的實(shí)體被分為三個(gè)部分:abstractEntity,concreteEntity及org。abstractEntity中包含所有類型的抽象實(shí)體。concreteEntity中包含所有類型的具體實(shí)體。在relationAmongEntity中定義實(shí)體間的關(guān)系。包括relevantEntity和它的四個(gè)子類:relevantActivity,relevantContext,relevantRole及relevantView。
選擇此種策略是因?yàn)樗嵌鄬哟蔚?,更多的整合使得找到一個(gè)實(shí)體更加容易。另外,實(shí)體不再由組織構(gòu)建,而更多地對(duì)應(yīng)于在架構(gòu)兼容性下如何使用實(shí)體。
2.2.2關(guān)系和屬性
在確定策略之后,就需要使用Protégé的屬性來(lái)定義類間的關(guān)系。
首先,必須創(chuàng)建主要屬性。它必須是類C1包含類C2或類C2包含C1這樣的關(guān)系。如,在類org和class中,有兩種主要關(guān)聯(lián)的屬性:HasRole屬性表明組織包含的角色,互反屬性IsRoleIn 是指角色在組織中。事實(shí)上,還有一類relevantRole具有相同的關(guān)系。它用來(lái)定義更加復(fù)雜的屬性。在Protégé中只存在線性關(guān)系,這是遠(yuǎn)遠(yuǎn)不夠的。OrBAC是連接抽象關(guān)系的或在上下文中無(wú)法直接定義的謂詞。例如,謂詞Empower(org, suject, role)是三個(gè)類之間的關(guān)系。我們需要定義一個(gè)類或兩個(gè)類之間的一個(gè)屬性及另一個(gè)類或者三個(gè)類之間的一個(gè)屬性。在本文中,我們定義了一個(gè)relevantRole類,用來(lái)表示role角色在org組織中。Empower屬性關(guān)聯(lián)relevantRoel和suject類來(lái)表明組織org授權(quán)suject擁有role角色,圖4示出了類之間的關(guān)系。在圖中,Empower關(guān)系連接relevantRole和suject類。類似地,每一條線都是兩個(gè)類之間的一個(gè)關(guān)系(節(jié)點(diǎn))。
圖4 類之間的屬性
為了證明本文定義的安全策略符合在P2P網(wǎng)絡(luò)中訪問(wèn)請(qǐng)求的兼容性需求,我們使用此策略在Protégé中進(jìn)行研究。
定義兩個(gè)組織使用不同的語(yǔ)言:中文和英語(yǔ)。在每個(gè)組織中,有三個(gè)或三個(gè)以上的目錄。每個(gè)目錄中可包含音頻,視頻,圖像,工具或文件。定義13種服務(wù)為:驗(yàn)證用戶、探索網(wǎng)絡(luò)、分發(fā)信息、聲明服務(wù)、探索服務(wù)、呼叫服務(wù)、請(qǐng)求接入、加入網(wǎng)絡(luò)、離開(kāi)網(wǎng)絡(luò)、列出對(duì)端提供的服務(wù)、訪問(wèn)文件、下載文件和上傳文件。定義兩種類型的用戶為:普通用戶和擁有更多權(quán)限的高級(jí)用戶。并定義了兩個(gè)黑名單,以禁止提供資源和下載資源。
需要注意的是,P2P網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)提供服務(wù),也從其他節(jié)點(diǎn)獲取服務(wù)。沒(méi)有節(jié)點(diǎn)只獲取服務(wù)而不提供服務(wù)。此外,本文注重探討每個(gè)節(jié)點(diǎn)提供相同類型的服務(wù)。
P2P網(wǎng)絡(luò)中的對(duì)等節(jié)點(diǎn)有如下權(quán)限:
R1:所有用戶都可以查看共享文件夾中的文件。
R2:所有用戶都可以查看我的最愛(ài)目錄中的文件。
R3:所有用戶都可以下載共享文件夾中的文件。
R4:所有高級(jí)用戶都可以下載共享文件夾中的文件。
R5:所有普通用戶都可以申請(qǐng)成為高級(jí)用戶。
R6:所有用戶都可以在共享文件夾中上傳文件與其他用戶共享。
R7:所有用戶都可以在我的最愛(ài)目錄中上傳文件與其他用戶共享。
R8:所有用戶都可以發(fā)現(xiàn)網(wǎng)絡(luò)。
R9:作為普通用戶,可以加入一個(gè)網(wǎng)絡(luò)而無(wú)需認(rèn)證。
R10:所有用戶都可以發(fā)送消息給他人。
R11:所有用戶都可以聲明一個(gè)新的服務(wù)。
R12:所有用戶都可以搜索服務(wù)。
R13:所有普通用戶可以請(qǐng)求接入成為金卡用戶。
R14:所有高級(jí)用戶可以通過(guò)服務(wù)器進(jìn)行身份驗(yàn)證。
R15:所有用戶都可以請(qǐng)求路由到其他用戶。
R16:所有用戶都可以列出其他用戶提供的服務(wù)。
R17:所有用戶都可以離開(kāi)網(wǎng)絡(luò)。
P2P網(wǎng)絡(luò)中的對(duì)等節(jié)點(diǎn)無(wú)如下權(quán)限:
R18:所有用戶都不能查看本地文件夾下的文件。
R19:所有普通用戶沒(méi)有權(quán)限訪問(wèn)和下載我的最愛(ài)文件夾下的文件。
R20:所有在提供者黑名單中的用戶禁止向其他用戶傳輸文件。
R21:所有在下載者黑名單中的用戶禁止在所有文件夾下載文件。
P2P網(wǎng)絡(luò)中的對(duì)等節(jié)點(diǎn)有如下約束:
R22:用戶是在同一個(gè)網(wǎng)絡(luò)中的一部分。
R23:用戶不包括Free-riding,也就是只享受服務(wù)而不提供服務(wù)的用戶。
3.2.3分配
在P2P網(wǎng)絡(luò)中的每個(gè)對(duì)等節(jié)點(diǎn)中,主體以屬性標(biāo)識(shí)符進(jìn)行區(qū)分,每個(gè)主體有一個(gè)唯一的標(biāo)識(shí)符。行為由協(xié)議屬性來(lái)區(qū)分,這是唯一區(qū)分不同服務(wù)的元素。如果操作具有相同的協(xié)議屬性,即使他們有不同的名稱也認(rèn)為這兩個(gè)行為是相同的。散列屬性,是唯一區(qū)別不同客體的屬性。即使兩個(gè)客體具有相同的內(nèi)容描述,如果他們的散列屬性不同則這兩個(gè)客體是不相同的。
本文主要探討了在協(xié)作環(huán)境中(P2P網(wǎng)絡(luò))訪問(wèn)控制的兼容性。通過(guò)在Protégé中的驗(yàn)證說(shuō)明,每個(gè)P2P網(wǎng)絡(luò)通信參與者都可以通過(guò)這種方式在不同的安全策略下建立起語(yǔ)義間的兼容性,從而在保障系統(tǒng)安全性的同時(shí)降低系統(tǒng)訪問(wèn)控制的復(fù)雜程度。
[1] 婁 寧,劉雅奇,齊 峰.實(shí)兵實(shí)裝接入的信息作戰(zhàn)指揮訓(xùn)練模擬系統(tǒng)[J].計(jì)算機(jī)工程,2010,36(1) :262-264.
LOU Ning,LIU Yaqi,QI Feng. Real Forces-in-the-loop Information Warfare Command Training Simulation System. Computer Engineering, 2010,36(1) :262-264.
[2] 侯 陽(yáng),劉 揚(yáng),孫 瑜.本體研究綜述[J].計(jì)算機(jī)工程,2011,37(Supplement) :24-26.
HOU Yang, LIU Yang, SUN Yu. Overview of Ontology Research. Computer Engineering, 2011,37(增刊) :24-26.
[3] 茍紅玲,孫衛(wèi)喜.一種對(duì)等網(wǎng)絡(luò)P2P信任模型研究[J]. 價(jià)值工程, 2011(9):135.
GOU Hong-ling,SUN Wei-xi. Research on a Peer-to-Peer network P2P Trust Model. Value Engineering, 2011,9 :135.
[4] Richards K. Network based intrusion detection: a review of technologies[J]. Computer & Security, 1999, 18( 8) : 671-682.
[5] Bruce Schneier. Managed security monitoring: network security for the 21st century [J]. Computer & Security, 2001, 20: 491-503.
[6] 李少凡, 汪為農(nóng). 網(wǎng)絡(luò)偵聽(tīng)器的實(shí)現(xiàn)及其優(yōu)化[J]. 上海交通大學(xué)學(xué)報(bào), 1998, 32( 10) : 84-86.
LI Shao-fan, WANG Wei-nong. Network Sniffer’s Implementation& Optimization[J]. Journal of Shanghai Jiaotong University, 1998, 32( 10) : 84-86.
[7] 李 凌. Winsock2 網(wǎng)絡(luò)編程實(shí)用教程[M]. 北京: 清華大學(xué)出版社, 2003, 11.
[8] 李 帆,鄭緯民.基于角色與組織的訪問(wèn)控制模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2005(8):2136-2140.
LI Fan, ZHENG Wei-min. Organization and role-based access control model. Computer Engineering and Design,2005(8):2136-2140.
[9] 顧春華,肖寶亮.RBAC模型層次關(guān)系中的角色權(quán)限[J].華東理工大學(xué)學(xué)報(bào)(自然科學(xué)版), 2007(1):97-101.
GU Chun-hua,XIAO Bao-liang. Role Permission in Hierarchy relation of RBAC Model. Journal of East China University of Science and Technology (Natural Science Edition), 2007(1):97-101.
[10] 趙 彥,張 靜,徐 俊,等. 一個(gè)基于角色組織結(jié)構(gòu)的過(guò)程視圖管理方法[J]. 計(jì)算機(jī)應(yīng)用研究,2006(1):177-180.
ZHAO Yan,ZHANG Jing,XU Jun,etal. A Management Method of Process-views Based on Structured-roles[J]. Application Research of Computers, 2006(1):177-180.
[11] 董文宇,孫東紅,許 可,等.自治型網(wǎng)絡(luò)信息服務(wù)的建模[J].計(jì)算機(jī)研究與發(fā)展,2006(2): 224-230.
DONG Wen-yu, SUN Dong-hong, XU Ke,etal. Modeling of Autonomous Network Information Service[J]. Journal of Computer Reasearch and Development, 2006,43(2) :224-230.
[12] 彭敏惠,司 莉. Protégé 本體構(gòu)建工具應(yīng)用調(diào)查分析[J].圖書情報(bào)工作,2008(52):28-32.
Peng Huimin,Si Li. Analysisi on the Application of Ontology Editor Protégé[J]. Libraray and Information Service,January 2008,52:28-32.
[13] 常萬(wàn)軍,王 果. OWL的本體推理方法研究[J].計(jì)算機(jī)時(shí)代, 2010(10):27-29.
CHANG Wan-jun,WANG Guo. Study of OWL Ontology Reasoning Methods[J]. Computer Era, 2010(10):27-29.
[14] 黃卿賢,胡谷雨,王立峰. 本體的概念、建模與應(yīng)用[J].解放軍理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,6(2):123-126.
HUANG Qing-xian,HU Gu-yu, WANG Li-feng. Concept, modeling and application of ontology[J]. Journal of PLA University of Science and Technology, 2005, 6(2):123-126.