您好,欢迎访问三七文档
1第五章数据库安全策略2本章概要5.1安全策略的定义5.2安全策略语言5.3安全策略模型5.4安全策略模型特性分析5.5安全策略的执行5.6关系数据库的授权机制3安全策略:是粗线条描述安全需求以及规则的说明,是一组规定如何管理、保护和指派敏感信息的法律、规则及实践经验的集合。5.1安全策略的定义4数据库系统至少具有以下一些安全策略保证数据库的存在安全。确保数据库系统的安全首先要确保数据库系统的存在安全。保证数据库的可用性。数据库管理系统的可用性表现在两个方面:一是需要阻止发布某些非保护数据以防止敏感数据的泄漏;二是当两个用户同时请求同一纪录时进行仲裁。保障数据库系统的机密性。主要包括用户身份认证、访问控制和可审计性等。5保证数据库的完整性。数据库的完整性包括物理完整性、逻辑完整性和元素完整性。物理完整性是指存储介质和运行环境的完整性。逻辑完整性主要有实体完整性和引用完整性。元素完整性是指数据库元素的正确性和准确性。6安全策略语言用来描述定义不同层次的安全策略。5.2安全策略语言5.2.1安全策略基本元素安全策略定义语言具有以下一些基本概念与标记主体(Subject):系统中的活动实体,主体在系统中的活动受安全策略控制。主体一般记为S={s1,…,sn}。客体(Object):是系统中的被动实体,每个客体可以有自己的类型。客体一般记为O={o1,…,on}。78类型(Type):每个客体都可以有自己的类型。角色(Role):在系统中进行特定活动所需权限的集合。角色可以被主体激活,主体可以同时担任不同的角色。角色一般记为R={r1,…,rn}。任务(Task):任务一般记为TK={tk1,…,tkn}。转换过程(TP,Tansformationprocedure):可以是通常的读、写操作或一系列简单操作组合形成的特定应用过程。5.2.2SPSLSPSL是一种策略规范语言,它的主要目的是描述安全操作系统中使用的安全策略,即授权决策策略。授权决策是一个从请求到决策的映射AD={(q,d)|q∈Q,d∈D},其中,Q是请求集,D是决策集。910SPSL属于逻辑语言,主要由常量、变量和谓词三部分组成。主体集S、客体集O、动作集A和访问权限集SA均是SPSL的常量。SPSL的变量包括四个集合:Vs、Vo、Va、Vsa分别表示主体、客体、动作和带符号访问权限的变量集合。分别用st,ot,at和sat表示四个集合中的项。SPSL的谓词有13个:cando(st,ot,sat),decando(st,ot,sat),do(s,o,sat),done(s,o,at),fail(s,o,at),din(s1,s2),in(s1,s2),cooper(e1,e2),conflict(e1,e2),super(e1,e2),owner(e1,e2),typeof(e,t)和spof(e)。11简单的实例说明如何用SPSL描述自主访问控制策略。假定o∈O,s1∈S,s2∈S,s3∈S,g∈G,others=G-g,自主访问控制策略可表示为:客体属主访问规则:cando(s1,o,a)←owner(o,s1)。同组用户访问规则:cando(s2,o,a’)←cando(g,o,a)&in(s1,g)&in(s2,g)。其他人访问规则:cando(s3,o,a”)←cando(others,o,a’)&﹁in(s3,g)。12安全模型的作用是在一个安全策略中,描述策略控制实体并且声明构成策略的规则。5.3安全策略模型5.3.1状态机模型状态机模型将系统描述为一个抽象的数学状态机。在这种模型里,状态变量表示机器的状态,随着系统的运行而不断地变化。状态转移函数是对系统调用的抽象表示,精确地描述了状态的变化情况。主体和客体被模拟为集合S和O的函数。1314q0A下图是一个简单的状态机模型:q1ABBBBAqsqrA有机状态机模型15开发一个状态机安全模型一般具有以下一些步骤定义与安全有关的状态变量。定义安全状态需满足的条件是静态表达式,表达了在状态转移期间,状态变量值之间必须保持的关系。定义状态转移函数。证明转移函数能供维持安全状态。定义系统运行的初始状态,并用安全状态的定义证明初始状态是安全的。16转换函数的例子:Create-object(o,c)Ifo∈OThenO’=O∪{o}andoclass’(o)=cands∈S,A’(s,o)=ф17采用有限状态机为某种安全策略构造安全模型的例子:假设安全策略为:(1)当且仅当用户的认证等级高于文件的安全等级时,可以对文件进行读操作。(2)当且仅当用户的认证等级低于文件的安全等级时,可以对文件进行写操作。将其“翻译”成计算机语言。18根据上述对应关系,给定安全策略可以进一步表示:(1)当且仅当主体的访问等级高于客体的访问等级时,可以对客体进行读操作。(2)当且仅当主体的访问等级低于客体的访问等级时,可以对客体进行写操作。19将这些与安全相关的状态变量符号化:主体用S表示,客体用O表示,访问等级用class表示,主体s的访问等级表示为sclass(s),客体o的访问等级表示为oclass(o),A(s,o)为访问模式集合,则安全策略的形式化描述为:(1)sclass(s)oclass(o)=r∈A(s,o)(2)sclass(s)oclass(o)=w∈A(s,o)20主体集S、客体集O、主体访问等级sclass、客体访问等级oclass和访问模式集合A(s,o)都是安全模型的状态变量。系统在任一时刻的状态可定义为状态变量的集合:State={S,O,sclass,oclass,A}。该安全策略对应的安全状态可描述为:系统是安全的,当且仅当对于所有的s∈S,o∈O有(1)Ifr∈A(s,o),thensclass(s)oclass(o)(2)Ifw∈A(s,o),thensclass(s)oclass(o)21定义状态转移函数是安全策略模型构造过程中很重要的一步,描述了系统的相应变化。此处涉及的状态转移函数有前面已介绍过的Create-object(o,c),设置主体s对客体o访问模式的Set_access(s,o,mode),证明状态转移函数是否正确,最后需要定义初始状态并证明其安全性。5.3.2Clark-Wilson完整性模型Clark-Wilson模型对于许多商业系统的建模更加符合实际。该模型用程序作为主体和客体之间的中间控制层,主体被授权执行某些程序,客体可以通过特定的程序进行访问。Clark-Wilson模型将从属于其完整性控制的数据定义为约束型数据项(CDI),而将不从属于完整性控制的数据定义为非约束型数据项(UDI)。2223Clark-Wilson模型定义了两组过程:完整性验证过程(IVP)和转换过程(TP)。Clark-Wilson模型采用了两个基本的方法,即所谓的严格转变(Well-FormedTransition)和责任分离(SegregationofDuties)。严格转变是Clark-Wilson模型中保证应用完整性的一个机制。责任分离的目的是保证数据对象与他所代表的现实世界对象的对应,而计算机本身并不能直接保证这种外部的一致性。24数据完整性Clark-Wilson模型有两类规则:证明规则(CR)和实施规则(ER)。实施规则是与应用无关的安全功能。证明规则是与具体应用相关的安全功能。5.3.3Harrison-Ruzzo-Ullman(HRU)模型HRU模型的访问方式有两种:静态和动态。静态访问方式有读、写、执行和拥有等。动态访问方式有对进程的控制权、授予/撤销权限等。2526HRU模型的操作有六条,操作后状态变换表示为Q├opQ’。其中符号A[Si,Oj]表示Si对Oj的访问权限集合,r表示某一权限,如读、写等。(1)授予权限命令形式:EnterrintoA[Si,Oj],Si∈S,Oj∈O操作顺序:S’=S,O’=OA’[Si,Oj]=A[Si,Oj]∪{r},A’[Sk,Ol]=A[Sk,Ol],k≠i,l≠j27(2)撤销权限命令形式:DeleterfromA[Si,Oj],Si∈S,Oj∈O操作顺序:S’=S,O’=OA’[Si,Oj]=A[Si,Oj]-{r},A’[Sk,Ol]=A[Sk,Ol],k≠i,l≠j28(3)添加主体命令形式:CreateSubjectSi,SiS操作顺序:S’=S∪{Si},O’=O∪{Si},A’[S,O]=A[S,O],S⊂S’,O⊂O’A’[Si,O]=φ,O⊂O’A’[S,Oi]=φ,S⊂S’29(4)删除主体命令形式:DestroySubjectSi,Si∈S操作顺序:S’=S-{Si},O’=O-{Si},A’[S,O]=A[S,O],S’⊂S,O’⊂O30(5)添加客体命令形式:CreateObjectOi,OiO操作顺序:S’=S,O’=O∪{Oi},A’[S,O]=A[S,O],S⊂S’,O⊂O’A’[S,Oi]=φ,S⊂S’31(6)删除客体命令形式:DestroyObjectOi,Oi∈O,OiS操作顺序:S’=S,O’=O-{Oi},A’[S,O]=A[S,O],S⊂S’,O⊂O’HRU模型逻辑关系明确,操作管理方便。但是效率低下,所以必须采用一定的方法来解决提高效率的问题。5.3.4中国墙模型中国墙模型是一种同等的考虑机密性和完整性的安全策略模型,该模型主要用于解决商业上的利益冲突问题。引入一个布尔矩阵N=S×O。true,如果主体s访问过客体oNs,ofalse,如果主体s从未访问过客体o3233允许主体S对客体O进行读访问,当且仅当以下任一个条件成立:(1)存在一个O’是S曾经访问过的客体,并且包含O’的数据集与包含O的数据集相同。(2)对于所有曾经被S读取过的客体O’,O不和客体O’在同一利益冲突类内。从条件(1)(2)可知,如果某个主体S读取了某一利益冲突类的任一个客体O,那么S之后只能读取与O属于同一个数据集的客体。一个利益冲突类包含N个公司数据集,那么读取这些数据集的客体至少为N个。34事实上,中国墙模型将数据分为有害数据和无害数据,分别表示不可以公开的数据和可以公开的公司数据。(3)O是无害客体。允许主体S对客体O进行写访问,当且仅当:(1)允许S对O进行读访问。(2)对于所有有害客体O’,当O’与O在同一数据集中时,S能读O’。5.3.5信息流模型另一类重要的安全策略则针对客体之间实际的信息传递进行控制,其中最主要的是信息流模型。信息流模型考虑任何形式的信息流,可以是显式或隐式,而不只是通过访问操作的直接信息流。3536信息流模型FM定义为五元组FM=O,P,SC,⊕,→,其中:O={o1,o2,……}为一组带标签的客体集合,表示信息的存储,如文件、程序、变量及比特等。P={p1,p2,……}是进程集合,表示与信息流有关的活动实体,所有信息流是由P产生的。SC={sc1,sc2,……}是安全等级集合,与互不相关的离散的信息等级相对应。系统中每个客体oi被指派一个访问等级。37⊕是一个对安全等级作组合操作的二元操作符,他服从交换律、结合律,并且是封闭的。→是一个流关系。用于决定在任何一对安全等级之间,信息是否能从一个安全等级流向另一个安全等级。385.4安全策略模型特性分析保密性完整性多策略应用领域主要优点主要缺点状态机模型支持支持不支持各个领域能准确捕捉与问题相关的那些系统方面。有成熟的理论定义状态转移函数和初始状态及其安全性证明比较困难BLP模型支持不支持军事将操作转化为规则,支持多级安全过于抽象,实施困难,存在隐通道Biba模型支持不支持商业使用了层次级别判定完整性等级和类别的标准不完善CW模型支持不支持商业军事引入访问控制元组概念,有效地实现责任隔离难以实现HRU模型支持支持不支持操作系统数据库系统使用了访问控制表
本文标题:数据库安全策略.
链接地址:https://www.777doc.com/doc-1397237 .html