首页 > 范文大全 > 正文

增强的基于角色的数据库访问控制模型

开篇:润墨网以专业的文秘视角,为您筛选了一篇增强的基于角色的数据库访问控制模型范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:传统的角色访问控制模型(RBAC)由于组成元素过于笼统并且其约束规则过于简单,在安全性上存在一定的缺陷。在传统的角色访问控制模型的基础上,进行了组成元素和约束规则的扩展,同时针对管理权限进行分化管理,形成了一个管理权限分立、约束规则完备和实用性较强的角色访问控制模型ERBAC。

关键词:角色;访问控制;权限;约束

中图分类号:TP309.2;TP393.08

文献标识码:A

0引言

在目前的信息技术体系中,数据库系统处于核心的位置。数据库是信息存储和处理的中心,其安全性对于整个信息体系的安全运转至关重要。在数据库安全体系中,访问控制是最为核心的部分,可以说,数据库系统中访问控制完善与否直接决定整个数据库系统的安全性能。

早期数据库的访问控制大致分为自主访问控制和强制访问控制。自主访问控制中访问规则的制定取决于用户自身,用户根据需要将客体的访问权限授予他人。而强制访问控制则不允许用户自身进行访问控制的管理,而是进行系统的统一管理和控制。自主访问控制由于管理过于松散,不可避免将导致一系列的安全威胁,比如机密信息泄露和敏感信息篡改;而强制访问控制由于其规则过于严格,可用性不是很高。鉴于上述缺陷,在强制访问控制和自主访问控制中寻找二者的折中成为研究的热点。20世纪90年代初期,一系列政策中立的模型被提出,在这些模型中,最为知名的便是基于角色的访问控制模型(RoleBased Access Control, RBAC)。

1RBAC模型

1992年Ferraiolo和Kuhn发表了关于RBAC方面的第一篇学术文章[1],在此以前的研究当中,虽然提到了角色的概念,但是都没有给出关于RBAC的完整描述。对于RBAC进〖HJ1.55mm〗行了细致的描述,对于RBAC的组成元素给出了明确的定义,同时还提到了角色激活、角色继承和约束等概念。

Ferraiolo和Sandhu分别在1995和1996年提出了关于RBAC的形式化描述,特别是Sandhu等人在文献[2]给出了一个比较完备的RBAC模型框架(RBAC96模型,如图1)。RBAC模型是一个模型族,它由RBAC0、RBAC1、RBAC2和RBAC3组成。其中,RBAC0是RBAC的核心部分,是由RBAC最为核心的元素组成;RBAC1在RBAC0的基础上增加了角色的继承;RBAC2在RBAC0的基础上增加了角色之间的约束[3];RBAC3则是RBAC1和RBAC2的综合,在RBAC0的基础上加入了角色的继承和角色之间的约束。

RBAC模型的最大特点就是对系统中的权限管理方式进行了改进。通过在用户和权限之间构建一个桥梁――角色,将两者联系起来。角色是权限的集合,角色中权限的制定由特定人员根据角色在系统中所承担的职责制定。这样用户权限的管理方式就改进成对角色的管理:根据用户的职责授予相应的角色,用户只能在其角色所允许的智能范围内进行合法的操作;按照约束对用户拥有的角色进行回收。RBAC继承了自主访问和强制访问的优点,同时对于二者存在的缺陷进行了最大的弱化。

RBAC在创立之初并没有考虑它实际应用的环境,只是给出了一个大体的结构框架。为将RBAC应用到实际中,我们对RBAC进行了进一步的改进,形成了一个增强的RBAC模型(ERBAC),该模型细化了RBAC的原有元素定义,同时进一步扩展了新的元素,并且为了保证安全详细制定了系统的安全约束规则,新模型比RBAC更加安全、实用。

2ERBAC模型元素

ERBAC模型如图2所示,ERBAC不但继承原有的RBAC模型的主要组成元素和约束规则[3~5],同时也对组成元素和约束规则进行扩展,并加入新的元素和规则。

2.1继承元素(继承自RBAC)

U:用户集,模型中的用户总体。

P:权限集,模型中所有的客体访问模式的集合。

R:角色集,角色是模型中权限的集合,通过制定角色来描述模型中某些主体的权限范围和责任。角色分为活跃角色和非活跃角色,一个用户要执行某个权限的权限,必须使此角色处于活跃状态,也就是要激活这个角色。

S:会话集,会话是模型中主体和其活跃角色之间的映射。

UA:UAU×R,UA是模型中用户与角色分配关系的集合。

PA:PAR×P,PA是模型中角色与权限分配关系的集合。

RH:RHR×R,RH是模型中角色继承关系的描述。如(role1,role2)∈RH,则表示role2继承角色role1。

CONSTRAINTS:模型中约束机制的集合。CONSTRAINTS由动态职责分离(DSD)和静态职责分离(SSD)组成,SSDR×R,DSDR×R。SSD是指存在SSD关系的两个角色不能被同时赋予一个用户,而DSD是指存在DSD关系的两个角色不能被用户同时激活。

2.2扩展元素

Exdef1 管理权限集(AP):APP,管理权限是涉及到管理操作的权限,这些权限包括:创建用户、删除用户、创建角色、删除角色、设置角色之间的继承关系,设置冲突角色、角色授权和释权、角色的授予和回收和审计日志操作等。

Exdef2 普通权限集(CP):CPP,普通权限由一些基本的关系操作组成,这些操作不涉及到管理操作。普通权限包括关系(表、视图等)的创建、查询、更新和删除等。

Exdef3 管理角色集(AR):ARR,管理角色是负责系统管理和操作的角色,其权限集由管理权限组成。管理角色主要由以下几部分组成:

系统管理员(ADM)负责模型中的用户管理和角色管理,系统管理员所对应的权限包括创建用户、删除用户、创建角色和删除角色。

安全管理员(SEC)负责模型中的角色授权和角色分配,同时安全管理员也负责指定角色之间的继承关系和设置角色之间的冲突关系。

审计管理员(AUD)负责模型中审计记录的管理与操作,同时分析审计记录并向系统管理员反馈。

Exdef4 普通角色集(CR):CRR,普通角色在系统中只能进行一些基本的关系操作,这些操作不涉及到系统管理,它的权限集由普通权限组成。

Exdef5 普通用户集(CU):CUU,模型中普通用户的集合,普通用户是只能进行一般性操作的用户,普通用户不能拥有管理角色。

Exdef6 管理用户集(AU):AUU,模型中管理用户的集合,管理用户负责系统中的关键事务,一个管理用户的角色集是管理角色集的子集。

Exdef7 事务集(EVENTS):对于e∈EVENTS,e=(s, op, o)。事务是系统中的一个操作过程,它反映的是一个操作的实施主体、操作类型和承受客体。

Exdef8 审计(AUDIT):审计用来记录模型中主体的行为及其上下文信息,审计记录可以用来发现问题和找到问题的根源,同时也是进行安全监控的主要信息来源。

Exdef9 角色激活基数MAXN:角色激活基数用来表征一个角色同时被激活的最大次数,即一个活跃角色在系统中最多同时被MAXN个用户拥有。

Exdef10 用户活跃角色基数MAXUR:用户活跃角色基数用来描述一个用户所能够同时拥有的最多活跃角色数目。

2.3ERBAC模型操作函数

在ERBAC模型中,将扩展几个新的操作函数,这些操作函数将会作为访问控制约束规则中的信息来源。

角色权限集GETP(role):取得角色role的权限集合。

用户角色映射ROLE(user):取得用户user的所有直接授予角色。

角色用户映射USER(role):取得角色role的所有直接授予人。

父角色集PARR(role):PARR(role)是由角色role及其所有父角色组成的角色集合,父角色是role所继承的角色。

role′∈PARR(role)(role, role′)∈RH

子角色集CHIR(role):CHIR(role)是由角色role及其所有子角色组成的角色集合,子角色是继承自role的角色。

role′∈CHIR(role)(role′, role)∈RH

用户角色集ROLES(user):获得用户user的当前所有角色。集合包括user被直接赋予的角色和间接赋予的角色。间接赋予的角色指的是一个直接赋予的角色的父角色,即ROLES(user)是用户user所有可用角色的集合。