1、第四章 数据库安全性章节4.1 计算机安全性概论4.2 数据库安全性控制4.3 统计数据库安全性课型 新授课 课时 2 节课 班级 2005 级 11、12 班教学目标掌握数据库数据库安全性教学重点难点理解安全性控制措施教学关键如何理解安全性教学方法讲解与课件演示教具计算机大屏幕投影复习内容引入内容不具有安全性的数据库危害讲解内容问题的提出数据库的一大特点是数据可以共享但数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、 国家机密、 新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、 医疗档案、 银行储蓄数据数据库中数据的共享是在 DBMS
2、统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一什么是数据库的安全性数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。4.1.1 计算机系统的三类安全性问题 什么是计算机系统安全性三类计算机系统安全性问题技术安全类;管理安全类;政策法律类技术安全指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。管理安全软硬件意外故障、场地的意外事故、管理不善导致
3、的计算机设备和数据介质的物理破坏、丢失等安全问题政策法律类政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令4.1.2 安全标准简介为降低进而消除对系统的安全攻击,各国引用或制定了一系列安全标准TCSEC (桔皮书 )和 CC1985 年美国国防部(DoD)正式颁布 DoD 可信计算机系统评估标准 (简称 TCSEC或 DoD85)TCSEC 又称桔皮书TCSEC 标准的目的提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。给计算机行业的制造商提供一种可循的指导规则,使其产品能够更好地满足敏感应用的安全需求。1991 年 4 月美国 NCSC(国家
4、计算机安全中心)颁布了 可信计算机系统评估标准关于可信数据库系统的解释 ( Trusted Database Interpretation 简称 TDI)TDI 又称紫皮书。它将 TCSEC 扩展到数据库管理系统。TDI 中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准四组(division)七个等级四组(division)七个等级 DC(C1,C2 )B(B1,B2,B3)A(A1 )按系统可靠或可信程度逐渐增高各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。D 级将一切不符合更高标
5、准的系统均归于 D 组典型例子:DOS 是安全标准为 D 的操作系统DOS 在安全性方面几乎没有什么专门的机制来保障C1 级非常初级的自主安全保护能够实现对用户和数据的分离,进行自主存取控制(DAC) ,保护或限制用户权限的传播。C2 级安全产品的最低档次提供受控的存取保护,将 C1 级的 DAC 进一步细化,以个人身份注册负责,并实施审计和资源隔离达到 C2 级的产品在其名称中往往不突出“安全”(Security)这一特色B1 级标记安全保护。 “安全” (Security)或“可信的”(Trusted) 产品。对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC) 、审计等安全
6、机制B2 级 结构化保护 建立形式化的安全策略模型并对系统内的所有主体和客体实施 DAC和 MAC。经过认证的 B2 级以上的安全系统非常稀少数据库 没有符合 B2 标准的产品B3 级 安全域。该级的 TCB 必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A1 级 验证设计,即提供 B3 级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。B2 以上的系统还处于理论研究阶段应用多限于一些特殊的部门如军队等美国正在大力发展安全产品,试图将目前仅限于少数领域应用的 B2 安全级别下放到商业应用中来,并逐步成为新的商业标准。4.2 数据库安全性控制4.2.1 数据库
7、安全性控制概述非法使用数据库的情况用户编写一段合法的程序绕过 DBMS 及其授权机制,通过操作系统直接存取、修改或备份数据库中的数据;直接或编写应用程序执行非授权操作;通过多次合法查询数据库从中推导出一些保密数据 例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工资,于是他:首先查询包括张三在内的一组人的平均工资然后查用自己替换张三后这组人的平均工资从而推导出张三的工资破坏安全性的行为可能是无意的,故意的,恶意的。数据库安全性控制的常用方法用户标识和鉴定 存取控制 视图 审计 密码存储 4.2.2 用户标识与鉴别用户标识与鉴别(Identificati
8、on 谁定义?DBA 和表的建立者(即表的属主)其语义为功能:将对指定操作对象的指定操作权限授予指定的用户。(1) 操作权限(2) 用户的权限建表(CREATETAB)的权限:属于DBADBA 授予普通用户基本表或视图的属主拥有对该表或视图的一切操作权限接受权限的用户: 一个或多个具体用户 PUBLIC(全体用户)(4) WITH GRANT OPTION 子句指定了 WITH GRANT OPTION 子句:获得某种权限的用户还可以把这种权限再授予别的用户。没有指定 WITH GRANT OPTION 子句: 获得某种权限的用户只能使用该权限,不能传播该权限。例 1 把查询 Student
9、表权限授给用户 U1GRANT SELECT ON Student TO U1;例 2 把对 Student 表和 Course 表的全部权限授予用户 U2 和 U3GRANT ALL PRIVILEGES ON TABLE Student, Course TO U2, U3;例 3 把对表 SC 的查询权限授予所有用户GRANT SELECT ON TABLE SC TO PUBLIC;例 4 把查询 Student 表和修改学生学号的权限授给用户 U4GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;例 5 把对表 SC 的 INSERT 权
10、限授予 U5 用户,并允许他再将此权限授予其他用户GRANT INSERT ON TABLE SC TO U5WITH GRANT OPTION;执行例 5 后,U5 不仅拥有了对表 SC 的 INSERT 权限,还可以传播此权限:GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;同样,U6 还可以将此权限授予 U7:GRANT INSERT ON TABLE SC TO U7;但 U7 不能再传播此权限。U5 U6 U7例 6 DBA 把在数据库 S_C 中建立表的权限授予用户 U8GRANT CREATETABON DATABASE S_C
11、TO U8;注意:Oracle 中由 DBA 把 CREATE ANY TABLE 的权限授予用户。二 REVOKEREVOKE 语句的一般格式为:REVOKE ,. ON FROM ,.;功能:从指定用户那里收回对指定对象的指定权限例 7 把用户 U4 修改学生学号的权限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;注意:Oracle 中不能按列收回权限。例 8 收回所有用户对表 SC的查询权限REVOKE SELECT ON TABLE SC FROM PUBLIC;例 9 把用户 U5 对 SC 表的 INSERT 权限收回REVOKE INS
12、ERT ON TABLE SC FROM U5;系统将收回直接或间接从 U5 处获得的对 SC 表的 INSERT 权限:U5 U6 U7收回 U5、U6、U7 获得的对 SC 表的 INSERT 权限:-U5- U6- U7小结:SQL 灵活的授权机制DBA 拥有对数据库中所有对象的所有权限,并可以根据应用的需要将不同的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用 GRANT 语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。所有授予出去的权力在必要时又都可以用 REVOKE 语句收回。4.2.5 数据库
13、角色4.2.6 强制存取控制(MAC)方法(1)什么是强制存取控制强制存取控制是指系统为保证更高程度的安全性,按照 TDI/TCSEC 标准中安全策略的要求,所采取的强制存取检查手段。MAC 不是用户能直接感知或进行控制的。MAC 适用于对数据有严格而固定密级分类的部门军事部门; 政府部门(2)主体与客体在 MAC 中,DBMS 所管理的全部实体被分为主体和客体两大类主体是系统中的活动实体DBMS 所管理的实际用户代表用户的各进程客体是系统中的被动实体,是受主体操纵的文件 基表 索引 视图(3)敏感度标记对于主体和客体,DBMS 为它们每个实例(值)指派一个敏感度标记(Label)敏感度标记分
14、成若干级别绝密(Top Secret)机密(Secret)可信(Confidential)公开(Public)主体的敏感度标记称为许可证级别(Clearance Level)客体的敏感度标记称为密级(Classification Level)MAC 机制就是通过对比主体的 Label 和客体的 Label,最终确定主体是否能够存取客体(4)强制存取控制规则当某一用户(或某一主体)以标记 label 注册入系统时,系统要求他对任何客体的存取必须遵循下面两条规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;(2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应
15、的客体。4.3 视图机制视图机制把要保密的数据对无权存取这些数据的用户隐藏起来,视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。视图机制与授权机制配合使用:首先用视图机制屏蔽掉一部分保密数据视图上面再进一步定义存取权限间接实现了支持存取谓词的用户权限定义例:王平只能检索计算机系学生的信息先建立计算机系学生的视图 CS_StudentCREATE VIEW CS_StudentAS SELECT * FROM StudentWHERE Sdept=CS;在视图上进一步定义存取权限GRANT SELECT ON CS_Student TO 王平 ;4.
16、4 审计什么是审计启用一个专用的审计日志(Audit Log) ,将用户对数据库的所有操作记录在上面。DBA可以利用审计日志中的追踪信息,找出非法存取数据的人C2 以上安全级别的 DBMS 必须具有审计功能审计功能的可选性审计很费时间和空间DBA 可以根据应用对安全性的要求,灵活地打开或关闭审计功能。4.5 数据加密数据加密: 防止数据库中数据在存储和传输中失密的有效手段加密的基本思想:根据一定的算法将原始数据(术语为明文,Plain text)变换为不可直接识别的格式(术语为密文,Cipher text)不知道解密算法的人无法获知数据的内容加密方法替换方法使用密钥(Encryption Ke
17、y)将明文中的每一个字符转换为密文中的一个字符置换方法将明文的字符按不同的顺序重新排列混合方法 美国 1977 年制定的官方加密标准:数据加密标准(Data Encryption Standard,简称 DES)DBMS 中的数据加密有些数据库产品提供了数据加密例行程序有些数据库产品本身未提供加密程序,但提供了接口数据加密功能通常也作为可选特征,允许用户自由选择数据加密与解密是比较费时的操作数据加密与解密程序会占用大量系统资源应该只对高度机密的数据加密4.6 统计数据库安全性统计数据库的特点允许用户查询聚集类型的信息(例如合计、平均值等)不允许查询单个记录信息例:允许查询“程序员的平均工资是多少?” 不允许查询“程序员张勇的工资?”统计数据库中特殊的安全性问题隐蔽的信息通道从合法的查询中推导出不合法的信息例 1:下面两个查询都是合法的:1本公司共有多少女高级程序员?2本公司女高级程序员的工资总额是多少?如果第一个查询的结果是“1 ”,那么第二个查询的结果显然就是这个程序员的工资数。规则 1:任何查询至少要涉及 N(N 足够大)个以上的记录归纳总结实现数据库系统安全性的方法有多种:最重要的是存取控制技术、视图技术和审计技术。思考练习作业P148-1,6,7,8,9课后分析下一单元预习内容及要求数据库完整性