《数据库安全性》由会员分享,可在线阅读,更多相关《数据库安全性(53页珍藏版)》请在金锄头文库上搜索。
1、第四章第四章 数据库安全性数据库安全性qq计算机安全性概述qq数据库安全性控制n n问题的提出n n数据库的一大特点是数据可以共享数据库的一大特点是数据可以共享n n但数据共享必然带来数据库的安全性问题但数据共享必然带来数据库的安全性问题n n数据库系统中的数据共享不能是无条件的共享数据库系统中的数据共享不能是无条件的共享例:军事秘密、例:军事秘密、 国家机密、国家机密、 新产品实验数据、新产品实验数据、 市场需求分析、市场营销策略、销售计划、市场需求分析、市场营销策略、销售计划、 客户档案、客户档案、 医疗档案、医疗档案、 银行储蓄数据银行储蓄数据n n数数据据库库中中数数据据的的共共享享是
2、是在在DBMSDBMS统统一一的的严严格格的的控控制制之之下下的的共共享享,即即只只允允许许有有合合法法使使用用权权限限的的用户访问允许他存取的数据用户访问允许他存取的数据n n数数据据库库系系统统的的安安全全保保护护措措施施是是否否有有效效是是数数据据库库系统主要的性能指标之一系统主要的性能指标之一n n什么是数据库的安全性n n数数据据库库的的安安全全性性是是指指保保护护数数据据库库,防防止止因因用用户户非法使用数据库造成数据泄露、更改或破坏。非法使用数据库造成数据泄露、更改或破坏。n n什么是数据的保密n n数数据据保保密密是是指指用用户户合合法法地地访访问问到到机机密密数数据据后后能能
3、否对这些数据保密。否对这些数据保密。n n通过制订法律道德准则和政策法规来保证。通过制订法律道德准则和政策法规来保证。4.1计算机安全性概述计算机安全性概述n n计算机系统的三类安全性问题 n n可信计算机系统评测标准计算机系统的三类安全性问题计算机系统的三类安全性问题n n什么是计算机系统安全性n n为计算机系统建立和采取的各种安全保护措施,为计算机系统建立和采取的各种安全保护措施,以保护计算机系统中的硬件、软件及数据,防以保护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系统遭到破坏,数止其因偶然或恶意的原因使系统遭到破坏,数据遭到更改或泄露等。据遭到更改或泄露等。n n计算机
4、安全涉及问题n n计算机系统本身的技术问题计算机系统本身的技术问题n n计算机安全理论与策略计算机安全理论与策略n n计算机安全技术计算机安全技术n n管理问题管理问题n n安全管理安全管理n n安全评价安全评价n n安全产品安全产品n n法学法学n n计算机安全法律计算机安全法律n n犯罪学犯罪学n n计算机犯罪与侦察计算机犯罪与侦察n n安全监察安全监察n n心理学心理学n n三类计算机系统安全性问题n n技术安全类技术安全类n n管理安全类管理安全类n n政策法律类政策法律类n n技术安全n n指计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统及其所存数据的安全保护,当计算机
5、系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄露。n n管理安全n n软硬件意外故障、场地的意外事故、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全问题n n政策法律类n n政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令4.2 数据库安全性控制数据库安全性控制n n非法使用数据库的情况n n用户编写一段合法的程序绕过用户编写一段合法的程序绕过DBMSDBMS及其授权及其授权机制,通过操作系统直接存取、修改或备份数机制,通过操作系统直接存取、修改或备份数据库中的数据;据库中的数据;n n直接编写应用程序执行非授权操作;直接
6、编写应用程序执行非授权操作;n n通过多次合法查询数据库从中推导出一些保密通过多次合法查询数据库从中推导出一些保密数据数据 例:某数据库应用系统禁止查询单个人的工资,但允例:某数据库应用系统禁止查询单个人的工资,但允许查任意一组人的平均工资。用户甲想了解张三的工许查任意一组人的平均工资。用户甲想了解张三的工资,于是他:资,于是他: 首先查询包括张三在内的一组人的平均工资首先查询包括张三在内的一组人的平均工资 然后查用自己替换张三后这组人的平均工资然后查用自己替换张三后这组人的平均工资 从而推导出张三的工资从而推导出张三的工资n n破坏安全性的行为可能是无意的,故意的,恶破坏安全性的行为可能是无
7、意的,故意的,恶意的。意的。n n数据库安全性控制的常用方法n n用户标识和鉴定用户标识和鉴定n n存取控制存取控制n n视图视图n n审计审计n n密码存储密码存储计算机系统的安全模型用户DBMSOSDB用户标识和鉴别存取控制操作系统安全保护数据密码存储用户标识与鉴别用户标识与鉴别n n用户标识与鉴别(Identification & Authentication)n n系统提供的最外层安全保护措施系统提供的最外层安全保护措施用户标识与鉴别基本方法用户标识与鉴别基本方法n n系统提供一定的方式让用户标识自己的名字或身份;n n系统内部记录着所有合法用户的标识;n n每次用户要求进入系统时,由
8、系统核对用户提供的身份标识;n n通过鉴定后才提供机器使用权。n n用户标识和鉴定可以重复多次用户标识自己的名字或身份用户标识自己的名字或身份n n用户名用户名/ /口令口令n n简单易行,容易被人窃取简单易行,容易被人窃取n n每个用户预先约定好一个计算过程或者函数每个用户预先约定好一个计算过程或者函数n n系统提供一个随机数系统提供一个随机数n n用户根据自己预先约定的计算过程或者函数进用户根据自己预先约定的计算过程或者函数进行计算行计算n n系统根据用户计算结果是否正确鉴定用户身份系统根据用户计算结果是否正确鉴定用户身份存取控制存取控制qq存取控制存取控制存取控制存取控制: : 按预先定
9、义好的按预先定义好的按预先定义好的按预先定义好的用户权限用户权限用户权限用户权限控制用户对控制用户对控制用户对控制用户对数据库的存取数据库的存取数据库的存取数据库的存取, , 保证用户只能存取到有权存取的保证用户只能存取到有权存取的保证用户只能存取到有权存取的保证用户只能存取到有权存取的数据数据数据数据qq存取控制机制的组成存取控制机制的组成n n 定义用户权限定义用户权限, ,并登记到数据字典中并登记到数据字典中n n 合法权限检查合法权限检查用户权限定义和合法权检查机制一起组成了用户权限定义和合法权检查机制一起组成了DBMSDBMS的的安全子系统安全子系统n n定义存取权限定义存取权限n
10、n在数据库系统中,为了保证用户只能访问他在数据库系统中,为了保证用户只能访问他有权存取的数据,必须预先对每个用户定义有权存取的数据,必须预先对每个用户定义存取权限。存取权限。n n检查存取权限检查存取权限n n对于通过鉴定获得上机权的用户(即合法用对于通过鉴定获得上机权的用户(即合法用户),系统根据他的存取权限定义对他的各户),系统根据他的存取权限定义对他的各种操作请求进行控制,确保他只执行合法操种操作请求进行控制,确保他只执行合法操作。作。常用存取控制方法常用存取控制方法n n自主存取控制(自主存取控制(Discretionary Access Control Discretionary A
11、ccess Control ,简称,简称DACDAC)n n C2C2级级n n 灵活灵活n n强制存取控制(强制存取控制(Mandatory Access ControlMandatory Access Control,简称简称 MACMAC)n n B1B1级级n n严格严格自主存取控制方法自主存取控制方法n n同一用户对于不同的数据对象有不同的存取权限n n不同的用户对同一对象也有不同的权限n n用户还可将其拥有的存取权限转授给其他用户用户权限用户权限: : 用户对数据库中的不同数据对象用户对数据库中的不同数据对象允许执行的操作权限允许执行的操作权限关系系统中的存取权限关系系统中的存取权
12、限: : 不同的不同的DBMSDBMS具体具体实现方法是存在一些差别的实现方法是存在一些差别的数据本身:表、属性列外模式, 模式, 内模式:不同类型的数据对象有不同的操作权力关系数据库系统中的存取权限关系数据库系统中的存取权限授权与回收授权与回收qqGrantGrant语句的一般格式语句的一般格式语句的一般格式语句的一般格式 grant grant , on on to to , with grant option; with grant option;qq把指定对象的一些操作权限授给一些用户把指定对象的一些操作权限授给一些用户把指定对象的一些操作权限授给一些用户把指定对象的一些操作权限授给一
13、些用户qq例子例子例子例子: : 把查询把查询把查询把查询StudentsStudents表的权限授给用户表的权限授给用户表的权限授给用户表的权限授给用户wangwang grant select on table Students to grant select on table Students to wangwang; ;qq例子例子例子例子: : 把查询把查询把查询把查询StudentsStudents和和和和SCSC表的权限授给全部用户表的权限授给全部用户表的权限授给全部用户表的权限授给全部用户 grant select on table Students, SC to public
14、;grant select on table Students, SC to public;qqwith grant optionwith grant option子句子句子句子句 例子例子例子例子: : 把对表把对表把对表把对表SCSC的查询权限、修改成绩权限授给的查询权限、修改成绩权限授给的查询权限、修改成绩权限授给的查询权限、修改成绩权限授给wangwang和和和和zhangzhang, , 并允许并允许并允许并允许wangwang和和和和zhangzhang将该权限授予将该权限授予将该权限授予将该权限授予他人他人他人他人 grant select, grant select, upda
15、te(Gradeupdate(Grade) on table SC ) on table SC to to wangwang, , zhangzhang with grant option; with grant option;qqDBADBA、对象的建立者和经过对象的建立者和经过对象的建立者和经过对象的建立者和经过with grant optionwith grant option授权授权授权授权的用户可以把他们对该对象具有的操作权限授予的用户可以把他们对该对象具有的操作权限授予的用户可以把他们对该对象具有的操作权限授予的用户可以把他们对该对象具有的操作权限授予其它的合法用户其它的合法用户其
16、它的合法用户其它的合法用户qqDBADBA把在数据库把在数据库把在数据库把在数据库S-CS-C中建立表的权限授予中建立表的权限授予中建立表的权限授予中建立表的权限授予zhaozhao grant grant createtabcreatetab on database S-C to on database S-C to zhaozhao; ;qq不同对象允许的操作权限不同对象允许的操作权限不同对象允许的操作权限不同对象允许的操作权限 对象对象对象对象 对象类型对象类型对象类型对象类型 操作权限操作权限操作权限操作权限 属性列属性列属性列属性列 table select update table
17、 select update 视图视图视图视图 table select update insert deletetable select update insert delete all privileges all privileges 基本表基本表基本表基本表 table select update insert deletetable select update insert delete alter index all privileges alter index all privileges 数据库数据库数据库数据库 database database createtabcreat
18、etabDBADBA具有在数据库中建立表的权限具有在数据库中建立表的权限具有在数据库中建立表的权限具有在数据库中建立表的权限用户仅能根据自己所拥有的权限来操作数据库中的数据用户仅能根据自己所拥有的权限来操作数据库中的数据用户仅能根据自己所拥有的权限来操作数据库中的数据用户仅能根据自己所拥有的权限来操作数据库中的数据收回授权收回授权qq授出的权限可以由授出的权限可以由授出的权限可以由授出的权限可以由DBADBA或其他的授权者收回或其他的授权者收回或其他的授权者收回或其他的授权者收回 revoke revoke , on on from from , qq例子例子例子例子: : 把用户把用户把用户
19、把用户wangwang和和和和zhangzhang修改成绩的权限收回修改成绩的权限收回修改成绩的权限收回修改成绩的权限收回 revoke update(Grade) on table SC revoke update(Grade) on table SC from from wangwang, , zhangzhang; ;qq权利回收操作是级联的权利回收操作是级联的权利回收操作是级联的权利回收操作是级联的 例如例如例如例如: DBA user1 user2: DBA user1 user2 user3 user3授予SC表的 select权限收回授权收回授权 revoke select on
20、 table SC from user1从从从从user1user1、user2user2和和和和user3user3收回对收回对收回对收回对SCSC表的表的表的表的selectselect权限权限权限权限qq例子:收回所有用户对例子:收回所有用户对例子:收回所有用户对例子:收回所有用户对SCSC表的查询授权表的查询授权表的查询授权表的查询授权REVOKE SELECT ON TABLE SC FROM REVOKE SELECT ON TABLE SC FROM PUBLIC;PUBLIC;授权与回收小结授权与回收小结n nDBA拥有对数据库中所有对象的权限,并可以根据实际情况将不同的权限授
21、予不同的用户n n用户对自己建立的基本表和视图拥有全部的操作权限,并且可以将其中某些权限授予其他用户n n被授权的用户如果有继续授权的许可,还可以把获得的权限再授予其他用户创建数据库模式的权限创建数据库模式的权限n n对数据库模式的授权则由DBA在创建用户时实现n nCREATE USER WITHDBA|RESOURCE|CONNECT数据库角色数据库角色n n数据库角色:被命名的一组与数据库操作相关的权限,角色是权限的集合n n优点:n n为一组具有相同权限的用户创建一个角色为一组具有相同权限的用户创建一个角色, ,利用利用角色管理数据库权限简化权限管理角色管理数据库权限简化权限管理n n
22、角色创建 CREATE ROLE n n给角色授权给角色授权 GRANT GRANT , ,. ON ON TO TO , ,.n n将一个角色授予其他的角色或用户将一个角色授予其他的角色或用户 GRANT GRANT , ,.2. TO TO , ,.1. WITH ADMIN OPTION WITH ADMIN OPTIONn n角色权限的收回角色权限的收回强制存取控制方法强制存取控制方法n n什么是强制存取控制n n强制存取控制强制存取控制(MAC)(MAC)是指系统为保证更高程度的安全性,是指系统为保证更高程度的安全性,按照按照TDI/TCSECTDI/TCSEC标准中安全策略的要求,
23、所采取的强标准中安全策略的要求,所采取的强制存取检查手段。制存取检查手段。n nMACMAC不是用户能直接感知或进行控制的。不是用户能直接感知或进行控制的。n nMACMAC适用于对数据有严格而固定密级分类的部门适用于对数据有严格而固定密级分类的部门n n 军事部门军事部门n n 政府部门政府部门n n主体与客体n n在在MACMAC中,中,DBMSDBMS所管理的全部实体被分为主体和客体所管理的全部实体被分为主体和客体两大类两大类n n主体是系统中的活动实体主体是系统中的活动实体n n DBMSDBMS所管理的实际用户所管理的实际用户n n 代表用户的各进程代表用户的各进程n n客体是系统中
24、的被动实体,是受主体操纵的客体是系统中的被动实体,是受主体操纵的n n 文件文件n n 基表基表n n 索引索引n n 视图视图n n敏感度标记n n 对于主体和客体,对于主体和客体,DBMSDBMS为它们每个实例(值)为它们每个实例(值)指派一个敏感度标记(指派一个敏感度标记(LabelLabel)n n 敏感度标记分成若干级别敏感度标记分成若干级别n n 绝密(绝密(Top SecretTop Secret)n n 机密(机密(SecretSecret)n n 可信(可信(ConfidentialConfidential)n n 公开(公开(PublicPublic)n n主体的敏感度标记
25、称为许可证级别(主体的敏感度标记称为许可证级别(Clearance Clearance LevelLevel)n n客体的敏感度标记称为密级(客体的敏感度标记称为密级(Classification Classification LevelLevel)n nMACMAC机制就是通过对比主体的机制就是通过对比主体的LabelLabel和客体的和客体的LabelLabel,最终确定主体是否能够存取客体,最终确定主体是否能够存取客体n n强制存取控制规则n n当某一用户(或某一主体)以标记当某一用户(或某一主体)以标记labellabel注册入注册入系统时,系统要求他对任何客体的存取必须遵系统时,系统
26、要求他对任何客体的存取必须遵循下面两条规则:循下面两条规则:(1 1)仅当主体的许可证级别大于或等于客体的)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体;密级时,该主体才能读取相应的客体;(2 2)仅当主体的许可证级别等于客体的密级时,)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。该主体才能写相应的客体。n n修正规则:n n主体的许可证级别 =客体的密级 主体能写客体n n用户可为写入的数据对象赋予高于自 己的许可证级别的密级n n一旦数据被写入,该用户自己也不能再读该数据对象了。n n规则的共同点禁止了拥有高许可证级别的主体更新低密级的数据对象n
27、n强制存取控制的特点n nMACMAC是对数据本身进行密级标记是对数据本身进行密级标记n n无论数据如何复制,标记与数据是一个不可分无论数据如何复制,标记与数据是一个不可分的整体的整体n n只有符合密级标记要求的用户才可以操纵数据只有符合密级标记要求的用户才可以操纵数据n n从而提供了更高级别的安全性从而提供了更高级别的安全性n nDAC与MAC共同构成DBMS的安全机制n n原因:较高安全性级别提供的安全保护要包含较低级别的所有保护n n先进行DAC检查,通过DAC检查的数据对象再由系统进行MAC检查,只有通过MAC检查的数据对象方可存取。4.3 视图机制视图机制n n视图机制把要保密的数据
28、对无权存取这些数据的用户隐藏起来,n n 视图机制更主要的功能在于提供数据独立性,其安全保护功能太不精细,往往远不能达到应用系统的要求。n n视图机制与授权机制配合使用:n n首先用视图机制屏蔽掉一部分保密数据n n视图上面再进一步定义存取权限n n间接实现了支持存取谓词的用户权限定义例 王平只能检索计算机系学生的信息 先建立计算机系学生的视图先建立计算机系学生的视图CS_StudentCS_Student CREATE VIEW CREATE VIEW CS_StudentCS_Student AS AS SELECT SELECT FROM Student FROM Student WHE
29、RE WHERE SdeptSdept=CS=CS;在视图上进一步定义存取权限在视图上进一步定义存取权限 GRANT SELECTGRANT SELECT ON ON CS_StudentCS_Student TO TO 王平王平 ;4.4 审计审计n n什么是审计n n启用一个专用的审计日志(启用一个专用的审计日志(Audit LogAudit Log) 将用户对数据库的所有操作记录在上面将用户对数据库的所有操作记录在上面n nDBADBA可以利用审计日志中的追踪信息可以利用审计日志中的追踪信息 找出非法存取数据的人找出非法存取数据的人n nC2C2以上安全级别的以上安全级别的DBMSDBM
30、S必须具有审计功能必须具有审计功能n n审计功能的可选性n n审计很费时间和空间审计很费时间和空间n nDBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。n n强制性机制:用户识别和鉴定、存取控制、视图用户识别和鉴定、存取控制、视图n n预防监测手段: 审计技术4.5 数据加密数据加密n n数据加密n n防止数据库中数据在存储和传输中失密的有效防止数据库中数据在存储和传输中失密的有效手段手段n n加密的基本思想n n根据一定的算法将原始数据(术语为明文,根据一定的算法将原始数据(术语为明文,Plain textPlain text)变换为不可直接识别的格式(术语)变换为不可直接识别的
31、格式(术语为密文,为密文,Cipher textCipher text)n n不知道解密算法的人无法获知数据的内容不知道解密算法的人无法获知数据的内容n n加密方法加密方法n n 替换方法替换方法n n使用密钥(使用密钥(Encryption KeyEncryption Key)将明文中的每一个字符)将明文中的每一个字符转换为密文中的一个字符转换为密文中的一个字符n n置换方法置换方法n n将明文的字符按不同的顺序重新排列将明文的字符按不同的顺序重新排列n n混合混合方法方法 美国美国19771977年制定的官方加密标准:数据加密标准年制定的官方加密标准:数据加密标准(Data Encryption StandardData Encryption Standard,简称,简称DESDES)n nDBMS中的数据加密n n有些数据库产品提供了数据加密例行程序有些数据库产品提供了数据加密例行程序n n有些数据库产品本身未提供加密程序,但提供有些数据库产品本身未提供加密程序,但提供了接口了接口n n数据加密功能通常也作为可选特征,允许用户自由选择n n数据加密与解密是比较费时的操作数据加密与解密是比较费时的操作n n数据加密与解密程序会占用大量系统资源数据加密与解密程序会占用大量系统资源n n应该只对高度机密的数据加密应该只对高度机密的数据加密