数据库加密系统探析

时间:2022-09-28 03:32:47

数据库加密系统探析

摘要: 数据库加密技术是增强数据库安全的重要手段,文章从数据库安全性的角度出发对数据库的加密层次、要求、粒度等进行了分析,并对DBMS外层的加密的算法和系统体系结构进行了探讨和研究。

关键词: 数据库;加密;解密;安全;DBMS

中图分类号:TP392文献标识码:A文章编号:1006-4311(2012)07-0130-02

0引言

随着计算机网络技术与数字通信技术的飞速发展,数据库系统成为开放环境的数据仓库,广泛应用于现实生活中各个领域。数据库的使用给合法用户带来的是数据存储和使用的便捷,而对于攻击者来说,一旦破解数据库,得到访问权,从而得以进入系统,破坏和窃取机密性的数据资料,获取其感兴趣的信息,严重情况下会危及整个系统的安全。由此数据库的安全问题,越来越受到人们的重视。如何保障数据库的安全性、保密性和数据的完整性,一直是计算机技术领域力求解决的关键问题之一。要保护数据库的安全性,其关键的问题是对数据库进行加密。

1数据库加密概述

OS是大型DBS的运行平台,其为DBS提供一定的安全保护。由于DBS在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用OS的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。它所带来的危害一般数据库用户难以觉察的。堵塞和分析这种漏洞被认为是B2级的安全技术措施。DBMS层次安全技术主要是用来解决这一问题,当前面两个层次的保护已经被破解的情况下仍能保障数据库数据的安全,这就要求DBMS必须有一套强有力的安全机制。解决这一问题的有效方法之一是DBMS对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。数据加密就是将明文数据经过一定的交换(变序或代替)变成密文数据。数据解密即将密文数据转变成可见的明文数据。实现数据库加密以后,各用户(或用户组)的数据由用户用自己的密钥加密,数据库管理员对获得的信息无法进行正常解密,从而保证了用户信息的安全。另外,通过加密,数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。因此我们可以考虑在OS层、DBMS内核层和DBMS外层三个不同层次上实现对数据库数据的加密。

1.1 OS层加密在OS层我们无法辨认数据库文件中的数据关系及其联系,因而无法产生合理的密钥,导致对密钥合理的管理和使用难度加大。

1.2 DBMS内核层实现加密DBMS内核层加密是指数据在物理存取之前完成加密和解密工作。其优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可实现加密功能与DBMS之间的无缝耦合。而其缺点是加密运算在服务器端进行,从而加重了服务器的负载,另外DBMS和加密器之间的接口需要DBMS开发商的支持。

1.3 在DBMS外层实现加密三种方法中比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,并根据加密要求自动完成对数据库数据的加密和解密处理。采用此种加密方式进行加密,加密和解密运算可在客户端进行,其优点是不会加重数据库服务器的负载,并且能实现网上传输的加密。缺点是其加密功能会受到一些限制,与DBMS之间的耦合性稍差。

2数据库加密粒度

加密粒度指的是加密的最小单位。按照数据库的结构层次数据库的加密粒度可以分为相应的数据库级、表级、记录级、字段级和数据项级。数据库级加密的对象是整个数据库,对于在辅助存储设备中备份的数据库,可以采取这种加密粒度。表级加密和记录级加密需要对DBMS内部一些核心模块进行修改,目前一些商用DBMS都不开放源代码,很难把这种方法与它们集成起来。数据项级加密的对象是记录中的某个字段值,它是数据库加密的最小粒度,具有较好的灵活性和适应性,但其加密、解密效率低。字段级加密的对象是关系中的某个字段。字段级加密是一个很好的选择,在实际生活中,可以对一些重要和敏感的信息列,如身份证号、信用卡号等,只需要对这些重要数据进行加密保护,而无需对普通数据也进行加密。所以选择一种合理的密钥管理方法是字段加密的关键所在。一般比较现实的方法是对重要的字段使用一个加密密钥加密,并在密钥的管理上采用多级密钥管理,即再使用一个二级密钥对数据密钥进行必要的加密,以提高加密的安全强度,并且便于密钥的管理。

3数据库加密的要求

数据库是为某DBMS服务的数据集合。数据库中的数据最终是以文件的形式存储在物理介质上,但我们不能将整个数据库作为文件加密。数据库操作最小的单位是一个数据项,在数据存储时,有可能是逐个数据项的存储。如果每次访问数据库都进行一次全文加密和解密,那么数据的存储速度将非常的慢。所以数据库加密应满足以下基本要求:

首先,加密要灵活。采用灵活性较好的方法,即以字段为加密粒度进行相应的加密,其对完成“一次一密”的密码操作是极具好处的。在数据库的加密系统中,如果以文件为单位进行加密,会出现加密密钥反复使用,并带来相关的攻击,从而使加密系统的可靠性明显降低。其次,密钥动态管理。密钥对于数据库加密系统有着非常重要的作用。现如今在加密算法已经公开的情况下,加密后数据的安全性主要取决于密钥。在数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构很可能对应着多个数据库物理客体,导致数据库加密的密钥量大,组织和存储工作也比较复杂,所以需要对密钥实现动态管理,以便保证数据库加密后的安全性,保证用户数据的安全。第三,数据操作要符合规范。要恰当地处理加密后的数据类型,一旦实现数据库加密后,数据库本身的空间不应有明显的增加。其加密后系统应基本不影响合法用户的操作,即便有,其影响数据操作响应时间应尽量短。

4DBMS外层实现加密

作为一种通过加密方式来保护数据的专门系统,数据库加密系统并不是一个数据库应用系统,而是一个将DBMS部分功能、加密器和密钥管理三者紧密结合起来的系统。显然数据库加密系统实际上主要实现的还是加密器的功能,它既可工作于数据库应用系统与DBMS之间,又可作为一个独立工作的系统直接与DBMS交互。数据加密基本流程是指将需要加密的敏感数据使用密钥进行加密操作,变换成其他人无法识别的形式。

4.1 DBMS外层加密算法DBMS外层加密算法可采用3DES算法。3DES是DES向AES过渡的加密算法,它使用3条56位的密钥对每个数据块应用三次DES加密。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被破解。3DES提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,3DES是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。

4.2 DBMS外层加密系统体系结构对于DBMS外层加密方式,数据库加密系统分成3个相对独立的功能。

4.2.1 数据库加密和解密引擎数据库的加密和解密引擎是数据库加密系统的核心部分,其主要功能是完成后台数据的加密和解密处理,用以实现用户对数据的透明访问。其主要包括两个功能模块:数据库接口模块和加密和解密处理模块。数据库接口模块主要有两部分接口:一是用户访问加密和解密引擎的接口;二是加密和解密引擎访问后台的数据库文件的接口函数,该接口模块将所有访问的操作封装成一组函数,屏蔽了各类数据库的特性,从而使加密和解密处理模块不需考虑实际使用的是何种数据库。

4.2.2 密钥管理模块密钥管理模块主要负责的是密钥的生产、更换、检测和销毁等工作。其功能是给加密和解密模块提供密钥和相关的密钥保护和验证。数据库中的密钥分3级:主密钥、表密钥和数据密钥。主密钥为最重要的密钥,它用来保护表密钥,用它将表密钥加密后存储在加密字典中,而主密钥本身则存放在密码装置中。

4.2.3 加密系统管理模块加密系统管理模块是对数据库整个加密系统进行加密字典和密钥等加密参数进行管理的模块。是操作人员对数据库加密系统进行管理的工具。其调用加密和解密引擎实现数据库记录的明文和密文之间的数据转换,调用密钥管理模块进行密钥的管理。加密系统管理模块位于DBMS与客户端数据库应用程序之间,功能是:验证用户对加密数据的访问权限;可根据用户的需求更改加密参数;调用加密和解密引擎实现对数据库中敏感数据的加密和解密及数据转换功能。用户只有通过该模块才能访问加密字典,这样既保证整个数据库加密系统设计的独立性,又保证了加密字典的安全性。

5DBMS外层加密系统的优点

DBMS外层加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于DBS,用户无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。

数据库加密系统首要解决系统本身的安全性和可靠性问题。为了防止非法用户对数据库数据进行窃取和篡改,要对数据库中的数据进行加密。数据库加密技术是保证数据库安全的重要手段之一,也是数据库安全问题研究的焦点。

参考文献:

[1]王熙照,谢竞博.基于属性间交互信息的模糊ID3算法的扩展[J].复旦学报(自然科学版),2004,43(5):777-780.

[2]丁华,张少中,王秀坤.基于改进ID3算法的轨迹化决策研究[J].计算机工程与设计,2004,25(10):1721-1723.

[3]刘莘,张永平,万艳丽.决策树算法在入侵检测中的应用分析及改进[J].计算机工程与设计,2006,27(19):3641-3643.

[4]赵卓,刘博,厉京运.基于DBMS外层的数据库加密系统研究与设计[J].计算机工程与设计,2008,29(12):3030-3033.

上一篇:战略视角的施工企业人力成本控制策略探讨 下一篇:外墙外保温砂浆施工及质量控制措施