数据库系统概论(第五版)ppt第4章课件.ppt
,数据库系统概论An Introduction to Database System第四章 数据库安全性,xx大学信息学院,数据库安全性,问题的提出数据库的一大特点是数据可以共享数据共享必然带来数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例: 军事秘密、国家机密、新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、医疗档案、银行储蓄数据,数据库安全性(续),数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。系统安全保护措施是否有效是数据库系统主要的性能指标之一。,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性保护4.7 小结,4.1 数据库安全性概述,4.1.1 数据库的不安全因素4.1.2 安全标准简介,1.非授权用户对数据库的恶意存取和破坏一些黑客(Hacker)和犯罪分子在用户存取数据库时猎取用户名和用户口令,然后假冒合法用户偷取、修改甚至破坏用户数据。数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。,4.1.1 数据库的不安全因素,2.数据库中重要或敏感的数据被泄露黑客和敌对分子千方百计盗窃数据库中的重要数据,一些机密信息被暴露。数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。审计日志分析,数据库的不安全因素(续),数据库的不安全因素(续),3.安全环境的脆弱性数据库的安全性与计算机系统的安全性紧密联系计算机硬件、操作系统、网络系统等的安全性建立一套可信(Trusted)计算机系统的概念和标准,4.1 数据库安全性概述,4.1.1 数据库的不安全因素4.1.2 安全标准简介,4.1.2 安全标准简介,1985年美国国防部(DoD)正式颁布DoD可信计算机系统评估准则(简称TCSEC或DoD85)不同国家建立在TCSEC概念上的评估准则欧洲的信息技术安全评估准则(ITSEC)加拿大的可信计算机产品评估准则(CTCPEC) 美国的信息技术安全联邦标准(FC),安全标准简介(续),1993年,CTCPEC、FC、TCSEC和ITSEC联合行动,解决原标准中概念和技术上的差异,称为CC(Common Criteria)项目1999年 CC V2.1版被ISO采用为国际标准 2001年 CC V2.1版被我国采用为国家标准目前CC已基本取代了TCSEC,成为评估信息产品安全性的主要标准。,安全标准简介(续),信息安全标准的发展历史,安全标准简介(续),TCSEC标准CC标准,TCSEC标准,1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释( Trusted Database Interpretation 简称TDI)TDI又称紫皮书。它将TCSEC扩展到数据库管理系统TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准,TCSEC标准(续),TCSEC/TDI标准的基本内容TCSEC/TDI,从四个方面来描述安全性级别划分的指标安全策略责任保证文档,TCSEC/TDI安全级别划分,TCSEC/TDI安全级别划分,TCSEC/TDI安全级别划分(续),四组(division)七个等级 D C(C1,C2) B(B1,B2,B3) A(A1)按系统可靠或可信程度逐渐增高各安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力,TCSEC/TDI安全级别划分(续),D级将一切不符合更高标准的系统均归于D组典型例子:DOS是安全标准为D的操作系统 DOS在安全性方面几乎没有什么专门的机制来保障,TCSEC/TDI安全级别划分(续),C1级非常初级的自主安全保护能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统稍作改进即可满足,TCSEC/TDI安全级别划分(续),C2级安全产品的最低档次提供受控的存取保护,将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离达到C2级的产品在其名称中往往不突出“安全”(Security)这一特色典型例子 Windows 2000 Oracle 7,TCSEC/TDI安全级别划分(续),B1级标记安全保护。“安全”(Security)或“可信的” (Trusted)产品。对系统的数据加以标记,对标记的主体和客体实施强制存取控制(MAC)、审计等安全机制B1级典型例子 操作系统惠普公司的HP-UX BLS release 9.09+ 数据库Oracle公司的Trusted Oracle 7Sybase公司的Secure SQL Server version 11.0.6,An Introduction to Database System,TCSEC/TDI安全级别划分(续),B2级结构化保护建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC,An Introduction to Database System,TCSEC/TDI安全级别划分(续),B3级安全域该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程A1级验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。,CC,CC提出国际公认的表述信息技术安全性的结构把信息产品的安全要求分为安全功能要求安全保证要求,CC(续),CC文本组成简介和一般模型有关术语、基本概念和一般模型以及与评估有关的一些框架安全功能要求列出了一系列类、子类和组件安全保证要求列出了一系列保证类、子类和组件提出了评估保证级(Evaluation Assurance Level,EAL),从EAL1至EAL7共分为七级,CC(续),CC评估保证级(EAL)划分,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性4.7 小结,4.2 数据库安全性控制,非法使用数据库的情况编写合法程序绕过数据库管理系统及其授权机制直接或编写应用程序执行非授权操作通过多次合法查询数据库从中推导出一些保密数据,数据库安全性控制(续),计算机系统中,安全措施是一级一级层层设置,计算机系统的安全模型,数据库安全性控制(续),系统根据用户标识鉴定用户身份,合法用户才准许进入计算机系统数据库管理系统还要进行存取控制,只允许用户执行合法操作 操作系统有自己的保护措施 数据以密码形式存储到数据库中,数据库安全性控制(续),数据库管理系统安全性控制模型,存取控制流程首先,数据库管理系统对提出SQL访问请求的数据库用户进行身份鉴别,防止不可信用户使用系统。然后,在SQL处理层进行自主存取控制和强制存取控制,进一步可以进行推理控制。还可以对用户访问行为和系统关键操作进行审计,对异常用户行为进行简单入侵检测。,数据库安全性控制(续),数据库安全性控制(续),数据库安全性控制的常用方法用户标识和鉴定存取控制视图审计数据加密,4.2 数据库安全性控制,4.2.1 用户身份鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法,4.2.1 用户身份鉴别,用户身份鉴别 (Identification & Authentication)系统提供的最外层安全保护措施用户标识:由用户名和用户标识号组成 (用户标识号在系统整个生命周期内唯一),用户身份鉴别(续),用户身份鉴别的方法1.静态口令鉴别静态口令一般由用户自己设定,这些口令是静态不变的2.动态口令鉴别口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法3.生物特征鉴别通过生物特征进行认证的技术,生物特征如指纹、虹膜和掌纹等4.智能卡鉴别智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法,4.2.2 存取控制,存取控制机制组成定义用户权限,并将用户权限登记到数据字典中用户对某一数据对象的操作权力称为权限 DBMS提供适当的语言来定义用户权限,存放在数据字典中,称做安全规则或授权规则 合法权限检查 用户发出存取数据库操作请求DBMS查找数据字典,进行合法权限检查用户权限定义和合法权检查机制一起组成了数据库管理系统的存取控制子系统,存取控制(续),常用存取控制方法自主存取控制(Discretionary Access Control ,简称DAC) C2级用户对不同的数据对象有不同的存取权限不同的用户对同一对象也有不同的权限用户还可将其拥有的存取权限转授给其他用户,存取控制(续),常用存取控制方法(续)强制存取控制(Mandatory Access Control,简称 MAC)B1级每一个数据对象被标以一定的密级每一个用户也被授予某一个级别的许可证对于任意一个对象,只有具有合法许可证的用户才可以存取,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法,4.2.3 自主存取控制方法,通过 SQL 的GRANT 语句和REVOKE 语句实现用户权限组成数据对象操作类型定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类型的操作定义存取权限称为授权,自主存取控制方法(续),关系数据库系统中存取控制对象,关系数据库系统中的存取权限,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法,4.2.4 授权:授予与回收,1.GRANTGRANT语句的一般格式: GRANT ,. ON , TO ,. WITH GRANT OPTION;语义:将对指定操作对象的指定操作权限授予指定的用户,GRANT(续),发出GRANT:数据库管理员数据库对象创建者(即属主Owner)拥有该权限的用户按受权限的用户 一个或多个具体用户PUBLIC(即全体用户),WITH GRANT OPTION子句,WITH GRANT OPTION子句:指定:可以再授予没有指定:不能传播不允许循环授权,例题,例4.1 把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1;,例题(续),例4.2 把对Student表和Course表的全部权限授予用户U2和U3 GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;,例题(续),例4.3 把对表SC的查询权限授予所有用户 GRANT SELECT ON TABLE SC TO PUBLIC;,例题(续),例4.4 把查询Student表和修改学生学号的权限授给用户U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;对属性列的授权时必须明确指出相应属性列名,例题(续),例4.5 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;,传播权限,执行例4.5后,U5不仅拥有了对表SC的INSERT权限, 还可以传播此权限: 例4.6 GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7: 例4.7 GRANT INSERT ON TABLE SC TO U7; 但U7不能再传播此权限。,传播权限(续),执行了例4.1例4.7语句后学生-课程数据库中的用户权限定义表,授权:授予与回收(续),2.REVOKE授予的权限可以由数据库管理员或其他授权者用REVOKE语句收回REVOKE语句的一般格式为: REVOKE ,. ON , FROM ,.CASCADE | RESTRICT;,REVOKE(续),例4.8 把用户U4修改学生学号的权限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;,REVOKE(续),例4.9 收回所有用户对表SC的查询权限REVOKE SELECT ON TABLE SC FROM PUBLIC;,REVOKE(续),例4.10 把用户U5对SC表的INSERT权限收回REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;将用户U5的INSERT权限收回的时候应该使用CASCADE,否则拒绝执行该语句 如果U6或U7还从其他用户处获得对SC表的INSERT权限,则他们仍具有此权限,系统只收回直接或间接从U5处获得的权限,REVOKE(续),执行例4.84.10语句后学生-课程数据库中的用户权限定义表,小结:SQL灵活的授权机制,数据库管理员:拥有所有对象的所有权限根据实际情况不同的权限授予不同的用户用户:拥有自己建立的对象的全部的操作权限可以使用GRANT,把权限授予其他用户被授权的用户如果具有“继续授权”的许可,可以把获得的权限再授予其他用户所有授予出去的权力在必要时又都可用REVOKE语句收回,授权:授予与回收(续),3.创建数据库模式的权限 数据库管理员在创建用户时实现CREATE USER语句格式 CREATE USER WITHDBA|RESOURCE|CONNECT;注: CREATE USER不是SQL标准,各个系统的实现相差甚远,授权:授予与回收(续),CREATE USER语句格式说明只有系统的超级用户才有权创建一个新的数据库用户新创建的数据库用户有三种权限:CONNECT、RESOURCE和DBA如没有指定创建的新用户的权限,默认该用户拥有CONNECT权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库,An Introduction to Database System,授权:授予与回收(续),CREATE USER语句格式说明(续)拥有RESOURCE权限的用户能创建基本表和视图,成为所创建对象的属主。但不能创建模式,不能创建新的用户拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等;DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户,授权:授予与回收(续),权限与可执行的操作对照表,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权:授予与回收4.2.5 数据库角色4.2.6 强制存取控制方法,4.2.5 数据库角色,数据库角色:被命名的一组与数据库操作相关的权限角色是权限的集合 可以为一组具有相同权限的用户创建一个角色简化授权的过程,数据库角色(续),1.角色的创建CREATE ROLE 2.给角色授权 GRANT , ON 对象名 TO ,数据库角色(续),3.将一个角色授予其他的角色或用户GRANT ,TO , WITH ADMIN OPTION该语句把角色授予某用户,或授予另一个角色授予者是角色的创建者或拥有在这个角色上的ADMIN OPTION指定了WITH ADMIN OPTION则获得某种权限的角色或用户还可以把这种权限授予其他角色一个角色的权限:直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限,4.角色权限的收回 REVOKE ,ON FROM ,用户可以回收角色的权限,从而修改角色拥有的权限REVOKE执行者是角色的创建者拥有在这个(些)角色上的ADMIN OPTION,数据库角色(续),数据库角色(续),例4.11 通过角色来实现将一组权限授予一个用户。步骤如下:(1)首先创建一个角色 R1 CREATE ROLE R1;(2)然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT权限 GRANT SELECT, UPDATE, INSERT ON TABLE Student TO R1;,数据库角色(续),(3)将这个角色授予王平,张明,赵玲。使他们具有角色R1所包含的全部权限 GRANT R1 TO 王平,张明,赵玲;(4) 可以一次性通过R1来回收王平的这3个权限 REVOKE R1 FROM 王平;,数据库角色(续),例4.12 角色的权限修改 GRANT DELETE ON TABLE Student TO R1; 使角色R1在原来的基础上增加了Student表的DELETE 权限,数据库角色(续),例4.13 REVOKE SELECT ON TABLE Student FROM R1; 使R1减少了SELECT权限,4.2 数据库安全性控制,4.2.1 用户标识与鉴别4.2.2 存取控制4.2.3 自主存取控制方法4.2.4 授权与回收4.2.5 数据库角色4.2.6 强制存取控制方法,自主存取控制缺点,可能存在数据的“无意泄露”原因:这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记解决:对系统控制下的所有主客体实施强制存取控制策略,4.2.6 强制存取控制方法,强制存取控制(MAC)保证更高程度的安全性用户不能直接感知或进行控制适用于对数据有严格而固定密级分类的部门 军事部门 政府部门,强制存取控制方法(续),在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类主体是系统中的活动实体 数据库管理系统所管理的实际用户 代表用户的各进程客体是系统中的被动实体,受主体操纵 文件、基本表、索引、视图,强制存取控制方法(续),敏感度标记(Label) 对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label) 敏感度标记分成若干级别绝密(Top Secret,TS)机密(Secret,S)可信(Confidential,C)公开(Public,P)TS=S=C=P主体的敏感度标记称为许可证级别(Clearance Level)客体的敏感度标记称为密级(Classification Level),强制存取控制方法(续),强制存取控制规则 (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体 (2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体,强制存取控制方法(续),强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据。实现强制存取控制时要首先实现自主存取控制原因:较高安全性级别提供的安全保护要包含较低级别的所有保护自主存取控制与强制存取控制共同构成数据库管理系统的安全机制,DAC + MAC安全检查,SQL语法分析 & 语义检查 DAC 检 查 安全检查 MAC 检 查 继续语义检查,先进行自主存取控制检查,通过自主存取控制检查的数据对象再由系统进行强制存取控制检查,只有通过强制存取控制检查的数据对象方可存取。,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性保护4.7 小结,4.3 视图机制,把要保密的数据对无权存取这些数据的用户隐藏起来,对数据提供一定程度的安全保护 间接地实现支持存取谓词的用户权限定义,视图机制(续),例4.14 建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT * FROM Student WHERE Sdept=CS;,视图机制(续),在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO 王平; GRANT ALL PRIVILIGES ON CS_Student TO 张明;,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性保护4.7 小结,4.4 审计,什么是审计启用一个专用的审计日志(Audit Log) 将用户对数据库的所有操作记录在上面审计员利用审计日志监控数据库中的各种行为,找出非法存取数据的人、时间和内容C2以上安全级别的DBMS必须具有审计功能,An Introduction to Database System,审计(续),审计功能的可选性审计很费时间和空间DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能审计功能主要用于安全性要求较高的部门,审计(续),1.审计事件服务器事件审计数据库服务器发生的事件系统权限对系统拥有的结构或模式对象进行操作的审计要求该操作的权限是通过系统权限获得的语句事件对SQL语句,如DDL、DML、DQL及DCL语句的审计模式对象事件对特定模式对象上进行的SELECT或DML操作的审计,审计(续),2.审计功能基本功能提供多种审计查阅方式提供多种审计查阅方式多套审计规则:一般在初始化设定提供审计分析和报表功能审计日志管理功能防止审计员误删审计记录,审计日志必须先转储后删除对转储的审计记录文件提供完整性和保密性保护只允许审计员查阅和转储审计记录,不允许任何用户新增和修改审计记录等提供查询审计设置及审计记录信息的专门视图,审计(续),3. AUDIT语句和NOAUDIT语句AUDIT语句:设置审计功能 NOAUDIT语句:取消审计功能,用户级审计任何用户可设置的审计主要是用户针对自己创建的数据库表和视图进行审计系统级审计只能由数据库管理员设置监测成功或失败的登录要求、监测授权和收回操作以及其他数据库级权限下的操作,审计(续),审计(续),例4.15 对修改SC表结构或修改SC表数据的操作进行审计 AUDIT ALTER,UPDATE ON SC;例4.16 取消对SC表的一切审计 NOAUDIT ALTER,UPDATE ON SC;,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性保护4.7 小结,4.5 数据加密,数据加密防止数据库中数据在存储和传输中失密的有效手段加密的基本思想根据一定的算法将原始数据明文(Plain text)变换为不可直接识别的格式密文(Cipher text)加密方法存储加密传输加密,数据加密(续),存储加密透明存储加密内核级加密保护方式,对用户完全透明将数据在写到磁盘时对数据进行加密,授权用户读取数据时再对其进行解密数据库的应用程序不需要做任何修改,只需在创建表语句中说明需加密的字段即可 内核级加密方法: 性能较好,安全完备性较高非透明存储加密通过多个加密函数实现,数据加密(续),传输加密链路加密在链路层进行加密传输信息由报头和报文两部分组成报文和报头均加密端到端加密在发送端加密,接收端解密只加密报文不加密报头所需密码设备数量相对较少,容易被非法监听者发现并从中获取敏感信息,数据加密(续),数据库管理系统可信传输示意图,用户,数据库服务器,数据加密(续),基于安全套接层协议SSL传输方案的实现思路:(1)确认通信双方端点的可靠性采用基于数字证书的服务器和客户端认证方式通信时均首先向对方提供己方证书,然后使用本地的CA 信任列表和证书撤销列表对接收到的对方证书进行验证(2)协商加密算法和密钥确认双方端点的可靠性后,通信双方协商本次会话的加密算法与密钥,数据加密(续),(3)可信数据传输业务数据在被发送之前将被用某一组特定的密钥进行加密和消息摘要计算,以密文形式在网络上传输当业务数据被接收的时候,需用相同一组特定的密钥进行解密和摘要计算,第四章 数据库安全性,4.1 计算机安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全性保护4.7 小结,4.6 其他安全性保护,推理控制处理强制存取控制未解决的问题避免用户利用能够访问的数据推知更高密级的数据常用方法基于函数依赖的推理控制基于敏感关联的推理控制隐蔽信道处理强制存取控制未解决的问题,其他安全性保护(续),数据隐私保护描述个人控制其不愿他人知道或他人不便知道的个人数据的能力范围很广:数据收集、数据存储、数据处理和数据发布等各个阶段,第四章 数据库安全性,4.1 数据库安全性概述4.2 数据库安全性控制4.3 视图机制4.4 审计(Audit)4.5 数据加密4.6 其他安全 性保护4.7 小结,4.7 小结,数据的共享日益加强,数据的安全保密越来越重要。数据库管理系统是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。,小结(续),实现数据库系统安全性的技术和方法用户身份鉴别存取控制技术:自主存取控制和强制存取控制视图技术审计技术数据加密存储和加密传输,