崔明义
( mycui369@126.com)
计算机应用技术 2007级研究生
1,数据库安全性概述
2.安全数据模型与多级安全数据库
3.计算机系统与数据库系统的安全评估标准
4.分布式数据库的目录结构和管理
5.分布式数据库中权限保护和用户识别分布式数据库的安全性与目录管理第 7章
两个方面
– 保密性:即“私有”,控制属于自己的数据,包括数据的收集、存储、处理、传输和使用
– 安全性:保护保密数据不被非法使用
扩展来说
– 保障 DB数据的完整性(物理、逻辑和元素完整性)
– 保障 DB数据的保密性
身份识别,访问控制,审计,隐蔽信道攻击、语义保密性等
– 保障 DB数据的可用性
防止硬件系统引起的数据库破坏
及时休复上述破坏
拒绝和清除数据库垃圾
1.1 数据库安全性的概念
1 数据库安全性概述
三个方面
– 数据存储在各个站点上存在的不安全因素
– 访问各个站点上数据存在的不安全因素
– 数据在各站点之间传输时存在的不安全因素
综合起来分析,不 安全因素有:
– 黑客攻击(猎取用户口令、伪装、隐蔽通道、特洛伊木马、程序蠕虫、攻击电子邮件、突破防火墙等)
– 病毒(病毒种类 10几万种、破坏性更强、互联网环境有利于传播)
– 网络环境的脆弱性
OS安全
DBMS安全
网络协议安全( TCP/IP协议一开始没有考虑安全)
1.2 分布式数据库的不安全因素
1 数据库安全性概述
DDB安全需求
– 安全环节
各站点上存储安全,本地 /远程访问安全,传输安全
– 受破坏时的表现
非法用户对 DB的访问; 执行了不正确的修改; DB一致性,
完整性被破坏,DB中垃圾堆积,使 DB不可用;数据库中数据的机密被泄漏
– 提供服务
DB有保密性,数据加密
DB有一致性
DB有可用性,防止 /及时修复错误造成的恶意破坏
对 DB变化做跟踪记录
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述
安全层次
– 物理层
– 用户层
– OS层
– 网络层
– 数据库系统
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述物理层
保护数据不受侵入者的物理破坏,传统方式用锁和钥匙等
保护不受洪水,电力故障等
– 数据恢复
保护磁盘不被偷窃,清除,物理损坏等
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述用户层
防止保密字被盗,偷看
主要的管理方法,
– 经常变换保密字
– 使用不可猜测的保密字
– 日志所有非法的访问
– 数据审计
– 仔细雇用人员
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述
OS层次的安全
防止非法登录
文件层访问保护 (通常对 DB安全作用不大 )
防止,超级用户,的不正确使用
防止高级别优先权的指令的不正确使用
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述网络层安全
每个站点必须保证是与可信赖的站点通信
链路必须保证没有被窃听和篡改
方法,
– 基于保密字的协议 (password-based),
– 密码学 (Cryptography)
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述数据库系统层
假定在 OS,网络,人员,物理层都是安全的
数据库安全是,
– 每个用户仅仅可以读 /写部分数据
– 用户可能对整个文件或关系有权,也可能仅仅只对文件或关系的一部分有权
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述用户帐户
DBA为用户创建一个帐号和口令
每次用户登录都要输入帐号和口令
保持数据库用户的账号和口令痕迹是必要的,可以通过建立一个加密表来实现
– 每创建一个用户在加密表中添加一条记录
– 每取消一个帐户,就从表中删除一个相应的记录
保持用户和站点的操作痕迹也是必要的
– 从用户登录开始,直到退出为止,这一段时间内的所有数据库交互记录都要记录下来,特别是更新操作,一旦数据库被篡改,就能知道是哪个站点的哪个用户进行的。
1.4 分布式数据库的用户帐户和数据审计
1 数据库安全性概述数据审计
也可以通过对系统日志的扩充来记录用户和相关操作的信息
系统日志包括对分布式数据库的实施的每一个操作的入口项,事务故障和系统故障时就需要利用这些记录对数据库进行恢复
如果怀疑出现了对数据库的任意篡改,就可以执行数据库审计
– 审计扫描一段时间内的日志,以检查所有作用于数据库的存 取动作和操作
– 当发现一个非法的或未授权的操作时,DBA就可以确定执行这个操作的帐号
数据库审计对于敏感性数据库非常重要,比如银行数据
用于安全性的数据库日志,也叫审计跟踪
1.4 分布式数据库的用户帐户和数据审计
1 数据库安全性概述
主体 (Subject)
– 引起信息流动或改变系统状态的主动实体,如用户,程序,进程
客体 (Object)
– 蕴含或接收信息的被动实体,信息的载体,如 DB,表,记录,视图,
属性等
可信计算基
– 实现安全保护机制的集合体(硬件、软件等)
域
– 主体有能力存取的客体集合
安全级 (Security Level)
– 主体和客体的访问特权,一般主体安全级表示主体对客体敏感信息的操作能力,客体安全级表示客体信息的敏感度
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库
最小特权原理
– 主体应该授予能够完成任务所需的最小存取权
访问监控器
– 监控主体和客体之间授权访问关系的部件
信道
– 系统内的信息传输通路
隐蔽信道 (Covert Channel)
– 进程以危害系统安全的隐蔽方式传输信息的通信信道
自主访问控制 (Discretionary Access Control)
– 基于主体身份或主体所属组的身份或二者结合来限制对客体访问的方法,具有访问权的主体能自行决定其访问权直接或间接转授给别人
强制访问控制 (Mandatory Access Control)
– 基于主体与客体各自所具有的 敏感度标记 的控制关系来决定主体对客体的访问,标记是由系统安全员指派,用户不能随意修改,更不能转让
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库
敏感度标记
– 表示客体和主体的安全级的一条信息。可信计算基使用它确实是否进行强制访问控制
数据库的安全策略
– 根据用户需求、安装环境、建立规则和法律等方面的限制来制定的,用来描述访问规则和访问特征的关系
– 有四类策略:安全管理策略、最小特权策略、访问控制分类策略、访问控制策略
形式化安全保护策略模型
– 安全保护策略的完整精确描述
安全保护策略模型
– 安全保护策略的非形式化描述
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库权限控制
当主体访问客体时,要进行访问的合法性检查,
,知必所需” 原则,限制用户只能知道授权他知道的那些数据对象 (最小特权原则 )
数据库部分的权的形式,
– 读权 - 允许读,但是不能修改数据
– 插入权 - 允许插入新数据,但不能修改已存在的数据
– 修改权 - 允许修改,但不能删除数据
– 删除权 - 允许删除数据
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
更新数据库模式权的的形式,
– 索引权 - 允许创建和删除索引
– 资源权 - 允许创建新关系
– 修改权 - 允许增加或删除关系中的属性
– 删除权 - 允许删除关系
权与视图
– 用户可以将某个权授给视图
– 视图可以通过限制用户访问的数据而加强数据库的安全性
– 关系层和视图层的安全组合可以精确地限制用户只对其应用需要的数据访问
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库权限控制授权与收权
Grant 语句
– Grant <权 > To <用户 > With Grant Option
Revoke 语句
– Revoke <权 > From <用户 >
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库授权方式
静态授权
– 检查功能
隔离功能:保证用户只访问已授权的数据对象
控制访问:保证用户只能按他已得到的访问权的访问方式存取数据,不得越权
– DBMS必须要确定不同用户对不同数据对象的存取权
数据对象的粒度由系统规定
数据对象命名唯一
DBA拥有访问全部数据对象的全权
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
– 矩阵法
称作安全矩阵法或存取检查矩阵法
O代表数据对象,U代表用户
各种存取权限
– R:读; U:修改; I:添加; D:删除元组; DR:删除关系
矩阵 S的元素 Sij=S(Ui,Oj)表示用户 Ui对数据对象
Oj的存取权,与数据对象的值无关,
矩阵法简便有效,OS的存取检查中广泛使用
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
R,D……R,URUn
..……......
..……......
R,DR……RR,UU2
R,I……R,DR,DU1
Om……O2O1
数据对象用户安全矩阵 S
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
按行存储法
– 按用户存储的权利表方法。 用户 Ui有一由偶对( Oj,Sij)组成的一维表行
按列存储法
– 按数据对象存储的权利表方法。数据对象 Oj
有一由偶对( Uj,Sij)组成的一维表列
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术
锁钥实现法
– 矩阵法中按行存储与按列存储方法的结合
– 每个用户 Ui设立一个钥表 {(O1,K1),(O2,K2),..,(Om,Km),}
– 每个数据对象 Oj设立一个锁表 {(L1,P1),(L2,P2),..,(Ls,
Ps),}
– Ki:保密钥; Li:保密锁; Pi:存取权集合
– 锁钥表由数据安全子系统管理
– 若 Ui对 Oj存取权 Pi时,查其 Kj是否能与 Oj中的某一 Lk配对,若存在这样的 Lk,使 Kj=Lk,且 Pi? Pk,则批准存取,
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术
口令实现法
– 将锁钥法中的钥匙直接交给用户,则称口令法
– 面向数据对象
每个数据对象有一个存取口令,用户通过出示其存取口令来访问数据对象,安全表集中管理,系统实现简单
– 面向用户
每个用户或用户组一个口令,口令表中存放该口令可以访问的对象列表
简单口令表
划分安全级别的口令表
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术面向用户的简单口令系统
O1,O2,O9,O10PWn
……
O5,O7,O9PW1
能存取的数据对象口令
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库划分安全级别的口令表
12PWn
………
75PW2
43PW1
1010PW-DBA
WriteRead口令
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
…
t13
74t12
t11
43关系 1
WriteRead
T23
1010T22
T21
74关系 2
WriteRead
12关系 3
WriteRead
关系及元组的安全级表
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
结论
– DBA所持口令的级别最高,可读写全部关系和元组。
– 持有口令 PW1的各用户可读写关系 1中除元组
t12之外的所有元组及整个关系 3
– 持有口令 PW2的各用户可读写除元组 t22之外的关系 2、关系 1和关系 3的全部元组
– 持有口令 PWn的各用户,只能读写关系 3
动态授权方式
– 用户对自己生成的关系拥有全权,通过授权和收权语句完成对数据开放,保密的存取权授予 (Grant,
Revoke)
– 访问表 (AT)法
Userid,接受方用户; oname,授予的数据对象
操作类型,R,Read; U,Update; I,insert; D,delete; DR,
drop
Type:对象类型,t是表,V是试图
Grantor,授予方用户
操作类型,t,Time; g,转让,Y,允许 ; N,不允许 ; opt,限制,
all,所有属性都允许,none,所有属性都不允许,some,某些属性允许
– 视图法(略)
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
N-N-N-NoneN-AllY40CrempX
N30N30N30AllN30AllY30BrempX
Y20Y20Y20AllY20AllY20ArempC
N-Y10Y10NoneN-AllY10ArempB
Y0Y0Y0AllY0AllY0-rempA
gtgtgtoptgtoptgt
drdiurgrantortypeonameuserid
动态授权方式的存取表 AT
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
发展历史
– D.E.Bell和 L.J.La Padula 于 1973年模拟军事安全策略创建的计算机系统安全模型,74年改进,76年用于
Multics操作系统
形式化定义
– 状态机模型
它形式化定义了模型中的概念,证明了其中的定理和结论,
并表明系统可通过数学推导证明其自身的安全性
– 系统状态
状态 v?V,V=(B? M? F? H)
B:当前存取集,B? (S? O? A),S,主体集 ; O,客体集 ;A,访问方式集合,有 Read(R),Write(W),Execute (E),Append (A)
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
存取控制矩阵
M=
m11 … m 1n
mn1 … m nn
…,m
ij?A 表示 Si主体对客体 Oj的访问权集
F,安全级函数,有三个分量
Fn:主体最大安全级函数
Fc:主体当前最大安全级函数
Fo:客体安全级函数
H,当前客体层次结构
H(O),以 O为根的树中客体集合
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
– 状态转换
规则?,R? V D? V
R? V,系统中给请求定义的请求 -状态对集合
D? V,系统中给请求定义的判定 -状态对集合
R,请求集 D,请求的输出集 {yes,no,?,error}
Yes:请求被执行; No:请求未执行;?:应用规则时遇到意外情况; error:应用规则时遇到错误
模型公理
– 简单安全特性
V=(b,M,f,H) 满足简单安全特性,当且仅当对任意 b=(s,o,x’)
B,有
– x’=e或者 a
– 或者 x’=r或者 w 并且 fn(s) >= fo(o)
即主体读写或访问客体,要求 主体的最大安全级别 >= 客体的安全级别
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
–*特性
V=(b,M,f,H) 对以主体集 S’? S 满足 *特性,当且仅当对任意 b=(s,o,x’)? B
–x’=a? fc (s) <= fo (o)
–x’=w? fc (s) = fo (o)
–x’=r? fc (s) >= fo (o)
S’是不可信主体
该特性用以防止不可信主体引起的信息从高安全级向低安全级的非法流动
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
–自主安全特性
V=(b,M,f,H)满足该特性,当且仅当对每个 b=(si,oj,
x’)?B,x’? Mij
Si对 Oj可执行的读写访问集只能是 Mij所允许的集合
–兼容特性
客体层次结构 H保持兼容特性,当且仅当对任意 Oi,
Oj?O,有 Oj? H(Oi),fo(Oj) >= fo(Oi),
用于保持客体的安全级别是向树叶方向增高
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
1991年 Jajodia和 Sandhu提出的一种实现强制访问控制的 RDB
系统
DAC和 DAC
– 自主访问控制,在关系上授权和收回特权
– 强制访问控制,在安全类别基础上,对数据和用户进行分类
基础
– 主体集 S,客体集 O
– 每个主体 s,存在固定的安全类 class(S)
– 每个客体 o,存在固定的安全类 class(O)
– 简单安全特性,if class(O) <= class(S) 时,S可以读 O (下读 )
– *特性,if class(S) <= class(O)时,S才可以写 O ( 上写 )
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
基本概念
– 安全标记
基于标记的安全 DB中,信息流动策略定义为一个格阵 (SC,?)
– SC,安全类的有限集
–?,定义在 SC上的二元偏序关系
每个安全类定义为 (level,Scope)
– level,密级,分为绝密 (TS),秘密 (S),机密( C),普通( U)
– Scope,领域
当 A? B时,允许 A类信息流向 B类,
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
– 客体安全标记
为实现强制访问控制,对数据进行标记,按粒度分为三级
– 基于元组的标记
(A1,A2,…….,An,TC)
Ai,关系的每个属性
TC,元组分类属性
– 基于主键的标记
(A1,C1,A2,…….,An,TC)
Ci,与每个属性 Ai相关联的分类级别属性
– 基于每个属性的标记
(A1,C1,A2,C2,…….,An,Cn,TC)
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
– 主体安全标记
由系统安全员指派给用户,也是用户向系统登录时使用的安全标记,一个用户可以申请不同的许可证,
– 读写策略
当且仅当 Level_o <= Level_s,并且 Scope_o?
Scope_s 时,主体才能读客体
当且仅当 Level_o = Level_s,并且 Scope_o =
Scope_s 时,主体才能写客体
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
基于标记的多级安全关系
– 对关系的扩展
– 将关系 R(A1,A2,…….,An) 扩展为
R(A1,C1,A2,C2,…….,An,Cn,TC),
Ci是 Ai的定义域,由区间 [Li,Hi] 表示从 Li到 Hi的访问类子格,
TC是整个元组的安全标记,由区间
[ [lub{Li:i=1,…,n}],[lub{Hi:i=1,…,n}] ] 表示,
– 关系实例
r (A1,C1,A2,C2,…….,An,Cn,TC)
– 关系实例中元组
t (a1,c1,a2,c2,…….,an,cn,tc)
ci?[Li,Hi],tc=lub(ci,i=1,2,…,n)
– 不同级别的主体对关系实例有不同的视图
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
–多级安全的读写规则
主体与客体都被标记,并遵循 Bell-La Padula模型
主体只能读其级别等于或小于其登录标记 (许可证 )的元组 下读
主体写时,其登录标记也随之记录到所写元组中,
成为该元组的安全级别,并且只能写入级别等于或大于其登录标记的元组 上写
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
(a) EMPLOYEE:原来的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U 40000 C Fair S S
Brown C 80000 S Good C S
(b) EMPLOYEE:具有许可证级别 C的用户所看到的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U 40000 C null C C
Brown C null C Good C C
(c) EMPLOYEE:具有许可证级别 U的用户所看到的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U null U null U U
(d) EMPLOYEE,Smith元组的多重实例
Name Salary JobPerformance TC
Smith U 40000 C Fair S S
Smith U 40000 C Excellent C C
Brown C 80000 S Good C C
计算机系统的安全标准
– 1983年美国防部桔皮书 <可信计算机系统评估标准 >
TCSEC
– 1990年欧洲白皮书 <信息技术安全评估标准 > ITSEC
– 美国、加拿大和欧洲四国联合研制的 <信息技术安全评测公共标准 >CC
– 1994年我国 <中华人民共和国计算机系统安全保护条例 >
– 1999年我国 GB17859-1999<中华人民共和国计算机信息系统安全保护登记划分规则 >
TCSEC将安全分为四类 7个级别
– D类,最低安全级别,只有一个级别 D级
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准
– C类:自主保护类,基于主体身份来限制对客体访问,主体可自主地决定其权限的授与
C1级:自主安全 (自主存取控制,审计 )
C2级:可控存取 (比 C1更强 )
– B类:强制保护类,基于主体与客体各自所具有的敏感度标记的控制关系来决定主体对客体的访问
B1级:标记安全 (强制存取控制,敏感标记 )
B2级:结构化保护 (形式化模型,隐蔽通道约束 )
B3级:安全域保护 (安全内核,高抗渗透 )
– A类:验证保护类
A1级:可验证保护,形式化安全验证,隐蔽通道分析
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准形式化安全验证,
隐蔽通道分析可验证保护A1验证保护等级A4
安全内核,高抗渗透能力安全域保护B3
形式化模型,隐蔽通道约束结构化保护B2
强制存取控制,敏感度标记标记安全保护B1强制保护等级B3
比 C1级更强的自主存取控制,审计功能可控存取保护C2
自主存取控制,审计功能自主安全保护C1自主保护等级C2
最小安全保护D最低保护等级D1
主要特征安全等级
TCSCE的安全等级与主要特征表
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准
DBMS的安全评估标准
– 应与 OS有相同的安全级别
– 1991年美国国家计算机安全中心根据 TCSEC制订紫皮书 <可信计算机系统评估标准的可信 DBMS说明
(TDI)>
– DBMS的安全也分四类,7级,25条评估标准
D级,低级安全保护
C1级:自主安全保护
C2级:受控存取保护
B1级:标记安全保护
B2级:结构化保护
B3级:安全域保护
A1级:可验证保护
3.2 DBMS的安全评估标准
3 计算机系统与 DBMS的安全评估标准
* - - - - -
* * * * * -
* - - - - -
* - * * * * *
24
25
26
27
安全性能用户指南保安设施手册考核文件设计文件文件
* * * - - -
* - - - - -
* * * * * *
* * * *
* * *
* * -
* - *
* -
*
15
16
17
18
19
20
21
22
23
体系结构系统的完整性完全考核设计规范与验证隐蔽通道分析可信设施管理配置管理恢复可信分配保证
* * * - - -
* * * * -
* * -
12
13
14
标示与鉴别审计可信路径责任
* * - - * - -
* - - - -
* * - -
* - - -
* - - -
* - - -
* - - -
* - - -
* * - -
* - -
* - -
1
2
3
4
5
6
7
8
9
10
11
自主访问控制客体重用标记标记的完整性标记信息输出多级设备输出单级设备输出标记的硬拷贝输出强制访问控制主体安全表示设备标记安全策略
D C1 C2 B1 B2 B3 A1序号安全评估指标类别不同安全级别对安全评估指标的支持
当前流行的几种 RDBMS安全机制的共性
– 权限 (Privilege)和授权 (Authorization):
Grant和 Revoke
– 角色 (Role)
系统角色:系统预先定义
用户定义角色:命令方式或过程调用方式定义
– 身份认证 (Authorization)
为确认某人是他自称的那个人,检查他的合法性
身份认证一般有三个级别
– 系统登录认证,OS检查
– 数据库连接,DBMS验证
– 数据库对象使用,DBMS核实其对数据对象的存取权限
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
OS或 NOS
验证身份
DBMS
验证身份
DBMS
验证权限用户名
/口令登陆 OS
或 NOS
登陆
DBMS
访问
DB
身份认证的三个级别
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
– 自主访问控制
采用存取矩阵模型实现自主访问控制
描述用户对 DB级其对象的访问权限通过 Grant语句建立
– 审计 (Auditing)
固定方式:系统自动对其进行审计
选择方式:审计内容由用户 (包括 DBA)设置
– 用作安全的视图,存储过程和触发器
视图:过滤掉需要保密的列
存储过程:为实现某一功能的一组 SQL语句
触发器:有事件触发执行的一种特殊的存储过程
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
流行 RDBMS在安全机制方面的努力与改进
– 目前系统符合 TCSEC的 C1或 C2级要求
– ORACLE公司的 Trusted Oracle是多级安全服务器
强制访问控制:任意用户访问 DB前,对其进行强制访问控制
使用标签,DB中每一行都有一个安全标签,表示该行数据的敏感度
用户可写数据标签 = 用户当前任务的敏感度标签
(同级写 )
用户可读数据标签 <或 = 用户当前任务的敏感度标签 (下读 )
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
– Sybase和 TRM合作开发的符合 TCSEC的 B类标准安全 SQL服务器
B1版本,B1级安全的 UNIX上运行
B2版本:据称可在裸机上运行
– DB2对用户身份验证的改进
Client类型:验证在激活应用的服务器上进行
Server类型:在数据库所驻留的服务器上进行
分布式数据库服务器,在安装了 DDCS( 数据库管理和分布数据库连接服务 )的网关上进行,若验证为 DCS类型,验证被传递到主机 DBMS,若数据访问不涉及 DDCS,则在数据库驻留的服务器上对身份验证
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准国内外较著名的 MLS DBMS
名称 安全等级 标记粒度 说明
SeaView A1 元素级 原型系统
ASD A1 元组级 原型系统
LDV A1 元素级 原型系统
Trusted Oracle B1 元组级
Sybase SQL Secure
Server
B1 元组级
SDM3 B2 元素级 B2级部分功能
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
数据库目录 (Database Catalog)
– 也称数据字典或者原数据
– 它是一个“微小 DB”,描述 DB中数据的数据
数据库目录的作用
– 外部对数据库的操作
定义数据对象,查询,添加,删除,更新数据等
– 内部数据库的运作
事务管理,授权检查,并发控制,故障恢复、命令翻译等
分布式数据库目录
– 数据分布的透明性、各站点的自制性、分布式事务运行和管理都与目录有关
– 分布式数据库的目录也构成一个分布式数据库,比集中式数据库更加复杂
4.1 分布式数据库目录的重要性
4 分布式数据库的目录结构和管理
分布式数据库目录的内容
– 全局模式描述
– 分片模式描述
– 分布模式描述
– 局部名称映射
– 存取方式描述
– 数据库统计信息
– 一致性约束
– 状态信息
– 数据表示
– 系统描述
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理
目录的用途
– 设计应用
– 翻译应用
– 优化处理
– 运行监督
– 系统维护
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理系统目录数据库管理员 应用程序员 最终用户安全授权子系统编译器预编译器 应用程序报告生成器完整性约束实施器查询优化器全局数据库控制器通信子系统人员接口
DBMS及软件接口
组织方式
– 独立式:利用 OS提供的文件管理功能建立和维护目录信息
– 分离式:利用 DBMS建立和维护目录信息,
但其用户界面和功能均独立于 DBMS
– 嵌入式,DBMS与目录信息一体化,即数据目录系统作为 DBMS的子集,DBMS通常应用该方式
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理网络目录全局外模式目录局部外模式目录全局概念模式目录局部概念模式目录内模式目录 局部数据库
DDBS目录系统的逻辑结构
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
逻辑结构
– 网络目录
含有运行,优化 DDB的信息,包括通信线路的有关参数,各站点 CPU的工作负载,磁盘空间占有状态,
语言配置,处理功能等
– 全局外模式目录
数据结构,存储位置,划分准则,完整性,安全性控制,数据映像及存取路径,各站点软硬件特征
– 全局概念模式目录
全局关系,公共过程等,以反映 DDB的整体观念,提供唯一的系统映象
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
– 局部外模式目录与局部概念模式目录
与全局外模式和全局模式目录类似,但包含的信息仅涉及各自站点的处理对象,与其它站点无关
– 内模式目录
DDBS的局部存储描述,与集中式系统完全相同,
目的是合理地组织物理数据库,以提高运行效率
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
目录管理系统
– 在网络 OS和 DDBMS的支持下实现对 DB目录进行自动管理,并保持其在动态变化过程中数据目录的一致性和有效性
– 功能模块
目录定义
目录装入
目录查询,更新
目录维护
报告生成
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
目录的分布方式
– 集中式
单一主目录方式
分组主目录
– 全复制式目录
每个站点存放一个全局目录
– 局部式目录
每个站点只存放局部目录
– 混合方式
集中与局部混合
全复制与局部式混合
混合的关键是目录的划分
4.4 DDB目录的分布方式
4 分布式数据库的目录结构和管理
站点自治
– 允许每个局部用户在与全局无关的前提下建立和命名其自己的局部数据,并允许若干用户共享这些数据的权利
允许用户在各自站点独立定义数据
允许不同用户在自己站点对同一数据命名以不同的名字
允许不同站点上的不同用户使用相同名字访问不同数据
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
命名机制 (System R为例,有两种命名机制)
– 系统范围名
4部分组成:
– 创建对象的用户标识符
– 用户所在站点名
– 对象名
– 对象的源站点名
User-1@shanghai.EMP @beijing
–,@”是站点名的前置分隔符
–,,” 是对象名的前置分隔符
– 该例表示上海站点的用户 User-1在北京站点上创建了一个 EMP
的全局对象名
– 打印名
系统范围名的速记名,1,2,4项可缺省,3不可省略
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
目录分布策略
– 在每一对象的源站点存放一个描述该对象的目录项
– 在对象副本所在的每一个站点设置该对象相应的目录项
目录分布特点
– 避免了目录的全复制,各站点可以自主定义对象
– 站点不需维护不是其创建或不在那里存放的对象描述,即目录信息
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
DDB中给予每个站点自治性的程度
– 没有任何自治性:全局 DBA的功能与集中式 DBA没有多少差别
– 完全站点自治,全局 DBA功能有限,因为每个站点都是独立管理的,两个站点间共享数据是其协商的结果
激活与保护站点之间的通信,重要的是要保证
– 通信线路另一侧是所要的站点,通过建立一个识别协议来实现
– 没有入侵者能读取或操纵两个站点之间交换的报文,
要有保护报文的保护机制,最好是用密码机制
5.1 分布式数据库中的权限保护
5 分布式数据库中的权限保护和用户识别
权限规则的分布
– 全局复制
和全局复制目录相似,允许在编译时,或者执行开始时检验权限,能较早发现用户是否是合法访问
– 将权限规则分配在对象所属的站点
此法与站点自治一致,但是用户权限检验只能在编译或执行的某个中间阶段通过访问数据实现
DDB中要增加“移动”对象的权
– 分布式数据库中除了读出、插入、创建和删除的权限,还有移动对象的权限,从一个站点移动到另外一个站点
– 移动对象的权 < 插入和删除的权
5.2 分布式数据库中权限规则的分布
5 分布式数据库中的权限保护和用户识别
用户识别
– 原则上说用户可以在 DDBS内的任一站点被识别
全复制口令
– 口令可以在 DDB的所有站点中复制,缺点是危害口令的保密性
,家 乡”站点
– 每个用户可以有一个“家乡”站点,在那儿对其识别
,穿越”
– 限制每个用户只在家乡站点登录并识别
优点:用穿越功能使在远程登录的用户能把它们的终端连到其家乡站点识别
认为用户识别比 Data和 Program更为“静止”,即用户常常在同一个站点访问 DDB
5.3 分布式数据库中的用户识别和分类
5 分布式数据库中的权限保护和用户识别
用户分类
– 用户分类是为了简化处理权限的方法及减少存储的信息,每类中的用户全都具有同样的特权
– 自然分类
根据数据库数据在不同站点中的分布考虑例,站点 1的全部用户
– 用户组中包含来自多个站点用户
与“纯粹”站点自治相对立
要考虑“该组访问权信息存放何处”类问题
5.3 分布式数据库中的用户识别和分类
5 分布式数据库中的权限保护和用户识别总 结
数据库安全性概述
安全数据模型与多级安全数据库
计算机系统与数据库系统的安全评估标准
分布式数据库的目录结构和管理
分布式数据库中权限保护和用户识别
( mycui369@126.com)
计算机应用技术 2007级研究生
1,数据库安全性概述
2.安全数据模型与多级安全数据库
3.计算机系统与数据库系统的安全评估标准
4.分布式数据库的目录结构和管理
5.分布式数据库中权限保护和用户识别分布式数据库的安全性与目录管理第 7章
两个方面
– 保密性:即“私有”,控制属于自己的数据,包括数据的收集、存储、处理、传输和使用
– 安全性:保护保密数据不被非法使用
扩展来说
– 保障 DB数据的完整性(物理、逻辑和元素完整性)
– 保障 DB数据的保密性
身份识别,访问控制,审计,隐蔽信道攻击、语义保密性等
– 保障 DB数据的可用性
防止硬件系统引起的数据库破坏
及时休复上述破坏
拒绝和清除数据库垃圾
1.1 数据库安全性的概念
1 数据库安全性概述
三个方面
– 数据存储在各个站点上存在的不安全因素
– 访问各个站点上数据存在的不安全因素
– 数据在各站点之间传输时存在的不安全因素
综合起来分析,不 安全因素有:
– 黑客攻击(猎取用户口令、伪装、隐蔽通道、特洛伊木马、程序蠕虫、攻击电子邮件、突破防火墙等)
– 病毒(病毒种类 10几万种、破坏性更强、互联网环境有利于传播)
– 网络环境的脆弱性
OS安全
DBMS安全
网络协议安全( TCP/IP协议一开始没有考虑安全)
1.2 分布式数据库的不安全因素
1 数据库安全性概述
DDB安全需求
– 安全环节
各站点上存储安全,本地 /远程访问安全,传输安全
– 受破坏时的表现
非法用户对 DB的访问; 执行了不正确的修改; DB一致性,
完整性被破坏,DB中垃圾堆积,使 DB不可用;数据库中数据的机密被泄漏
– 提供服务
DB有保密性,数据加密
DB有一致性
DB有可用性,防止 /及时修复错误造成的恶意破坏
对 DB变化做跟踪记录
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述
安全层次
– 物理层
– 用户层
– OS层
– 网络层
– 数据库系统
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述物理层
保护数据不受侵入者的物理破坏,传统方式用锁和钥匙等
保护不受洪水,电力故障等
– 数据恢复
保护磁盘不被偷窃,清除,物理损坏等
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述用户层
防止保密字被盗,偷看
主要的管理方法,
– 经常变换保密字
– 使用不可猜测的保密字
– 日志所有非法的访问
– 数据审计
– 仔细雇用人员
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述
OS层次的安全
防止非法登录
文件层访问保护 (通常对 DB安全作用不大 )
防止,超级用户,的不正确使用
防止高级别优先权的指令的不正确使用
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述网络层安全
每个站点必须保证是与可信赖的站点通信
链路必须保证没有被窃听和篡改
方法,
– 基于保密字的协议 (password-based),
– 密码学 (Cryptography)
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述数据库系统层
假定在 OS,网络,人员,物理层都是安全的
数据库安全是,
– 每个用户仅仅可以读 /写部分数据
– 用户可能对整个文件或关系有权,也可能仅仅只对文件或关系的一部分有权
1.3 分布式数据库安全需求和安全措施分析
1 数据库安全性概述用户帐户
DBA为用户创建一个帐号和口令
每次用户登录都要输入帐号和口令
保持数据库用户的账号和口令痕迹是必要的,可以通过建立一个加密表来实现
– 每创建一个用户在加密表中添加一条记录
– 每取消一个帐户,就从表中删除一个相应的记录
保持用户和站点的操作痕迹也是必要的
– 从用户登录开始,直到退出为止,这一段时间内的所有数据库交互记录都要记录下来,特别是更新操作,一旦数据库被篡改,就能知道是哪个站点的哪个用户进行的。
1.4 分布式数据库的用户帐户和数据审计
1 数据库安全性概述数据审计
也可以通过对系统日志的扩充来记录用户和相关操作的信息
系统日志包括对分布式数据库的实施的每一个操作的入口项,事务故障和系统故障时就需要利用这些记录对数据库进行恢复
如果怀疑出现了对数据库的任意篡改,就可以执行数据库审计
– 审计扫描一段时间内的日志,以检查所有作用于数据库的存 取动作和操作
– 当发现一个非法的或未授权的操作时,DBA就可以确定执行这个操作的帐号
数据库审计对于敏感性数据库非常重要,比如银行数据
用于安全性的数据库日志,也叫审计跟踪
1.4 分布式数据库的用户帐户和数据审计
1 数据库安全性概述
主体 (Subject)
– 引起信息流动或改变系统状态的主动实体,如用户,程序,进程
客体 (Object)
– 蕴含或接收信息的被动实体,信息的载体,如 DB,表,记录,视图,
属性等
可信计算基
– 实现安全保护机制的集合体(硬件、软件等)
域
– 主体有能力存取的客体集合
安全级 (Security Level)
– 主体和客体的访问特权,一般主体安全级表示主体对客体敏感信息的操作能力,客体安全级表示客体信息的敏感度
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库
最小特权原理
– 主体应该授予能够完成任务所需的最小存取权
访问监控器
– 监控主体和客体之间授权访问关系的部件
信道
– 系统内的信息传输通路
隐蔽信道 (Covert Channel)
– 进程以危害系统安全的隐蔽方式传输信息的通信信道
自主访问控制 (Discretionary Access Control)
– 基于主体身份或主体所属组的身份或二者结合来限制对客体访问的方法,具有访问权的主体能自行决定其访问权直接或间接转授给别人
强制访问控制 (Mandatory Access Control)
– 基于主体与客体各自所具有的 敏感度标记 的控制关系来决定主体对客体的访问,标记是由系统安全员指派,用户不能随意修改,更不能转让
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库
敏感度标记
– 表示客体和主体的安全级的一条信息。可信计算基使用它确实是否进行强制访问控制
数据库的安全策略
– 根据用户需求、安装环境、建立规则和法律等方面的限制来制定的,用来描述访问规则和访问特征的关系
– 有四类策略:安全管理策略、最小特权策略、访问控制分类策略、访问控制策略
形式化安全保护策略模型
– 安全保护策略的完整精确描述
安全保护策略模型
– 安全保护策略的非形式化描述
2.1 数据库安全术语和基本概念
2 安全数据模型与多级安全数据库权限控制
当主体访问客体时,要进行访问的合法性检查,
,知必所需” 原则,限制用户只能知道授权他知道的那些数据对象 (最小特权原则 )
数据库部分的权的形式,
– 读权 - 允许读,但是不能修改数据
– 插入权 - 允许插入新数据,但不能修改已存在的数据
– 修改权 - 允许修改,但不能删除数据
– 删除权 - 允许删除数据
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
更新数据库模式权的的形式,
– 索引权 - 允许创建和删除索引
– 资源权 - 允许创建新关系
– 修改权 - 允许增加或删除关系中的属性
– 删除权 - 允许删除关系
权与视图
– 用户可以将某个权授给视图
– 视图可以通过限制用户访问的数据而加强数据库的安全性
– 关系层和视图层的安全组合可以精确地限制用户只对其应用需要的数据访问
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库权限控制授权与收权
Grant 语句
– Grant <权 > To <用户 > With Grant Option
Revoke 语句
– Revoke <权 > From <用户 >
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库授权方式
静态授权
– 检查功能
隔离功能:保证用户只访问已授权的数据对象
控制访问:保证用户只能按他已得到的访问权的访问方式存取数据,不得越权
– DBMS必须要确定不同用户对不同数据对象的存取权
数据对象的粒度由系统规定
数据对象命名唯一
DBA拥有访问全部数据对象的全权
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
– 矩阵法
称作安全矩阵法或存取检查矩阵法
O代表数据对象,U代表用户
各种存取权限
– R:读; U:修改; I:添加; D:删除元组; DR:删除关系
矩阵 S的元素 Sij=S(Ui,Oj)表示用户 Ui对数据对象
Oj的存取权,与数据对象的值无关,
矩阵法简便有效,OS的存取检查中广泛使用
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
R,D……R,URUn
..……......
..……......
R,DR……RR,UU2
R,I……R,DR,DU1
Om……O2O1
数据对象用户安全矩阵 S
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
按行存储法
– 按用户存储的权利表方法。 用户 Ui有一由偶对( Oj,Sij)组成的一维表行
按列存储法
– 按数据对象存储的权利表方法。数据对象 Oj
有一由偶对( Uj,Sij)组成的一维表列
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术
锁钥实现法
– 矩阵法中按行存储与按列存储方法的结合
– 每个用户 Ui设立一个钥表 {(O1,K1),(O2,K2),..,(Om,Km),}
– 每个数据对象 Oj设立一个锁表 {(L1,P1),(L2,P2),..,(Ls,
Ps),}
– Ki:保密钥; Li:保密锁; Pi:存取权集合
– 锁钥表由数据安全子系统管理
– 若 Ui对 Oj存取权 Pi时,查其 Kj是否能与 Oj中的某一 Lk配对,若存在这样的 Lk,使 Kj=Lk,且 Pi? Pk,则批准存取,
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术
口令实现法
– 将锁钥法中的钥匙直接交给用户,则称口令法
– 面向数据对象
每个数据对象有一个存取口令,用户通过出示其存取口令来访问数据对象,安全表集中管理,系统实现简单
– 面向用户
每个用户或用户组一个口令,口令表中存放该口令可以访问的对象列表
简单口令表
划分安全级别的口令表
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库安全矩阵法实现技术面向用户的简单口令系统
O1,O2,O9,O10PWn
……
O5,O7,O9PW1
能存取的数据对象口令
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库划分安全级别的口令表
12PWn
………
75PW2
43PW1
1010PW-DBA
WriteRead口令
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
…
t13
74t12
t11
43关系 1
WriteRead
T23
1010T22
T21
74关系 2
WriteRead
12关系 3
WriteRead
关系及元组的安全级表
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
结论
– DBA所持口令的级别最高,可读写全部关系和元组。
– 持有口令 PW1的各用户可读写关系 1中除元组
t12之外的所有元组及整个关系 3
– 持有口令 PW2的各用户可读写除元组 t22之外的关系 2、关系 1和关系 3的全部元组
– 持有口令 PWn的各用户,只能读写关系 3
动态授权方式
– 用户对自己生成的关系拥有全权,通过授权和收权语句完成对数据开放,保密的存取权授予 (Grant,
Revoke)
– 访问表 (AT)法
Userid,接受方用户; oname,授予的数据对象
操作类型,R,Read; U,Update; I,insert; D,delete; DR,
drop
Type:对象类型,t是表,V是试图
Grantor,授予方用户
操作类型,t,Time; g,转让,Y,允许 ; N,不允许 ; opt,限制,
all,所有属性都允许,none,所有属性都不允许,some,某些属性允许
– 视图法(略)
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
N-N-N-NoneN-AllY40CrempX
N30N30N30AllN30AllY30BrempX
Y20Y20Y20AllY20AllY20ArempC
N-Y10Y10NoneN-AllY10ArempB
Y0Y0Y0AllY0AllY0-rempA
gtgtgtoptgtoptgt
drdiurgrantortypeonameuserid
动态授权方式的存取表 AT
2.2 基于授予 /收回权限的自主访问控制
2 安全数据模型与多级安全数据库
发展历史
– D.E.Bell和 L.J.La Padula 于 1973年模拟军事安全策略创建的计算机系统安全模型,74年改进,76年用于
Multics操作系统
形式化定义
– 状态机模型
它形式化定义了模型中的概念,证明了其中的定理和结论,
并表明系统可通过数学推导证明其自身的安全性
– 系统状态
状态 v?V,V=(B? M? F? H)
B:当前存取集,B? (S? O? A),S,主体集 ; O,客体集 ;A,访问方式集合,有 Read(R),Write(W),Execute (E),Append (A)
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
存取控制矩阵
M=
m11 … m 1n
mn1 … m nn
…,m
ij?A 表示 Si主体对客体 Oj的访问权集
F,安全级函数,有三个分量
Fn:主体最大安全级函数
Fc:主体当前最大安全级函数
Fo:客体安全级函数
H,当前客体层次结构
H(O),以 O为根的树中客体集合
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
– 状态转换
规则?,R? V D? V
R? V,系统中给请求定义的请求 -状态对集合
D? V,系统中给请求定义的判定 -状态对集合
R,请求集 D,请求的输出集 {yes,no,?,error}
Yes:请求被执行; No:请求未执行;?:应用规则时遇到意外情况; error:应用规则时遇到错误
模型公理
– 简单安全特性
V=(b,M,f,H) 满足简单安全特性,当且仅当对任意 b=(s,o,x’)
B,有
– x’=e或者 a
– 或者 x’=r或者 w 并且 fn(s) >= fo(o)
即主体读写或访问客体,要求 主体的最大安全级别 >= 客体的安全级别
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
–*特性
V=(b,M,f,H) 对以主体集 S’? S 满足 *特性,当且仅当对任意 b=(s,o,x’)? B
–x’=a? fc (s) <= fo (o)
–x’=w? fc (s) = fo (o)
–x’=r? fc (s) >= fo (o)
S’是不可信主体
该特性用以防止不可信主体引起的信息从高安全级向低安全级的非法流动
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
–自主安全特性
V=(b,M,f,H)满足该特性,当且仅当对每个 b=(si,oj,
x’)?B,x’? Mij
Si对 Oj可执行的读写访问集只能是 Mij所允许的集合
–兼容特性
客体层次结构 H保持兼容特性,当且仅当对任意 Oi,
Oj?O,有 Oj? H(Oi),fo(Oj) >= fo(Oi),
用于保持客体的安全级别是向树叶方向增高
2.3 多级安全 BLP模型
2 安全数据模型与多级安全数据库
1991年 Jajodia和 Sandhu提出的一种实现强制访问控制的 RDB
系统
DAC和 DAC
– 自主访问控制,在关系上授权和收回特权
– 强制访问控制,在安全类别基础上,对数据和用户进行分类
基础
– 主体集 S,客体集 O
– 每个主体 s,存在固定的安全类 class(S)
– 每个客体 o,存在固定的安全类 class(O)
– 简单安全特性,if class(O) <= class(S) 时,S可以读 O (下读 )
– *特性,if class(S) <= class(O)时,S才可以写 O ( 上写 )
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
基本概念
– 安全标记
基于标记的安全 DB中,信息流动策略定义为一个格阵 (SC,?)
– SC,安全类的有限集
–?,定义在 SC上的二元偏序关系
每个安全类定义为 (level,Scope)
– level,密级,分为绝密 (TS),秘密 (S),机密( C),普通( U)
– Scope,领域
当 A? B时,允许 A类信息流向 B类,
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
– 客体安全标记
为实现强制访问控制,对数据进行标记,按粒度分为三级
– 基于元组的标记
(A1,A2,…….,An,TC)
Ai,关系的每个属性
TC,元组分类属性
– 基于主键的标记
(A1,C1,A2,…….,An,TC)
Ci,与每个属性 Ai相关联的分类级别属性
– 基于每个属性的标记
(A1,C1,A2,C2,…….,An,Cn,TC)
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
– 主体安全标记
由系统安全员指派给用户,也是用户向系统登录时使用的安全标记,一个用户可以申请不同的许可证,
– 读写策略
当且仅当 Level_o <= Level_s,并且 Scope_o?
Scope_s 时,主体才能读客体
当且仅当 Level_o = Level_s,并且 Scope_o =
Scope_s 时,主体才能写客体
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
基于标记的多级安全关系
– 对关系的扩展
– 将关系 R(A1,A2,…….,An) 扩展为
R(A1,C1,A2,C2,…….,An,Cn,TC),
Ci是 Ai的定义域,由区间 [Li,Hi] 表示从 Li到 Hi的访问类子格,
TC是整个元组的安全标记,由区间
[ [lub{Li:i=1,…,n}],[lub{Hi:i=1,…,n}] ] 表示,
– 关系实例
r (A1,C1,A2,C2,…….,An,Cn,TC)
– 关系实例中元组
t (a1,c1,a2,c2,…….,an,cn,tc)
ci?[Li,Hi],tc=lub(ci,i=1,2,…,n)
– 不同级别的主体对关系实例有不同的视图
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
–多级安全的读写规则
主体与客体都被标记,并遵循 Bell-La Padula模型
主体只能读其级别等于或小于其登录标记 (许可证 )的元组 下读
主体写时,其登录标记也随之记录到所写元组中,
成为该元组的安全级别,并且只能写入级别等于或大于其登录标记的元组 上写
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
2.4 基于安全性分类级别标记的强制访问控制
2 安全数据模型与多级安全数据库
(a) EMPLOYEE:原来的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U 40000 C Fair S S
Brown C 80000 S Good C S
(b) EMPLOYEE:具有许可证级别 C的用户所看到的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U 40000 C null C C
Brown C null C Good C C
(c) EMPLOYEE:具有许可证级别 U的用户所看到的 EMPLOYEE关系
Name Salary JobPerformance TC
Smith U null U null U U
(d) EMPLOYEE,Smith元组的多重实例
Name Salary JobPerformance TC
Smith U 40000 C Fair S S
Smith U 40000 C Excellent C C
Brown C 80000 S Good C C
计算机系统的安全标准
– 1983年美国防部桔皮书 <可信计算机系统评估标准 >
TCSEC
– 1990年欧洲白皮书 <信息技术安全评估标准 > ITSEC
– 美国、加拿大和欧洲四国联合研制的 <信息技术安全评测公共标准 >CC
– 1994年我国 <中华人民共和国计算机系统安全保护条例 >
– 1999年我国 GB17859-1999<中华人民共和国计算机信息系统安全保护登记划分规则 >
TCSEC将安全分为四类 7个级别
– D类,最低安全级别,只有一个级别 D级
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准
– C类:自主保护类,基于主体身份来限制对客体访问,主体可自主地决定其权限的授与
C1级:自主安全 (自主存取控制,审计 )
C2级:可控存取 (比 C1更强 )
– B类:强制保护类,基于主体与客体各自所具有的敏感度标记的控制关系来决定主体对客体的访问
B1级:标记安全 (强制存取控制,敏感标记 )
B2级:结构化保护 (形式化模型,隐蔽通道约束 )
B3级:安全域保护 (安全内核,高抗渗透 )
– A类:验证保护类
A1级:可验证保护,形式化安全验证,隐蔽通道分析
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准形式化安全验证,
隐蔽通道分析可验证保护A1验证保护等级A4
安全内核,高抗渗透能力安全域保护B3
形式化模型,隐蔽通道约束结构化保护B2
强制存取控制,敏感度标记标记安全保护B1强制保护等级B3
比 C1级更强的自主存取控制,审计功能可控存取保护C2
自主存取控制,审计功能自主安全保护C1自主保护等级C2
最小安全保护D最低保护等级D1
主要特征安全等级
TCSCE的安全等级与主要特征表
3.1 计算机系统的安全评估标准
3 计算机系统与 DBMS的安全评估标准
DBMS的安全评估标准
– 应与 OS有相同的安全级别
– 1991年美国国家计算机安全中心根据 TCSEC制订紫皮书 <可信计算机系统评估标准的可信 DBMS说明
(TDI)>
– DBMS的安全也分四类,7级,25条评估标准
D级,低级安全保护
C1级:自主安全保护
C2级:受控存取保护
B1级:标记安全保护
B2级:结构化保护
B3级:安全域保护
A1级:可验证保护
3.2 DBMS的安全评估标准
3 计算机系统与 DBMS的安全评估标准
* - - - - -
* * * * * -
* - - - - -
* - * * * * *
24
25
26
27
安全性能用户指南保安设施手册考核文件设计文件文件
* * * - - -
* - - - - -
* * * * * *
* * * *
* * *
* * -
* - *
* -
*
15
16
17
18
19
20
21
22
23
体系结构系统的完整性完全考核设计规范与验证隐蔽通道分析可信设施管理配置管理恢复可信分配保证
* * * - - -
* * * * -
* * -
12
13
14
标示与鉴别审计可信路径责任
* * - - * - -
* - - - -
* * - -
* - - -
* - - -
* - - -
* - - -
* - - -
* * - -
* - -
* - -
1
2
3
4
5
6
7
8
9
10
11
自主访问控制客体重用标记标记的完整性标记信息输出多级设备输出单级设备输出标记的硬拷贝输出强制访问控制主体安全表示设备标记安全策略
D C1 C2 B1 B2 B3 A1序号安全评估指标类别不同安全级别对安全评估指标的支持
当前流行的几种 RDBMS安全机制的共性
– 权限 (Privilege)和授权 (Authorization):
Grant和 Revoke
– 角色 (Role)
系统角色:系统预先定义
用户定义角色:命令方式或过程调用方式定义
– 身份认证 (Authorization)
为确认某人是他自称的那个人,检查他的合法性
身份认证一般有三个级别
– 系统登录认证,OS检查
– 数据库连接,DBMS验证
– 数据库对象使用,DBMS核实其对数据对象的存取权限
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
OS或 NOS
验证身份
DBMS
验证身份
DBMS
验证权限用户名
/口令登陆 OS
或 NOS
登陆
DBMS
访问
DB
身份认证的三个级别
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
– 自主访问控制
采用存取矩阵模型实现自主访问控制
描述用户对 DB级其对象的访问权限通过 Grant语句建立
– 审计 (Auditing)
固定方式:系统自动对其进行审计
选择方式:审计内容由用户 (包括 DBA)设置
– 用作安全的视图,存储过程和触发器
视图:过滤掉需要保密的列
存储过程:为实现某一功能的一组 SQL语句
触发器:有事件触发执行的一种特殊的存储过程
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
流行 RDBMS在安全机制方面的努力与改进
– 目前系统符合 TCSEC的 C1或 C2级要求
– ORACLE公司的 Trusted Oracle是多级安全服务器
强制访问控制:任意用户访问 DB前,对其进行强制访问控制
使用标签,DB中每一行都有一个安全标签,表示该行数据的敏感度
用户可写数据标签 = 用户当前任务的敏感度标签
(同级写 )
用户可读数据标签 <或 = 用户当前任务的敏感度标签 (下读 )
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
– Sybase和 TRM合作开发的符合 TCSEC的 B类标准安全 SQL服务器
B1版本,B1级安全的 UNIX上运行
B2版本:据称可在裸机上运行
– DB2对用户身份验证的改进
Client类型:验证在激活应用的服务器上进行
Server类型:在数据库所驻留的服务器上进行
分布式数据库服务器,在安装了 DDCS( 数据库管理和分布数据库连接服务 )的网关上进行,若验证为 DCS类型,验证被传递到主机 DBMS,若数据访问不涉及 DDCS,则在数据库驻留的服务器上对身份验证
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准国内外较著名的 MLS DBMS
名称 安全等级 标记粒度 说明
SeaView A1 元素级 原型系统
ASD A1 元组级 原型系统
LDV A1 元素级 原型系统
Trusted Oracle B1 元组级
Sybase SQL Secure
Server
B1 元组级
SDM3 B2 元素级 B2级部分功能
3.3 当前流行的几种 RDBMS安全机制
3 计算机系统与 DBMS的安全评估标准
数据库目录 (Database Catalog)
– 也称数据字典或者原数据
– 它是一个“微小 DB”,描述 DB中数据的数据
数据库目录的作用
– 外部对数据库的操作
定义数据对象,查询,添加,删除,更新数据等
– 内部数据库的运作
事务管理,授权检查,并发控制,故障恢复、命令翻译等
分布式数据库目录
– 数据分布的透明性、各站点的自制性、分布式事务运行和管理都与目录有关
– 分布式数据库的目录也构成一个分布式数据库,比集中式数据库更加复杂
4.1 分布式数据库目录的重要性
4 分布式数据库的目录结构和管理
分布式数据库目录的内容
– 全局模式描述
– 分片模式描述
– 分布模式描述
– 局部名称映射
– 存取方式描述
– 数据库统计信息
– 一致性约束
– 状态信息
– 数据表示
– 系统描述
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理
目录的用途
– 设计应用
– 翻译应用
– 优化处理
– 运行监督
– 系统维护
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理
4.2 分布式数据库目录的内容和用途
4 分布式数据库的目录结构和管理系统目录数据库管理员 应用程序员 最终用户安全授权子系统编译器预编译器 应用程序报告生成器完整性约束实施器查询优化器全局数据库控制器通信子系统人员接口
DBMS及软件接口
组织方式
– 独立式:利用 OS提供的文件管理功能建立和维护目录信息
– 分离式:利用 DBMS建立和维护目录信息,
但其用户界面和功能均独立于 DBMS
– 嵌入式,DBMS与目录信息一体化,即数据目录系统作为 DBMS的子集,DBMS通常应用该方式
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理网络目录全局外模式目录局部外模式目录全局概念模式目录局部概念模式目录内模式目录 局部数据库
DDBS目录系统的逻辑结构
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
逻辑结构
– 网络目录
含有运行,优化 DDB的信息,包括通信线路的有关参数,各站点 CPU的工作负载,磁盘空间占有状态,
语言配置,处理功能等
– 全局外模式目录
数据结构,存储位置,划分准则,完整性,安全性控制,数据映像及存取路径,各站点软硬件特征
– 全局概念模式目录
全局关系,公共过程等,以反映 DDB的整体观念,提供唯一的系统映象
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
– 局部外模式目录与局部概念模式目录
与全局外模式和全局模式目录类似,但包含的信息仅涉及各自站点的处理对象,与其它站点无关
– 内模式目录
DDBS的局部存储描述,与集中式系统完全相同,
目的是合理地组织物理数据库,以提高运行效率
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
目录管理系统
– 在网络 OS和 DDBMS的支持下实现对 DB目录进行自动管理,并保持其在动态变化过程中数据目录的一致性和有效性
– 功能模块
目录定义
目录装入
目录查询,更新
目录维护
报告生成
4.3 DDB目录系统的组织方式和逻辑结构
4 分布式数据库的目录结构和管理
目录的分布方式
– 集中式
单一主目录方式
分组主目录
– 全复制式目录
每个站点存放一个全局目录
– 局部式目录
每个站点只存放局部目录
– 混合方式
集中与局部混合
全复制与局部式混合
混合的关键是目录的划分
4.4 DDB目录的分布方式
4 分布式数据库的目录结构和管理
站点自治
– 允许每个局部用户在与全局无关的前提下建立和命名其自己的局部数据,并允许若干用户共享这些数据的权利
允许用户在各自站点独立定义数据
允许不同用户在自己站点对同一数据命名以不同的名字
允许不同站点上的不同用户使用相同名字访问不同数据
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
命名机制 (System R为例,有两种命名机制)
– 系统范围名
4部分组成:
– 创建对象的用户标识符
– 用户所在站点名
– 对象名
– 对象的源站点名
User-1@shanghai.EMP @beijing
–,@”是站点名的前置分隔符
–,,” 是对象名的前置分隔符
– 该例表示上海站点的用户 User-1在北京站点上创建了一个 EMP
的全局对象名
– 打印名
系统范围名的速记名,1,2,4项可缺省,3不可省略
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
目录分布策略
– 在每一对象的源站点存放一个描述该对象的目录项
– 在对象副本所在的每一个站点设置该对象相应的目录项
目录分布特点
– 避免了目录的全复制,各站点可以自主定义对象
– 站点不需维护不是其创建或不在那里存放的对象描述,即目录信息
4.5 具有站点自治性的对象命名和目录管理
4 分布式数据库的目录结构和管理
DDB中给予每个站点自治性的程度
– 没有任何自治性:全局 DBA的功能与集中式 DBA没有多少差别
– 完全站点自治,全局 DBA功能有限,因为每个站点都是独立管理的,两个站点间共享数据是其协商的结果
激活与保护站点之间的通信,重要的是要保证
– 通信线路另一侧是所要的站点,通过建立一个识别协议来实现
– 没有入侵者能读取或操纵两个站点之间交换的报文,
要有保护报文的保护机制,最好是用密码机制
5.1 分布式数据库中的权限保护
5 分布式数据库中的权限保护和用户识别
权限规则的分布
– 全局复制
和全局复制目录相似,允许在编译时,或者执行开始时检验权限,能较早发现用户是否是合法访问
– 将权限规则分配在对象所属的站点
此法与站点自治一致,但是用户权限检验只能在编译或执行的某个中间阶段通过访问数据实现
DDB中要增加“移动”对象的权
– 分布式数据库中除了读出、插入、创建和删除的权限,还有移动对象的权限,从一个站点移动到另外一个站点
– 移动对象的权 < 插入和删除的权
5.2 分布式数据库中权限规则的分布
5 分布式数据库中的权限保护和用户识别
用户识别
– 原则上说用户可以在 DDBS内的任一站点被识别
全复制口令
– 口令可以在 DDB的所有站点中复制,缺点是危害口令的保密性
,家 乡”站点
– 每个用户可以有一个“家乡”站点,在那儿对其识别
,穿越”
– 限制每个用户只在家乡站点登录并识别
优点:用穿越功能使在远程登录的用户能把它们的终端连到其家乡站点识别
认为用户识别比 Data和 Program更为“静止”,即用户常常在同一个站点访问 DDB
5.3 分布式数据库中的用户识别和分类
5 分布式数据库中的权限保护和用户识别
用户分类
– 用户分类是为了简化处理权限的方法及减少存储的信息,每类中的用户全都具有同样的特权
– 自然分类
根据数据库数据在不同站点中的分布考虑例,站点 1的全部用户
– 用户组中包含来自多个站点用户
与“纯粹”站点自治相对立
要考虑“该组访问权信息存放何处”类问题
5.3 分布式数据库中的用户识别和分类
5 分布式数据库中的权限保护和用户识别总 结
数据库安全性概述
安全数据模型与多级安全数据库
计算机系统与数据库系统的安全评估标准
分布式数据库的目录结构和管理
分布式数据库中权限保护和用户识别