数据库---第四章----数据库安全性

一、数据库安全性概述
1.数据库的不安全因素
(1)非授权用户对数据库的恶意存取和破坏
(2)数据库中重要或敏感的数据被泄露
(3)安全环境的脆弱性
2.安全标准简介
1985年美国国防部(DoD)正式颁布《DoD可信计算机系统评估准则》(简称TCSEC或DoD85)
不同国家建立在TCSEC概念上的评估准则
欧洲的信息技术安全评估准则(ITSEC)
加拿大的可信计算机产品评估准则(CTCPEC) 
美国的信息技术安全联邦标准(FC)
1.TCSEC标准
TDI又称紫皮书。它将TCSEC扩展到数据库管理系统
TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准
TCSEC/TDI,从四个方面来描述安全性级别划分的指标
安全、策略、责任、保证、文档
2.TCSEC/TDI安全级别划分:
D级
将一切不符合更高标准的系统均归于D组
 DOS在安全性方面几乎没有什么专门的机制来保障
C1级
非常初级的自主安全保护
能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。
现有的商业系统稍作改进即可满足
C2级
安全产品的最低档次
提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离
达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色
B1级
标记安全保护。“安全”(Security)或“可信的” (Trusted)产品。
对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制
B2级
结构化保护
建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC
B3级
安全域
该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程
A1级
验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。
 CC
提出国际公认的表述信息技术安全性的结构
把信息产品的安全要求分为
安全功能要求
安全保证要求
 CC文本组成
简介和一般模型
有关术语、基本概念和一般模型以及与评估有关的一些框架
安全功能要求
列出了一系列类、子类和组件
安全保证要求
列出了一系列保证类、子类和组件
提出了评估保证级,从EAL1至EAL7共分为七级
二、数据库安全性控制
1.非法使用数据库的情况
(1)编写合法程序绕过数据库管理系统及其授权机制
(2)直接或编写应用程序执行非授权操作
(3)通过多次合法查询数据库从中推导出一些保密数据
2.存取控制流程
首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。
然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。
还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。
3.数据库安全性控制的常用方法
用户标识和鉴定
存取控制
视图
审计
数据加密
4.用户身份鉴别
系统提供的最外层安全保护措施
用户标识:由用户名和用户标识号组成
  (用户标识号在系统整个生命周期内唯一)
(1)用户身份鉴别的方法
a.静态口令鉴别
静态口令一般由用户自己设定,这些口令是静态不变的
b.动态口令鉴别
口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法
c.生物特征鉴别
通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等
d.智能卡鉴别
智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能
5.存取控制
(1)存取控制机制组成
定义用户权限,并将用户权限登记到数据字典中
用户对某一数据对象的操作权力称为权限 
DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则 
合法权限检查 
用户发出存取数据库操作请求
DBMS查找数据字典,进行合法权限检查
用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统
(2)常用存取控制方法
a.自主存取控制
 C2级
用户对不同的数据对象有不同的存取权限
不同的用户对同一对象也有不同的权限
用户还可将其拥有的存取权限转授给其他用户
b.强制存取控制
B1级
每一个数据对象被标以一定的密级
每一个用户也被授予某一个级别的许可证
对于任意一个对象,只有具有合法许可证的用户才可以存取
6.自主存取控制方法
a.通过 SQL 的GRANT 语句和REVOKE 语句实现
b.用户权限组成:
   数据对象
   操作类型
c.定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作
d.定义存取权限称为授权 
7.授权:授予与回收
(1)GRANT
GRANT语句的一般格式:
       GRANT <权限>[,<权限>]... 
       ON <对象类型> <对象名>[,<对象类型> <对象名>]…
       TO <用户>[,<用户>]...
       [WITH GRANT OPTION];
语义:将对指定操作对象的指定操作权限授予指定的用户 
a.发出GRANT:
数据库管理员
数据库对象创建者(即属主Owner)
拥有该权限的用户
b.按受权限的用户 
一个或多个具体用户
PUBLIC(即全体用户)
c.WITH GRANT OPTION子句:
指定:可以再授予
没有指定:不能传播
(2)REVOKE
授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回
REVOKE语句的一般格式为:
    REVOKE <权限>[,<权限>]... 
    ON <对象类型> <对象名>[,<对象类型><对象名>]…
    FROM <用户>[,<用户>]...[CASCADE | RESTRICT];
(3)数据库管理员:
  拥有所有对象的所有权限
  根据实际情况不同的权限授予不同的用户
用户:
  拥有自己建立的对象的全部的操作权限
  可以使用GRANT,把权限授予其他用户
被授权的用户
  如果具有“继续授权”的许可,可以把获得的权限再授予其他用户
所有授予出去的权力在必要时又都可用REVOKE语句收回
(4)创建数据库模式的权限 
数据库管理员在创建用户时实现
CREATE USER语句格式
              CREATE  USER   
              [WITH][DBA|RESOURCE|CONNECT];
注: 
CREATE USER不是SQL标准,各个系统的实现相差甚远
    CREATE USER语句格式说明
 a.只有系统的超级用户才有权创建一个新的数据库用户
 b.新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA
 c.如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库
d.拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主。但不能创建模式,不能创建新的用户
e.拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等;DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户
8.数据库角色:被命名的一组与数据库操作相关的权限
a.角色的创建
CREATE  ROLE  <角色名> 
b.给角色授权 
 GRANT  <权限>[,<权限>]… 
 ON <对象类型>对象名  
 TO <角色>[,<角色>]…
c.将一个角色授予其他的角色或用户
GRANT  <角色1>[,<角色2>]…
TO  <角色3>[,<用户1>]… 
[WITH ADMIN OPTION]
d.角色权限的收回 
REVOKE <权限>[,<权限>]…
ON <对象类型> <对象名>
FROM <角色>[,<角色>]…
9.强制存取控制方法
(1)在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类
a.主体是系统中的活动实体
   数据库管理系统所管理的实际用户
   代表用户的各进程
b.客体是系统中的被动实体,受主体操纵
   文件、基本表、索引、视图
(2)敏感度标记
 a.对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记
b. 敏感度标记分成若干级别
  绝密(Top Secret,TS)
  机密(Secret,S)
  可信(Confidential,C)
  公开(Public,P)
  TS>=S>=C>=P
c.主体的敏感度标记称为许可证级别
d.客体的敏感度标记称为密级
(3)强制存取控制规则
     a.仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
     b.仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
(4)强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。
(5)实现强制存取控制时要首先实现自主存取控制
      原因:较高安全性级别提供的安全保护要包含较低级别的所有保护
(6)自主存取控制与强制存取控制共同构成数据库管理系统的安全机制
10.视图机制
(1)把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护 
(2)间接地实现支持存取谓词的用户权限定义
11.审计
(1)什么是审计
a.启用一个专用的审计日志
   将用户对数据库的所有操作记录在上面
b.审计员利用审计日志
监控数据库中的各种行为,找出非法存取数据的人、时
间和内容
c.C2以上安全级别的DBMS必须具有审计功能
(2)审计功能的可选性
a.审计很费时间和空间
b.DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能
c.审计功能主要用于安全性要求较高的部门
(3)审计事件
a.服务器事件
审计数据库服务器发生的事件
b.系统权限
对系统拥有的结构或模式对象进行操作的审计
要求该操作的权限是通过系统权限获得的
c.语句事件
对SQL语句,如DDL、DML、DQL及DCL语句的审计
d.模式对象事件
对特定模式对象上进行的SELECT或DML操作的审计 
(4)审计功能
a.基本功能
提供多种审计查阅方式
b.多套审计规则:一般在初始化设定
c.提供审计分析和报表功能
d.审计日志管理功能
    防止审计员误删审计记录,审计日志必须先转储后删除
    对转储的审计记录文件提供完整性和保密性保护
    只允许审计员查阅和转储审计记录,不允许任何用户新增和修改审计记录等
e.提供查询审计设置及审计记录信息的专门视图
(5)AUDIT语句和NOAUDIT语句
AUDIT语句:设置审计功能 
NOAUDIT语句:取消审计功能 
12.数据加密  
防止数据库中数据在存储和传输中失密的有效手段
(1)加密的基本思想
     根据一定的算法将原始数据—明文(Plain text)变换为不可直接识别的格式-—密文(Cipher text)
(2)加密方法
     存储加密
a.透明存储加密
   内核级加密保护方式,对用户完全透明
   将数据在写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密
   数据库的应用程序不需要做任何修改,只需在创建表语句中说明需加密的字段即可
  内核级加密方法: 性能较好,安全完备性较高
b.非透明存储加密
   通过多个加密函数实现
     传输加密
a.链路加密
   在链路层进行加密
   传输信息由报头和报文两部分组成
   报文和报头均加密
b.端到端加密
   在发送端加密,接收端解密
   只加密报文不加密报头
   所需密码设备数量相对较少,容易被非法监听者发现并从中获取敏感信息
13.其他安全性保护
(1)推理控制
    处理强制存取控制未解决的问题
    避免用户利用能够访问的数据推知更高密级的数据
    常用方法
      基于函数依赖的推理控制
      基于敏感关联的推理控制
(2)隐蔽信道
    处理强制存取控制未解决的问题
(3)数据隐私保护
描述个人控制其不愿他人知道或他人不便知道的个人数据的能力
范围很广:数据收集、数据存储、数据处理和数据发布等各个阶段


 

你可能感兴趣的:(数据库---第四章----数据库安全性)