(计算机应用技术专业论文)权限管理组件在spring框架下的设计与实现.pdf_第1页
(计算机应用技术专业论文)权限管理组件在spring框架下的设计与实现.pdf_第2页
(计算机应用技术专业论文)权限管理组件在spring框架下的设计与实现.pdf_第3页
(计算机应用技术专业论文)权限管理组件在spring框架下的设计与实现.pdf_第4页
(计算机应用技术专业论文)权限管理组件在spring框架下的设计与实现.pdf_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

救限管理组件诅:s p r i n g 框架下的设计与实现 中文摘要 访问控制是信息安全保障机制的核心内容,是实现数据保密性和完 整性机制的主要手段。 本文首先介绍了访问控制的现状,随之总结自主访问控制和强制访 问控制两种传统访问控制方法的不足,然后研究分析基于角色的访问控 制( r b a c ) 技术。r b a c 通过分配和取消角色来完成用户权限的授予 和取消,实现了用户与访问权限的逻辑分离,极大的方便了权限管理。 本文围绕权限管理组件的设计及实现,首先分析权限管理的需求, 接着设计一跨平台、可复用性高、可维护性好、授权灵活的权限管理组 件,然后在s p r i n g 框架下开发实现。持久层用h i b e r n a t e ;所有对数据 源的访问用数据访问对象来抽象和封装,这样就将底层数据访问逻辑与 业务逻辑分离开:业务层中使用声明式事务管理优化数据操作、提高组 件的效率;且提供服务定位器供外部应用程序使用。最后用一个具体的 应用项目来进一步验证该组件的有效性和可复用性。 关键词:r b a c 、权限管理、组件、s p r i n g 、h i b e r n a t e 作者:赵国辉 指导老师:孙涌 a b s t r a c a b s t r a c t t h ea c c e s sc o n t r o l si st h ek e yc o n t e n to ft h es e c u r i t ym e c h a n i s mo ft h e i n f o r m a t i o ns a f e t y ,i ti sm a i nm e a n st h a t r e a l i z e st h em e c h a n i s mo ft h e p r i v a c ya n dt h ei n t e g r a l i t yo f t h ed a t a t h i st h e s i si n t r o d u c e st h ec u r r e n ts i t u a t i o no fa c c e s sc o n t r o l ,t h e n a n a l y z e s t h e d i s a d v a n t a g e s o fd a c ( d i s c r e t i o n a r ya c c e s sc o n t r 0 1 ) a n d m a c ( m a n d a t o r ya c c e s sc o n t r 0 1 ) r b a c ( r o l e - b a s e da c c e s sc o n t r 0 1 ) f i n i s h e s g r a n t i n g a n dc a n c e l l a t i o no fu s e r s a u t h o r i t yt h r o u g ha s s i g n i n g a n d c a n c e l l i n gt h er o l e ,s ou s e r sa n dp e r m i s s i o n sa r es e p a r a t e dl o g i c a l l y t h i st h e s i s sk e yp o i n ti st h ed e s i g na n di m p l e m e n to ft h ea u t h o r i t y m a n a g e m e n tc o m p o n e n t f i r s t l y , a n a l y z et h ed e m a n do ft h ea u t h o r i t y m a n a g e m e n t ,t h e nd e s i g na na u t h o r i t ym a n a g e m e n tc o m p o n e n t ,w h i c hc a l l s u p p o r tm a n yp l a t f o r m ,r e u s eh i g h l y , h a v ee f f e c t i v em a i n t e n a n c e ,h a v e f l e x i b l ea u t h o r i t y , a n dr e a l i z ei tb a s e do ns p r i n gf r a m e w o r k t h e p e r s i s t e n c e l a y e ru s e sh i b e m a t e ,d a oa b s t r a c ta n de n c a p s u l a t et h eo p e r a t i o no fd a t a s o u r c e ,t h ed e t a i lo fd a t as o u r c ea n db u s i n e s sl o g i cl a y e ra r et o t a l l ys e p a r a t e d , f h eb u s i n e s sl a y e ru s e sd e c l a r i n gt r a n s a c t i o nm a n a g e m e n tt oo p t i m i z et h e o p e r a t i o no fd a t a ,i m p r o v et h ee f f i c i e n c yo ft h ec o m p o n e n t ,a n do f f e r s e r v i c el o c a t o rf o rt h eo u t s i d ea p p l i c a t i o np r o g r a mt ou s e v e i l f yt h ev a l i d i t y a n dt h er e u s a b i l i t yo f t h i sc o m p o n e n tw i t ha l la p p l i c a t i o np r o j e c t f i n a l l y k e y w o r d :r b a c ,a u t h o r i t ym a n a g e m e n t ,c o m p o n e n t ,s p r i n g ,h i b e r n a t e w r i t t e nb yz h a og u o h u i s u p e r v i s e db ys u ny o n g 救耀管理组件垂:s p r i n g 稚架下的设计与实现 第一章绪论 信息技术渗透到各行各业,加速了社会向信息社会发展。各种信息 系统给人们的生活、工作带来了便利的同时,信息安全问题也接踵而至。 而且信息安全触及的不仅仅是个人和企业利益,在更高层面,它还涉及 政府和国家的安全。 为此,国际标准化组织i s o 颁布了计算机信息系统互连标准设计标准 i s 0 7 4 9 8 2 标准【”( 我国将其作为g b t 9 3 8 7 2 标准) 。该标准定义了五大类 安全服务:身份认证服务、访问控制服务、数据保密性服务、数据完整 性服务、不可否认服务。 1 1 研究背景 访问控制作为信息系统安全的重要功能构件,其主要目的是对抗涉 及计算机或通信系统非授权操作的威胁。这些威胁可以被细分为非授权 使用、泄露、修改、破坏和拒绝服务等。 信息系统中所有可控制的资源均可抽象为客体或对象( o b j e c t ) 。对 客体实施操作的实体称为主体( s u b j e c t ) ,主体对客体所实施的操作需要 授权。这些授权对于主体可以表示为访问权限,而对于客体则可表示为 访问模式,访问权限是访问模式的一个子集。访问控制用于限定主体在 信息系统内对客体所允许执行的操作。于是用户在通过了鉴别之后,还 要通过访问控制,才能在信息系统内执行特定的操作。 访问控制是为了限制访问主体对访问客体的访问权限,从而使计算 机系统在合法范围内使用。访问控制机制决定用户及代表一定用户利益 的程序能做什么,及做到什么程度。访问控制是信息安全保障机制的核 心内容,它是实现数据保密性和完整性机制的主要手段。 1 2 研究现状 当今最著名的美国计算机安全标准是可信计算机系统评估标准| 2 j ( t c s e c ,t r u s t e dc o m p u t e rs y s t e me v a l u a t i o nc r i t e r i a ) 。其中一个内容就 是要阻止未被授权而测览机密信息。t c s e c 规定了两个访问控制类型: 自主访问控$ l j ( d a c ,d i s c r e t i o n a r y a c c e s sc o n t r 0 1 ) 和强制访问控制( m a c 第一营绪论投限管理组件往s p r i n g 框梨下的设计与实现 m a n d a t o r ya c c e s sc o n t r 0 1 ) 。 1 2 1 自主访问控制 自主访问控制【3 】是指如果某一主体是某一客体的拥有者,那么他对 谁有权访问这个客体以及以什么样的权限访问,可以完全随意设置。自 主访问控制中,用户可以针对被保护对象制定自己的保护策略: 每个主体拥有一个用户名并属于一个组或具有一个角色。 每个客体都拥有一个限定主体对其访问权限的访问控制列表( a c l , a c c e s sc o n t r o ll i s t ) 。 每次访问发生时都会基于访问控制列表检查用户标志以实现对其 访问权限的控制。 由于自主访问控制通过访问控制列表来限定哪些主体针对哪些客体 可以执行什么操作。如此将可以非常灵活地对策略进行调整。由于其易 用性与可扩展性,自主访问控制机制经常被用于商业和政府的安全需要, 以及单级军事应用。大多数系统仅基于自主访问控制机制来实现访问控 制,如主流操作系统( w i n d o w sn ts e r v e r , u n i x 系统1 ,防火墙( a c l s ) 等。 自主访问控制的的缺点是:信息比较容易扩散、不易管理。譬如:甲 把关于文件f 的访问赋给乙,但无法控制乙是否把这种权限赋给其它人: 另外,自主访问控制无法抵御特洛伊木马的攻击,特洛伊木马是嵌入在 合法应用程序中的一段以窃取或破坏信息为目的的恶意代码,在自主访 问控制系中,一旦带有特洛伊木马的应用程序被激活,系统无法辨别出 哪些是用户所需的正常操作,哪些操作是特洛伊木马在起作用,解决办 法就是通过强加一些不可逾越的访问限制。因此,又提出了一种更强有 力的访问控制手段,即强制访问控制。 1 2 2 强制访问控制 强制访问控制4 1 通过无法回避的存取控制来防止各种直接和间接 的攻击。在强制访问控制中,系统给主体和客体分配了不同的安全属性, 这些属性在组织的安全策略没有改变之前是不可能被轻易改变的。系统 权限管理组件存s p r i n g 框架下的设计与实现笙二。至堑堡 通过对主体和客体安全属性匹配的比较来确定是否允许访问继续进行。 用户以及代表用户的程序进程等都不能以任何方式修改自身或任何客 体的安全属性。显然用户无权将任何数据资源,哪怕是属于自己的数据 资源的访问权“赠送”给其他用户,因此就不能简单的分配数据的访问 权了。 强制访问控制的经典代表是贝尔拉帕( b e l l l a p a d u l a ) 模型【5 】,其核 心思想是在系统中设置多个安全等级,安全等级中的主体和客体都按照 各自的作用、所处的范围和等级特性进行分级,并要求系统中所有的存 取操作必须遵守模型给出的保护信息安全的规则,低安全级别的主体不 能直接或间接的获取高安全级别的客体信息。为了保持系统稳定,在 m a c 模型中规定除了安全级别的管理员以外,谁都不能改变系统中客 体和主体的安全标识。 强制访问控制适用于用户和客体分为多级安全级别的运行环境,它 提供了基于标识的高级安全认证,对于诸如特洛伊木马之类的问题提供 了某种类型的保护,但也有不足和缺点。 强制访问控制的不足主要表现在两个方面:应用领域比较窄,使用 不灵活,一般只用于军方等具有明显的等级观念的行业或领域,在经济 领域中,m a c 的应用并不是很多;完整性方面控制不够,它重点强调信 息的向高安全级别的方向流动,对高安全级别信息的完整性保护强调不 够。 现如今人们在m a c 基础上提出基于角色的访问控制( r b a c , r o l e - b a s e da c c e s sc o n t r 0 1 ) ,它是一种强制访问控制形式,其策略是根据用 户在组织内部的角色制定的,但它不是基于多级安全需求;用户不能任 意的将访问权限传递给其他用户,这是r b a c 和d a c 之间最基本的不同。 1 2 3 基于角色的访问控制 在r b a c 中,在用户( u s e r ) 和访问权限( p e m i s s i o n ) 之间引入角色( t o l e ) 的概念,用户与特定的一个或多个角色相关联,角色同一个或多个访问 权限相关联,角色可以根据实际的工作需要生成或取消,而且登录到系 统中的用户可以根据自己需要来动态激活自己拥有的角色。除此之外, 角色之间、权限之间、角色和权限之间定义了一些关系,比如继承关系, 第一嚣绪论救龈管理组件在s p r i n g 框架下的设计与实现 而且也可以按需要定义各种约束条件,比如:定义出纳和会计两个角色 为互斥角色,则这两角色不能分配给一个用户。 基于角色访问控制模型是目前国际上流行的先进的安全访问控制方 法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角 色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问 权限,而用户根据其责任和资历再被指派为不同的角色 6 j 。这样,整个访 问控制过程就分成两个部分,即访问权限与角色相关联,角色与用户关 联,从而实现了用户与访问权限的逻辑分离。 由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方 便r 权限管理。例如,如果一个用户的职位发生变化,只要将用户当前 的角色关联去掉,加入代表新职务或新任务的角色关联即可。 研究表明,角色权限之间的变化比角色用户关系之间的变化相对要 慢得多,并且给用户分配角色不需要很多技术,可以由行政管理人员来 执行;而给角色配置权限的工作比较复杂,需要一定的技术,可以由专 门的技术人员来承担,但是不允许他们拥有给用户分配角色的权限,这 与现实中的情况正好一致。基于角色访问控制可以很好的描述角色层次 关系,实现最小特权原则和职责分离原则【7 j 。因此我们选取基于角色的访 问控制作为我们研究的重点。 1 3 本文的研究内容和组织结构 本论文的后续章节按如下方式组织: 第二章基于角色的访问控制:研究基于角色访问控制的参考模型及 其中的层次关系和约束条件,并给出以集合论为基础的一个数学模型。 第三章权限管理组件的设计:分析权限管理组件的需求,设计一 个可以灵活授权的权限管理组件和该组件的开发体系结构,实现了组件 的跨平台性,提高了组件的可复用性和可维护性。 第四章权限管理组件的实现:用s p r i n g 这个2 0 0 3 年新推出的j 2 e e 框架开发实现该组件,组件的持久层由h i b e r n a t e 来完成,再用数据访问 对象抽象和封装对数据源的访问,然后在业务层中用s p r i n g 来管理 h i b e r n a t es e s s i o n 、事务处理和业务服务类等,并且提供服务定位器供外 部应用程序使用。 权限管理组件在s p 打n g 框架下的设汁与实现 第毫塑堡 第五章应用实例:概要的描述了使用该组件的一个具体的应用项 目,并实现组件的服务定位器,使基于s t r u t s 框架的表示层方便的使用该 组件服务定位器提供的服务,从而进一步验证组件的可复用性及有效性。 第六章总结与展望:对本文工作加以总结并展望了今后需要研究和 改进的方向。 望二塞苎三塑鱼塑堕塑堡型 坚堡笪堡塑! 垄! 竺! ! 墨堡鲨! 竺壁望:兰兰坐 第二章基于角色的访问控制 r b a c 系统模型在7 0 年代就有人提出,9 0 年代在r a v i s a n d h u 等人的提 倡和推动下又有了很大的发展。它有多种描述方式,区别在于约束描述 疗式的不同,但其本质是一致的。其中的n i s tr b a c 模型,是一个比较 成熟和标准的模型。它是f 1 n i s t ( n a t i o n a li n s t i t u t eo f s t a n d a r d sa n d f e c h n o l o g y ) 组织中的d a v i d f f e r r a i o l o 等总结提出来的。 在r b a c 社区的不断努力下,r b a c 在2 0 0 4 年2 月被美国国家标准委 员会( a n s i ,a m e r i c a nn a t i o n a ls t a n d a r d si n s t i t u t e ) 和i t 国际标准委员会 ( i n c i t s ,c o m m i t t e ef o ri n f o r m a t i o nt e c h n o l o g ys t a n d a r d s ) 接纳为a n s i i n c i t s3 5 9 2 2 0 4 标准。 r b a c 标准包括两个主要的部分:r b a c 的参考模型和r b a c 的功能 描述。砌j a c 的参考模型定义了r b a c 的基本语义和基本元素集合,并通 过集合论给出了一套r b a c 的数学模型。r b a c 的功能的描述定义了 r b a c 系统必须的特性。下面主要研究分析r b a c 的参考模型1 8 】 2 1 核心r b a c 图2 i核, i 二, r b a c 图 在图2 1 中给出了核- , r b a c 构成。核心r b a c 由五个基本要素构成。 即用p ( u s e r s ) 、角色( r o l e s ) 、对象( o b j e c t s ) 、操作( o p e r a t i o n s ) 、许可 ( p e r m i s s i o n s ) 。 用户( u ) 代表人,但也可以是一台机器,a g e n t ,或其他任何智能型物 品。 角色( r ) 表示一个工作职责,该职责可以关联一些关于权力利责任的 语义。 极限管理组件在s p f i n g 框架下的设计与实现 对象也就是平时所说的资源,任何访问机制都是为了保护系统的资 源。对象可能包括文件,目录,数据库的表、行、字段,甚至于磁盘空 间,打印机,c p u 周期等。 操作是程序可执行的反映,被用户调用和执行。操作的类型取决于 实现系统的类型。例如文件系统可能的操作有读、写、执行等,数据库 系统则可能有创建、查询、修改、删除等。 许可是对在一个或多个对象上执行操作的权限。一条新闻、删除, 都不是权限,只有对新闻的删除才是权限。另外,r b a c 标准中定义的权 限是正向权限( 正向授权在开始时假定主体没有任何权限,然后根据需 要授予权限,适合于权限要求严格的系统) ,但是并没有禁止负向权限 ( 负向授权在开始时假定主体有所有权限,然后将某些特殊权限收回) , 因此也可以自己实现。 核心r b a c 主要是用户、角色、权限三者之间的关系,分别是用户 指派( u a ,u s e ra s s i g n m e m ) 和授权指派( p a ,p e r m i s s i o na s s i g n m e m ) 。 个 用户可以被赋予多个角色,一个角色也可以被赋予多个用户,用户和角 色之间是多对多的关系。同样,一个角色可以拥有多个权限,一个权限 也可以被赋予多个角色,角色和权限之间也是多对多的关系。访问权限 与角色相关联,角色再与用户关联,这样通过分配和取消角色来完成用 户权限的授予和取消,从而实现了用户与访问权限的逻辑分离,极大的 方便了权限管理。 会话( s e s s i o n ) 在核心r b a c 中是一个比较隐晦的元素。标准上说一个 会话就是一个映射,一个用户到多个角色的映射。当一个用户激活他所 有角色的一个子集的时候,建立一个会话。每个会话和单个用户关联, 并且每个用户可以关联到一个或多个会话。 这里的会话与我们平常所说的w e bs e r v e r 中会话不同,当一个, j 户 执行一段过程或动作的时候,就建立了一个会话。举例来说,用户递交 一个删除新闻的请求,验证权限,系统删除该新闻,返回结果。这个过 程势必用到相关的角色,这里用到的角色是所有角色的子集。这段过程 就称为一个会话。 在r b a c 模型的存取控制系统中,每个用户进入系统时,就得到了一 个会话,每个会话都是动态产生的,从属于一个用户,只要静态定义过 这些角色与该用户的关系,会话就根据用户的要求负责将它所代表的1 _ j 篓三兰茎主垄垒望堕塑丝型 堡堡篁型型兰兰垄塑:! 矍堡墼! 塑垄生! 壅盥 户映射到多个角色。一个会话可能激活的角色是该用户的全部角色的 个二f 集。对于该用户而言,在一个会话内可以获得全部被激活的角色所 代表的授权,这样的安全机制可以得到的好处是显然的。例如,统一用 户在进入系统时打开适当的会话就可以以最小的系统代价得到最灵活的 系统安全服务功能。在工作站环境下,一个用户还可以同时打开多个会 话,每个会话置于一个窗口内,用户获得非常大的机动灵活性,同时又 获得可靠的数据安全,因为系统可以方便地限制安全级别较低的活动不 会打开一个安全级别较高的会话。因为引入了会话概念,使得在一个系 统中并存两个以上存取控制机制的灵活性也大大提高了。角色和会话的 设置带来的好处是容易实施最小特权原则,即在一个成熟的安全系统内 部应当绝不会给予用户以超过执行任务所需2 ( o e s 。o b s ) 个特权以外的特权。 核心r b a c 的形式定义如下: 定义2 1 核, d , r b a c 的组成包括下列几个部分: u s e r s ,r o l e s ,o p s 以及o b s ( 用户,角色,操作和对象) u a _ c u s e r s x u s e r s ,u a 是用户到角色的指派的多对多的关系。 指派用户:( r :r o l e s ) 一2 一,角色瘴0 一个用户集合的映射。形式 地:a s s i g n e du s e r s ( r ) = u u s e r s ( u ,r ) u a ) p r m s = 2 ( o p s ”b s ) ,授权的集合。 p a c _ p e r m s r o l e s ,p a 是授权到角色的多对多的关系。 a s s i g n e d,角色r到一个授权集合的映_permissions(r:roles)-*2p” 射。形式地:a s s i g n e d _ p e r m i s s i o n ( r ) = p p r m s i ( p ,r ) ep a ) o p ( p :p r m s ) - - - - o p c _ o p s ) ,授权到操作的映射,给出与授权p 相关 的操作集合。 o b 0 :p e m s ) - - - ,( o b _ _ _ o b s ) ,授权到对象的映射,给出与授权p 相关的 对象集合。 s e s s l 0 n s = 会话的集合。 u s e rs e s s i o n s ( u :u s e r s ) - - - 2 ,用户u 到一个会话集合的映射。 s e s s i o n 2“,会话s到一个角色集合的映射。_roles(s:sessions)-+ 形式地:s e s s i o nr o l e s ( s , ) r e r o l e s 一( s e s s i o n ( ) r ) u s e r s u a a v a i ls e s s i o nj ) e r m s ( s :s e s s i o n s ) - - - 2 p ,一个用户在一个会话巾能够 获得地授权集合= u a s s i g n e dp e r m i s s i o n ( r ) 敬般管理组件在s p 打n g 框架下的设计,实现 第二章基于角色豹访问控制 2 2 层次r b a c ( 1 l h ) 角色层次 图2 2 层次r b a c 图 角色层次关系是r b a c 模型的一个关键方面,层次r b a c 的结构如图 2 2 所示。角色层次关系是一种反映一个组织中权力和责任的自然构造角 色方法,它定义了角色之间继承的关系。如图2 3 a 2 3 c 1 9 1 所示。 产晶 柏二 入夕弋 第一孽基于角色的访问控制 投煨管理维件在s p r i n g 框架下的设计与实现 产品v 穰师1 产描工絮:二夕程师 工稷舜1 工程师2 | 工程部 图2 3 c 格 所谓继承指的是,如果角色r 2 中所有的权限都包含在r 1 的权限中,就 称为角色r l 继承了r 2 。对于一些分布式环境的r b a c 的实现而言,角色的 权限管理并没有被集中管理,但角色继承是被集中管理的。对于这些系 统来说,角色的层次关系根据用户之间的联系定义为:如果被授予角色r 1 的所有用户也是被授予角色r 2 的用户,那么角色r 1 包含角色r 2 。用户包含 关系表示r 1 的一个用户至少拥有r 2 的所有权限,但是权限在r l * d r 2 之间的 继承并不包括任何的用户分配。 角色继承用于解决复杂组织机构之间的权限关系,它是一种很自然 的对组织机构层次中权限和责任的映射。例如:总经理一部门经理一程 序员,角色继承方向和用户的关系方向是相反的,即权限最小的在顶端, 程序员一部门经理一总经理。 角色的层次关系包括两种类型:一般性角色层次关系和限制性角色 层次关系。限制性层次关系简化了一般性层次关系,它规定角色可以有 多个角色继承者,但只能从一个角色继承而来。我们先来对一般性层次 二是系做出定义: 定义2 2 :g e n e r a lr o l eh i e r a r c h i e s - r i d - r ( p ,r ) p a ) 。 一般性角色层次关系支持多重继承的概念,即可以从两个或更多的 角色中继承权限同时继承用户集合。多重继承体现了很重要的层次属性; 限制性层次关系中的角色被限定为只能由一个角色继承而来。虽然限制 性层次关系不支持多重继承,但是它使得核心r b a c 的管理更清晰。 模型中使用r l 卜卜r 2 来表示r 2 为r l 的直接继承者,且1 r l 与r 2 之间不存在 其他的角色。这样限制性层次关系即可得到下面的定义: 定义2 3 :l i m i t e dr o l eh i e r a r c h i e s 对定义2 2 有如下约束: v r ,r l ,r 2 e r o l e s ,( r r 1 ) a ( r r 2 ) j r l = r 2 。 假设有一个会计的角色使用这种限制性的层次关系,如图2 4 所示。 图中双椭圆代表用户,单椭圆代表角色,角色只能从一个角色继承而来, 但是可以拥有多个继承者a c c o u n t i n g 这个角色有:a c c t r e c , a u d i t i n g ,c a s h i e r ,b i l l i n g 四个继承者,a c c t r e c 的继承者a c c t r e c s p v 只能从 a c c t r e c 这一个角色继承。可以看到,这种限制关系只是限制了角色的继 承,用户仍然能继承多个角色的权限。 第二章基于角色的访问控制 投龈管理组件在s p n n g 框桨下的设计l 孑望胤 2 3 约束r b a c 图2 4 会计角色 有约束条件的r b a c 是在r b a c 模型中加入了责权分离,责权分离可 以防止用户超越他们职位的授权层次,加强组织内的安全性。 作为一个安全准则,责权分离已在商业、工业、政府部门广泛应用, 它的目的是确保一个组织内由于不同个体的勾结引起的授权和委托不能 成功。为了使共谋的可能性最小,有不同技能和不同利益的个体被分配 给商业运行所必须的单独任务。其动机是确保没有多个蓄意勾结,不会 发生欺骗和重大错误。r b a c 的约束包括静态责权关系分离( s t a t i c s e p a r a t i o no f d u t y ) 和动态责权关系分离( d y n a m i cs e p a r a t i o no f d u t y ) 。 2 3 1 静态责权关系分离 在角色系统中利益的冲突可能是因为一个用户获得了冲突角色的权 限许可。防止这种形式的利益冲突的一个方法是通过静态责权分离,也 就是在给角色分配用户时加强约束。这就意味着如果一个用户被分配到 一个角色,那么这个用户就被禁止分配到互斥的角色。例如,出纳和会 计是两个互相排斥的角色,则一个用户分配到出纳角色,那么他就不能 再被分配会计角色。一个静态责权分离能够集中描述并同意在具体角色 上实施。从方针观点来看,静态约束关系提供一个加强利益间冲突的强 有力的方法和在r b a c 模型组件集合上的其它分离原则。静态约束般将 约束条件设置在有潜力破坏较高级别组织的责权分离方针的管理操作 杖限管理组件在s p d n g 框架下的设计与实现 第二章基十角色的访问控制 i :。一句话,责权分离作为一。个安全准则,基本的目的是通过分散任务 和联合权力,防止错误发生。 r b a c 已经定义了关于用户一角色分配的静态责权分离( 如:没有用 户能够同时分配两个在s s d 中定义的角色) 。尽管现实世界中存在静态责 权分离的例子,但责衩分离的定义在两个重要方面上还是过于受限制: 一方面是在静态责权分离中的角色集合大小;另一方面是在用户分配角 色有严格限制的角色集合中的角色合并。 如图2 5 所示,是在有层次关系的r b a c 静态责权分离( s s d ) 关系。 当在一个角色层次关系的场合应用静态责权分离关系,特别注意的是确 保用户的层次关系并不破坏静态责权分离的原则。这样,角色层次关系 就定义了包括静态责权分离的约束。为了描述这种潜在的矛盾,我们定 义静态责权分离是一个有静态责权分离联系的角色在用户一角色分配时 的约束。 图2 5 在层次r b a c 上的s s d 静态责权分离的形式定义如下: 定义2 4 :静态责权分离( s s d l s s d ( 2 “8 ) ,表示在静态责权分离中的二元组( r s ,n ) 这里每个r s 为一个角色集合,n 为一个大于等于2 的自然数,对于( r s ,n ) e s s d ,没有 个用户能分配到角色集合r s 中的n 个或n 个以上的角色。形式化为: v ( r s ,n ) s s d ,v t 互坶:l 雉 ja s s i g n e d u s e r s ( r ) = o r e f 定义2 5 :在存在层次关系中的静态责权分离 在存在层次关系中的静态责权分离的定义是基于授权用户而不是分 第,。章基于角色的访问控制 权限管理组件在s p r i n g 框架下豹设计,实州 配用户的,如下所示: v ( r s ,n ) s s d ,v t 瑚:i t i ”j n a u t h o r i z e d u s e r s ( r ) 2 a ,e f 互3 2 动态责权关系分离 通过在能被分配到角色集合的用户上放置约束,静态责权分离关系减 少了潜在的对用户有用的权限。像静态责权分离关系一样,动态责权分 离的目的也是限制用户有用的权限,然而动态责权分离关系与静态责权 分离关系不同,是通过将限制条件加在上下文中进行的。s s d 的定义是在 一个用户的整个权限范围内设置约束,而模型组件所定义的d s d ,是通 过在用户会话内和会话中能激活的角色上设置约束,在一个用户权限范 围内限制权限的可用性。d s d 特性提供了对最小权限原则的扩展支持, 每个用户在不同时刻根据所扮演的角色,有不同级别的权限。这些特性 确保超过他们需要执行任务时问的权限并不存在。最小权限经常表现为 实时回收职责( t i m e l yr e v o c a t i o no f t r u s t ) 。没有动态责权分离,动态回收权 限是一个更复杂的问题。 静态责权分离关系描述了在一个用户分配一个角色的时候,标识潜在 的利益冲突问题的能力,动态责权分离允许一个用户分配两个或两个以 上的角色,这些角色在单独执行时,并不会产生利益冲突,但是提供 个策略来解决在这些角色同时激活时所引起的冲突。例如:一个用户可 以被授权为出纳角色和出纳监督角色,其中出纳监督角色是核实出纳打 开保险箱。如果一个扮演出纳角色的人想转换为出纳监督者角色,r b a c 将要求用户退出出纳角色,在扮演出纳监督角色之前必须关上保险箱。 只要相同的用户不允许同时扮演这些角色,冲突就不会发生。尽管这个 效果可以通过静态责权分离关系来实现,但是动态责权分离关系给企业 提供了更大的操作灵活性。 我们定义动态责权分离关系是一个能够在用户会话中被激活的角色 集合上的约束,如图2 6 所示。 杈硪管璀组件在s p r i n g 框架下的设计与实现 图2 6 一动态责权分离关系( d s d ) 动态责权分离的形式化定义如下: 定义2 6 :动态责权分离 d s d ( 2 。“8 ) ,表示在动态责权分离中的二元组( r s ,n ) ,这里每个 r s 为一个角色集合,n 为一个大于等于2 的自然数,对于,n ) d s d ,在角 色集合r s 中的n 个或n 个以上的角色不可能被同时激活。形式化为: v r s e 2 舢,l i ,( r s ,嚣) d s d月2 , 1 r s l ”,且 v s s e s s i o n s ,v r s e 2 2 0 l 酷,v r o l e s u b j e c t 2 烈姗,聆n ,( r s ,仃) d s d , r o l e s u b j e c tc _ r s ,r o l e s u b j e c tc _ s e s s i o n r o l e s ( s ) r o l e s u b j e c l i 月 2 4 本章小结 本章详细的介绍了基于角色访问控制的参考模型,首先给出模型的 结构图,并进行文字描述,接着用形式化语言描述了该模型的所有组成 部分,然后讨论基于角色访问控制中的角色层次关系,包括一般角色层 次关系和有限制条件的角色层次关系,最后论述基于角色访问控制的约 束,即责权分离关系约束,分为静态责权关系分离和动态责权关系分离 两种约束。 第= 章权限管理组件的设计权限管理组件在s p r i n g 框絮下的设汁1 j 实现 第三章权限管理组件的设计 上一章研究并分析了基于角色的访问控制技术,根据企业信息系统 的特点,为了更好的保障系统的安全性,下面将从组件的需求分析、开 发体系结构和访问控制策略等几方面对组件的总体设计进行阐述。 3 1 组件的需求分析 现阶段各种管理信息系统使工作人员能在巨大的信息库中取到所 需的信息,提高了管理的工作效率,然而在使工作便利化和高效化的同 时也带来了信息的安全性问题,即如何保护信息以防止其非法泄露、修 改或破坏,同时保证用户在他们的职权范围内做相应的操作。如公司资 源的讹误、信息的未授权泄漏或者失窃,以及被非法篡改都是因为没有 保证信息的机密性和完整性而引起的。它们不仅破坏了组织的操作,并 有可能涉及到金融、法律、人员安全、个人隐私和国家机密方面,而造 成重大的损失。 访问控制是信息安全保障机制的核心内容,它是实现数据保密性和 完整性机制的主要手段。但是传统的访问控制:自主型访问控制和强制 型已无法满足新系统的需求,因为传统安全系统的访问机制都是对系统 中的所有用户进行直接的权限管理,这样权限操作复杂、授权方式不灵 活,对日益膨胀的数据信息的处理能力有限。 而基于角色的访问控制通过分配和取消角色来完成用户权限的授 予和取消,实现了用户与访问权限的逻辑分离。这样极大的方便了权限 管理。基于角色访问控制还可以很好的描述角色层次关系,实现最小特 权原则和责权分离原则。 从根本上讲,基于角色的访问控制仍然属于基于主客体观点的访问 控制体系i lo j 的范畴。在基于主客体访问控制的观点中,基本实体是主体、 客体和权限,主体通过权限获得对不同客体的访问能力。这种模式执行 的访问控制规则非常简单,可以表述为:如果主体要对客体进行访问操 作,并且主体拥有这个操作的权限,那么就允许访问。 这种模式适合对集中的资源进行访问控制,常见于信息集中型应用 系统,如b s 和c s 应用系统。r b a c 的最大优势是便于授权管理,它 毂限管理组件在s p r i n g 框架下的设计与实现 适合多种管理模式,比如集中式、分级式等。 但传统的权限管理部分都是固化到某应用系统中,无法复用,造 成了大量重复性劳动。为了提高软件的复用性和可维护性,把权限管理 部分做成组件,提供一定的权限管理服务接口,供其它应用程序调用, 可以节省不必要的重复编码。 3 2 组件的设计原则 组件【11 1 是可执行软件的一个可分离的部分,作为一个单元来说也是 有意义的,可以与其他组件实现互操作,需要某种环境的支持,且只能 通过组件的接口来访问。 为了提高组件的可维护性和可复用性,应采用如下设计原则: 1 组件符合一个整体的概念或框架 定义一个组件,使它符合一个整体的概念或框架,这样做所带来的 复用机会比用任意的方式定义的组件复用机会要大的多。 2 组件的设计应该做到上下文无关 组件应该这样设计,当它用于一个新的上下文环境中时,不需要把 使用它的组件一起拖过来。组件不应该知道它自己是如何被使用的,它 提供一组接口和服务,可供所有用户使用。 3 尽量保持组件中每个服务的目标单一 最好不要定义一个服务来执行附加的处理,目标仅仅是为了减少被 调用的次数。多重目的服务也增加了维护开销,因为任何的改动都将不 仅影响到要改变的功能,也会影响到其他被捆绑在一起的功能,这增加 了出错的可能性和测试的费用。 4 组件的服务接口保持很小 不要为了考虑将来而加上目前并不需要的参数,因为未来总是善变 的。 5 对组件服务的命名应该清楚地表明它所做的事 尽管动词后面接宾语的形式使代码更好读,但是宾语后面跟动词让 我们更能找到相关的服务,如u s e r m a n a g e 。 扳限管理组件存s p r i n g 框架下的设计1 j 实现 3 3 组件的设计目标 根据组件的需求分析和设计原则,我们就要实现组件的如下设计目 标: 1 跨操作系统平台: 各种应用系统存在于各种操作系统平台上( o h :w i n d o w s 、u n i x 、 l i n u x 等系统) ,为了使权限管理组件可以应用在不同平台的应用中,可 以与不同平台上的组件进行互操作,组件的平台无关性就成为必备的特 性。 这里我们可以使用j a v a b e a n s 组件模型,由于j a v a 有很好的跨平 台性,这样我们的组件就可以很方便的在各种平台之间移植,实现平台 无关性。 2 跨关系数据库平台: 各种应用系统不仅存在予各种系统平台之上,而且后台的关系数据 库( o r a c l e 、s q ls e r v e r 、m y s q l 等) 也更是千差万别,而权限管理组件也 需要某种数据库的支持,为了更好的使组件和各种应用系统交互集成, 组件的持久层框架必须能保证组件不用做太大修改就可以支持多种关 系数据库平台。 这里我们使用数据访问对象( d a o ,d a t aa c c e s so b j e c t ) 模型抽象和 封装所有对数据源的访问,很容易的分开数据持久逻辑与业务逻辑,这 样当数据源发生改变时,业务逻辑无需做任何改动。只须改动数据源配 置,花极少的代价即可支持多种关系数据库。 3 灵活授权机制: 每个企业根据企业自身的特点建立起的应用系统,权限管理部分都 有自己不同的特点,为了让权限管理组件能更好的应用到这些系统之 中,必须采用灵活的授权机制,才能满足不同企业权限管理方面的需求。 这里我们使用基于角色的访问控制机制,由于基于角色的访问控制 通过分配和取消角色来完成用户权限的授予和取消,实现了用户与访问 权限的逻辑分离。这样极大的方便了权限管理。而且基于角色访问控制 还可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。 壬) c 艰管理组件在s p r i n g 框架下的设计与实现 第三章权跟管理纽件的世计 3 4 组件开发体系结构设计 3 4 1 基础概念 1 控制反转和依赖注入1 1 2 l 控制反转( i o c ,i n v e r s i o no f c o n t r 0 1 ) ,就是由容器控制程序之问的 关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反 转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移, 是所谓反转。 正在业界为i o ( 2 争吵不休时,大师级人物m a r t i nf o w l e r 也站出来发话, 以一篇经典文章i n v e r s i o no f c o n t r o lc o n t a i n e r sa n dt h ed e p e n d e n c y i n j e c t i o np a t t e r n ) ) 为i o c 正名,这样,i o c 又获得了 个新的名字:“依赖注入( d i 。d e p e n d e n c yi n j e c t i o n ) ”。 相对i o c 而言,“依赖注入”的确更加准确的描述了这种古老而又 时兴的设计理念。从名字上理解,所谓依赖注入,即组件之间的依赖关 系由容器在运行期决定,形象的来说,即由容器动态的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论