54
1 第 第 第 第第第第第第第

第 五 章 数据库安全策略

Embed Size (px)

DESCRIPTION

第 五 章 数据库安全策略. 1. 本 章 概 要. 5.1 安全策略的定义 5.2 安全策略语言 5.3 安全策略模型 5.4 安全策略模型特性分析 5.5 安全策略的执行 5.6 关系数据库的授权机制. 2. 安全策略: 是粗线条描述安全需求以及规则的说明,是一组规定如何管理、保护和指派敏感信息的法律、规则及实践经验的集合。. 5.1 安全策略的定义. 3. 数据库系统至少具有以下一些安全策略 保证数据库的存在安全。 确保数据库系统的安全首先要确保数据库系统的存在安全。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 五 章 数据库安全策略

1

第 五 章

数据库安全策略

Page 2: 第 五 章 数据库安全策略

2

本 章 概 要本 章 概 要

5.1 5.1 安全策略的定义安全策略的定义5.25.2 安全策略语言5.3 5.3 安全策略模型安全策略模型5.4 安全策略模型特性分析5.5 安全策略的执行5.6 关系数据库的授权机制

Page 3: 第 五 章 数据库安全策略

3

安全策略 : 是粗线条描述安全需求以及规则的说明,是一组规定如何管理、保护和指派敏感信息的法律、规则及实践经验的集合。

5.1 安全策略的定义

Page 4: 第 五 章 数据库安全策略

4

数据库系统至少具有以下一些安全策略保证数据库的存在安全。确保数据库

系统的安全首先要确保数据库系统的存在安全。

保证数据库的可用性。数据库管理系统的可用性表现在两个方面:一是需要阻止发布某些非保护数据以防止敏感数据的泄漏;二是当两个用户同时请求同一纪录时进行仲裁。

保障数据库系统的机密性。主要包括用户身份认证、访问控制和可审计性等。

Page 5: 第 五 章 数据库安全策略

5

保证数据库的完整性。数据库的完整性包括物理完整性、逻辑完整性和元素完整性。物理完整性是指存储介质和运行环境的完整性。逻辑完整性主要有实体完整性和引用完整性。元素完整性是指数据库元素的正确性和准确性。

Page 6: 第 五 章 数据库安全策略

6

安全策略语言用来描述定义不同层次的安全策略。

5.2 安全策略语言

Page 7: 第 五 章 数据库安全策略

5.2.1 5.2.1 安全策略基本元素安全策略基本元素

安全策略定义语言具有以下一些基本概念与标记主体( Subject ):系统中的活动实

体,主体在系统中的活动受安全策略控制。主体一般记为 S={s1,…,sn} 。

客体( Object ):是系统中的被动实体,每个客体可以有自己的类型。客体一般记为 O={o1,…,on} 。

7

Page 8: 第 五 章 数据库安全策略

8

类型 (Type) :每个客体都可以有自己的类型。

角色 (Role) :在系统中进行特定活动所需权限的集合。角色可以被主体激活,主体可以同时担任不同的角色。角色一般记为 R={r1,…,rn} 。

任务 (Task) :任务一般记为TK={tk1,…,tkn} 。

转换过程 (TP,Tansformation procedure) :可以是通常的读、写操作或一系列简单操作组合形成的特定应用过程。

Page 9: 第 五 章 数据库安全策略

5.2.2 SPSL5.2.2 SPSL

SPSL 是一种策略规范语言,它的主要目的是描述安全操作系统中使用的安全策略,即授权决策策略。授权决策是一个从请求到决策的映射 AD={(q,d)|q ∈Q,d ∈D} ,其中, Q 是请求集, D是决策集。

9

Page 10: 第 五 章 数据库安全策略

10

SPSL 属于逻辑语言,主要由常量、变量和谓词三部分组成。主体集 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) 。

Page 11: 第 五 章 数据库安全策略

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) 。

Page 12: 第 五 章 数据库安全策略

12

安全模型的作用是在一个安全策略中,描述策略控制实体并且声明构成策略的规则。

5.3 安全策略模型

Page 13: 第 五 章 数据库安全策略

5.3.1 5.3.1 状态机模型状态机模型

状态机模型将系统描述为一个抽象的数学状态机。在这种模型里,状态变量表示机器的状态,随着系统的运行而不断地变化。

状态转移函数是对系统调用的抽象表示,精确地描述了状态的变化情况。主体和客体被模拟为集合 S 和 O 的函数。

13

Page 14: 第 五 章 数据库安全策略

14

q0

A

下图是一个简单的状态机模型:

q1

A

B B B B

A

qs qr

A

有机状态机模型

Page 15: 第 五 章 数据库安全策略

15

开发一个状态机安全模型一般具有以下一些步骤定义与安全有关的状态变量。定义安全状态需满足的条件是静态表达式,表达了在状态转移期间,状态变量值之间必须保持的关系。

定义状态转移函数。证明转移函数能供维持安全状态。定义系统运行的初始状态,并用安全

状态的定义证明初始状态是安全的。

Page 16: 第 五 章 数据库安全策略

16

转换函数的例子: Create-object(o,c) If o ∈O Then O’=O ∪{o}and oclass’(o)=c and s∈S,A’(s,o)= ф

Page 17: 第 五 章 数据库安全策略

17

采用有限状态机为某种安全策略构造安全模型的例子:

假设安全策略为 : (1) 当且仅当用户的认证等级高于文件的

安全等级时 ,可以对文件进行读操作。 (2) 当且仅当用户的认证等级低于文件的

安全等级时,可以对文件进行写操作。 将其“翻译”成计算机语言。

Page 18: 第 五 章 数据库安全策略

18

根据上述对应关系,给定安全策略可以进一步表示:

(1) 当且仅当主体的访问等级高于客体的访问等级时,可以对客体进行读操作。

(2) 当且仅当主体的访问等级低于客体的访问等级时,可以对客体进行写操作。

Page 19: 第 五 章 数据库安全策略

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)

Page 20: 第 五 章 数据库安全策略

20

主体集 S 、客体集 O 、主体访问等级sclass 、客体访问等级 oclass 和访问模式集合 A(s,o) 都是安全模型的状态变量。系统在任一时刻的状态可定义为状态变量的集合:State={S,O,sclass,oclass,A} 。

该安全策略对应的安全状态可描述为:系统是安全的,当且仅当对于所有的 s ∈ S,o ∈ O 有

(1)If r ∈A(s,o),then sclass(s)>oclass(o)

(2)If w ∈A(s,o),then sclass(s)<oclass(o)

Page 21: 第 五 章 数据库安全策略

21

定义状态转移函数是安全策略模型构造过程中很重要的一步,描述了系统的相应变化。此处涉及的状态转移函数有前面已介绍过的 Create-object(o,c),设置主体 s 对客体 o 访问模式的Set_access(s,o,mode) ,证明状态转移函数是否正确,最后需要定义初始状态并证明其安全性。

Page 22: 第 五 章 数据库安全策略

5.3.2 Clark-Wilson5.3.2 Clark-Wilson 完整性模型完整性模型

Clark-Wilson 模型对于许多商业系统的建模更加符合实际。该模型用程序作为主体和客体之间的中间控制层,主体被授权执行某些程序,客体可以通过特定的程序进行访问。

Clark-Wilson 模型将从属于其完整性控制的数据定义为约束型数据项 (CDI) ,而将不从属于完整性控制的数据定义为非约束型数据项 (UDI) 。

22

Page 23: 第 五 章 数据库安全策略

23

Clark-Wilson 模型定义了两组过程:完整性验证过程 (IVP) 和转换过程(TP) 。

Clark-Wilson 模型采用了两个基本的方法,即所谓的严格转变 (Well-Formed Transition) 和责任分离(Segregation of Duties) 。

严格转变是 Clark-Wilson 模型中保证应用完整性的一个机制。

责任分离的目的是保证数据对象与他所代表的现实世界对象的对应,而计算机本身并不能直接保证这种外部的一致性。

Page 24: 第 五 章 数据库安全策略

24

数据完整性 Clark-Wilson 模型有两类规则:证明规则 (CR) 和实施规则 (ER) 。

实施规则是与应用无关的安全功能。 证明规则是与具体应用相关的安全功能。

Page 25: 第 五 章 数据库安全策略

5.3.3 Harrison-Ruzzo-5.3.3 Harrison-Ruzzo-Ullman(HRU)Ullman(HRU) 模型模型

HRU 模型的访问方式有两种:静态和动态。

静态访问方式有读、写、执行和拥有等。 动态访问方式有对进程的控制权、授予 /撤销权限等。

25

Page 26: 第 五 章 数据库安全策略

26

HRU 模型的操作有六条,操作后状态变换表示为 Q ├ op Q’ 。其中符号A[Si,Oj] 表示 Si对 Oj的访问权限集合, r表示某一权限,如读、写等。

(1) 授予权限命令形式:Enter r into A[Si,Oj],Si ∈S,Oj ∈O

操作顺序:S’=S,O’=O

A’[Si,Oj]=A[Si,Oj] ∪{r},

A’[Sk,Ol]=A[Sk,Ol],k ≠i,l ≠j

Page 27: 第 五 章 数据库安全策略

27

(2)撤销权限命令形式:Delete r from A[Si,Oj],Si ∈S,Oj

∈O操作顺序:S’=S,O’=O

A’[Si,Oj]=A[Si,Oj] -{r},

A’[Sk,Ol]=A[Sk,Ol],k ≠i,l ≠j

Page 28: 第 五 章 数据库安全策略

28

(3)添加主体命令形式:Create Subject Si,Si S

操作顺序: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’

Page 29: 第 五 章 数据库安全策略

29

(4)删除主体命令形式:Destroy Subject Si,Si ∈S

操作顺序:S’=S-{Si} ,O’=O-{Si} ,

A’[S,O]=A[S,O] ,S’⊂S,O’⊂O

Page 30: 第 五 章 数据库安全策略

30

(5)添加客体命令形式:Create Object Oi,Oi O

操作顺序:S’=S ,O’=O∪{Oi} ,

A’[S,O]=A[S,O] ,S⊂S’,O⊂O’

A’[S,Oi]=φ,S⊂S’

Page 31: 第 五 章 数据库安全策略

31

(6)删除客体命令形式:Destroy Object Oi,Oi ∈O,OiS

操作顺序:S’=S,O’=O-{Oi} ,

A’[S,O]=A[S,O] ,S⊂S’,O⊂O’

HRU 模型逻辑关系明确 ,操作管理方便。但是效率低下,所以必须采用一定的方法来解决提高效率的问题。

Page 32: 第 五 章 数据库安全策略

5.3.45.3.4 中国墙模型中国墙模型

中国墙模型是一种同等的考虑机密性和完整性的安全策略模型,该模型主要用于解决商业上的利益冲突问题。

引入一个布尔矩阵N=S×O 。 true , 如果主体 s 访问过客体 o

Ns,o

false ,如果主体 s 从未访问过客体o

32

Page 33: 第 五 章 数据库安全策略

33

允许主体 S 对客体 O 进行读访问,当且仅当以下任一个条件成立:

(1) 存在一个 O’ 是 S 曾经访问过的客体,并且包含O’ 的数据集与包含O 的数据集相同。

(2)对于所有曾经被 S 读取过的客体 O’,O不和客体 O’ 在同一利益冲突类内。

从条件 (1)(2) 可知,如果某个主体 S 读取了某一利益冲突类的任一个客体 O ,那么S 之后只能读取与 O 属于同一个数据集的客体。一个利益冲突类包含N 个公司数据集,那么读取这些数据集的客体至少为 N个。

Page 34: 第 五 章 数据库安全策略

34

事实上,中国墙模型将数据分为有害数据和无害数据,分别表示不可以公开的数据和可以公开的公司数据。

(3)O 是无害客体。允许主体 S 对客体 O 进行写访问,当且仅当:

(1)允许 S 对 O 进行读访问。 (2)对于所有有害客体 O’ ,当 O’ 与 O

在同一数据集中时, S 能读 O’ 。

Page 35: 第 五 章 数据库安全策略

5.3.55.3.5 信息流模型信息流模型

另一类重要的安全策略则针对客体之间实际的信息传递进行控制,其中最主要的是信息流模型。

信息流模型考虑任何形式的信息流,可以是显式或隐式,而不只是通过访问操作的直接信息流。

35

Page 36: 第 五 章 数据库安全策略

36

信息流模型 FM 定义为五元组FM=<O,P,SC, ⊕,→> ,其中:O={o1,o2,……} 为一组带标签的客

体集合,表示信息的存储,如文件、程序、变量及比特等。

P={p1,p2,……} 是进程集合,表示与信息流有关的活动实体,所有信息流是由 P 产生的。

SC={sc1,sc2,……} 是 安 全 等级集合,与互不相关的离散的信息等级相对应。系统中每个客体 oi被指派一个访问等级。

Page 37: 第 五 章 数据库安全策略

37

⊕是一个对安全等级作组合操作的二元操作符,他服从交换律、结合律,并且是封闭的。

→是一个流关系。用于决定在任何一对安全等级之间,信息是否能从一个安全等级流向另一个安全等级。

Page 38: 第 五 章 数据库安全策略

38

5.4 安全策略模型特性分析保密性

完整性

多策略 应用领域 主要优点 主要缺点

状态机模型

支持 支持 不支持 各个领域 能准确捕捉与问题相关的那些系统方面。有成熟的理论

定义状态转移函数和初始状态及其安全性证明比较困难

BLP模型

支持 不支持 军事 将操作转化为规则,支持多级安全

过于抽象,实施困难,存在隐通道

Biba模型

支持 不支持 商业 使用了层次级别 判定完整性等级和类别的标准不完善

CW模型

支持 不支持 商业军事 引入访问控制元组概念,有效地实现责任隔离

难以实现

HRU模型

支持 支持 不支持 操作系统数据库系统

使用了访问控制表来实现访问控制

效率低下

Page 39: 第 五 章 数据库安全策略

39

保密性

完整性

多策略 应用领域 主要优点 主要缺点

中国墙模型

支持 支持 不支持 商业 同等的考虑机密性和完整性,后续操作基于历史操作

限制随着主体访问客体数量的增加而增加

信息流模型

支持 不支持 各个领域 比访问控制模型的精确度要高,引入了格的概念

不能解决多安全级别信息处理的问题,流分析复杂

Page 40: 第 五 章 数据库安全策略

40

5.5.1 5.5.1 基于基于 SQLSQL 的安全策略执行的安全策略执行SQL 语言可以定义安全策略。最简单的情形就是 SQL 语言具有 GRANT 和REVOKE子构件,可以向用户授予访问权限,撤销用户访问权限。

5.5 安全策略的执行

Page 41: 第 五 章 数据库安全策略

41

例如,如果 Peter 可以分别读取name 和 salary ,但是不能同时读取这两个属性,可以采用 SQL 类型语言定义如下:

GRANT Peter READ emp.salary; GRANT Peter READ emp.name; NOT GRANT Peter READ

Together(emp.name,emp.salary);

Page 42: 第 五 章 数据库安全策略

42

如果不允许 Peter 访问薪金超过50000 元的雇员信息,可以定义如下:

GRANT Peter READ emp WHERE emp.salary<50000;

Page 43: 第 五 章 数据库安全策略

5.5.25.5.2 查询修改查询修改

查询修改 (Query Modification) 是基于 SQL 的安全策略执行机制的重要功能,其核心思想是根据约束修改查询,这种方法对于强制安全策略和自主安全策略均可有效使用。

43

Page 44: 第 五 章 数据库安全策略

44

假定 Peter 请求查询 emp 的所有元组,根据安全策略, Peter无法查询salary>=50000 且雇员不是安全部门的记录,则查询修改如下所示:

SELECT * FROM emp; 修改为 SELECT * FROM emp WHERE salary<50000 AND dept is NOT security;

Page 45: 第 五 章 数据库安全策略

45

授权机制是关系数据库实现安全与保护的重要途径。

授权机制的总体目标是提供保护与安全控制,允许授权用户合法地访问信息。

5.6 关系数据库的授权机制

Page 46: 第 五 章 数据库安全策略

5.6.15.6.1 授权规则授权规则

肯定授权 (Positive Authorization) 。 否定授权 (Negative Authorization) 。 冲突解决 (Conflict Resolution) 。 强授权与弱授权 (Strong and Weak

Authorization) 。 授权规则的传播 (Propagation of

Authorization Rules) 。 特殊规则 (Special Rules) 。 一致和完整性规则 (Consistency and

Completeness of Rules) 。46

Page 47: 第 五 章 数据库安全策略

5.6.25.6.2 GRANTGRANT 命令命令

授权机制贯穿于关系及视图动态创建、动态撤销整个过程,包括授予(GRANT) 、检查 (CHECKING) 、撤销 (REVOKE) 等动态环节。

通常,授权可以通过访问控制列表方式实现,这种方式支持撤销。

47

Page 48: 第 五 章 数据库安全策略

48

在 System R 中,任意用户可以授权创建新Table 。创建者被惟一全权授予 Table 的所有访问控制权限。如果希望其他用户共享某些访问控制,必须向各种用户授予指定的权限。可以授予的权限包括:

• READ :允许通过查询使用 Table ,包括读• 取关系元组、根据关系定义视图等。• INSERT :向 Table添加新行 (元组 ) 。• DELETE :从 Table 中删除行 (元组 ) 。• UPDATE :修改 Table 中现存数据,可以限• 制于一定的列 (属性 ) 。• DROP :删除整个 Table 。

Page 49: 第 五 章 数据库安全策略

49

授权的语法格式基本类似,可以表示为:GRANT[ALL RIGHTS|<privileges>|ALL BUT<privileges>] ON <table> TO <user-list> [WITH GRAND OPTION] 。

可以对表所有权先进行授权,或者授予指定系列的权限,或者授予明确声明以外所有权限。

Page 50: 第 五 章 数据库安全策略

50

例如,被授予者进一步向其他用户授权 A : GRANT READ , INSERT ON

EMP TO B WITH GRANT OPTION A : GRANT READ ON EMP TO C

WITH GRANT OPTION B : GRANT READ , INSERT ON

EMP TO C

Page 51: 第 五 章 数据库安全策略

5.6.35.6.3 REVOKEREVOKE 命令命令

REVOKE 的语法格式基本类似,可以表示为: REVOKE [ALL RIGHTS|<privileges>] ON <table> FROM <user-list> 。

允许 REVOKE 先前授予的权限增加了授权机制的复杂性。仅采用两个元组表示用户在表上的权限并不充分,必须同时保留授权者的身份信息,因为一般指允许用户撤销由他先前授予的权限。

51

Page 52: 第 五 章 数据库安全策略

52

例如,执行授权撤销序列后的权限: A : GRANT

READ , INSERT , UPDATE ON EMP TO C B : GRANT READ , UPDATE ON

EMP TO C A : REVOKE INSERT ,UPDATE ON EMP

FROM C

Page 53: 第 五 章 数据库安全策略

5.6.45.6.4 递归递归 REVOKEREVOKE

递归撤销现象可以通过下面的实例说明 A : GRANT ALL RIGHTS ON EMP

TO C WITH GRANT OPTION

C : GRANT ALL RIGHTS ON EMP TO D

A : REVOKE ALL RIGHTS ON EMP FROM C

53

Page 54: 第 五 章 数据库安全策略

54

对数据库的安全策略语言、策略模型、策略的执行机制做了全面的介绍,同时重点介绍了关于数据库授权策略实现机制。

选择合适的安全策略,构建相应的安全模型在数据库系统的开发应用过程中有着举足轻重的作用。安全策略及模型从集中于面向军事领域的机密性要求,转而面向商业领域的完整性要求,又发展到支持策略独立性,进而向支持多种安全策略和动态安全策略方向发展。更为主要的是,随着人们对安全威胁的认识逐步加深以及各种安全技术的不断发展,采取多种安全机制支持多种安全策略逐渐成为安全系统研究的共同特征。

小结