葛 莉
(渭南师范学院, 陕西 渭南 714000)
在我们今天所处的互联网和协同时代,信息和知识交换是计算技术的一个关键要素。本体是关于存在及真实世界的任何领域中的对象、性质、时间、过程和关系的种类和结构的学说[1]。近年来,随着信息化的不断发展,本体已成为知识工程、信息检索与获取、知识表示、软件工程、自然语言处理等多个领域的热门研究话题[2]。它提供了一个为用户和应用程序交互的共享知识和领域。因此在许多信息交流领域,特别是安全领域发挥着重要的作用。本体在确保信息交换间语义等价的同时也避免了信息交换的噪音(无用信息)或沉默(相关信息的遗漏)。
P2P技术多点共享式文件传输,这种方式可以有效地均衡上下行线路的数据量,同时每个客户端又可以部分作为服务器,减轻了服务器的压力[3]。但事实上,在协同环境下(P2P或Web Service)的访问控制无法在使用不同安全策略的代理间实现语义兼容。例如,如果是基于角色的访问控制策略,则决策者需要判断在组织A中角色“作者”和组织B中角色“编辑”是否是一样的,以便用来分配相同或不同的访问权限是非常重要的。 因此,本文通过在P2P网络中对OrBAC访问控制模型的研究来实现语义的兼容性。
1996 年, 由Ravi Sandhu 提出了基于角色的访问控制(RBAC96) 模型, 将权限和角色联系起来, 用户不直接被授予权限, 而是通过被赋予某种角色,间接得此角色所拥有的权限, 极大简化了对权限的管理[4-5], 尤其在网络环境中, 可有效管理大量的访问权限[6]。2001 年, Zhang 提出了面向对象的RBAC(ORBAC) 模型, 将模型中的用户、角色、权限等都作为对象来处理, 更接近现实世界, 并对职责分离进行了讨论[7]。OrBAC是一种基于角色和组织的访问控制模型。OrBAC通过使用8项基本实体:组织,角色,活动,视图,主体,行为,客体和背景,多个组织可同时定义自己的访问控制策略[8]。
在Orbac模型中,允许、禁止和职责的关系用来匹配组织,角色,视图,活动和背景之间的关系。Permission (org, role, activity, view, context)是指组织org允许角色role在上下文context背景下在视图view中执行活动activity。Interdiction (org, role, activity, view, context) 和Obligation (org, role, activity, view, context)的定义也是类似的。允许,职责和禁止是以事实的形式引入的。他们不直接与用户,行为和客体关联,而与其抽象角色,活动和视图关联。
然而,在实践中,应用程序所关心的授予给主体的权限(允许或禁止、职责),是用来在客体上执行行为。为了描述实现主体在客体上的行为,定义关系Is_permitted,Is_prohibited和Is_obligated。Is_permitted(subject, action , object)表明允许主体在客体上执行行为。Is_prohibited和Is_obligated的定义是类似的。需要注意的是Is_permitted; Is_prohibited Is_obligated也可以用来表达安全策略Permission,Interdiction和Obligation外的一些异常。
权限是对计算机系统中被保护数据或资源的访问许可[9]。权限的继承用于根据角色的等级传递权限。如:specialized role(org,r1,r2)表明r1比r2更专业的。senior_role(org,r1,r2)表明r1是一个高于r2的角色。sub activity(org,a1,a2)表明a1是a2的一个子活动。同样,一个组织的视图、活动是同具体流程中抽象出来,可以表达特定层次上意义的过程抽象[10]。可以通过专业化的等级对它们进行管理。
约束集不能包含相同的实例。Separated_role(org, role1, role2)是指所有角色1的实例不能出现在角色2中。同样的,活动、视图和上下文的约束为:Separated_activity (org, activity1, activity2) ,Separated_view (org, view1, view2)和 Separated_context (org, context1, context2) 。
图1 OrBAC访问控制模型
在OrBAC中,定义基本谓词如下。与组织中分配抽象实体的有关的谓词(见表1)。与定义上下文相关的谓词(见表2)。与抽象关系相关的谓词(见表3)。与权限、禁止相关的谓词(见表4)。
表1 与实体相关的谓词
表2 与上下文相关的谓词
通过分析的OrBAC的基本关系可以看出,有四个谓词用于创建本体。这些关系在组织间是兼容的。兼容性用来解决两个主要问题:类似语义可以关联不同的抽象实体的分配,不同语义可以关联相似实体的分配[11]。其他关系都是关于O2O(Object-to-Object,对象到对象型)的。由于Orbac有制约原则的关系O2O与互操作性相关。 OrBAC安全政策的范围仅限于组织内。因此,需要通过O2O使用组织的虚拟原则来扩展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 与抽象关系相关的谓词
表4 与权限、禁止相关的谓词
现有和可获取的用来构建本体论的编辑器主要有:Protégé,Ontolingua,Chim?ra,OilED 和OntoEdit。从功能上Protégé之所以成为较为成功的本体编辑工具,在于它有一套完善的管理机制[12]。因为,它是用户最友好的和拥有最多文档的工具之一,方便提供给非专业人士,且该软件使人们有可能以和在Windows资源管理器中访问实例同样的方式来访问文件,软件Protégé也是免费的,可以被任何希望使用本体的用户下载。此外,该软件允许创建OWL文件。 OWL是万维网联盟在总结以往本体语言开发经验的基础上提出的一种创造本体的语言[13]。即使没有软件Protégé,也可以通过这种方式来检索本体。并且该语言也可以用于显示网页上的本体。
Protégé允许在给定领域建立本体,定义数据录入的格式,并通过这些格式以本体实例的方式来获取数据。Protégé是一个Java库,可以扩展到创建实际应用中使用推理引擎的知识库,通过推理规则推理和演绎的本体论的实例的新的实例和本体(元推理)。
本体在Protégé中由个体,类和属性构成。个体代表我们希望表达的域中的客体。属性是将个体结合起来的二元关系。类又叫做概念,表示个体的集合,作为本体的骨架支撑起本体的所有结构[14]。在Protégé中,主要有两种类型的属性:客体属性(Object properties)和数据类型属性(Datatype properties)。客体属性连接个体至个体。数据类型属性将个体与XML框架的据类型值或RDF字符结合起来。根据需要,本文使用客体属性。
本文利用OWL来定义OrBAC的实体和关系。预先定义的实体作为类,预先定义的谓词作为关系,而预先定义的实例作为个体。
2.2.1策略
本体是分类(结构)和关系的结合。在实现结构之前,必须完成本体关系的定义。首先需要在Protégé中创建类(实体)或子类。但需要注意如果必要要将类置为不相交的[14]。
在Protégé中首先定义两种不同的安全策略的组织。每种策略包括主体,客体,行为和组织。在每个组织中,有活动,视图,角色,背景和不同的安全策略,也有一个子类subOrg继承该组织相同的属性。图2显示了在Protégé中组织的一种安全策略。
图2 第一个版本的本体结构
第一种策略是相同级别不分结构的。这是一种直观的方法,可用于代理在P2P网络中的协作。为了进行比较,可能需要遍历结构中所有的元素直至发现所寻找的元素。本文提出的第二种策略的实现更为快速和逻辑。
在第二种策略中,抽象类都放置在releventEntityA中。允许和禁止都放置在securityRuleA中。如果系统要比较角色,那么系统明确不会在securityRuleA类中寻找实体。但由于Protégé的类和子类间存在在创建一个子类relevantEntityA时,会默认创建一个orgA hasclassof sub_classe relevantEntityA这样一个问题,这是不符合逻辑的,但它不能被删除。在这种情况下,本文提出了第三种策略。见图3。
图3 最终版本
此策略高度结构化。 ComponentPolicy系统包含三个部分:entity,relationAmongEntity及securityRule。在entity中的实体被分为三个部分:abstractEntity,concreteEntity及org。abstractEntity中包含所有类型的抽象实体。concreteEntity中包含所有类型的具体实体。在relationAmongEntity中定义实体间的关系。包括relevantEntity和它的四个子类:relevantActivity,relevantContext,relevantRole及relevantView。
选择此种策略是因为它是多层次的,更多的整合使得找到一个实体更加容易。另外,实体不再由组织构建,而更多地对应于在架构兼容性下如何使用实体。
2.2.2关系和属性
在确定策略之后,就需要使用Protégé的属性来定义类间的关系。
首先,必须创建主要属性。它必须是类C1包含类C2或类C2包含C1这样的关系。如,在类org和class中,有两种主要关联的属性:HasRole属性表明组织包含的角色,互反属性IsRoleIn 是指角色在组织中。事实上,还有一类relevantRole具有相同的关系。它用来定义更加复杂的属性。在Protégé中只存在线性关系,这是远远不够的。OrBAC是连接抽象关系的或在上下文中无法直接定义的谓词。例如,谓词Empower(org, suject, role)是三个类之间的关系。我们需要定义一个类或两个类之间的一个属性及另一个类或者三个类之间的一个属性。在本文中,我们定义了一个relevantRole类,用来表示role角色在org组织中。Empower属性关联relevantRoel和suject类来表明组织org授权suject拥有role角色,图4示出了类之间的关系。在图中,Empower关系连接relevantRole和suject类。类似地,每一条线都是两个类之间的一个关系(节点)。
图4 类之间的属性
为了证明本文定义的安全策略符合在P2P网络中访问请求的兼容性需求,我们使用此策略在Protégé中进行研究。
定义两个组织使用不同的语言:中文和英语。在每个组织中,有三个或三个以上的目录。每个目录中可包含音频,视频,图像,工具或文件。定义13种服务为:验证用户、探索网络、分发信息、声明服务、探索服务、呼叫服务、请求接入、加入网络、离开网络、列出对端提供的服务、访问文件、下载文件和上传文件。定义两种类型的用户为:普通用户和拥有更多权限的高级用户。并定义了两个黑名单,以禁止提供资源和下载资源。
需要注意的是,P2P网络中的每个节点提供服务,也从其他节点获取服务。没有节点只获取服务而不提供服务。此外,本文注重探讨每个节点提供相同类型的服务。
P2P网络中的对等节点有如下权限:
R1:所有用户都可以查看共享文件夹中的文件。
R2:所有用户都可以查看我的最爱目录中的文件。
R3:所有用户都可以下载共享文件夹中的文件。
R4:所有高级用户都可以下载共享文件夹中的文件。
R5:所有普通用户都可以申请成为高级用户。
R6:所有用户都可以在共享文件夹中上传文件与其他用户共享。
R7:所有用户都可以在我的最爱目录中上传文件与其他用户共享。
R8:所有用户都可以发现网络。
R9:作为普通用户,可以加入一个网络而无需认证。
R10:所有用户都可以发送消息给他人。
R11:所有用户都可以声明一个新的服务。
R12:所有用户都可以搜索服务。
R13:所有普通用户可以请求接入成为金卡用户。
R14:所有高级用户可以通过服务器进行身份验证。
R15:所有用户都可以请求路由到其他用户。
R16:所有用户都可以列出其他用户提供的服务。
R17:所有用户都可以离开网络。
P2P网络中的对等节点无如下权限:
R18:所有用户都不能查看本地文件夹下的文件。
R19:所有普通用户没有权限访问和下载我的最爱文件夹下的文件。
R20:所有在提供者黑名单中的用户禁止向其他用户传输文件。
R21:所有在下载者黑名单中的用户禁止在所有文件夹下载文件。
P2P网络中的对等节点有如下约束:
R22:用户是在同一个网络中的一部分。
R23:用户不包括Free-riding,也就是只享受服务而不提供服务的用户。
3.2.3分配
在P2P网络中的每个对等节点中,主体以属性标识符进行区分,每个主体有一个唯一的标识符。行为由协议属性来区分,这是唯一区分不同服务的元素。如果操作具有相同的协议属性,即使他们有不同的名称也认为这两个行为是相同的。散列属性,是唯一区别不同客体的属性。即使两个客体具有相同的内容描述,如果他们的散列属性不同则这两个客体是不相同的。
本文主要探讨了在协作环境中(P2P网络)访问控制的兼容性。通过在Protégé中的验证说明,每个P2P网络通信参与者都可以通过这种方式在不同的安全策略下建立起语义间的兼容性,从而在保障系统安全性的同时降低系统访问控制的复杂程度。
[1] 娄 宁,刘雅奇,齐 峰.实兵实装接入的信息作战指挥训练模拟系统[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] 侯 阳,刘 扬,孙 瑜.本体研究综述[J].计算机工程,2011,37(Supplement) :24-26.
HOU Yang, LIU Yang, SUN Yu. Overview of Ontology Research. Computer Engineering, 2011,37(增刊) :24-26.
[3] 苟红玲,孙卫喜.一种对等网络P2P信任模型研究[J]. 价值工程, 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] 李少凡, 汪为农. 网络侦听器的实现及其优化[J]. 上海交通大学学报, 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 网络编程实用教程[M]. 北京: 清华大学出版社, 2003, 11.
[8] 李 帆,郑纬民.基于角色与组织的访问控制模型[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模型层次关系中的角色权限[J].华东理工大学学报(自然科学版), 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] 赵 彦,张 静,徐 俊,等. 一个基于角色组织结构的过程视图管理方法[J]. 计算机应用研究,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] 董文宇,孙东红,许 可,等.自治型网络信息服务的建模[J].计算机研究与发展,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é 本体构建工具应用调查分析[J].图书情报工作,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] 常万军,王 果. OWL的本体推理方法研究[J].计算机时代, 2010(10):27-29.
CHANG Wan-jun,WANG Guo. Study of OWL Ontology Reasoning Methods[J]. Computer Era, 2010(10):27-29.
[14] 黄卿贤,胡谷雨,王立峰. 本体的概念、建模与应用[J].解放军理工大学学报(自然科学版),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.