浅析数据库的安全性

时间:2022-09-03 04:26:05

浅析数据库的安全性

摘要:数据库是数据管理的最新技术,使计算机科学的重要分支。随着信息资源成为各个部门的重要财富和资源,数据库系统的安全性也成为当前计算机安全最重要的问题,

关键词:数据库:安全

中图分类号:TP391.13

文献标识码:A

文章编号:1009-3044(2007)01-10016-02

数据库是数据管理的最新技术,使计算机科学的重要分支。今天,信息资源已成为各个部门的重要财富和资源。建立一个满足各级部门信息处理要求的行之有效的信息系统也自然地成为了一个企业或组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造(CAD\CAM)、计算机集成制造系统(CIMS)、办公信息系统(OIS)、地理信息系统(GIS)等,越来越多新的应用领域采用数据库存储和处理它们的信息资源。所以,数据库系统的安全性自然就成为当前最重要的问题。

数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的,因此在讨论数据库的安全性之前,让我们先来讨论一下计算机系统安全性的一般问题。由此来导入我们对数据库安全性问题的深入的讨论。

在计算机系统中建立和采取的各种安全保护措施,是以保护计算机系统中的硬件、软件及数据,防止因偶然或恶意的原因是系统遭到破坏,数据遭到更改或泄漏为目的。其安全性为难题可分为三大类,即技术安全类、管理安全类和政策法律类。在这里,我们着重讨论的是技术安全。在一般的系统中,安全措施是一级一级层层设置的,例如可以有如下图模型:

在上图的安全模型中,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定,只有合法的用户才准许进入计算机系统。对已进入系统的用户,DBMS还要进行存取控制,只允许用户执行合法操作。下面我们就逐项讨论与数据库有关的用户标识和鉴定、存取控制、视图和密码存储等安全技术。

用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,有系统进行核对,通过鉴定后才提供机器使用权。对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有:①用一个用户名或者用户标识号来标明用户身份。系统内部记录着所有合法用户的标识,系统鉴别此用户是否是合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。②口令:为了进一步核实用户,系统常常要求用户输入口令。为保密起见,用户在终端上输入的口令不显示在屏幕上。系统核对口令以鉴别用户身份。

通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,一次还可以用封复杂的方法。例如每个用户都预先约定好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定好的计算过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份。

数据库安全性所关系的主要是DBMS的存取控制机制。数据库安全作重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。它包括两部分:①定义用户权限,并将用户权限登记到数据字典中。系统必须提供适当的语言定义用户权限,这些定义经过编译后存放在数据字典中.被称作安全规则或授权规则。②合法权限检查,每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用力呼的操作请求超出了定义的权限,系统将拒绝执行此操作。用户权限定义和合法权限检查机制一起组成了DBMS的安全子系统。

当前大型的DBMS一般都支持C2级(受控的存取保护)中的自主存取控制(DAC),有些DBMS同时还支持B1级(标记安全保护)中的强制存取控制(MAC)。

在自主存取控制(DAC)方法中,用户对于不同的数据对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此资助存取控制非常灵活。目前的SQL标准也对资助存取控制提供支持。自主存取控制能过通过授权机制有效地控制其他用户对敏感数据的存取。但是由于用户对数据的存取权限是“自主”的。用户可以自由地决定将数据的存取权限授于何人、决定是否也将“授权”的权限授予别人,而系统对此无法控制。在这种授权机制下,仍可能存在数据的“无意泄漏”。比如,甲将自己权限范围内的某些数据存取权限授权给乙,甲的意图只是允许乙本人操纵这些数据。单价的这种安全性要求并不能得到保证,因为乙一旦获得了对数据的权限,就可以将数据备份,获得自身权限内的副本,并在不征得甲同意的前提下传播副本。造成这一问题的根本原因就在于,这种机制仅仅通过对数据的存取权限来进行安全控制,而数据本身并无安全性标记。要解决这一问题,就需要对系统控制下的所有主客体实施强制存取控制策略。

在强制存取控制(MAC)方法中,由于每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。所以,对于任意的一个对象,只有具有合法许可证的用户才可以存取,因此强制存取控制相对比较严格。按照TDI/TCSEC标准中安全策略的要求,所采取的枪支存取检查手段。它不是用户能直接感知或进行控制的。MAC适用于那些对数具有严格而固定密级分类的部门。在MAC中,DBMS所管理的全部实体被分为主体和客体两大类。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。敏感度标记被分成若干级别,如绝密、机密、可信、公开等。主体的敏感度标记称为许可证级别(Clearance Level),客体的敏感度标记称为密级(Classification Level)。MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。当某一用户或(某一主体)以标记label注册入系统时,系统要求它对任何客体的存取必须遵循如下规则:(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能独取相应的客体;f2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。这两种规则的共同点在于它们均禁止了拥有高许可证级别的主体更新低密级的数据对象,从而防止了敏感数据的泄漏。

强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。较高安全性级别提供的安全保护要包含较低级别的所有保护。因此在实现MAC时要首先实现DAC,即DAC与MAC共同构成DBMS的安全机制,如右图所示。系统首先进行DAC检查,对通过DAC检查的允许存取的数据对象再由系统自动进行MAC检查,只有通过MAC检查的数据对象方可存取。

数据的加密:对于高度敏感型数据,例如财务数据、军事数据、国家机密,还可以采用数据加密技术。这是防止数据库中数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据变换为不可直接识别的格式,从而使得不知道解密算法的人无法获知数据的内容。加密的方法主要有两种,一种是替换方法,该方法使用密钥(Encryption Key)将原始数据中的每一个字符转换为密文中的一个字符。另一种是置换方法,该方法仅将原始数据的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的。但是将这两种方法结合起来就能提供相当高的安全程度。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:EXCEL在矩阵相关计算中的应用 下一篇:Web应用程序中的数据库安全策略