1 引言
数据资源作为企业的核心资产,直接关系到企业的经济利益,因此对数据资源访问的安全性保障工作尤为重要。产品数据管理PDM(Product Dato Management)系统是设计生产型企业的重要信息系统,管理着所有与产品相关的信息(包括产品的零部件信息、结构配置、文件等)和所有与产品相关的过程(包括审批/发放、工程更改、一般流程、配置管理等)。
目前已有一些PDM系统,如TeamCenter、Windchill、e-Matrix、SmartTeam,在航空、能源、船舶制造等领域有着广泛的应用。但是,实践过程中发现这些系统中存在一个普遍的问题,即文档访问的速度慢,其主要原因在于大型企业对数据细粒度的访问控制造成了大量的计算。同时,用户层次多、产品数据量大也增加了权限配置管理上的难度。
本文针对这一问题,结合在某企业PDM系统设计和实现中的实践,给出了一种PDM-RBAC访问控制模型,并设计了基于权限位的访问控制算法,以在满足访问控制需求的前提下减少计算时间,提高文档访问效率。
本文第2节介绍了典型的访问控制模型,第3节结合某企业PDM系统对访问控制的需求,提出了一种PDM-RBAC(PDM Role-Based Access Control)模型;第4节在PDM-RBAC模型的基础上给出了一种基于权限位的访问控制判断算法,并通过对比实验,说明了本文算法和模型的有效性;最后对本文进行了总结。
2 典型的访问控制模型
访问控制技术是保障信息系统安全的一种重要技术,它是通过某种途径显式地准许或限制主体对客体访问能力及范围的一种方法,通过对资源的限制访问,防止非法用户侵入或因为合法用户的不慎操作而造成的破坏,从而保证系统资源受控地、合法地使用。
传统的访问控制有自主访问控制DAC(Discretionary Access Control)和强制访问控制MAC(Mandatory Access Control)。自主访问控制是在确认主体身份以及主体所属组的基础上对访问进行限制的一种方法。DAC中具有某种访问权的主体能够自行决定将其访问权直接或间接地授予其他主体,它具有很大的灵活性,但是,这种灵活性可能会导致权限的传递出现失控而导致信息泄露。强制访问控制是强加给主体的一种访问控制方式。MAC为所有的主体和客体分配了敏感标签,利用敏感标签来确定主体是否可以访问客体的特定信息,如只有当主体的敏感等级高于或等于客体的敏感等级时,才允许主体访问客体。MAC的主要缺点在于实现工作量较大,管理不便,对系统连续工作能力和授权的可管理性方面考虑不足。基于角色的访问控制RBAC是当前应用最为广泛的访问控制模型,其中引入了角色的概念,用户与权限通过角色相关联,使得授权管理变得简单。
企业的环境与需求不同,对访问控制的要求也不同,国内外的计算机学者和技术人员不断对访问控制模型进行完善和扩展,提出了一些新的模型,如UCON、Privacy-aware role-based access contro、WRPTAC等。其中,使用控制(UCON)模型基于授权、责任、条件三大决策因素及主客体属性实现动静结合的授权策略,包含了DAC、MAC、RBAC、信任管理等,被称为下一代访问控制模型;Privacy-aware role-based access control提出了一种支持隐私信息访问控制机制的框架,扩展了RBAC模型;WRPTAC是RBAC在工作流中的具体应用,是一种新工作流系统的带权角色与周期时间访问模型;空间矢量数据细粒度强制查询访问控制模型针对敏感空间地理矢量数据形状不规则、跨多级敏感区域分布的特点,对强制访问控制模型进行空间扩展,将空间数据查询与安全策略检索相结合。本文将要介绍的PDM-RBAC访问控制模型也是对RBAC模型的一种扩展。
3 PDM-RBAC访问控制模型
企业内不同层次的用户在同一个PDM集成环境下工作。产品过程的每一个步骤涉及到各种人员,他们在产品生命周期中对数据文档有不同的操作,需要被授予不同的权限。
结合在某企业的实践,我们发现,PDM系统访问控制需求的复杂性主要表现在以下三个方面:
(1)主体的复杂性:企业的用户层次多、组织结构庞大,导致用户权限管理的难度大。
(2)客体的复杂性:企业的数据资源庞大,制造一个产品可产生几十万个文档,这些文档具有多个属性,如安全标识、生命周期等。
(3)控制过程的复杂性:
①用户和数据资源具有安全标识,且用户不能访问高于自己安全等级的数据资源。
②用户对数据资源的权限随着数据资源的生命周期变化而变化,如文档创建者可以修改处于创建状态的文档,但不能修改处于已发布状态的文档。
为了实现上述PDM系统访问控制的需求,本文在RBAC模型的基础上,使用用户组层次替代RBAC访问控制模型中的角色层次,并引入了权限层次结构来组织权限,得到了PDM-RBAC模型。图1和图2分别展示了PDM-RBAC控制模型的结构和权限的层次结构。
图1 PDM-RBAC访问控制模型
图2 权限组织结构
下面详细描述PDM-RBAC模型的元素和元素间的关系:
(1)主体User。
用户是具有某些属性的实体,并且持有部分权限。用户的属性决定其是否具有访问某类资源的能力,如组名、角色、安全标识等。
(2)客体Resource。
访问控制的核心功能是保护系统资源,在PDM系统中受保护的资源有系统功能和数据资源。系统功能有产品配置管理、产品文档管理、电子仓库管理、权限管理等。PDM系统中的数据资源多种多样,如设计图纸、施工图纸、财务文档等,为了更好地管理如此种类繁多的数据资源,具有类似操作权限的数据资源客体可组织成文件夹。
(3)安全标识Security Level。
PDM系统中的部分资源包含敏感信息。安全标识用来标识具有敏感信息的数据资源,用户不能读取高于其安全标识的数据资源。数据资源的安全级别可分为绝密、机密、普通等级别。
(4)操作Operation。
PDM系统中的权限操作可以分为两类:第一类操作为读、写等基本操作,第二类操作为完全控制等组合操作。PDM-RBAC模型中引入了拒绝权限,例如“拒绝读”、“拒绝写”等,它的优先级最高,给权限的配置带来了很多方便。例如,要实现某用户组除用户Bob外其他人都有A权限,安全管理员只需先简单地给Bob设定拒绝A权限,再设定组内所有成员拥有A权限则可实现上述功能。如果不存在拒绝权限,那么就必须给组内其他成员一一赋权才能实现,由此可见,引入拒绝权限简化了系统管理,减少了授权数据量。
(5)角色Role。
角色是一种有利于安全管理员组织权限的方式,如将一个用户分配给另外一个项目,安全管理员可以简单地让这个用户分配到一个新的角色。PDM系统的角色有系统管理员、安全管理员、业务管理员、设计人员、总工程师等。
(6)用户组User Group和用户组层次结构User Group Hierarchy。
用户组依据企业的组织结构划分,用户组层次结构定义企业的职能继承关系。如果用户组u1包含了用户组u2,则用户组u2继承用户组u1的所有权限。采用用户组层次结构代替角色层次结构有利于安全管理部门和人力资源部门的职责分离。例如,人力资源部门管理企业的组织结构,如果企业要建立一个新的部门,人力资源部门负责部门的建立,安全管理员只需给该部门分配某些角色,而无需建立新的角色层次来体现企业结构的变化。同时,采用用户层次结构可以简化授权工作,PDM系统中包含大量的用户和角色,如果给每个用户分配角色,授权数据库必须记录每一条用户角色关系数据,而现在只需记录一条用户组和角色对应的数据,大大减少了授权数据量。
(7)权限Permission和权限层次结构Permission Hierarchy。
权限是对PDM系统中受保护的一个或多个客体对象执行操作的许可,由操作、客体以及客体属性(包括生命周期、客体类型)组成。权限层次结构定义了PDM系统中数据资源之间的继承语义结构,如产品与产品设计文档的关系。在权限分配时,给上层权限赋权即针对该上层权限所有的子权限赋权,而对子权限赋权只是针对子权限本身赋权。在PDM实际应用中,对用户赋权即指派用户去完成一系列的组合权限,安全管理员可以给用户分配上层权限,即可实现用户对所有下层权限的配置,简化了授权工作。图2是产品数据权限层次结构的例子,产品包含了设计数据、财务数据,项目、产品、产品设计文档、CAD图纸等,这些数据资源都处于不同的权限层次,项目对象的权限适用于下层各个对象,如产品、产品设计文档等。
(8)会话SESSION。
会话(SESSIONS)是用户与激活的角色集合之间的映射,一个用户建立一个会话时,可以激活不同的角色。
用户组角色分配(UGA)、角色权限分配(PA)、用户与用户组分配、会话角色、用户会话是PDM-RBAC模型元素间的重要关系。在PDM系统中,用户组与角色,角色和权限是多对多的关系。例如,一个用户组可以拥有一个或多个角色,而一个角色也可以被分配给一个或多个用户组;一个角色可以访问一个或多个资源,而一个资源也可以被一个或多个角色访问。这种方式带来了给角色分配权限和给角色分配用户组时的灵活性和细粒度。
4 基于权限位的访问控制判断算法
上述PDM-RBAC模型存在正负权限(赋予为正权限,拒绝为负权限),系统权限配置中会出现相同主体对客体具有互斥的权限。例如,某项配置要求主体执行某项操作,而另一项配置却禁止主体执行此项操作。为了解决正负权限的策略冲突问题,并实现某用户各种角色权限的合并计算,本节给出权限操作位的定义和基于权限位的计算方法。
4.1 权限操作定义
PDM系统中可独立赋予的数据权限操作有读取、修改、删除、设定安全标识。每个权限操作有三种状态:有、无、拒绝。本文采用两位二进制编码来表示操作状态。由于“拒绝”权限具有优先否决权,在整个运算过程中拒绝的状态保持不变,二进制代码11与其它两位二进制码(00,01,10)进行按位或运算后的结果仍然是11,状态不发生改变,所以我们取11为“拒绝”权限的状态标识。由此得出以下权限操作的状态设置:
(1)11:拒绝操作权限状态;
(2)00:没有配置操作权限状态;
(3)01:具有操作权限状态。
表1列出了各种权限操作的二进制代码值。
表1 权限操作代码
其中,“读取”操作状态为1、2位;“修改”操作状态为3、4位;“删除”操作状态为5、6位;“设定安全标识”操作状态为7、8位。由此得出全部控制为01010101,拒绝设定安全标识为11000000,设定安全标识为01000000,读取为00000001。
4.2 基于权限位的访问权限计算
PDM系统中一个用户可以有多个角色,用户所属的用户组又可能有新的角色分配,这些角色对某个资源可能都有权限配置,因此需要对这些权限配置进行合并计算。基于上述权限位操作定义下的某用户访问权限计算方法,如算法1所示:
算法1基于权限位的访问权限计算
4.3 实验结果
基于PDM-RBAC模型和基于权限位的访问控制判断算法,本文以某企业为例,设定PDM系统中用户100 000个、用户组1 000个、角色200个,并参照企业的安全管理策略,就RBAC和PDM-RBAC两种访问控制方法对PDM系统性能影响,实施了随着数据资源的增加,授权数据量和访问时间变化的实验。实验结果如图3和图4所示。图3显示,随着数据资源规模的增加,PDM-RBAC的授权数据量远小于RBAC中的授权数据量。图4显示,不同的访问控制方法所花费的时间不一样,其中PDM-RBAC随着数据规模的增加,访问权限的计算时间趋向稳定,且保持在3.5秒以下;RBAC模型中的计算时间随着数据规模的增加线性增长。由此可以看出,PDM-RBAC模型和基于权限位的访问权限计算在大型信息系统的权限管理中具有高效性。
图3 授权数据量对比图
图4 运行时间对比图
5 结束语
本文分析了某企业的PDM访问控制需求,针对其复杂性,在已有的RBAC模型基础上,提出了PDM-RBAC模型。该模型的用户组层次有利于企业的职责分离,简化了安全管理员的管理工作;权限层次结构可以有效地组织数据权限和减少授权数据量。同时,针对系统中存在的正负权限冲突,引入了权限位的访问决策合并算法。实验结果表明,该模型和算法在大型信息系统的权限管理中具有高效性。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/