基于角色的访问(精选7篇)
基于角色的访问 篇1
1 引言
访问控制在Web访问中占据重要的意义,其准确性直接关乎信息数据的安全性,其实现方式又关乎控制的管理灵活性。访问控制的方式主要体现为3种形式,DAC(Discretionary Access Control,自主访问控制),MAC(Mandatory Access Control,强制访问控制)和RBAC(Role-Based Access Control,基于角色的访问控制)。其中,强制访问控制系统直接将权限分配给用户,虽然直接可行,但是管理起来较为麻烦,当用户数量达到一定程度越发棘手。RBAC的出现有效地解决了实际应用过程中产生的这些问题。通过将主体,客体分类成用户,角色,权限3大块,进而基于此分配用户不同的角色,对不同的角色分配不同的权限,整个系统模型得以灵活地管理权限的分配,保证了访问控制的有效性和准确性。简单说,当一个组织机构的人员变动时,只需要对用户角色的分配,角色权限的分配稍加调整,就可以解决相应问题。整个过程实现了用户权限的逻辑分离,降低了系统的维护成本,增强了可操作性。
然后在实践中,依然可以发现以下问题:
(1)简单说,一个用户可以分配多个角色,在某些情况下,管理员可能发现,在此模型的基础上,系统分配权限的粒度并不充分。试想管理员对用户A分配的角色并没有满足充分地要求,需要微调,以对原用户进行更加细腻的约束。于是建议基于RBAC模型,采用适当的MAC规则加以辅助,具体看正文。
(2)在实际的网络访问中,如果没有特别的处理,来访的客户应该是平等的。提出在角色设置的时候可以适当的引入访问优先级。举个例子,角色中的user,manager和systemmanager在同时登录访问系统时应该被置于不同的优先级,从而得到不同的响应——高级管理者应该被系统优先接纳,反之亦然。
2 相关技术
自从最早的RBAC模型提出以来,在文献[1]中,Sandhu等人的模型统一了人们的认识,建立了相应的标准。而文献[2]则具体阐述了RBAC的建议标准。平坦型,层次型,约束型,对称型等具体的划分,使人们的认识更加清晰。简述如表1所示。
基于此有文献[3]形象地称之为RBAC0,RBAC1,RBAC2,RBAC3,并且用图形形象地表现出来,如图1所示。
其实现则主要体现在图2中:管理员通过分配用户的角色、分配角色的权限,达到了用户和角色的逻辑分离,使得数据的访问控制更加完善,降低了维护人员工作的复杂度,提升了管理的灵活性,而各个模型的管理不同又得以很明显的表示。
随着研究的深入,NIST版本的RBAC模型又基于前人工作出现,具体体现为核心RBAC,层次型RBAC,静态职责分离(static separation of duty SSOD)关系,和动态职责分离(dynamic separation of duty DSOD)关系,具体说来四个模型组件又和先前的RBAC模型相应的对应,这些文献[2]都有细说,此处略过。
文献[3]提及的整个模型的实现策略——安全Cookies,智能认证和LDAPS 3种实现方法,使得整个模型得以具体实现。由于RBAC控制策略的有效性,近年来被成功的应用于大型网站和一些系统软件中,而这些工作又反过来促进了RBAC研究工作的深入。比如文献[4]在身份认证上巧妙的采用安全cookies机制,实现对服务器和客户端的双向认证,有效防止黑客侵入,保证了通信的安全。但是相关的问题依然存在,比方说一个角色被分配了相关的权限,被分配此角色的用户就会无限的享受此权限效力。如果说一个用户只有在工作中,或者休息中,才能享受这些权限,那么原先的模型便不足以更细粒度的刻画这种约束。文献[5]中基于角色访问控制提出时间特性的概念,对原有模型进行时间特性的扩充,规定在特定的时间范围内权限的具体约束,从而保证会话的一致性,提高了访问控制的操作性。针对此种现象,也有学者提出基于规则和角色的访问控制,即在RBAC的基础上,扩充规则特性,规定在某个任务进行时才可以履行某个权限,这一点文献[6]有着详细的阐述,并且提及的相关概念中使能型权限,激活型权限和限制型权限很好的阐述了原模型应用中的一些不足,并给出了具体的新的拓展。
在此注意到,引言中提到的问题需求,与文献[6]中的面临问题确有相似之处:(1)虽然角色拥有所请求操作的相应权限,但能否真正执行操作要根据系统当前的状况决定。(2)不同用户行使同一角色的权限时能操作的客体集不完全一样,在此基于以往学者经验,特提出一种新的约束机制,即在传统的RBAC基础上,引入强制访问约束,以供参考。具体如图3所示。
具体说来就是针对RBAC的操作不足,在原模型的基础上引入强制访问约束。在Mac约束中可以具体规定具体用户的访问粒度,比如时间权限,任务特性,或者某个用户对具体对象object的约束控制。举个例子,管理员已经对某些用户权限的管理做好了分配,但实际应用中发现了不足,可能要针对用户A进一步限制,这时不需要改变其角色配置,仅仅在相应的Mac约束中加以说明,然后经后期的约束聚合,就可以达到灵活的访问控制。这样不至于遇见一个不合适的用户权限分配,就创造一个新的角色。此时,角色的管理更加方便。
在此Mac约束的引入,可以明显提高访问控制的灵活性,又可以在系统允许范围内,适当的改善而又不会明显提高工作量、增加问题的复杂度。模型实践时,在访问具体对象时只需在原有的RBAC的基础上,将Mac约束和原先分配好的约束进行合并操作,得出的新的约束就是改进后的细粒度权限分配。
同时,又在角色集合上绑定优先级,从高到低优先级依次可设置为0,1,2,3等。以便服务器进行不同级别的响应,提高高优先级成员的访问速度。
3 模型的相关定义和实现
用户集:U={u1,u2,u3,……}.u1,u2等即RBAC中的普通用户,U为所有用户的集合。
角色集:R={r1,r2,r3,……}.r1,r2等即RBAC中的普通角色,如员工worker,管理者manager,超级管理员super_manager等,R为所有角色的集合。
权限集:P={p1,p2,p3,……}.p1,p2等即RBAC中的普通权限,比如对数据库的增、删、改、查,对网页信息的浏览,打印等操作。
优先级集合:Pre={n1,n2,n3,……}.其中n1到n3可依优先级从高到低设定为0,1,2具体应用时可以实际情况自行分配。
角色优先级绑定集合Rp={
Mac约束集:UP={
下面以一个正在开发的Web访问控制系统为例,介绍下其访问控制流程并简述如下:
(1)用户登录,进行身份验证。
(2)验证成功则跳转访问首页,否则报错,告知重新登录。
(3)在访问首页用户可以根据自己的需要进行相应的操作,比如对数据object的打印,浏览,增、删、改、查操作,当用户user进行某项操作时,询问数据库RBAC控制模块及mac约束模块,两模块约束进行叠加,得出当前用户user的访问权限是否为真。为真允许操作,反之则进行报错,告知无权访问。
(4)用户安全退出。
其流程图简述如图4所示。
一个相应的判定算法:
4 结语
首先,对RBAC的概念进行了深层的认识,仔细分析了其原型的产生,发展,以及良好管理效力所显示的强大生命力,并且跟据前人的成果,分析了原模型在实际操作中的不足之处,阐述了基于时间特性,基于任务工作流和基于规则的相关改进工作,并进行了相关的说明。在此基础上针对原模型的功能不足,提出了一种强制约束(MAC约束)与基本RBAC相结合的模型,使得用户,角色,权限的管理更加灵活,更加符合实际操作。
相关研究文献[7]中的提到的RBAC的细粒度控制研究工作,与本模型有共通之处,但也有区别。共同点皆是在原有的RBAC模型基础上引入细粒度操作,区别即前者是对资源访问权限进行的分解,细化,而是在相对粗粒度(即原模型)的基础上,引入了用户,权限间的直接约束,弥补了原模型的不足。而且值得注意的是,提及的MAC约束的具体的约束规则可根据用户需要灵活扩展,比如加入时间特性,任务流特性等,具有一定的适应能力和良好的可操作性。
在此,基于文中提及的改进型RBAC模型,正在探索相关系统的具体实现。相关的策略表示,具体的MAC实现和所有约束的聚合将是研究工作的重点。
参考文献
[1]Ferraiolo DF,Sandhu R,Gavrila S.Proposed NIST standardfor role-based access control.ACM Transactions on Informa-tion and System Security,2001,4(3):224-274.
[2]薛伟,怀进鹏.基于角色的访问控制模型的扩充和实现机制研究.[J].计算机研究与发展,2003,40(11):1636-1642.
[3]J Park,R Sandhu1 RBAC on the Web by smart certificates1In:Proc of the 4th ACM Workshop on Role2Based AccessControl1 Faixfax,VA:ACM Press,19991:1-9.
[4]桂艳峰,林作铨.一个基于角色的Web安全访问控制系统[J].计算机研究与发展,2003,40(8):1187-1194.
[5]黄建,卿斯汉,温红子.带时间特性的角色访问控制[J].软件学报,2003,14(11):1945-1954.
[6]芮国荣,邢桂芬.基于角色和规则的访问控制[J].计算机应用,2005,25(4):864-866.
[7]龙勤,刘鹏,潘爱民.基于角色的扩展可管理访问控制模型研究与实现[J].计算机研究与发展,2005,42(5):868-876.
基于角色的访问控制的研究与实现 篇2
传统的访问控制方法包括自主访问控制和强制访问控制,由于传统的访问控制都是由主客体之间直接发生关系,使用这种方法进行安全管理十分困难。在RBAC中,权限和角色相关联,用户通过指派适当的角色而得到相关角色的权限,这极大地简化了权限的管理。在一个组织中,角色是与工作职能相关联的,用户则根据其责任和资格来被指派相应的角色,用户可以赋予一个或多个角色或从一个角色换成另一角色[1]。角色可根据新的需求和系统的更新而增加新的权限,而权限也可能由于需要而从某角色中收回。
二、基本角色的访问控制的实例实现
因为RBAC是一个概念上的模型,在实际的系统实现中,必须依据模型进行实际的分析、扩展和概念划分,重点是如何扩展RBAC的基本模型,描述和划分出RBAC模型中的基本元素(用户、权限、角色、资源和操作)以及它们之间的相互关系,构建出良好的权限分配机制,从而归纳出正确合理的应用模型。
由于高校的教务管理是一个非常综合的系统,涉及多种不同类型的用户,并且各用户所赋予的操作既有联系又有区别,为了保障信息的安全,权限的分配直观重要,因此,本文采用基本角色的访问控制方法对高校教务系统中的权限分配问题进行了描述,并提出了相关的算法加以实现。
1、数据模型
依据RBAC中的五大要素,并结合教务系统的实际功能,创建了6张关系表,其结构如表1所示,其中用户表描述了系统包含的所有用户,其中指定user_no为主键;角色表描述了系统中的相关角色,并指定role_no为主键;权限表列出了系统中各功能的总的操作权限,指定right_no为主键;功能表中包含系统中的所有主子功能项,其中func_no为主键;以上4张表都是基本表,但并没有体现角色的指派和权限的分配,所以还另外创建了两张表分别是:角色指派表和权限分配表,其中所以的字段都是主键,从而也体现在用户与角色之间的多对多关系,以及角色与权限之间的多对多关系[3]。
2、主要功能的算法实现
(1)用户的角色指派算法[4]
此算法的功能是通过循环的方式对用户表中的用户从角色表中挑选相应的角色加以指派,并将指派的记录存入角色指派表。
(2)角色的权限分配算法[5]
此算法的功能是通过循环的方式为角色表中的角色从功能表中的可操作功能分配相应的权限,并将分配的权限记录存入权限分配表。
(3)用户登录算法[6]
此算法的功能是首先查找用户表,判断此用户是否是合法用户,然后在角色指派表中查看该用户的角色,最后在权限分配表中找到相关角色具有操作权限的功能项后提供给该用户操作。
三、结束语
基于角色的访问是目前访问控制领域研究的热点,本文中采用RBAC的方法对高校教务管理系统中的用户角色权限分配问题进行了描述,并提出了相关的算法实现,使得教务系统中的信息安全问题得到了保障。
摘要:由于传统的访问控制技术存在种种缺陷,本文描述了基于角色的访问控制(RBAC)模型,并应用到高校的学籍管理系统中,对系统中的权限分配问题进行了描述,并提出了相关的实现算法,有效的保障了系统中各种信息的安全。
关键词:基于角色的访问控制(RBAC),权限,角色
参考文献
[1]任善全,吕强,钱培德.基于角色的权限分配和管理中的方法[J].微机发展,2004,(12).
[2]吕宜洪,宋瀚涛,龚圆明.大型应用系统用户权限构成分析及访问控制策略研究[J].小型微型计算机系统,2004,(02).
[3]钟小军,王强,张超英,覃章荣,张灿龙.基于角色及对象关联的权限控制策略和实现[J].广西师范大学学报(自然科学版),2005,(04)
[4]赵再军.基于角色权限分配的协同电子政务访问控制模型研究[J].计算机科学,2010,(08)
基于角色的访问 篇3
近年来互联网应用快速发展,对网络数据库应用的需求也快速增长,然而由于互联网通信链路本身的脆弱性,黑客攻击、信息窃取等网络犯罪对网络数据库的安全造成了严重威胁,由此便对网络数据库系统的安全访问提出了更高的要求。本文在研究角色存取控制模型的基础上提出了一种应用方案,以解决网络数据库的安全访问问题。
1 RBAC安全模型介绍
1.1 RBAC模型基本概念
基于角色的访问控制RBAC(Role-Based Access Control)是在20世纪70年代对在线的多用户、多应用系统的研究中开始提出的。RBAC安全模型属于存取控制系统中的一种,是强制性访问控制(MAC)系统。在一个RBAC系统中,根据实际的业务要求,在系统中设置若干“角色”客体,角色就是业务系统中的岗位、职责或分工。系统管理员负责掌管对系统和数据的访问/存取权限,将这些权限(不同类别和级别的)分别赋予承担不同工作职责的最终用户,并且可随时根据业务的要求和变化对角色的访问权限进行控制管理。在RBAC中要明确区分权限(Authority)和职责(Responsibility),它的优点是可以将若干特定用户的集合和某种授权联结在一起,对个体授权的可操作性很强。RBAC模型属于多级控制模型,它满足多级安全控制系统内存取类的保密级别按线性排列这一特性,即:公开<秘密<机密<绝密。其安全策略要求满足两个条件:①要获取合法信息,请求者的存取类的级别要大于信息的存取级别,RBAC1支持的层次关系可以实现多级安全系统所要求的线性排列这一要求;②要获取信息存取权,请求者必须具备一定的存取类,而且他的存取类范畴集合应该包括信息存取类的全部范畴,角色结构RBAC1中的角色可以轻松地实现保密存取类的要求。
图1给出RBAC 的模型层次图,RBAC0是任何支持RBAC系统需要满足的最低要求。RBAC1和RBAC2都包含RBAC0,但是分别有各自的特点。RBAC1增加了角色之间可以相互继承访问权限层次的概念,而RBAC2则对RBAC组件添加了限制条件的约束,RBAC1和RBAC2相互独立,RBAC3则同时包含了RBAC1和RBAC2。
1.2 RBAC1模型的定义
(1)U、R、P及S分别为用户、角色、授权和会话。
(2)PA是授权到角色的多对多关系,PA⊆P×R,;UA是用户到角色的多对多关系,UA⊆U×R。
(3) RH是角色上的一个偏序关系,称为角色层次关系或角色支配关系,RH⊆R×R。
(4)roles(Si)⊆{r|(∃r′≥r)[(user(Si),r′)∈UA]}。
其中:user(Si)表示的是将各个会话映射到一个用户去的函数;roles(Si)表示的是将各个会话Si与角色集合联结起来的映射,可随时间变化而变化,且会话Si拥有相关授权;r、r′表示角色,r′继承自r。
2 RBAC在数据库Web访问控制中的应用实现
2.1 安全访问模型
本系统安全访问模型的功能模块包括身份认证模块、RBAC授权模块、日志记录模块和数据加密存储模块。首先,用户通过浏览器向Web服务器提出数据查询、修改等服务请求;然后Web服务器在收到服务请求后向身份认证系统发送用户的请求认证信息;最后,身份认证系统根据用户的不同角色提供不同级别的身份认证,再通过认证服务器对用户提交的身份信息予以认证,认证通过后方可访问数据库。如果是敏感信息,返回的数据经过数据库安全系统加密处理后才能发送给用户;如果是一般信息就直接发送给用户。图2显示了此模型的模块构成与信息流向。
2.2 身份认证模块认证模式
当客户端的访问请求到来时,Web服务器将请求者的身份提交给身份认证模块,身份认证模块检查请求者的登录信息、口令是否合法,若合法则允许进入RBAC授权模块。RBAC授权模块负责检查来访者的数据库访问、存取权限,如果该请求者的访问权限低于其访问数据的访问权限,则拒绝其进入RBAC授权模块。RBAC授权模块根据图3显示的RBAC模块的角色、权限结构来分配、验证资源和用户的访问权限。图3中的1和N表示1和多,其它各项目定义如下:
(1)操作对象:是系统所要保护的资源(Resource),可以被访问的对象或者数据。资源的定义需要注意以下2个问题:①资源具有层次关系和包含关系,例如,数据库表是资源,表中的记录、数据项等对象也是资源,是数据表节点的子节点,如可以访问某个数据项,则必须能够访问该数据所存放的数据库表;②这里提及的资源概念是指资源的类别(Resource Class),而不是某个特定资源的实例(Resource Instance),资源的类别和资源的实例的区分以及资源的粒度的细分,有利于确定权限管理系统和Web访问系统之间的管理边界,权限管理系统需要对于资源的类别进行权限管理,而Web访问系统需要对特定资源的操作进行管理。
(2)操作权限:是对受保护的资源操作的访问许可(Access Permission),它是绑定在特定的资源实例上的。对应地,访问策略(Access Strategy)和资源类别相关,不同的资源类别可能采用不同的访问模式(Access Mode)。例如,某个数据集的可修改访问模式就包含了可查询访问模式。
(3)用户:是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。
(4)用户组:是一组用户的集合。在业务逻辑的判断中,可以实现基于个人身份或组的身份进行判断。本系统弱化了用户组的概念,主要实现用户(个人的身份)的确认方式。
(5)角色:是权限分配的单位与载体。角色通过继承关系支持分级的权限实现。例如,系统管理员角色同时具有管理员角色、Web浏览者角色。
(6)操作:完成资源的类别和访问策略之间的绑定。
(7)角色权限分配:实现操作和角色之间的关联关系映射。
(8)用户角色分配:实现用户和角色之间的关联关系映射。
RBAC授权模块首先对数据库中数据的各种操作定义操作权限,如查询权限、新建权限、更新权限、删除权限以及可执行权限等,不同的权限又存在包含关系,如更新和删除权限包含查询权限,而删除权限又包括更新权限。同时,授权模块根据系统划分的不同职能的用户定义不同角色,并确立各角色之间的关系。本系统划分了如下角色:系统管理员、数据库管理员、数据分析员、Web注册用户、Web浏览者,层次关系是系统管理员角色同时具有其他各种角色,数据库管理员角色同时具有数据分析员角色,Web注册用户同时具有Web浏览者角色。最后,授权模块将操作权限与角色、用户与角色进行关联,使得特定角色关联特定的操作权限,不同角色下的用户权限不同。如Administrator用户拥有系统管理员角色,进而拥有所有权限;而一般互联网用户拥有Web浏览者角色,所以只能拥有查询权限。
当用户请求到RBAC授权模块时,RBAC授权模块找到与用户拥有角色相应的权限,核对用户所访问的数据的操作权限,如果该操作权限高于用户角色的操作权限,则系统拒绝执行操作,返回错误信息;如果该操作权限低于或者等于用户角色的操作权限,则系统执行用户请求,进入数据库服务器完成操作;数据库服务器把满足请求的明文数据返回给数据加密模块,该模块根据数据的安全标记来决定是否对明文数据进行加密,最后才把数据(明文数据或密文数据)发送给客户端,以此来保证访问的合法性和数据的完整性。
2.3 日志记录模块的工作
日志记录模块负责记录来访者的IP地址、到访时间、身份认证结果、RBAC授权结果和数据加密模块处理结果等。
Web服务器收到的来访者请求中包括对方的IP地址、到访时间、身份信息、操作请求等内容,这些信息会首先被服务器的日志记录模块保存到数据库服务器中,为可能的跟踪定位保留线索。如果来访者的身份信息得到认证,那么日志记录模块也要保存用户的身份认证成功或者失败结果以及失败原因。在RBAC授权模块对该来访者进行认证、授权后,其认证结果如用户角色、用户角色权限、用户访问的数据的操作权限、操作成功与否等信息也要被日志模块记录保存。日志记录是系统中登录、访问、离开等各种操作的唯一线索信息,任何用户或者角色,只能进行查询操作,而没有修改权限,系统管理员角色可以拥有删除权限以保证日志记录的合理有效。
本系统的数据库服务器由SQL Server 2000的DBMS实现,接受Web服务器提出的SQL请求,完成数据的存储、访问和完整性约束,实现网络数据库的相应功能。
3 结束语
本文在分析目前RBAC模型的基础上,将RBAC理论应用于Web环境下的数据库访问中,既保证了数据库的合法存取,又实现了用户权限的灵活分配,体现了很强的实用性。同时也存在一些没有解决的问题,如角色层次的合理划分、约束条件的加入等,还有待于更加深入的研究。
摘要:讨论了角色控制模型的基本概念和原理,研究了基于角色的访问控制RBAC模型的网络数据库安全访问技术,并进行了初步实现。
关键词:RBAC模型,Web,访问控制,数据库
参考文献
[1]吕锋,刘晓东.基于Web的网络数据库安全系统研究[J].武汉工业学院学报,2003,22(2):43-45.
[2]Ravi S Sandhu.Role hierarchies and constraints forlattic-based access control[J].Computer Security,1996,15(2):114-131.
[3]刘启原,刘怡.数据库与信息系统的安全[M].北京:科学出版社,2000.
基于角色的访问 篇4
Web服务是发布在网上的操作接口,采用XML文档和SOAP协议进行信息交互[1]。由于复杂的网络环境,以及协议具有的开放性和标准化特点,Web服务的安全性非常脆弱,这是影响其规模化应用的主因。近年来,Web服务访问控制技术已成为一个研究热点,其目标是保证服务资源只授予合法的访问主体,防止任何的未授权访问。
与传统应用相比,Web服务的访问控制面临着诸多挑战[2],如跨域访问控制、权限动态调整、与遗留系统整合,以及技术标准化等问题。目前已有许多学者从不同角度进行了研究。常见的有,基于身份的访问控制要求将权限和主体的身份关联起来,包括采用集中式身份管理和分布式身份联盟[3];基于角色的访问控制则根据主体的角色特征进行访问授权[4];基于属性的访问控制则是根据参与主体的某些特征属性制定授权策略[5]。
基于角色的访问控制模型RBAC及其扩展模型在传统的应用中已经比较成熟,将其引入到Web服务系统中的关键问题是如何将访问主体映射到合适的角色。文献[6]根据主体的身份信息为其分配角色,主体在激活角色时系统产生一个对应的执行者对象。文献[7]将Web服务分为单服务和组合服务两种类型进行研究,针对不同的服务客户,分配不同的角色。文献[4]针对Web服务业务处理过程,提出将参与业务过程的合作伙伴映射到角色,然后根据角色进行授权。类似这些面向Web服务的RBAC演化模型已经基本解决了Web服务客体的静态授权等问题,但是还存在以下两个方面的问题:
(1) 模型对基于角色的权限描述是粗粒度的,这使得为某个Web服务访问主体授权时只能达到角色层次,或者把角色的权限全部授予,或者全否[2,6,7]。目前还无法描述角色内的任意部分权限,但是在有些情况下只向主体授予角色的部分权限是必要的,这既能够避免创建更多新角色而造成更高实施和维护成本,又可使系统授权更加灵活方便。
(2) 静态的角色/权限和主体/角色映射使得主体的权限变更难以在应用中动态实现。目前,主体一旦分配了某个角色后,即拥有了对应的全部静态权限,还无法对主体的行为状态、系统的上下文环境等变化做出相应的调整[4,6]。
本文引入了量化角色的概念,它是对传统基于角色的Web服务访问控制模型中角色的扩展,能够描述其中任意部分的权限[8],例如对拥有一个Web服务全部权限的角色,可以根据量值实现对该服务的某个接口、属性的某种操作方法进行非常细粒度的访问控制。其意义在于,既提高了Web服务授权的灵活性,不再以角色一概而论,又便于根据环境的变化实现对量值的调整,这是量化角色中增加了量值这一数值属性所独有的优势。
1 细粒度的Web服务权限定义
1.1 RBAC96模型
RBAC96模型[9]是较为成熟的一个基于角色的访问控制模型,它通过两个映射来实现权限的授予:角色到权限的映射,使角色承载一定的权限;主体到角色的映射,使访问主体绑定到某个角色,从而拥有相应的权限。
定义1 RBAC96模型的定义包括集合、关系以及对应的约束,包括:
(1) 用户主体(简称主体)集U={u1,u2,…,um},角色集R={r1,r2,…,rn},权限集P={p1,p2,…,pk};
(2) UA⊆U×R,表示从主体到角色的多对多的分配关系,UA(ui,rj)表示为主体ui分配了角色rj;
(3) PA⊆P×R,表示从权限到角色的多对多的分配关系,PA(r,p)表示为角色r分配了权限p;
(4) Users:R→2U,表示从角色集R到主体集U的映射函数,记为Users(r)={U|(U,r)∈UA};
(5) Permissions:R→2P,表示从角色集R到权限集P的映射函数,记为Permissions(r)={P|(P,r)∈PA};
(6) RH⊆R×R,表示角色之间的偏序关系,可用符号≤表示。(r1,r2)∈RH表示角色r1继承了角色r2的权限,可记为r1≤r2。
1.2 面向Web服务的模型扩展
RBAC96模型对权限的描述过于粗略,没提供精细刻画客体类型和访问方式的方法。而为了支持Web服务的授权,需要对模型进行扩展。本文把Web服务和服务属性当做与传统应用中的功能模块一样的客体,并定义访问模式集,从而扩展模型的适用范围,实现对包括Web服务在内的所有客体的一致管理。
定义2 可访问资源集。指系统中所有可单独标记并能被访问的功能对象的集合,记为FS。包括传统应用中的Web页面、逻辑类和功能模块等,记为FS0,以及Web服务和服务属性。
定义3 可访问Web服务集。指系统发布的所有可访问的Web服务接口的集合,记为WS。
定义4 可访问的Web服务属性集。指系统中发布的所有可访问的Web服务属性的集合,它是服务调用过程中信息的承载者,体现为服务调用时的输入参数或返回结果,记为WSA。
定义5 访问模式集。指对系统资源的操作类别的集合,包括读、写、执行和删除等,记为AM。
因此,模型中的权限集合P可以由系统资源集和访问模式集运算得到:
P=[FS×AM]conditions
=[(FS0∪WS∪WSA)×AM]conditions (1)
式中[X]conditions表示对集合X按照条件conditions做选择运算,只保留满足系统要求的权限。P中的元素p是一个由功能fs和访问方式am组成的二元组(fs,am)。
需要说明的是,这种扩展不需要Web服务现有标准做出任何修改。因为系统中的各种集合数据和访问控制程序都存储或运行于服务提供者一端,服务请求主体只需要按照正常方式请求访问,服务提供者会根据主体的角色进行验证并控制访问行为。
1.3 权限量值与量化角色
许多情况下,基于角色的部分授权,以及对访问主体进行部分权限的动态调整是必要的。例如,表1为中石化 “石油地面建设工程定额管理Web服务系统”中的主要角色权限分配表。
同样拥有油田生产单位(OPUnit)的角色,在一定时间内不同Web服务用户可能需要不同权限,例如胜利油田的服务可能拥有全部三项权限,但中原油田的只有定额数据查询(P_QuotaFind)权限;又如,可能因为某服务请求主体做了破坏性删除,或它的网络变差,系统需要调整它的权限。这些需求使得基于角色的部分授权,以及Web服务授权的动态调整是必要的。
RBAC96中的角色r被关联到PA中一组形如(r,p)的元组(这里p包括扩展后的Web服务和服务属性权限),这些元组构成了r的权限源。
定义6 角色的权限源函数rolePS与权限源的基。
rolePS:R→2PA,表示从角色集R到权限源的映射函数,记为rolePS(r)={(r,p)|(r,p)∈PA};运算|r|表示r的权限源的基,即|r|=|rolePS(r)|。
为了唯一标识r的权限源中的元组,为每个元组tuple分配一个数值2i(i∈N∪{0}),其中N为自然数集,称该数值为元组的权限量值,并规定同一角色的各元组量值互不相同,取值从小到大依次为20,21,…,2|r|-1。
表2列出了为角色权限分配表中各元组分配的量值。
元组的量值由管理员分配和维护。
定义7 权限元组的量值函数tupleQty。
tupleQty:PA→N,表示从权限源到自然数集的映射函数,记为tupleQty(tuple)={n|n∈N},该函数将PA中的元组映射到其量值。
定义8 角色权限总量值和总量值函数roleQty。
角色具有的权限元组的总量值是该角色权限源中所有元组的量值之和。
roleQty:R→N,表示从角色集到自然数集的映射函数,记为
通过对普通角色施加量值限制,产生形如(r,k) 的二元组,其中r ∈R且k ∈N ∧0 < k<=roleQty (r),它表示由角色r的权限源中的部分元组(可通过k的值运算获得)产生的权限的集合,代表角色的部分权限,通过改变k的值可以调整(r,k)表示的不同权限集合,因此称(r,k)为量化角色,k称为该量化角色的量值。由权限源的量值定义可知,角色的各个权限源中元组的量值各不相同,并且形成一个超递增序列。可以证明,对任意给定的(r,k),方程
(1) 解集中若aj1,aj1,…,ajm(0<m≤|r|∧0≤ji<|r|)的值为1,则认为集合{2j1,2j1,…,2jm}是(r,k)的量值集;
(2) 若2i属于(r,k)的量值集,则认为角色r中量值为2i的元组包含在量化角色 (r,k)的权限源中。
例如,量化角色(OPUnit,5)的权限包括{(OPUnit, P_ DataUp),( OPUnit, P_ QuotaFind)};又如量化角色(QCCost,1)仅拥有普通角色QCCost的P_ DataSum部分权限。
定义9 量化角色的权限源函数qtyRolePS。
QtyR={(r,k)|r∈R∧0<k≤roleQty(r)},表示量化角色的集合;
kseq:QtyR→2N∪{0},表示从量化角色集到量值集的映射函数,用于求(r,k)的量值集,记为:
kseq((r,k))={2i-1|k二进制表示中i位取值1}
qtyRolePS:QtyR→2PA,表示从量化角色集到权限源集合的映射函数,记为:
qtyRolePS((r,k))={(r,p)|(r,p)∈PA∧
tupleQty((r,p))∈kseq((r,k))}
2 基于角色量值的Web服务访问控制模型
2.1 模型结构
图1为本文提出的基于量化角色的Web服务访问控制模型结构。
该模型包括如下5部分:
(1) 权限生成 通过引入Web服务和服务属性等资源集、访问模式集,实现了对权限的细化扩展,见式(1)。
(2) 角色权限分配 指通过为角色分配权限生成PA集的过程,包括创建普通角色、为角色分配权限,以及对角色中权限元组分配量值。
(3) Web服务主体角色分配 指通过为Web服务主体分配角色建立UA集的过程。这里分配的是量化角色qr(r,k),k限定了Web服务主体拥有的最大权限范围。
(4) Web服务主体登录角色激活 主体通过SOAP协议登录并访问系统,激活相应的量化角色,并产生一个会话。角色激活条件为:
[u∈Users(r)]∧[(fs,am)∈qtyRolePS(r,k)] (2)
其中,r为量化角色qr(r,k)对应的普通角色,k为量值,am表示访问fs的操作模式。
(5) Web服务主体权限的动态调整 量化角色中的量值k具有数值属性,是动态可调的,这是量化角色适用于权限动态调整的根本优势所在。
确定了动态调整权限的思路:定义Web服务主体的行为量值,根据请求对象的行为和上下文环境,计算行为量值;依据该量值的变化判断在一定的周期内是否需要修改该服务对应角色的量值。定义Web服务行为量值的计算规则和量化角色的调整方法是关键问题。
2.2 Web服务主体的行为量值及其计算
参考基于信任授权控制模型中的信任值[10],定义了一个能反映Web服务主体访问系统时行为安全性的指标数据,称为Web服务主体的行为量值。
定义10 Web服务主体的行为量值BValue。
BValue={(u,β)|u∈U∧0≤β≤1},表示行为量值的集合,二元组(u,β)表示主体u的行为量值为β;
fBtoRqty:BValue→2N,表示从行为量值集到角色量值集的映射函数,用于根据主体的行为量值(u,β)计算量化角色的量值,记为:
fBtoRqty((u,β))={k|k∈N}
对于Web服务主体u,计算其行为量值时不同的上下文可能需要不同的行为特征,并采取不同的算法,如图2所示。
定义11 Web服务主体访问系统的上下文Context。
Context={(bf,t)|bf∈BF∧t∈T},其中BF表示上下文要求的Web服务主体行为特征子集,T表示计算行为量值时的算法集;
BF={bfi:(fi,wi)|i∈N},其中fi为Web服务主体的行为特征元素,wi表示计算时该元素所占权重,N为自然数集;
T={t1,t2,…,tj,…,tm},其中tj表示一个具体算法,如加权平均weight法、算术平均average法等。
Web服务主体u在确知环境c(Bfu,t)下,计算行为量值的算法为:
(u,β)c=t(f1,w1,f2,w2,…,fn,wn) (3)
2.3 Web服务主体的量化角色动态调整
本文设计了如图3所示的Web服务主体权限动态调整流程,其中函数fBtoRqty(参见定义10)能够根据行为量值(小数)计算服务主体应该具有的角色量值(自然数)。另外,为了防止权限调整过于频繁,在系统初始化时设定更新周期和行为量值的调整阈值。只有自上次权限调整后的时间超过这个周期,系统才开始计算前后行为量值的差,而且只有当这个差值超过设定阈值后,才计算主体的量化角色的新量值并更新。
3 应用与评价
XACML是一种通用的Web服务访问控制策略语言,它既可以用于描述通用的访问控制需求,也能够用来构建请求访问控制决策的查询报文。实现时,如果构建XACML授权框架,需要按照WSRF构建相应的WS-Resource,即构建与XACML授权框架相对应的有状态资源和Web服务对象。文中模型主要在Web服务提供者的应用服务器端实现,以数据存储和算法验证、Web服务开发为主,这些对于Web服务的各项现有标准完全支持,而XACML等Web服务安全标准可以作为额外的安全机制加以补充。下面是以基于量值的角色部分授权和动态调整为核心的两个实现场景。
(1) 定额系统中Web服务主体的部分授权
场景:胜利油田Web服务用户u_sl拥有OPUnit角色的全部权限,而服务u_zy只可被赋予P_QuotaFind权。据此可分别制定如下的授权票据:
ua1=(u_sl,(OPUnit,7)) (4)
ua2=(u_zy,(OPUnit,4)) (5)
将其加入授权关系UA中,作为访问时验证的依据。
(2) 定额系统中Web服务主体的权限调整
场景:因为主体u_sl在调用Web服务BasicDataMngService时误删除了系统重要数据,系统根据式(3)计算其行为量值降为(u_sl,β)=0.7,变化量Δ(u_sl,β)=1.0-0.7=0.3,大于设定的行为阈值th=0.25,在新周期到来时对u_sl的量化角色进行调整:
ua1=(u_sl,(OPUnit,7))→(u_sl,(OPUnit,4))这样u_sl也仅具有了P_QuotaFind权,系统将更加安全。
Web服务对象的开发仍将关注于系统所要求的功能实现即可。该模型在定额系统中进行了试用,共建立了5个普通角色,并以此为基础定义了12个量化角色,实现了14个主体的预授权,并测试了多种情形下的主体权限调整,试用结果表明该模型对授权的管理方便、操作灵活,系统运行安全平稳。
4 结 语
本文分析了目前基于角色的Web服务访问控制模型在支持细粒度的授权和权限动态调整方面存在的不足,引入了权限量值和量化角色理论,提出了行为量值的概念,建立了一个细粒度的Web服务访问控制模型,并将其应用于中石化“石油地面建设工程定额管理系统”中。理论分析和测试运行情况均表明该模型拥有如下优点:
(1) 通过定义Web服务、服务属性和访问模式集,扩展了权限集的定义,实现了对包括Web服务在内的所有客体的一致管理。
(2) 通过为Web服务权限元组分配量值,实现了对角色内任意部分权限的表达和控制,从而使授权的粒度更加精细,应用更加灵活。
(3) 提出了Web服务主体行为量值的概念,并建立了它与Web服务主体所属角色的量值之间的映射函数,实现了根据Web服务主体的行为和上下文环境动态计算行为量值并调整该服务主体权限的方法。
建立一套完整、合理的Web服务访问主体的行为特征是一个重点和难点问题,改进Web服务主体的行为量值和角色量值之间的映射函数等也是下一步我们感兴趣的问题。
参考文献
[1]Kreger H.Web Services Conceptual Architecture 1.0[S/OL].IBMSoftwareGroup,2001.http://www-3.ibm.com/software/solution/webservi-ces/pdf/WSCA.pdf.
[2]颜学雄,王清贤,马恒太.Web服务访问控制模型研究[J].计算机科学,2008,35(5):38-41.
[3]Union 1T.ITU-T recommendation X.509(08/97)-informationtechn-ology-open systems interconnection–the directory:Authenticationframework[S].Aug,1997.
[4]Liu P,Chen Z.An Access Control Model for Web Services in BusinessProcess[C]//Proceedings of the IEEE/WIC/ACM international Con-ference on Web Intelligence(WI’04),2004:292-298.
[5]Yuan E,Tong J.Attributed-based Access Control(ABAC)for WebServices[C]//IEEE International Conference on Web Services(IC-WS’05),2005:561-569.
[6]Xu F,Lin G,Huang H,et al.Role-based Access Control System forWeb Services[C]//The 4th International Conference on Computer andInformation Technology(TIT’04),2004:357-362.
[7]Wonohoesodo R,Tari Z.A Role-based Access Control for Web Serv-ices[C]//2004 IEEE International Conference on Services and Com-puting(SCC’04),2004:49-56.
[8]翟征德.基于量化角色的可控委托模型[J].计算机学报,2006,29(8):1401-1407.
[9]Sandhu R.Rational for the RBAC96 family of access control models[C]//ACM Workshop on Role-Based Access Control.New York:ACM Press,1996:38-47.
基于角色的访问 篇5
随着信息技术与网络技术的高速发展, 给人们的工作和日常生活带来便利的同时也带来了大量的安全隐患。对数据的及时性与安全性要求很高的医院信息系统, 面对日益猖獗的病毒与木马以及各种网络攻击手段, 内网的安全性和可靠性是急需解决的问题。
传统的基于RBAC模型[4]的网络访问控制技术在可靠性、易用性、高效性等方面表现出色, 但是在动态调整的灵活性方面出现了不足, 主要表现在以下两个方面: (1) RBAC模型建立在主体-客体访问控制思想上, 采用静态授权方式, 缺乏对角色权限的动态调整能力。 (2) 访问控制策略必须人工定义, 不能根据网络状态的变化进行自增学习。
针对以上的问题, 本文参考了基于行为的网络访问控制技术 (Behavior-Based Network Access Control, BB-NAC) [2,3]的思想, 提出了RB-NAC机制, 其核心思想是建立角色模型来划定权限集, 建立行为簇来动态调整用户权限。RB-NAC弥补了RBAC-based NAC的缺陷, 并加强了对用户实时行为的监控。
二、基于角色与行为的访问控制机制 (RB-NAC) 2.1 RB-NAC的访问控制策略
RB-NAC核心思想是以角色模型来划定权限集, 利用行为簇来动态调整用户可使用的权限, 其体系结构如图1所示。
RB-NAC的访问控制策略主要包括两部分内容: (1) 建立角色访问控制模型 (2) 建立行为簇动态调整用户的权限范围。
1. 建立角色模型主要包括:
定义系统角色, 为角色分配权限, 为用户分配适当的角色。这些操作可以由高级管理员或者某些合适的代理角色来完成。可以利用现有的RBAC模型及其改进版本 (例如ARBAC97) 来建立RB-NAC中的角色模型。RB-NAC具有很强的扩展性, 现有的RBAC-based NAC经过修改后可以很容易的扩展成RB-NAC。
2. 建立行为簇, 根据用户的网络行为动态决定用户可使用的权限, 主要包含三个部分:
分簇[1,5]、计算阈值、动态调整。
(1) 分簇:为每个角色建立簇组, 并为每个簇分配适合的权限。例如, 在角色r中, 其权限集合记为Q, 为角色r建立4个行为簇, 分别标记为c1, c2, c3, c4, 并为每个簇分配适当的权限记为q1, q2, q3, q4, 且每个行为簇都对应一组相似的用户行为特征。每个用户根据其网络行为特征被分配到适当的簇中, 并具有该簇的权限。簇的划分策略, 即用户的行为特征与簇的对应关系可以根据不同的需求来设计。
在准备阶段, 系统需要收集用户的网络行为信息作为动态归簇的依据, 这些信息被称之为行为档案 (behavior profiles) , 简称为BP。BP中包含的是一系列的网络行为的特征值, 例如, 针对80端口的行为的特征值可以是连接不同IPs的总数量、数据包的总数、每个数据流的大小等等。将每个接入设备的BP用一个矢量pi来代表:pi={pi[0], pi[1], …pi[n]}, 其中每个pi[l]代表特征l的平均值l=0..n。系统在准备阶段采集足够多的样本数据, 分布在各个簇中并作为系统的初始数据使用。
(2) 计算阈值:完成分簇之后就获得了簇的信息以及每个簇中的样本数据, NAC的执行点开始计算每个设备的阈值。阈值代表每个设备与同簇中的其他设备之间的最大距离, 如图2所示。在RB-NAC中使用BP代表设备计算阈值, 这些阈值在之后的动态访问控制中起到至关重要的作用。对于每个pi来说, 其阈值的计算公式如下所示:
pi与pj代表两个BP, n代表特征值的数量。公式1用来计算pi与pj之间的距离, 也就是pi与pj之间的相似度。公式2用来计算每个pi的阈值, q代表pi所属的簇中的BP的个数, d代表使用公式1所计算出来的pi, pj之间的距离。
(3) 动态访问控制
完成分簇与计算阈值的工作之后, 系统进入动态访问控制阶段。动态访问控制主要处理两类设备, 一类是新设备 (未提交BP) , 另一类是存量设备 (已提交BP) 。新设备刚进入时系统还无法获知其BP的信息, 可以在簇组中设置一个通用簇用来做过度之用。系统在后续的权限使用过程中, 将新设备的行为特征记下, 并在适当的时候提交BP, 然后分析归簇。进行归簇时, NAC的执行点用公式3计算与新设备的BP最接近的簇 (如图3所示) 。
公式3
其中k代表簇中BP的数目, pnew代表新设备的BP, c[i]代表每个簇i的中心, c[i]的计算过程如公式4所示:
其中cn代表第n个特征值的平均数, q代表簇i中BP的数量。
选出最近的簇之后, 由簇中的所有成员进行投票表决是否接受新设备加入到网络中, 如图3所示。投票的结果决定是否同意让新成员加入。投票的方法按照公式5进行:
其中, q代表簇中成员的个数, ti是pi的阈值 (由之前计算得到) 。v代表投票的结果值, 如果系统要求簇中至少60%的成员投赞成票才允许新设备进入, 则v必须大于0.6。对于存量设备, 当设备经过一段时间后其BP可能发生变化, 这时系统将更新之后的BP提交给NAC执行点, 由NAC执行点通过公式3~5对其进行归簇计算。
2.2增量学习
RB-NAC主要针对访问设备行为信息 (即BP) 进行增量学习。对于新设备, 还未提交BP不能参与簇内的投票, 只有当其提交BP并执行归簇之后才能参与投票。新设备的BP自动添加到所属的簇中, 更新簇的BP集合。对于存量设备, 当其BP信息发生改变时需要重新进行归簇计算, 将旧的BP从原来的簇中删除, 并将更新后的BP添加到新簇的BP集合中。RB-NAC采用增量学习的方式自动对动态归簇策略进行调整已符合当前网络的状态, 提高了系统的灵活性与可靠性。
三、应用实例分析
医院内部某用户拥有对服务器资源进行各种业务操作的权限, 然而在某个阶段, 该用户的设备因感染了病毒而对服务器发起大量的恶意行为, 此时RB-NAC系统检测并发现此攻击行为, 根据其行为的特征将其划分到特定的簇中 (例如簇A) , 由于处于簇A中的设备被限定了一部分的核心权限 (比如访问网络的权限) , 因而可以有效的控制住该设备试图造成的危害, 同时簇A中还保留了该设备其他一部分权限, 在控制用户的异常行为的同时还适当保留了用户的一些基本操作权限。依据用户的行为在簇组内做动态调整从而分配或限制用户的权限, 这种设计方案使得权限随着网络行为的安全等级做动态调整, 提高了系统的灵活性。
四、总结
本文提出了一种基于角色与行为的访问控制机制:RB-NAC机制, 其核心思想是以角色模型来划定权限集, 利用行为簇来动态调整用户可使用的权限, 克服了RBAC-based NAC在动态权限调整方面的缺陷。RB-NAC利用行为簇分配或限制了用户的权限, 并利用用户实时的网络行为特征的变化, 对用户进行动态归簇, 提高了系统的灵活性。此外RB-NAC还能自动完成增量学习, 无需人工干预就能适应多变的网络环境。综上所述RB_NAC机制能有效的加强医院内网的安全性与可靠性。
参考文献
[1]许春根, 黄生, 一种新型的基于角色访问控制的角色管理, 计算机工程, 2003, 29 (8) :26-29
[2]V.Frias-Martinez, S.Stolfo, and A.Keromytis, “Behav-ior-based network access control:A proof-of-concept, ”in Infor-mation Security Conference (ISC) , 2008.
[3]Vanessa Frias-Martinez, Joseph Sherrick, Salvatore J.Stolfo, Angelos D.Keromytis, “A network access control mechanism basedon behavior profiles”, in Annual Computer Security ApplicationsConference (ACSAC) , 2009.
[4]Sandhu R, Coyne E, Feinstein H, et a1.Role-based accesscontrol model[s J].IEEE Computer, 1996, 29 (2) :38—47.
基于角色的访问 篇6
回顾数据库安全访问控制的发展史,时至今日,RBAC的理论和应用已经相当成熟。Sandhu等在1996年提出基于角色的访问控制模型(如图1所示),第一次形式化地描述了基于角色的访问控制,并在1997年提出了RBAC的管理模型AR2BAC (Administrative RBAC) [1]。这两个模型是基于角色的访问控制模型中的经典模型,也被分别称为RBAC96模型和ARBAC97模型。2000 年Osborn等人研究证明了RBAC 是一种更一般的访问控制模型,他们利用RBAC 模型成功地模拟了MAC 和DAC,即可以用RBAC实现DAC和MAC[1]。
同时RBAC也在实际应用中反映出较好的适应性,许多学者在此领域进行了深入的研究。文献[1]中对RBAC的理论进行了系统的阐述,并提出了角色控制域等概念。文献[5]中将RBAC应用到出租车管理系统中。文献[4]中重点对数据库访问控制的安全问题进行了研究。
笔者在对上述论文进行研究的基础上发现:这些论文较少涉及到复杂角色模型的研究,对UA的具体算法也少有阐述。为此,本文针对RBAC模型中的复杂角色模型进行了深入的研究,提出了一种较为实用的UA算法,能够较好地解决实际系统中复杂角色、复杂用户的管理,对许多实际的复杂系统具有一定的参考价值。
1问题的提出
在构建实际的系统中,我们经常会遇到复杂角色的管理问题。考虑有这样一个部门:它拥有许多下属部门,而每一个下属部门又有许多的下属部门……。在这个部门里,人员之间的“等级”并不是严格地呈现一种标准的树形结构。有同一级别的某些职员享有相同的职权,共同管理下一级别某些职员的情况;有同一个职员直接隶属于具有相同职位的多个上级的情况……。如果要建立该部门数据库安全访问控制系统,问题的难点在于这个部门的人员关系比较复杂,在RBAC中也呈现出角色关系复杂的状态,即:一个父角色拥有多个子角色,而一个子角色可能有多个父角色;角色呈现的是多对多的自参照关系。
对于系统角色的管理问题,目前许多现有系统采用的方法是:建立一个父角色对应多个子角色的参照关系。这种方法具有一些明显的优点:对于大多数系统而言,角色并不是很复杂,或者是即便比较复杂,但角色仍然呈现一种严格的树形关系(一个子角色只有一个父角色)。对于这样的系统,使用该方法是可行的,并且实现起来也比较简单,称为许多系统的首选。但对于一些复杂用户、复杂角色的系统(比如上文描述的“部门”),角色之间并不是一种严格的树形关系,而是呈现出一种等级关系,一个子角色可能会有多个父角色,角色之间是多对多的自参照关系,这种思路就不再适用了,这就需要有一种新的方法来解决。由此,本文在对现有RBAC模型中的复杂角色模型进行了深入研究的基础上,提出了“角色级别矩阵”,“角色bit状态位”等概念,并进一步提出了新的UA算法,较好地解决了上述问题。
2基本原理及实现
2.1基本原理
2.1.1 角色理论基础
在实际系统中,角色之间存在着继承关系。如果角色r1 继承角色r2 ,那么角色r1 的级别高于角色r2 的角色(在随后提出的角色级别矩阵中表示为级别高出一个等级),并且拥有角色r2 所有的权限。我们称角色r1 为父角色,角色r2 为子角色,记作: r1 ≥r2。当一个用户激活角色r时,同时也隐式的激活了所有角色r所继承的子角色。角色继承关系满足下列3个属性:
自反性 ∀r∈R ⇒r ≥r;
反对称性 ∀(r1 , r2 ∈R) ((r1 ≥r2 ∧r2 ≥r1)⇒r1 = r2 );
传递性 ∀(r1,r2,r3 ∈R) (( r1 ≥ r2 ∧ r2 ≥ r3)⇒r1≥r3) 。
综上:继承关系“≥”是一个R上的偏序关系。给定了角色继承关系之后,可以将角色之间的关系用一个层次图表示出来:如果r1 ≥r2 ,在角色关系图中,笔者表示为r2指向r1的箭头。根据角色之间的继承关系,角色关系图可以是树、格、甚至是极为复杂的图[1]。一个会话拥有的角色是用户所分配的角色以及它们的子角色的总和,一个会话所拥有的权限包括用户所分配角色的权限和他们的子角色的权限的总和[3]。
2.1.2 角色级别矩阵
上面的分析指出,复杂角色之间的关系呈现一种关系图,角色之间是一种多对多的自参照关系。为了更为清晰地进行下面的阐述,图2给出了一种比较简单的角色关系图,在这个图中最高级别0有三个角色,编号依次为0,1,2,…,箭头表示继承关系,如角色4继承于角色0和角色1。
为了在物理数据库中再现图2的信息,需要存储的信息有:(1) 系统角色之间的层次和角色编号之间的关系;(2) 某一角色的所有子角色信息。为了维护前者,笔者提出了“角色级别矩阵”的概念,可以较为清晰地描述角色之间的复杂关系;为了维护后者,笔者提出了“角色bit状态位”的概念。
角色级别矩阵为N×3的矩阵。第一列表示角色等级;第二列表示该级别角色的第一个角色编号;第二列为该级别最后一个角色编号。例如,图2中的角色关系若使用角色级别矩阵,则可以表示为表1。
2.1.3 角色bit状态位
每一个角色使用一个属性来记录下一角色级别(角色级别矩阵中,当前角色所在角色级别之后的第一个角色级别,后文出现该词意思相同)所有角色的状态信息,这个属性在此称为角色bit状态位。角色bit状态位的bit长度等于下一角色级别角色数目。如果下一角色级别某角色继承于该角色,那么相应bit位标记为1;否则标记为0。
例如,在图2中,若角色1的bit状态位信息为(101),则其含义如表2所示。
2.2UA算法
角色管理模块在实现中可以采取多种办法,比较简单的办法为:为每一个角色增加一个bit型数组的属性,数组的长度为系统角色总数。如果某角色继承于该角色,则根据其角色编号将数组的相应bit位标记为1,否则标记为0。系统执行查询时根据该bit型数组中的值为1的角色,搜索出这些角色所对应的权限集,然后获取所有的权限项,加载菜单和页面,生成系统界面。
上述方法简单易行,对于角色变更不大的系统有效而稳定,但如果系统的角色变更较频繁,为了维护每个角色bit型数组的状态更新,需要耗费大量的时间;增加或删除某一角色,需要为每一个角色bit型数组增加一项,繁琐且耗时。而且,bit型数记录的仅仅是一个系统角色的整体集合,不能描述角色之间的继承关系和层次关系。另外,当前角色的所有父角色的bit位信息一定为0,因此bit型数组在存储上也存在着较大冗余。
为了解决这些问题,结合上文介绍的角色级别矩阵和角色bit状态位等概念和基本理论,我们提出了如下算法(如图3算法示意流程图给出了算法的流程图):根据用户角色的编号确定角色的级别;确定下一角色级别的第一个角色编号(根据角色级别矩阵确定);根据其角色bit状态位的信息进行迭代搜索,获取子角色集。
当系统增加新角色时,只需修改角色级别矩阵和直接相邻的下一角色级别所有角色bit状态位:为角色级别矩阵某级别增加一项;为下一角色级别的所有角色增加一个bit位,表示其与该角色的继承关系。当系统删除角色时,只需修改直接相邻的下一角色级别所有角色的bit状态位信息:将删除角色对应的bit位清0。这样,不仅解决了传统角色bit型数组存储冗余的缺点,还减少了bit型数组因状态频繁更新所耗费的时间,有效地提高了系统的性能。
综上所述,UA算法主要包括两部分:首先需要维护一个角色级别矩阵,记录系统的角色信息;其次每一个角色需要记录下一角色级别所有角色与该角色的继承关系,也即角色bit状态位。两者相结合,就可以较好地解决实际系统中复杂用户/角色的管理。
2.3数据库安全访问控制系统的实现
在实际应用中,为了提高系统的安全性和灵活性,许多系统都要求根据不同的用户系统生成不同的界面。这样一方面可以有效地预防越权操作,确保用户只对自己可操作的部分可见;另一方面可以提高系统的灵活性和高效性,根据用户权限来部分地加载系统,可以有效地提高系统的加载速度和性能。
为了验证本文所提出的模型及算法在实际系统中的应用效果,我们设计并实现了一套数据库安全访问控制系统。系统设计分为权限界面层、权限业务逻辑层和数据库操作层,其中我们提出的UA算法就位于权限业务逻辑层。系统流程可描述为:用户在界面输入正确的帐号和密码后,系统根据UA模块获得用户的角色集合,并进而获取用户的权限集合;然后系统根据用户的权限,装载他所能操作或访问的菜单和页面,生成系统界面,最终进入系统。
图4给出的是该系统“用户—角色”管理模块的界面效果。
3结语
在一些复杂应用系统中,人员之间的角色关系往往比较复杂,角色之间呈现的是一种多对多的自参照关系,如何对复杂角色进行管理,这对系统的可靠性和易扩充性显得尤为重要。本文基于RBAC,提出一种数据库安全访问控制模型,旨在有效地解决对复杂角色的管理问题。本文提出了“角色级别矩阵”,“角色bit状态位”等概念和UA算法,其中:角色级别矩阵可以有效地维护系统角色编号和级别信息;角色bit状态位记录当前角色下一角色级别所有角色与其的继承关系,能够有效地维护角色间的继承关系。
本文所介绍的模型已经成功应用于多个应用系统。实践证明:该算法可以帮助我们解决复杂角色的管理问题,可以为一些实际的软件项目提供一定的参考。本文的下一步研究方向是基于角色自适应的复杂角色管理问题。
参考文献
[1]杨庚,沈剑刚,荣淳铭.基于角色的访问控制理论的研究[J].南京邮电大学学报:自然科学版,2006,26(3):2-4.
[2]田保军,秦罡.基于RBAC权限认证的设计与应用[J].微计算机应用,2008,29(27):2.
[3]丁胜,陈建勋.基于RBAC模型的安全访问机制建模研究[J].计算机应用与软件,2005,22(11):3.
[4]邵子博,刘连忠,等.一种数据库安全访问控制系统的设计与实现[C]//2006中国控制与决策学术年会论文:1.
[5]李岚.基于角色的数据库安全访问控制的应用[J].通信技术,2008,41(10):1-3.
基于角色的访问 篇7
企业中越来越多的业务需要各种软件的支撑。随着软件使用的不断增长,对如何有效、安全地对用户权限进行管理是发展中需要解决的一个问题。与此同时,在不同的软件中使用不同的用户登录方式等,将带来繁琐与冗余问题的产生,降低管理效率。访问控制作为计算机网络信息安全管理的主要策略,通过某种途径显式地允许或限制用户、组或角色对信息资源的访问能力及范围。
常用的自主访问控制(DAC)和强制访问控制(MAC)方法由主体与访问权限直接发生关系,根据主客体的所属关系或主客体的安全级来决定主体是否具有对客体的访问权。当访问用户的种类繁多、数量巨大并动态变化时,使用传统的访问控制方法变得非常困难[1]。基于角色访问控制RBAC(Role Based Access Control)是一种已经被广泛应用于大型企业的计算机网络中实施访问控制的访问控制技术,Sandhu等提出的RBAC96模型得到了学术界的广泛认可[2]。
RBAC96模型包括了RBAC0、RBAC1、RBAC2、RBAC3四个模型。
RBAC0包含四个基本要素:用户、角色、会话和访问权限。用户在一次会话中激活所属角色的一个子集,获得一组访问权限,即可对相关客体执行规定的操作,任何非显式授予的权限都是被禁止的。
RBAC1是对RBAC0的扩充,在RBAC0的基础上加入了角色层次关系,根据组织内部权力和责任的结构来构造角色与角色之间的层次关系。
RBAC2也是RBAC0的补充,但与RBAC1不同的是RBAC2加进了约束的概念。RBAC2中的约束规则主要有:最小权限、互斥角色、基数约束与角色容量、先决条件、等级间的互斥角色等。而RBAC3模型是对RBAC1和RBAC2的集成,包括角色的层次关系与约束关系。
基于角色访问控制方法引入角色的概念作为中介,管理员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任再被指派为不同的角色。这样,整个访问控制过程就分成了两部分,即访问权限与角色相关联,角色再与用户相关联,从而实现了用户与访问权限的逻辑分离。基于该关系模型,将职责分离原则用于了系统权限管理中,通过利用角色与权限之间较为稳定的变化来简化权限管理,提高了权限管理的效率。
在该关系模型中,能够通过角色的继承关系进行子角色权限与父角色权限的继承,并通过引入私有角色这一定义来限制权限的继承。如果通过增加新的私有角色来保留所需要的权限不被继承,那么将会增加角色的数量,且角色关系的继承与实际管理中的角色继承之间的对应关系也将变得更为复杂,使得原先引入角色以期简化权限管理的效果降低。角色继承机制与具体权限分配方法的完善,是该模型的仍需要进行进一步研究的区域。
通过对RBAC相关的研究与企业实际业务需求的研究,现提出了一个基于RBAC模型的角色继承与权限继承模型。主要特点是增加了权限的许可类型,归纳了角色继承中的权限有效值计算,以及对权限进行分组,引入权限组及其继承的相关概念,以满足实际系统应用中的现实权限管理需求,增加角色与权限关系的灵活性。特别地对于快速成长中的企业与软件应用系统,能提高权限管理效率与直观性,降低相应的管理成本。
2 角色继承与权限继承模型的描述与定义
2.1 元素的描述与定义
用户:用户是一个可以独立访问数据或用数据表示的资源的主体,用USERS表示用户集合。一般情况下指人或登录帐户。
权限:权限是对数据或用数据表示的资源进行访问的许可。用PERMISSIONS表示一个权限集合。
角色:角色是指一个组织或任务中的工作或位置,它代表了一种资格、权利和责任。用ROLES表示一个角色集合。
权限组:权限组表示一组权限的集合。用PGROUPS表示该集合,即埚PERMISSIONS哿PGROUPS。
元素之间的定义如下关系:
用户角色委派:用户角色委派是一个二元关系,设UR哿USERS×ROLES是一个用户角色委派关系集合,那么(u,r)∈UR表示用户u被委派了一个角色r。
角色权限委派:角色权限委派是一个三元关系,设RP哿ROLES×PERMISSIONS×TYPE是一个角色权限委派关系集合,则(r,p,t∈RP表示角色r与权限p具有设置t。这里把许可权限设为允许和拒绝两种值,即t∈{ALLOW,DENY}。
用户权限集合:令P(r)为角色r所拥有的权限委派集合。
角色继承:角色继承是一个二元关系,设RI哿ROLES×ROLES是一个继承关系集合,则(r1,r2)∈RI表示角色r2继承角色r1,记为r1→r2。如果r1→r2,那么对于坌p∈P(r1),有p∈P(r2)。
2.2 角色最终权限有效值的计算
当角色之间有继承时,涉及到角色所拥有权限集合的有效值计算。定义如下的继承规则来计算权限有效值,这里将角色r与权限p具有设置的有效值t设为V(r,p):
规则1:显式权限在继承权限之前
规则2:拒绝权限设置在允许权限设置之前
规则3:继承距离较近权限在继承距离较远权限之前
对于规则2,当显式权限设置相冲突或相同距离的继承权限设定相冲突时,应用该规则。
因此,对于角色r1、r2、r3、r4且r1→r2→r3,r1→r4:
如果r1同时定义了对于p的两个的委派设置,一个为允许一个为拒绝,最终有效值为拒绝;
如果r1与r2同时定义了对于p的委派设置,显式权限设置优先,即r1权限设置生效:
如果r2与r3同时定义了对于p的委派设置,距离较近权限设置优先,即r2权限设置生效:
如果r2与r4同时定义了对于p的委派设置,则最终有效值为逻辑与,即等距离情况下如果存在拒绝则最终有效值为拒绝:
对于角色继承中的权限最终有效值的计算,伪代码如下:
2.3 扩展至权限组的角色最终权限有效值的计算
权限组权限集合:令PG(pg)为权限组pg所拥有的权限集合。
权限组继承:权限组继承是一个二元关系,设PI哿PGROUPS×PGROUPS是一个继承关系集合,则(pg1,pg2)∈PI表示权限组pg2继承权限组pg1,记为pg1→pg2.如果pg1→r2,那么对于坌p∈PG(pg1),有p∈PG(pg2).
角色权限组委派:角色权限组委派是一个三元关系,设RG哿ROLES×PGROUP×TYPE是一个权限配置关系集合,则(r,pg,t)∈RG表示角色r与权限组pg具有设置t。
扩展角色权限委派为角色权限组委派后,角色最终权限有效值的计算也相应扩展。当角色与权限之间没有设定时,将扩展为该角色与权限组之间所拥有权限集合的计算。对于可继承的权限组,角色与权限组的有效值计算规则与可继承角色与权限的计算规则基本相同,描述如下:
步骤1:角色r与权限p之间设置了权限有效值t,返回t;否则转步骤2。
步骤2:当前权限或权限组没有父权限组,返回空;否则转步骤3。
步骤3:按广度优先,遍历当前权限或权限组的父权限组与角色r之间设置,如果存在一个或多个设置,返回有效值的逻辑与;否则转步骤2。
对于角色与可继承权限组权限最终有效值的计算,伪代码如下:
3 基于该模型的访问控制应用
对实际业务的需求进行分析与研究后,引入了权限组的概念,该权限组可与角色之间能委派权限许可,并可被继承。由于权限对应于与其特定操作并具有原子性,因而权限组在角色与权限之间增加了一层逻辑层。在应用中,权限组虽然不是实体操作,但能作为权限的集合对业务逻辑进行进一步抽象,加强单以组织结构为划分原则的角色分配中不足的灵活性与逻辑直观性。
举例而言,在业务逻辑中常常需要对申请与审批环节进行交错的权限许可。可以通过增加审批组的角色而加以区分,但使用该方式将会造成额外的角色出现,增加了角色的数量,不能真实地反映组织管理结构。其次,当审批环节本身的权限发生变化,当多个角色直接与权限设置了许可,此时需要修改的许可映射数量将相对于角色数量成倍增长。另一方面,当业务需要对一组特定高级别权限进行拒绝访问设置时,增加权限组进行限制将比增加角色进行限制更直观并符合管理要求。因此引入权限组后能减少角色与权限直接映射的数量,简化了多个权限按集合进行许可的业务逻辑。
在应用系统中使用可继承角色及权限组时仍然需要考虑如下实际业务需求:
比较增加角色与增加权限组之后,增加的映射关系数量以及此类映射的稳定性。
过多层次的权限组将会降低权限判断的直观性,在已有的角色继承层次上增加管理的复杂度。
对于角色或权限组继承,算法按广度优先进行计算,允许出现环路的层次,但此情况在现实管理上是没有实际意义的,应当避免。
角色和权限组的设定原则是实际业务逻辑,避免将业务逻辑反约束于权限模型。
3.1 模型的应用解决方案
该应用解决方案的架构如图1所示。
3.2 活动目录作为用户库
对用户、角色以及用户角色分配的实现,在基于Windows的软件平台上,以减少角色的重复设置为目的,最大可能地利用现有的IT管理投资,使用活动目录作为角色设置与分配的基础。
活动目录是一种事务性数据库,通过使用结构化的数据存储作为目录信息的逻辑化、分层结构基础,采用面向对象的树形结构对它所在的域网络上的共享资源和用户信息进行逻辑化的分层管理。使用其中的“组织单元容器对象”和“组对象”可以有效地进行用户角色和权限信息的管理,“组织单元容器”对象,用来装载用户、组、打印机等对象,提供了“委派控制”的功能可以用来设定管理权,通过给一个管理人员仅在一个容器中创建或修改对象的权力,就可以把他限制在那个容器中;而“组对象”的“Member”属性以及用户对象的“MemberOf”属性可以方便地实现用户角色的安全管理和指派。为了保证域控制器上的目录数据一致性,通过定期与事件触发,通过标准网络协议进行复制。
因此在用户账户管理中,我们使用活动目录作为统一的用户库,通过域用户作为解决方案中的用户,满足了操作系统与软件系统的单一用户帐户登录的功能。在活动目录中,利用活动目录提供的安全服务,减少了该安全代码量,提高了账户安全设置的灵活度和统一性。与此同时,在组织内使用统一的用户登录与认证方式,将能提高管理效率,简化管理复杂度。
3.3 权限组件数据库
权限组件数据库使用基于SQL Server的关系数据库的解决方案,按本模型的描述与定义与按第三范式原则进行数据库模式与表的建立,并基于活动目录的域用户进行访问控制,以区分例如管理员、一般用户及访客的操作权限级别,增加数据库的安全性。
3.4 同步模块
同步模块负责将活动目录中的用户、组织单元容器和组对象信息按一定格式同步到主数据库中。活动目录使用轻量目录访问协议(LDAP),同步模块通过LDAP可以提取活动目录中的信息。在编程接口上,.net框架存在命名空间System.DirectoryServices,包含了各种对活动目录进行操作的方法。通过调用该命名空间进行LDAP查询语句,并使用以下两种活动目录信息同步方案:
定时同步:系统按设定的日程,遍历对象空间并将结果更新至主数据库中。在遍历时可以通过判断对象的更新时序号USN(Update Sequence Number),进行增量更新。
手动同步:系统按管理员的请求,手动触发一次同步。
3.5 权限设置模块
权限设置模块负责权限的设置与存储功能。由于权限配置是一个三元关系,因此模块提供角色权限委派、角色权限组委派的关系设置,权限与权限组关系设置,权限组继承关系设置的创建、修改、删除等基础功能。通过权限验证模块的有效值计算功能模块,提供按用户出发、角色出发、权限出发和权限组出发的不同委派关系设置及最终有效值的视图。
3.6 权限验证模块
应用系统向权限验证模块提出用户账户与权限请求,权限验证模块从主数据库中提取相关数据,运用本模型的定义和规则,计算该次请求的最终有效值并反馈给应用系统。
临时用户权限委托
实际业务中,当用户临时由于特殊原因,需要将自身的权限委托给其他用户。在该委托关系生效时,权限验证模块同时计算委托用户与被委托用户的权限有效值,当发生重复时按逻辑或进行结果计算并反馈给应用系统,以此计算规则满足该业务需求。
缓存
在应用中,往往一个角色将对特定数量的权限频繁提出验证请求,而在角色层次与权限组层次的数量都达到较大规模时,计算复杂度将以平方数级别增长。因而通过使用缓存技术将反复进行的相同计算结果(会话结果)进行缓存,将提高验证的速度并降低系统负载。因而本模块提供验证请求的会话结果缓存功能,将角色的权限验证结果存入主数据库中进行缓存。一旦由于角色、权限及相关设置的修改,将触发该缓存的有效期终止,并在下一次相同验证请求发生时,重新计算有效值并存入缓存。
4 结束语
在对基于角色访问控制模型的分析与研究基础上,通过定义角色继承、权限组以及权限组继承作为用户与被访问客体的中间媒介,使得权限控制管理的复杂度得到了降低,提高了权限控制的灵活性。在此模型基础上,通过对现实中的业务逻辑进行分析,集成了活动目录技术作为统一用户库并提出了较为完善的访问控制解决方案。下一步的研究工作将在此模型的基础上,进一步研究角色与权限委派中访问设置类型的扩展,将该类型扩展为更细粒度的定义,以使得本模型成为一个应用性更好的访问控制模型。
摘要:基于对RBAC模型及相关模型中角色继承规则,引入权限组等概念,提出了一个改进的角色与权限层次关系模型。在此模型上进行访问控制应用的设计,集成活动目录技术作为统一的人员库,形成了一个较为完善的访问控制解决方案,使基于角色的访问控制更为灵活与利于理解。
关键词:访问控制,基于角色的访问控制,角色继承,权限继承,活动目录
参考文献
[1]钟华,冯玉琳,姜洪安.扩充角色层次关系模型及其应用[J].软件学报,2000,11(6):779-784.
[2]Sandhu R S,Coyne E J,Feinstein H L,et,al.Role-based access control models[J].IEEE Computer,1996,29(2):38-47.
[3]鞠成东,廖明宏.基于RBAC模型的角色权限及层次关系研究[J].哈尔滨理工大学学报,2005,10(4):95-99.
[4]唐瑞春,毛健,徐建良,等.基于活动目录的通用授权管理平台的设计与实现[J].中国海洋大学学报,2006,36(6):1013-1018.
[5]Kalam A A E,Baida R E,Balbiani P,et,al.Organization based access control[C]//Policies for Distributed Systems and Networks,2003.Pro-ceedings.POLICY 2003.IEEE 4th International Workshop on,2003:120-131.
[6]Qi Guo,Vaidya J,Atluri V.The Role Hierarchy Mining Problem:Discovery of Optimal Role Hierarchies[C]//Computer Security Applica-tions Conference,2008.ACSAC 2008.Annual,2008:237-246.
【基于角色的访问】推荐阅读:
基于角色的协同设计02-18
基于角色12-04
基于社会角色理论的网络人际关系分析的论文05-23
基于信息技术的立体化大学英语教学模式下教师角色的分析12-05
角色访问05-27
角色访问控制模型05-13
角色访问控制论文08-06
45-基于SSID的Web界面访问控制典型配置举例06-10
以角色为话题的作文600字,角色的作文06-17
浅谈小班幼儿角色游戏中角色意识的培养09-04