基于角色的访问控制(Role-Based Access Control) (Role Based Access Control)主讲人:张春华访问控制访问控制是实现既定安全策略的系统安全技术, 它管理所有资源的访问请求, 即根据安全策略的要求, 对每一个资源访问请求做出是否许可的判断, 能有效防止非法用户访问系统资源和合法用户非法使用资源。
DAC和MAC¾DAC是根据访问者和(或) 它所属组的身份来控制对客体目标的授权访问。
它的优点是具有相当的灵活性, 但是访问许可的转移很容易产生安全漏洞, 所以这种访问控制策略的安全级别较低。
¾MAC是基于主体和客体的安全标记来实现的一种访问控制策略。
它的优点是管理集中, 根据事先定义好的安全级别实现严格的权限管理, 因此适宜于对安全性要求较高的应用环境, 但这种强制访问控制太严格, 实现工作量太大, 管理不方便, 不适用于主体或者客体经常更新的应用环境。
RBAC的提出以上两种访问控制模型都存在的不足是将主体和客体直接绑定在起, 授权时需要主体和客体直接绑定在一起对每对(主体、客体)指定访问许可, 这样存在的问题是当体和客体到较高的数存在的问题是当主体和客体达到较高的数量级之后,授权工作将非常困难。
20 世纪90 年代以来, 随着对在线的多用户、多系统研究的不断深入, 角色的概念逐渐形成, 统究的断角色的概念渐并产生了以角色为中心的访问控制模型(R l B d A C t l)(Role-Based Access Control) , 被广泛应用在各种计算机系统中。
相关概念¾角色(Role):指一个组织或任务中的工作或位置,代表了种资格权利和责任系统管员核代表了一种资格、权利和责任(系统管理员,核心)·¾用户(User) :一个可以独立访问计算机系统中的数据或数据表示的其他资源的主体。
.¾权限( Permission):表示对系统中的客体进行特定模式的访问操作, 与实现的机制密切相关。
·与实现的机制密切相关角色用户权限m:n m:nRBAC的特征¾根据安全策略划分出不同的角色, 资源访问许可被封装在角色中, 同时为用户指派不同的角色, 用户通过角色间接地访问资源。
¾优点:灵活表达和实现组织的安全策略,接近日常生活。
接近日常生活RBAC的思想RBAC的核心思想是将权限与角色联系起来, 在系统中根据应用的需要为不同的工作岗位创建相应的角色, 同时根据用户职责,责指派合适的角色, 用户通过所指派的角色获得相应的权限,实现对文件的访问。
也就是说, 传统的访问控制是直接将访问主体(发出访问操作, 有存取要求的主动方) 发访问操作有存求的动和客体(被调用的程序或欲存取的数据访问) 相联系, 而RBAC 在中间加入角色, 通过角色沟通主体和客体。
RBAC分类美国国家标准技术协会(NIST)已经基于RBAC96制定了RBAC标准,它将RBAC主要标准它将分为C RBAC¾RBAC(Core RBAC)¾有角色继承的RBAC (Hierarchical RBAC)¾有约束的RBAC(Constraint RBAC)RBAC (Core RBAC )USERS ROLES OPERATORS OBJECTSUA PA PERMISSIONS US SR SESSIONS核心RBAC 中集合极其关系RBAC(Core RBAC)¾五个集合:用户集(USERS):主体,执行操作对象集(OBJECTS):系统中被动的实体,主要包括被保护的信息资源。
权限集(PERMISSIONS):每个元素分别来自于OBJECTS和OPERATIONS的两个元素,即对象上的操作构成了权限。
·):核心联系用户与特权·角色集(ROLES):核心,联系用户与特权会话集(SESSIONS):系统登录或通信进程和系统之间的会话。
·主要操作¾用户分配(UA )·UA USERS ×ROLES 中的元素确定了用户和角色之间多对多的关系,记录了系统为用户分配的角色,若对用户u 分配了角色r ,则⊆的角若对用户分配了角则UA=UA (u ,r )∪¾特权分配(PA )PA PERMISSIONS ×ROLES 中的元素确定⊆了权限和角色之间多对多的关系,记录了系统对角色分配的权限,若把权限p 分配角色r ,则PA=PA (p r) ∪(p ,)主要操作¾用户会话US USERS ×SESSIONS US US S S SS O S 中的元素确定了用户和会话之间的对应关系,由于一个用户可能同时进行多个登录或建立多个通信连接,对多⊆一对多。
¾激活/去活角色若用户属于角色与之对应的会话可以激活若用户属于角色,与之对应的会话可以激活该角色,SR S ×R 中的元素确定了会话与角⊆色之间的对应关系,此时该用户拥有与该角色对应的权限。
用户会话也可以通过去活操作终止一个处于激活状态的角色。
有角色继承的RBAC模型RH操作UA PAUSERS ROLES OPERATORS OBJECTSPERMISSIONS US SRSESSIONS有角色继承的RBAC中集合及其关系有角色继承的RBAC¾角色继承关系是角色集R 上的一种偏序关系,满足:自反性:r R ,r ≥ r ;反对称性:r1,r2 R ,r1 ≥ r2 r2≥ r1 r1=r2∀∈∀∈∩⇒ 传递性:r1,r2,r3R ,r1≥r2 r2≥r3 r1≥r3从语义上讲两个角色12∀∈∩⇒从语义上讲,两个角色r1继承r2是指前者比后者级别更高,具有更大的权利。
形式化地说,r1蕴含r2则r1拥有r2的权限,r2有用r1的用户,即:r1 ≥r2 P (r2)P (r1)U (r1)U (r2).⇒⊆∩⊆有角色继承的RBAC 模型外科医生手术白求恩医生看病扁鹊继承(包含)开药方华佗高层往往具有低层的所有权限,通常的做法是为低层分配其拥有的全部权限,而只为高层分配其特有的权限,缺省的则从低层继承而来有角色继承的RBAC¾两种继承方式(包含关系)受限继承一个角色只能继承某一个角色不受限继承:一个角色只能继承某一个角色,不支持继承多个角色。
多重继承一个角色可以继承多个角色也可多重继承:一个角色可以继承多个角色,也可以被多个角色继承。
有约束的RBAC模型有约束的RBAC模型通过提供职责分离机制进步扩展了以上有角色继承的RBAC 制进一步扩展了以上有角色继承的模型。
职责分离是有约束的RBAC模型引入的一种权限控制方法其目的是为了防入的一种权限控制方法,其目的是为了防止用户超越其正常的职责范围,主要包括SSD和DSD。
有约束的RBAC 模型OPERATORS SSD RH 操作USERS ROLES PERMISSIONS OBJECTSUA PA US SR SESSIONS DSD有约束的RBAC 中集合及其关系有约束的RBAC模型¾职责分离静态职责分离(SSD,Statistic Separation ofDuty)对用户分配和角色继承引入了约束。
(存在排他性,不能继承)·动态职责分离(DSD,Dynamic Separationof Duty)引入的权限约束作用于用户会话激活角色的阶段·RBAC 的应用举例¾假设一个高校教学管理系统包含学校、院、系、系统功能班级管理及选课管理和结果查询等多个功能。
每个功能模块又包含了若干个子功能项。
¾系统用户包括教务处管理人员, 系教学管理人系统角色系统用户包括教务处管人员,院/系教学管人员和全体教师, 学生等。
¾用户通过访问系统完成信息录入, 查询, 数据管,,,理等工作。
不同用户被授予不同的访问权限,并且同一类用户在系统运行的不同时段其权限也可能发生动态变化权限发生动态变化。
分析为了实现系统访问权限的动态管理,简化和规范授权操作,确保对系统资源的正确和安全访问,要采用RBAC 方法数据库设计¾五个表:用户表操作系统的实际用户表存储用户的 用户表:操作系统的实际用户表,存储用户的一基本信息,账户,姓名,密码等角色表根据用户的不同工作岗位划分为不同 角色表:根据用户的不同工作岗位划分为不同的职责,在系统中映射为不同的角色。
权限表:不同的权限可操作的资源集合权限表:不同的权限可操作的资源集合。
用户到角色映射表:用户和角色对应关系表角色到权限映射表角色权限的集合角色到权限映射表:角色权限的集合RBAC96RBAC3角色继承(RH)RBAC1用户集角色集权限集UAPA RBAC0…角色RBAC2约束集会话用户RBAC96¾RBAC0:基本模型,指明用户、角色、访问权限和会话之间的关系引入了角色层次来反应个组织的职¾RBAC1:引入了角色层次来反应一个组织的职权和责任分布的偏序关系,一般用≥来描述。
另外,用户可以为他具有的角色或其下级角色建外,用户可以为他具有的角色或其下级角色建立会话,其获取的访问权限包括在该会话中激活角色所具有的访问权限以及下级角色所具有的访问权限。
¾RBAC2:在RBAC0的基础上引入约束来规定各种操作是否可被接受。
包括:基数限制在同时间个用户可拥有的角色数目受 基数限制:在同一时间一个用户可拥有的角色数目受限,一个角色对应的许可数目也受限。
RBAC96互斥角色:同一个用户仅可分配到一互斥角色集中至多一个角色,或者用户虽然分配到一互斥角色中多个角色,但在会话时用户至多能激活其中的某一个角色。
先决条件角色可以分配角色给该用户仅当用 先决条件角色:可以分配角色给该用户仅当用户已拥有另一角色时;分配许可给该角色仅当该角色已经拥有另一操作许可时。
该角色已经拥有另操作许可时。
时间频度限制:规定特定角色或许可的使用时间和频度。
¾RBAC3:是RBAC96模型中的最高层次模型,它包括了RBAC1和RBAC2所有的特征,当然也就包括了RBAC0。
.RBAC96的特点¾RBAC96模型系统而全面地反映了RBAC多方面的含义,将RBAC的几个主要方面全部涵盖其中。
同时,RBAC96模型包含了四个相互关联的子模型,具有较强的层次感,并以此很好地表现出了RBAC本身的多层次性。
¾为解决私有权限的继承问题,RBAC96引入了私有角色的概念,引起了使角色层次关系更复杂、角色管理负担加重的新问题。
RBAC96中阻塞某些权限的继承,是通过私有角色来实现的,即如果一个角色r1的部分权限不希望被另一个角色r2继承,那么r1必须将这些权限分离出来,派生出一个新的角色r1’,称为r1的私有角色,r1中只能描述可出个新的角色1称为1的私有角色1以被r2继承的权限,而r1’中描述r1的私有权限。