RBAC访问控制技术的研究与应用
2011-06-06傅丰洪源
傅丰,洪源
(1.黄淮学院计算机科学系,河南驻马店463000;2.河南科技学院,河南新乡453003)
网络的互联带来了政务信息资源的共享,同时也带来了更多的信息安全隐患.电子政务的支撑数据库中存储着大量的政府信息、企业信息和个人信息,经常会涉及国家机密或国家安全,如何提高电子政务内网的安全性和保护政务信息资源显得尤为重要.但目前电子政务内部网络的数据管理本身不是很严谨,核心的机密数据一般只采用简单的授权口令保护,不能适应电子政务进一步发展的需要.“2008年据美国FBI统计,83%的信息安全事故为内部人员和内外勾结所为,而且呈上升的趋势.另据公安部最新统计,70%的泄密犯罪来自于内部,电脑应用单位80%未设立相应的安全管理,58%无严格的调存管理制度”[1].访问控制(Access Control)是通过某种途径显式地准许或限制访问能力及范围的一种方法,其基本目标是防止对任何资源进行未授权的访问,从而使计算机系统在合法范围内使用.因此,运用访问控制技术对内部人员进行安全管理,对其行为进行监控,防止其有意无意地对保密信息的浏览、窃取、串改和非法传播,将对保障电子政务内网数据存储安全起到非常重要的作用.
1 访问控制技术的比较
1.1 自主访问控制DAC(Discretionary Access Contror)
在自主存取控制中,可以在每项资源对象上直接设置用户的各种权限,也可以针对每个用户组设定权限,每一个组对应一定的岗位、职位、职责,而把用户置于一个或多个组中,实现权限管理.其缺点是一旦组织内的人员发生离职、升职、换岗等人事变动或者职能发生变化,都要对每项资源重新设置用户许可的诸多细节.当资源对象数目庞大、组织机构复杂、变动频繁时,授权管理需要花费很大的人力,且容易出错;DAC将赋予或取消访问权限的一部分权力留给用户个人,不利于实现统一的全局访问控制,也无法实现动态的和复杂的安全政策.另外,DAC能够控制主体对客体的直接访问,但不能控制主体对客体的间接访问(利用访问的传递性,即A可访问B,B可访问C,于是A可访问C),这也带来了严重的安全问题[2].
1.2 强制访问控制MAC(Mandatory Access Control)
在强制访问控制中,对系统中的用户和文件分成密级进行标识,对于任意一个对象,只有具有合法许可证的用户才可以存取,用户只能读取比其密级低的文件,从而达到防止非授权用户越权读和修改文件的目的.强制访问控制相对比较严格,避免了自主访问控制中出现的访问传递问题.其缺点在于主体访问级别和客体安全级别的划分不够细致且与现实要求无法一致,在同级别间缺乏控制机制.另外MAC由于过于偏重保密性,对其他方面如系统连续工作能力、授权的可管理性等考虑不足[2].
1.3 RABC(Role-based Access Control)的优势
由于DAC和MAC安全性的缺陷及其基于用户的机制造成的添加用户和功能时操作的复杂性,在安全访问控制中,可选择RBAC访问控制技术.RBAC在用户和访问许可权之间引入角色的概念,用户与特定的一个或多个角色相联系,角色与一个或多个访问许可权相联系,角色可以根据实际的需要生成或取消,用户可根据自己的需要动态地激活自己拥有的角色,避免无意中危害系统安全.通过应用RBAC将安全性放在一个接近组织结构的自然层面上进行管理,可有效地克服传统访问控制技术中存在的不足之处,灵活地解决权限管理、资源管理及权限审查问题,减少授权管理的复杂性,降低管理开销,满足政务协同管理的需要,提高政务系统灵活应变的能力.
2 RBAC部件模型分析
标准RBAC由4个部件模型组成,分别是角色基本模型RBAC0、角色层次模型RBAC1、角色约束模型RBAC2和角色层次约束模型RBAC3[3-4].
2.1 角色基本模型RBAC0
定义:RBAC0模型主要由四个基本要素构成,即用户(U),角色(R)、会话(S)和权限(P).
UA=U×R,UA是用户到角色的多对多关系;
PA=P×R,PA是权限到角色的多对多关系;
Users:R→2U是来源于UA的函数,它将每一个角色映射到用户集中.这里Users(r)={U,(U,r),UA};
Permissions:R→2P是来源于PA的函数,它将每一个角色映射到权限集中,这里Permissions(r)={P,(P,r),PA};
roles(Si):{r,(user(Si),r),UA};
试验表明,当样本数500较低时,CNN-2C算法相对于CNN-3C和CNN-4C算法准确率较高,但是样本数达到750之后,CNN-3C算法准确率逐步提高,试验结果显示CNN-3C算法的确能够提供比CNN-2C、CNN-4C网络更好的性能。
其中,user:S→U,是将各个会话Si映射到一个用户去的函数user(Si);
roles:S→2R,是将各个会话Si与一个角色集合连接起来的映射,可随时间变化而变化,且会话Si的授权Ur:roles(Si)={P,(P,r),PA}.RBAC0模型见图1所示.
图1 RBAC0模型
在RBAC0中每个角色至少具备一个授权,而每个用户至少扮演一个角色.“用户—角色”和“角色—权限”都是“多对多”的关系.每个用户可以拥有多个角色且一个角色可以分配给多个用户;每个角色可以被赋予若千个权限,某个权限也可以赋予给多个角色.
2.2 角色层次模型RBAC1
在一般的单位或组织中,特权或职权通常具有线性关系,因此在RBAC0中引进一定的层次结构用于反映这一实际是自然的.如在多级安全控制系统内,存取类的保密级别呈线性递增,公开<秘密<机密<绝密.
其中安全策略的一个要求就是:要想合法地获得信息,提出存取请求用户的存取类级别要大于信息的存取类级别.RBAC1模型见图2所示,RBAC1中支持的层次关系可以容易地实现多级安全系统所要求的保密级别的线性排列要求.RBAC1在RBAC0基础上引入的角色层次结构,从数学的角度来讲,其实是一种偏序关系,直观上则体现为一种角色间的权限继承关系,即高级角色继承低级角色的权限.不过有时低级角色的某些权限拒绝被高级角色继承,这时就需要把低级角色的这些不能被继承的权限分离出去,而后形成一新的角色.此时高级角色继承新角色的权限,同时还被赋予新的权限.
图2 RBAC1模型
定义:RBAC1模型的组成同样包括以下几个部分:
U(用户)、R(角色)、P(权限)以及 S(会话);
UA=U×R,UA是用户到角色的多对多关系;
RH=R×R,RH是角色上的一个偏序关系,称之为角色层次关系或等级关系,一般记作“≥”.
Users:R→2U是来源于UA的函数,它将每一个角色映射到用户集中.这里
Users(r)={U,(U,r),UA};
Permissions:R→2P是来源于PA的函数,它将每一个角色映射到权限集中.这里:Permissions(r)={P,(P,r),PA};
roles(Si)={r,(r1≥r)[(user(Si),r),UA]}其中,user:S→U,将各个会话Si映射到一个用户集的函数user(Si);
roles:S→2R,将各个会话Si与一个角色集合连接起来的映射,可随时间变化而变化,且会话Si的授权U r=roles(Si){p,(rl≥r)[(p,r),PA]}.
2.3 角色约束模型RBAC2
在绝大多数组织中,除了角色的层次结构外,经常要考虑的问题就是角色的约束机制.如一个公司的采购员和出纳员虽然都不算是高层人员,但任何一个公司都决不会允许同时将这两个角色分配给一个职员.原因很显然,因为这种工作安排很可能导致欺诈行为的发生.所以RBAC0的另一个增强方向就是RBAC2,即角色约束模型.在RBAC2中,最常用的约束关系就是互斥角色关系.如果两个不同的角色分配给同一用户会造成非法的用户操作,则称这两个角色静态互斥;如果同时激活某用户的两个不同的角色时会造成非法的用户操作,则称这两个角色动态互斥.在一个具体的系统中,不论是否具备层次角色的机制,约束机制都是很重要的.特别是对于一些大的系统来说,更是如此.因为系统管理人员通过规定约束条件就可以指导和控制下级的系统管理员的操作,不致发生失误或越轨.实际上,通过约束机制,RBAC就可实现强制访问控制MAC,而且包括了对RBAC自身的管理和控制.在RBAC中,除互斥角色关系外,还有基数约束关系和必备角色约束关系等.角色约束模型RBAC2的定义如下:
RBAC2包含了RBAC0所有基本特性,除此而外还增加了对RBAC0的所有元素的核查过程,只有拥有有效值的元素才可以被接受.
RBAC2中的约束条件(Constraints)指向UA,PA和会话中的user,role等函数.一般说来,最好是根据其实际的类型和属性加以描述.这样就要考虑语言等环境,所以较难从给约束模型下一个严格的形式定义.在实际的系统应用中,约束条件和实现的方式各有不同,应采取尽可能简单和尽可能高效的约束条件,作为RBAC系统的约束机制.
2.4 角色层次约束模型RBAC3
RBAC3模型实际上是对RBAC1和RBAC2的一个综合.在该模型中主要包括以下几部分:各实体对象、两种分配关系、角色层次结构以及作用于各部分之上的约束关系.其模型见图3.
图3 RBAC3模型
3 RBAC在电子政务内网安全管理中的应用
RBAC在电子政务内网安全管理应用中,主要通过访问权限身份验证、权限管理控制模块设计与权限校验等实现的,该方法在实际安全管理中得到了验证,降低了系统访问控制的复杂度,提高了系统的可维护性[5-6].
3.1 基于RBAC的访问权限身份验证
RBAC访问权限身份验证流程如图4所示.用户访问系统时,首先进行身份验证,然后对通过验证的用户进行访问权限的验证,对于验证成功的显示正确结果.用户登录时调用权限管理系统的用户鉴别服务,如果验证成功,调用权限计算服务,并返回权限关系表.如以J2EE为例,当用户通过浏览器向服务器发出URL资源请求时,Web容器收集用户相关的鉴权信息(如用户名和口令),并通过系统相关的信息安全服务进行识别和判定.在实现时,设计了一个基类Action,取名为BaseAction,在该Action中封装权限审查逻辑,系统中所有需要进行权限审查的Action,都可以从该类继承.这样,就可以实现权限审查逻辑的集中管理,便于系统的维护.
图4 RBAC访问权限验证流程
3.2 RBAC权限管理控制模块的设计
权限控制模块的设计包括权限列表结构设计、权限管理机制设计两部分.RBAC中,权限表示的是对某种客体资源的某种操作许可,由操作和操作所针对的资源或资源集构成.当用户要对一个需安全访问控制的对象操作时,首先需要结合管理的实际情况和政务信息系统的特点,按照一定的编码规则对资源和资源集操作进行定义,确定不同角色对这些资源对象访问的操作模式,并体现在权限列表设计中.权限列表主要是为用户拥有角色、角色拥有权限验证提供相关信息.权限列表存储了权限验证基础信息(具体的表结构略),如用户信息、角色信息以及用户/角色的相应授权信息等,包含的数据实体有用户、用户组、权限组(角色)、权限和系统页面组;数据实体间的关联包含用户—用户组关联、权限—权限组(角色)关联、权限—页面关联和用户组—权限组(角色)关联等.在实际应用中,采用不将URL资源及对应权限关系存放于权限列表的方式,减少了权限审查时对权限列表的访问次数.
权限管理机制设计主要包括角色管理模块和部门、用户管理模块,角色管理模块主要实现角色的配置和管理.用户管理模块除了实现基本的用户增加、删除、修改功能外,还实现了向用户分配角色的功能.
3.3 权限校验
权限校验是实现信息资源访问控制模式的主要部分,其基本过程是对于某一具体资源,查找用户权限分配表,判别当前用户是否具有相应的操作权限.权限校验主要包括三个方面的内容:一是Web服务器上的页面资源访问控制;二是系统菜单、按钮显示的访问控制;三是政务信息资源数据库中记录级的授权访问控制.对于页面资源、系统菜单、按钮显示、编辑框等对象的控制,采用的技术是在Web服务器提出页面资源请求时或在生成菜单、按钮的网页时做权限级的判断,当用户不具备权限时,则要求进行身份验证.对于数据库中记录级的授权访问控制,如一个部门只能被另一个部门查询而无法修改、部门内不同角色数据操作不同等,则需要根据业务逻辑规则进行确定.
4 小结
内网安全是电子政务网络安全建设中容易忽略但却又十分重要的课题,当前我国已经进入了电子政务发展的关键期,面对规模日益扩大的电子政务信息管理系统,授权访问控制信息等安全策略的重要性引起了更多的重视.运用RBAC技术对内网进行访问控制能够减少授权管理的复杂性,促进政务信息资源安全管理机制的建设,保障政务信息安全合理的利用.基于RBAC访问控制模型及相关扩展模型必将在政务信息资源安全建设方面起到越来越重要的作用.
[1]王文文.从国内两大通信巨头“间谍战”来看企业内网安全管理需求[EB/OL].(2010-01-07)[2011-02-12].http://netsecurity.51cto.com/art/201001/176293.htm.
[2]向阳,魏玉鹏,王改梅.数据库访问控制技术研究[J].河南科技学院学报:自然科学版,2006,34(2):101-104.
[3]Sandhu R,Munawer Q.“HowTo Do Discretionary Access Control Using Roles,”Proc.of the 3rd ACMWorkshop on Role-Based Access Control(RBAC-98)[M].Fairfax,VA:ACMPress,1998.
[4]Nyanchama M,Osbon SL.Information FlowAnalysis in Role-Based Systems[C].Journal ofComputingand Information,1994,l(1),Special Issue:Proc.ofthe 6th International Conference on Computingand Information(ICCI),Peterborough,Ontario,Canada.
[5]叶春晓,符云清,吴中福.RBAC中权限扩展的实现[J].计算机工程,2005,31(5):141-172.
[6]林琳,詹永照,年轶.基于组织机构图的改进RBAC模型[J].江苏大学学报:自然科学版,2006(2):147-150.