开篇:润墨网以专业的文秘视角,为您筛选了一篇RBAC模型时间约束的OCL描述范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:基于角色的访问控制模型以其灵活性、方便性和安全性在许多系统的权限管理中得到普遍应用,而引入时间约束后的角色访问控制更能增强系统的安全性和模型的描述能力。该文使用对象约束语言OCL来描述模型中的时间约束,使模型更加直观和精确。
关键词:角色访问控制;对象约束语言;角色;时间约束
中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)36-10619-03
Time Constraint rbac Model Based on OCL
XU Hong-wei, XIE Sheng-xian, LI Jun-qing, ZHANG Sha-sha
(School of Computer Science, Liaocheng University, Liaocheng 252059, China)
Abstract: Access control model based on the role obtains wide spread application in many system's jurisdiction management because of its flexibility, convenience and security,but the role access control after introducing the time-constraint can strengthen system's security and the model descriptive power. This article uses object restraint language OCL to describe the time-constraint in the model, and it makes the model to be more direct-viewing and more precise.
Key words: role-based access control; object constraint language; role; time constraint
基于角色的访问控制(role-based access control,简称RBAC)以其灵活的授权机制和完善的安全策略得到人们广泛的重视和普遍的应用[1-5]。在RBAC中,权限被赋予了角色,当把一个角色指定给一个用户时,该用户就拥有了这个角色所包含的权限。而RBAC的约束规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则[1]。
随着研究的不断深入,人们发现RBAC及其扩充模型虽然易于管理而且降低了复杂性、成本和发生错误的概率,但是因为没有引入时间概念,更没有考虑随时间变化而引起模型的动态变化以及其授权约束与时间约束无关,而极大的削弱了系统的安全性和模型的描述能力。在时间约束方面,文献[1]提出了一个引入时间约束的角色访问控制模型,文献[6]对权限的定义进行了扩展,并在权限的继承方式中加进了时间约束。本文参考[1,6]给出了引入时间约束的RBAC,并用ocl对模型中的时间约束进行描述,从而增强了系统的安全性和模型的描述能力。
1 RBAC及引入时间的授权约束
1.1 RBAC
当MAC和DAC逐渐不能够满足大型系统的应用需求时,RBAC以其灵活性、方便性和安全性在许多系统尤其是大型数据库系统的权限管理中得到普遍应用。在RBAC的的研究过程中,RBAC96[7]模型是研究较为深入且全面的一个,如图1所示。
RBAC96的数学描述如下:
Users={u1,u2……um}所有用户(user)的集合;
Roles={r1,r2……rn }所有角色(role)的集合;
Session={ s1,s2……sp }所有会话(session)的集合;
Perms=2( ops × objects )所有权限(permission)的集合;
Ops={ op1,op2……opk }所有操作(operation)的集合;
Objects={ ob1,ob2……obl }所有访问对象的集合;
P?哿A P × R,PA是权限到角色的多对多关系,表示角色被赋予的权限;
U?哿A U × R,UA是用户到角色的多对多关系,表示用户被赋予的角色;
R?哿H R × R,RH可以理解为角色层次之间的关系;
Users:(S->U),一个函数映射到每一个会话Si到一个用户-User(Si)(限制会话的时间)。
Roles:S->2R,一个函数映射每一个会话Si到角色集-Roles(Si)?哿{r│(user(Si),r∈UA)} (可以随时间变化而变化)。还有会话拥有的权限为∪r∈roles(si){P│(p,r)∈PA} 。
1.2 引入时间的授权约束
1.2.1 约束的时间特性分类
在对RBAC引入时间约束之前,我们首先对时间约束进行简单的分类,根据约束的时间特性,时间约束可分为激活时间范围约束、激活时间长度约束和时间范围内激活时间长度约束三类[1]。
1)激活时间范围约束
该类约束规定用户、角色或者权限只能在特定时间范围内可以激活。如一个有工作时间限制的企业中,在非工作时间的范围内,将不允许某些操作的发生,或者不允许某些用户登录进系统。
2)激活时间长度约束
该类约束规定用户、角色或者访问权限每次只可以激活不超过一个固定长度的时间范围。可用该类约束限制某些重要操作或权限,防止因为激活时间过长而被盗用并产生严重后果的可能。
3)时间范围内激活时间长度约束
该类约束规定用户、角色或者访问许可在一定时间范围内的累计激活时间不超过一个规定的上限,其对于用户的限定特别有用,可以控制用户的平均登录时间。
1.2.2 时间约束的定义
时间约束(T_C)定义如下[1]:
T_C=S_S-C|M_S_C,
S_S_C=In_Range(C_TRS)|Last_Length(C,i)
M_S_C=TR_Last_Length(C,TRS,2N).
其中,T_C表示时间约束,S_S_C表示T_C中所有作用于单会话上的时间约束集合,M_S_C表示T_C中所有作用于多会话上的时间约束集合。
TE={ti│i∈N} ,TE是虚拟时间世界所有时间点的集合,ti∈TE代表虚拟时间表世界的一个时间点,它并不一定要与现实时间保持一致。
TR={(ti,tj)│ti,tj∈T,i
TRS=2TR表示由时间区间构成的集合。
2 OCL概述
2.1 概念
OCL(0bject Constraint language,对象约束语言)是一种制定约束的文本语言。约束是一些条件,这些条件是关于1)完成既定模型的系统的所有状态的条件;2)上述状态间的转变的条件[8]。
OCL是一种声明式语言,描述了做什么,没有描述如何做。它规定系统必须支持什么样的约束,而不是怎么样实现这一约束。
OCL是一种保持了读写功能的形式语言,任何OCL操作都不会对模型本身造成影响或者改变,这也意味着系统状态不会因为OCL表达式而改变。并且OCL表达式被计算后返回的只是值。
2.2 用途
OCL功能强大,其具体语言可以用于许多不同的用途,详细归纳如下:
1)用于编写导航表达式、布尔表达式和其他查询语句;
2)用于构建约束、监护条件、动作、断言和其它UML表达式;
3)作为一种查询语言;
4)在类模型中指定关于类和类型的不变式;
5)描述关于操作和方法的前置条件和后置条件;
6)为属性批定派生规则;
7)为消息和动作指定一个目标和一个目标集合。
其中,描述约束是OCL最普遍的应用,并且只有用OCL语言描述模型中的时间约束才能使约束描述更加标准化,使模型更加直观和精确。
2.3 操作
为便于对集合进行操纵,OCL专门定义了一些操作。如下所示[9]:
1)select:功能相当于“过滤器”,用于从集合中按照指定的准则挑选出其中的一些项,组成一个新的集合。
2)reject:与select相反,用于从集合中挑选出不满足指定准则的一些项,组成一个新的集合。
3)collect:用于从其它一个或多个集合搜集到的信息创建一个新的集合。
4)forAll:指定一个应用于集合中每个元素的约束。
5)exists:确 定某个值是否存在于集合中的一个或多个成员中。
6)iterate:访问集合中的每个成员,对每个元素进行计算和查询。
对象约束语言的表达式是通过定义的实例语境来进行说明。在每个OCL表达式中使用保留字self来表示对象,表达式中的对象是由关键字context来说明,标注inv明约束为变量约束。下面是一些普通导航表达式:
Context 上下文
Item.selectorselector是项目的一个属性名或项目链接的目标末端的角色名。
Set->size 集合中元素的数目。
Set->set-property集合的特性。
Self 表示当前对象
Operator常用的数学和布尔操作符:==+-*/not
3 RBAC中时间约束的OCL描述
用OCL对时间约束举例描述如下:
3.1 激活时间范围约束
Context time_range
-the time_range of user roles permission may not exceed its constraint
Inv:
3.2 激活时间长度约束
Context time_length
-the user roles permission must in the fixed time length
Inv:
其中,tl为一个固定长度的时间范围。
3.3 激活平均时间和激活时间间隔
Context average_time
-the average activating time must be no less than one Fixed value
Inv:
Context time_interval
-the activating time interval must be no less than one Fixed value
Inv:
其中,Vf为一个固定的时间值。
4 结束语
该文在RBAC的基础上引入时间约束使得系统有着更全面、更具体的安全属性描述能力,用标准约束描述语OCL来描述时间约束使模型更加精确和标准化,但基于时间的约束还需要进一步的研究,更期待着该描述方式能应用到其它的访问控制模型中。
参考文献:
[1] 黄建,卿斯汉,温红子.带时间特性的角色访问控制[J].软件学报,2003(11).
[2] Junqing Li,Xinyou Li,Shengxian Xie,Chen Chen,Guangliang Liu,Yuxia Pan.Multi-Hierarchy and Fine-Grained Task-role-based Access Control in Collaborative Environments[C].Singapore,IEEM 2008:1591-1595.
[3] Junqing Li,Xinyou Li,Shengxian Xie,Chen Chen,HuiShan Yu,Guangliang Liu.A fine-grained time-constraint role-based access control using OCL[C]. London,ICDIM 2008:81-86.
[4] Junqing Li,Xinyou Li,Shengxian Xie,Chen Chen.A Trust-based Access Control Model in P2P Networks using Ant Colony Optimization[C].China,ISICA 2008:180-183.
[5] 李俊青,谢圣献,刘广亮,陈晨.P2P网络基于蚁群优化的动态细粒度访问控制框架[J].微电子学与计算机,2008,25(10):31-33.
[6] 张少敏,王保义,周利华.一种具有时间约束的基于角色的授权管理模型[J].武汉大学学报,2006(10).
[7] Sandhu R,Coyne E,Feinstein H,et al.Role-Based Access Control Model[J].IEEE Computer,1996,29(2):82-47.
[8] 董惠林.基于UML和OCL的空间数据库模型的研究[D].湖北大学,2006.
[9] 罗清胜.OCL约束验证与实现方法研究[D].江西财经大学,2006.