返回1第四章数据库的访问控制返回2本章概要4.1访问控制策略概述4.2自主访问控制4.3强制访问控制4.4多级安全访问控制4.5基于角色的访问控制4.5安全数据视图模型4.6贾让第-沙胡模型4.7RBAC96模型返回34.1访问控制策略概述在数据库中,访问控制可以分为大类:(1)基于能力的访问控制:以访问主体为判断对象实现访问控制。访问主体能力列表中的一个元素表示为一个二元组(o,a),其中o表示资源客体,a表示一种访问控制方式。(2)基于访问控制列表的访问控制:以资源客体为判断对象实现访问控制。资源客体访问控制列表中的一个元素表示为一个二元组(s,a),其中s表示访问主体,a表示一种访问控制方式。返回44.1访问控制策略概述4.1.1自主访问控制概述自主访问控制是一种最为普遍的访问控制手段,用户可以按自己的意愿对系统的参数做适当修改以决定哪些用户可以访问他们的资源,亦即一个用户可以有选择地与其它用户共享他的资源。用户有自主的决定权。返回54.1.2强制访问控制概述强制访问控制是指主体与客体都有一个固定的安全属性。系统通过检查主体和客体的安全属性匹配与否来决定一个主体是否可以访问某个客体资源。安全属性是强制性的规定,它是由安全管理员,或者是操作系统根据限定的规则确定的,用户或用户的程序不能加以修改。返回6如果系统认为具有某一个安全属性的主体不适于访问某个资源,那么任何人(包括资源的拥有者)都无法使该主体具有访问该文件的权力。强制安全访问控制可以避免和防止大多数数据库有意或无意的侵害,因此在数据库管理系统中有很大的应用价值。返回74.1.3基于角色的访问控制概述基于角色访问控制(RBAC)模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。返回84.2自主访问控制自主访问控制基于自主策略管理主体对数据的访问,主要机制包括基于主体的标识和授权规则。这些规则是自主的,即它们允许主体将数据权限授予其他主体。自主访问控制的一个重要方面是与授权管理策略密切相关。所谓授权管理,是指授权和撤消授权的功能。返回9访问控制矩阵模型利用矩阵A表示系统中主体、客体和每个主体对每个客体所拥有权限之间的关系。任何访问控制策略最终均可被模型化为访问矩阵形式:一行表示一个主体的能力列表,一列表示一个客体的访问控制列表。每个矩阵元素规定了相应的主体对应于相应的客体被准予的访问许可、实施行为。返回10表1访问控制矩阵O1O2S1读读、写S2读、写-A[S1,O1]=“读”,表示主体S1对客体O1有读权限。其余类推。返回114.3强制访问控制为系统中每个主体和客体标出不同安全等级,这些安全等级由系统控制,不能随意更改。根据主体和客体的级别标记来决定访问模式。如绝密级,机密级,秘密级,无密级等。在军队中经常应用,支持多级安全考虑到偏序关系,主体对客体的访问主要有四种方式:(1)向下读(rd,readdown):主体安全级别高于客体信息资源的安全级别时允许的读操作;(2)向上读(ru,readup):主体安全级别低于客体信息资源的安全级别时允许的读操作;返回12(3)向下写(wd,writedown):主体安全级别高于客体信息资源的安全级别时允许执行的动作或是写操作;(4)向上写(wu,writeup):主体安全级别低于客体信息资源的安全级别时允许执行的动作或是写操作。其访问控制关系可分为:下读/上写和上读/下写,分别进行机密性控制和完整性控制通过安全标签实现单向信息流通模式。返回134.4多级安全访问控制模型在关系型数据库中应用MAC策略首先需要扩展关系模型自身的定义。因此提出了多级关系模型(MultilevelRelationalModel)。多级关系的本质特性是不同的元组具有不同的访问等级。关系被分割成不同的安全区,每个安全区对应一个访问等级。一个访问等级为c的安全区包含所有访问等级为c的元组。一个访问等级为c的主体能读取所有访问等级小于等于c的安全区中的所有元组,这样的元组集合构成访问等级c的多级关系视图。类似地,一个访问等级为c的主体能写所有访问等级大于或等于c的安全区中的元组。返回144.6贾让第-沙胡模型是一种用于关系数据库的多级安全数据模型。该模型采用与BLP模型相同的安全等级。1、多级关系的定义模型在标准关系模型中引入了安全等级标签,将一个扩展的包括安全等级关系称为多级关系,多级关系由以下两部分构成:(1)一个独立于状态的多级关系模型R(A1,C1,A2,C2,…,An,Cn,TC).其中Ai是定义在域Di上的属性,每个Ci是Ai的安全等级,TC是元组安全等级。Ci的域是一个由[Li,Hi]描述的范围,是访问等级下界Li到访问等级上界Hi的子格。TC域也是一个范围,其下界和上界分别等于属性的安全等级域的下界和上界的最小上界。4.6.1多级关系模型返回15(1)一个依赖于状态的关系实例集合Rc(A1,C1,…,An,Cn,TC)。在给定的格中,对每个访问等级c,具有一个关系实例。每个实例是形如(a1,c1,…,an,cn,tn)的元组集合。其中每个元素ai或者是域Di中的一个值,或者是Null。每个ci是小于c的特定范围的一个值。Tc是元组中属性访问等级的最小上界。姓名C1部门C2工资C3TC鲍华S生产S1000SS安林S情报S2000TSTS赵明TS情报TS3000TSTS表3职工的一个多级关系返回16姓名C1部门C2工资C3TC鲍华S生产S1000SS安林S情报S-SS表4职工关系的S级和TS级实例姓名C1部门C2工资C3TC鲍华S生产S1000SS安林S情报S2000TSTS赵明TS情报TS3000TSTS职工关系的S实例职工关系的TS实例返回一个应用实例(复习)在银行环境中,用户角色可以定义为出纳员、分行管理者、顾客、系统管理员和审计员,访问控制策略的一个例子如下:(1)允许一个出纳员修改顾客的帐号记录(包括存款和取款、转帐等信息),并允许查询所有帐号的注册项(2)允许一个分行管理者修改顾客的帐号记录(包括存款和取款,但不包括规定的资金数目的范围)并允许查询所有帐号的注册项,也允许创建和终止帐号(3)允许一个顾客只询问他自己的帐号的注册项(4)允许系统管理员询问系统的注册项和开关系统,但不允许读或修改用户的帐号信息(5)允许一个审计员读系统中的任何数据,但不允许修改任何事情。返回181.定义角色CREATEROLET1,G1,M1,S1,P1说明:T1:出纳员G1:分行管理者P1:顾客M1:系统管理员S1:审计员返回(1)GRANTupdatetable帐号,selecttable帐号(注册号)TOT1(2)GRANTupdatetable帐号,selecttable帐号,inserttable帐号(注册号),deleted帐号(注册号)TOG1(3)GRANTselecttable帐号setcheck帐号toP1,(4)GRANTcreatetable帐号,opendatabasetoM1Denyselecttable帐号TOM1(5)GRANTselecttable帐号TOS1DENYupdatetable帐号toS1192.授予权限返回3访问控制矩阵20readwritecreateT1帐号(注册号)帐号(注册号)---------G1--------帐号---------P1帐号------------------M1---------------------allS1帐号----------------------返回21本章小结本章讨论了目前数据库领域所使用的访问控制模型。自主访问控制模型控制用户访问的机制是用户鉴别和用户自定义的访问规则。该模型的特点在于灵活性强、适用性广。但无法对主体的权限传播加以控制。因此,用户可能未经授权而得到不应得到的数据。强制访问控制模型提供了基于标签的安全认证,适用于用户和客体具有多种安全等级的应用环境。该模型基于安全标签的读写策略使得数据库管理系统能够跟踪数据的流动,因而可以为木马程序问题提供一定程度的保护,但缺点在于访问策略过于严格,只能用于极少数的应用环境。返回22基于角色的访问控制模型是中性策略的访问模型,其目的在于克服现有强制访问控制模型的缺点、管理复杂性和代价。基于角色的访问控制模型将用和权限的直接指派转变为用户-角色、角色-权限两种指派,降低了数据库安全管理员的管理复杂性,能通过定义约束正确地实施访问策略。然而与自主访问控制模型和强制访问控制模型相比,基于角色的访问控制模型在角色层次和约束之间还存在不少的理论缺陷。