《数据库安全》第四章_数据库的访问控制

上传人:考试不挂****2941... 文档编号:242939097 上传时间:2024-09-12 格式:PPT 页数:112 大小:627.50KB
返回 下载 相关 举报
《数据库安全》第四章_数据库的访问控制_第1页
第1页 / 共112页
《数据库安全》第四章_数据库的访问控制_第2页
第2页 / 共112页
《数据库安全》第四章_数据库的访问控制_第3页
第3页 / 共112页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第 四 章,数据库的访问控制,1,本 章 概 要,4.1,访问控制策略概述,4.2,自主访问控制,4.3 强制访问控制,4.4 多级安全访问控制模型,4.5 安全数据视图模型,2,4.1,访问控制策略概述,访问控制的基本任务:,防止非法用户进入系统及合法用户对系统资源的非法使用,它保证主体对客体的所有直接访问都是经过授权的。通俗说访问控制机制就是决定用户及代表一定用户利益的程序能做什么。,3,安全访问控制的三要素,主体:,一个能够访问对象的实体,如通常,为进程或用户。,客体:,被访问的对象,如文件,数据库、,表、元组、属性等。,访问权限:,是指主体对客体可进行的特定,访问操作。如读、写、执行等。,4,在数据库中,访问控制,机制,可以分为两大类:,(1),基于能力的访问控制:,以访问主体为判断对象实现访问控制。访问,主体能力列表,中的一个元素表示为一个二元组(o,a),其中o表示资源客体,a表示一种访问控制方式。,(2),基于访问控制列表的访问控制:,以资源客体为判断对象实现访问控制。资源客体,访问控制列表,中的一个元素表示为一个二元组(s,a),其中s表示访问主体,a表示一种访问控制方式。,5,4.1,访问控制策略概述,4.1.1 自主访问控制(Discretionary Access Control,DAC)概述,用户可以按自己的意愿对系统的参数做适当修改以决定哪些用户可以访问他们的资源,亦即一个用户可以有选择地与其它用户共享他的资源。用户有自主的决定权。,用户对于不同的数据对象有不同的存取权限,,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。,6,自主访问控制模型中,用户对信息的控制基于对,用户的鉴别,和,访问规则,的确定。它基于对主体及主体所属的主体组的识别,来限制对客体的访问,还要校验主体对客体的访问请求是否符合存取控制规定来决定对客体访问的执行与否。这里所谓的自主访问控制是指主体可以自主地将访问权,或访问权的某个子集授予其它主体。,7,4.1.2 强制访问控制概述(Mandatory access control,MAC),强制访问控制是指主体与客体都有一个固定的,安全属性,。系统通过检查主体和客体的安全属性匹配与否来决定一个主体是否可以访问某个客体资源。安全属性是强制性的规定,它是由安全管理员,或者是操作系统根据限定的规则确定的,用户或用户的程序不能加以修改。,8,如果系统认为具有某一个安全属性的主体不适于访问某个资源,那么任何人(包括资源的拥有者)都无法使该主体具有访问该文件的权力。,强制安全访问控制可以避免和防止大多数数据库有意或无意的侵害,因此在数据库管理系统中有很大的应用价值。,9,4.1.3,基于角色的访问控制概述(Role-Based Access Control, RBAC),基于角色访问控制(RBAC)模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即,访问权限与角色相关联,,,角色再与用户关联,,从而实现了用户与访问权限的逻辑分离。,10,RBAC模型中的基本概念,用户(User):,访问系统中的资源的主体,权限(Permission):,对计算机中某些受保护的资源的访问许可,角色(Role):,应用领域内一种权力和责任的语义综合体,可以是一个抽象概念,也可以是对应于实际系统中的特定语义体,比如组织内部的职务等,针对角色属性的不同,某些模型中将角色进一步细分为普通角色(Regular Role)和管理员角色(Administrative Role),角色与组的区别,组:一组用户的集合,角色:一组用户的集合 + 一组操作权限的集合,11,用户指派(User Assignment):,用户集到角色集的多对多的关系,权限指派(Permission Assignment):,权限集到角色集的多对多的关系,会话,(Session):,对应于一个用户以及一组激活的角色。用户每次必须通过建立会话来激活角色,得到相应的访问权限,12,RBAC核心模型,13,角 色,通过创建角色可以一次性对一类用户指定其共同的权限,象对用户一样, 可以对角色授予或收回权限,角色可被赋予给用户, 甚至给其他角色,SQL:1999 支持角色,create role,teller,create role,manager,grant select on,branch,to,teller,grant update (,balance,) on,account,to,teller,grant all privileges on,account,to,manager,grant,teller,to,manager,grant,teller,to,alice, bob,14,一个RBAC的应用实例,在银行环境中,用户角色可定义为出纳员、分行管理者、顾客、系统管理员和审计员,访问控制策略的一个例子如下:,(1)允许出纳员修改顾客的帐号记录(包括存款和取款、转帐等信息),并允许查询所有帐号的注册项;,(2)允许分行管理者修改顾客的帐号记录并允许查询所有帐号的注册项,也允许创建和终止帐号;,(3)允许顾客只询问他自己的帐号的注册项;,(4)允许系统管理员询问系统的注册项和开关系统,但不允许读或修改用户的帐号信息;,(5)允许审计员读系统中的任何数据,但不允许修改任何事情。,RBAC的优势,便于授权管理,如系统管理员需要修改系统设置等内容时,必须有几个不同角色的用户到场方能操作,从而保证了安全性。,便于根据工作需要分级,如企业财务部门与非财力部门的员工对企业财务的访问权就可由财务人员这个角色来区分。,便于赋于最小特权,如即使用户被赋于高级身份时也未必一定要使用,以便减少损失。只有必要时方能拥有特权。,便于任务分担,不同的角色完成不同的任务。,便于文件分级管理,文件本身也可分为不同的角色,如信件、账单等,由不同角色的用户拥有。,16,4.2 自主,访问控制,自主访问控制,基于自主策略管理主体对数据的访问,主要机制包括,基于主体的标识,和,授权规则,。这些规则是自主的,即它们允许主体将数据权限授予其他主体。,自主访问控制的一个重要方面是与,授权管理策略,密切相关。所谓授权管理,是指授权和撤消授权的功能。,17,访问控制矩阵模型,利用矩阵A表示系统中主体、客体和每个主体对每个客体所拥有权限之间的关系。任何访问控制策略最终均可被模型化为访问矩阵形式:,一行表示一个主体的能力列表,,一列表示一个客体的访问控制列表。,每个矩阵元素规定了相应的主体对应于相应的客体被准予的访问许可、实施行为。,18,授权状态:,用一个三元组Q=(S,O,A)来表示。,S:是主体的集合,O:是客体的集合/安全保护的对象,A中元素A(si,oj):表示主体i对客体j的操作授权,访问模式:,包括读、写、执行、附加和拥有。,19,访问控制矩阵,A ,S1,O2,=,“,R,”,,表示主体,S1,对客体,O1,有读的权限。其余类推。,O1,O2,O3,S1,S2,S3,S4,S1,ORW,R,RW,C,S2,R,RW,C,S3,RW,RWX,C,S4,R,RWX,20,在DAC策略下,访问许可权和访问操作权是两个有区别的概念。,访问操作,表示有权对客体进行的一些具体操作,如读、写、执行等;,访问许可,则表示可以改变访问权限的能力或把这种能力转授给其他主体的能力。,21,S1的权力表(访问能力表CL),访问控制矩阵的实现机制,22,O1,的授权表(访问控制表ACL),访问控制矩阵的实现机制,23,授 权 表,访问控制矩阵的实现机制,主体,访问模式,客体,S1,Own,O1,S1,R,O1,S1,W,O1,S1,R,O2,S1,R,O3,S1,W,O3,S2,R,O1,S2,R,O3,S2,W,O3,主体,访问模式,客体,S3,R,O1,S3,W,O1,S3,R,O2,S3,W,O2,S3,X,O2,S4,R,O2,S4,R,O3,S4,W,O3,S4,X,O3,24,访问控制矩阵原语,是对访问控制矩阵执行的、不使之中断或处于不完整状态的操作。,当一个矩阵建立好之后,就意味看建立了一个具体的安全控制机制或安全控制系统。因此对访问控制矩阵的操作就意味着改变该系统的安全策略或授权情况。,在访问控制矩阵中,有六种命令操作能改变矩阵的状态,每种命令由一个,可选的条件语句,和一个,命令体,构成。,25,访问控制操作集合,原语,操作,含义,条件,1 授予权限,Enter r,into As,i,o,j,赋予主体,s,i,对客体,o,j,的访问模式r,S,i,S,o,j,o,2 撤销权限,Delete r,from As,i,o,j,将主体,s,i,对客体,o,j,的访问模式r撤销,S,i,S,o,j,o,1 结果状态: S,= S, O,= O,A,s,i,o,j,= As,i,o,j, r,A,s,h,o,k,= As,h,o,k,(h,i, k,j),2 结果状态: S,= S, O,= O,A,s,i,o,j,= As,i,o,j, - r,A,s,h,o,k,= As,h,o,k,(h,i, k,j),26,访问控制操作集合,原语,操作,含义,条件,3添加主体,Creat,Subject S,i,添加新主体,s,i,S,i,S,4删除主体,Destroy subject Si,删除主体,s,i,S,i,S,3 结果状态:S,= S ,s,i, , O,= O ,s,i,As, o= As,o (,s,S, o ,O,),As,i,o= (o ,O,),As, s,i,= (,s,S),4 结果状态:S,= S - ,s,i, , O,= O - ,s,i,As, o= As,o (,s,S,, o ,O,),O,O,27,访问控制操作集合,原语,操作,含义,条件,5 添加客体,Creat,Object O,j,添加新客体,O,j,O,j,O,6 删除客体,Destroy,Object O,j,删除客体,O,j,O,j,O,5 结果状态:S,= S , O,= O ,o,j,As, o= As,o (,s,S, o ,O,),As, o,j,= ( o ,O,),6 结果状态: S,= S , O,= O - ,o,j,As, o= As,o (,s,S,, o ,O,),O,28,约束条件,每种命令的可选的条件语句中,可以包含对该命令执行时的时间或数据约束。,数据约束:,可规定所访问的数据的值的限制。例:只准读月工资小于3500.0元的职员的信息资料。,时间约束:,规定允许读写发生的时间条件。如:银行规定职员在早8:00至下午5:00.下班后不许访问数据库。,上下文约束:,例如只读取姓名字段或工资字段是允许的,但把它们组合起来读取就需要限制。,历史记录约束:,依赖于主体先前执行的存取操作,如限定只有当主体在未曾读取过员工姓名的条件下,才具有读员工工资的权利。,29,自主访问控制特点:,根据主体的身份及允许访问的权限进行决策。,自主是指具有某种访问能力的主体能够自主地将访问权的某个子集授予其它主体。,灵活性高,被大量采用。,/自主访问控制多用于商用数据库。,自主访问控制缺点:,信息在移动过程中其访问权限关系会被改变,权限控制某些情况下不够严格。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。,30,4.3,强制,访问控制,为系统中每个主体和客体标出不同,安全等级,,这些安全等级由系统控制,不能随意更改。,根据主体和客体的级别标记来决定访问模式。,若系统认为某一等级安全属性的主体不能访问一定安全等级属性的客体,那么任何人都无法使该主体访问到客体。代表用户的应用程序不能改变自身或任意客体的安全属性。,强制访问控制可以防止一个进程生成共享文件,从而防止一个进程通过共享文件把信息从一个进程传送给另一个进程。,在军队中经常应用,支持多级安全,31,主体对客体的访问主要有四种方式:,(1)向下读(rd,read down):,主体安全级别高于客体信息资源的安全级别时允许的读操作;,(2)向上读(ru,read up):,主体安全级别低于客体信息资源的安全级别时允许的读操作;,(3)向下写(wd,write down):,主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;,(4)向上写(wu,write up):,主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。,其访问控制关系可分为:下读/上写和上读/下写,分别进行机密性控制和完整性控制,通过安全标签实现单向信息流通模式。,32,安全模型:,是一种抽象且独立于软件实现的概念模型,数据库系统的安全模型是用于精确描述数据库系统的安全需求和安全策略的有效方式。它为安全系统的设计提供指导。,安全模型应具有如下一些特点:,它是精确的、无二义性的;,它是简单、抽象的,也是易于理解的;,它仅涉及安全性,不过分限制系统的功能及实现;,它是安全策略的一个清晰的表达方式。,33,安全模型的表达形式:,非形式化的安全模型:,用自然语言对系统的安全性进行描述。其优点是直观、易于理解但不严谨,往往有二义性,表达不简洁。,形式化的安全模型:,使用数学语言精确地描述系统的安全性质或规则。优点是简洁、准确、严谨,可以从理论上进行严格的证明其安全性;缺点是抽象、难于理解。,34,1模型为系统中所有主体和客体分配一定的安全级别。,客体的安全级:,表示该客体所包含的信息的敏感程度或机密程度;,主体的安全级:,表示该主体被信任的程度或访问信息的能力。,4.3.1 Bell-Lapadula模型,35,2每个安全等级是一个,二元组,,记作L=。,密级一般定义为,四个级别,:,公开(Unclassified)、秘密(Confidential)、机密(Secret)、绝密(Topsecret)四个等级,这些等级构成一个全序关系,即TopsecretSecretConfidentialUnclassified。,简写:,绝密(TS)机密(S)秘密(C) 公开(U)。,36,范围:,根据主体和客体所涉及的信息类别将主体和客体分为一系列不同的属类,这些属类称为范围。类别之间是彼此独立,并且是无序的。,一个,安全类,仅包含一个安全等级,而它包括的类别可以任意多。,系统中主、客体的安全级由这些二元组来定义。,例:设某单位的部门范围对应的划分如下:,“,科技处,”,,,“,干部处,”,,,“,生产处,”,,,“,情报处,”,范围是其子集。,(C,科技处) = class(o1),(S,科技处,干部处)=class(u),(TS, 科技处,情报处,干部处)=class(o2),(C,情报处)=class(o3),37,模型规定当信息能从一个实体流向另一个实体时,必须满足后者的安全等级和实体所属类别都支配前者。对这种,支配定义,如下:,给定两个安全等级L1=, L2=,称:,L1支配L2成立,当且仅当C1C2且S1 S2。,记L1L2。,L1严格支配L2成立,当且仅当C1C2且S1 S2。,记L1L2。,对给定的两个安全等级L1,L2,如果L1L2和,L2L1均不成立,则L1和L2是不可比的。,38,例如:,(C,科技处)(S,科技处,干部处);,/后者支配前者,(S,科技处,干部处)(TS,科技处,情报处,干部处);,/后者支配前者,(C,情报处)与(C,科技处);,/不可比,(C,情报处)与(S,科技处,干部处);,/不可比,39,显然对于安全类集合中的任意元素A、B、C都有:,(1)自反性:AA;,(2)传递性:如果AB且BC,则AC;,(3)反对称性:如果AB且BA,则A=B。,支配关系是一种明显的偏序关系。,系统中主体对客体的访问方式有4种:,只读:指读取客体中的信息;,追加:将信息写入客体,而不读客体的信息;,执行:执行一个客体(程序);,读写:将信息写入客体,可以读客体的内容。,40,BLP模型提供了八种操作,:,操作,含义,Get access,按要求的方式初始化对一个客体的访问,Release access,终止由以前“Get”开始的访问方式,Give access,授予一个主体对客体的某种访问,41,操作,含义,Rescind access,回收由“Give”操作授予的访问方式,Create Object,激活一个客体,使其成为可访问的,Delete Object,将客体从激活状态转化为未激活状态,Change subject,security level,改变主体的当前安全等级,Change object,security level,修改客体的安全等级,42,BLP模型主要用来控制主体和客体之间的信息流动。该模型设计了一种信息流动的策略来保证信息安全性。,BLP模型信息流动的一般原则:,简单安全性。,主体s对客体o具有读访问权,当且仅当(Ao,Co)(As,Cs)。简单安全性确定了读操作的原则。对读操作来说,主体必须对客体有支配权,这一原则也称为,下读原则,。,43,星(*)特性。,主体s对客体o具有写访问权,并且仅当(As,Cs)(Ao,Co).星特性确定了写的操作原则。对于写操作来说,客体必须对主体有支配权。这一原则也叫做,上写原则,。,信息流通模式:,下读(read down):,用户级别大于文件级别的读操作;,上写(Write up):,用户级别小于文件级别的写操作;,这样保证信息从低安全级向高安全级流动,44,对于上述控制原则具体化:,若主体u和客体o的安全级满足,若class(u)class(o),则u可,“,写,”,o,若class(o)class(u),则u可,“,读,”,o.,如上述定义:,(C,科技处) = class(o1),(S,科技处,干部处)=class(u),(TS, 科技处,情报处,干部处)=class(o2),(C,情报处)=class(o3),于是:u可读o1,u可写o2,u对o3不能读,也不能写,,又如,若class(o4)=(TS,科技处),,则u不能读,也不能写。,45,Bell-Lapadula安全模型,46,强制访问控制的信息流通模式,47,Bell-Lapadula安全模型,48,BLP模型的优点:,1.是一个最早地对多级安全策略进行描述的模型;,2.是一个严格形式化的模型,并给出了形式化的证明;,3.是一个很安全的模型,既有自主访问控制,又有强制访问控制。,4.控制信息只能由低向高流动,能满足军事部门等一类对数据保密性要求特别高的机构的需求。,49,BLP模型实现,当客户与服务器相连后,客户每发送一个SQL语句给服务器,服务器首先分析、解释该语句,然后将消息发送给站点。当在某个站点上的用户要访问某个数据库对象时,首先经过强制访问控制安全检查,同时记录审计信息:再经过自主访问控制检查,确认是否有访问权限,同时也记录审计信息;然后经资源分配,进入访问具体的元组对象时,再做,“,向下读,”,、,“,同级写,”,强制访问控制检查,通过后面作具体的数据操作,并记录审计信息。,现有的DBMS产品实现的客体标记粒度基本都为元组级。,50,BLP模型限制包括如下几个方面:,1低安全级的信息向高安全级流动,可能破坏高安全客体中,机密性和数据完整性,,被病毒和黑客利用。例如下级企业向上级企业汇总财务数据时,就有可能出现这种情况。,2只要信息由低向高流动即合法(高读低),不管工作是否有需求,,防问权限太大,,这不符合最小特权原则。,51,3,可用性差。,同时也限制了高密级用户向非敏感客体写数据的合理要求,降低了系统的可用性,。,例如在企业的财务管理系统中,上级企业的密级比其下属企业的密级高,按照实际应用的上级企业的人员应该可以修改下级企业的数据;,4,部门之间信息的横向流动被禁止;,例如在企业的财务管理系统中,相同密级的企业主体之间的信息流动将不能进行;,52,BIBA模型是为保护信息的完整性而设计的。,BIBA模型同样基于主体、客体和安全等级这些概念。基中,主体和客体的概念与BLP模型是一致的,系统中每个主体和客体都打上了标签,这个标签主要功能是记载完整性等级和实体所属的类别。,BIBA模型的完整性等级由,安全等级,和,范围集合,两个部分组成。其中,安全等级主要的类型是,极重要,(crucial,C)、,非常重要,(Very Important,VI)和,重要,(Important,I),三者之间是全序关系,即CVII。范围的定义与BLP模型类似。,简写:,极重要(C),非常重要(VI),重要(I),4.3.2 BIBA模型,53,BIBA模型的基本思想是低完整性的信息不能向高完整性的实体流动。反之可以。即如果信息能从一个实体流向另一个实体时,必须满足,前者的完整性等级和实体所属类别都支配后者,。,支配关系定义如下:,给定两个安全等级I1=, I2=,称,1)I1支配I2成立,当且仅当C1C2且,S1 S2。 记I1I2。,2)I1严格支配I2成立,当且仅当C1C2且,S1 S2。 记I1I2。,对给定的两个安全等级I1,I2,如果I1I2和I2I1均不成立,则I1和I2是不可比的。,54,显然对于完整性集合中的任意元素A、B、C有:,(1)自反性:AA;,(2)传递性:如果AB且BC,则AC;,(3)反对称性:如果AB且BA,则A=B。,BIBA模型定义了四种访问模型:,访问模型,含义,Modify,向客体写信息,Invoke,只能用于主体,若两个主体间有Invoke权限,则允许这两个主体相互通信,Observe,从客体中读信息,Execute,执行一个客体(程序),55,一种广泛使用非自主安全策略是严格完整性策略,包括以下规则:,(1)完整性星规则:,一个主体能够对一个客体持有Modify的访问方式,仅当主体的完整性等级支配客体的完整性等级。,/下写,(2)援引规则:,一个主体能够对另一个主体持有Invoke的访问方式,仅当第一个主体的完整性等级支配第二个主体的完整性等级。,(3)简单完整性条件:,一个主体能够对一个客体持有Observe的访问方式,仅当客体的完整性等级支配主体的完整性等级。,/上读,56,Biba安全模型,57,Bell-LaPadula模型:保证保密性,简单安全特性(下读):一个主体只能读一个低级别或相同安全级别的对象,*-特性(上写):一个主体只能写一个高级别的或相同安全级别的对象,BLP模型信息在系统中只能,由低到高,进行流动.,Biba模型:保证完整性,Biba模型与BLP模型正好完全相反:,上读、下写,Biba模型信息在系统中只能,由高到低,进行流动.,强制访问控制的两种模型,58,在某些实际的数据库系统中,,数据的可靠性具有时间性,,随着时间的推移,数据的真实性不断降低,,,此,时,Biba模型对这种情况并不合适。,例子:假如有两只船SH1和SH2在远洋水域作业,SH1需要时刻知道SH2的位置。有两个手段获得SH2的位置信息:,可能受干扰的低可靠性的船载雷达R,每分钟可以得到一个关于SH2位置的数据;,高可靠性的卫星S,每小时能传来一个精确的位置数据。,由于数据应该尽可能准确,因此数据库系统不能仅依赖某一个信息源。信息源是该数据库系统的访问主体,其可靠性即为相应数据的完整性。,59,当两个信息源同时传来数据时,由于卫星数据的完整性级别高,因此系统只记录卫星数据。然而高可靠性的卫星数据每小时才能获得一次,虽然雷达数据每分钟都能获得一次,但雷达数据的完整性级别低,根据Biba模型,雷达数据不能更新卫星数据。而在这期间SH2的位置是不断变化的,这样随着时间的推移数据库中数据的真实性将越来越低,因此Biba模型对这种情况并不合适。,60,Biba模型对这种情况并不合适。可以将时间性质引入该数据库系统,使它满足如下要求:,(1)数据的可靠性取决于它的完整性和它的,“,年龄,”,。,(2)当不同完整性级别的数据同时到达时,只记录高完整性的数据。,(3)定义一个数据完整性的演化规则,数据的完整性级别随时间的推移而降低。比如可以规定数据的完整性每分钟降低一个级别,来自卫星的高级完整性数据1分钟后就变成中级完整性,2分钟后变成低级完整性。,61,(4)主体对数据的更新权可能与它的可靠性(即完整性)无关,仅取决于当前的数据完整性,低级可靠性的主体可以更新高级可靠性的数据,也就是说一个主体的更新权与时间有关。比如卫星数据在两分钟后就成为与雷达数据相同的完整性级别,从第3分钟开始雷达数据就可以更新卫星数据。,(5)为了能够计算SH2的航线,并能够检查数据的一致性,需要记录每个数据的产生时间,并且要把不同时刻的数据都记录下来,而不是把它们删掉。,62,4.4 多级安全,访问控制模型,在关系型数据库中应用MAC策略首先需要扩展关系模型自身的定义。因此提出了多级关系模型(Multilevel Relational Model)。,多级关系的本质特性是,不同的元组具有不同的访问等级,。,关系被分割成不同的安全区,,每个安全区对应一个访问等级,。一个访问等级为c的安全区包含所有访问等级为c的元组。一个访问等级为c的主体能读取所有访问等级小于等于c的安全区中的所有元组,这样的元组集合构成访问等级c的多级关系视图。类似地,一个访问等级为c的主体能写所有访问等级大于或等于c的安全区中的元组。,63,在关系数据库管理系统中,表、行、列、元素都是包含并接收信息的单位,都可以由主体对其进行操作,都可能作为安全客体而进行标记。当然,不同粒度的标记方法带来不同的安全性,,越高的安全等级要求具有越细的粒度,。,每个元组中的属性有一个属性标签(Attribute Label),用于标记元组中属性的访问等级,同时还有一个元组标签(Tuple Iabel),是与元组中的属性相关的访问等级中的最小元素。,如果最细粒度是元素级标签,可以提供相当的灵活性,使数据库系统达到较高的安全评测等级。但元素级标签明显增加了系统的复杂性,有可能大大降低系统的工作性能。,64,员工编号,编号等级,姓名,姓名等级,工资,工资等级,元组等级,1001,S,小美,S,3000,TS,TS,1002,S,如花,S,1000,S,S,1003,S,小刚,S,800,S,S,1004,S,小伟,TS,4300,TS,TS,1005,TS,老黄,S,5000,S,TS,1006,S,阿宗,S,900,S,S,多级关系R,65,多安全等级产生多实例的三个方面:,多实例关系:,具有相同关系名和模式,但安全等级不同的多个关系;,多实例元组:,具有相同主码,但其主码的安全等级不同的多个元组;,多实例元素:,各,个属性具有不同的安全等级,。两个具有,相同主码,值,的安全等级,是一致的,。,66,例:两种多实例的情况。,多实例属性,的多级关系,wname,C1,Range,C2,Quan,tity,C3,TC,Gun1,U,NULL,U,3000,U,U,Gun1,U,2,S,5000,S,S,多实例元组的,多级关系,wname,C1,Range,C2,Quan,tity,C3,TC,Gun1,U,NULL,U,3000,U,U,Gun1,S,2,S,5000,S,S,67,4.5 安全数据视图模型,安全数据视图模型(Secure Sea View)是Denning等人在1986年前后于斯坦福研究所开发的一个保护关系数据库系统的安全模型。模型采用强制访问控制策略和自主访问控制策略控制数据访问。,定位目标是A1级。,安全数据视图模型分为两个层次:下层是强制访问控制模型,上层是可信计算基(Trusted Computing Base,TCB)模型。,其中MAC模型是实施了BLP模型的访问监控器。TCB则定义了多级关系的概念,支持对于多级关系和视图的自主访问控制。由于TCB模型位于MAC模型的上层,其所有信息均存储在MAC访问监控器控制的客体中。,68,MAC模型概况了BLP模型与BIBA模型的规则,基于信息的安全等级构造,所有需要访问敏感信息的用户必须提供访问这些信息所要求的机密性、完整性授权。,访问等级:,由一个,保密等级,部分和一个,完整性等级,部分组成,记为。其中保密等级对应于BLP模型中的安全等级,完整性等级对应于BIBA模型中的完整性等级。,该访问等级形成一个满足偏序关系的格。此偏序关系称为支配关系。一个访问等级C1支配另一个访问等级C2,当且仅当C1的保密等级支配C2的保密等级,C1的完整性等级受C2的完整性等级支配。,4.5.1 SeaView的MAC模型,69,支配关系的形式化定义:,给定两个访问等级C1=, C2=,C1支配C2,即C1C2当且仅当X1X2,Y1,Y2。,如果上述两个不等式中任意一个是严格成立的(即或),则称C1严格支配C2。,如果C1C2和C2C1均不成立,则称C1和C2是不可比的。,客体:,定义为必须对其进行访问的信息容器,(如文件),。每个客体指派一个惟一的标识符和一个惟一的访问等级。此标识符和访问等级在客体的整个生命周期固定不变。,由MAC模型保护的客体不是数据库的抽象结构,而是底层操作系统中的单级文件,数据库信息映射到这些文件中。这允许模型用访问单级客体的方式说明并实现强制访问控制策略。,70,主体:,MAC模型中的主体是用户进程。用户进程的访问等级等价于用户的访问关系。,系统为每个用户指定一个允许执行的保密等级和完整性等级范围:,最小保密等级(minsecrecy),最小完整性等级(minintegrity),最大保密等级(maxsecrecy),最大完整性等级(maxintegrity),偶对称为主体的写等级;,偶对称为主体的读等级。显然,,读等级必须支配写等级,。,71,访问方式:,模型的强制访问控制策略限定了在数据库底层操作系统客,体,上可以执行的基本访问方式,主要是:,读:读存储在客体中的信息。,写:向客体中写信息。,执行:执行一个客体。,72,规则:,MAC模型通过一组规则集控制访问方式的执行,这些规则是:,读规则:,仅当主体的读等级支配客体的访问等级时,主体能够读客体的信息。,形式化表示为:主体s能够读客体o,仅当readclass(s)access class(o)。,/,该规则是BLP模型中不上读保密规则和BIBA模型中严格完整性策略的不下读完整性规则的综合。,73,写规则,:仅当主体的写等级受客体的访问等级支配时,主体能够向客体写信息。,形式化表示为:主体s能够写客体o,仅当writeclass(s)access class(o)。,/,该规则是BLP模型中不下写保密规则和BIBA模型中严格完整性策略的不上写完整性规则的综合。,执行规则:,仅当主体的,maxintegrity,小于或等于客体的完整性等级,且主体的maxsecrecy大于或等于客体的保密性等级时,主体能够执行客体。,执行与读规则的区别:,读规则:,可信主题允许读比自己,maxintegrity,低的数据。,执行规则:,可信主题只允许执行比自己,maxintegrity高(或等于)的数据。,74,TCB模型定义了多级关系,提供形式化的自主安全策略。,1、多级关系,多级关系:,一个多级关系是由关系模式R(A1,C1,A2,C2,An,Cn,TC)表示的。,一个多级关系中的元组可以表示为,(a1|c1,an|cn,tc),其中每个ai|ci表示属性i的值和安全等级。Tc表示整个元组的安全等级,即元组中信息的访问等级。,4.5.2 SeaView的TCB模型,75,姓名,C1,部门,C2,工资,C3,TC,鲍华,S,生产,S,1000,S,S,安林,S,情报,S,2000,TS,TS,赵明,TS,情报,TS,3000,TS,TS,职工的一个多级关系,76,在安全数据视图模型中客体的安全等级必须满足下列原则:,数据库访问等级完整性:,关系模式的访问等级必须支配其所属的数据库名的访问等级。访问等级比数据库低的用户不能使用访问等级比数据库名低的关系。单级主体不能向访问等级高的数据库中的访问等级低的关系写信息。,合理访问实例:,低级别,高级别,高级别,可访问,77,可见数据规则:,关系模式的访问等级必须受能够存储在此关系中的数据的最低访问等级支配。一个属性访问等级范围的最大下界必须支配关系模式的访问等级。该规则遵循外延的访问等级必须支配内涵的访问等级的规则,否则,关系中低于关系模式访问等级的数据对于低访问等级的用户不可用,因为,这时用户,无法访问关系模式。,单级主体不能将低访问等级数据写到高访问关系中,因为首先无法读高访问等级关系模式。,78,各级支配关系表示,:,令D表示数据库,R表示表的关系模式,r表示元组,K表示元组r中的主关键字,d表示r中不是主关键字的任一数据项),,,class(D),class(R),class(K),class(,d,),class(r),视图访问级完整性:,视图定义的访问等级必须支配视图定义中出现的所有关系和视图的访问等级。否则,由于强制访问控制策略,视图将不能访问构成此视图的关系和视图。,79,Aea View多级关系满足以下完整性,规则:,多级实体完整性,设AK是构成关系R的主,键,的属性集合,,组成主键的属性的级别,均,相等,,,同时关系的,其他属性,的级别,支配主键的级别,。R中所有元组的,主码属性值不能为空。,wname,C1,Range,C2,Quan,tity,C3,TC,Gun1,U,NULL,U,3000,U,U,80,多级参照完整性,任何,关系元组,的外键不应该为空,,除非在其参照关系中存在具有相应主码值的元组。在一个元组中,构成外码的每个属性的访问等级必须相同,并且必须支配参照元组中主码属性的访问等级。,81,2、访问多级关系,访问多级关系:,在安全数据视图模型中,多级关系的访问包括读、写(插入和删除)操作。,对于读操作,主体可以读多级关系中具有与自己相同或更低访问等级的实例。,对于写操作,由于允许对一个属性在不同访问等级上赋予不同值,模型根据主体与已存在的数据客体的访问等级分为两种情况。,(1)主体访问等级受数据访问等级支配(或不可比)。,为了不让主体得知同名数据已经存在,这一插入应被接受。为了维护完整性,原有数据也不应该删除,由此引入多实例。,82,(2)主体访问等级支配数据访问等级。或者延迟操作,通知主体出现冲突;或者执行操作,但主体不能删除或覆盖较低访问等级的数据,由此引入多实例。,83,3、自主安全策略,自主安全策略:允许说明主体对特定客体能够执行的操作,也允许说明主体对特定客体禁止执行的操作。模型通常采用空值表示否定授权。如果主体在某个客体上的授权为空,则该主体不允许在客体上执行任何操作。,主体:,用户或用户组。一个用户可以属于多个用户组。,客体,:数据库、数据库关系(视图、快照)和MAC客体。,/关系指多级关系,不同类型的客体具有不同的访问方式。,84,数据库访问方式,Null:,拒绝访问客体。,List:,获取属于一个数据库的多级关系名和模式。,Create-mrelation:,在数据库中建立一个多级关系。,Delete-db:,删除一个数据库。,Grant:,授予其他用户对数据库除Grant与Give-grant之外的任何访问方式。,Give-grant:,授予其他用户对数据库的任何访问方式。包括Grant和Give-grant,。,85,自主访问方式,Null:,拒绝对关系的任何访问。,Select:,从关系中检索元组。,Insert:,向关系中插入元组。,Update(i):,更新关系中第i个属性。,Delete-tuple:,从关系中删除元组。,Create view:,在关系之上建立一个视图。,Delete-mrelation:,删除一个多级关系。,Reference:,访问一个关系。,Grant:,授予其他用户对于关系除Grant和Give-grant之外的任何访问方式。,Give-grant:,授予其他用户对关系的任何访问方式。,86,MAC客体访问方式,Null:,拒绝对客体的任何访问。,Read:,读一个客体。,Write:,写一个客体。,Grant:,授予其他用户对于客体除Grant和Give-grant之外的任何访问方式。,Give-grant:,授予其他用户对客体的任何访问方式。,87,访问控制根据,授权,确定应该接受还是拒绝用户的访问请求。,模型允许对用户组授权。,如果肯定授权和否定授权发生冲突,模型按照,最高说明规则,解决冲突:,用户显示地说明某个客体的否定授权,则此,否定授权高,于对此用户和所属用户组的,其他任何授权,。,用户显式地说明对客体,授予某些访问方式,,则此用户,只拥有,对客体的这些访问方式,不拥有所属用户组对此客体的访问方式。,用户没有说明对某个客体的任何授权,并且其所属用户组也没有说明对此客体的任何否定授权,则此用户持有所属用户组对此客体拥有的访问授权。,4、访问控制,88,用户可以,授予与撤消,其他用户访问客体的,权限,.,具有Grant访问方式的用户,能够向其他用户和用户组授予与撤消对此客体的除Grant和Give-grant外的任何访问方式,包括Null访问方式。,具有Give-grant访问方式的用户,能够向其他用户和用户组授予与撤消对此客体任何访问方式,包括Null访问方式。,5、授权管理,89,一个用户已被授予对一个客体的Grant或Give-grant访问方式,则能撤消对此客体的任何访问方式,包括他从未授予的访问方式。从一个用户处撤消授权,并不影响对此用户可能已经复制的数据副本的授权,也不影响此用户已授予他人的权限,即,撤消是不递归的,。,当一个用户建立了一个除视图之外的数据库客体时,持有对此客体除Null之外的所有访问方式.,90,当用户建立一个视图时,只能获得用户所持有视图定义中直接涉及的每个表的访问方式,即对一个新建视图的授权集合是用户所持有的视图定义中直接涉及的所有关系的授权的交的子集。,为了读数据库中的关系、视图和约束的定义,并对数据库中客体进行操作,需要持有对数据库的访问权限。,91,安全数据视图模型,安全策略要求,是,实施自主安全策略和所有支持策略的系统安全机制,要由,实施强制安全策略的安全内核,约束。,由此,TCB使用的所有信息都必须存储在MAC模型的客体中,并对它的访问都经由强制策略控制。特别是每个多极关系,均必须存储在多级关系的客体中。由于MAC模型客体是单级的,每个多级关系必须分解,按照它们的访问等级分别存放在不同的客体中。,安全数据视图模型提供了将多级关系分解为关系模型中标准的单级关系的方法。,4.5.3 多级关系的表示,92,一、分解算法,1、将多级关系垂直分解成n个投影,R1A1,C1,R2A1,C1, A2,C2, RnA1,C1, An,Cn。,2、将每个Ri水平分解为关系Rij,(1j4),若,有4个安全等级会有4n个关系。,3、进一步水平分解,将关系Rij (2in,即,4n-4个关系)进一步分解为至多4个关系。,93,员工编号,编号等级,姓名,姓名等级,工资,工资等级,1001,S,小美,S,3000,TS,1002,S,如花,S,1000,S,1003,S,小刚,S,800,S,1004,S,小伟,TS,4300,TS,1005,TS,老黄,S,5000,S,1006,S,阿宗,S,900,S,例:表1 多级关系R,94,根据分解算法第一步,首先将多级关系分解为3个投影,分别是R1员工编号,C1,R2员工编号,C1,姓名,C2,R3员工编号,C1,工资,C3,如表2,3,4。,员工编号,编号等级,姓名,姓名等级,1001,S,小美,S,1002,S,如花,S,1003,S,小刚,S,1004,S,小伟,TS,1005,TS,老黄,S,1006,S,阿宗,S,员工编号,编号等级,工资,工资等级,1001,S,3000,TS,1002,S,1000,S,1003,S,800,S,1004,S,4300,TS,1005,TS,5000,S,1006,S,900,S,员工编号,编号等级,1001,S,1002,S,1003,S,1004,S,1005,TS,1006,S,表2 关系R1,表4 关系R3,表3 关系R2,95,根据分解算法第二步,接着将每个投影水平分解为2个关系(因为只有S、TS两个等级),分别是R11员工编号,S,R12员工编号,TS, R21员工编号,C1,姓名,S,R22员工编号,c1,姓名,TS,R31员工编号,c1,工资,S,R32员工编号,C1,工资,TS。,员工编号,1001,1002,1003,1004,1006,员工编号,1005,表5 关系R11(S级),表6 关系R12(TS级),对于多级关R11、R12表示根据编号等级不同,存在两个主码关系,分别如表5和表6所示。,96,员工编号,编号等级,姓名,姓名等级,1001,S,小美,S,1002,S,如花,S,1003,S,小刚,S,1005,TS,老黄,S,1006,S,阿宗,S,表7 关系R21,员工编号,编号等级,姓名,姓名等级,1004,S,小伟,TS,表8 关系R22,员工编号,编号等级,工资,工资等级,1001,S,3000,TS,1004,S,4300,TS,表10 关系R32,员工编号,编号等级,工资,工资等级,1002,S,1000,S,1003,S,800,S,1005,TS,5000,S,1006,S,900,S,表9 关系R31,根据姓名、工资的不同等级可得关系R21,R22,R23,R24。,97,根据分解算法第三步,最后将关系Rij(2,i,3)进一步分解为至多4个关系,分别为:,R211员工编号,S,姓名, S,R212员工编号,TS,姓名,S,R221员工编号,S,姓名,TS,,R222员工编号,TS, 姓名,TS,,R311员工编号,S,工资, S,R312员工编号,TS,工资,S,R321员工编号,S,工资,TS,,R322员工编号,TS,工资,TS,,98,员工编号,姓名,1001,小美,1002,如花,1003,小刚,1006,阿宗,表11 R211,员工编号,S,姓名,S,对于多级关系R,只有R211,R212,R221,R311,R312, R321存在元组,如表11表16。,员工编号,姓名,1004,小伟,表13 R221员工编号,S,姓名,TS,员工编号,姓名,1005,老黄,表12 R212员工编号,TS,姓名,S,99,员工编号,工资,1002,1000,1003,800,1006,900,员工编号,工资,1005,5000,表14 R311,员工编号,S,工资,S,表15 R312员工编号,TS,工资,S,员工编号,工资,1001,3000,1004,4000,表16 R321员工编号,TS,工资,TS,100,二、恢复算法,1、将单级关系补充主码等级域与属性等级域,,扩展为多级关系。,2、合并所有主码等级相同且属性名相同的属性,关系。,3、对第二步中同主码等级的关系做关于主码的,外连接操作。,4、合并第三步中获得的所有关系,可以恢复原,来的多级关系。,101,员工编号,编号等级,1001,S,1002,S,1003,S,1004,S,1006,S,表17 扩展后的R11员工编号,S关系,第一步:将单级关系各属性补充安全级别,102,员工编号,编号等级,1005,TS,员工编号,编号等级,姓名,姓名等级,1001,S,小美,S,1002,S,如花,S,1003,S,小刚,S,1006,S,阿宗,S,表18,扩展后的R12员工编号,TS,关系,表19 扩展后的R211 员工编号,S,姓名,S关系,103,员工编号,编号等级,姓名,姓名等级,1005,TS,老黄,S,员工编号,编号等级,姓名,姓名等级,1004,S,小伟,TS,表20 扩展后的R212 员工编号,TS,姓名,S关系,表21 扩展后的R221 员工编号,S,姓名,TS关系,表22,扩展后的R311员工编号,S,工资,S关系,员工编号,编号等级,工资,工资等级,1002,S,1000,S,1003,S,800,S,1006,S,900,S,104,员工编号,编号等级,工资,工资等级,1005,TS,5000,S,表23 扩展后的R312 员工编号,TS,工资,S关系,员工编号,编号等级,工资,工资等级,1001,S,3000,TS,1004,S,4300,TS,表24 扩展后的R321 员工编号,S,工资,TS关系,105,员工编号.,编号等级,姓名,姓名等级,1001,S,小美,S,1002,S,如花,S,1003,S,小刚,S,1004,S,小伟,TS,1006,S,阿宗,S,表25,将表19、表21合并,第二步:合并所有主码等级相同且属性名相同,的属
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!