一、概述
随着信息技术在世界范围内迅猛发展,大量的计算机系统和网络在为全球无数用户提供服务。信息技术的核心是信息数据处理,而数据库技术正是当前信息处理的中流砥柱。数据库技术从20世纪60年代产生至今,已得到广泛的应用,负担着存储和操纵信息的使命,越来越多的部门以及商界企业和国家来说非常重要。数据库的安全是信息系统安全的一个子问题。但随之而来的数据安全问题也越来越突出,数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要。各种应用系统的数据库中大量数据的安全问题及敏感数据的防窃取和防篡改问题,越来越引起人们的高度重视。因此研究数据库的安全就具有至关重要的价值了。 二、数据库的安全性
数据库的安全主要是指保护数据库以防止不合法使用造成的数据泄露更改或者破坏,用来保证数据库中数据的完整性,一致性以及数据库备份与恢复。数据库的安全性和计算机系统的安全性(包括操作系统、网络系统的安全性)相互联系,相互支持,只有各个环节都安全,才能保证数据库的安全性。当前对数据库安全的威胁主要分为物理上的威胁和逻辑上的威胁。物理上的威胁指水灾火灾等造成的硬件故障,从而导致数据的损坏和丢失等。为了消除物理上的威胁通常采用备份和恢复的策略。逻辑上的威胁主要是指对信息的未被授权的存取。可以分为三类(1)信息泄露,包括直接和非直接的对保护数据的存取,(2)非法的数据修改,由操作人员的失误或非法用户的故意修改引起(3)拒绝服务,通过独占系统资源导致其他用户不能访问数据库。为了消除逻辑上的威胁,DBMS必须提供可靠地安全侧罗,以确保数据库的安全性。 三、计算机系统的安全模型
在计算机系统中,安全措施是一级一级层层设置的。例如下图中的所示模型,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定,只有合法的用户才能被准许进入计算机系统。对已经进入系统的用户,数据库管理系统还要进行存取控制,只允许用户执行合法错做。操作系统一级也会有自己的保护措施。数据最后还可以密码形式存放到数据库中。
四、数据库安全策略
要解决系统的安全性问题,首先必须制定一套安全策略。(1)完全自主方式。从底层开始,包括硬件平台,操作系统,网络操作系统和数据库管理系统,全部自己开发。按道理这是最安全的,但是面对这么多如此庞大的系统,其技术和事件是一个问题,而且开发出的软件其错误也是不可避免的,可信性检测将非常困难。这样一来,也就谈不上安全为题。(2)底层依赖方式。选用现有的安全的硬件平台,性对安全的操作系统,网络操作系统和数据库管理系统。在此基础上进行系统开发。但其安全性问题同样值得忧虑。因为没有人敢断言这些庞大复杂的系统是可信的,也没有哪个用户拥有如此新近的手段对其进行可信性检测。有许多不安全因素都可能从这里产生。(3)组合构架方式。即利用现有的安全的硬件平台,相对安全的操作系统,网络系统和数据库管理系统。在此基础上进行局部改造,开发安全外壳。应该说,这是一个比较现实的安全策略。 五、常用的数据库安全技术
当前所采用的数据库安全技术主要有标志和鉴别、访问控制、信息流控制、推理控制、审计和加密等,其中目前应用最广也最为有效的是访问控制技术。
标志和鉴别
标志是指用户向系统出示自己的身份证明,最简单的方法是输入用户 和密码。标志机制用于唯一标志进入系统的每个用户的身份,因此必须保证标志的唯一性。鉴别是指系统检查验证用户的身份证明,鉴别机制用于检验用户身份的合法性。标志和鉴别功能的存在保证了只有合法的用户才能存取系统中的资源。身份的标志和鉴别是对访问者授权的前提,并通过审计机制使 保留追究用户行为责任的能力。功能完善的标志与鉴别机制,也是访问控制机制有效实施的基础。特别是在一个开放的多用户系统的网络环境中,识别授权用户是构筑安全防线的第一个重要环节。标志过程易与鉴别过程相混淆,标志过程是将用户与程序或进程联系起来;鉴别过程的目的则在于将用户和真正的合法授权用户相关联。近年来标志和鉴别技术发展迅速,主要有口令验证、智能卡验证、指纹验证、手型几何验证、声音识别验证、虹膜识别验证等技术。
访问控制 任何计算机系统都有两种资源:主动的主体和被动的客体。在数据库系统中,用户、进程等是存取动作的主体;而客体是数据、表、记录、元组、字段等。访问控制就是当主体请求对客体访问时,系统根据主体(进程)的用户和组的标识符、安全级和权限,客体的安全级、访问权限以及存取访问的检查规则,决定是否允许主体对客体请求的存取访问方式(读、写、修改、删除、加入记录等)的访问。访问控制策略的正确性取决于正确的用户标志和对访问控制机制的保护。在设计一个正确的访问控制策略和构建一个正确的访问控制安全模型时,必须考虑以下原则:(1)最小权限和最大权限原则;(2)开放式系统和封闭式系统原
则;(3)集中管理和分散管理原则(4)粒度原则(5)访问权限原则。 访问控制分为DAC, MAC,和RBAC三种类型。
(1)DAC最早出现在20 世纪 60年代末期的分时系统中,它是根据主体身份或者主体所属组的身份或者二者的结合,对客体访问进行限制的一种方法,其粒度是单个用户。当主体具有某种访问权,同时又拥有将该权限授予其他用户的权利时,他能够自行决定将其访问权直接或间接地转授给其他主体。DAC的优点是简单、灵活,在一定程度上实现了多用户环境下的权限隔离和资源保护,易于扩展和理解;缺点是很难控制已授出去的访问权限,HRU易遭受特洛伊木马等旁路攻击。为了增强数据库系统的安全性,需要对授权传播进行限制。访问控制模型对其进行了改进,其基本思想是采用客体主人自主管理该客体的访问和安全管理员限制访问权限随意扩散相结合的半自主式的资源管理方案.DAC的一般实现机制是访问控制矩阵,常见实现方法是访问控制表( ACL)、访问能力表和授权关系表。 DAC对授权的管理主要有集中式管理、分级式管理、基于所有者的管理、协作式管理和分散式管理等五种方式。由于DAC 本质上的问题,引入了MAC 。
(2)MAC最早出现在20 世纪70 年代,80年代得到普遍应用,其理论基础是 BELL-LAPADULA模型。其基本思想是通过给主体(用户)和客体(数据对象)指定安全级,并根据安全级匹配规则来确定某主体是否被准许访问某客体。安全级 包括两个元素:密级和范围。主体的安全级反映主体的可信度,客体的安全级反映客体的敏感度。主要采用以下规则分别保证信息的机密性和完整性。为了保证信息的机密性,要求:(1)无上读,主体仅能读取安全级别受此主体安全级别支配的客体的信息;(2)无下写,主体仅能向安全级别支配此主体安全级别的客体写信息。为了保证信息的完整性,要求:(1)无下读,主体仅能读取安全级别支配此主体安全级别的客体的信息;(2)无上写,主体仅能向安全级别受此主体安全级别支配的客体写信息。上述规则保证了信息的单向流动。将MAC 应用于RDBMS会产生多级关系和引出多实例化问题,故支持MAC的DBMS 也称为多级安全的
DBMS。MAC优点是能够防止特洛伊木马和隐通道的攻击以及防范用户滥用权限;缺点是配置粒度大,缺乏灵活性而且强制性太强,使得应用的领域比较窄,一般只用于军方等具有明显等级观念的行业或领域。美国securecomputing 公司对其进行了改进,提出了TE(type enforcement )控制技术,该技术把主体和客体分别进行归类,它们之间是否有访问授权由 TE授权表决定。 TE授权表由安全管理员负责管理和维护。
(3)RABC的概念早在 20世纪70年代由美国george mason大学的 ravi sandu教授提出,但在相当长的一段时间内没有得到人们的关注。进入 90年代,由于安全需求的发展,RABC 又引起了人们极大的关注。RABC中涉及的基本元素包括用户、角色、访问权和会话。 与传统访问控制的差别在于在用户和访问许可权之间引入了角色这一层。角色是一组用户和一组操作权限的集合,角色中
所属的用户可
以有权执行这些操作权限。用户与角色间是多对多的关系,角色与访问许可权之间也是多对多关系。当用户登录到RABC系统时会得到一个会话,这个会话可能激活的角色是该用户全部角色的一个子集。角色可以根据实际的工作需要生成或取消,而且用户也可以根据自己的需要动态激活自己拥有的角色,这样避免了用户无意中危害系统安全,而且容易实施最小特权原则。由于数据库应用层的角色的逻辑意义更为明显和直接,因此RABC 非常适用于数据库应用层的安全模型。RABC的优点主要在以下几个方面:(1)角色控制相对独立,根据配置可使某些角色接近DAC,某些角色接近MAC。因此 RABC既可以构造出 MAC系统,也可以构造出 DAC系统,还可以构造出同时具备 MAC和DAC的系统。(2) 是一种策略无关的访问控制技术,它不局限于特定的安全策略,几乎可以描述任何的安全策略,甚至 DAC和MAC也可以用RBAC 来描述。(3)RABC 具有自管理的能力。利用RABC 思想产生出的 ARBAC模型能够很好地实现对RBAC的管理。由于RBAC比DAC 和MAC 复杂,系统实现难度大,而且RBAC的策略无关性需要用户自己定义适合本领域的安全策略。定义众多的角色和访问权限及它们之间的关系也是一件非常复杂的工作。
信息流控制
20世纪70 年代后期, denning提出了信息流控制的基本思路用以对可访问的对象之间的信息流程加以监控和管理。信息流控制机制对系统的所有元素、组成成分等划分类别和级别。在对象X 和对象Y 之间的流程是指由对象X读取数据的值之后将该值写入对象Y 的过程。信息流控制负责检查信息的流向,使高保护级别对象所含信息不会被传送到低保护级别的对象中去,而不论这个过程是显式的(如拷贝过程)或是隐式的(如隐秘通道),这可以避免某些怀有恶意的用户从较低保护级别的后一个对象中取得较为秘密的信息。
信息流控制技术分为静态信息流控制技术和动态信息流控制技术。目前信息流控制技术还不够成熟,难以彻底解决隐秘通道等问题,这是因为实际系统的复杂程度超过了形式化验证技术所能处理的复杂程度。令人欣喜的是,国内外学者在坚持几十年的努力之后,对解决这个问题持积极乐观的态度。
推理控制
推理是指用户通过间接的方式获取本不该获取的数据或信息。推理控制的目标就是防止用户通过间接的方式获取本不该获取的数据或信息。
1)推理途径
设数据 X与数据Y 之间存在某种函数关系:Y=F(X),而X
是该用户的授权存取数据集合,则该用户就可以通过调用F(X)而取得本无访问授权的数据集合Y。由X 到达 Y的联通是一个推理途径。系统中的推理途径主要有两种:间接存取访问和相关数据。
2)推理统计
70年代后期, denning就已经开始研究统计推理。典型的情况是在统计
数据库中,只允许用户查询聚集类型的信息(即统计数据),不允许查询单个记录的信息。但是其中可能存在隐蔽的信息通道,使得可以从合法的查询中,推导出不合法的信息。统计推理就是通过合法而巧妙地使用统计函数来获得通过授权访问不能获得的保密数据。对付统计推理的技术主要有两种:(1)数据扰动。事先对需要进行统计的敏感数据进行加工。(2)查询控制。对统计查询的控制是比较成功的技术,目前已经实际应用到统计数据库中并有较多成功经验,该技术大部分是控制可以查询的记录数。
审计
审计功能是 DBMS安全性方面重要的一部分。由于任何系统的安全保护措施都不是无懈可击的,蓄意盗窃、破坏数据的人总是想方设法打破控制。通过审计,可以把用户对数据库的所有操作自动记录下来放入审计日志中,这样数据库系统可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等,以便于追查有关责任;同时审计也有助于发现系统安全方面的弱点和漏洞。按照TDI/TCSEC标准中安全策略的要求,审计功能也是DBMS 达到 C2以上安全级别必不可少的一项指标。审计日志对于事后的检查十分有效,它有效地增强了数据的物理完整性。但是对于粒度过细(如每个记录值的改变)的审计,是很费时间和空间的,特别是在大型分布和数据复制环境下的大批量、短事务处理的应用系统中,实际上是很难实现的。因此DBMS 往往将其作为可选特征,允许数据库系统根据应用对安全性的要求,灵活地打开或关闭审计功能。审计功能一般主要用于安全性要求较高的部门。
加密
对于数据库中存储的高度敏感机密性数据,如财务数据、军事数据、国家机密等,除以上安全性措施外,还应该采用数据加密技术。数据加密是防止数据库中的数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。数据库加密系统有其自身的要求和特点。传统的加密以报文为单位,加/脱密都是从头至尾顺序进行。数据库数据的使用方法决定了它不可能以整个数据库文件为单位进行加密,在目前条件下,加/脱密的粒度是每个记录的字段数据。传统加密方法主要有替换和置换。现在比较流行的加密方法是使用公开密钥进行加密,其优点是难以破解,但是加脱密速度较慢,而且不符合数据库加密机制的“既可加密又可脱密的可逆过程”这个特性。在实际应用时采用改进的分组加密算法,使其符合数据库加密的要求。数据库加密对DBMS 有影响:(1)对数据约束条件定义的影响。(2)SQL 语言中的内部函数将对加密数据失去作用。(3)将不能对密文数据进行排序、分组和分类。(4)DBMS的一些应用开发工具的使用受到限制
六、总结
本文就数据库安全的有关技术进行了讨论,随着数据库应用范围的扩大和计算机技术的发展,数据库安全必将遇到新问题。比如计算机硬件和软件的发展解决了某些安全问题,但又将带来新的安全问题,同时数据库安全的研究和应用将会发现新的问题,最后数据库应用领域的扩大会带来新的安全问题。这些必然促使人们对数据库研究从各个方面向前推进。 参考文献:
1《数据库系统概论》(第四版) 王珊 萨师煊 高等教育出版社
2《数据库安全技术相关问题探析》何伟林 电脑知识与技术 2011年23期 3朱虹,史凌云,张勇.多级安全数据库系统推理问题研究[J].计算机工程与应用,2004(13):55—57.
因篇幅问题不能全部显示,请点此查看更多更全内容