数据库安全的实现技术.docx

上传人:b****8 文档编号:9130596 上传时间:2023-02-03 格式:DOCX 页数:9 大小:27.21KB
下载 相关 举报
数据库安全的实现技术.docx_第1页
第1页 / 共9页
数据库安全的实现技术.docx_第2页
第2页 / 共9页
数据库安全的实现技术.docx_第3页
第3页 / 共9页
数据库安全的实现技术.docx_第4页
第4页 / 共9页
数据库安全的实现技术.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

数据库安全的实现技术.docx

《数据库安全的实现技术.docx》由会员分享,可在线阅读,更多相关《数据库安全的实现技术.docx(9页珍藏版)》请在冰豆网上搜索。

数据库安全的实现技术.docx

数据库安全的实现技术

数据库安全的实现技术

 

王法能 周晓娟

 

 

摘 要介绍了数据库安全的重要意义和评估安全数据库的相关标准,讨论了保证数据库安全的机制,并进一步研究了实现安全数据库所应考虑的各方面问题,包括:

实施存取控制策略、数据库加密、审计与攻击检测等。

最后就数据库加密展开具体讨论。

关键词安全数据库数据加密

1 引言

  在现代社会中,信息是人类最宝贵的资源,以数据库为核心的信息系统在人们的社会生活和经验生活中起着越来越重要的作用,信息安全也日益成为关系企业成败、战争胜负乃至国家根本利益的重要问题,越来越引起人们的广泛重视。

数据库安全是指保护数据库中数据不被非法访问和非法更新,并防止数据的泄露和丢失。

保证数据库的安全涉及立法、管理和技术等多方面的问题,本文只讨论技术问题。

2  安全数据库评估标准

  随着人们对安全问题认识和对安全产品的要求不断提高,在计算机安全技术方面逐步建立一套安全评估标准,以规范和指导安全信息的建立、安全产品的生产,并能较准确地评测产品的安全性能指标。

在当前各国制定和采用的标准中,最重要的是1985年美国国防部颁布的“可信计算机系统评估标准(TCSEC)”桔皮书(又简称为DoD85)。

1991年,美国国家计算机安全中心(NCSC)又颁布了“可信计算机评估标准关于可信数据库管理系统的解释(TDI)”。

我国也于1994年2月发布了“中华人民共和国计算机信息系统安全保护条例”。

在TCSEC中将安全系统分为四大类七个等级,其基本特征如表1所示。

表1  可信计算机系统评估标准

等级

 定义

基本特征

D

D1

最小保护

基本无安全保护

C

C1

自主安全保护 

初级自主存取控制,审计功能

 

C2

受控存取保护

细化自主存取控制,实施审计与资源分离

B

B1

带标记的安全保护

基于标识的强制存取控制,审计功能

 

B2

结构化保护

形式化安全策略模型,对所有主体与客体实施 DAC与MAC,隐秘通道约束

 

B3

安全域保护

安全内核,更强的审计功能,系统恢复功能

A

A1

可验证保护

提供B3级保护并提供形式化验证

  TDI是TCSEC在数据库管理系统方面的扩充和解释,并从安全策略、责任、保护和文档四个方面进一步描述了每级的安全标准。

按照TCSEC标准,D类产品是基本没有安全保护措施的产品,C类产品只提供了安全保护措施,一般不称为安全产品。

B类以上产品是实行强制存取控制的产品,也是真正意义上的安全产品。

所谓安全产品均是指安全级别在B1以上的产品,而安全数据库研究原型一般是指安全级别在B1级以上的以科研为目的,尚未产品化的数据库管理系统原型。

3  保证数据库安全的基本方法

  从DBMS实现的角度看,保证数据库安全的一般方法包括:

用户身份认证、存取认证、存取控制、数据加密、审计跟踪与攻击检测。

 3.1用户身份认证

  用户身份认证是安全系统的第一道防线,目的是防止非法用户访问系统。

除口令控制外,用户身份认还可以采用比较复杂的计算过程和函数来完成,而智能卡技术、数字签名技术和生理特征(如:

指纹、体温、声纹、视网膜纹等)认证技术的迅速发展也为具有更高安全要求的用户身份认证提供了实用可行的技术基础。

 3.2存取控制

  数据库的存取控制机制是定义和控制用户对数据库数据的存取访问权限,以确保只授权给有资格的用户访问数据库的权限并防止和杜绝对数据库中数据的非授权访问。

存取控制又可以分为自主存取控制(DAC)和强制存取控制(MAC)两类。

  自主存取控制方法中,拥有数据对象的用户即拥有对数据的所有存取权限,而且用户可以将其所拥有的存取权限转授予其他用户。

自主存取控制很灵活,但在采用自主存取控制策略的数据库中,这种由授权定义的存取限制很容易被旁路,使系统无法对抗对数据库的恶意攻击。

因此,在要求保证更高程度的安全性系统中采用了强制存取控制的方法。

  强制存取控制方法中,对数据库中每个存取对象指派一个密级,对每个用户授予一个存取级。

对任意一个对象,只有具备合法存取级的用户才可以存取,可以有效地防止“特洛伊木马”类的恶意攻击。

 3.3数据加密

  数据加密是防止数据库中数据泄漏的有效手段,与传统的通信或网络加密技术相比,由于数据保存的时间要长得多,对加密强调的要求更高,要求不会明显降低系统性能。

 3.4审计追踪与攻击检测

  审计功能在系统运行时,自动将数据库的所有操作记录在审计日志中,攻击检测系统则是根据审计数据分析检测内部和外部攻击者的攻击企图,再现导致系统现状的事件,分析发现系统安全弱点,追查相关责任者。

  虽然存取控制在经典和现代安全理论中都是系统安全策略的最重要的手段,但软件工程技术目前还没有达到形式证明一个系统的安全体系的程度,因此不可能保证任何一个系统完全不存在安全漏洞,也还没有一种可行的方法可以彻底解决合法用户通过身份认证后滥用特权的问题。

这样,审计追踪与攻击检测不仅是保证数据库安全的重要措施,也是任何一个安全系统中不可缺少的最后一道防线。

4 安全数据库的实现方法--数据加密

  对于具有更高安全要求的DBMS,数据加密是保证用户数据隔离、防止敏感性数据泄漏的重要手段之一。

在设计数据库加密机制时,除了要考虑数据库中数据保留时间长,对于加密算法的强度要求更高外,还要考虑加/脱密过程对系统性能的影响。

从提高系统性能出发还可选择联机全数据库加密、脱机数据库加密或部分数据库加密等不同的加密方式。

4.1基本要求

  根据研究,一个良好的数据库加密系统应该满足以下基本要求:

4.1.1字段加密

  在目前条件下,加/脱密的粒度是每个记录的字段数据。

如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性或者因加脱密时间过长而无法使用。

只有以记录的字段数据为单位进行加/脱密,才能适应数据库操作,同时进行有效的密钥管理并完成“一次一密”的密码操作。

4.1.2密钥动态管理

  数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。

4.1.3合理处理数据

  这包括几方面的内容。

首先要恰当地处理数据类型,否则DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;其次,需要处理数据的存储问题,实现数据库加密后,应基本上不增加空间开销。

在目前条件下,数据库关系运算中的匹配字段,如表间连接码、索引字段等数据不宜加密。

文献字段虽然是检索字段,但也应该允许加密,因为文献字段的检索处理采用了有别于关系数据库索引的正文索引技术。

4.1.4不影响合法用户的操作

  加密系统影响数据操作响应的时间应尽量短,在现阶段,平均延迟时间不应超过1/10秒。

此外,对数据库的合法用户来说,数据的录入、修改和检索操作应该是透明的,不需要考虑数据的加/脱密问题。

4.2不同层次实现数据库加密

  可以考虑在三个层次实现对数据库数据的加密,这三个层次分别是OS、DBMS内核层和DBMS外层。

  在OS层,无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也无法进行合理的密钥管理和使用。

所以,在OS层对数据库文件进行加密,对于大型数据库来说,目前还难以实现。

  在DBMS内核层实现加密,是指数据在物理存取之前完成加/脱密工作,这种方式势必造成DBMS和加密器(硬件或软件)之间的接口需要DBMS开发商的支持。

这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能。

其缺点是在服务器端进行加/脱密运算,加重了数据库服务器的负载。

这种加密方式如图1所示。

                       

图1 DBMS内核层加密关系图

  比较实际的做法是将数据库加密系统做成DBMS的一个外层工具(如图2所示)。

采用这种加密方式时,加/脱密运算可以放在客户端进行,其优点是不会加重数据库服务器的负载并可实现网上传输加密,缺点是加密功能会受一些限制。

图中,“定义加密要求工具”模块的主要功能是定义如何对每个数据库表数据进行加密。

在创建了一个数据库表后,通过这一工具对该表进行定义;“数据库应用系统”的功能是完成数据库定义和操作。

数据库加密系统将根据加密要求自动完成对数据的加/脱密。

图2  DBMS外层加密关系图

4.3加密系统的有关问题

  数据库加密系统首先要解决系统本身的安全性和可靠性问题,在这方面,可以采用以下几项安全措施:

4.3.1在用户进入系统时进行两级安全控制

  这种控制可以采用多种方式,包括设置数据库用户名和口令,或者利用IC卡读写器/指纹识别器进行用户身份认证。

4.3.2防止非法拷贝

  对于纯软件系统,可以采用软指纹技术防止非法拷贝,当然,如果每台客户机上都安装加密卡等硬部件,安全性会更好。

此外,还应该保留数据库原有的安全措施,如权限控制、备份/恢复和审计控制等。

4.3.3安全的数据抽取方式

  提供两种卸出和装入数据库中加密数据的方式:

其一是密文方式卸出,这种卸出方式不脱密,卸出的数据还是密文,在这种模式下,可直接使用DBMS提供的卸出/装入工具;其二是明文方式卸出,这种卸出方式需要脱密,卸出的数据是明文,在这种模式下,可利用系统专用工具先进行数据转换,再使用DBMS提供的卸出/装入工具完成。

4.4系统结构

  数据库加密系统分成两个功能独立的主要部件:

一个是加密字典管理程序,另一个是数据库加/脱密引擎,体系结构如图3所示。

图3 数据库加密系统体系结构

  数据库加密系统将用户对数据库信息具体的加密要求记载在加密字典中,加密字典是数据库加密系统的基础信息。

  加密字典管理程序,是管理加密字典的实用程序,是数据库管理员变更加密要求的工具。

加密字典管理程序通过数据库加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能,此时,它作为一个特殊客户来使用数据库加/脱密引擎。

  数据库加/脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员是透明的。

  按以上方式实现的数据库加密系统具有很多优点。

首先,系统对数据库的最终用户完全透明,数据管理员可以指定需要加密的数据并根据需要进行明文/密文的转换工作;其次,系统完全独立于数据库应用系统,不需要改动数据库应用系统就能实现加密功能,同时采用了分组加密法和二级密管理,实现了“一次一密”;其三,系统在客户端进行数据加/脱密运算,不会影响数据库器的系统效率,数据加/脱密运算基本无延迟感觉。

  数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息,因为所有的数据都经过了加密。

另外,数据库加密以后,可以设定不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数据的安全性。

5  程序实现

  数据库加密,本质是对数据库中各个表的记录进行加密,使得非授权者即使打开数据库,获得数据库中表的内容,也无法识别加了密的密文内容,从而达到保证数据库安全的目的。

而数据库加密又不同于文本文件的加密,最显著的一点区别就是数据库中的表都是具在一定的数据结构,并且还有可能与其它表有关联,因此不能像普通文件那样,简单的明文输入,密文输出,而是还要考虑到表的结构。

第二点是数据表中各个字段有可能是不同的数据类型,这就给数据记录的加密带来另一个难题。

  针对这种问题,我采用把数据表的字段作为加密的最小粒度,通过VB中的数据库连接控件连接到数据表中某字段的第一条记录,用加密函数执行加密,然后将密文写入替代原文记录,如此循环,对该字段的每条记录执行加密,达到加密该字段的目标。

这样加密,没有破坏表的结构,没有破坏表与表之间的关联,只是将原文用密文代替,数据类型不改变。

但是这样加密也存在明显的缺点,首先只能一个字段一个字段的加密,其次,由于数据表中各个字段的数据类型有可能不同,因此在用加密函数加密时会出现有些类型的数据记录不能加密的现象。

  另外,对于数据库加密,由于数据库的结构是数据库很重要的因素,因此我设想还可以采用加密数据库中表结构的方法实现对数据库的加密,这样加密较之加密记录的方法,有一个明显的优点是完全可以不考虑表中各个字段的数据类型,只针对表的结构进行加密。

但是这样的加密也存在不足之处。

第一,由于表结构被加密,因此有可能出现加密后的表无法加载的现象。

第二,由于表结构被破坏,表与表之间有可能无法正常关联。

参考文献:

1 刘怡.《数据库安全与数据库管理系统设计》

2高品均,陈荣良.《数据库加密技术综述》

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1