首页 理论教育 数据库安全机制

数据库安全机制

时间:2022-05-01 理论教育 版权反馈
【摘要】:建立数据库安全机制则是要在实现数据信息的共享、保证授权的合法用户对数据的有效存取的同时,又能严格拒绝非法用户的攻击企图。具体而言,数据库安全机制主要是针对以下3个目标来设计建立的。元素完整性需要由DBMS、应用软件的开发者和用户共同完成。由于用户在搜集数据、计算结果、输入数值时可能会出现错误,所以DBMS必须帮助用户在输入时能发现错误,并在插入错误数据后能纠正它们。

数据库的构建主要是为用户提供完善方便的信息和数据服务,实现数据信息的共享。建立数据库安全机制则是要在实现数据信息的共享、保证授权的合法用户对数据的有效存取的同时,又能严格拒绝非法用户的攻击企图。具体而言,数据库安全机制主要是针对以下3个目标来设计建立的。①数据库系统的完整性:数据库系统的完整性即指数据库系统中数据的正确性、一致性和相容性。系统只允许授权的合法用户存取数据库中的数据信息,并且以不破坏数据的完整性为前提。同时,系统应该杜绝非法用户对数据信息进行任何存取操作,主要包括窃取和破坏。由于多个程序并发存取同一个数据库中的数据,可能会造成数据的不一致性。因此,安全系统要具有保证数据一致性的功能。②数据库系统的保密性:安全系统应该提供一个高强度的加密方案,对数据库中的敏感数据进行加密处理。只有当系统的合法用户访问有权访问的数据时,系统才把相应的数据进行解密操作;否则,系统应保持敏感数据的加密状态,以防止非法用户窃取到明文信息,对系统进行攻击。③数据库系统的可用性:当系统授权的合法用户申请存取有权存取的数据时,安全系统应该尽量减小对合法操作的影响。换句话说,采用的安全机制不能明显降低数据库系统的操作性能。

(一)数据库系统的完整性

数据库系统的完整性包括库和元素两个方面的完整性。

1.数据库的完整性 包括数据库的物理完整性和逻辑完整性。

(1)在物理完整性方面:要求从硬件或环境方面保护数据库的安全,防止数据被破坏或不可读。例如,应该有措施解决断电时数据不丢失、不破坏的问题,存储介质损坏时数据的可利用性问题,还应该有防止各种灾害(如火灾、地震等)对数据库造成不可弥补的损失,应该有灾后数据库快速恢复能力。数据库的物理完整性和数据库留驻的计算机系统硬件可靠性与安全性有关,也与环境的安全保障措施有关。数据库的周期性备份可以控制由不可测灾祸造成的损失。

(2)在逻辑完整性方面:要求保持数据库逻辑结构的完整性,需要严格控制数据库的创立与删除、库表的建立、删除和更改的操作,这些操作只能允许具有数据库拥有者或系统管理员权限的人才能够进行。逻辑完整性还包括数据库结构和库表结构设计的合理性,尽量减少字段与字段之间、库表与库表之间不必要的关联,减少不必要的冗余字段,防止发生修改一个字段的值影响其他字段的情况。

2.数据库元素的完整性 数据库元素的完整性是指保持数据字段内容的正确性与准确性。元素完整性需要由DBMS、应用软件的开发者和用户共同完成。由于用户在搜集数据、计算结果、输入数值时可能会出现错误,所以DBMS必须帮助用户在输入时能发现错误,并在插入错误数据后能纠正它们。DBMS用3种方式维护数据库中每个元素的完整性:①通过字段检查在一个位置上的适当的值,防止输入数据时可能出现的简单错误;②通过访问控制来维护数据库的完整性和一致性;③通过维护数据库的更改日志,记录数据库每次改变的情况,包括原来的值和修改后的值,数据库管理员可以根据日志撤销任何错误的修改。

(二)数据库系统的保密性

无论是在经典还是现代的安全理论中,数据库的安全管理策略的最基础、最重要目标就是数据的保密,而随着科技的发展,目前采用的保密技术手段有很多种,基本可以保证数据安全。

1.身份认证 用户身份的正确识别与检验是数据库安全管理的门户,为了有效可靠地管理用户权限,保证系统的安全,需要一套可靠完善的身份鉴别机制。根据系统的不同层次可以采用多种不同的身份鉴别技术,而口令权限管理是身份鉴别、保证系统安全的最常见、最方便的方法。通常采用4级口令的方法。

(1)开机时输入CMOS口令:该口令用来控制终端用户的使用权,某用户若没有使用该终端的权利就没有能顺利开机的口令,也就无法使用该数据库。

(2)操作系统口令:它是文件服务器操作系统(如Unix)的登录口令,网络系统中的用户都必须按系统管理员指定的用户名登录到文件服务器上。用户登录(如login、telnet或ftp)使用加密口令,对口令的使用可采用多种限制,例如,可以规定用户何时何地登录入网。

(3)应用程序口令:它是用户使用应用程序时所需的口令,应用程序通过该口令自动判断用户是否有使用权。应用程序所有用户ID及口令均存放在数据库的一个表中,应用程序会自动将用户在启动应用程序时给出的ID号和口令同数据库表中已存的ID号和口令进行核对,以识别用户身份是否合法。

(4)数据库系统口令:它是登录访问数据库系统所需的口令,应用程序要存取数据库表,必须先登录数据库,应用程序凭借用户提供的正确口令才能顺利登录数据库,而所有的口令值都隐蔽在某一数据库中,按用户操作的子系统设置,如存放口令的表结构可包括下列字段:子系统名、用户号(ID)、用户名、口令等。

除通过口令进行身份认证外,其他一些身份认证的新技术也在数据库系统安全管理中得到广泛应用。常用的方法主要有数字证书认证、智能卡认证、个人特征识别等。

数字证书是认证中心颁发并进行数字签名的数字凭证,它实现实体身份的鉴别与认证、信息完整性验证、机密性和不可否认性等安全服务。数字证书可用来证明实体所宣称的身份与其持有的公钥的匹配关系,使得实体的身份与证书中的公钥相互绑定。

智能卡(有源卡、IC卡或Smart卡)作为个人所有物,可以用来验证个人身份。典型智能卡主要由微处理器、存储器、输入输出接口、安全逻辑及运算处理器等组成。在智能卡中引入了认证的概念。认证是智能卡和应用终端之间通过相应的认证过程来相互确认合法性。在卡和接口设备之间只有相互认证之后才能进行数据的读写操作,目的在于防止伪造应用终端及相应的智能卡。

根据被授权用户的个人特征来进行的认证是一种可信度更高的验证方法。个人特征识别应用了生物统计学(biometrics)的研究成果,它利用个人具有唯一性的生理特征来实现。个人特征都具有因人而异和随身携带的特点,不会丢失并且难以伪造,非常适合于个人身份认证。目前已得到应用的个人生理特征包括指纹、语音声纹(voice-print)、DNA、视网膜、虹膜、脸型、手型等。一些学者已开始研究基于用户个人行为方式的身份识别技术,如用户签名的方式、敲击键盘的方式等。个人特征一般需要应用多媒体数据存储技术来建立档案,相应地需要基于多媒体数据的压缩、存储、检索等技术作支撑。目前已有不少基于个人特征识别的身份认证系统成功地投入应用。如美国联邦调查局(FBI)成功地将小波理论应用于压缩和识别指纹图样,从而可以将一个10MB的指纹图样压缩成500KB,大大减少了数百万指纹档案的存储空间和检索时间。

2.存取控制 存取控制是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障。存取控制技术是数据库安全系统中的核心技术,也是最有效的安全手段。存取控制主要包括系统授权、确定存取权限和实施权限3个部分。在存取控制机制中,一般把被访问的资源称作客体,把以用户名义进行资源访问的进程、事务等实体称作主体。存取控制系统定义和控制系统中的主体对客体的存取访问权限,以确保系统授权的合法用户能够可靠地访问数据库中的数据信息,并同时防止非授权用户的任何访问操作。

传统的存取控制模型可以分为两大类:自主型存取控制(discretionary access control,DAC)和强制型存取控制(mandatory access control,MAC)。

(1)自主型存取控制:在这种存取控制模型中,系统用户对数据信息的存取控制主要是基于对用户身份的鉴别和存取访问规则的确定。每个用户对每个信息资源对象都要给定某个级别的存取权限,例如读权、写权等。当用户申请以某种方式存取某个资源时,系统就进行合法身份性检查,判断该用户有无此项操作权限来决定是否许可该用户继续操作。并且,对某个信息资源拥有某种级别权限的用户可以自主地把其所拥有的该级别合法权限传授给其他任何登录系统的用户。也就是说,系统授权的合法用户可以选择其他用户一起来共享其所拥有的客体资源。一般,自主型存取控制将整个系统的用户授权状态表示为一个授权存取矩阵。当用户要执行某项操作时,系统就根据用户的请求与系统的授权存取矩阵进行匹配比较,通过则允许满足该用户的请求,提供可靠的数据存取方式。否则,拒绝该用户的访问请求。

在自主型存取控制中,由于用户可以自主地把自己所拥有的权限授给其他用户而无须系统的确认。这样,系统的授权存取矩阵就可能被直接或间接地进行修改,给数据库系统造成不安全因素。

(2)强制型存取控制:在强制存取控制下,数据库系统给所有主体和客体分配了不同级别的安全属性,形成完整的系统授权状态。而且,该授权状态一般情况下不能被改变,这是强制型存取控制模型与自主型存取控制模型实质性的区别。一般用户或程序不能修改系统安全授权状态,只有特定的系统权限管理员才能根据系统实际的需要来有效地修改系统的授权状态,以保证数据库系统的安全性能。强制型存取控制系统主要通过对主体和客体的已分配的安全属性进行匹配判断,决定主体是否有权对客体进行进一步的访问操作。

近年来,基于角色的存取控制(role-based access control,RBAC)得到了广泛的关注。RBAC在主体和权限之间增加了一个中间桥梁——角色。权限被授予角色,而管理员通过指定用户为特定的角色来为用户授权。这大大简化了授权管理,具有强大的可操作性和可管理性。角色可以根据组织中不同的工作创建,然后根据用户的责任和资格分配角色。用户可以轻松地进行角色转换,而随着新应用和新系统的增加,角色可以分配更多的权限,也可以根据需要撤销相应的权限。

RBAC核心模型包含5个基本的静态集合:用户集(users)、角色集(roles)、对象集(objects)、操作集(operators)和特权集(perms),以及一个运行过程中动态维护的集合——会话集(sessions),如图15-4所示。

用户集包括系统中可以执行操作的用户,是主动的实体;对象集是系统中被动的实体,包含系统需要保护的信息;操作集是定义在对象上的一组操作;对象上的一组操作构成了一个特权;角色则是RBAC模型的核心,通过用户分配(UA)和特权分配(PA)使用户与特权关联起来。

图15-4 RBAC核心模型

RBAC属于策略中立型的存取控制模型,既可以实现自主存取控制策略,又可以实现强制存取控制策略,可以有效缓解传统安全管理处理瓶颈问题,被认为是一种普遍适用的访问控制模型,尤其适用于大型组织的有效的访问控制机制。

2002年,Park.J和Sundhu.R首次提出了使用控制(usage control,UCON)的概念。UCON对传统的存取控制进行了扩展,定义了授权(authorization)、职责(obligation)和条件(condition)3个决定性因素,同时提出了存取控制的连续性(continuity)和易变性(mutability)两个重要属性。UCON集合了传统的访问控制、可信管理以及数字权力管理,用系统的方式提供了一个保护数字资源的统一标准的框架,为下一代存取控制机制的发展提供了新思路。

3.数据加密 数据加密是保护数据的最基本措施,可以有效地防止数据库中数据的泄漏。一般来说,数据库中的数据不同于其他形式的数据,保存时间长,潜在威胁大,因此数据库中的重要数据不能以明文的形式进行存储,而应进行加密处理,以密文的形式存放,加强对数据的安全保护,避免失窃而造成损失。

对数据库加密处理有3种基本方式。①文件加密:将涉及重要信息的文件进行加密,使用时解密,不使用时再加密;②记录加密:与文件加密类似,但加密的单位是记录而不是文件;③字段加密:即直接对数据库的最小单位进行加密。

与传统领域的数据加密技术相比,数据库的数据加密技术有其自身的显著特点:①加密机制应该是实际上不可破解的,但为了数据的安全,系统的密钥方案也应适时变换。②数据加密后的存储空间应该没有明显改变。数据库一旦确定,其结构一般不能随意改变。因此,为了加密后的数据仍然能有效地存放在原来的数据库中,要严格限制加密后的密文数据存储大小,最好与明文数据大小相等。③加密和解密的时间要求更高。数据库中的数据往往被多个用户随机存取,如果系统不能在较短的时间内完成数据的加密或解密过程,必然会影响数据库的可用性。④数据库应该把灵活的授权机制和加密机制有机地结合在一起,有利于多用户对数据的共享。⑤要提供一套更加安全、灵活、可靠的密钥管理机构,对系统的所有密钥进行妥善管理,防止密钥的泄漏。⑥加密机制应当充分考虑到用户在存取数据粒度上的不同要求,对数据库中的数据进行不同粒度上的加密处理。⑦加密机制应尽量减小对数据库基本操作的影响。加密后的数据库对数据的查询、检索、修改和更新要简便灵活。一般情况下,数据库中采用的加密机制不对索引字段和表的内、外码进行加密,这也是加密技术在数据库应用中的限制。

4.审计追踪与攻击检测 软件工程技术直到目前还不能证明系统安全体系的可靠程度,因而也不可能保证任何一个系统完全不存在安全漏洞,也没有一种可行的方法可以彻底解决合法用户在通过身份认证后滥用特权的问题。因而,大型DBMS提供的审计追踪与攻击检测便成了一个十分重要的安全措施,也是任何一个安全系统中不可缺少的最后一道防线。

审计功能在系统运行时,可以自动将对数据库的所有操作记录在审计日志中,它用来监视各用户对数据库施加的动作,以便于事后调查和分析。攻击检测则是根据审计数据分析检测内部和外部攻击者的攻击企图,再现导致系统现状的事件,分析发现系统安全的弱点,追查相关责任者。目前审计有两种方式,即用户审计和系统审计。用户审计中,审计系统会记下所有对自己表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息,再将审计结果存储在数据库的审计表(系统表)之中,利用这些信息用户可以进行审计分析。系统审计则由系统管理员进行,其审计内容主要是系统一级命令以及数据库实例的使用情况。

设计审计机制首先要根据系统要求的安全级别确定审计与安全有关的事件,如使用标识和鉴定机制的事件、将客体引入用户空间的事件、删除实体的事件等。此后还要进一步确定审计内容,如发生的日期、时间、用户类型、事件成功与否等。

(三)数据库系统的可用性

数据库系统可用性包括数据的可获性、访问的可接受性和用户认证的时间性3个因素。

1.数据的可获性 首先,要访问的元素可能是不可访问的。例如,一个用户在更新几个字段,其他用户对这些字段的访问便必须被暂时阻止。这样可以保证用户不会收到不准确的信息。当进行更新时,用户可能不得不阻止对几个字段或几个记录的访问通道,以便保证数据与其他部分的一致性。不过有一点要注意,如果正在更新的用户在更新进行期间退出,其他用户有可能会被永远阻止访问该记录。这种后遗症也是一个安全性问题,会出现拒绝服务。

2.访问的可接受性 记录的一个或多个值可能是敏感的而不允许被用户访问。DBMS不应该将敏感数据泄露给未经批准的个人。但是判断哪些数据是敏感数据并不是那么简单,因为可能是间接请求该字段。一个用户也许请求某些包含敏感数据的记录,这可能只是由非敏感的特殊字段推出需要的值。即使没有明确地给出敏感的值,数据库管理程序也可能拒绝访问这样的背景信息,因为它会揭示用户无权知道的信息。

3.用户认证的时间性 为了加强安全性,数据库管理员可能允许用户只在某些时间访问数据库,比如在工作时间。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈