1、A Survey on Role-Based Access Control,基于角色的权限管理综述俞诗鹏 2002.4.10,内容提要,权限管理背景及传统模型 RBAC模型基本框架及其扩展 模型理论研究 模型应用研究 下一步研究方案 RBAC相关信息,权限管理背景,权限管理的重要性 应用领域:操作系统,数据库,Internet & Web 传统的权限管理模型 自主访问控制(Discretionary Access Control) 提出者:Lampson 1971, Graham & Denning 1972 类似于UNIX系统中的安全模型 强制访问控制(Mandatory Access Co
2、ntrol) 提出者: Bell & LaPadula 1975, Denning 1976, Biba 1977 又称为LBAC(Lattice-Based Access Control) 初期主要用于美国军方,自主访问控制(DAC),基本思想 对象(object)的创建者为其所有者(owner),可以完全控制该对象 对象所有者有权将对于该对象的访问权限授予他人(grantee) 不同的DAC模型 Grantee得到的权限能否转交他人? Strict DAC: grantee不能授权他人 Liberal DAC: grantee可以授权他人 根据grantee可以继续授权的深度可以分为一级的
3、和多级的 对象的所有权可否变更? 何人可进行权力的吊销(revocation)? 存在的问题 不易控制权限的传递 容易引起权限的级联吊销,强制访问控制(MAC),基于安全标记(security labels) 主体(subject):security clearance 客体(object):security classification 基本假定(tranquility) 主体和客体的安全标记一旦指定,不再改变 在安全标记集合中定义了一种偏序关系,成为一个格。 基本策略(s为主体,o为客体,为标记函数): Simple security property: s可读o -(s)=(o) Lib
4、eral *-property: s可写o -(s)(s)=(o) 存在的问题 仅有唯一的管理员,无法实现管理的分层 关系复杂,不易实现,RBAC模型的提出,D. Ferraiolo & R. Kuhn (NIST) 1992, 1995 M. Nyanchama & S. Osborn (Western Ontario Univ., Canada) 1994 R. Sandhu et al (LIST, George Mason Univ.) 1996, 1997 最有名的RBAC模型:RBAC96, ARBAC97 (Sandhu) 最新的统一模型: Proposed NIST Stand
5、ard for Role-Based Access Control (ACM TISSEC 2001),RBAC模型中的基本概念(1),用户(User):访问系统中的资源的主体,一般为人,也可为Agent等智能程序 权限(Permission):对计算机中某些受保护的资源的访问许可,是一个广义概念 有的文章中将权限理解成一个二元组(Operation,Object) 角色(Role):应用领域内一种权力和责任的语义综合体 可以是一个抽象概念,也可以是对应于实际系统中的特定语义体,比如组织内部的职务等 针对角色属性的不同,某些模型中将角色进一步细分为普通角色(Regular Role)和管理员角
6、色(Administrative Role) 用户指派(User Assignment):用户集到角色集的多对多的关系,RBAC模型中的基本概念(2),权限指派(Permission Assignment):权限集到角色集的多对多的关系 会话(Session):对应于一个用户以及一组激活的角色。用户每次必须通过建立会话来激活角色,得到相应的访问权限 角色继承关系(Inheritance Relation):角色集上定义的一个偏序关系 r1r2 = Permission(r2) Permission(r1), User(r1) User(r2) 角色层次图(Role Hierarchies):在
7、角色继承关系下,角色集实际上构成了一个层次图 允许各种形式的角色继承,包括多重继承。这样,角色层次图可以是树,倒装树,格等,RBAC模型中角色层次图示例,RBAC模型中的基本概念(3),限制(Constraints):模型中的职责分离关系(Separation of Duty),用于控制冲突(Conflict) 静态职责分离(Static SD):指定角色的互斥关系,用于用户指派阶段。避免同一用户拥有互斥的角色。 实现简单,角色互斥语义关系清楚,便于管理 不够灵活,不能处理某些实际情况 动态职责分离(Dynamic SD):指定角色的互斥关系,用于角色激活阶段。允许同一用户拥有某些互斥的角色,
8、但是不允许该用户同时激活互斥的角色。 更灵活,直接与会话挂钩,适应实际管理需要 实现复杂,不易管理,RBAC96模型层次框架,RBAC96层次模型 RBAC0: 含有RBAC核心部分(Core RBAC) RBAC1: 包含RBAC0,另含角色层次关系(Role Hierarchies) RBAC2: 包含RBAC0,另含限制(Constraints) RBAC3: 包含所有层次内容,是一个完整模型(Consolidated Model),RBAC96模型结构框架,ARBAC97模型,基本思想 在RBAC模型内部实现对各部分元素的管理 管理包括:用户角色管理,权限角色管理,角色层次关系管理,限
9、制管理等 实现分布式管理,避免由一个管理员负责整个系统的管理和维护 管理员对应管理员角色,各个管理员角色之间也存在继承关系 ARBAC97模型的基本组成部分 URA97: 分布式实现用户角色指派 PRA97: 分布式实现权限角色指派 RRA97: 分布式实现角色层次关系管理,ARBAC97模型实例,ARBAC97模型组成部分,URA97 指派模型(Grant Model) 定义关系can_assign,每个管理员对应一个角色区间(Role Range) 吊销模型(Revoke Model) 定义关系can_revoke,可同样定义角色区间 弱吊销(weak revocation)和强吊销(st
10、rong revocation) PRA97 是URA97的对偶模型,所有概念类似。 RRA97 定义关系can_modify,刻画可否修改关系 对应于对层次关系的每一种修改,管理员有相应的修改角色区间,ARBAC97模型整体框架,关于RBAC模型的讨论,模型的优点 通过角色配置用户及权限,增加了灵活性 支持多管理员的分布式管理,管理比较方便 支持由简到繁的层次模型,适合各种应用需要 完全独立于其它安全手段,是策略中立的(policy-neutral) 角色与组的关系 组是一组用户的集合,代表用户的共同属性 角色一方面代表一组用户,另一方面也代表一组权限,使得系统安全配置更灵活,模型理论研究(
11、1),利用RBAC模拟并加强DAC和MAC安全策略 综述文章见Osborn & Sandhu (TISSEC 2000) 证明了RBAC比DAC和MAC更一般,DAC和MAC只是RBAC的两种特殊形式 已经研究的比较透彻了角色层次图的相关研究 如何在图中进行一些相关操作,包括添加、删除角色,添加、删除角色之间的继承关系等 涉及到角色层次图的重建等等细节内容 ARBAC97模型中已有相关描述 但都只有理论模型和算法描述,实现困难 理论框架依然不清楚,没有完整的代数描述 需要进一步研究,模型理论研究(2),对于模型中的限制的研究 Kuhn (RBAC97) 对限制有详细的研究 ,将角色的互斥进行进
12、一步分类 authorization-time exclusion / run-time exclusion complete exclusion / partial exclusion 定义了理论上的安全级别,不过实际中几乎无法使用,仅有理论意义RCL 2000(Role-Based Constraints Language) 由Ahn & Sandhu (TISSEC 2000) 提出,用于刻画角色授权限制 与一种一阶逻辑等同,有可靠性与完全性定理,模型理论研究(3),角色代理模型(Role Delegation) 最近的一个研究热点,许多研究者都给出各种各样的模型 涉及很多方面,模型非常
13、复杂,可能有8个以上的方面可以分类 Permanence, Monotonicity, Totality, Levels, Multiple, 模型代表:RBDM0 & RBDM1 (Role-Based Delegation Model) Barka & Sandhu (NISSC 2000) 提出 RBDM0建立在RBAC0上,比较直观 RBDM1是RBDM0的扩展模型,很复杂,目前还没有定义清楚,模型理论研究(4),策略代数研究(Algebra for policies) 用代数方法研究安全控制的策略 最近的研究结果:Bonatti et al (TISSEC 2002) An Alge
14、bra for Composing Access Control Policies 很抽象,很难理解,需要很好的数学基础 RBAC模型的其它扩展 TRBAC: Temporal RBAC Model (TISSEC 2001) DRBAC: Distributed RBAC Model (RBAC00) EHRBAC: Extended Hierarchy RBAC (软件学报2000) ,模型应用研究(1),针对模型的直接实现(Demo) Ferraiolo et al: RBAC/Web,基于NIST的RBAC模型 Sandhu et al: ARBAC97/WWW,基于ARBAC97模型
15、 不成熟,只能做演示,无法实用 最成功的应用研究:Park & Sandhu Role-Based Access Control on the Web (TISSEC 2001) user-pull / server-pull 使用三种不同的技术实现Web上的RBAC模型 secure cookies, smart certificates, LDAP 但是没有涉及到角色内部的实现机制,user-pull vs server-pull,模型应用研究(2),RBAC的实质性应用 数据库 Oracle, Sybase, 操作系统 Solaris, Internet & Web getAccess
16、Released by enCommerce (2000) TrustedWeb Released by Siemens Nixdorf (2000) WebDaemon,下一步研究计划(1),结合WebDaemon,抽象出角色维数的概念 设法简化大企业中的角色管理 直观上容易理解,但理论描述存在困难 目前采用格的直积来描述 从代数或者逻辑上刻画角色继承关系以及限制 对于角色管理方面的诸多操作给出形式化的定义与算法描述 力争尽可能的描述清楚角色之间的各种关系 实现一个简单的角色管理模型,从应用角度研究 需要有前一项研究作理论基础 争取做成一个角色管理的中间件形式,下一步研究计划(2),Role
17、 Agent ? 扩充角色的概念 私有成员和公有成员 允许多少个用户同时被授权该角色,允许多少个用户同时激活该角色 赋予角色更大的自主权 自己维护权限列表 自己决定与其他角色的互斥关系与包含关系 其他的研究想法 角色代理模型的理论研究 角色与其他安全策略的结合 角色与工作流的一些结合 角色在电子商务上面的一些应用,RBAC相关信息,会议与期刊 ACM SIGSAC CCS (from 1993) SACMAT (from 1995) ACM TISSEC (from 1998) Four issues per year, about four articles per issue 其他会议 ACSAC, NISSC, 研究机构 NIST LIST RBAC相关资料 162.105.70.172资料RBAC,