1、数据库安全性讲授者:李川数据库安全性n 问题的提出q数据库的一大特点是数据可以共享q但数据共享必然带来数据库的安全性问题q数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据数据库安全性(续)q数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据q数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一数据库安全性(续)n什么是数据库的安全性q数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。n什么是数据的保
2、密q数据保密是指用户合法地访问到机密数据后能否对这些数据保密。q通过制订法律道德准则和政策法规来保证。数据库安全性计算机安全性概论数据库安全性控制统计数据库安全性Oracle数据库的安全性措施小结数据库安全性计算机安全性概论数据库安全性控制统计数据库安全性Oracle数据库的安全性措施小结计算机安全性概论计算机系统的三类安全性问题 可信计算机系统评测标准计算机安全性概论计算机系统的三类安全性问题 可信计算机系统评测标准计算机系统的三类安全性问题 n什么是计算机系统安全性q为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数据
3、遭到更改或泄露等。计算机系统的三类安全性问题(续)n计算机安全涉及问题q计算机系统本身的技术问题n计算机安全理论与策略n计算机安全技术q管理问题n安全管理n安全评价n安全产品计算机系统的三类安全性问题(续)n计算机安全涉及问题(续)q法学n计算机安全法律q犯罪学n计算机犯罪与侦察n安全监察q心理学计算机系统的三类安全性问题(续)n三类计算机系统安全性问题q技术安全类q管理安全类q政策法律类计算机系统的三类安全性问题(续)n技术安全q指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加
4、、不丢失、不泄露。计算机系统的三类安全性问题(续)n管理安全q软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题计算机系统的三类安全性问题(续)n政策法律类q政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令nnn计算机安全性概论计算机系统的三类安全性问题 可信计算机系统评测标准可信计算机系统评测标准n为降低进而消除对系统的安全攻击,各国引用或制定一系列安全标准q1985 TCSEC(桔皮书)q1991 TDI(紫皮书)可信计算机系统评测标准(续)n1985年美国国防部(DoD)正式颁布 DoD可信计算机系统评估标准(简称TCSE
5、C或DoD85)qTCSEC又称桔皮书qTCSEC标准的目的n提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。n给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。可信计算机系统评测标准(续)n1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释(Trusted Database Interpretation 简称TDI)qTDI又称紫皮书。它将TCSEC扩展到数据库管理系统。qTDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。可信计算机系统评测标准(续)n
6、TDI/TCSEC标准的基本内容qTDI与TCSEC一样,从四个方面来描述安全性级别划分的指标n安全策略n责任n保证n文档可信计算机系统评测标准(续)nR1 安全策略(Security Policy)R1.1 自主存取控制(Discretionary Access Control,简记为DAC)R1.2 客体重用(Object Reuse)R1.3 标记(Labels)R1.4 强制存取控制(Mandatory Access Control,简记为MAC)可信计算机系统评测标准(续)nR2 责任(Accountability)R2.1 标识与鉴别(Identification&Authenti
7、cation)R2.2 审计(Audit)nR3 保证(Assurance)R3.1 操作保证(Operational Assurance)R3.2 生命周期保证(Life Cycle Assurance)可信计算机系统评测标准(续)nR4 文档(Documentation)R4.1 安全特性用户指南(Security Features Users Guide)R4.2 可信设施手册(Trusted Facility Manual)R4.3 测试文档(Test Documentation)R4.4 设计文档(Design Documentation)可信计算机系统评测标准(续)nTCSEC/T
8、DI安全级别划分安安 全全 级级 别别 定定 义义A1验证设计(验证设计(Verified Design)B3安全域(安全域(Security Domains)B2结构化保护(结构化保护(Structural Protection)B1标记安全保护(标记安全保护(Labeled Security Protection)C2受控的存取保护受控的存取保护(Controlled Access Protection)C1自主安全保护自主安全保护(Discretionary Security Protection)D最小保护(最小保护(Minimal Protection)可信计算机系统评测标准(续)q
9、四组(division)七个等级n Dn C(C1,C2)n B(B1,B2,B3)n A(A1)q按系统可靠或可信程度逐渐增高q各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。可信计算机系统评测标准(续)nD级q将一切不符合更高标准的系统均归于D组q典型例子:DOS是安全标准为D的操作系统n DOS在安全性方面几乎没有什么专门的机制来保障可信计算机系统评测标准(续)nC1级q非常初级的自主安全保护q能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。可信计算机系统评测标准(续)
10、nC2级q安全产品的最低档次q提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离q达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色可信计算机系统评测标准(续)q典型例子n 操作系统qMicrosoft的Windows NT 3.5,q数字设备公司的Open VMS VAX 6.0和6.1n 数据库qOracle公司的Oracle 7qSybase公司的 SQL Server 11.0.6qMicrosoft公司的 SQL Server 2000可信计算机系统评测标准(续)nB1级q标记安全保护。“安全”(Security)或“可信的
11、”(Trusted)产品。q对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制可信计算机系统评测标准(续)q典型例子n 操作系统q数字设备公司的SEVMS VAX Version 6.0q惠普公司的HP-UX BLS release 9.0.9+n 数据库qOracle公司的Trusted Oracle 7qSybase公司的Secure SQL Server version 11.0.6qInformix公司的Incorporated INFORMIX-OnLine/Secure 5.0可信计算机系统评测标准(续)nB2级q结构化保护q建立形式化的安全策略模型
12、并对系统内的所有主体和客体实施DAC和MAC。q经过认证的B2级以上的安全系统非常稀少可信计算机系统评测标准(续)q典型例子n 操作系统qTrusted Information Systems公司的Trusted XENIXqMULTICSq标准的网络产品q只有Cryptek Secure Communications公司的LLC VSLAN一种产品n 数据库q没有符合B2标准的产品可信计算机系统评测标准(续)nB3级q安全域。q该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。qHoneywell XTS-200 STOP 3/1/E可信计算机系统评测标准(续)nA
13、1级q验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。qOS Honeywell SCOMP STOP 2.1可信计算机系统评测标准(续)nB2以上的系统q还处于理论研究阶段q应用多限于一些特殊的部门如军队等q美国正在大力发展安全产品,试图将目前仅限于少数领域应用的B2安全级别下放到商业应用中来,并逐步成为新的商业标准。可信计算机系统评测标准(续)可信计算机系统评测标准(续)表示该级不提供对该指标的支持;表示该级新增的对该指标的支持;表示该级对该指标的支持与相邻低一级的 等级一样;表示该级对该指标的支持较下一级有所增 加或改动。数据库安全性计算机安全性概
14、论数据库安全性控制统计数据库安全性Oracle数据库的安全性措施小结数据库安全性控制数据库安全性控制概述用户标识与鉴别存取控制自主存取控制方法强制存取控制方法视图机制审计数据加密数据库安全性控制概述n非法使用数据库的情况q用户编写一段合法的程序绕过DBMS及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;q直接或编写应用程序执行非授权操作;数据库安全性控制概述(续)q通过多次合法查询数据库从中推导出一些保密数据 例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资,于是他:首先查询包括张三在内的一组人的平均工资 然后查用自己替换张三后这组人
15、的平均工资 从而推导出张三的工资q破坏安全性的行为可能是无意的,故意的,恶意的。计算机系统中的安全模型 应用应用DBMSOS DB 低低 高高安全性控制层次安全性控制层次 方法:方法:用户标识用户标识和鉴定和鉴定 存取控制存取控制审计审计视图视图 操作系统操作系统 安全保护安全保护 密码存储密码存储 数据库安全性控制概述(续)n数据库安全性控制的常用方法q用户标识和鉴定q存取控制q视图q审计q密码存储数据库安全性控制数据库安全性控制概述用户标识与鉴别存取控制自主存取控制方法强制存取控制方法视图机制审计数据加密用户标识与鉴别n用户标识与鉴别(Identification&Authenticati
16、on)q系统提供的最外层安全保护措施用户标识与鉴别基本方法n系统提供一定的方式让用户标识自己的名字或身份;n系统内部记录着所有合法用户的标识;n每次用户要求进入系统时,由系统核对用户提供的身份标识;n通过鉴定后才提供机器使用权。n用户标识和鉴定可以重复多次用户标识自己的名字或身份n用户名/口令q简单易行,容易被人窃取n每个用户预先约定好一个计算过程或者函数q系统提供一个随机数q用户根据自己预先约定的计算过程或者函数进行计算q系统根据用户计算结果是否正确鉴定用户身份数据库安全性控制数据库安全性控制概述用户标识与鉴别存取控制自主存取控制方法强制存取控制方法视图机制审计数据加密存取控制n存取控制机制
17、的功能q存取控制机制的组成n 定义存取权限n 检查存取权限用户权限定义和合法权检查机制一起组成了DBMS的安全子系统存取控制(续)q定义存取权限n在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义存取权限。q检查存取权限n对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操作。存取控制(续)n常用存取控制方法q自主存取控制(Discretionary Access Control,简称DAC)n C2级n 灵活q强制存取控制(Mandatory Access Control,简称 MAC)n B1级n严格自
18、主存取控制方法n同一用户对于不同的数据对象有不同的存取权限n不同的用户对同一对象也有不同的权限n用户还可将其拥有的存取权限转授给其他用户强制存取控制方法n每一个数据对象被标以一定的密级n每一个用户也被授予某一个级别的许可证n对于任意一个对象,只有具有合法许可证的用户才可以存取数据库安全性控制数据库安全性控制概述用户标识与鉴别存取控制自主存取控制方法强制存取控制方法视图机制审计数据加密自主存取控制方法n定义存取权限q存取权限n 存取权限由两个要素组成q数据对象q操作类型自主存取控制方法(续)q关系系统中的存取权限数据对象操作类型模 式 模 式建立、修改、删除、检索外模式 建立、修改、删除、检索
19、内模式建立、删除、检索数 据 表查找、插入、修改、删除属性列查找、插入、修改、删除自主存取控制方法(续)q关系系统中的存取权限(续)n定义方法qGRANT/REVOKE自主存取控制方法(续)q关系系统中的存取权限(续)n例:一张授权表 用户名 数据对象名 允许的操作类型 王 平 关系Student SELECT 张明霞 关系Student UPDATE 张明霞 关系Course ALL 张明霞 SC.Grade UPDATE 张明霞 SC.Sno SELECT 张明霞 SC.Cno SELECT自主存取控制方法(续)n检查存取权限q对于获得上机权后又进一步发出存取数据库操作的用户nDBMS查找
20、数据字典,根据其存取权限对操作的合法性进行检查n若用户的操作请求超出了定义的权限,系统将拒绝执行此操作自主存取控制方法(续)n 授权粒度q授权粒度是指可以定义的数据对象的范围n它是衡量授权机制是否灵活的一个重要指标。n授权定义中数据对象的粒度越细,即可以定义的数据对象的范围越小,授权子系统就越灵活。自主存取控制方法(续)q关系数据库中授权的数据对象粒度n数据库n表n属性列n行q能否提供与数据值有关的授权反映了授权子系统精巧程度自主存取控制方法(续)n实现与数据值有关的授权q利用存取谓词n存取谓词可以很复杂q可以引用系统变量,如终端设备号,系统时钟等,实现与时间地点有关的存取权限,这样用户只能在
21、某段时间内,某台终端上存取有关数据 例:规定“教师只能在每年1月份和7月份星期一至星期五上午8点到下午5点处理学生成绩数据”。自主存取控制方法(续)例:扩充后的授权表 用户名 数据对象名 允许的操作类型 存取谓词王平 关系Student SELECT Sdept=CS张明霞 关系Student UPDATE Sname=张明霞张明霞 关系 Course ALL 空自主存取控制方法(续)n自主存取控制小结q定义存取权限n用户q检查存取权限nDBMS自主存取控制方法(续)n自主存取控制小结(续)q授权粒度n数据对象粒度:数据库、表、属性列、行q数据值粒度:存取谓词n授权粒度越细,授权子系统就越灵活
22、,能够提供的安全性就越完善。但另一方面,因数据字典变大变复杂,系统定义与检查权限的开销也会相应地增大。自主存取控制方法(续)n自主存取控制小结(续)q优点n能够通过授权机制有效地控制其他用户对敏感数据的存取自主存取控制方法(续)n自主存取控制小结(续)q缺点n可能存在数据的“无意泄露”n原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。n解决:对系统控制下的所有主客体实施强制存取控制策略数据库安全性控制数据库安全性控制概述用户标识与鉴别存取控制自主存取控制方法强制存取控制方法视图机制审计数据加密强制存取控制方法n什么是强制存取控制q强制存取控制(MAC)是指系统为
23、保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求,所采取的强制存取检查手段。qMAC不是用户能直接感知或进行控制的。qMAC适用于对数据有严格而固定密级分类的部门n 军事部门n 政府部门强制存取控制方法(续)n主体与客体q在MAC中,DBMS所管理的全部实体被分为主体和客体两大类q主体是系统中的活动实体n DBMS所管理的实际用户n 代表用户的各进程q客体是系统中的被动实体,是受主体操纵的n 文件n 基表n 索引n 视图强制存取控制方法(续)n敏感度标记q 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)q 敏感度标记分成若干级别n 绝密(Top S
24、ecret)n 机密(Secret)n 保密(Confidential)n 公开(Public)强制存取控制方法(续)q主体的敏感度标记称为许可证级别(Clearance Level)q客体的敏感度标记称为密级(Classification Level)qMAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体强制存取控制方法(续)n 强制存取控制规则q当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的
25、密级时,该主体才能写相应的客体。强制存取控制方法(续)n修正规则:q主体的许可证级别 得到的利益数据库安全性计算机安全性概论数据库安全性控制统计数据库安全性Oracle数据库的安全性措施小结Oracle数据库的安全性措施nORACLE的安全措施:q用户标识和鉴定q授权和检查机制q审计技术q用户通过触发器灵活定义自己的安全性措施ORACLE的用户标识和鉴定nORACLE允许用户重复标识三次n如果三次仍未通过,系统自动退出ORACLE的授权与检查机制nORACLE授权和检查机制的特色qORACLE的权限包括系统权限和数据库对象的权限q采用非集中式的授权机制q每个用户授予与回收自己创建的数据库对象的
26、权限qDBA负责授予与回收系统权限,也可以授予与回收所有数据库对象的权限q允许重复授权,即可将某一权限多次授予同一用户,系统不会出错q允许无效回收,即用户不具有某权限,但回收此权限的操作仍是成功的。系统权限80多种系统权限q 创建表q 创建视图q 创建用户q 创建角色系统权限(续)nDBA在创建一个用户时需要将其中的一些权限授予该用户n角色q一组系统权限的集合,目的在于简化权限管理。qORACLE允许DBA定义角色qORACLE提供的预定义角色n CONNECTn RESOURCEn DBA系统权限(续)nCONNECT角色q允许用户登录数据库并执行数据查询和操纵n ALTER TABLEn
27、CREATE VIEW/INDEX n DROP TABLE/VIEW/INDEXn GRANT,REVOKEn INSERT,UPDATE,DELETEn SELETEn AUDIT/NOAUDIT系统权限(续)nRESOURCE角色q允许用户建表,即执行CREATE TABLE操作q由于创建表的用户将拥有该表,因此他具有对该表的任何权限系统权限(续)nDBA角色q允许用户执行授权命令,建表,对任何表的数据进行操纵。qDBA角色涵盖了前两种角色,此外还可以执行一些管理操作。qDBA角色拥有最高级别的权限。系统权限(续)例:DBA建立一用户U12后,欲将ALTER TABLE、CREATE V
28、IEW、CREATE INDEX、DROP TABLE、DROP VIEW、DROP INDEX,GRANT,REVOKE、INSERT、SELETE、UPDATE、DELETE、AUDIT、NOAUDIT等系统权限授予U12 GRANT CONNECT TO U12;这样就可以省略十几条GRANT语句ORACLE的授权与检查机制(续)nORACLE的权限q 系统权限q 数据库对象的权限数据库对象的权限ORACLE可以授权的数据库对象q 基本表q 视图q 序列q 同义词q 存储过程q 函数数据库对象的权限(续)n基本表的安全性级别q 表级q 行级q 列级数据库对象的权限(续)n表级权限q AL
29、TER:修改表定义q DELETE:删除表记录q INDEX:在表上建索引q INSERT:向表中插入数据记录q SELECT:查找表中记录q UPDATE:修改表中的数据q ALL:上述所有权限数据库对象的权限(续)q 表级授权使用GRANTREVOKE语句 例:GRANT SELECT ON SC TO U12;数据库对象的权限(续)n行级安全性q ORACLE行级安全性由视图间接实现数据库对象的权限(续)例:用户U1只允许用户U12查看自己创建的Student表中有关信息系学生的信息,则首先创建视图信息系学生视图S_IS:CREATE VIEW S_IS AS SELECT Sno,Sn
30、ame,Ssex,Sage,Sdept FROM Student WHERE Sdept=IS;然后将关于该视图的SELECT权限授予U12用户:GRANT SELECT ON S_IS TO U12;数据库对象的权限(续)n列级安全性q 实现方法n 由视图间接实现n 直接在基本表上定义数据库对象的权限(续)n列级安全性(续)q借助视图实现列级安全性CREATE VIEW S_V AS SELECT Sno.Sname FROM Student;GRANT SELECT ON S_V TO U12;数据库对象的权限(续)n列级安全性(续)q 直接在基本表上定义列级安全性 例:GRANT UPD
31、ATE(Sno,Cno)ON SC TO U12;数据库对象的权限(续)q上一级对象的权限制约下一级对象的权限 例:当一个用户拥有了对某个表的UPDATE权限 相当于在表的所有列了都拥有 UPDATE 权限数据库对象的权限(续)ORACLE对数据库对象的权限采用分散控制方式q允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户ORACLE不允许循环授权 U1 U2 U3 U4 ORACLE的授权与检查机制(续)nORACLE的权限信息记录在数据字典中n当用户进行数据库操作时nORACLE首先根据数据字典中的权限信息,检查操作的合法性Oracle数据库的安全性措施n
32、ORACLE的安全措施:q用户标识和鉴定q授权和检查机制q审计技术q用户通过触发器灵活定义自己的安全性措施ORACLE的审计技术n审计分类q用户级审计q系统级审计ORACLE的审计技术n 用户级审计q由用户设置q用户针对自己创建的数据库表或视图进行审计q审计内容n所有用户对这些表或视图的一切成功和或不成功的访问要求n所有用户对这些表或视图的各类SQL操作ORACLE的审计技术(续)n系统级审计qDBA设置q审计对象和内容n成功或失败的登录要求nGRANT和REVOKE操作n其他数据库级权限下的操作ORACLE的审计设置 可以自由设置qAUDIT:设置审计功能 例:AUDIT ALTER,UPD
33、ATE ON SC;q NOAUDIT:取消审计功能 例:NOAUDIT ALL ON SC;q 对哪些表进行审计q 对哪些操作进行审计ORACLE的审计技术(续)n与审计功能有关的数据字典表q SYS.TABLES:审计设置q SYS.AUDIT_TRAIL:审计内容qSYSTEM.AUDIT_ACTIONORACLE的审计技术(续)n SYS.TABLES:qTAB$NAME:表名;qTAB$OWNER:表的拥有者(即创建者)TAB$AUDIT:审计设置Oracle数据库的安全性措施nORACLE的安全措施:q用户标识和鉴定q授权和检查机制q审计技术q用户通过触发器灵活定义自己的安全性措施
34、用户定义的安全性措施n用数据库级触发器定义用户级安全性例:规定只能在工作时间内更新Student表 可以定义如下触发器:用户定义的安全性措施(续)CREATE TRIGGER secure_studentBEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,DY)IN(SAT,SUN)OR(TO_NUMBER(sysdate,HH24)NOT BETWEEN 8 AND 17)THEN RAISE_APPLICATION_ERROR(-20506,You may only change data during
35、 normal business hours.)END IF;END;用户定义的安全性措施(续)q触发器存放在数据字典中q用户每次对Student表执行INSERT、UPDATE或DELETE自动触发该触发器q系统检查当时的系统时间,如是周六或周日,或者不是8点至17点,系统会拒绝执行用户的更新操作,并提示出错信息。用户定义的安全性措施(续)n利用触发器进一步细化审计规则,使审计操作的粒度更细数据库安全性计算机安全性概论数据库安全性控制统计数据库安全性Oracle数据库的安全性措施小结小结n随着计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要nDBMS是管理数据的核心,因而其自身
36、必须具有一整套完整而有效的安全性机制。小结(续)n可信计算机系统评测标准TCSEC/TDI是目前各国所引用或制定的一系列安全标准中最重要的一个。nCSEC/TDI从安全策略、责任、保证和文档四个方面描述了安全性级别的指标小结(续)n实现数据库系统安全性的技术和方法有多种,最重要的是存取控制技术和审计技术。q目前许多大型DBMS 达到了C2级,其安全版本达到了B1qC2级的DBMS必须具有自主存取控制功能和初步的审计功能qB1级的DBMS必须具有强制存取控制和增强的审计功能q自主存取控制功能一般是通过SQL 的GRANT语句和REVOKE语句来实现的 课后作业n1、2、3、4、5、6、11、12、13、14