保障与安全数据库安全.ppt
《保障与安全数据库安全.ppt》由会员分享,可在线阅读,更多相关《保障与安全数据库安全.ppt(73页珍藏版)》请在三一办公上搜索。
1、1,13 数据库安全,13.1 数据库安全概述 13.2 数据库安全策略与安全评价 13.3 数据库安全模型 13.4 数据库安全技术 13.5 数据库加密 13.6 小结,2,13.1 数据库安全概述,数据库系统担负着存储和管理数据信息的任务。计算机系统的数据组织形式有两种,一种是文件形式,一种是数据库形式。文件组织形式的数据缺乏数据共享性,而数据库组织形式的数据具有共享性、独立性、一致性、完整性和可访问控制,现已成为计算机系统存储数据的主要形式。因为操作系统对数据库文件没有特殊的安全保护措施,数据库的安全必须通过数据库管理系统来实现。数据库的安全性是指保护数据库以防止不合法的使用所造成的数
2、据泄漏、更改或破坏。,3,数据库系统的组成 数据库系统,分成两部分:一部分是数据库,按一定的方式存取数据;另一部分是数据库管理系统,为用户及应用程序提供数据访问,并具有对数据库进行管理、维护等多种功能。数据库 数据库,就是若干数据的集合体。因此数据库要由数据库管理系统进行科学地组织和管理,以确保数据库的安全性和完整性。,13.1 数据库安全概述,4,关系、层次和网状型数据库模型(1)关系结构模型:把一些复杂的数据结构归结为简单的二元关系(即二维表格形式),按照关系运算理论(主要是三范式原则)组织与管理数据。(2)层次结构模型:实质上是一种有根节点的定向有序树(在离散数学中“树”被定义为一个无回
3、路的连通图)。(3)网状结构模型:按照网状数据结构建立的数据库系统称为网状数据库系统。,13.1 数据库安全概述,5,数据库管理系统DBMS的主要职能1)有正确的编译功能,能正确执行规定的操作。2)能正确执行数据库命令。3)能保证数据的安全性、完整性,能抵御一定程度的物理破坏,能维护和提交数据库内容。4)能识别用户、分配授权和进行访问控制。5)顺利执行数据库访问,保证网络通信功能。,13.1 数据库安全概述,6,数据库的特性(1)多用户(2)高可用性(3)频繁的更新(4)大文件(5)安全性与可靠性问题复杂,13.1 数据库安全概述,7,问题的提出数据库的一大特点是数据可以共享但数据共享必然带来
4、数据库的安全性问题数据库系统中的数据共享不能是无条件的共享例:军事秘密、国家机密、新产品实验数据、市场需求分析、市场营销策略、销售计划、客户档案、医疗档案、银行储蓄数据,13.1 数据库安全概述,8,13.1 数据库安全概述,数据库中数据的共享是在DBMS统一的严格的控制之下的共享,即只允许有合法使用权限的用户访问允许他存取的数据 数据库系统的安全保护措施是否有效是数据库系统主要的性能指标之一数据库是网络系统的核心部分,有价值的数据资源都存放在其中,这些共享的数据资源既要面对必需的可用性需求,又要面对被篡改、损坏和被窃取的威胁。,9,13.1 数据库安全概述,13.1.1 数据库面临的安全威胁
5、(1)数据输入或处理中的错误(2)硬件故障引起的信息破坏或丢失(3)软件保护功能失效造成信息泄漏(4)非授权用户的非法存取或篡改数据(5)授权者制定不正确、不安全的防护策略(6)操作者复制和泄漏机密、敏感的数据资料(7)系统设计者回避安全功能,安装不安全的资料(8)应用程序员设计、安装了特洛伊木马软件(9)终端放置在不安全的环境中而被窃听(10)终端使用者隐瞒自己身份,进行不正确的输入(11)病毒侵入系统,破坏或修改了数据库软件,10,13.1.2 数据库安全的重要性(主要原因)(1)在数据库中,由于数据的冗余度小,数据库一旦被修改,原来存储的数据就被破坏,而且这些数据无法恢复。因此,必须加强
6、数据库恢复技术,当系统或程序出现故障后,能恢复数据库。(2)由于大部分数据库是联机工作的,可以支持多个用户同时存取,因此必须采取措施防止由此引起的破坏数据完整性的问题。(3)数据库中保存着大量的数据,这些数据有多个用户共享,而他们的职责和权力又有所不同,因此必须限制数据库用户,不允许他们访问非授权数据,并严格控制用户修改数据,以免造成其他用户对数据访问的正确性。(4)数据库还涉及其他应用软件,因而数据库的安全还涉及应用软件的安全与系统的安全。,11,13.1.3 数据库的保密性 数据库管理系统DBMS要求严格的用户身份鉴别。为了进一步加强数据库系统的安全性,必须对使用数据库的时间和地点加以限制
7、。在指定时间、指定终端上登录上机的用户进行身份标识(ID)和口令的鉴别是对操作系统身份鉴别的一种补充。数据库管理系统的访问控制分为两类:任意访问控制和强制访问控制。(1)任意访问控制可以通过控制矩阵进行。(2)在数据库管理系统中,强制访问控制也是通过与军事安全类似的方法来实现。,12,13.1.4 数据库系统的安全需求 1.数据库安全需求 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。对于数据库的安全威胁,必须采取有效措施,以满足其安全需求。(1)数据库完整性(2)元素的完整性(3)可审计性(4)访问控制(5)用户认证(6)可获用性,13,表.1数据库系统安全需求
8、,14,(1)数据库的完整性,在物理完整性方面,要求从硬件或环境方面保护数据库的安全,防止数据被破坏或不可读。例如,应该有措施解决掉电时数据不丢失不破坏的问题,存储介质损坏时数据的可利用性问题,还应该有防止各种灾害(如火灾、地震等)对数据库造成不可弥补的损失,应该有灾后数据库快速恢复能力。数据库的物理完整性和数据库留驻的计算机系统硬件可靠性与安全性有关,也与环境的安全保障措施有关。,15,在逻辑完整性方面,要求保持数据库逻辑结构的完整性,需要严格控制数据库的创立与删除、库表的建立、删除和更改的操作,这些操作只能允许具有数据库拥有者或系统管理员权限的人才能够进行。逻辑完整性还包括数据库结构和库表
9、结构设计的合理性,尽量减少字段与字段之间、库表与库表之间不必要的关联,减少不必要的冗余字段,防止发生修改一个字段的值影响其他字段的情况。,(1)数据库的完整性,16,元素完整性主要是指保持数据字段内容的正确性与准确性。元素完整性需要由DBMS、应用软件的开发者和用户共同完成。软件开发者应该在应用程序中增加对字段值的录入或更新的检查验证,例如应该检查输入数据是否与字段类型、取值要求一致,例如性别的取值不应该是“男”、“女”或其它代表男、女的特征值以外的结果,年龄字段的值不超过150、不低于0等;还需要检查输入值是否满足字段之间的约束条件。,(2)元素的完整性,17,数据库管理系统DBMS对保证元
10、素完整性方面起着重要作用,它用三种方式维护数据库中数据元素的完整性。字段检查:可防止输入数据时可能出现的错误。访问控制:提供访问控制机制最大限度地减少未授权用户对数据库的修改,保护数据库的完整性、真实性和一致性。,18,更改日志DBMS维护数据完整性的另一个有力措施是数据库日志功能,该日志能够记录用户每次登录和访问数据库的情况以及数据库记录每次发生的改变,记录内容包括访问用户ID、修改日期、数据项修改前的值和修改后的值。利用该日志系统管理员可以撤消对数据库的错误修改,可以把数据库恢复到指定日期以前的状态。,19,(3)可审计性,为了能够跟踪对数据库的访问,及时发现对数据库的非法访问和修改,需要
11、对访问数据库的一些重要事件进行记录,利用这些记录可以协助维护数据库的完整性,还可以帮助事后发现是哪一个用户在什么时间影响过哪些值。如果这个用户是一个黑客,审计日志可以记录黑客访问数据库敏感数据的踪迹和攻击敏感数据的步骤。,20,对于审计粒度与审计对象的选择,需要考虑存储空间的消耗问题。审计粒度是指在审计日志中将记录到哪一个层次上的操作(事件),例如用户登录失败与成功、通行字正确与错误、对数据库、库表、记录、字段等的访问成功与错误。但小粒度的审计又需要大量的存储空间,这又是一般数据库系统很难做到的。对于那些要求高度安全的系统来说,这种开销是需要的。但审计日志也不见得完全反映用户已经从数据库到底获
12、得了什么值,例如完成选取操作时,可以访问一个记录而并不把结果传递给用户,但在另外的情况下,用户可以通过间接访问方式获得敏感记录的数据,用户可能已经得到了某些敏感数据,而在审计日志中却很难反映出来。,21,(4)访问控制与用户认证,和操作系统相比,数据库的访问控制的难度要大得多。在操作系统中,文件之间没有关联关系,但在数据库中,不仅库表文件之间有关联,在库表内部记录、字段都是相互关联的。操作系统中控制的粒度是文件,数据库中则需要控制到记录和字段一级。操作系统中几百个文件的访问控制表的复杂性远比同样具有几百个库表文件,而每个库表文件又有几十个字段和数十万条记录的数据库的访问控制表的复杂性要小得多。
13、,22,由于访问数据库的用户的安全等级是不同的,分配给他们的权限是不一样的,为了保护数据的安全,数据库被逻辑地划分为不同安全级别数据的集合。有的数据允许所有用户访问,有的则要求用户具备一定的权限。在DBMS中,用户有数据库的创建、删除,库表结构的创建、删除与修改,对记录的查询、增加、修改、删除,对字段的值的录入、修改、删除等权限,DBMS必须提供安全策略管理用户这些权限。,23,由于数据库中的访问目标数据库、库表、记录与字段是相互关联的,字段与字段的值之间、记录与记录之间也是具有某种逻辑关系的,存在通过推理从已知的记录或字段的值间接获取其他记录或字段值的可能。而在操作系统中一般不存在这种推理泄
14、漏问题,它所管理的目标(文件)之间并没有逻辑关系。,24,这就使数据库的访问控制机制不仅要防止直接的泄漏,而且还要防止推理泄漏的问题,因而使数据库访问控制机制要比操作系统的复杂得多。限制推理访问需要为防止推理而限制一些可能的推理路径。通过这种方法限制可能的推理,也可能限制了合法用户的正常查询访问,会使他们感到系统访问效率不高甚至一些正常访问被拒绝。,25,DBMS是作为操作系统的一个应用程序运行的,数据库中的数据不受操作系统的用户认证机制的保护,也没有通往操作系统的可信路径。DBMS必须建立自己的用户认证机制。DBMS要求很严格的用户认证功能,例如DBMS可能要求用户传递指定的通行字和时间-日
15、期检查。DBMS的认证是在操作系统认证之后进行的,这就是说,用户进入数据库,一个用户需要进行操作系统和DBMS两次认证,增加了数据库的安全性。,26,(5)保密性与可用性,DBMS除了通过访问控制机制对数据库中的敏感数据加强防护外,还可以通过加密技术对库中的敏感数据加密。但加密虽然可以防止对数据的恶意访问,也显著地降低了数据库访问效率。数据库中数据并不是任何时候都可以访问。例如,一个用户在更新几个字段时,其他的用户对这几个字段的访问请求便被禁止。当更新完毕时,其他用户对这些字段的访问即可获得。,27,2.操作系统的安全需求(1)操作系统应能防止对数据库管理系统和用户程序的非法修改(2)操作系统
16、应能保护存储器中的数据不被非法修改(3)操作系统应能保护数据库,使其中的数据安全、完整(4)操作系统应能认证数据库的合法用户,当非法用户进入时能及时报警(5)操作系统应能正确地进行物理I/O操作 3.数据库管理系统的需求(1)有正确的编译功能,能正确地进行规定的操作(2)能提供正确的系统变量值,能正确地执行命令文件(3)能保证数据的安全性和完整性,能抵御物理破坏,能维护数据库逻辑的完整性,能恢复数据库中的内容(4)能进行用户识别和访问控制(5)可用性,28,13.1.5 数据库的完整性技术,前面已经介绍了数据库的安全需求问题,下面研究数据库管理系统DBMS防止数据丢失或被破坏的办法,保证数据库
17、完整性、元素完整性和元素准确性(元素值是正确的)的技术。但所有的解决办法都不是绝对的,因为任何控制都不能阻止一个有权用户有意、无意对数据库中数据的破坏。,29,(1)两阶段提交,为了保证数据更新结果的正确性,必须防止在数据更新过程中发生处理程序中断或出现错误。假定需要修改的数据是一个长字段,里面存放着几十个字节的字符串。如果当仅更新了其中部分字节时,更新程序或硬件发生了中断,结果该字段的内容只被修改了一部分,另一部分仍然为旧值,这种错误不容易被发现。对于同时更新多个字段的情况发生的问题更加微妙,可能看不出一个字段有明显错误。解决这个问题的办法是在DBMS中采用两阶段提交(更新)技术。,30,第
18、一阶段称为准备阶段。在这一阶段中,DBMS收集为完成更新所需要的信息和其他资源,其中可能包括收集数据、打开文件、封锁其他用户、计算最终的结果等处理,总之为最后的更新作好准备,但不对数据库作实际的改变。这个阶段即使发生问题,也不影响数据库的正确性。,31,第二阶段的工作 是对需要更新的字段进行真正的修改,这种修改是永久性的。在第二阶段中,在真正进行提交之前不对数据库采取任何行动。由于如果第二阶段出问题,数据库中可能是不完整的数据。因此一旦第二阶段的更新活动出现任何问题,该阶段的活动也需要重复,DBMS会自动将本次提交对数据库执行的所有操作都撤消,并恢复到本次修改之前的状态,这样数据库又是完整的了
19、。,32,上述第一阶段和第二阶段在数据库管理中合称为一个“事务”(Transaction),所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。,33,(2)并发访问控制,数据库系统通常支持多用户同时访问数据库,DBMS需要提供一种因共享数据产生冲突的解决的办法。如果这些用户不同时访问同一条记录,则用户之间不存在任何问题。当他们同时从一个数据项读数据的时候,也不存在相互影响,各自都
20、可以获取正确的数据;但当多个用户同时读写同一个字段的时候,将有可能发生冲突。DBMS提供解决冲突的机制,例如加锁/解锁就是一种解决冲突的办法。,34,解决这个问题办法是DBMS要把整个查询与更新两个阶段作为一个不可分割的基本操作,把这种可以保持数据库完整性的基本操作定义为一个“事务”。根据一个事务处理的原则,在老李的取款操作没有完成之前,不考虑接受第二个人的取款请求,35,并发访问的另一个问题是读与写之间的冲突,当一个用户正在更新一个字段的值的时候,另一个用户恰好进来读该字段的值,则第二个用户完全有可能获取一个仅部分被更新的数据。防止这种问题发生,DBMS为读、写用户分别定义了“读锁”和“写锁
21、”,当某一记录或数据元素被加了“读锁”,其他用户只能对目标进行读操作,同时也分别给目标加上各自的“读锁”,而目标一旦被加了“读锁”,要对其进行写操作的用户只能等待,若目标即没有“写锁”,也没有“读锁”,写操作用户在进行写操作之前,首先对目标加“写锁”,有了“写锁”的目标,任何用户不得进行读、写操作。这样在第一个用户开始更新时将该字段(或一条记录)加写锁,在更新操作结束之后再解锁。在封锁期间,另一个用户禁止一切读、写操作,36,(3)触发器,DBMS提供触发器(triger)功能,用于监视正在输入或修改的值是否破坏数据库的完整性。触发器可以检查正在输入的数据是否与数据库其他部分保持一致,或者与特
22、定字段的属性是否一致。触发器可以完成以下功能:,37,1)检查取值类型与范围,触发器检查每个字段的输入数据的类型与该字段的类型是否一致,例如,是否向字符类型的字段输入数值型的值,若不一致则拒绝写入;范围比较则是检查输入数据是在该字段允许的范围内,例如,成绩的分类是“优秀”、“良好”、“及格”、“不及格”,如果当前输入的是“中等”,则拒绝写入。,38,2)依据状态限制,状态限制是指为保证整个数据库的完整性而设置的一些限制,数据库的值在任何时候都不应该违反这些限制。如果某时刻数据库的状态不满足限制条件,就意味着数据库的某些值存在错误。在前面谈到的两阶段更新过程中的提交标志,该标志在提交阶段一开始就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 保障 安全 数据库
链接地址:https://www.31ppt.com/p-5925156.html