邹志文 庄泽民 吴江
摘 要:分析了RBAC时限访问控制模型,对时间约束的及时恢复问题进行了探讨。选择合理的终止会话集合,使系统恢复到安全状态。对多域环境下面临的匿名访问、权限隐蔽提升和指派传递失控等安全问题提出了解决方案:扩展现有安全模型或建立新的安全模型实现多域环境下的安全管理和协同操作,允许在不同安全域的个体和系统间进行大量信息交换和数据共享等互操作。提出了基于RBAC的时限访问控制模型的时间判断点选择算法,该算法能改善静态方式下时间准确性和效率方面的不足。
关键词:RBAC;时限约束;多域
DOI:10.11907/rjdk.171451
中图分类号:TP312 文献标识码:A 文章编号:1672-7800(2017)009-0087-03
Abstract:Based on the analysis of RBAC time-limited access control model, the Timely recovery of time constraint is discussed. Choosing a reasonable algorithm to terminate the session set to restore the system to the security state and propose a solution to the security problems such as anonymous access, privilege concealment and assignment failure. Extending existing security models or creating new security models is to implement security management and collaboration in a multi-domain environment,to allow interoperability among a large number of information exchange and data sharing between individuals and systems belonging to different security domains. A selection algorithm of time decision point selection based on RBAC time - limited access control model is proposed, which can improve the accuracy of time and efficiency in static mode.
Key Words:RBAC; time constraint; multi-domain
0 引言
基于角色的访问控制模型(RBAC)是目前安全模型领域的研究热点。多域间的互操作为分布式环境下资源和服务的最大共享创造了条件,大大提高了分布式系统的性能和资源利用率。例如,在P2P网络中,节点间通过交互操作实现资源共享;在分布式数据库中,用户间通过互操作对多域数据库进行访问。目前,跨域互操作技术在政府、军队、金融和医疗等许多重要领域都得到了广泛应用。
RBAC一直以来都是传统Web应用中访问控制模型的首选。但传统架构风格的诸多不良设计给权限检索及维护带来一系列问题。文献[1]在引入时间限制后,模型并沒有考虑随时间的动态变化,并且委托授权也与时间限制无关,这大大降低了系统效率和对无权访问的安全性。文献[2]引入时间约束判定后,虽然考虑了模型的动态变化,但对于精确程度方面研究略有不足。本文在前人的基础上进行改进,对如何判断和找出时间判断点给出结论。文献[3]、文献[4]采用时间限制的基于角色的转授权模型,描述了角色授权和角色撤销机制,提出了完备的具有时间限制的基于角色的转授权模型。文献[5]提出了一种利用概念格将角色权限和属性进行关联分析的模型,根据用户属性将满足需求的角色自动分配给新用户。文献[6]通过各种实验证明利用概念格进行角色挖掘具有非常显著的效果。文献[7]、文献[8]首次提出了没有角色层次的基于角色的委托模型,并介绍了一些扩展模型,如授权撤销、部分委托、多步委托和具有角色层次的委托,但没考虑到多域环境下如何提高TRBAC模型的效率和安全性。
本文尝试在多域环境下通过动态计算方式对权限是否合法进行角色判定,设计一种时间判断点选择算法,尽可能提高系统效率和安全性能。
1 多域环境下时间判断点选择策略
多域由多个互为契约关系的安全域组成,而安全域就是一个有边界的、由受保护的客体和用户群组成,由一位安全管理员来管理和维护一组安全策略的区域,当一个域需要允许以前不相识的用户或实体访问自己的资源时,必须设置相应的安全机制来确保未知的访问被控制在预先定义的已知共享策略范畴之内。当这样的跨域访问在多个域间被允许,并且各系统仍然沿用自身原有的安全策略时,这些域就被看作是组成了一个多域环境,如图1所示。
对于两个来自不同域A和B的客体OA、OB,角色rA和rB对于某权限a可能存在以下4种关系[9]:①包含关系:角色r的权限集合Pset(r)包括所有直接或间接指派给角色r的权限;②相等关系:如果rA包含rB且rB包含rA,那么rA与rB相等;③相交关系:如果Pset(rA)和Pset(rB)有相同的共享权限,且rA不包含rB,rB不包含rA,那么rA与rB相交;④无关:如果角色rA和rB不共享任何权限,那么rA与rB无关。
因此,在n个协同域组成的多域环境中,可借助上述4类角色关联规则,通过两两相关的迭代方法为不同域的角色建立关联,进行角色传递和权限继承,从而实现跨域安全互操作。在第一次迭代时,用域1和域2的最高级角色合成域1和域2的RBAC安全策略;在随后的迭代中,一条新的RBAC策略由前面迭代中产生的合成RBAC策略生成;在经过n-1次迭代后,n个域的RBAC策略集成为全局性的多域互操作策略。此外,在每次迭代中新产生的冗余角色从集成RBAC策略中删除,即多域通过定义指派(Credentials)、指派链(Credential Chains)、支持链(Support Chains)、证据(Proofs)、子证据(Sub-Proofs)和证据监控(Proof Monitor)等一系列概念完成多个域间角色转换。如图2所示,根据支持链(Supporting Chain)对主链(Primary Chain)的证明,可推导出“主体A可以获得主体B所拥有的角色role2”这一结论。endprint
时间约束分为3大类:①激活时间范围约束;②激活时间长度约束;③时间范围内激活时间长度限制[10-13]。以往的研究中对于所选会话是否符合当前的时限约束,经常选择一段固定时间进行判断,但这段时间中包含n个会话,每个会话的结束时间和持续时间又都不相同,如果按照一个相同的时间段去判断可能造成比较大的误差。如果所选的时间段相隔时间较长,会导致不应继续的权限仍然处于允许状态,使系统安全性下降;所选时间间隔较短,则会导致系统频繁不断地判断,虽从某种程度上保证了系统的安全性,但大大降低了系统的工作效率。
比如,将同一时间段内所有会话结束时间值放入集合s1={10:01,10:02,10:03,10:04,10:05,10:06,10:09,10:16,10:25,10:26,10:36},按以往方式经常会选择一段固定时间(下文以△T法简称)判断会话是否还在条件允许内。假设从10:00开始,选取固定时间t1=1分钟和t2=1秒,当选取t=t1时,每隔一分钟就去判断会话是否符合规则,而当选取t=t2时,每隔一秒钟就要去判断会话是否符合规则,t2相对于t1对于集合s1来说,效率明显低了很多。而当面对的集合并非是整数间隔,比如s2={10:01:30,10:02:21,10:03:29,10:04:33,10:05:41,10:06:46,10:09:48,10:16:21,10:25:01,10:26:03,10:36:08}时,如此不规则的时间间隔还像往常一样选取t1或t2,选取t1的话,后续会话总会慢上几秒钟或几分钟,对安全性略显无力,而选取t2则可满足一切要求。但是当会话集合时间段再往下细分,那么t2也无法满足需求了。
为解决TRBAC模型中出现的效率和安全性不足,可设计如下办法:不论集合如何变动,设计一种动态方式随着会话时间的改变而相应改变判断的时机,本文提出时间判断点这个概念,即在这个时间点来判断当前会话是否满足当前权限要求。
当不存在时间判断点时,将会话集合中首先结束的会话时间点作为第一个时间判断点,之后将第一个判断点之后新产生的会话加入到集合中,再对两个时间判断点之间产生的新会话进行统计,重新进行新一轮筛选,选出下一个时间判断点。本文对以往静态式的处理进行改进,采用动态手段增加其安全性和有效性。
查找动态判断点算法描述如下:
Tpo=Sort(Tpo) // 对Tpo进行排序
Tpn=Sort(Tpn) //对Tpn进行排序
If(Tpn!=Φ) //求下一个时间判断点t
Merger-T(Tpo,Tpn) //合并2个集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作为时间判断点
Tpo=Tpo-{t} //从集合中去掉所选时间判断点
while((currenttime=GetCurTime())<=t)//求Tpn:在判断点前出现新的会话,加 入Tpn
if Endtime(s)<=t //如果在判断点之内结束
Merger-T(Tpo,Tpn) //合并2个集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作为时间判断点
ifelse Endtime(s)>t //如结束时间点大于判断点
Insert(Tpn,|t-Endtime(s)|) //将与时间判断点的差值放入Tpn
Merger-T(Tpo,Tpn) //合并2个集合到Tpo中
t=FindMin(Tpo) //在Tpo中找到最小值作为时间判断点
2 算法分析
按照固定△T进行安全性检查,效率和安全往往不能令人满意,本文提出的时间点选择算法描述如下:
对一段时间内不同的会话结束时间的不同,可将会话结束时间段放入一个数组进行管理,对于每个元素的排列规则分为以下几个类型:double a[]={t1, t2, t3,…, tn}(排好序),用△T法时取时间T:
(1)当T< t1,在最短会话结束前就开始判断是否符合规则,而动态方式则从时间点t1开始判断,相对于△T法效率略高。
(2)当T= t1,两种方式都在时间点t1进行判断,△T法过时间T后再进行判断,而动态方式则重新计算新的时间判断点,对后续的{t2,t3....tn}所在数组重新进行判断,对于后续的t2依旧是动态方式比较高效。
(3)当T> tn,动态方式如前,而△T法则等待所有会话结束后再进行判断,故不考虑T> tn的情况。
(4)当t1≤T≤ t2,相比情况(2),从t2往后的各个时间段效率降低。
综上几种情况看,当t(n/2)≤T≤ t(n/2+1)时,平均效率最高。为了便于描述,取T=t(n/2)时△T法效率最高。
对于动态方式,相比于△T法,需要对时间段数组进行排序,当数据过多时排序时间会延长,效率降低。
根据会话与客户端的数量规模,依次挑选几个有代表性的数据进行系统性能测试,主要記录系统各主要操作的响应时间,以及根据实际使用情况估算出在各数据量下的操作时间和系统响应时间,系统性能测试结果如表1所示。
从表1可以看出,相对于△T法而言,动态时间点法在修改权限以及权限检测的时间上大多比前者快,但是当会话数量较多时,△T法则更有优势。
权限检查测试是检查系统中的会话是否依照规则下放或获得权限。验证会话是否有客户端授权,用户是否有操作该客户端的权限。根据动态方式的权限检查,可以拦截非法的执行操作,保护数据安全。只有符合权限验证的备份任务能够正常执行。权限检查测试用例如表2所示。endprint
从表2可知,对于△T法而言,动态时间点法在权限分发时可能会有短时间安全隐患的真空期,时间判断点算法相对于△T法安全性有所提高。
由表 1 可以看出,当会话数量为1 000,客户端数量为1 000 时,系统整体性能较好,响应时间较短。当会话数量和客户端数量增多时,系统性能明显下降。因为在新建会话时需要向数据库中插入数据,插入性能随着会话数量的增多而降低,会话与权限的关联表数量也急剧增多,因为每个会话都对应了多个关联记录。当会话数量大量增大时,动态耗时明显上升,可见会话数量上升会影响其效率,但是多数情况还是优于前者。
如表2所示,当从未授权转换成已授权时,动态方式比静态方式成功率更高,动态方式的安全性相对于以往的静态方式安全可靠性更高。
3 结语
本文在多域情况下对动态时间判断点给出了解决算法,与以往研究相比,解决了文献[2]中对于精确程度方面的不足,使之更高效合理。本文在前人研究基础上,对如何判断和找出时间判断点给出了方案。
今后的研究应解决以下问题:①如何缩短排序时间,避免影响效率;②对于时间判断点的动态变化,时间变化如何引起模型变化还有待进一步研究。
参考文献:
[1] 冯俊,王箭.一种基于T-RBAC的访问控制改进模型[J].计算机工程,2012,38(16):138-141.
[2] 高利军,徐蕾.TRBAC中翻转点选择和安全恢复算法的研究[J].软件学报,2013,24(3):564-574.
[3] 陈学龙,郑洪源,丁秋林.一种基于T-RBAC的动态多级Web服务访问控制模型[J].计算机科学,2014,41(3):181-222.
[4] 任海鹏.访问控制模型研究现状及展望[J].计算机与数字工程,2013,41(3):452-456.
[5] 李双.一种扩展的基于角色的访问控制模型[J].计算机工程与应用,2012,48(19):54-60.
[6] 赵卫东,毕晓清,卢新明.基于角色的细粒度访问控制模型的设计与实现[J].计算机工程与设计,2013,34(2):474-479.
[7] BARKAE, SANDHUR. A role-based delegation model and some extensions[C].Proc of the 23rd National in formation Systems Security Conference. Baltimore,MD:NIST,2000:168-177.
[8] BARKA E, SANDHU R. Role-based delegation model/hierarchicalroles(RBDM 1)[C].Procofthe 20th Annual Computer Security Applications Conference.Tucson,Arizona:IEEE ComputerSociety,2004:396-404.
[9] 道煒,汤庸,冀高峰,等.基于时限的角色访问控制委托模型[J].计算机科学,2008,35(3):277-279.
[10] 夏启寿,范训礼,殷晓玲.基于时间的RBAC转授权模型[J].西北大学学报:自然科学版,2009,38(6): 932-936.
[11] ERFANI S. Security management system functional architecturefor enterprise network[C].The 7th IEEE/IFIP Network Opera-tions and Management Symposium.Honolulu,USA,2000.
[12] 李凤华,苏铓,史国振,等.访问控制模型研究进展及发展趋势[J].电子学报,2012,40(4):805-813.
[13] 邓勇,张琳,王汝传,等.网格计算中基于信任度的动态角色访问控制的研究[J].计算机科学,2010(1):51-54.
(责任编辑:杜能钢)endprint