扩展RBAC模型在Web信息系统中的探索

2019-08-21 12:49无锡科技职业学院江苏无锡市214028
石河子科技 2019年3期
关键词:访问控制客体页面

(无锡科技职业学院,江苏无锡市,214028) 王 丹

1 引言

随着现代信息技术运用的不断深入,信息系统很容易受到攻击,发生如非法访问等事件。因此,安全成为信息系统迫切需要解决的问题。一个完整的安全信息系统,要综合地使用身份鉴别、访问控制、数据加密、安全审计、安全管理等安全技术。在现实环境中,没有任何一项安全技术能够单独地解决安全问题。在这些安全技术中,访问控制起着极其重要的作用,它是安全策略在系统运行中的集中体现。通过访问控制服务,可以限制对关键资源的访问,防止非法用户的侵入或者因合法用户的不慎操作所造成的破坏。

但是Web 良好的开放性也加剧了与系统安全之间的矛盾。因为用户是分布式的,浏览器就成为其进行系统访问的主要工具,它对用户端的限制很少,由于缺少必要的用户访问控制,往往导致严重的安全漏洞。本文在层次扩展客体的基础上,提出了一种基于Web的WE-RBAC 模型和设计方法,有效地解决了用户安全访问数据的控制问题。

2 访问控制技术

传统的访问控制技术主要有自主型的访问控制(DAC)和强制型的访问控制(MAC)。DAC 是目前计算机系统中实现最多的访问控制机制。而MAC由于过于偏重保密性,主要被运用于专业系统中。20世纪90年代以后出现了基于角色的访问控制(Role-Based Access Control,简称RBAC)和基于任务的访问控制(Task-Based Access Control,简称TBAC),这两种技术在实际中都有较多的运用。RBAC 模型也称RBAC96 模型,其定义了用户、角色、权限三个基本要素,通过角色的虚拟,建立了用户—角色指派和角色—权限指派关系,有效地克服了DAC和MAC模型存在的不足之处,减少了授权管理的复杂性。[1]

随着Web技术的不断应用,一些新型的访问控制技术也不断出现,相对于传统的客户机/服务器模式,由于Web 使用了浏览器/服务器模式,它具有良好的Html代码可读性,使安全控制更加不易。2007年,董斌等提出了一种安全Cookie方式来保存用户的登录和角色等重要信息,通过加密和安全认证来保证访问的安全。2008年,黄国纯等也结合Web的特点,提出了区域集和页面集这两种基本Web 客体,并给出了一种UR-RAO模型和其在信息系统中的解决方案。安全Cookie 是采用加密技术把一些关键信息保存在客户端,因此一种可靠的加密解密技术尤为关键,否则容易导致一些数据的泄密。后者对Web客体进行了划分,分别对页面集和区域集进行管理,导致了模型构建和管理的复杂性。[2]

3 WE-RBAC模型

WE-RBAC 模型建立在基本的RBACO 模型基础上,它包含了基本的用户、会话、角色、权限定义,也具有用户—角色指派和角色—权限指派等特征。为了减少模型的复杂度,本研究没有加入角色继承和动态(或静态)职权分离等,以下的定义是建立在此前提下。

3.1 层次客体和层次权限

在RBAC 和TBAC 等模型中,没有对客体的粒度进行具体描述,从而不能满足实际应用系统对权限管理的需要。常见的客体或权限之间是一种网状关系。通过对客体间的关系进行划分,如果客体之间存在控制关系,则称这些客体是有层次的"由这些层次客体组成的客体集合称为层次客体集。

由于网状的关系在应用中的复杂性,通常可以对网状的访问路径进行简化,常见方法是将其定义成多种树型关系,每个层次客体可以看作一个单独的节点,层次客体之间存在着树型控制关系,父节点可以控制子节点。根据权限的定义,如果这些客体对应的操作是同一种操作,则称这些权限为层次权限"层次权限也存在层次性和层次控制关系。[3]

3.2 WE-RBAC模型定义

在WE-RBAC 模型中包含了RBAC0 模型的基本定义,包括用户、角色和权限的定义,也包括用户—角色指派关系和角色—权限指派等关系,同时也满足层次客体RBAC模型中对层次客体的定义。如图1所示,用户通过角色的指派来获得权限的指派,只要更改角色的权限,就直接影响指派了该角色的用户的使用权限,同时也对角色和权限进行了划分。

图1 WE-RBAC模型

WE-RBAC模型的具体定义如下:[4]

定义1:模型中的权限都具有层次性。

根据文献[2]中刘波等研究者对层次客体的定义可以推出,层次权限具有层次性和层次控制关系。

定义2:功能权限和区域权限。

从权限应用的范围来看,层次权限可以分为功能权限和区域权限。功能权限是用于层次权限间的控制关系,在层次权限树中,它通常表现为非叶子节点可以控制其他叶子节点和非叶子节点;区域权限是体现数据访问中的范围界定,在模型中,区域权限之间的层次关系体现为一种包含、互斥或其他的数据关系。

定义3:权限集,也称为层次权限集,包括功能权限集和区域权限集。

定义4:功能角色和区域角色。

从应用范围上看,角色可划分为功能角色和区域角色。功能角色对应功能权限集的角色—权限指派,区域角色对应区域角色集的角色—权限指派。

定义5:角色约束。

根据RBAC2 的定义,角色之间存在约束关系,可以分为静态约束(Static Separation of Duty,SSD)和动态约束(Dynamic Separation of Duty,DSD);同时,角色之间也存在RBAC1 的继承关系(Role Hiberachy RH)。

定义6:权限约束。

权限之间不仅存在层次关系,也可能存在约束关系。根据约束的发生范围不同,可把权限约束分为静态权限约束和动态权限约束,权限的约束关系可直接影响角色的约束关系。

3.3 WE-RBAC模型的关键算法及实现

在RBAC96模型中,用户通过角色来赋予、回收和验证权限,因此,WE-RBAC模型应该建立相应的算法。相对于传统模型,该模型的层次权限算法、角色权限权限分配算法、角色回收算法和用户访问验证算法就成为模型实施的关键部分,而其他的算法与传统模型基本一致。[5]

层次权限算法包括对层次权限树的生成、删除、修改等动作,由于操作对象是层次权限树,因此直接运用树的算法来实现。角色权限分配算法是为角色分配层次权限集,这些权限的表现形式是层次权限树的形式。而角色权限分配回收算法的实现与此类似,算法实现如图2所示。[6]

用户访问验证算法是根据用户需要访问的客体种类进行功能验证和数据验证由于在角色权限分配算法中,已经完整地维护了权限的访问控制关系,因此,功能验证只需要简单的关联功能判断角色是否分配有该项功能权限; 而数据验证需根据区域角色对访问数据进行数据限制。

图2 角色权限分配回收算法

4 WE-RBAC在Web中的应用

4.1 Web权限

4.1.1 Web权限定义

在常用的客户—服务结构的应用系统中,客体总是根据具体的系统应用定义,客户端可以保存用户的关键信息,实施访问控制直接、方便,对服务器影响较小。而对于浏览器—服务结构的系统来说,由于浏览器等的限制,从而不适宜在访问过程中大量地运用权限策略。

在Web信息管理系统中,客体定义为由一组页面和数据组成的页面集,操作定义为对页面或数据的访问许可,因此权限就表示为对某个页面或数据的使用许可。根据特定系统的业务逻辑关系,可以把这些权限定义为层次权限,组成有一定层次关系的功能权限。

由于Web 访问的特殊性,从而不可能在服务端同时保存某用户的所有访问控制状态,只能对不同的权限进行不同的访问控制.从访问的内容来看,可以将权限划分为页间控制和页面控制。页间访问是指该页面是否对用户可见,如访问该页面的某菜单项或链接;页面访问是指在通过页间访问允许后,页面需控制的内容是否对用户有效,这些内容包括按钮、链接地址或数据。在系统实施中,可以仅实施页面或页间控制,或者同时实施,以保证系统控制的严密性。

4.1.2 层次权限设计

Web系统的权限通常有链接控制、页面操作控制和数据区域访问控制。链接控制指页面访问路径的控制,需要在访问前进行控制,是一种静态控制;同时,为了防止通过链接路径直接访问,在页面载入时也要进行页面验证,这属于动态控制。页面操作控制是当前页面的组成元素,需要控制用户是否可以访问。数据区域访间控制是作为控制数据访问范围的验证,与普通的操作控制相比,它控制的是数据是否对该用户可用。

链接地址、页面操作和数据区域都是WERBAC 模型中层次权限的组成部分,根据层次权限的定义来看,通常的Web信息系统层次权限用树结构表示。在数据库中层次权限定义如表3所示的结构:privId 是层次权限在系统中的唯一标识,privAction表示该权限的动作,可能是一个链接按钮或数据区域的标识,parentId 表示该权限的父权限指向哪个唯一的privId,不能为本权限的或一个不存在的privId,当为空的时候,表示当前权限是根权限。这种数据定义就构造了系统中的层次权限树。[7]

4.2 Web系统构建

例如,表1中有3条记录对应了3个权限,其中,页面“页面a”是根权限,它有子权限“页面a 中按钮”,它们是功能权限并分别需要进行页间验证和页面验证;而权限“数据b”是一种数据区域权限。

表1 层次权限举例

通常的Web 信息系统是由用户(浏览端)、Web控制和Web 服务端三层构成,如图3 所示。Web 控制是建立在WE-RBAC 规则库基础上的访问控制层,Web服务为访问提供页面访问或数据服务。用户使用浏览器在Web控制下获得Web服务,在正常的访问中,虚线表示用户通过控制层透明的访问服务端的页面或数据。

图3 Web访问控制

Web控制可以是一个独立的模块,也可以是和Web 服务集成后共同组成综合的服务平台。从数据安全访问的原则上考虑,独立的WEB 控制符合系统安全设计原则。Web控制主要运用WE-RBAC模型构建的规则库,为用户提供访问控制的接口。为了访问的简便,规则库一般用数据库实现,根据WE-RBAC 模型的定义,规则库应该包含用户、角色、权限和之间的对应关系。

Web 服务就是通常提供信息服务的Web 服务器它包括通常的Web 页面服务和Web 数据服务。页面通常指网页等,数据指要为用户访问提供的数据库中的数据, 数据可能包含在页面中,也可能是一种数据接口。

在信息系统中,还应该包含为页面提供数据的数据库系统,在图3中就没有将其单独地标注出来,它属于系统的基本配置。同时,从广泛的数据考虑WE-RBAC 规则库是定义在数据库中,也是权限控制的范畴。

4.3 Web访问控制

用户通过WE-RBAC 模型来访问Web 资源,首先要为角色分配层次权限,然后建立一个WERBAC 会话,在会话中可以得到用户的角色集和权限集,对用户权限进行验证。

在层次权限的基础上为角色分配权限,一般规定,当且仅当用户递归拥有某个权限的父权限,用户才能分配该权限。也就是说,必须要为用户分配根权限到该权限整条路径中的所有权限后" 该权限才分配成功。这种权限分配过程的复杂性缩短了权限访问验证的过程,其分配算法在定义模型的关键算法中。

当用户要访问某项权限时,就要对用户操作的合法性进行验证,通过返回可以执行的URL或允许执行进行确认。如果用户没有通过访问验证,则该权限对用户不可见或者是不可访问。

4.4 WE-RBAC与RBAC等的比较

通过对WE-RBAC 模型的基本元素及其关系的分析可知,该模型是RBAC模型的一种扩展模型,其支持基本的用户、角色和权限及其相互间的关系管理,而层次权限的应用也能更好地满足Web系统对访问控制的需求。

如表2 所述,WE-RBAC 模型明确了访问Web的页面和页间界定,它与UR-PAO 模型的不同之处在于:前者以为数据区域和其他权限都是权限的一种,进行集中管理,而后者把区域和权限分别独立对待;前者用层次化的方法管理权限及其关系,而后者是分散化管理权限。同时WE-RBAC 模型也遵循RBAC 模型的基本原则" 不允许为用户直接分派权限。

表2 RBAC、UR-PAO和WE-RBAC的比较

5 系统实现及应用

WE-RBAC 模型在某高职院校教务管理系统、学生服务系统等多个Web系统中得到了实际运用。图4是一个运行在某教务管理系统中的权限分配截图。

图4 教务管理系统权限分配

在该管理系统中,有计划管理、考务管理和系统管理等7个模块,分别建立了7个权限树,共计要管理300多项权限.系统运用WE-RBAC模型,建立了7 个层次权限树来管理这300 多项层次权限,为80 余个用户分配了10 多个角色,并根据为用户分配的区域角色和功能角色实现权限控制。控制模块相对独立于整个管理系统,并被运用在每个模块的底层,为用户访问提供安全控制,具有很好的扩展性和重用性。

6 结束语

扩展的RBAC模型继承了当前主流基于角色的访问控制模型的优点[8]。WE-RBAC 模型通过对权限进行功能和区域的划分,建立了层次权限和相关的算法,解决了Web页面资源和数据资源的权限管理,减轻了系统的验证管理过程,便于维护。但在实际系统的应用中,权限之间和角色之间存在着一定的约束关系,模型还应定义得更加完善;同时,考虑到验证的效率,还应在模型中加入对权限验证的CACHE计算,以提高权限访问效率。

猜你喜欢
访问控制客体页面
一种跨策略域的林业资源访问控制模型设计
刷新生活的页面
答案
浅议犯罪客体
犯罪客体要件与法益概念的功能性反思
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
对不授予专利权客体认定的困扰——论患病风险度评估方法的可专利性
“活”源于怦然心动——写生对客体借用中的情感因素
从操作系统层面谈信息安全与自主访问控制