数据库系统平安性

时间:2022-03-23 05:21:31

数据库系统平安性

首先讨论自主访问控制模型,接着分析改造数据库实现数据库平安,最后探究应用解析。

数据库管理系统(DBMS)是一个非常复杂的系统,检测和评估数据库的平安性,涉及到众多的参数、设置、选项和数据库本身的方方面面。平安评测可以采用专家评测或运行评测系统两种方式,二者各有所长。一方面,专家评测比评测系统具有更强的灵活性,可以充分发挥专家的智能和经验。另一方面,评测系统更适用于数据库系统定期的平安评测。专家评估只是针对被评估时的状态,但是系统是在不断变化的,假如系统状态发生了变化(比如添加了一些新用户,修改了某些用户的权限),也许会出现新的平安漏洞。定期聘请专家评估的成本比较高,平安评测系统则可以在系统状态发生变化后重新进行评测。

一、自主访问控制模型

自主访问控制模型是基于用户身份的访问和控制。在自主型访问平安模型中,每个用户都要被分配一定的权限,例如用户或者是被答应读取,或是被答应写入。也就是说,在自主型访问平安模型中,对资源对象的“拥有”是用户最核心的权限属性。当某个用户要求访问某个数据库资源时,系统检查该用户对该资源的所有权限,或衍生出来的访问权限,假如通过,则答应该访问在许可的方式下进行,假如不能通过,则拒绝继续访问系统。在自主型平安模型中,拥有某种权限的用户可以自主地将其所拥有的权限传授给其他任意在系统中登录的用户,它是该模型存在的致命缺点。自主访问平安模型的典型代表是存取矩阵。DAC模型可对用户提供灵活和易行的数据访问方式,但平安性相对较低。在该模型中,尽管访问控制只在授权后才能得到,但攻击者也很轻易越过访问的授权限制。如当一个用户有权对某数据进行读操作时,它可以把这个权利传递给无权读此数据的人,而数据的所有者并不知道这一切。一旦某个信息为用户所获得,那么该模型策略对信息的使用是不加任何限制的。也就是说,在该模型中,尽管有自主型控制,对于非授权的人来说,非法读取数据是可能的,这样一来,系统就很轻易受到类似特洛伊木马的攻击。特洛伊木马可以改变系统的保护状态,使系统平安受到威胁。

二、改造数据库实现数据库平安

(一)采用对数据库驱动程序进行平安扩展的方法

在数据库存取接口上,通过扩展标准的SQL语句,透明地实现对数据库中敏感信息的加密和完整性保护,对关系数据库的操作可以采用SQLDDL和SQLDML语言,通过ODBC、.IDBC、BDE等数据库驱动程序实现对数据库中表格、记录或字段的存取控制;并对用户操作进行日志记录和审计,从内部增强关系数据库的存储和存取平安。这种方式具有通用性,并且不会对数据库系统的性能造成大的影响。该模型在常规数据库驱动程序中增加密钥管理、审计日志管理、完整性验证和数据加解密等平安扩展模块,通过附加的平安属性如数据库存储加密密钥和审计日志等和平安相关的信息来加强数据库的平安;同时,增加数据库主密钥设置、更新和加密算法设置等平安属性来提高SQL语句的平安性。

(二)采用基于视图的数据库平安模型

SQLServer通用平安模型的特征是将权限赋予表,用户要查询数据、更改数据或对数据库进行其它操作时,直接存取表,用户只要有对表的Select权限,就可以检索表中所有的信息。但是,现实世界中大多数的应用都要求对信息本身划分为不同的保密级别,如军队中对信息的分类就不能简单地划分为公开和保密2类,而是需要更加细致的分类,可能对同一记录内的不同字段都要划分为不同的保密级别。甚至同一字段的不同值之间都要求划分为不同的保密级别。多级保密系统中,对不同数据项赋予不同的保密级别。然后根据数据项的密级,给存取本数据项的操作赋予不同的级别。SQLServer通用平安模式显然不能将不同的字段和同一字段的不同值分为不同的保密级别。这是因为用户直接存取存储数据的数据库表。采用基于视图的数据库平安模型。这个新问题就可迎刃而解。

利用视图限制对表的存取和操作摘要:通过限制表中的某些列来保护数据;限制表中的某些行来保护数据。视图和权限创建一个视图后,必须给视图授予对象权限,用户才能存取和操作视图中的数据,不必给作为视图表的基础表授予权限。

三、应用解析

应用解析是数据库平安中间件(DBSAPI)的重要组成部分,包括语法分析、词法分析、加密字典信息的检索、访问控制字典信息的检索、SQL命令的加密变换等,目前语法分析并不能识别所有类型的SQL命令,可以不考虑那些和加脱密无关的SQL命令,碰到不熟悉的SQL命令,则直接提交给DBMS的语法词法分析.基于现在对于数据库信息已做非凡处理,SQL请求返回的信息已经不是其本身的价值方式,同时为了更好地实现业务层将用户和数据访问的复杂性相隔离的目的,将用户界面层的所有数据访问请求提取出来,放到数据访问应用解析模块中.这不但将用户和数据访问完全隔离,而且大大改善了对数据访问操作的查询和管理效率.当用户界面层从客户端向数据库层发出对数据库的请求时,首先对应的SQL请求进行语法词法分析,接着检索访问控制和加密字典,根据访问控制和加密定义需求进行相关操作,然后提交给DBMS作数据提取处理,最后将结果返回到用户界面层,数据访问过程中实时出现的错误也返回用户界面层.

上一篇:搜索引擎发展前景 下一篇:网络语言