王智辉,艾中良,王祥根,唐 稳
(华北计算技术研究所,北京100083)
商业世界的任务具有多级的安全特性[1],出于保护商业秘密的动机,商业活动必须根据雇员的工作等级等条件限制其对资源的访问,以保护多等级多类别的数据。多级环境中数据、人员都具有安全级别,在用户访问数据时依据这些等级进行不同的处理。
访问控制技术是一种对资源访问进行限制的安全方法,它根据一定的安全策略限制用户对关键资源的访问。其中基于角色的访问控制RBAC(role based access control)是一种强制访问控制,一般应用于用户分级的环境[2]。但是它与多级环境下传统的强制访问控制不同,并不是针对多级安全专门提出的,在商业多级环境中可能造成敏感信息的泄露。
为了解决多级环境中的信息安全的问题,安全研究者提出了一些多级安全模型,其中最经典的是1973年由David Elliott Bell和 Len LaPadula为美国国防部提出的 BLP(Bell-LaPadula)模型。它是第一个可以用数学方法证明系统安全性的模型[3],严格依赖密级进行授权判决。在大型的商业机构中,很难严格按照BLP模型为用户划分安全等级,因此BLP的可用性受到了限制。
语义技术是一种新兴的知识表示技术,允许信息的意义及其之间的关联能够在运行期间被获得和处理[4],使得软件理解商业系统中用户、资源的等级关系,使用用户、资源的信息进行推理成为可能。随着语义技术的兴起,国内外都有安全研究者提出采用语义技术进行访问控制的方法[5][6]。但是这些方法并不是针对多级环境的特点提出的,不具有多级安全的特性。本文所解决的问题,就是利用语义技术的描述和推理能力,根据系统中用户隶属关系、资源拥有关系等已有信息,结合RBAC模型和BLP模型的安全特性,在不损失系统安全性的前提下,实现多级环境中用户权限的自动分配,并按照这种权限进行访问控制。
商业多级环境最大的特点之一便是系统中的用户存在上下级隶属关系,这种隶属关系隐式地表达了用户安全级别的高低关系。因此,在商业系统中可以采用多级环境中已经存在的业务角色间的上下级关系作为访问控制的依据,实现安全级别的动态判定。具体方法是为用户指定角色,为文件等资源指定所有者。利用角色间的上下级关系作为安全级别判断的依据,使得角色在角色继承关系中的级别可以代表用户在多级系统中的安全级别;资源的所有者的安全级别代表资源在多级系统中的安全级别。在访问控制时,将角色继承关系作为判断安全级别关系的依据,对环境中的用户进行符合*-特性和简单安全特性的基于角色的授权。
实际的商业环境十分复杂,不同环境中用户的角色等级具有动态性,同一等级的角色可能有不同的描述。为了对商业环境中的多级安全问题更有针对性,本文对商业多级环境进行了抽象,如图1所示。
图1 抽象的多级环境
环境中的每个用户都分配了一个角色,角色间具有继承关系。需要为环境中的资源显式的指定其所有者和所有者对资源的可以进行的操作。为了保证系统的安全性,本文选取BLP模型中可能造成敏感信息泄露的读和写操作来研究。
抽象后的多级环境具有以下特性:
(1)每个资源属于且只属于一个所有者,不存在多个用户共同拥有一个资源的情况;
(2)每个用户属于且只属于一个角色,不存在一个用户属于多个角色的情况;
第一个特性避免了资源属于多个用户,资源的安全级别无法确定的情况;第二个特性避免了用户属于多个角色,用户的权限无法确定的情况,这也是对RBAC做出的静态职权分离的约束。
本体 (ontology)是一种构建知识模型的技术,它提供对某领域知识的共同理解,确定该领域内共同认可的术语,明确地给出这些术语和术语之间相互关系的定义[7],可以用它形式化的描述RBAC模型[8]。
基于OWL DL(web ontology language with description logics)语言的强表达能力和可计算性[9],本文选择OWL DL作为本体描述语言,对基于角色的访问控制方法进行建模。RBAC模型的本体描述如图2所示。
图2 RBAC的本体描述
该模型中各类的定义如下:
类定义1 Subject:主体,访问控制请求的发起方,一般为系统中的用户;
类定义2 Object:客体,访问控制请求的被访问方,一般为系统中的资源;
类定义3 Role:角色,RBAC中系统会给每个用户分配角色,角色具有继承关系;
类定义4 Action:行为,表示访问控制请求中主体请求对客体进行的操作;
类定义5 Request:请求,一个请求会关联一个形如<Object,Action>的二元组,表示对客体Object进行操作Action的某次访问控制请求。
其中角色既可以定义为本体中的类,也可以定义为本体中的值。我们选择了将角色定义为类的方式创建RBAC的模型。将角色定义为值,虽然比较简单精确,但是失去了类之间继承、互斥等复杂关系,因此不能充分利用本体的可计算性[10]。在该本体模型中还通过属性定义了RBAC中各个概念之间的关系,定义如下:
属性定义1 subRoleOf(R1,R2):定义域为Subject,值域为Subject,含义是定义域的角色R1继承了低等级的角色R2的权限,该属性是一个传递性属性,即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,表示某次访问控制的主体对客体要进行的操作是A;
属性定义5/6 hasPermission(R,R’)/denyPermission(R,R’):定义域为Role,值域为Request,hasPermission表示了某次访问控制中允许角色R对Request中的客体O进行行为为A的操作,denyPermission表示了某次访问控制中禁止角色R对Request中的客体O进行行为为A的操作;
属性定义 7/8 hasPrevilege(S,R’)/denyPrevilege(S,R’):定义域为 S,值域为 Request,hasPrevilege表示了某次访问控制中允许主体S对Request中的客体O进行行为为A的操作,denyPrevilege表示了某次访问控制中禁止主体S对Request中的客体O进行行为为A的操作;
属性定义9 hasOwner(O,S):定义域为Object,值域为Subject,含义为资源O的所有者为主体S;
属性定义10 hasHierarchy(O,R):定义域为Object,值域为Role,含义为资源O的所有者对应的角色为R,R的等级可以代表资源O的等级。
为了能够利用本体的可计算性,实现角色继承的自动推理,达到对多级环境下的资源进行访问控制的目的,本文创建了适用于1.2小节中建立的本体模型的6条推理规则,如表1所示。
表1 规则描述
规则a对文件安全级别的推理规则进行描述:如果给文件x的所有者y分配了角色z,则文件y就具有z对应的安全级别;
在对角色分配权限时,分配权限的方法必须符合BLP模型的简单安全特性和*-安全特性,规则b的含义是高层次的角色对低层次角色的用户所有的文件没有可写的权限,规则c的含义是低层次的角色对高层次角色的用户所有的文件没有可读的权限;
规则d描述了基于角色的访问控制中角色继承的推理规则:高层次的角色继承了低层次的角色具有的所有权限;
角色会向主体传播权限,规则e的含义是如果禁止角色x对某个资源进行某种操作,则进行授权时禁止具有角色x的用户z对该资源进行这种操作;规则f含义是如果允许角色x对某个资源进行某种操作,则进行授权时允许具有角色x的用户z对该资源进行这种操作。
虽然本体语言OWL能支持推理系统实现其计算性能,但是无法表达很多基于事实的推理关系。因此,本文选择SWRL(semantic web rule language)[11]作为规则描述语言。
使用1.2小节中的访问控制本体模型对1.1小节中描述的商业环境进行描述后,使用本体推理工具Racer按照1.3小节中提到的规则进行推理,得到语义冲突。
冲突1 Manager角色对Staff和Director角色的文件既允许写操作又禁止写操作;
冲突2 Director角色对Staff角色的文件既允许写操作又禁止写操作。
产生语义冲突的原因是因为由于RBAC中低等级角色的所有权限都会向高等级的角色传播,因此高等级的角色会继承低等级角色用户对属于自己的文件具有的写权限;而BLP中高等级的角色对低等级的角色用户的文件不具有写权限。因此如果文件的所有者为拥有低等级角色的用户,当拥有高等级角色的用户请求对其进行写操作的时候,推理引擎会得到语义冲突。
本文使用protégé软件进行本体的开发,使用Jena语义工具包进行编程,实现了基于角色和本体的访问控制系统,系统设计如图3所示。
图3 基于语义和本体的访问控制系统设计
(1)语义描述层包括实体数据层和RBAC本体规则描述文件两部分。实体数据层包含了记录环境中所有实体的基本信息的数据库,这些数据库记录了资源和用户、用户和角色等这些访问控制实体间的映射关系和角色间的继承关系等,是系统进行访问控制的依据;RBAC本体规则描述文件包含了由protégé生成的用OWL DL描述的RBAC本体模型和用SWRL语言描述的RBAC本体模型的推理规则;
(2)本体推理层中rdf-数据记录转换模块完成数据记录RBAC本体中类的实例的转化,这些实例用rdf来描述,形成描述多级环境中所有实体的一个完整的本体文件;规则转化模块完成SWRL语言描述的规则到Jena支持的规则之间的格式转换。这两个模块的输出作为访问控制矩阵生成模块的输入,使用Jena的本体推理引擎对多级环境的本体文件进行推理,得到访问控制矩阵;
(3)访问控制调用层包含策略判决接口,策略判决接口输入为形如<Subject,Resource,Action>的三元组,查询访问控制矩阵后,输出为授权断言,断言中包含了本次判决的结果,策略判决的流程如图4所示。
图4 策略判决接口调用流程
系统中的每个角色对应一个访问控制矩阵,矩阵中的两个维度分别表示访问控制的客体和行为,矩阵中每个<Object,Action>坐标位置都有值表示角色对资源的操作是允许 (permit)还是拒绝 (deny)。
1.4 小节中提到BLP模型在和RBAC模型结合的时候会产生语义冲突,为了保证敏感信息的安全性,规定denyPermission的优先级高于hasPermission,并根据这个规则设计访问控制矩阵的生成流程如图5所示。使用图中描述的访问控制矩阵的生成流程,可以保证denyPermission的推理结果会覆盖hasPermission的推理结果,最终denyPermission会起效,消除语义冲突。
实体信息数据库中存储的用户和资源的详细信息清单如表2所示,用户对资源具有的初始操作权限如表3所示。用户Manager_Sun调用策略判决接口,输入判决请求<Manager_Sun,Object_Staff,Write>。
图5 访问控制矩阵生成
系统运行过程中会形成中间文件,记录访问控制矩阵推导的过程。推导结束后访问控制矩阵形式如图6所示,比较图6与表2的权限,可以发现高等级的角色在不违反BLP的简单安全特性和*-安全特性的前提下,自动继承了低等级角色的权限,系统安全地实现了权限的自动分配。
系统查询生成的访问控制矩阵后,会返回判决断言,断言中包括了本次判决的结果:Deny。这个结果符合BLP的*-特性,保证可敏感信息的安全性,是一个合法的判决。
综上所述,本系统初步实现了了访问控制权限的自动分配,且分配的结果符合BLP模型的安全特性,是符合多级环境下安全要求的访问控制系统。
本文提出了多级环境下基于角色和本体的访问控制的方法,通过对商业多级环境进行抽象,提出了一种多级环境下的新的访问控制方法。该方法结合了RBAC模型角色权限继承的特点和BLP模型的安全特性,实现了在多级环境中自动利用现有信息对敏感资源进行访问控制。
表2 系统实体信息清单
表3 初始访问权限列表
虽然本文中提出的多级环境的模型可以满足当前工作的需要,但真实环境下的角色分配仍存在很多特殊情况,该模型不能满足角色间存在复杂的继承关系或者用户和角色存在一对多映射或多对多映射等情况,下一步工作中需要对多级环境模型作进一步完善。另外,系统运行时语义推理的时间较长,访问控制矩阵生成模块的效率问题也将是下一步研究工作的重点。今后将通过研究推理算法,改进访问控制的本体模型和策略判决的流程,并且引入并行化技术,以解决系统中存在的效率问题。
图6 访问控制矩阵输出结果
[1]MENG Xiangyi.Research of multilevel security network [D].Xi'an:Xi'an Electronic And Technology University,2008(in Chinese).[孟祥义.多级安全网络研究 [D].西安:西安电子科技大学,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).[李栋栋,谭建龙.基于本体的权限管理系统的研究与实现 [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].计算机工程与设计,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).[陈建伟.基于语义的访问控制技术在信息整合中的研究 [D].北京:华北电力大学,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).[张雷.基于本体和规则的RBAC模型研究与应用[D].重庆:重庆大学,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).[李瑞轩,赵战西,文坤梅,等.基于本体的多域访问控制策略集成研究 [J].小型微型计算机系统,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].计算机工程与应用,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.