李全文
(中兵光电科技股份有限公司 ,北京 100176)
随着产品知识产权保护意识的不断加强,用户对于网络协同设计环境下的产品模型保护有了更大的需求。虽然访问控制经过了几十年的发展,但是应用到CAD环境中的并不多。近年来随着很多模型的图纸被修改或者窃取,使得人们对模型的保护越来越重视,近些年来对CAD模型的研究也越来越多。本文将TRBAC模型的理论应用到CAD系统中,提出一个基于TRBAC的CAD模型加密的访问控制模型。
在CAD的网络协同设计环境中,数据处理模式不同于传统的系统数据处理模式---内部数据控制和管理,而是使用内部-外部数据信息交流的方式。安全访问控制方案的设计必须适应这种数据流动方式的改变。不同的设计单位、用户对框架的访问控制服务也有不同的要求。例如,在安全级别要求较高的部门中,往往需要采用严格的设计策略,用户需要利用访问控制来保护敏感项目或项目中的敏感设计对象,以及把关键的设计工作保留给重要用户;而在安全级别要求较低的部门中,访问控制不需要很严格。因此访问控制系统必须是有弹性、可定制的,以便满足不同设计环境的需要。访问控制系统还要管理记录访问控制的信息,并能够对这些记录信息进行访问控制。
根据系统设计需求,对访问控制系统进行了设计。服务器端分两部分:访问控制部分和应用服务器部分。访问控制部分主要由身份验证服务器、访问控制服务器组成。访问控制服务器是系统的核心部分,为整个系统提供访问控制服务,也就是控制所有访问者的访问请求,根据已制定的安全规则,决定访问是否合法。各部分需要实现如下功能:
1)用户访问应用服务器时,首先必须向身份验证服务器出示自己的身份,经验证合法后方可进入角色服务器;
2)身份验证通过之后,通过用户角色服务器方可获得该用户的角色身份,并向角色权限服务器获得其权限结果。将角色权限和访问请求发给访问控制服务器,由其进行决策判断,根据决策结果决定是否向应用服务器提交用户的访问请求;
3)角色库存储系统定义的角色集合,角色库由系统管理员管理;
4)角色权限库存储每个角色可访问数据资源的集合,该库由系统管理员负责管理维护;
5)审计信息服务器负责处理用户访问使用数据的纪录,系统管理员可以浏览、修改系统访问纪录;
6)审计信息库存储用户的访问使用纪录,由系统管理员通过审计信息服务器管理、维护和使用。
系统的结构示意图如图1所示。
图1 系统结构示意图
应用服务器是CAD模型数据的核心部分,主要用来存储产品模型,是访问控制系统保护的对象。任何不通过访问控制系统许可的对象不能对其内部数据进行访问。应用服务器的对外接口部分响应通过了权限控制模块的客户端的数据请求,根据用户的角色身份所具有的权限,为其产生与其权限对应的产品简化模型视图,模型数据经过传输加密后,发送到合法的客户端。
结合基于任务的访问控制技术,我们提出了基于任务角色的多层次动态访问控制模型。相对于传统的基于角色的访问控制模型和基于任务的访问控制模型,我们引入了角色分层和权限分层管理。角色分层简化了权限表示及角色授权过程;权限分层适应了CAD产品多层次结构的特点。
模型相关定义如下:
定义1(对象,数据集):产品模型的所有数据构成了协同设计的操作数据集,用D表示。对象是指产品模型数据的一个子集,记为ob,且对∀ob,ob⊆D。在层次建模中,ob可以是CAD产品模型的拓扑面、体特征、零件体或装配体等。
定义2 (操作集,操作子集):操作集(记为OP)是一个有限集,其中的每个元素都表示一种可以对对象实施的操作op。如果o⊆OP,则称o为一个操作子集。
定义3(访问权限,访问权限集): 访问权限集是集合D×2OP的子集,记为P。P中的每个元素表示一种权限,记为p(ob,o)。每一个权限以对象为单位进行授权,其直观含义是,若o⊆OP且ob⊆D,则访问权限p(ob,o)⊆P,表示对对象ob可以执行操作子集o中的各项操作。
定义4 用户(User):是指协同环境中被赋予一定角色的集合,具有相应角色,并依据角色的任务来行使权限,通常指从事协同活动的人员,记为U。一个用户可以有多个角色。
定义5(角色集,角色):角色集是由访问权限集的一些子集构成的集合,记为R,即R⊆2P。角色集的每一个元素表示一种角色r,r是一组权限的集合,即∀r⊆R,有r⊆P。
定义6(角色继承):∀r1,r2⊆R,如果r1⊆r2,则称r2继承r1,即满足继承关系,用r1→r2表示,其中r1称为父角色,r2为子角色。角色继承关系是一种偏序关系,具有自反性、传递性和反对称性。
定义7 会话(Sessions):是一个动态概念,用户激活角色集时建立会话。会话是一个用户与多个角色的映射,会话和角色是多对多的关系,用户在会话中所具有的权限是其所有的角色拥有权限集合的并集,记为S。
定义8 任务(Task):工作流程中的一个逻辑单元,完成某种特殊功能,即工作流的活动,或是若干个活动的组成。任务有静止、存在、失败、运行、等待和完成6种基本状态。任务之间存在着状态依赖关系。状态依赖包括顺序依赖、失败依赖、同步依赖。模型根据状态依赖这个动态约束进行动态授权。记为T。
定义9 约束(Constraints):表示整个模型各个元素之间的限制条件,记为C。
定义10 角色分层(Role Hierarch):角色到角色之间的二元关系,具体表现为在一个组织内部的角色等级关系,即关于角色的偏序关系,它包括继承机制,记为RH。
定义11 (权限状态,permission state):这是权限在执行过程中可能经历的状态,令p⊆P,则该权限的状态为p〈state〉。在模型中定义如下5种权限状态:睡眠状态(dormant),就绪状态(ready),挂起状态(hold),运行状态(running),完成状态(accomplished)。
定义12 权限关系(permission relation):指不同权限之间的依赖关系。根据权限执行的时间顺序,可以分为如下3类关系:同步关系,顺序关系,互斥关系。
为更好的提高管理效率,在角色划分中需要重点考虑角色的层次性。在系统中角色划分为三个层次,分别为最高级别系统管理员层、高级别角色层以及普通角色层。系统管理员层拥有最高的权限,主要负责系统角色权限的初始化和系统的管理维护。系统管理员角色必须由两个及两个以上的人共同担任,同时系统管理员不能具备行使一般的设计工作的能力。高级别角色在系统中既可以从事设计工作,完成产品开发中的设计功能,又可以进行权限授予。普通角色层为一般的设计人员,只具备完成产品开发中的研发设计能力。
角色划分根据任务需求来设定,角色在系统中必须执行一定的任务。用符号表示为:
1)R={r1,r2,r3,…,rn}表示角色集合。rn表示具体的某个角色。
2)T={t1,t2,t3,…tn}表示任务集合。tn表示具体的某项任务。
3)RT×2T表示角色的任务集合。
访问控制是对系统权限的控制,也就是用户对某一程序是否拥有执行权。权限必须是具体的可以被控制的。将权限进行合理的划分,合理的分配给角色是基于角色的权限控制系统实施的关键。权限的分配过程包括权限分层定义、角色权限分配、用户角色分配。
1)权限分层定义,主要是根据产品模型的功能特点及设计者的协同目的对产品模型进行划分,分别定义所需要的部件层权限、零件层权限和特征层权限。此过程可以映射为数据集D与操作集OP的关联,一般可以使用二元组〈ob,op〉表示。但是为了实现动态权限管理,访问权限表示为三元组〈ob,op,state〉。
2)角色权限分配,主要是根据不同用户的设计任务及权限间的相互关系来定义角色关联的权限集合。角色权限分配可以映射为角色集合R与访问权限集合P的关系,可用二元组〈r,p〉来表示。在权限的分配过程中还必须考虑权限的互斥关系,防止角色权限的冲突。
3)用户角色分配,可以表示为用户集合U与角色集合R的二元关系,可以使用二元组〈u,r〉来表示。用户角色分配过程中必须考虑角色的冲突关系。角色的任务集合决定了角色具体能够完成的任务,系统必须具有具体的功能模块,对功能模块的使用对应了角色的具体权限集合。
CAD模型的加密是指在协同环境下将自己所做的模型保护起来,同时要满足访问控制的要求,即角色等级高的用户能查看角色等级低的用户的模型,同时CAD模型既要有加密的算法也要有解密的算法。这里我们采用DES算法。
本文分析了信息系统的安全需求及目标,提出了基于任务角色的多层次动态访问控制模型,在此基础上构架了系统的总体结构。针对系统的实施,详细对系统模型的角色划分、权限分配、任务划分以及约束管理进行了分析,为基于CAD的访问控制方案的实施奠定了基础。
[1] 韩伟力.分布式环境下的约束访问控制技术研究[D]. 浙江大学, 2003.
[2] 雷浩, 黄建, 冯登国.协同环境中共有资源的细粒度协作访问控制策略[J].软件学报, 2005,16(5): 1000-1011.
[3] 洪帆, 何绪斌, 徐智勇.基于角色的访问控制[J].小型微型计算机系统, 2003, 2(2): 198-200.
[4] 方萃浩, 叶修梓, 彭维, 张引.协同环境下CAD模型的多层次动态安全访问控制[J].软件学报, 2007, 18(9): 2295-2305.