本科毕业设计网站系统RBAC的设计与实现.docx
- 文档编号:23474280
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:43
- 大小:386.62KB
本科毕业设计网站系统RBAC的设计与实现.docx
《本科毕业设计网站系统RBAC的设计与实现.docx》由会员分享,可在线阅读,更多相关《本科毕业设计网站系统RBAC的设计与实现.docx(43页珍藏版)》请在冰豆网上搜索。
本科毕业设计网站系统RBAC的设计与实现
班级06065
学号
西安电子科技大学
本科毕业设计论文
题目网站系统RBAC的设计与实现
英文题目DesignandImplementationof
RBACofWebSystem
学院经济管理学院
专业电子商务
学生姓名
导师姓名
摘要
随着Internet及信息技术的飞速发展,信息共享应用日益广泛与深入,同时网络安全问题也日渐突出。
安全性问题越来越被大多数人所重视,保护网络资源不被非法使用和非法访问已经成为人们首要考虑的问题之一。
为了解决这个矛盾人们提出了许多安全策略,访问控制策略就是在保障授权用户能获取所需要资源的同时拒绝非授权用户的安全机制,是保护网络资源在一个相对安全的环境中进行的一个有效方法。
安全访问控制策略一般有三种:
自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。
其中,自主式太弱,强制式太强,二者工作量大,不便于管理。
基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。
本文从基于角色的访问控制模型的基本理论出发,阐述了该模型的基本原理和特点,并从软件的角度分析了网站系统RBAC模式的需求,给出了一套基于RBAC模式的设计与实现方案,设计方案在分析RBAC在企业系统中应用的同时,对用户,角色,以及权限之间的关系进行了详细的论述,并在数据库结构中定义了它们之间的关系。
利用当前最流行的MVC框架struts2对不同用户所具有的权限进行了拦截,使网络资源在一个合法安全的环境中被访问。
论文的意义在于提出并实现了一个RBAC模型框架,这对于将来要开发类似系统的工程具有一定的参考价值。
关键词:
访问控制角色权限基于角色的访问控制
Abstract
Withtherapiddevelopmentofcomputertechnology,Informationsharinghasbeenusedwidelyandindepth,theproblemofnetworksecurityisincreasinglyhighlighted.Securityproblemsareincreasinglyvaluedbymostpeople,toprotectnetworkresourcesfromunauthorizeduseandunauthorizedaccesshasbecomeoneoftheprimaryconsiderations.Toresolvethisconflictanumberofsecuritypolicieshavebeenproposed,Accesscontrolpolicyisoneofthesecuritymechanismstoprotectthattheauthorizeduserscanaccesstheresourcesnecessaryandtorejectnon-authorizedusers,whichisaneffectivewaytoprotectnetworkresourcesinarelativelysafeenvironment.
Generally,thereexistthreekindsofSecurityaccesscontrolpolicy:
Autonomousaccesscontrol,Mandatoryaccesscontrol,Role-basedaccesscontrol.theautonomousistooweakbuttheMandatoryistoostrong,Boththeworkloadisnotmanageable.Role-basedaccesscontrolmethodiswidelyrecognizedasaneffectivewayofsolvingcontrolaccesstoresourcesoflargeenterprises.Inthispaper,westartfromtheBasictheoryofRole-basedaccesscontrol;Setforththebasicprinciplesandcharacteristics;givetheanalysisofdemandfromtheperspectiveofsoftware;giveasetofdesignandimplementation.Then,wehavediscussedtherelationshipofusers,roles,andcompetenceindetailanddefinedtheirrelationshipinthedatabasestructure.Also,themostpopularMVCframeworkStruts2isusedtointerceptthepermissionsofdifferentusersinorderthatthenetworkresourceisaccessedinalegalandsafeenvironment.TheSignificanceofthepaperliesinthatwejustproposeandimplementaframeworkforRBACmodel,whichwillprovidehighreferencevalueforfutureprojectstodevelopsimilarsystem.
Keywords:
AccessControlRolePermissionRole-basedaccesscontrol
第一章引言
1.1研究背景
在Internet的出现和发展给我们带来方便的同时,一些安全性问题也突现了出来,因为网络平台的开放性,使得数据在网络上的传输存在许多安全隐患,可能造成信息的丢失,篡改,泄密,以及对信息系统造成的骚扰,破坏等严重后果。
因此,网络信息安全问题己引起人们的广泛关注,并且已经成为当前网络技术研究的重点。
为了解决这个矛盾,运用好网络信息平台这把双刃剑,人们提出了许多安全策略。
这其中就包括在信息系统中使用访问控制(AccessControl)来保证信息的安全[1]。
访问控制是所有系统都必不可少的模块,但是各种不同的应用系统在访问控制的方式上各有特色,即使相同类型的系统在控制方式上也各有区别,这使得访问控制一直是系统开发中比较复杂的部分。
现在的电子商务,电子政务等商业系统越来越大型化,协同化,不但需要保护系统资源不受侵犯,更需要给适当的访问者提供最大化的服务,这就要求系统必须要能够控制:
哪些访问者能够访问系统的信息,访问者访问的是“什么信”,访问者对他所访问的数据拥有什么样的“权限”[2]。
可以用“Who对What(Which)是否能进行How的操作”来表述应用系统权限的需求。
当前,不同领域的权限管理模块在具体的实现时具有一定的相似性。
对不同的应用系统,开发不同的权限管理模块会造成重复开发,软件的重复利用率低下,并且带来软件后继维护困难等问题。
在企业中,不同的应用系统都拥有一套独立的权限管理系统。
每套权限管理系统只满足自身系统的权限管理需要,无论在数据存储、权限访问和权限控制机制等方面都可能不一样,这种不一致性存在如下弊端:
a.系统管理员需要维护多套权限管理系统,重复劳动。
b.用户管理、组织机构等数据重复维护,数据一致性、完整性得不到保证。
c.由于权限管理系统的设计不同,概念解释不同,采用的技术有差异,权限管理系统之间的集成存在问题,实现单点登录难度十分大,也给企业构建企业门户带来困难。
RBAC的出现在很大程度上改善了这一状况,它引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。
Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User。
基于角色的访问控制方法(RBAC)有两大显著特征是:
其一、由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。
其二、灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。
因此,本论文决定在现有访问控制模型的基础上设计和实现一个具有良好通用性的、可扩展的权限管理模块。
这对于将来要开发或正在开发类似系统的开发者具有很高的参考价值。
1.2发展现状
RBAC研究最初的学术文章是1992年美国NIST的研究人员DavidFerraiolo和RichardKulm发表的[3]。
国内最早的相关学术论文是1994年华中理工大学(现在的华科)马建平的硕士学位论文《一种无干扰的访问控制模型》。
在RBAC研究过程中,1996年美国GeorgeMason大学的RaviSandhu教授在IEEEcomputer上发表了一篇学术文章[4],在该文中Sandhu教授正式提出了RBAC96模型家族,它是RBAC模型研究的里程碑,为进一步地深入研究奠定了基础。
此后国内外研究者在RBAC96模型家族的基础上提出了许多扩展模型。
目前国外RBAC研究机构主要是美国NIST和GeorgeMansionUniv.LIST实验室(Prof.RaviSandhu)。
NIST主要是进行RBAC及其相关模型的标准化工作,LIST侧重于对RBAC、RBDM及其扩展模型的创建、形式化描述,评价分析,以及在web中的应用等。
国内主要是中国科学院软件研究所和华中科技大学计算机科学与工程系,他们正在对RBAC模型扩展和应用方面进行深入的研究。
RBAC作为信息安全领域访问控制研究方向的一个分支,从上世纪90年代开始,到1996年里程碑式的RBAC96论文发表,开始了一个前所未有的研究高潮,这个高潮在国内外一直持续到2003年前后。
纵观这个时期的国内外相关论文,可以看出众多的研究者在此方向作出了大量的、卓有成效的工作,以至于在2004年初NIST颁布了RBAC标准,该标准考虑到了大量RBAC扩展模型的思想,并给出了一个较为完备的RBAC参考标准模型,至此RBAC研究告一段落。
目前国内外RBAC研究者较多,尤其是国内的硕博士论文都在此方向上开展了大量的工作。
个人认为RBAC的理论研究目前已较为成熟,但基于这些理论的具体应用还不多,研究RBAC在不同计算环境和体系下的具体应用,做出重要的实践,以证明RBAC策略及其模型的有效性、高效性、可控性将是接下来一个时期研究的重点。
当然,即便理论已经趋于成熟,但是依然有研究的空间,对RBAC的理论研究,尤其是RBAC在具体工作背景(体系)下完备的形式化描述工作,依然是今后研究的关键。
可以说访问控制的形式化描述是一项极其重要的、颇有理论意义和研究价值的工作。
1.3论文组织形式
首先提出课题研究的背景及现状,分析了基于角色的访问控制(RBAC)在企业系统中的应用以及它给系统管理带来的便捷。
分析了企业系统的结构,针对系统中用户(user),角色(roles),以及权限之间的多对多关系进行了数据库结构的设计。
为了实现不同的角色只能具有相应的访问权限,使用到了struts提供的拦截器(interceptor)功能,成功的对用户的访问权限进行限制,保证了系统安全。
另外文章中还对MVC设计模式作了简单的介绍,运用MVC思想对RBAC的各个具体模块进行了设计与实现。
后续内容需要对RBAC具体的的管理功能作进一步的论述。
论文主要分为六个章节,第一章是引言部分,简单的介绍了一下目前RBAC在国内外的研究情况和发展现状以及它在实际问题中的应用情况。
在第二章节中,对访问控制策略以及RBAC相关理论技术作了具体的阐述和说明。
在论文的第三章,穿插了对MVC设计的介绍,本文主要用到了这一方面的知识,因此有必要对MVC具体的工作过程以及相关技术进行一下论述,这里只是对其中之一的Struts2进行了比较系统的介绍。
第四章主要是对RBAC进行了总体设计与分析,具体包括对功能需求的分析,RBAC具体的工作流程以及对数据库结构的设计。
第五章就是对RBAC具体的设计与实现,包括代码的编写以及最后实现的效果。
最后一章就是对全文进行一个总结,分析一下可能存在的不足和需进一步努力的方向。
第二章RBAC及相关理论技术
当前信息安全技术主要包括密码技术、身份认证、访问控制、入侵检测、风险分析与评估等诸多方面。
在实际应用中,这些安全技术相互支持与协作,各自解决安全问题的某一方面,但目前人们关注的重点是密码技术、身份认证、入侵检测等,访问控制技术没有得到足够的重视。
事实上访问控制技术是一个安全信息系统不可或缺的安全措施,对保护主机系统和应用系统的安全都有重要意义[5]。
本章主要介绍访问控制机制和策略,比较了传统的访问控制模型:
自主访问控制与强制访问控制,重点讨论基于角色的访问控制策略和模型,对相关理论进行研究,并在经典RBAC模型的基础上进行扩展和改进,提出新的模型框架——通用RBAC模型,给出了模型设计目标,设计原则和模型定义。
2.1访问控制机制概述
访问控制是计算机网络信息安全管理的主要策略,是通过某种途径显式的准许或限制信息资源访问能力及范围的一种方法[6],访问控制技术是建立在身份认证的基础上,通过限制用户对关键资源的访问,防止非法用户的入侵或合法用户对资源的误用或滥用,因而能保证资源受控地、合法地使用。
访问控制是实施允许被授权的主体对某些客体的访问,同时拒绝向非授权的主体提供服务的策略。
这里主体(subject)可以是人,也可以是任何主动发出访问请求的智能体,包括程序、进程、服务等;客体(object)包括所有受访问控制保护的资源,在不同应用背景下可以有相当广泛的定义,比如在操作系统中可以是一段内存空间,在数据库里可以是一个表中的记录,在Web上可以是一个页面。
访问的方式取决于客体的类型,一般是对客体的一种操作,比如请求内存空间,修改表中一记录,浏览页面等。
通过对主体的授权,计算机系统可以在一个合法的范围内被使用,从而保证了客体被正确合理的访问,同时也维护了被授权主体的利益。
这是访问控制的目的,同时也是一个安全系统所必须具备的特性。
2.2访问控制策略
2.2.1自主访问控制(DiscretionaryAccessControl,DAC)
DAC是最常用的一类模型,最早出现在70初期的分时系统中,是一种多用户环境下最常用的一种访问控制技术,在目前流行的UNIX类操作系统中被普遍采用。
它是基于客体一主体间的所属关系,根据主体所属的组来限制对客体的访问。
所谓自主,是指主体可以根据自己的意愿,将访问控制权限授予其它主体,或从其它主体那里收回访问权限。
也就是说,DAC的基本思想是将用户作为客体的拥有者,他有权自主地决定哪些用户可以访问他的客体。
自主访问控制是基于用户的,具有很高的灵活性,适合于各类操作系统和应用程序,特别是在商业和工业领域。
譬如用户需要在没有系统管理员介入的情况下,拥有设定其它用户访问其所控制信息资源的能力。
在这种情况下,用户对信息的访问控制是动态的,这时采用自主访问控制就比较合适。
但是自主访问控制策略也存在不能保证信息传输的安全性等隐患,它无法抵御特洛伊木马的攻击。
在自主访问控制中,一旦带有特洛伊木马的应用程序被激活,系统无法辨别出哪些是用户所需的正常操作,哪些操作是特洛伊木马在起作用。
自主访问控制通常包括目录式访问控制、访问控制表、访问控制矩阵和面向过程的访问控制等方式。
为了保证安全,自主访问控制策略的默认参考设置是拒绝访问的,以提高信息的安全性。
2.2.2强制访问控制(MandatoryAccessControl,MAC)
MAC[7]是一种不允许主体干涉的访问控制策略。
强制访问控制是根据客体中信息的敏感标签和访问敏感信息的主体的访问级对客体访问实行限制的一种方法,通过强加一些不可逾越的访问控制,系统可以防止某一些类型的特洛伊木马的攻击。
在强制访问控制模型中,主体不能修改访问权,也不能将自己的访问权授予其它主体,而且系统对主体和客体都分配一个特殊的安全属性,而这一属性一般不能更改,系统通过比较主体和客体的安全属性来决定一个主体是否能够访问某个客体。
用户的程序不能改变他自己及任何其它客体的安全属性。
例如,在将安全等级作为安全属性的强制访问控制模型中,可以将安全等级分为多个级别[8],譬如:
最高秘密级(TopSecret)、秘密级(Secret)、机密级(Confidential)
以及无级别级(unclassified),并确定它们的高低偏序关系为TS>S>C>U。
这些安全级别可以支配同一级别或低一级别的物件。
当一个主体访问一个客体时,必须符合各自的安全级别要求,特别是如下两个原则:
(1)下读:
主体的安全级别必须高于或等于被读客体的级别;
(2)上写:
主体安全级别必须低于或等子被写客体的级别。
这些规则可以防止高级别对象的信息传播到低级别的对象中,这样系统中的信息只能在同一层次传送或流向更高一级。
强制访问控制在军事和市政安全领域应用较多。
例如,某些对安全要求很高的操作系统中规定了强制访问控制策略,安全级别由系统管理员按照严格程序设
置,不允许用户修改。
如果系统设置的用户安全级别不允许用户访问某个文件,那么即使该用户是该文件的拥有者也不能进行访问。
强制访问控制的安全性比自主访问控制的安全性更高,但灵活性要差一些。
2.2.3基于角色访问控制(Role-basedaccesscontrol,RBAC)
基于角色访问控制模型是目前国际上流行的先进的安全访问控制方法[9]。
它通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配以及角色转换规则。
安全管理人员根据需要定义各种角色,并赋予合适的访问权限,而用户根据其责任和资历被指派为不同的角色。
这样,整个访问控制过程就分成两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限管理。
例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可。
研究表明,角色与权限之间的变化比角色与用户关系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由行政管理人员来执行;而给角色配置权限的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给予他们为用户分配角色的权限,这与现实中的情况正好一致
基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。
2.3RBAC访问控制策略的提出
RBAC模型在权限和用户之间增加了角色,用户与特定的一个或多个角色相联系,角色和一个或多个权限相联系,角色可以根据实际的工作需要生成或取消,大大降低了系统的复杂度。
同时RBAC还体现了系统的组织结构,简洁并具有灵活性,大大降低了系统管理员误操作的可能性。
根据角色的优点,通过使用角色很大程度上改进了在管理性和安全性上的不足。
2.3.1RBAC基本概念
用户(User):
用户就是一个可以独立访问计算机系统中的数据或者用数据表示的其它资源的主体,我们用USERS表示一个用户集合。
用户在一般情况下是指人。
角色(Role):
角色是指一个组织或任务中的工作或位置,它代表了一种资格、权利和责任。
我们用ROLES表示一个角色集合。
权限(Privilege):
权限是对计算机系统中的数据或者用数据表示的其它资源进行访问的许可。
我们用PRIVILEGE表示一个权限集合。
可分为对象访问控制和数据访问控制两种。
主体(Subject):
即可以向应用系统发出应用请求的任何实体,包括各种用户、其它与本系统有接口的应用程序、非法入侵者。
系统必须具有识别主体的能力,接口实际上也是由用户登记的,故主要问题是校验用户身份的合法性,系统应建立用户鉴别机构以验证用户身份。
客体(Object):
被访问的对象。
通常可以是被调用的程序、进程,要存取的数据、信息,要访问的文件、系统或各种网络设备、设施等资源。
用户委派(UserAssignment):
用户委派是USERS与ROLES之间的一个二元关系,我们用关系(U,R)来表示用户U被委派了一个角色R。
权限配置(PrivilegeAssignment):
权限配置是ROLES与PRIVILEGE之间的一个二元关系,我们用(R,P)来表示角色R拥有一个权限P。
角色激活(RoleActivation):
是指用户从被授权的角色中选择一组角色的过程。
用户访问的时候实际具有的角色只包含激活后的角色,未激活的角色在访问中不起作用。
相对于静态的角色授权来说,角色激活是一种动态的过程,提供了相当的灵活性。
会话(Session):
对应于一个用户和一组激活的角色,表征用户进行角色激活的过程。
一个用户可以进行几次会话,在每次会话中激活不同的角色,这样用户也将具有不同的访问权限。
用户必须通过会话才能激活角色。
它们之间的关系如图2.1
图2.1RBAC操作关系图
2.3.2基于角色的访问控制基本思想
RBAC的基本思想可简单地用图2.2表示[10],即把整个访问控制过程分为两步:
1)角色指派,即用户委派(U,R),使用户与角色相关联,通过角色使
用户与访问权限在逻辑上分离。
2)权限指派,即权限配置(R,P),使角色与访问权限相关联。
图2.2RBAC关系图
由于RBAC实现了用户与访问权限的逻辑分离,因此它便于权限管理。
例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,由代表新职务或新任务的角色代替即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户为某角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。
在两种传统访问控制技术中,自主访问控制将赋予或取消访问权限的一部分权力留给用户个人,这使得管理员难以确定哪些用户对哪些资源有访问权限,不利于实现统一的全局访问控制,而且容易出错,也无法执行动态的和复杂的安全政策;而强制访问控制过于注重保密性,对系统连续工作能力、授权的可管理性等其他方面考虑不足[11]。
基于角色的访问控制(RoleBasedAccessControl,RBAC)是一种灵活、高效的访问控制方法,它有效地克服了传统访问控制(DAC,MAC等)技术中存在的不足,可以减少授权管理的复杂性,降低管理开销。
RBAC在用户和权限之间引入了角色的概念,安全管理员根据实际需要定义各种角色,并设置和角色相对应的访问权限,而用户根据其职责被指派为不同的角色[12]。
这样,访问权限和角色相关联,角色再与用户关联,使角色成为访问控制中访问主体和受控对象之间的一座桥梁。
从而实现了用户与访问权限的逻辑分离。
2.4基于角色访问控制RBAC的优势
相比较其它的访问控制策略,RBAC具有以下几点优势:
(一)便于授
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 网站 系统 RBAC 设计 实现