毕业设计(论文)
论文题目: 基于角色访问控制 _____的研究与应用________
学生姓名 学生学号
年5 月 25日
专业班级 指导老师 院长 (系主任)
毕业设计(论文) 第 I 页
基于角色访问控制的研究与应用
摘 要
计算机技术安全管理的范围很广,可以包括网络安全性、数据安全性、操作系统安全性以及应用程序安全性等。对一个多用户商用应用系统而言,系统的安全访问控制是必须的,系统不仅要满足功能性需求,还要满足安全性需求。系统的安全访问控制一般是通过用户认证和用户权限管理来实现。各类应用系统的整个体系结构上要设计一个安全可靠、配置灵活、易扩展的安全控制模块,它主要有两部分内容:用户认证和用户权限管理。目前大致有三种安全模型:访问矩阵、基于角色的访问控制(RBAC-Role based access control)模型和多级模型。其中基于角色的访问控制模型得到了日益广泛的应用。
基于角色的访问控制是一种新型访问控制模型,它的基本思想是将权限与角色联系起来,在系统中根据应用的需要为不同的工作岗位创建相应的角色,同时根据用户职务和责任指派合适的角色,用户通过所指派的角色获得相应的权限,实现对文件的访问。它支持最小、责任分离以及数据抽象三个基本的安全原则。
关键字:访问控制;基于角色访问控制;角色;自主访问控制;强制访问控制;RBAC96,
ARBAC97
毕业设计(论文) 第 II 页
Research and Application on Role-Based Access Control
Abstract
The computer technology safety control scope is very broad, may include the network security, the data security, the operating system security as well as application program security and so on. Speaking of a multi user commercial application system, the system safe access control is must; not only the system must meet the functionality need, but also must meet the secure need. The system safe access control is generally realizes through the user authentication and the user jurisdiction management. In each kind of application system entire architecture must design the safety control module which a security reliable, the disposition nimble, easy to expand, it mainly has two parts of contents: User authentication and user jurisdiction management. At present approximately have three kinds of security models: Visit matrix, based on role access control (RBAC-Role based access control) model and multistage models. In which obtained day by day the widespread application based on the role access control model.
Based on the role access control is one kind of new access control model, its basic thought is relates the jurisdiction and the role, needs to found the corresponding role in the system according to the application for the different operating post, simultaneously acts according to the user duty and the responsibility designation appropriate role, the user through the role which appoints obtains the corresponding jurisdiction, realizes visit to the document. It supports the least privilege, the responsibility separation as well as the data abstract three basic security principle.
Keywords: Access control; RBAC; role; discretionary access control; mandatory access
control; RBAC96; ARBAC97
毕业设计(论文) 第 III 页
目 录
1 绪论 ........................................................................................................................................ 1 1.1信息安全中的访问控制技术 ........................................................................................... 1 1.2访问控制技术的发展过程 ............................................................................................... 2 1.3基于角色的访问控制技术(RBAC)的现阶段研究 .................................................... 3 1.4本论文选题的意义 ........................................................................................................... 4 1.5本文研究的主要内容 ....................................................................................................... 5 2 访问控制方法 ........................................................................................................................ 6 2.1传统访问控制技术 ........................................................................................................... 6 2.1.1DAC技术及其发展 .................................................................................................... 7 2.1.2MAC技术及其发展 ................................................................................................... 7 2.2新型访问控制技术 ........................................................................................................... 9 2.2.1基于角色的访问控制 (RBAC)及其进展 ................................................................. 9 2.2.2其它访问控制及其进展 .......................................................................................... 10 2.3访问技术的发展趋势 ..................................................................................................... 11 3 RBAC理论模型 ................................................................................................................... 11 3.1RBAC理论模型介绍 ...................................................................................................... 11 3.1.1RBAC核心 (Core RBAC) ....................................................................................... 12 3.1.2角色的层次(Hierarchal Role) .................................................................................. 13 3.1.3 RBAC的约束 .......................................................................................................... 14 3. 2 RBAC理论模型近年的发展 ........................................................................................ 14 4 RBAC96和RBAC97模型................................................................................................... 15 4.1RBAC 96 模型................................................................................................................. 15 4.2ARBAC 97(ADMINISTRATION RBAC MODEL)模型 ................................................... 16
毕业设计(论文) 第 IV 页 4.2.1用户-角色分配管理(User Role Assignment URA 97) ....................................... 16 4.2.2权限-角色分配管理(Permission Role Assignment PRA 97) .......................... 16 4.2.3角色-角色分配管理(Role-Role Assignment RRA97) ....................................... 16 5 基于角色访问控制在实际项目中的应用 .......................................................................... 17 5.1超市人事管理系统需求分析 ......................................................................................... 17 5.2超市人事管理系统设计思想 ......................................................................................... 18 5.3人事系统的总体结构 ..................................................................................................... 18 5.4RBAC在超市人事管理系统中的设计与实现 .............................................................. 19 5.4.1人事系统RBAC访问控制模型 ............................................................................. 20 5.4.2角色的设计 .............................................................................................................. 20 5.4.3角色间的关系设计 .................................................................................................. 21 5.4.3.1角色间的继承关系 ........................................................................................... 21 5.4.3.2角色间的静态互斥关系 ................................................................................... 23 5.4.4 RBAC于人事系统的数据库设计 .......................................................................... 24 5.4.4.1 SQL Server2000中的RBAC特征................................................................... 25 5.4.4.2系统前后台实现权限统一管理 ....................................................................... 25 5.4.4.3 RBAC数据库实现 ........................................................................................... 26 5.5 RBAC系统的运行步骤 ................................................................................................. 29 5.6 RBAC安全授权的相关机制 ......................................................................................... 29 总结 .......................................................................................................................................... 32 致 谢 ........................................................................................................................................ 33 参考文献 .................................................................................................................................. 34
毕业设计(论文) 第 1 页
1绪论
1.1信息安全中的访问控制技术
随着网络技术的的迅速发展,尤其是internet的广泛普及,大大推动了社会各个领域的信息化进程,对人类社会经济、文化乃至人们的生活方式都产生了深远的影响。大量共享的信息资源,对网络和信息的安全性提出了越来越高的需求。网络上大量非法入侵者时刻威胁着信息的安全,有时甚至会导致整个系统的崩溃。同时合法的使用者的正常访问行为也需要合理地引导和约束。安全的访问控制已经成为构建社会信息化网络必不可少的一个基本组成部分。
访问控制的定义是指经过身份验证的主体(subject)依据约定的规则集合(rule-set),控制对客体(object)合法行使访问权限(permission)的过程。这里的主体(subject)是指访问的进程、设备或进行访问的人(user),客体(object)是指将要被访问到的数据。访问控制可以简单地表示成一个三元组:AC={subject, permission,rule-set}。
访问控制在计算机信息安全中具有非常重要的地位,在国际国内得到了普遍的重视。1983年美国国防部提出的 《可信计算机评估标准》TCSEC,又称桔皮书。计算机系统的可信程度(安全等级)划分成四大类 (D、C、B、A),七个等级 (D, C1, C2, B1, B2, B3, A),其中C1级以上的要求对系统进行安全的访问控制。19年 12月,国际标准化组织ISO 7498-2规定了五大类安全服务,分别是:鉴别服务、访问控制服务、数据保密性服务、数据完整性服务和禁止否认性服务。同时规定了类安全机制:加密机制、访问控制机制、信息确认机制、数字签名机制、数据完整性机制、业务流量填充机制、路由控制机制和公正机制。我国1999年9月13日颁布了《计算机信息系统安全保护等级划分准则》,2001年 1月1日起正式实施。其中详细地说明了计算机系统安全保护能力的五个等级:第一级:用户自主保护级;第二级:系统审计保护级;第三级:安全标记保护级;第四级:结构化保护级;第五级:访问验证保护级,从低到高依次规定了各等级的访问控制的安全保护方式和划分标准[8][9]。其中安全的访问控制与身份鉴别密不可分,共同构成信息化安全的基础和前提。没有安全的访问控制,任何系统的安全防护将失去意义。
毕业论文 第 2 页
1.2访问控制技术的发展过程
1971年,Lampson提出了访问控制矩阵模型,是自主型访问控制(DAC)模型的代表。它规定主体在一组约定规则约束下对客体进行访问,在访问控制矩阵上分别以主体和客体作为两个向量,来表示某个主体对某个客体的访问能力。拥有访问权的主体可以完全自主地决定将其对客体的访问权限传递给其它主体。它要求权限的所有者具有较高的职业道德素质,否则会造成权限的泄漏,从而形成安全隐患。
美国推出了强制型访问控制 (MAC)模型。该模型将主体职务敏感性和客体的数据敏感性预先划分为绝密级、机密级、秘密级和公开级四个等级,主体对客体访问时按照 Lapladu规则进行约束,形成了向上写、向下读的安个的信息流,从而保证了信息的安全。但是强制访问控制模型对访问控制的粒度太大,同时又不易区别访问主体的权限差异,已经远远不能适应电子商务和电子政务的越来越高的安全访问控制的要求。
基于角色的访问控制 (RBAC)产生于 20世纪 70年代,起初应用很少。1992年Kuhn和 Ferrailo给出了基于角色的访问控制的统一定义和特征描述。Ravi Sandhu等提出了RBAC96模型,适用于集中式的权限管理。同DAC和MAC相比,RBAC96模型具有了明显的优越性,它借助于角色的概念,可以给每个角色分派若干访问的主体和若干访问的权限,从而在访问主体和权限相对频繁变动时大大地简化了系统的安全管理。 随着分布式系统的发展,Ravi Sandhu等提出了ARBAC97模型,可用于非集中式的权限管理,将角色区分为若干普通角色和管理员角色,管理员角色用来管理对应的若干普通角色的用户分派和权限分派。其中普通角色和管理员角色分别根据业务组织结构和安全组织结构来构建各自的角色层次树,层次树上的上级角色可以继承下级角色的权限,下级角色可以继承上级角色的用户。这样就减化了在信息管理系统中角色和权限较多,管理复杂的问题。[1][3]
ARBAC97模型本身也存在着许多不足,着该模型的直接广泛应用。如在前体条件的下,权限和用户的分派需要多步进行,在权限和用户表中存在大量冗余的授权信息,在删除角色时易产生不可预料后果等。
针对这些不足,Sejong Oh和 Ravi Sandhu等又提出了ARBAC02模型,该模型利用组织单元的概念来预先构筑用户池组织结构和权限池组织结构,对于角色层次树中的
毕业论文 第 3 页
角色分派用户和权限时进行约束仁。由于该模型需要预先构建用户池组织单元层次结构和权限池组织单元层次结构,同时还需要用户和权限的信息固定预先固定化,大大增加了在构建角色层次树的复杂性,难以直接对此开发出较为实用的基于角色的访问控制的大型信息管理系统。
1.3基于角色的访问控制技术(RBAC)的现阶段研究
当前对基于角色的访问控制的研究是国内外学术研究和讨论在计算机安全领域的一个热点之一。每年有一些论文发表,但大都集中在对 ARBAC97模型缺点和不足的修正,部分论文涉及在分布式环境和异构环境下,工作流系统和信息管理系统中如何引入基于角色访问控制机制。更加合理适用的具有阶段性的模型尚未产生。另一方面,在开发信息管理系统中,软件工程师也在逐步的将基于角色的访问控制技术引进到实际的软件项目中,目前较多的还是RBAC96模型和ARBAC97模型的简单改进和 Web环境下的应用。
ARBAC97模型和 ARBAC02模型都没有对模型中各组成元素的时间特性进行描述。随着访问控制系统的安全要求的提高,时间特性构成了基于角色访问控制模型中约束关系中一个重要的方面。
在较大型的和一些专业化的信息管理系统中,要求将一些较为固定的流水化的权限操作封装成任务,分配给若干角色来处理,而目前有些人结合工作流的机制提出了基于角色访问控制的模型,但是没有充分考虑到任务的嵌套和动态管理等特性,只能做一些简单的应用。本文从任务的一些本质特性出发,对于将基于角色的访问控制嵌入到面向任务环境的模型中,提出了一种较新的机制,对于开发面向任务的基于角色的访问控制具有一定的指导意义。
在分布式网络环境下,基于角色的访问控制模型的实现主要采用了两种应用模式:用户拉动模式和服务器拉动模式,两者各有优劣。随着分布式信息管理系统的广泛应用和网络速度的快速发展,服务器拉动的模式因其更好的安全性和易用性,得到了越来越多的应用,成为基于角色的访问控制系统架构的主流模式。[6][9][14]
随着对基于角色访问控制技术研究的不断深入和应用的快速发展,面向工作流的 RBAC,基于网格的访问控制,基于规则的访问控制, Web服务技术,身份认证技术将与基于角色访问技术逐渐融合和无缝连接,共同构成未来信息安全机制的坚实基础。
毕业论文 第 4 页
1.4本论文选题的意义
当前基于角色访问控制正在信息管理系统中逐渐被推广和应用,构成了信息管理系统安全机制的一个重要的组成部分。如何设计一个构建灵活,操作安全,管理分布的基于角色访问控制系统,己经成为了实现信息管理系统安全机制的一个重要课题。 自从RBAC96模型被提出以来,基于角色的访问控制技术才逐渐被应用到信息管理系统中,但是RBAC96模型作为集中式权限管理模型的一个早期的代表,模型机制过于简单,没有对角色分派用户和角色分派权限的前提条件做出任何,而且本身对权限分派关系的安全控制性并不严格,对全部的角色分派用户和角色分派权限的关系进行控制的权力都集中在管理员身上,管理员之间的权限是同质且同量的。在 RBAC96模型中,管理员事实上仍然是按照自主型访问控制来管理自身的,不在角色层次结构中进行管理。一个RBAC96模型在应用系统中可以拥有若干个管理员用户。一旦某个管理的秘密信息泄露,就可能造成权限的非法传递,则整个系统的基于角色访问控制的安全性也将形同虚设,后果不堪设想。随着互联网的快速发展和网络技术的日趋普及,分布式环境下的安全的权限控制越来越需要非集中的权限管理模型。
ARBAC97模型解决了分布式环境下非集中的权限管理。可以根据需要建立一个管理员角色的层次树,将管理权限分派到若干个安全管理员角色身上,每个角色只具有严格限定的管理权限,给每个普通角色分派新的用户和权限时要先检查该角色的前提条件是否满足,从而在很大程度上保证了角色分派用户和权限的安全性,即使某个管理员的秘密信息不慎被泄露,对整个访问控制系统安全性的损害也到最小区域 (该管理员的权限管理的区间或集合)。但是正是引进了角色分派用户和权限的前提条件,导致了角色层次树上的几乎每个非叶子节点的角色在被分派新的用户和权限之前都需要先满足前提条件 (用户池和权限池),从而造成了角色分派用户和权限的多步操作,相关权限表上的大量冗余信息,另外在删除角色层次树上的某个角色时容易造成整个角色层次树的不稳定等,显然这对于权限设置和维护都是非常不方便的。
整体来讲,应用这几个经典的 RBAC模型在开发权限、角色和用户数量众多、角色层次关系复杂的信息管理系统时,主要存在以下几个问题:
1)可复用性差:在构建一个新的基于角色的访问控制系统中,需要重新建立大量繁琐的角色分派关系和复杂的角色层次管理关系,原有的基于角色的访问控制系统中的相似的角色层次树和约束关系往往不能被直接使用,造成工作的重复和浪费。
毕业论文 第 5 页
2)管理复杂:在数量众多的权限、角色和用户之间进行权限管理和约束关系管理时,工作量大,关系复杂,影响系统的正确性和高效性,另外在需要改动角色层次树上的角色时容易引起整个角色层次树的不稳定。
3)角色没有私有权限:角色的所有权限都被上级角色继承,对角色层次树的高级角色,容易造成权限集合 (包括继承权限)过分庞大和权限冗余;另外,角色所有用户都被其下级角色继承,对角色层次树上的低级角色,容易造成角色到用户分派关系的冗余和相关权限表的记录的冗余。这样在高级角色对应的用户登录时需要激活的继承角色过多,不利于角色之间信息的隐秘性和权限操作的安全性。
4)没有描述模型中的各个组件和对象的时间特性和基数等约束。不利于建立完整的约束机制。
5)没有研究在分布式环境和面向任务的环境中,基于角色访问控制的特殊工作机制。
如上所述,这些不利因素的存在,大大了基于角色的访问控制模型的应用和进一步发展。[3]
1.5本文研究的主要内容
访问控制技术在信息安全领域中占有非常重要的地位。本文主要分析了访问控制的机制原理,以及基于角色访问控制的模型的工作机制和特点,研究如何构建一个灵活高效的基于角色访问控制系统的模型和相关的应用技术。本文共分为六章,主要内容简述如下:
绪论部分介绍了访问控制技术的重要性,发展历史,研究现状和本文的选题意义,本文的内容简介。
第一章绪论对文章梗概做出了简单介绍,介绍了现阶段RBAC的研究。
第二章对访问控制方法有所描述,介绍了传统的访问控制技术,DAC技术以及MAC技术,RBAC以及其他一些访问控制技术。
第三章介绍了RBAC理论模型。以图示的形式介绍了RBAC核心、RBAC约束、角色的层次。
第四章介绍了RBAC96和97模型。
第五章结合实际项目对RBAC的应用加以介绍。 第六章是对RBAC的总结与展望。
毕业论文 第 6 页
2访问控制方法
计算机网络的发展与普及使得信息系统的安全问题日益突出,系统的安全技术也成为人们研究的热点,访问控制是实现既定安全策略的系统安全技术,它管理所有资源访问请求,即根据安全策略的要求,对每一个资源访问请求做出是否许可的判断,能有效的防止非法用户访问系统资源和合法用户非法使用资源。美国国防部的可信计算机系统评估标准(TESEC)把访问控制作为评价系统安全的主要指标,访问控制对提高系统安全性的重要性是不言而喻的。
计算机信息系统访问控制技术最早产生于六十年代,随后出现了两种重要的访问控制技术:自主访问控制(Discretionary Access Control, DAC)和强制访问控制(Mandatory Access Control, MAC)。它们在多用户系统中得到广泛的应用,对计算机信息系统的安全做出了很大的贡献。[3][8]
传统的访问控制技术远远不能满足当前系统安全的要求,安全需求的发展对访问控制技术提出了新的要求,这主要体现在两个方面:计算机信息系统在各行各业的应用进一步普及,与应用领域有关的安全需求大量浮现。比如公共信息服务系统对信息完整性和可用性的需求远远大于对保密性的需求。传统访问控制技术很难满足这种需求:网络和分布式技术的发展使得访问控制要立足于单位或部门的网络来设计和实施,甚至还要考虑其开放性,以便于协作单位间的系统互联。
为了满足新的安全需求,近年来各国学者对访问控制进行了大量的研究,一方面对传统访问控制技术的不足进行改进,另一方面研究新的访问控制技术以适应当前计算机信息系统的安全需求。
2. 1传统访问控制技术
要控制用户对资源的访问,必须要明确标示系统中所有用户和资源。在很多访问控制技术中,用户和资源全部被抽象为主体和客体。主体,即土动实体,导致信息在系统中流动及改变系统状态的用户或进程等:客体,能包含或接收信息的被动实体,如文件,内存块等。包括传统访问控制在内的大多数访问控制技术把资源访问控制统一为主体对客体的访问加以控制。
毕业论文 第 7 页
2.1.1 DAC技术及其发展
传统的 DAC最早出现在七十年代初期的分时系统中,它是多用户环境下最常用的一种访问控制技术,在目前流行的UNIX类操作系统中被普遍采用。DAC基于这样的思想,客体的主人全权管理有关该客体的访问授权,有权泄漏,修改该客体的有关信息。因此有些学者把DAC称为基于主人的访问控制。
DAC技术在一定程度实现了权限隔离和资源保护,但在资源共享方面难以控制。为了便于资源共享,一些系统在实现DAC时,引入用户组的概念,以实现组内用的资源共享。
DAC技术存在明显的不足,资源管理比较分散,用户间的关系不能在系统中体现出来,不易管理:信息容易泄漏,如果在操作系统中使用DAC的控制方式,则无法抵御特洛伊木马(Trojan Horse)的攻击.在自主访问控制下,一旦带有特洛伊木马的应用程序被激活,特洛伊木马可以任意泄漏和破坏接触到的信息,甚至改变这些信息的访问授权模式。
针对 DAC的不足,一些学者对它提出了一系列的改进措施。早在七十年代末,M.H.Harrison, W.L.Ruzzo,J.D.Ulman就对传统的DAC做出扩充,提出了客体主人自主管理该客体的访问和安全管理员访问权限随意扩算相结合的半自主方式的HRU访问控制模型,并设计了安全管理员管理权限扩散的描述语言.HRU模型提出了管理员可以客体访问权限的扩散,但是没有对访fill权限扩散的程度和内容做出具体的定义。到了92年,Sandhu等人为了实现主体需要拥有的控制权限,将HRU模型发展为TAM(Typed Access Matrix)模型,在客体和主体产生时就对访问权限的扩散作了具体的规定。随后,为了实现访问权限需要动态变化的系统安全策略,TAM发展为ATAM(Augmented TAM)模型。上述改进在一定程度上提高了DAC的安全性能,但由于DAC的核心是客体主人控制客体的访问授权,使得它们不能用于具有较高安全要求的系统,因而这些改进模型几乎没有。[1][10] 2.1.2 MAC技术及其发展
MAC最早出现在Multies系统中,在1983美国国防部的TESEC(TRUSTED COMPUTER SYSTEM EVALUATI洲 CRITERLA-可信任计算机系统评估标准)中被用作为B级安全系统的土要评价标准之一。MAC的基本思想是:每个主体都有既定的安全
毕业论文 第 8 页
属性,每个客体也有既定安全属性,主体对客体是否能执行特定的操作取决于二者安全属性之间的关系。
通常所说的MAC主要是指TESEC中的MAC,它主要用来描述美用计算机系统环境下的多级安全策略。在多级安全策略中,安全属性用二元组 (安全级,类别集合)表示,安全级表示机密程度,类别集合表示部门或组织的集合。一般的MAC都要求主体对客体的访问满足BLP(Bell and LaPadula)安全模型的两个基本特征:
简单安全性:仅当主体的安全级别不低于客体安全级且主体的类别集合包含客体的类别集合时,才允许该主体读该客体。
特性:仅当主体的安全级不高于客体安全级且客体的类标记和包含主体的类别集合时,才允许该主体写该客体。
上述两个特性保证了信息的单向流动,即信息只能向高安全属性的方向流动。MAC就是通过信息的单向流动来防止信息的扩散,抵御特洛伊木马对系统保密性的攻击。
MAC的不足主要表现在两个方面:应用的领域比较窄,使用不灵活,一般只用于军方等具有明显等级观念的行业或领域:完整性方面控制不够,它重点强调信息向高安全级的方向流动,对高安全级信息的完整性强调不够。
为了增强传统的MAC的完整性控制,美国Secure-Computing公司提出了TE (Type Enforcement)控制技术。该技术把主体和客体分别进行归类,它们之间是否有访问授权由TE授权表决定,TE授权表由安全管理负责管理和维护,TE技术在Secure-Computing公司开发的安全操作系统LOCK6中得到了应用。TE技术提高了系统的完整性控制,但授权表给管理员带来很多麻烦。为了改进TE控制技术管理复杂的不足,TE发展为DTE(Domain and Type Enforcement)访问控制技术,它主要通过定义一些隐含规则来简化TE授权表,其维护工作也随之大大减少。
Chinese Wall模型是Brewer和Nash开发的用于商业领域的访问控制模型,该模型主要用来保护客户信息不被随意泄漏和篡改。Chinese Wall模型后来被证明也是一种强制访问控制模型,它的贡献在于对开发商用访问控制技术的尝试。
上述种种改进在一定程度上使得传统的 MAC技术更加完善,并在商用领域也做出了一定的应用,但从总体上来看,这些模型大都针对具体应用开发,灵活性差,产生的影响不大,只有个别系统采用这些访问控制技术。[1]
毕业论文 第 9 页
2.2新型访问控制技术
2.2.1基于角色的访问控制 (RBAC)及其进展
RBAC (Role-Based Access Control)的概念早在七+年代就已经提出,但在相当长一段时间内没有得到人们的关注。进入九十年代,安全需求的发展加上R.S.Sandhu等人的倡导和推动,RBAC又引起了人们的极大关注,目前美国很多学者和研究机构都在从事这方面的研究,如NIST (National Institute of Standard Technology)和George Mason大学的LIST (Laboratory of Information Security Technology)等。NIST的研究人员认为RBAC将是DAC和MAC的替代者,文章《A Survey to Determine Federal Agency Needs for a Role-Based Access Control Security Product》给出出7民用组织对RBAC产品的需求及有关RBAC产品的市场调研。从1996年开始,美国计算机协会ACM每年都召开BRAC专题研讨会来促进RBAC的研究。
在RBAC中,用户(user)和访问许可权(permission)之间引入了角色(role)的概念.用户与特定的一个或多个角色相关联,角色与一个或多个访问控制许可相关联,角色可以根据实际的工作需要生成或取消,而且登陆到系统中的用户可以根据自己的需要动态的激活自己拥有的角色,可以减少用户无意中危害系统安全的可能。除此之外,角色之间、许可权之间、角色和许可权之间定义了一些关系,比如角色间的层次性关系,而且也可以按需要定义各种约束 (constraints),如定义业务员与人事管理员为互斥角色 (即这两个角色不可同时分配给同一个用户)。
与DAC和MAC相比,RBAC技术具有显著的优点:
RBAC是一种策略无关的访问控制技术,它不局限于特定的安全策略,几乎可以描述任何的安全策略,甚至DAC和MAC也可以用RBAC来描述。这与MAC与DAC存在很大的区别,DAC本身就是一种安全策略,MAC主要是用来描述军用计算机系统的多级安全策略。随着计算机系统在众多行业和部门的普及,访问控制技术的策略无关性显得尤为重要。
RBAC具有自管理能力,利用RBAC思想产生出的ARBAC (Administrative RBAC)模型很好的实现了对RBAC的管理。RBAC的自管理能力具有非常现实的意义,在一个大的系统中,管理众多的用户和文件需要相当大的工作量,由安全管理员集中式管理显然不够理想。同时,RBAC使得安全管理更贴近应用领域的机构或组织的实际情况,很
毕业论文 第 10 页
容易将现实世界的管理方式和安全策略映射到信息系统中,比如现实生活中一个人担任多个职务,在RBAC中只要将用一个用户与多个角色相对应即可实现。
RBAC便于实施整个组织或单位的网络信息系统的安全策略,能提高目前一些网络服务 (如Web服务)的安全性。
与DAC和MAC相比,RBAC技术也存在一定的不足:
1.RBAC技术不如DAC和MAC成熟,它毕竟是一个新发展的事物,在角色配置的工程化、角色动态转换等方面还需要进一步研究。此外有关RBAC实现的技术的研究也需要进一步开展。
2. RBAC比DAC与MAC复杂,系统实现难度大,再者,RBAC的策略无关性需要用户自己定义适合本领域的安全策略,定义众多的角色和访问权限及它们之间的关系也是一件非常复杂的工作。[5][8][11][13] 2.2.2其它访问控制及其进展
基于任务的访问控制技术
P.K.Thomas等人认为传统的面向主体和客体的访问控制技术过于底层和抽象,不便于描述应用领域的安全需要,子是他们从面向任务的观点出发提出了基于任务的授权控制模型TBAC (Task-based Authorization Control),该模型不足之处在于比任何模型都复杂。
基于组机制的访问控制技术
1988年,R.S.Sandbu等人提出了基于组机制的访问控制模型,之后这个模型又得到了进一步扩充,相继产生了模型N-Grid和倒影树模型。Ntree模型的基础是偏序的维数理论,组的层次关系由维数为2的偏序关系(即Ntree树)表示,通过比较组节点在Ntree中的属性关系决定资源共享和权限隔离,该模型的创新在于提出了简单的组层次表示方法和自上向下的组逐步细化模型,倒影树模型是Ntree模型的一个特例,一棵倒立的树加上它的倒影就构成了一棵倒影树,倒影树的上半部分负责管理权限分离,倒影部分负责资源共享,倒影树模型解决了组间资源共享的问题。
除此之外,在九十年代还出现了一些其他的访问控制技术,例如俄罗斯学者提出的基于加密的访问控制技术,及 IBM提出的基于进程间通讯 (IPC)的访问控制技术等,它们侧重于访问控制实现技术的研究,没有形成太大的影响。
毕业论文 第 11 页
2.3访问技术的发展趋势
网络技术发展和系统安全需求多样化将会决定未来访问控制技术的发展趋势,具体表现为:
1.计算机信息系统在不同应用领域的安全需求,将促进与安全策略无关的访问控制技术的研究,其中包括RBAC的进一步研究和发展。
2.分布式和网络技术的发展使得分布式或网络环境下的访问控制技术将成为未来研究的热点。其中不同访问控制技术的统一和互连、协作组织间的网络信息系统访问控制技术、互联网环境下的访问控制技术将成为重要的研究课题。
3.目前信息安全受到前所未有的挑战,单一的安全技术很难保证系统的真正安全,与其它安全技术结合也成为访问控制技术的趋势之一,如具有人工智能特性的自适应访问控制技术与入侵监测系统相结合的访问控制技术等。
在此我们主要研究的是RBAC模型,在原有RBAC模型的基础上提出了RBAC的扩展模型其目的是为了克服原有RBAC模型在权限管理方面过于复杂的缺陷.下面我们就RBAC模型进行分析,并根据 RBAC的框架设计和实现两种不同应用类型系统的访问控制模块。由这两个实际的应用系统来得出扩展的RBAC棋型。
3 RBAC理论模型
RBAC系统模型在 70年代就有人提出,90年代在Ravi.Sandhu等人的提倡和推动下又有了很大的发展。它有多种描述方式,区别在于约束描述方式的不同,但其本质是一致的。
下面选用的NIST RBAC模型,这是一个当前比较成熟和标准的模型。它是由NIST组织中的David.F.Ferraiolo等总结提出来的。
3. 1 RBAC理论模型介绍
RBAC的标准可以分为两个主要部分,即RBAC参考模型和RBAC功能规范。RBAC的参考模型提供了RBAC中集合和关系的严格定义,而RBAC功能规范定义了创建和维护RBAC元素集合和关系所需要的操作,RBAC模型和功能规范可以组织为RBAC的四个组件:RBAC核心,RBAC层次结构,权责分离的静态模型,权责分离的
毕业论文 第 12 页
动态模型。下面逐一介绍这四个组成部分。 3.1.1 RBAC核心 (Core RBAC)
RBAC基本原理就是把权限分配给角色,把角色再分配给用户,这样用户就可以使用他所拥有的角色的权限了。而这一部分就包含了RBAC的最小元素集合,它包括5个基本数据元素: users(USERS) , roles(ROLES) , objects(OBS) , operations(OPS)和permissions(PRMS).除此之外,RBAC核心还包括sessions(SESSIONS)的集合,session是用户与用户所激活的一个或多个角色的映射。下图表示了RBAC核心的元素及元素之间的关系。双向箭头表示多对多的关系,单向箭头的尾部为多,如USERS->SESSIONS含义为:一个用户可以占用多个会话 (SESSION)但一个会话不可以被多个用户使用。
图3-1RBAC核心模型
其中Permission是对功能或者对象操作的许可.而对象(object)在早先的访问控制模型中是指包含信息或者可以接受信息的实体,在 RBAC中对象代表信息容器 (比如:操作系统中的文件或者目录还有数据库系统中的列、行、表、视图)或者是系统可以使用的资源,如打印机,磁盘空间,CPU周期等。
RBAC最核心的内容是角色关系的概念。如图3-1所示的:角色联系了User Assignment(用户分配--UA)和Permission Assignment(权限分配--PA)这两个关系。这种多对多的关系使得权限的分配更加灵活,也使得权限分配更符合实际意义。如一个教学教务系统中,可以有教师,学生这两类用户,就可以在系统中设计教师和学生这两种角色。
毕业论文 第 13 页
对于添加的用户不再逐一分配给他们可以使用的权限,只需要把他们所属的角色赋予他们即可。这样很简单他们就可以拥有合适的权限了。而且如果系统存在用户的工作岗位经常变动的情况,更能体现访问控制模式的优势。只需要收回原来的角色在赋予一个新的角色即可。由此可以看出RBAC是一种可以体现用户职责的控制方式,而职责的不同往往是权限不同的主要原因它抓住了权限的本质。 3.1.2角色的层次(Hierarchal Role)
这一部分加入了角色层次的描述,如图3-2
图3-2RBAC角色层次
角色的层次也是RBAC模型中一个很重要的概念,它定义了角色之间继承的关系。所谓继承指的是,如果角色r2中所有的权限都包含在r1的权限中,就称为角色rl继承了r2。角色的层次关系有两种定义,一种是一般性层次关系还有一种是性层次关系。性的层次关系简化了一般性层次关系,它规定角色可以有多个角色继承者,却只能从一个角色继承而来。[6][7][10]
一般性角色层次支持多重继承的概念,即可以从两个或更多的角色中继承权限同时继承用户集合。多重继承体现了很重要的层次属性。
性层次关系中的角色被限定为只能由一个角色继承而来。虽然性层次关系不支持多重继承,但是它使得Core RBAC的管理更清晰。
假设有一个会计的角色使用这种性的层次关系,则如图3-3所示:
毕业论文 第 14 页
图3-3 RBAC性角色层次
在图3-3中双椭圆代表用户,单椭圆代表角色,在角色的层次上,角色只能从一个角色继承而来,但是可以拥有多个继承者.Accounting这个角色有:AccRec, Auditing,Cashier,Billing四个继承者,AccRec的继承者AccRecSpv只能从AccRec这一个角色来继承。可以看到,这种关系只是了角色的继承,用户仍然能继承多个角色的权限。 3.1.3 RBAC的约束
RBAC的约束中添加了对责权分离的要求。它用来限定某些权限不能由一个用户全部拥有。作为一个安全限定它广泛的应用于商业和等领域中。在 RBAC标准模型中,它把这种责权分离分成两种:静态责权分离关系和动态责权分离关系。
RBAC中静态约束在角色集合的限定,特别是它们与用户的关系(UA)。即如果一个用户己经分配了一个角色,那么此用户就禁止分配给另外一个角色。
3. 2 RBAC理论模型近年的发展
RBAC理论模型提供了一个灵活的框架,它用来描述各种访问控制方式,甚至是传统的MAC与DAC技术。而这些控制技术都是通过约束来描述的。可以这样说约束的不同决定了控制方式的不同。因此最近在此技术上的发展都是在约束上的扩展。
毕业论文 第 15 页
4 RBAC96和RBAC97模型
4.1RBAC 96 模型
RBAC 96 模型是Sandhu等人提出的一个RBAC模型簇,包括四个模型。Sandhu等人认为RBAC是个内含广泛的概念,难以用一个模型全面地描述。RBAC0是基本模型,描述任何支持RBAC的系统的最小要求。RBAC 0包含四个基本要素:用户、角色、会话和访问权限。用户在一次会话中激活所属角色的一个子集获得一组访问权限即可对相关客体执行规定的操作,任何非显式授予的权限都是被禁止的。RBAC1是对RBAC0 的扩充,增加了角色等级的概念。实际组织中职权重叠现象的客观存在为角色等级提供了依据。通过角色等级,上级角色继承下级角色的访问权限,再被授予自身特有的权限构成该角色的全部权限,这极大地方便了权限管理。比如销售部经理应具有销售部职员的访问权限,同时还应有普通职员不具备的权限,如制定和修改销售计划,考核每个销售员的业绩等。[1]
RBAC2也是RBAC 0的扩充,但与RBAC 1不同,RBAC2加进了约束的概念。约束机制由来已久,如在一个组织中会计和出纳不能由同一个人担当(称为职责分离)。RBAC 2 中的约束规则主要有:
· 最小权限 用户被分配的权限不能超过完成其职责所需的最少权限,否则会导致权力的滥用。
· 互斥角色 组织中的有些角色是互斥的,一个用户最多只能属于一组互斥角色中的某一个,否则会破坏职责分离。如上面提到的会计和出纳。权限分配也有互斥约束, 同一权限只能授予互斥角色中的某一个。
· 基数约束与角色容量 分配给一个用户的角色数目以及一个角色拥有的权限数目都可以作为安全策略加以,称作基数约束。 一个角色对应的用户数也有,如总经理角色只能由一人担当,这是角色容量。
· 先决条件 一个用户要获得某一角色必须具备某些条件,如总会计必须是会计,同理一个角色必须先拥有某一权限才能获得另一权限,如在文件系统中先有读目录的权限才能有写文件的权限。
毕业论文 第 16 页
4.2ARBAC 97(Administration RBAC Model)模型
RBAC96 模型假定系统中只有一个安全管理员(SO)进行系统安全策略设计和管理. 大型系统中用户和角色数量众多,单靠一个SO是不现实的,通常的做法是指定一组SO, 如有首席安全员(CSO)、系统级安全员(SSO)、部门级安全员(DSO)等. 因此又提出了RBAC 96 的管理模型ARBAC 97。
在ARBAC 97 中角色分为常规角色和管理角色,二者是互斥的。管理角色也具有等级结构和权限继承。那么访问权限可分为常规权限和管理权限,也是互斥的。ARBAC 97 包括三个组成部分。[1][9]
4.2.1用户-角色分配管理(User Role Assignment URA 97)
描述管理角色如何实施常规角色的用户成员分配与撤消问题,而成员分配又常常涉及先决条件问题。如工程部SO只能在本部门内分配角色的用户成员,而被分配的用户必须是工程部的职员,(哪些职员属于工程部由更高级的SO)分配,这是一个先决条件。用户成员的撤消要简单得的多,如部门SO可以依据部门安全策略在本部门内任意撤消角色的用户成员。但这种撤消是一种弱撤消,如用户u是角色A和B的成员,同时B是A的上级角色,假如SO撤消了u在A上的用户成员关系,那么通过继承u仍然具有A的权限。要实现强撤消可以采用级联撤消,即从指定角色及其所有上级角色中撤消指定用户。 但若某个上级角色超出了此SO的管理范围,又会出现新的问题。 4.2.2 权限-角色分配管理(Permission Role Assignment PRA 97)
讨论常规角色访问权限的分配与撤消问题。从角色的角度看访问权限与用户具有对称性,通过角色关联,因此权限-角色分配与用户-角色分配具有相似的特点,可以通过类似的办法处理,但权限的级联撤消是沿角色等级结构向下级联的。 4.2.3角色-角色分配管理(Role-Role Assignment RRA97)
讨论常规角色的角色成员分配规则以构成角色等级的问题,为了便于讨论将角色分成三种类型:
能力角色 只有访问权限成员或其它能力角色成员的角色,即没有用户成员。
毕业论文 第 17 页
组角色 只有用户成员或其它组角色成员的角色,即没有权限成员。 用户-权限角色 成员类型不受的角色。
这样区分是由建立角色之间关系的管理模型决定的,我们分析一下能力角色,它实际上是一组必须同时授予某一角色的访问权限的集合。因为有的操作需要用户同时具备多项权限,缺一不可,为了管理方便,将这组权限提取为能力角色,且禁止为其分配任何用户。同样,对于组角色实际是应同时分配给某一角色的一组用户,他们形成一个团队共同完成某一任务,就将它们抽象为一个组角色,禁止为其分配权限。基于这种思想, PRA 97 可用于能力-角色分配管理(Abilities Role Assignment ARA97),可用于组-角色分配(Group Role Assignment GRA97 )。[1]
三者的关系: 能力角色只能用能力角色作为其子角色,可以用能力角色或用户-权限角色作为父角色。组角色只能用组角色作为父角色,可以用组角色或用户权限角色作为子角色。
这样,管理角色可以在自己的管辖范围内(相应于常规角色等级而言)进行系统要素的创建、修改、删除等管理活动。
5 基于角色访问控制在实际项目中的应用
RBAC在超市人事管理系统中的应用
5.1超市人事管理系统需求分析
超市作为一个员工众多、工种繁多、人员流动性大、管理复杂的行业,要作到科学合理地安排企业内部的人事工作,是需要投入大量的人力和物力尤其是要配合企业自身的规章制度,进行人事管理,在过去使用人手和纸张来整理,往往使得档案部门不堪重负。而且,在超市企业中,员工的工种是非常复杂,即使同一职务,也可能对应的是不同岗位,他们之间的管理要求和工资待遇也存在很大的差异。对于超市的管理人员来说,销售的业绩又与他们的奖金挂钩,而销售业绩在不同的季节和月份都有不同计划任务。如何更好的管理超市人员的档案,最大化地利用人力资源,为企业创造更多的利益,是超市人事管理迫切需要解决的问题。
与此同时,超市人事管理系统的使用者也因为各自的职务和岗位原因,只能具备其工作范围内的权限,不能越权。所以,超市人事管理系统的设计应能作到让系统使用人
毕业论文 第 18 页
员 “各司其职”。
系统的最终目的是能够自动生成员工的工资,使其数据送到财务部的财务系统进行处理。工资的生成由很多部门的数据汇总才能完成,例如培训部,人事部,小车部等各个部门协调工作才能完成。
5.2超市人事管理系统设计思想
超市人事系统不但解决超市庞大而复杂的人事管理问题,还需要根据不同的用户进行权限控制,在权限控制中使用了基于角色的访问控制方法,提高了系统的安全性,并且能够灵活的根据用户所担任的角色享有相应的权限。作为一个综合型的管理系统,所有的数据都应该能综合的利用,这要求系统模块必须有较强的数据偶合性。除此以外,超市人事系统应能迅速进行内部代码升级和调整,这要求超市人事管理系统在程序设计时,强调模块化,提高程序代码对不同环境的适应能力,以及具备将来迅速升级的能力。 该人事系统与其他人事系统最大的区别在于,它不是简单的对超市员工进行档案资料方面的管理,而是将员工工作表现也是作为设计的重点,并最终体现在工资奖金方面。具体的思路是从基本人事管理,横向扩展到员工的考评、考核,本着“多劳多得”、“奖惩结合”的精神来进行人事管理,以这种方式体现员工的个人价值。
从宏观上看,人事系统的工作流程首先是从培训模块开始,员工在接受培训,合格后,与超市签订工作合同成为正式员工,个人资料进入人事系统的档案系统中,同时为员工分配好工作的部门、职务和岗位。然后按照每月的考勤、考核表现来进行该员工的工资管理。此外,为了使整个人事管理能严格按照企业内部管理制度来进行,操作管理人员也只能执行职权范围内的系统功能。
5.3人事系统的总体结构
人事系统作为一个综合型的信息处理系统,它负责处理着对企业的人员聘任管理、合同管理、档案资料管理、考核管理、考勤管理、行车管理、工资奖金管理以及系统的设置。整个整体架构是树状结构,如图5-1所示:
毕业论文 第 19 页
图5-1人事系统结构图
5.4 RBAC在超市人事管理系统中的设计与实现
在超市人事系统中,安全管理一直都是设计的核心部分,因为超市人事系统的各个子系统不可能对所有的用户开放,这样做既不利于数据保密,又会对系统安全运行造成威胁。通过RBAC可以实现人事系统的安全要求,对不同用户对每个资源访问请求做出是否许可的判断,这样能够有效地防止非法用户访问系统资源和合法用户非法使用资源。由于超市的人员很多,而这些员工在超市承担了不同角色,并且员工之间的调用非常频繁,所以为了便于系统管理用户,所以使用RBAC是最合理的一种方法。
在人事系统中,通过将用户和访问许可权之间引入角色,使得系统用户和特定的一个或多个角色相联系,而角色也与一个或多个访问许可权相联系,系统管理人员的操作可以使角色根据实际的工作需要生成或取消,而用户可以根据自己的需要动态的激活自己拥有的角色,避免了用户无意中危害系统安全。人事系统通过RBAC技术,增加对角色和层次化管理的引进,使得系统本身的安全使用,还是其内部信息的安全性都得到极大的提高。所以,超市人事系统选择基于RBAC的系统安全设计方案是具有特别的意义。
毕业论文 第 20 页
5.4.1人事系统RBAC访问控制模型
在人事系统访问控制模型中,强调用户权限不是由用户名决定,而是由系统用户在人事系统结构组织中所处的角色决定,然后通过角色间接地访问人事系统资源。由此可以总结出,在人事系统中主要存在三个实体:用户、角色和权限。超市人事管理系统RBAC访问控制模型如图5-2所示:
图5-2 超市人事管理系统RBAC访问控制模型图
5.4.2角色的设计
超市人事管理系统的角色的关系是一棵树。在人事系统中,员工是最基础的角色用户,也就是角色树的根。在此基础上,继承了共有7个具有不同权限的二级基本角色,对于其中的基本角色如培训人员、档案人员、考评人员以及财务人员分别有其继承角色,这些继承角色除了具备原基本角色的所有功能外,还有自己特有的权限:
员工:最基础的角色,只具有查询和打印自身资料的权限,并且对自身的资料不具备修
改的权限;
系统管理员:是员工的继承角色,除了具有员工的所有权限外,还主要负责管理系统设
置子系统中各种基本参数的设置,以及人事系统的系统维护,具有权限分配的权力,主要负责管理模块为系统设置。此外,还需负责每天和每月的“日结/月结”
毕业论文 第 21 页 操作;
总经理:是员工的继承角色,除了具有员工的所有权限外,还作为企业的最高负责人,
具有所有子系统的查询功能,为避免误操作,不开放其他功能;
培训人员:是员工的继承角色,除了具有员工的所有权限外,还负责聘任员工子系统中
的 “培训员工查询”、“在职培训员工查询”、“培训员工统计”和 “培训记录查询”的功能;
档案人员:是员工的继承角色,除了具有员工的所有权限外,还负责“档案”、“合同”
两个子系统中的“合同解除查询”、“合同汇总查询”、 “员工花名册查询”、“部门人员信息查询叹、“职务岗位汇总查询”、“岗位责任金查询” 以及“员工调动查询”功能块;
考评人员:是员工的继承角色,除了具有员工的所有权限外,还负责“考核”、“考勤片
子系统中的“业务技能查询”、“业务技能汇总”、“违规违纪/奖励汇总”、“总公司考核汇总查询”、 “考评查询”、“考评汇总”、“考勤查询”、“考勤汇总”功能;
行车人员:是员工的继承角色,除了具有员工的所有权限外,还负责行车管理子系统中
的“出差汇总”功能;
财务人员:是员工的继承角色,除了具有员工的所有权限外,还负责工资/奖金子系统
的特定功能的查询模块,具体的有“奖金汇总查询”、 “超市工资条打印”、 “总公司工资条打印”、 “驾驶员工资条打印”、 “工资查询”、 “工资汇总”、 “工资表打印”、 “工资汇总查询”以及 “总公司工资汇总查询”功能。
5.4.3角色间的关系设计
在人事系统中,角色间的关系主要体现在角色的层次关系、继承关系,以及角色间的互斥关系,在本系统中,层次关系主要也体现在继承关系上。 5.4.3.1角色间的继承关系
人事系统的所有角色都是由“员工”这一基础角色派生出来,也完全继承了员工角色的所有权限,而且每个继承角色还有自身的权限,换句话说就是,继承角色可以完成原角色的所有工作,但原角色却无权完成继承角色的新增工作内容。
毕业论文 第 22 页
图5-3人事系统角色层次图
人事系统的继承关系比较直观的体现是在角色的层次关系上,整个人事系统角色的继承层次有四层,如图5-3所示:
0层:为整个人事系统的基础层,它有且仅有一个基础角色— 员工。所有其他的角色都是由员工的直接或者间接继承,对于0层的员工角色,它仅仅具备查询和打印对应于用户自身的相关资料,而且对这些资料不具备任何修改权限。员工所具有的权限是最少的;
1层:是0层的直接继承,共有培训人员、档案人员、财务人员、行车人员以及系统管理员6个特定角色。对于处于1层的角色来说,除了具备员工具备所有权限外,还具有更大的查询和打印功能。以角色培训人员为例,他除了查询、打印用户自身资料外,还可以查询和打印属于培训子系统的所有资料,但他权限范围仅限于查询和打印,而且是该权限也仅在培训子系统中。在1层中,系统管理员是唯一没有继承角色的角色,专门负责系统设置和日结/月结两大子系统,以维护整个系统基础数据和安全运行; 2层:是1层的直接继承,共有培训操作、档案操作、财务操作、行车操作以及总经理6个特定角色。对于处于2层的角色来说,除了具备1层的父角色具备所有权限外,还增加所在子系统编辑操作功能。以角色培训操作为例,他除了具备培训人员的所有权限外,还可以进行基础资料操作功能,但他权限范围仅是增加基本输入、编辑功能,而
毕业论文 第 23 页
且是该权限也同样仅在培训子系统有效。在2层角色中,比较特殊的是总经理这个角色,他是唯一可以同时跨子系统操作角色,其他同层的角色只能局限于本子系统,他具备培训人员、档案人员、财务人员、行车人员的所有查询、打印功能,但总经理没有相关的编辑权限;
3层:是2层的直接继承,共有培训管理、档案管理、财务管理、行车管理5个特定角色。对于处于3层的角色来说,除了具备2层的父角色具备所有权限外,还增加所在子系统管理操作功能.以角色培训管理为例,他除了具备培训操作的所有权限外,还可以进行针对培训子系统的一些设置和特殊功能的操作,这部分操作一般是涉及到公司管理和行政安排或者是比较重要的操作。同样,该权限也同样仅在培训子系统有效。 5.4.3.2角色间的静态互斥关系
在人事系统中角色间的静态互斥关系主要有两种情况:
第一种情况是关于拥有培训子系统高级权限的角色A和拥有档案子系统权限的角色B之间的静态互斥关系,主要表现形式如图5-4所示。
图5-4人事系统RBAC静态互斥图1
所以,拥有角色A的操作人员只能具备在角色权限规定范围内的功能,也就是说该操作员可以使用培训操作或培训管理角色的权限。但是由于角色A与角色B是静态互斥关系,所以操作员A一旦拥有了角色A的话,那就意味着他无法在具备角色B,也就是说要使用角色B的权限,就必须通过另外一个操作员B,而且他不能具备角色A的权限。
由于整个人事系统的人员的资料都是有培训子系统进入,因此为了确保人员信息不被任意故意篡改,人员的最初原始资料除了档案子系统保留外,参加培训时,培训人员
毕业论文 第 24 页
的个人资料也会被保留,也就是说,人事系统中一个员工将会有两份个人资料,必须保证拥有培训操作或培训管理角色的用户,不能拥有档案操作或档案管理的角色,反之亦然。
第二种情况是于拥有考评子系统高级权限的角色A和拥有财务子系统高级权限的角色B之间的静态互斥关系,主要表现形式如图5-5所示。
图5-5人事系统静态互斥图2
所以,拥有角色A的操作人员只能具备在角色权限规定范围内的功能,也就是说该操作员可以使用考评操作或考评管理角色的权限,但是由于角色A与角色B是静态互斥关系,所以操作员A一旦拥有了角色A的话,那就意味着他无法在具备角色B,也就是说要使用角色B的权限就必须通过另外一个操作员B,而且他不能具备角色A的权限。
这由于人事系统的工资构成是包含员工当月的考勤、考核、违规违纪和奖惩情况等,这些工作都是由拥有考评角色的相关人员进行操作的。为了确保员工工资的准确发放,除了使员工的考评工作准确细致外,还必须保证考评操作或考评管理角色的用户,不能拥有财务操作或财务经理的角色,以此影响工资发放的正常进行,反之亦然。 5.4.4 RBAC于人事系统的数据库设计
人事系统是以客户/服务器模式实现用户权限管理子系统,采用SQL Server2000分别作为客户端开发工具和数据库服务器,客户端表示层的界面功能和用户登录时的身份验证及其相应的权限实现在应用程序中完成,对于用户管理和角色管理中涉及到数据库层的用户、角色的增、删、及角色权限的设定则由SQL Server2000的系统存储过程在后台数据库完成。
毕业论文 第 25 页
5.4.4.1 SQL Server2000中的RBAC特征
SQL Server2000中的角色
SQL Server2000中具有服务器角色、固定数据库角色和用户自定义数据库角色等3类角色。服务器角色在服务器级别上提供管理权限的分组,其本身的管理和用户数据库无关。固定数据库角色在数据库级别上提供管理权限的分组,其涉及到的权限是系统预先定义,不可更改。用户自定义数据库角色供用户建立具有某些权限的用户组,并可进一步通过存储过程将用户自定义的角色赋予相应的用户。本文后续内容所涉及到的角色主要指用户自定义的数据库角色。
SQL Server2000中的权限
SQL Server2000中的权限包括数据库级权限、表级权限和执行级权限三种。数据库级的权限用于数据库的连接、新对象的创建、对象隶属关系的修改和数据库空间的管理等,数据库级权限只能赋予数据库系统管理员角色、安全管理员角色和数据库所有者角色等数据库固定角色。表级权限用于完成对数据库表或视图的操作,包括插入、删除、修改和提交更新等。执行级权限用于执行存储过程。
SQL Server2000中规定用户自定义数据库角色不能获得数据库级权限,只允许将表级权限和执行级权限赋予给或撤消自用户自定义角色。因此应用系统中只能对后两种权限进行控制。
5.4.4.2系统前后台实现权限统一管理
本文提出的前后台权限统一管理的实现思路是:基于RBAC思想,通过用户权限管理模块中用户管理、角色管理、数据库存取权限的管理和应用系统功能模块的权限管理等子模块功能的设计和实现,结合SQL Server中的RBAC特征,应用存储过程技术,将后台数据库系统强大的数据库访问层的安全管理机制和前台应用系统功能层权限管理机制有机地结合起来,从而实现应用系统功能层用户权限管理和后台数据库层用户权限管理的统一,如图5-6所示。
毕业论文 第 26 页
图5-6 人事系统RBAC功能结构示意图
图5-6中,在数据库上建立有下列相应的数据库表:存储用户信息的用户表,用于保存角色信息的角色表,包含用户名、角色名等信息的用户角色表,用于保存应用系统所有数据库表名的数据库基本表,保存角色和对数据库表存取权限对应关系的角色一数据库存取权限表,保存应用系统功能项名的功能项表,保存角色和对功能项访问权限对应关系的角色一功能项权限表。图5-6中显示了用户权限管理模块的各个子模块的功能及其与以上数据库表的对应关系。 5.4.4.3 RBAC数据库实现
人事系统的角色管理模块主要完成用户增减(使用USERS表)、角色增减(使用ROLES表)、用户/角色的分配 (使用USERS表、ROLES表、用户/角色分配表、用户/角色授权表)、角色/许可的分配 (使用ROLES表、PERMISSIONS表、角色/许可授权表)、定义角色间的关系(使用ROLES表、角色层次表、静态互斥角色表、动态互斥角色表),其中每个操作都带有参数,每个操作都有一定的前提条件,操作使RBAC数据库发生动态变化。系统管理员使用该模块初始化RBAC数据库并维护RBAC数据库。
系统管理员的操作包括添加、删除用户,添加、删除角色,设置角色可用性,为角
毕业论文 第 27 页
色增加许可,取消角色的某个许可,为用户分配或取消某个角色,设置用户授权角色的可用性,添加或取消角色继承关系,添加或删除一个静态角色互斥关系,添加或删除一个动态角色互斥关系,设置角色基数。
会话管理模块结合RBAC数据库管理会话。包括会话的创建与取消以及对活跃角色的管理。此模块使用USERS表、ROLES表、动态互斥角色表、会话表和活跃角色表。数据库基本表和存储过程创建代码如下:
. 用户表
CREATE TABLE USERS (
USER_ID CHAR(8),NOT NULL PRIMARY KEY,/*用p编号*/ USER_NAME CHAR(10) NOT NULL,/*用户名称*/
USER_DEPARTMENT_ID CHAR(5) NOT NULL,/*用户部门*/ USER_ TYPE CHAR(1) NOT NULL,/*用户级别*/
/*0代表系统管理员,1代表模块管理员,2代表普通用户*/ ) . 角色表
CREATE TABLE ROLES (
ROLE_ID CHAR(10),NOT NULL PRIMARY KEY,/*角色编号*/ ROLE_ NAME CHAR(20) NOT NULL,/*角色名称*/ ROLE_DESCRIPTION CHAR(100) NOT NULL,/*角色描述*/ ROLE_MODEL CHAR(1) NOT NULL,/*角色所属功能模块*/
ROLE_TYPE CHAR(1) NOT NULL,/*角色级别*//*0代表低级角色,1高级角色*/
)
. 功能模块定义表
CREATE TABLE MODEL_ DEF (
MODEL_ DEF_ID CHAR(2),NOT NULL PRIMARY KEY,/*模块编号*/ MODEL_DEF_NAME CHAR(30) NOT NULL,/*模块名称*/ ROLE_DESCRIPTION CHAR(100) NOT NULL,/*角色描述*/ MODEL-USER-ID CHAR(8) NOT NULL,/*模块管理员编号*/
毕业论文 第 28 页 )
. 功能权限表
CREATE TABLE PERMISSION (
PERMISSION_ID CHAR(20),NOT NULL PRIMARY KEY,/*权限编号*/ MODEL_DEF_ID CHAR(2),NOT NULL PRIMARY KEY,/*所属模块编号* PERMISSION_ESCRIPTION CHAR(80) NOT NULL,/*权限描述*/ )
. 用户-角色关系表
CREATE TABLE USER_ ROLE (
ROLL_ID CHAR (20),NOT NULL,/*角色编号*/ USER_ID CHAR(2),NOT NULL,/*用户编号*/ PRIMARY KEY (ROLE_ID, USER_ID), )
. 权限-角色关系表
CREATE TABLE PERMISSION_ROLE (
PERMISSION_ID CHAR(20),NOT NULL,/*权限编号*/ ROLE_ID CHAR(10),NOT NULL,/*角色编号*/ PRIMARY KEY (ROLE_ID, PERMISSION_ID), )
. 数据库端的角色创建的存储过程
/*创建自定义角色,Role_us为角色名变量*/ CREATE PROC ROLE_add
@ Role_us varchar (10) AS EXEC sp_addrole @Role us GO
. 数据库端的角色删除的存储过程
/*删除自定义角色,Role_us为角色名变量*/ CREATE PROC ROLE_drop
@ Role_us varchar (10) AS EXEC sp_droprole @Role_us GO
毕业论文 第 29 页 . 用户分配角色的存储过程
CREATE PROC ROLE_asgn @ Role_us varchar(10)@ User_us varchar (10) AS
/*Role us为角色名变量,User_us为用户名变量*/ EXEC sp_addlogin@User_us
EXEC sp_grantdbaccess @User_ us,@User_us EXEC sp_addrolemember @Role_us,@User_us
其中,对于系统管理员自定义的角色Role_us,先由客户端为其分配所能操作的数据库基本表及其操作权限,同时设定此角色所能访问的功能项,并提交到角色-数据库存取权限表和角色一功能项权限表后,由客户端调用数据库角色及角色权限设定存储过程来完成。
5.5 RBAC系统的运行步骤
用户登录时向身份认证模块发送用户标识、用户口令,确证用户身份; 会话管理模块从RBAC数据库检索该用户的授权角色集并送回用户;
用户从中选择本次会话的活跃角色集,在此过程中会话管理模块维持动态角色互斥; 会话创建成功,本次会话的授权许可体现在菜单与按扭上,如不可用则显示为灰色; 在会话过程中,系统管理员若要更改角色或许可,可在此会话结束后进行或终止此会话立即进行。
5.6 RBAC安全授权的相关机制
人事系统针对数据库面临着来自系统内外的安全威胁,构筑了一个多层次的数据库主动防御模型,这是一个基于角色的多层访问控制的数据库安全模型。该模型中主要访问控制流程如图5-7所示:
毕业论文 第 30 页
图5-7 人事系统RBAC访问控制流程图
人事系统在进行了权限授权之后,就要判断一个具体的用户是否有权限访问特定的系统资源.当一个用户要求访问系统中某种资源时,先判断该用户的角色是否有权限访问该系统资源,如果没有该项权限时,再判断该用户的角色级别,如果是一个低级角色,就直接拒绝其访问:如果该用户的角色是一个高级角色,就去查询其子角色是否拥有该权限。由于允许高级角色的嵌套,所以只有当该高级角色的所有子孙角色都没有访问权限的时候才拒绝该访问。程序流程图如图5-8所示:
毕业论文 第 31 页
图5-8 人事系统RBAC流
毕业设计(论文) 第 32 页
总结
本文通过对访问控制技术的发展研究,逐步探讨了网络安全技术中访问控制的领域,对其中的关键技术:RBAC理论的研究。基于角色的访问控制技术的几个经典理论模型(RBAC96/ARBAC97)进行了深入的分析和说明,突出了RBAC模型逐步发展的过程和特点。但是 RBAC96模型过于简单,模型本身的安全性不高。ARBAC97模型实现了非集中的权限管理模式,将权限管理的权力按照一定规则分布到若干管理员角色身上,同时引进了角色分派用户权限的前提条件,从而大大增强了ARBAC97模型的安全性。但是也造成了权限管理的多步操作和权限管理信息表的数据冗余。ARBAC02模型引进了用户池限池组织结构,解决了ARBAC97模型多步操作的问题,但是也增加了构建用户池/权限池组织单元层次树的代价,而且模型一旦建成,在添加/删除角色时容易造成整个系统的不稳定。本文还对 RBAC模型的时间特性和面向任务的工作机制进行了深入究和分析,阐述了相关的概念和形式化定义,接着介绍了分布式环境下实现RBAC的框架。
解决经典的基于角色的访问控制模型的缺点和不足是当前和未来几年基于角色权限管理的一个重要的发展方向,例如如何解决权限继承过程中的权限流智能化和互斥权限消解的问题,如何快速灵活,高效准确地建立角色层次树的问题,如何解决基于角色访问控制在分布式环境下和跨域的环境下的应用的技术问题,基于角色访问控制模型中的访问规则的问题,约束机制的问题等。
随着基于角色访问控制技术的深入研究和广泛应用,面向任务的RBAC,基于网格的访问控制,基于规则的访问控制,Web服务技术,身份认证技术,将与基于角色访问技术逐渐融合和无缝连接,共同构成未来信息安全机制的坚实基础。
毕业论文 第 33 页
致 谢
感谢xx大学,这所千年学府给我深厚的学术底蕴。感谢软件学院,学院本着一切为了学生的宗旨,不断提高我们的能力和为我们创造良好的学习环境。
深深的感谢我的导师xx大学软件学院xx教授,我的论文和理论的深入是xx老师给予我指导,他一贯严格的精神和严谨的学习态度,不仅在学术,而且在做人方面给我深刻的教诲。特别是他无私的人格魅力,在我论文开展出现困难的时候他总能给我最中肯的建议和指导,使我有种拨云见日的感觉,在今后的学习生活中,我要积极进取以回报xx老师对我的教诲。另外还要感谢对我论文给予指点和帮助的xxx老师。
最后感谢参与毕业设计评审答辩的诸位老师们,对工作你们认真负责,对学生你们耐心细心,也是你们在百忙之中抽出时间来评审我们的毕业设计,衷心的感谢你们,谢谢大家!
毕业论文 第 34 页
参考文献
[1]刘宏月,范九伦,马建峰.访问控制技术研究进展[J].小型微型计算机系统. 2004,25(1A).56-59. [2]戴祝英,左禾兴.基于角色的访问控制模型分析与系统实现[J].计算机应用研究.2004,9.173-175. [3]吴承荣,张世永.数据库访问控制模型分析[J].计算机工程与应用.2002,13.183-185. [4]何海云,张春,赵战生.基于角色的访问控制模型分析[J].计算机工程.1999,8.39-44. [5]施景超,孙维祥,许满武.基于角色的存取控制及其实现[J].计算机应用研究. 2006,17.13-15. [6]钟华,冯玉琳,姜洪安.扩充角色层次关系模型及其应用[J].软件学报.2000,11.779-784. [7]李孟珂,余祥宣.基于角色的访问控制技术及应用[J].计算机应用研究.2000, 17.44-47.
[8]崔永泉.分布式环境下基于角色访问控制系统研究[D].北京万方数据股份有限公司 . TP393.08.1-23 [9]郝斌.基于角色管理的系统访问控制[EB] . http://www.kupage.com/wpm/15/20030427/1259000000001fyt7hph.htm
[10]Mohammad A. Al-Kahtani,Ravi Sandhu . Rule-Based RBAC with Negative Authorization[J]. Proceedings of the 20th Annual Computer Security Applications Conference2005,4.1-11 [11]邓集波,洪帆.基于任务的访问控制模型[J].软件学报.2003,14.66-69 [12]王薇,吴宇红,马文平.分布式网络管理系统中的访问控制[EB] http://www.infosecurity.org.cn/article/pki/accessctrl/23957.html
[13]洪帆,何绪斌,徐智勇.基于角色的访问控制.小型微型计算机系统.2000,22.198-200. [14]麻志毅,邵维忠.面向对象方法基础教程[M]. 高等教育出版社.267-288.
[15]张大江,钱华林.一个利用数字特征实现的RBAC模型[J].小型微型计算机系统.2006,12.936-939. [16]蔡青.基于角色的多层应用系统安全控制[J].计算机工程与应用.2001,14.12-23. [17] R.Sandhu, E.Coyne, H.Feinstein. Role-based access control models. IEEE Computer,29(2):38-47,1996.56-58.
[18] G. Ahn and R. Sandhu. Role-Based Authorization Constraints Specification. ACM Transactions on Information and System Security (TISSEC, Volume 3, Number 4, November 20M. 207-226.
[18] S. Osborn, R. Sandhu and Q. Munawer. Configuring Role -Based Access Control to Enforce Mandatory and Discretionary Access Control Policies. ACMTISSEC, 3(2):85-106, May 2000.46-60. [19] S.A. Demurjian, M. Y. Hu, S. Ting, and D. Kleinman. Towards an authorization mechanism for user-based security in an object-oriented design model. In Proceedings of Twelfth Annual International
毕业论文 第 35 页
Phoenix Conference on Computers and Communications. IEEE, 1993. 195-202.
[20] W. Yao, K. Moody, and J. Bacon. A model of OASIS role based access control and it support for active security. In Sixth ACM Symposium on Access Control Models and Technologies.2001,12. 171-181. [21] Smith, C., Coyne, E., Youman, C., and Ganta, S. 1996. Market analysis report: NIST small business innovative research (SBIR) grant: Role based access control: Phase 2. A marketing survey of civil federal government organizations to determine the need for role-based access control security product, SETA Corp,July.124-129.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务