上海奕胜信息科技有限公司内容提要:PLM系统中访问控制的研究现状与实现办法大汇总
1、引言
产品生命周期管理(Product Lifecycle Management,简称PLM)系统涉及产品的开发、生产、打包和分配等各种流程,在执行业务流程时,各种文档和数据在流程中传播,如何确保这些信息的安全就变得十分重要。
访问控制是保证信息安全的一种主要手段,目前常见的访问控制模型有DAC(自主访问控制)、MAC(强制访问控制)、RBAC(基于角色的访问控制)和TBAC(基于工作流的访问控制)。由于PLM系统对访问控制的要求非常复杂,这些模型一般只能满足部分需求。
可扩展访问控制标记语言XACML(eXtensible AccessControl Markup Language,简称XACML)是一种越来越被广泛接受的新型访问控制策略描述语言。OASIS在制定这种标记语言的同时给出了一个标准化的访问控制框架,但此框架目前还不能解决访问控制策略的管理问题。本文针对PLM系统对访问控制的特定需求,提出一种基于条件的访问控制模型,并通过改进XACML的访问控制框架来实现此模型,使其不仅可以满足同一用户在同一对象的不同生命周期发生权限变化,还可以实现分级的授权管理,将策略的管理问题考虑进来,避免了在管理方面的风险。
2、PLM系统中访问控制的需求
企业对PLM系统的访问控制一般有以下需求:权限主体和客体多元化、生命周期不同阶段权限变化、基于规则授权和基于矩阵授权的结合、权限的分级管理以及时效性控制等。其中最主要的两个需求为:
(1)生命周期中的权限变化:对象生命周期是PLM系统中最为重要的概念。用户常常在对象的不同生命周期阶段有不同的权限。如设计员在图纸对象的设计阶段有修改的权限,但在该图纸发布之后,设计员就只有浏览和读的权限了。而目前已有的PLM系统大多采用基于角色的访问控制,这种授权模式基本上是静态的,用户在登陆了系统后就被赋予了固定的权限,并且在其退出系统之前都不会改变。
(2)分级的授权管理:目前,大部分PLM系统的授权管理都由全局的系统管理员来担任,该管理员可以无所不为,实际上成了企业安全最大的漏洞。因为在实际应用中,不仅有全局化的数据,各个部门也有各自的数据,这就要求管理员的权限必须受到限制。不能随意访问各个部门的私有数据。此外,从实际的运行管理来讲,该系统管理员也无法详细了解各个部门的人员对权限使用的要求,无法更好地设置权限。因此,需要建立分级的授权管理机制。
此外,不同行业的PLM系统对访问控制的需求差异比较大,不同的企业在PLM系统的实施过程中,又会提出各种各样的特定授权需求,因此所设计的访问控制模型必须是开放的,易于扩展的。
基于上述问题,本文提出一种基于条件的访问控制模型,它可以满足系统对访问控制的各种需求。
3、访问控制的研究现状
访问控制的核心是访问控制策略和基于策略的授权判定。访问控制策略描述IT系统的安全需求,访问控制模型主要研究的是访问控制策略的表示,而访问控制策略自身是否安全以及其是否能够真实、及时地反映实际安全需求,则直接影响整个系统的安全性和用户对系统的满意度。因此,对策略的安全管理也很重要。但是,目前这方面的研究还比较少,比较有代表性的是关于RBAC管理模型的研究,主要有RBAC管理(Administration RBAc,简称ARBAC)模型和基于管理范围的RBAC管理(Scoped Administrationof RBAC,简称SARBAC)模型等。这一系列模型都是基于特定访问控制模型,不能适用于多访问控制模型并存的环境。
OASIS在访问控制及策略管理方面都做了很多工作,制定了XACML策略描述语言,同时也给出了一个标准化的访问控制框架。该框架定义了四个用于实现访问控制的组件,即PEP(策略执行点)、PDP(策略决策点)、PAP(策略访问点)和PIP(策略信息点)。但是,策略的管理问题并不包含在XACML中。为此,在2005年12月又发布了一个基于XACMl.的管理性策略草案,目前该草案还在不断的修订中。草案扩展了XACML规范来描述委托策略和管理请求/管理响应,重点讨论了如何依据委托策略来进行访问请求的判定,阐述了如何在访问请求判定中使用委托策略构建委托策略链,使得在访问请求判定中只使用町信策略。但是,草案并没有给出策略管理的框架。本文在草案的基础上进一步对XACML的访问控制框架进行改进,使其同时解决策略管理问题,并能够满足PLM系统对访问控制的各种需求。
4、访问控制模型的设计与实现
4.1访问控制模型的提出
由于现有的访问控制模型不能完全满足PLM系统的需求,因此提出一种基于条件的访问控制模型,其简化模型如图1所示。
如果主体为普通用户,则对应的客体为资源,表示用户满足特定条件即可对资源进行相应的操作;如果主体是管理用户,则对应的客体为策略集,表示用户满足条件后可进行策略管理。此模型通过改进XACML的访问控制框架来实现。
4.2访问控制框架的改进
改进XACML的访问控制框架,使其不仅能够描述普通用户的访问请求,还能够描述策略管理者的管理请求,如图2所示。
在XACML定义下,一个策略(Policy)包含四方面的内容:目标(Target)、规则(Rules)、规则组合算法(Rule Combining Algorithm)和义务(Obligations)。改进后的模型在Target中加入元素来判断一次请求是访问请求还是管理请求。扩展原有的四个组件,使其能够根据XACML文档中的关键元素区分访问请求和管理请求。具体的实现过程如下:
(1)用户提交访问请求到EPEP(扩展的策略执行点)。此用户可以是普通用户,也可以是策略管理者。
(2)EPEP创建一个XACML请求并发送到EPDP(扩展的策略决策点)。由元素中是否有DelegatedCategories区分此次请求是策略管理者的管理请求还是普通用户的访问请求。管理请求可形式化描述为ER(user,R,environment),其自然语义为“在当前环境environment下,主体user是否对策略R有管理权”,其中R是一条策略,它使用XACML中定义的元素,又可形式化地描述为R(Subject,Resource,Action,Condition),表示“在Condition条件满足时,主体Subject对资源Resource有Action的操作权限”。
(3)EPDP到EPAP(扩展的策略访问点)中去搜索策略,并按照“条件”选择相关的策略进行评估。此策略库中的策略都是有效的,因为在加入策略时就已进行了有效性检查。而这里的“条件”包括关于主体、客体的相关属性以及对象生命周期等信息。若条件满足,则转(5),否则转(4)。
(4)EPDP到EPIP(扩展的策略信息点)去检索与主体、资源或者环境有关的属性值,这砦条件是否需要以及需要几个由步骤(3)取出来的策略所决定。
(5)EPDP评估请求后将决定返回给EPEP。EPEP履行义务,如果该响应是“允许”,则转(6),否则通知用户请求被拒绝。
(6)实现请求,同时把相关信息记录到日志文件里。
4.3应用
我们使用Java语言实现了此模型,并应用于某具有分公司的制造企业中。对于PLM系统中相对莺要的对象生命周期权限更改问题以及分级授权管理问题,利用此模型可有效解决。
(1)生命周期中的权限变化:由于XACML在描述策略方面的方便性和灵活性,所以只要按照其语法在EPAP中加入一条策略即可,由Rule标签中的Ruleld属性指出对象的不同生命周期,元素中的元素定义某一个具体的权限。例如:
(2)分级的授权管理:通过引入元素来实现策略管理问题,如果元素中有Delegated Categories值则说明此次请求是策略管理者的管理请求,否则就是普通用户的访问请求。为实现分级的授权管理,首先假定在一个企业的管理员角色树中,只有根管理员是可信的,他可以委托其他管理员进行授权,由此构造委托链。通过在策略中增加元素说明这是一个受委托者的授权策略,如果此策略的发布者能够按照委托链追溯到一个可信主体,则说明这个策略有效。同时,规定上级管理员只能给他的下级管理员授权,而且同一级别的管理员之间不能互相访问对方的资源,只能管理自己所负责的用户和资源。这样不仅减轻了总管理员的工作量,也保护了各个部门的私有数据。
4.4分析比较
通过步骤(3)的描述可以看出,这属于一种综合的访问控制模型,因为在这种模型中是通过匹配“条件”来实现授权的,而这里的“条件”既可以是主体的身份证书或者角色信息,又可以是客体的环境信息(如所在公司的IP地址)或时间信息(如对象生命周期)等,还可以根据新的需求进一步扩展。而目前已有的任意一种访问控制模型如DAC、MAC、RBAC或者TBAC都侧重于一个方面,从而只能实现部分功能。另外,由于扩展后的EPEP组件可以同时生成访问请求和管理请求,所以町以解决策略管理问题,而现有的ARBAC和SARBAC只是针对角色进行分级管理,不能适用于多访问控制模型并存的环境。因此,这种改进后的模型可以满足PLM系统对访问控制的各种需求。
5、结束语
随着信息化的深入,PLM系统在企业中已被广泛应用,如何满足其在访问控制方面的特殊需求是目前研究的热点。XACML作为一种新型的策略描述语言,正越来越多地被应用在访问控制领域。本文通过分析最新的XACML管理草案,将改进后的XACML框架应用在PLM系统中,不仅较好地满足了PLM系统在访问控制方面的特殊需求,而且由于XML的跨平台性以及XACML的规范化,使得此模型具有良好的开放性和可扩展性。