《2022年数据库系统的安全》由会员分享,可在线阅读,更多相关《2022年数据库系统的安全(5页珍藏版)》请在金锄头文库上搜索。
1、数据库系统的安全摘要: 数据库技术是应用最广泛的一门计算机技术,它的安全越来越重要。该文从数据库安全入手, 对用户认证、 存取控制、 安全管理和数据库加密等数据库安全技术的几个方面进行了讨论。 并对国内目前采用改造数据库的方式来提高数据库安全的几个主要应用,进行了详尽的阐述,最后指出了数据库安全现存的问题和将来研究的方向。关键词 :数据库安全;数据库改造;认证Abstract:Database technology is one of the most widely applied computer technologies, its security is becoming more and
2、 more important. This paper starts from the definition of database security, discusses the problems of user authorization, access control, security management and database encryption. The main present domestic applications that improve the security of database through the method of revisions of data
3、base are discussed in detail. At last, the existing problems of database security are proposed and the future research directions are also indicated. Key words : Database security; Revisions of database;Authentication 安全控制对于任何一个数据库管理系统来说都是很重要的,数据库通常存储了大量的数据,这些数据可能是个人信息、客户清单或其他机密资料。如果数据信息被窃取或篡改,从而造成企
4、业不可估量的损失,甚至危及国家的安全。随着计算机科学技术的发展以及普及和数据库技术、数据库本身的广泛应用,数据库安全已是当前信息社会特别关注的严重问题。现在迫不及待要解决的问题是:如何保证和加强数据库的安全性和保密性。1 数据库安全概述保护数据以防止非法的使用所造成数据的泄密和破坏是数据的安全性的主要任务。数据库安全性包含两方面:第一方面是电脑系统运行安全,一些网络非法用户通过网络手段破坏电脑操作系统的正常运行,甚至导致电脑系统瘫痪。另一方面是指系统数据库数据信息安全,网络黑客通过木马,使用恶意程序等对数据库数据篡改入侵,或盗取数据信息。2 数据库安全机制及其强化2.1 数据库安全控制管理员在
5、传统的数据库系统中权限很高,他既负责系统管理和安全管理,又可以访问数据库中的所有数据。管理员的权限过于集中使安全管理机制存在隐患但集中管理权限太高,对系统本身也带来了不安全因素。我们可以使用分散的安全管理机制。在安全管理方面,数据库管理可以分为数据库管理员与数据库安全管理员,实行分而治之。 数据库管理员主要职责是自主存取控制及系统维护与管理方面的工作,安全管理员主要是负责强制存取控制。这种管理体制使得数据库管理更细致,各尽其责, 减少数据库的风险,从而进一步的保证数据库的安全性。2.2 强制存取控制系统为保证数据库数据的高安全性,采取强制存取检测手段,是安全策略中重要的一环。强制存取控制对数据
6、有严格密级分类的部门,例如信息、 政府或军事部门。在强制存取控制中, DBMS所管理的实际用户,也包括代表用户的各进程。客体是系统中的被动实体,是受主体操纵的,包括文件、基表、索引、视图等等。对于主体和客体,DBMS为他们每个实例指派一个敏感度标记。主客体各自被赋予相应的安全级,主体的安全级反映主体的可信度,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 而客体的安全级反映客体所含信息的敏感程度。强制存取控制主要能够防止木马和恶
7、意程序的攻击。 但强制控制并不能完全解决特洛伊木马问题,可以有其它途径从保密级程序向非保密级程序进行信息传递。2.3 数据库备份与恢复数据库的备份与恢复是整个数据信息安全的基础,是系统安全的重要保障。增强系统可靠性,能够最大限度地减少软硬件故障而导致数据信息的丢失。随着安全技术的快速发展,安全系统要求能对已经遭受破坏的系统进行尽可能完整有效的系统恢复,把损失降低到最小程度。 数据库备份与恢复是系统安全事后补救一项措施,但要真正恢复到用户所要求的系统安全状态将非常困难,尚有待进一步的研究和发展。因此,数据库的安全必须在源头把好关,审计工作同样必不可少。2.4 审计审计是检验数据库系统安全的重要组
8、成部分,是在数据库系统工作期间,系统将所有数据库的运行数据记录下来的过程,通常存放在日志文件中,以便日后的调查和分析。虽然数据库安全系统采取了存取控制、数据加密等安全技术,但是从软件工程技术上看,目前我们还不能证明一个安全系统的安全强度。因此, 作为重要的补充手段,审计跟踪是安全系统不可缺少的一部分,也是数据库系统的最后一道重要的安全防线。3 数据库安全常用技术数据库安全通常通过存取管理、安全管理和数据库加密来实现。存取管理就是一套防止未授权用户使用和访问数据库的方法、机制和过程, 通过正在运行的程序来控制数据的存取和防止非授权用户对共享数据库的访问。安全管理指采取何种安全管理机制实现数据库管
9、理权限分配,一般分集中控制和分散控制两种方式。数据库加密主要包括:库内加密( 以一条记录或记录的一个属性值作为文件进行加密) 、 库外加密 ( 整个数据库包括数据库结构和内容作为文件进行加密) 、硬件加密等 3 大方面。虽然数据库安全模型和安全体系结构以及数据库安全机制对于数据库安全来说也非常重要,但是对其的研究和应用进展缓慢。迄今为止,在数据库安全模型上已做了很多工作,但仍然有许多难题;安全体系结构方面的研究工作还刚刚开始;安全机制上仍保持着传统的机制。 20 世纪 90 年代以来,数据库安全的主要工作围绕着关系数据库系统的存取管理技术的研究展开。2.1 存取管理技术存取管理技术包括用户身份
10、认证技术和存取控制技术两方面。用户身份认证技术包括用户身份验证和用户身份识别技术。存取控制包括数据的浏览控制和修改控制。浏览控制是为了保护数据的保密性,而修改控制是为了保护数据的正确性和提高数据的可信性。在一个数据资源共享的环境中,存取控制就显得非常重要。2.1.1 用户认证技术电子商务和网上银行的发展使人们感觉到在数据库中的数据是有价值的,同时也感到数据库系统可能是脆弱的,用户需要特别的认证。通过用户身份验证,可以阻止非授权用户的访问,而通过用户身份识别,可以防止用户的越权访问。(1) 用户身份验证数据库安全性中最基本的概念之一就是验证,系统通过这个过程来证实用户身份,进而可以阻止非授权用户
11、的访问。一般有以下几种验证方式:1) 操作系统验证用户可以通过操作系统不需要用户名和密码而直接连接到某些数据库,在这种情况下,用户对数据库的连接要靠操作系统来验证。对 SQL2000 来 说 , 采 用 Windows 认 证 更安 全, 因为 Windows/NT/2000 操作系统的安全性能达到美国国防部定义的 C2 级安全标准,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 它的认证具有安全确认、口令加密、审核、口令有效期
12、保护、最短口令长度限制、非法登录时的账户锁定等功能。2)DBMS 提供验证当操作系统不能被用来进行用户认证时,用户可以通过提交正确的用户名、密码,由DBMS 提供验证来访问数据库。采用难于记忆的、经常改变的密码技术,不管是在理论上还是在实践上都是一个很好的安全技术。对 SQL2000 来说,它的认证管理较为简单,它允许应用程序的所有用户使用同一个登录标识。3) 网络安全系统的认证已经有许多网络安全认证系统可以用来对数据库用户的认证。这要依赖于认证和密钥分配系统, 用户可以通过提供身份证明或验证令牌来响应验证请求,包括采用智能卡、安全令牌、生物识别或其组合的 PKI 技术。本质上,认证和密钥分配
13、系统提供的是一个应用编程界面 (API) ,它可以用来为任何网络应用程序提供安全服务,例如认证、数据机密性和完整性、访问控制以及非否认服务。比较常用的系统如 DCE、Kerberos 、SESAME 等。(2) 用户身份识别用户身份识别以数据库授权为基础,只有经过数据库授权和验证的用户才是合法的用户。数据库授权技术包括授权用户表、用户授权表、系统的读出/ 写入规则和自动查询修改技术。1) 授权用户表: 授权用户表包含授权用户的各项信息,只有与用户表内各项信息完全相符的用户才是授权用户。2) 授权用户权限表:每个用户有各自事先规定的权限,当授权用户进入时,通过授权用户权限表赋予用户相应权利。3)
14、 使用系统的读出/ 写入规则: 通过系统运行的读出/ 写入规则可以调用数据库的安全规则。4) 自动查询修改技术:DBMS 系统具有自动查询修改控制功能来防止用户访问数据库中未授权的部分。2.1.2 存取控制技术存取控制限制了访问者和执行程序可以进行的操作,通过存取控制可以防止安全漏洞隐患。 DBMS 中对数据库的存取控制是建立在操作系统和网络的安全机制的基础之上的。一般来说, 就存取控制而言, 低安全等级的操作系统和网络之上很难建立高安全等级的数据库系统;而高安全等级的操作系统和网络之上建立的数据库也不一定就是高安全等级。存取控制的模型有自主存取控制(Discretionary Access
15、Control ,DAC ) 、强制存取控制(Mandatory Access Control, MAC) 和基于角色存取控制 (Role-Based Access Control,RBAC) 。(1)DAC。DAC 把存取决定权留给了产生信息的信息主,是基于存取者身份或所属工作组来进行存取控制的一种手段,具有某种存取特权的存取者可以向其他存取者传递该种存取许可( 也许是非直接的) , DAC 允许使用者在没有系统管理员干涉的情况下对它们所控制的对象进行权限修改, 这就使得 DAC 容易受到特洛伊木马的攻击。利用强制存取控制(MAC)可以解决这个问题。(2)MAC。MAC 由 BLP (Bel
16、l 和 Lapadula 建立 ) 模型发展而来,它要求所有用户遵守由数据库管理员建立的规则,是基于被存取对象的信息敏感程度( 如用标签来表示) 以及这些敏感信息可以赋予该存取主体的存取权限来进行权限控制的,对于不同类型的信息采取不同层次的安全策略。 主体和客体被赋予不同安全级,安全级包含两个元素:密级和范围。 主体的安全级反映主体的可信度,客体的安全级反映客体所含信息的敏感程度。MAC 主要遵照 2 个规则实施存取控制。不准上读: 主体只能读安全级受其安全级支配的客体;不准下写: 主体只能写安全级支配其安全级的客体。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
17、 - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - MAC 基于安全等级实现存取控制,能够防止特洛伊木马和隐通道这些巧妙的攻击。但强制 控 制 并 没 有 完 全 解 决 特 洛 伊 木 马 问 题 , 还 有 其 他 方 法 可 以 从SECRET 级 程 序 向UNCLASSIFIED 级程序进行信息传递。(3)RBAC。 RBAC 的思想核心是安全授权和角色相联系,用户首先要成为相应角色的成员,才能获得该角色对应的权限。这大大简化了授权管理,角色可以根据组织中不同的作创建,然后根据用户的责任和资格分配
18、角色。用户可以轻松地进行角色转换,而随着新应用和新系统的增加, 角色可以分配更多的权限,也可以根据需要撤销相应的权限。实际表明把管理员权限局限在改变用户角色,比赋予管理员更改角色权限更安全。现在普遍认为 RBAC 比 DAC 和 MAC 更具发展前景。 RBAC 不仅在研究领域, 也在潜在用户和软件商中引起广泛关注。RBAC 被认为是一种更普遍适用的存取控制模型,可以有效表达和巩固特定事务的安全策略,有效缓解传统安全管理处理瓶颈问题。在某种程度上可以说 RBAC 是 DAC 和 MAC 在应用范围、有效性和灵活性上的扩展。利用 RBAC96 模型就可以实现多种 DAC 和 MAC 。由于使用了
19、角色继承、约束、角色管理、 授权管理等机制, 使得存取控制实现和管理更加灵活。目前对 RBAC 的支持主要在应用层,而对 RBAC 的研究已扩展到面向对象数据库、动态数据库和 XML 知识库领域。2.2 安全管理技术安全管理指采取何种安全管理机制实现数据库管理权限分配,安全管理分集中控制和分散控制 2 种方式。集中控制由单个授权者来控制系统的整个安全维护,分散控制则采用可用的管理程序控制数据库的不同部分来实现系统的安全维护。集中控制的安全管理可以更有效、更方便实现安全管理。安全管理机制可采用数据库管理员、数据库安全员、数据库审计员各负其责,相互制约的方式,通过自主存取控制、强制存取控制实现数据
20、库的安全管理。数据管理员必须专门负责每个特定数据的存取,DBMS 必须强制执行这条原则,应避免多人或多个程序来建立新用户,应确保每个用户或程序有唯一的注册账户来使用数据库。安全管理员能从单一地点部署强大的控制、符合特定标准的评估,以及大量的用户账号、口令安全管理任务。 数据库审计员根据日志审计跟踪用户的行为和导致数据的变化,监视数据访问和用户行为是最基本的管理手段,这样如果数据库服务出现问题,可以进行审计追查。2.3 数据库加密一般而言, 数据库系统提供的安全控制措施能满足一般的数据库应用,但对于一些重要部门或敏感领域的应用,仅有这些是难以完全保证数据的安全性的。因此有必要在存取管理、安全管理
21、之上对数据库中存储的重要数据进行加密处理,以强化数据存储的安全保护。数据加密是防止数据库中数据泄露的有效手段,与传统的通信或网络加密技术相比,由于数据保存的时间要长得多,对加密强度的要求也更高。而且, 由于数据库中数据是多用户共享,对加密和解密的时间要求也更高,以不会明显降低系统性能为要求。(1) 数据库密码系统有其自身的要求和特点。传统的加密以报文为单位,加脱密都是从头至尾顺序进行。数据库数据的使用方法决定了它不可能以整个数据库文件为单位进行加密。当符合检索条件的记录被检索出来后,就必须对该记录迅速脱密。然而该记录是数据库文件中随机的一段,无法从中间开始脱密,除非从头到尾进行一次脱密,然后再
22、去查找相应的这个记录, 显然这是不合适的。必须解决随机地从数据库文件中某一段数据开始脱密的问题。传统的密码系统中,密钥是秘密的, 知道的人越少越好。一旦获取了密钥和密码体制就能攻破密码, 解开密文。 而数据库数据是共享的,有权限的用户随时需要知道密钥来查询数据。因此,数据库密码系统宜采用公开密钥的加密方法。(2) 字段加密。 在目前条件下,加/ 脱密的粒度是每个记录的字段数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。只有以记录的字段数据为单位进行加/ 脱密,才能适应数据库操作,同名师资料总结 - - -精品资料欢迎下载 -
23、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 时进行有效的密钥管理并完成“一次一密”的密码操作。(3) 多级密钥结构。数据库查询路径依次是库名、表名、记录名和字段名。数据库关系运算中参与运算的最小单位是字段,因此, 字段是最小的加密单位。也就是说当查得一个数据后,该数据所在的库名、表名、记录名、字段名都应是知道的。对应的库名、表名、记录名、字段名都应该具有自己的子密钥,这些子密钥组成了一个能够随时加/脱密的公开密钥。(4) 数据库加密的范围。数据加密通过对明文进行复杂的
24、加密操作,以达到无法发现明文和密文之间、 密文和密钥之间的内在关系,也就是说经过加密的数据经得起来自操作系统(OS)和 DBMS 的攻击。另一方面,DBMS 要完成对数据库文件的管理和使用,必须具有能够识别部分数据的条件。因此,只能对数据库中数据进行部分加密。(5) 数据库加密的层次。可以在 3 个不同层次实现对数据库数据的加密,这 3 个层次分别是 OS 、DBMS 内核层和 DBMS 外层。在 OS 层对数据库文件进行加密,对于大型数据库来说,目前还难以实现。在 DBMS 内核层实现加密,是指数据在物理存取之前完成加/ 脱密工作。这种方式势必造成 DBMS和加密器 ( 硬件或软件 )之间的
25、接口需要 DBMS 开发商的支持。 这种加密方式的优点是加密功能强,并且加密功能几乎不会影响 DBMS 的功能。 其缺点是在服务器端进行加 / 脱密运算,加重了数据库服务器的负载。比较实际的做法是将数据库加密系统做成 DBMS 的一个外层工具。采用这种加密方式时,加/ 脱密运算可以放在客户端进行,其优点是不会加重数据库服务器的负载并可实现网上传输加密,缺点是加密功能会受一些限制。5 结束语本文就数据库安全的有关技术进行了讨论,随着数据库应用范围的扩大和计算机技术的发展, 数据库安全必将遇到新问题。比如计算机硬件和软件的发展解决了某些安全问题,但又将带来新的安全问题,同时数据库安全的研究和应用将会发现新的问题,最后数据库应用领域的扩大会带来新的安全问题。这些必然促使人们对数据库研究从各个方面向前推进。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -