(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf_第1页
(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf_第2页
(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf_第3页
(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf_第4页
(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf_第5页
已阅读5页,还剩80页未读 继续免费阅读

(计算机应用技术专业论文)动态环境中访问控制模型的研究.pdf.pdf 免费下载

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

文档简介

江苏大学硕士学位论文 摘要 数据通常是一个组织最敏感、最有价值的资源。在重大的国防、金融、 政府机关应用中,其安全性甚至比数据库的性能更为重要。动态的系统环境 对访问控制策略造成了新的挑战,实体的变化,布署的变化和操作模式的变 化都可能要求实时更新访问控制权限。 为了保证在动态环境下信息系统的安全性,需要一个良好的访问控制模 型。现代软件工程研究的重点目标之一就是使开发的软件项目适应不断变化 的外部环境。本文从访问控制策略安全的角度考虑了这一需求。 本文首先讨论了信息安全的需求和常见的访问控制模型。然后讨论了数 据库系统中的并发控制机制。 本文提出了一种访问权限控制的模型,能够对访问控制策略的实时变化 立即作出反映,并采取必要的措施。本文描述了三种访问权限实时更新的并 发控制算法,并对其进行了并发性分析。 本文的贡献主要有下列几个方面: ( 1 ) 研究了并发环境中的访问控制策略的实时更新的问题。在传统的两阶 段锁( 2 p l ) 的基础上,引入了启用锁的概念,利用启用锁实现访问控 制策略的实时更新。同时,证明了其安全性。 ( 2 ) 为了提高系统的并发性,给出了几种不同的算法,并说明了不同的算 法在增加并发性上所做的改进。 ( 3 ) 研究了基于语义的访问权限管理方法。 ( 4 ) 开发了一个符合本课题研究目标的访问权限管理子系统原型。 本文从理论和实际应用的角度考虑了在并发环境中的访问控制管理,提出的 模型简单且易于实现。在动态环境中,多个主体读写数据和修改访问控制策略并 互相影响时,可直接应用本文中的提供的方法实现访问权限管理子系统。本文研 究的方法适用于多种应用系统,可以使信息安全得到更好的保证。 关键词:信息安全,访问控制,并发控制,实时更新 江苏大学硕士学位论文 a b s t r a c t t h ed a t au s u a l l yi st h em o s ts e n s i t i v ea n dw o r t h yr e s o u r c e so fa n o r g a n i z a t i o n i nt h ea p p l i c a t i o no ft h em i l i t a r ya f f a i r sa n dt h e g o v e r n m e n t ,t h es e c u r i t yi sm o r ei m p o r t a n tt h a nt h ep e r f o r m a n c e d y n a m i c e n v i r o n m e n t sp o s en e wc h a l l e n g e st oa c c e s sc o n t r 0 1 i ns u c hs i t u a t i o n s , t h ee n t i t i e sc h a n g e ,t h ec o n f i g u r a t i o n sc h a n g ea n d t h eo p e r a t i o n a lm o d e s c h a n g e - - a l lo ft h e s er e q u i r er e a l t i m eu p d a t eo fa c c e s sc o n t r o lp o l i c i e s i no r d e rt og u a r a n t e es e c u r i t yo fi n f o r m a t i o ns y s t e mi nd y n a m i c e n v i r o n m e n t s ,t h en e e df o rg o o da c c e s sc o n t r o lm o d e la r i s e s v a r i a b i l i t y e x i s t i n gi nr e a lw o r l da n dc u s t o m i z e dr e q u i r e m e n t so fu s e r s ,r e q u i r e a d e q u a t ef l e x i b i l i t yo fs o f t w a r es y s t e m s ,t h isiso n eo ft h et a r g e t si n m o d e r ns o f t w a r ee n g i n e e r i n gr e s e a r c h i nt h isp a p e rw ec o n s i d e rt h e r e q u i r e m e n t sf r o ma c c e s sc o n t r o lp o l i c i e ss e c u r i t y t h i sp a p e rd i s c u s s e st h er e q u i r e m e n t sf o ri n f o r m a t i o ns e c u r i t ya n d a c c e s sc o n t r o lm o d e l s t h eb a s i cc o n c e p t so fc o n c u r r e n tc o n t r o li n d a t a b a s es y s t e ma r ee x p l a i n e d i nt h ep a p e r ,r e a l t i m eu p d a t eo fa c c e s sc o n t r o lp o li c i e s ,t h a ti s , u p d a t i n gp o l i c i e sw h i l et h e ya r ei ne f f e c ta n de n f o r c i n gt h ec h a n g e s i n m n e d i a t e l y t h ep a p e rd e s c r i b e st h r e ek i n d so fa l g o r it h m s ,a n dt h e c o n c u r r e n c yisa n a ly z e d i nt h i sp a p e r ,m ym a i nc o n t r i b u t i o n sa r ea sf o l l o w s a ) c h a r a c t e r so fr e a l t i m eu p d a t i n ga c c e s sc o n t r o lp o l i c i e si n c o n c u r r e n te n v i r o n m e n t sa r ei n v e s t i g a t e d t h es t a r tl o c kb a s e d o nt h ec l a s s i c a lt w o p h a s el o c k i n gm e c h a n i s mi si n t r o d u c e d , a n dt h es e c u r i t yo ft h es t a r tl o c ki sp r o v e d b ) t h et h r e ed i f f e r e n tt y p e so fa l g o r it h m sa r ei n t r o d u c e d t h e i m p r o v e m e n to fc o n c u r r e n c yi na l g o r i t h m si sd e p i c t e d c ) t h eb a s e d s e m a n t i c sa c c e s sc o n t r o lm a n a g e m e n ti s i n v e s t i g a t e d i l l 江苏大学硕士学位论文 d ) t h ep r o t o t y p eo fa c c e s sc o n t r o lm a n a g es y s t e mi sd e v e l o p e d t h ep a p e rd i s c u s s e sa c c e s sc o n t r o lm a n a g ei nc o n c u r r e n c ye n v i r o n m e n t s w i t ht h e o r ya n dp r a c t i c e t h em o d e l a n da l g o r i t h m sa r eu s e f u lf o r c o n c u r r e n c ye n v i r o n m e n ti nw h i c hm u l t i p l es u b j e c t sa c c e s sa n dm o d i f yd a t a a n da c c e s sc o n t r o lp o l i c i e s ,w h i l et h ep o l i c i e sa r ei ne f f e c t k e yw o r d s :in f o r m a ti o ns e c u r it y :a c c e s sc o n t r o l ;c o n c u r r e n tc o n t r o l : r e a l tim eu p d a t e i v 独创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已注明引用的内容以外,本论 文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:私咖 日期卿年朝 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部 内容或部分内容编入有关数据库进行检索,可以采取影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密囱。 指导教师签名:屠上 z 雪- o7 年n 具? 0 e l j 佛f 彬 签 弘 榭 钥 作 卧 文、厂 渊少 位 h 靴庐 江苏大学硕士学位论文 1 1 研究背景及意义 第一章绪论 在当今信息时代,信息的重要地位日益显著,信息关系着政府、金融、国防 等要害部门的安危,关系着企业的发展。随着计算机与网络技术在社会各领域的 广泛应用,人们的工作和生活都有了飞跃性的变化,越来越多的信息被存放在计 算机系统中,很多是机密或敏感的信息,这对计算机安全技术提出了更高的要求。 为保护这些信息不被窃取、破坏,仅仅使用硬件保护是不够的,还必须采取必要 的软件保护措施n 名 】。 数据库管理系统( d a t a b a s em a n a g e m e n ts y s t e m ,简称d b m s ) 作为管理信息系 统的基础软件,其安全性在信息系统中起着至关重要的作用。随着d b m s 管理的 信息量愈来愈大、愈来愈复杂,使得如何保护d b m s 中的重要信息不被无关人员 或非授权人员窃取、篡改和破坏显得十分关键。因而数据库安全技术的研究成为 信息安全的重要研究课题砸1 数据库安全要解决的问题主要有:防止未经授权的用户访问数据,防止存储 的数据被人恶意破坏,防止数据在传输过程中被人窃取和修改,以及防止数据库 管理系统受到攻击而丧失可用性等嘲。 保证数据库的安全所采用的手段主要有存取控制机制、加密以及审计三种。 存取控制机制的目的是保证数据只能被授权的用户和主体访问,防止未经授权的 用户访问和破坏数据。对数据进行加密可以防止数据在从服务器到客户端传输的 过程中被人窃取。审计通过记载用户或者主体对于数据的访问情况,从而可以在 事后发现对于数据库的可能的入侵,以便采取相应的应对措施,保证数据的安全。 目前对基于数据库系统开发的应用系统提供的安全措施包括:用户的标识与 鉴别,自主存取控制、强制访问控制和基于角色的存取控制h 1 。 用户的标识与鉴别是指系统提供某种方式让用户标识自己的身份,每次用户 要求进入系统时,系统都要进行核对,用户只有通过鉴定才能允许使用系统。 自主存取控制是指系统授予用户对不同的数据对象以不同的存取权限,并且 用户还可以将其拥有的存取权限转授给其他用户。 江苏大学硕士学位论文 强制存取控制根据主客体的安全级来决定主体是否能存取客体,排除了由于 主体随意转让权限而造成信息泄漏的可能,能提供较强的安全保障,但由于对存 取控制的限制过于严格,有时会造成主体根本不能存取客体的情况,即产生不可 用性。 基于角色的存取控制是指系统将权限授予角色而不是授予用户,每个用户可 以属于一个或多个角色,基于角色的存取控制大大简化了存取权限的管理。 随着应用系统的日趋复杂化,人们对系统的安全性要求也越来越高。系统的 安全性包括系统抵御外界的攻击能力,系统信息安全的存储方式,同时更重要的 是对系统涉密信息泄漏的防范。因此,提高访问控制技术的水平已经成为提高系 统安全的主要技术手段之一 当多个用户并发地存取数据库时就会产生多个事务同时存取同一数据的情 况。如果对并发操作不加控制就可能读取和存储不正确的数据,破坏数据库的一 致性。所以数据库管理系统必须提供并发访问控制机制。并发控制的目的是保证 数据库系统中多个事务能高效正确地并发执行,同时又要使各事务和数据库保持 一致性。其作用主要表现在协调同一时间访问同一数据库文件的多个事务之间的 关系,防止这些事务之间发生冲突,产生一个可串行化调度m 。 访问控制策略主要的任务是给用户授权,让合法的用户能够访问到需要访问 的资源。然而,现实情况是复杂的,动态的系统环境对访问控制策略造成了新的 挑战。如接到通知,需要阻止某用户访问某个资源,访问控制策略要做到及时对 该用户的访问权限进行修改,并使其变化立即发挥作用。 本文主要研究在动态环境中的并发访问控制问题。特别是在线修改用户的访 问控制权限,并使其立即发挥作用,阻止失去访问权限的用户继续访问需要保护 的数据。并讨论了访问控制策略实时更新对系统并发性的影响。最后给出了实现 方法及其应用。本文研究的方法适用于多个领域,使信息安全得到更好的保证。 1 2 国内外研究概况 对计算机安全的研究开始于2 0 世纪六、七十年代。1 9 6 7 年1 0 月,在美国国 防科学技术委员会的赞助下成立了特别工作组,致力于计算机安全保护、远程访 问保护、远程共享计算机系统的保密信息。从2 0 世纪6 0 年代末、7 0 年代初期 2 江苏大学硕士学位论文 开始出现一系列有关计算机安全的论文。 1 9 6 9 ,年,b w l m m p s o n 第一次使用主体( s u b j e c t ) 、客体( o b j e c t ) 和访问 矩阵( a c c e s sm a t r i x ) 的思想形式化地对访问控制进行了抽象。同年,作为美国 国防科学委员会计算机安全特别行动小组的工作成果,w i l l i sw a r e 博士推出了 题为 b 表示a 的保密性要求高于b ,则这些级别的关系为t s s c u 。 类别集合是一些没有继承关系的元素集合的子集,类别集合依赖于应用环 境,如类别集合可以是国防部、财政部、公安部等,这主要用来帮助实现最小特 权原则。 安全级别l 可以表示为上= ( c ,s ) ,其中c 是密级,s 是类别集合。对于两个 安全级别厶= ( c l ,s ) 、岛= ( c 2 ,) ,当c l c 2 ,s2 岛时,我们称厶支配厶, 。 记为厶厶。赋予主体的安全级别也称为主体的可信度( c l e a r a n c e ) ,主体当前 的安全级别称为当前安全级别( c u r r e n ts e e u r i t yl e v e l ) ,主体的当前安全级别 一定小于其信任度。 b l p 模型通过客体的“所有者 来实现分散型的权限管理,客体的所有者可 以将客体的存取权限赋予其他用户,也可以撤销赋予的权限,所有者身份是不能 传播的。 b l p 模型中的系统状态用一个四元组慨m ,厂日) ,其中,b 是目前的存取集 2 6 江苏大学硕士学位论文 合,存取集合由三元组( s ,0 ,历) 组成,此三元组表示主体s 当前拥有对客体0 的存 取权限m ;m 是存取矩阵;是一个级别函数,输入客体或主体,输出安全级 别,f :o u s 一三,0 是所有客体的集合,s 是所有主体的集合,三是所有安全 级别的集合;日是当前客体层次关系,客体层次关系是一个有向树,树中客体 的安全级别必须支配其父节点的安全级别。 b l p 模型可以有效防止低级用户和进程访问安全级别比他们高的信息资源。 此外,安全级别高的用户和进程也不能向比他安全级别低的用户和进程写入数 据。b e l l - l a p a d u l a 模型建立的访问控制规则可以用以下两点简单表示: 简单安全特性规则:如果主体对客体有读写权限,那么主体的信任度一定 支配客体的安全级别。此特性保证主体不能读取比其级别高的客体,也 就是不能“上读”。此特性可形式化地表示为 r e a do rw r i t e m s ,d 】专z ( j ) f o ( d ) 宰- 特性规则:某一个不可信主体具有对一客体追加权限,那么客体的安 全级别一定支配主体的当前安全级别;如一个不可信主体具有对一客体 , 的写权限,那么主体的当前安全级别一定与客体的安全级别相等;如一 个不可信主体具有对某一客体的读权限,那么一定有主体的当前安全级 别支配客体的安全级别。此特性可形式化地表示为 a p p e n d m s ,0 卜 五( s ) 工( d ) w r i t e m s ,0 】jz ( 曲= f o ( d ) r e a d m s ,0 】专无( s ) 无( d ) b l p 保密模型基于两种规则来保障数据的机密度与敏感度: ( 1 ) 不能向上读,主体不能读安全级别高于它的数据: ( 2 ) 不能向下写,主体不能写安全级别低于它的数据。 直接来讲,要考虑数据的保密性。例如:假如一个用户,他的安全级别为“绝 密,想要访问安全级别为“秘密一的文档,他将能够成功读取该文件,但不能 写入:而安全级别为“秘密 的用户访问安全级别为“绝密的文档,则会读取 失败,但他能够写入。这样,文档的保密性就得到了保障。 2 7 江苏大学硕士学位论文 2 3 5b i b a 完整性模型 1 9 7 7 年,k e nb i b a 提出了b i b a 访问控制模型,该模型对数据提供了分级别 的完整性保证,类似于b l p 保密性模型,b i b a 模型也使用强制访问控制系统。 b i b a 模型n 町是用来保护信息完整性的模型,模型中的每一个主体和客体都被 分配一个完整性级别( i n t e g r i t yl e v e l ) ,每一个完整性级别由级别 ( c l a s s i f i c a t i o n ) 和类别集合( s e to fc a t e g o r i e s ) 两部分组成,可表示为 上= ( c ,s ) 其中,三表示完整性级别;c 表示级别;s 表示类别集合。 对于两个级别厶= ( q ,墨) 厶= ( c 2 ,岛) ,如果q c 2 ,墨2 岛,称厶支配厶, 记为厶厶,如果给定的两个级别厶和厶,不等式厶厶和厶厶均不成立, 那么我们称厶和厶不可比。 在此模型中并没有解决授权管理的问题,不同于b l p 模型的是,b i b a 模型并 不考虑所有者,所以要想改变授权状态只能是直接修改访问控制表,在修改时应 该遵守其定义的规则。 在b i b a 模型中,并未明确一组统一的安全策略,而是提出了一系列的安全 策略来适应不同的条件。 b i b a 模型基于两种规则来保障数据的完整性: ( 1 ) 不能向下读属性,主体不能读取安全级别低于它的数据; ( 2 ) 不能向上写属性,主体不能写入安全级别高于它的数据。 从这两个属性来看,b i b a 与b l p 模型的两个属性是相反的,b l p 模型提供保 密性,而b i b a 模型对于数据的完整性提供保障。 大多数完整性保障机制都基于b i b a 模型的两个基本属性构建。一个安全级 别为“机密”的用户要访问级别为“秘密的文档,他将被允许写入该文档,而 不能读取。如果他试图访问“绝密”级的文档,那么,读取操作将被允许,而写 入操作将被拒绝。这样,就使资源的完整性得到了保障。因此,只有用户的安全 级别高于资源的安全级别时可对资源进行写操作,相反地,只有用户的安全级别 低于资源的安全级别时可读取该资源。简而言之,信息在系统中只能自上而下进 行流动。 江苏大学硕士学位论文 2 3 6 基于角色的访问控制模型r b a c 基于角色的访问控制( r b a c ) 模型相关研究起始于2 0 世纪9 0 年代。r b a c 及相 关术语最早出现在1 9 9 2 年f e r r a i o l o 和k u h n 发表的文章中。在此之前的一些研 究者提到了角色( r o l e ) 或者基于角色的安全( r o l e - b a s e ds e c u r i t y ) ,但是都没 有提出完整的r b a c 的概念。f e r r a i o l o 和k u h n 提到了r b a c 及角色激活、角色 的继承和角色分配时的约束等概念。因为r b a c 模型借鉴了许多为人们熟知的用 户组、权限组以及职责分离( s e p a r a t i o n o fd u t y ) 的概念,并且以角色为中心的权 限管理更符合公司和企业的实际管理方 式,所以其研究和应用发展得非常快。 f e r r a i o l o 等和s a n d h u 等分别在1 9 9 5 年 和1 9 9 6 年提出了有关r b a c 模型的早期形 图2 - 6 四种r b a c 模型之间的关系 式化定义,其中s a n d h u 等人定义了r b a c 模型的一个比较完整的框架,即r b a c 9 6 模型。r b a c 9 6 实际上是一个r b a c 模型族,其中最基本的模型是r b a c o ,它包含 了r b a c 中的核心部分。r b a c l 和r b a c 2 都建立在r b a c o 之上,r b a c i 增加了角色 继承的概念,r b a c 2 增加了角色之间的约束。r b a c 3 则把r b a c l 和r b a c 2 综合了 起来,同时提供继承和约束,并讨论了两者的关系。四种r b a c 模型之间的关系 如图2 - 6 。 基于角色的访问控制r b a c 是一种策略中性( p o l i c yn e u t r a l ) 的访问控制方 法,是继自主访问控制d a c 和强制访问控制m a c 之后的一种全新的访问控制模型。 r b a c 的基本思想是在用户和权限之间引入角色的概念,利用角色来实现用户和 权限的逻辑隔离,即用户和角色相关联,角色和权限相关联,用户通过成为相应 角色的成员而获得相应权限。用户与角色和角色与权限之间的关系均为多对多的 关系。角色之间也可存在继承关系,即上级角色可继承下级角色的部分或全部权 限,从而形成了角色层次结构。用户一角色关系的语义表达能力很强,它不仅能 够表达复杂的社会组织机构中的“职责 关系,而且能够降低访问控制管理的复 杂度,已成为当前公认的最有发展潜力的访问控制模型。 目前,美国国家标准与技术学会( n i s t ) 制定的r b a c 模型标准已被采纳为美 国国家标准a n s ii n c i t s3 5 9 - 2 0 0 4 。 江苏大学硕士学位论文 与r b a c 9 6 中的划分类似,n i s t 的r b a c 标准根据功能把r b a c 模型分为r b a c 核心( c o r er b a c ) 、带角色继承的r b a c ( h i e r a r c h i c a lr b a c ) 以及带约束的 r b a c ( c o n s t r a i n tr b a c ) 等几种类型。 1 r b a c 核心 r b a c 核心模型包 含五个基本的静态集 合:用户集( u s e r s ) i 角色集( r o l e s ) 、对象 集( o b j e c t s ) 、操作集 ( o p e r a t o r s ) 和特权 图2 - 7r b a c 核心模型 集( p e r m s ) ,以及一个运行过程中动态维护的集合会话集( s e s s i o n s ) 。这些 集合称为r b a c 的组件。用户集包括系统中可以执行操作用户,是主动的实体。 对象集是系统中被动的实体,包含系统需要保护的信息。操作集是定义在对象上 的一组操作。对象上的一组操作构成了一个特权,特权是不可分割的最小单元, 一旦将某个特权分配给用户,该用户可以执行特权中包括的所有操作。角色是 r b a c 模型的中心,它是用户与特权之间的桥梁。从图2 - 7 中可以看出,用户分 配( 删) 和特权分配( p a ) 使用户与特权关联起来。 2 带角色继承的r b a c 带角色继承的r b a c 建立在r b a c 核心的基础之上,包含r b a c 核心的所有组 件,并增加了角色继承( r o l eh i e r a r c h i e s ,r h ) 操作,如图2 8 所示。 角色继承是角色上的偏序关系,r h r o l e s xr o l e s 。如果一个角色,;继 承另一个角色r 2 ,那么 角色吒所拥有的特权 也是的特权,拥有角 色吒的用户也拥有角 角色壤承 色吃。可以用符号 图2 8 带角色继承的r b a c 模型 ,i 来表示两者之间的继承关系。发生了角色继承后,角色授予的特权集和用 江苏大学硕士学位论文 户集也会发生相应变化。下面是角色特权集和用户集变化的形式化表示: a u t h o r i z e d p e r m s ( r ) = p p e r m sl ,r t , ( p ,r 3 p a a u t h o r i z e d u s e r s ( r ) = 材u s e r sl ,r ,( 材,r ,) u a 可以看出,角色的特权集不仅包括管理员授予该角色的特权,还包括授予其 所有直接或间接继承的角色的特权。角色的用户集不仅包括管理员直接分配的用 户还包括所有直接或间接继承该角色的其他角色所分配的用户。 r b a c 的标准包括两种类型的角色层次结构。一种是受限的继承,角色只能继 承某一个角色,不支持多重继承;另一种是多重继承( m u l t i p l ei n h e r i t a n c e ) , 一个角色可以同时继承多个角色,也可以同时被多个角色所继承。多重继承支持 通过继承多个角色来构造一个新角色,这种方法定义的角色层次更像企业或商业 组织的结构。另外,多重继承有利于使用统一的方法来处理( 角色_ 角色) 分配与 ( 用户一角色) 分配。 3 带约束的r b a c 带约束的r b a c 提供了实现职责分离的机制。职责分离关系是为了实施利益 冲突时的回避策略,以防止用户超越其正常的职责范围。带约束的r b a c 支持两 种职责分离策略一静态职责分离和动态职责分离。图2 9 是描述静态和动态职 责分离约束的r b a c 模型。 静态职责分离 ( s t a t i c s e p a r a t i o n o fd u t y ,s s d ) 约束作 用于( 用户一角色) 分配 和角色继承,简单地 说,如果两个角色之间 存在s s d ,那么当某用 户分配了其中之一时, 图2 - 9 带约束的r b a c 模型 将不能再获得另一个角色。另外,因为在定义角色继承关系时,角色将会拥有继 承它的其他角色的所有用户,如果在s s d 之间的角色中定义继承关系,将会间接 地违反s s d 的性质,所以不能在已有s s d 关系的两个角色之间定义继承关系。 动态职责分离( d y n a m i cs e p a r a t i o no fd u t y ,d s d ) 约束也限制了用户的权 江苏大学硕士学位论文 限。但是d s d 作用于用户激活角色阶段,如果两个角色之间存在d s d ,管理员可 以将这两个角色都授予某个用户,但是该用户不能在同一个会话中同时激活这些 角色,也就是说用户在登录后不能同时获得这两个角色所具有的权限。 2 4 本章小结 本章介绍了信息安全的要求和安全技术。分析了访问控制技术及与其它安全 措施的关系。对访问控制策略( d a c 、m a c 和r b a c ) 进行了简单分析,说明其在应 用中的优缺点。介绍了基本的访问控制矩阵模型、访问能力表模型和取予模型, 以及当前流行的b l p 模型、b i b a 模型和r b a c 模型,并对其概念、基本原则及特 点进行了分析。 从本章内容可以看到,当前学术界对信息安全的问题已经作了大量的研究工 作,考虑的策略和建立的模型相对已比较完善。本文所作的研究工作借鉴了上述 研究思想,从访问权限的实时变化的角度考虑信息安全问题,在第四章中给出了 一个新的概念和方法。 根据上述描述,在第五章的实现中,考虑到访问控制矩阵的通用性和访问能 力表的简单性。在权限控制数据库中,使用了访问控制矩阵模型,在内存中,使 用了访问能力表模型。并在访问权限控制的整体设计中,借鉴了基于角色的思想, 使系统得到较好的实现。 江苏大学硕士学位论文 第三章并发控制机制分析 并发控制隔离并发执行的事务,确保事务的执行不会相互干扰,保证数据的 逻辑一致性。在数据库系统中,实现并发控制协议的技术包括两阶段锁、时间戳、 多版本或者乐观的并发控制协议。每种机制基于不同的假设进行设计,但是有一 个共同的目标事务的可串行化。并发控制协议能够从三个不同的方面进行分 类:冲突检测( c o n f l i c td e t e c t i o n ) ,冲突解决( c o n f l i c tr e s o l u t i o n ) 、串行化 规则与顺序( s e r i a l i z a t i o nr u l e a n do r d e r ) 。并发控制的基本思想是移除冲突, 当一个冲突被检测,或者天折一个冲突的事务或者采用其它方法解决。 3 1 事务 事务是访问并可能更新各种数据项的一个程序执行单元,通常认为事务是由 事务开始与事务结束之间执行的全体操作序列组成,这些操作要么全做,要么全 不做,是一个不可分割的工作单位。事务的开始与结束可以由用户显式控制,如 果用户没有显式地定义事务,则由d b m s 按缺省规定自动划分事务。 假定事务只对数据项进行读写操作,事务的形式化定义为m : 定义3 1 事务是一个操作的偏序集。事务丁的偏序关系记为“ ,设x 为 _ 个数据项,则有: 1 丁s ,( x ) ,“x ) ,c , a ) :c 与a 有且仅有一个在丁中,且对丁中任一其他操 作d ( x ) ,有d ( x ) c 或d ( 力 a 成立; 2 若厂( x ) ,以x ) e t ,则,( 曲 w ( 工) 与w ( z ) ,( x ) 有且仅有一个成立。口 偏序关系“ 扩表明执行的先后顺序。该关系不成立的两操作可以并发执行。 ,( x ) 和以x ) 表示一般意义上的读写数据项x ,c 和a 表示事务的提交和夭折操 作。条件2 表明事务中必须有c 或a 之一,且在最后执行。条件3 规定若事务中 对同一数据项有读写两个操作,则该两个操作不可以并行执行。 这样定义的事务是一个有向无环图。以图的节点代表操作,有向边表示 关 系。 江苏大学硕士学位论文 使用s o l 语言定义事务的语句有三条:b e g i i i it r a n s a c t i o n , c 0 删i t ,r o l l b a c k 。事务通常是以b e g i nt r a n s a c t i o n 开始,以c o m m i t 或r o l l b a c k 结束。c o m m i t 表示提交,即提交事务的所有操作,具体地说是将事务中所有对 数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。r o l l b a c k 表示 回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务 中对数据库的所有己完成的操作全部撤消,回滚到事务开始时的状态。 事务不能正常结束,也称为事务夭折( a b o r t ) 如果事务夭折,能够回滚到 事务开始时的状态,则数据库能够保持一致性状态。因此,事务有两种结束的情 况:提交( c o m m i t ) 和夭折( a b o r t ) 。 数据库系统中同时可能有很多事务要执行,这些事务要么互不相干,要么需 要访问相同的数据项。为了保证数据库的完整性( 正确性) ,数据库系统必须维护 事务的以下特性嘲: ( 1 ) 原子性( a t o m i c i t y ) :事务是数据库的逻辑工作单位,事务中的所有操 作要么全部执行,要么都不执行如果事务没有原子性的保证,那么 在发生系统故障的情况下,数据库就有可能处于不一致的状态。 ( 2 ) 一致性( c o n s i s t e n c y ) :事务执行的结果必须是使数据库从一个一致性 状态转变到另一个一致性的状态。因此当数据库只包含成功事务提交 的结果时,数据库处于一致性的状态。如果数据库系统运行中发生故 障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的 修改有一部分己写入物理数据库,这时数据库就处于一种不正确的状 态,或者说不一致的状态。 ( 3 ) 隔离性( i s o l a t i o n ) :即使多个事务并发( 同时) 执行,每个事务都感觉 不到系统中有其他的事务在执行,因而也就能保证数据库的一致性。 单个事务都能保持一致性和原子性,但如果几个事务并发执行,且访 问相同的数据项,则它们的操作会以人们所不希望的某种方式交叉执 行,结果导致不一致的状态。 ( 4 ) 持久性( d u r a b il i t y ) :事务成功执行后,它对数据库的修改是永久的, 即使系统出现故障也不受影响。 事务是恢复和并发控制的基本单位。事务的a c i d 特性揭示了事务的基本行 江苏大学硕士学位论文 为。保证事务a c i d 特性是事务处理的重要任务。这些特性可能遭到破坏的因素 有: ( 1 ) 事务在运行过程中被终止。即事务完成之前失败,仅有部分事务被执 j 行; ( 2 ) 多个事务并发执行时,不同事务的操作交叉执行。 在第一种情况下,事务处理系统通过一种追踪事务执行的机制来保证事务的 正确执行,保持其原子性,持久性。如果事务在完成之前失败,事务处理系统将 撤销该事务更新操作的影响,只有当事务顺利完成时,事务处理系统才允许该事 务的更新永久地保留在数据库中。在第二种情况下,事务处理系统必须保证多个 事务的交叉运行不会影响这些事务的一致、隔离等特性,保持数据库状态的一致 性。 3 2 事务并发控制 并发控制是事务处理的主要部分,并发控制涉及到事务的隔离性和一致性。 事务的隔离性和一致性要求并发执行的事务不会导致数据库进入不一致的状态。 并发控制的主要作用是: ( 1 ) 改善系统的资源利用率和吞吐率:对单个的事务来说,在不同的执行阶 段需要不同的系统资源。由于从申请系统资源到得到系统资源可能需 要一定的等待时间,或者访问这些系统资源本身就必须消耗比较长的 时间,这样如果事务只是串行地执行,必然会消耗很多不必要的c p u 时间和其他系统资源。如果事务并发执行,就可以交叉地使用c p u 时 间和其他系统资源,有利于提高系统资源的利用率和吞吐率。 ( 2 ) 改善事务的响应时间:由于数据库系统中必然存在长事务和短事务共 存的现象,如果事务串行执行,就有可能出现短事务长期等待某个长 事务而不能执行的问题:但是如果事务采用并发执行,则短事务的响应 时间就可以大大减少。 事务并发控制中主要解决的问题包括:事务的隔离级别,事务加锁的粒度, 事务的封锁规则,事务的锁相容矩阵,死锁的处理等问题。 3 5 江苏大学硕士学位论文 3 2 1 事务并发控制中的问题 在并发环境中,如果两个保持一致性的事务并发执行后,可能导致数据库从 一致性状态转到不一致性状态。作用于同一个数据库对象的两个操作,如果有一 个是写操作,那么将产生冲突。下面按照事务互和五产生冲突的操作来描述三种 问题:写一读冲突( 肌冲突) 问题、读一写冲突( r w ) 问题和写一写冲突( 硼冲突) 问题嘲i ( 1 ) 丢失修改问题( w w 冲突) 考虑两个事务五和正,以图3 - i 的方式并发执行。 假设x 是一个数值数据,在时刻1 时,x 的值是1 0 0 。互和五都把这个值 读入它们各自的局部变量中,然后修改 各自的局部变量中的值,最后再把各自 局部变量中的值写回这个共享的数据 时间 互互 r ( x )l 2r ( 】【) 宰x := x + 2 0 衫3 - ( x )4 5 聿x :- - x + 3 0 | 6w ( x ) 项。假设五加了2 0 ,互加了3 0 。因此 图3 - i 丢失修改问题 x 最终的值应该是1 5 0 。瓦是最后一个修 改x 原始值的事务,但是在正改写x 的 值之后,x 的最终值是1 3 0 ,这个结果是 不正确的。实际上,由于正在瓦之前把x 的新值写回数据库,这使得前者的修改 丢失了。 这个问题与两个事务把数据项x 读 入各自局部变量之后的处理无关。问题 的核心是在同时更改了各自的局部变量 之后,第一个事务的结果被第二个事务 在缺乏控制的情况下覆盖掉了。 时间 五 互 lr ( x ) 2| x := x - i o | 3- ( x ) 幸s 岫:= o 衫4 r ( i )5 r ( y ) 6 s 埘:= s t m + x 形 7 事s 硼:2s t u 口+ y 8 9 r ( y ) 1 0 | y := y + l o 聿| 1 l - ( y ) 问题的实质是读写操作的交叉执行模式为: 图3 - 2 读不一致问题 江苏大学硕士学位论文 ,;( x ) 呢( x ) w l ( x ) 吃( x ) ( 2 ) 读不一致问题( 肼冲突) 考虑两个整型的数据项x 和y ,初始值x = y = 5 0 ;因此x + y = 1 0 0 。在一个银行 应用中,可以用这两个数据项来表示账户余额。在转账过程中,这两个数据项的 和应当保持不变。图3 2 中的事务五计算这两个数据项当前的和。事务瓦写从帐 户x 向y 转帐1 0 元。事务五写完x 后互执行。7 :的返回值是9 0 ,这个结果显然 是不对的。但是这个错误很难被用户发现。这个问题的本质是读写操作的交叉执 行模式为: 眨( x ) ( x ) 吒( x ) ,i ( 力眨( y ) w 2 ( 力 ( 3 ) 读未提交的数据问题( w r 冲突) 读未提交的数据,也称作读“脏”数据。一个事务在修改了某些数据之后失 败了,而另一个事务在第一个事务的修改和失败之间读取了这些数据。 事务互和五的执行过程如图3 3 。 事务互在事务互失败并被回滚之前读 取了被互修改过的数据项x 。因为互失 败了,瓦所依赖的被修改过的x 值并 没有被提交。然而,这个是互唯一读 取过的值,并且互还将把这个值用于 后续的处理,特别是计算x 的新值,并 将其写回到数据库中。 时间 五瓦 r ( x ) 1 x :- x + 1 0 0 吖 2 - ( x )3 4r ( 工) 5 ll := x - 1 0 0 失败 6 7w ( x ) 图3 - 3 读未提交的数据 例如,假设x 是一个银行账户,x 的初始结余是0 ,要求不能透支( 即不能为 负值) ,互打算以支票的方式向其中存入1 0 0 元,只有这个支票生效,互才能在 不透支情况下从账户中提取1 0 0 元。以上的例子表明,在支票存款失败的情况下, 取款仍然能最终成功,这会使银行的商业信誉和可靠性遭受严重打击。解决途径 可以是通过回滚互而使得互读到的值无效,并且采取必要措施阻止正继续依赖该 3 7 江苏大学硕士学位论文 无效值。 可见,并发执行程序的数据访问操作之间存在着潜在的冲突。因此,并发控 制是必要的,并且还要考虑到失败的情况,比如上面读“脏”数据的例子。作为 事务保证来说,这些异常都是需要避免的,要给外部世界这样一个印象:所有事 务都是按照某种顺序串行执行的。 3 2 2 可串行化 事务是对数据库的一个操作序列,当多个事务对数据库系统进行并发操作 时,必须采取正确的调度方法才能保证数据库的一致性。对于一组事务来说,存 在着多种正确调度的可能,而最令人感兴趣的是那种开销最小的正确调度。因此, 需要研究各种调度可能会出现的问题。为了讨论事务调度的正确性,引入串行调 度及可串行化调度的概念嘲。 定义3 1 设有一组事务i t , ,互,乙) ,假设事务霉的操作都先于乃,记为 霉 乙。如果一个调度s ,其每一个事务的执行均有z 乃,( i ,的序号无关) , 记为s = - 霉 i ) ,则称s 为串行调度。口 一个串行调度总可以正确执行,并使数据库状态保持一致。因此,不论如何 串行调度,总可以保证数据库状态一致。然而,串行调度时系统的运行效率非常 低,故实行操作时人们最关心的是那些执行结果正确( 即和某种串行调度执行结 果等价) 的并发调度,即可串行化调度。 定义3 2 多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行 地执行它们时的结果相同,称这种调度策略为可串行化的调度。并发

温馨提示

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

评论

0/150

提交评论