预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

浅谈数据库加密技术摘要:随着信息技术的发展,对数据的安全性要求越来越高,由于数据库加密技术可以为数据库管理系统提供更高的安全性,因此得到广泛应用。本文主要对数据库加密应满足的要求进行了阐述,介绍了数据库加密的常用办法,分析了数据库加密对数据库的影响。论文关键词:数据库,加密,安全一、数据库加密应满足的要求由于数据库具有数据复杂、数据的查询操作非常频繁且数据存储时限相对较长等特点,所以应用于数据库的加、解密算法及相应的密钥管理机制应满足以下要求:(1)数据库加密系统应满足的首要条件是保证数据的安全性。在此方面要求加密算法保证数据的保密性和完整性,防止未授权的数据访问和修改。(2)数据库中存在大量的查询操作,因此加解密效率要求较高,不能引起数据库系统的性能大幅度下降。(3)数据库组织结构对于数据库管理系统而言不能有太大的变动,应尽可能做到明文和密文长度相等或至少相当。(4)由于时限较长和密钥的复杂,密钥管理机制应更加安全、灵活和坚固。二、数据库加密的常用办法数据加密技术按照实现的方法可划分为静态加密和动态加密,从实现的层次上则可分为文件级加密和存储设备级加密。(1)静态加密与动态加密静态加密是指在加密期间,待加密的数据处于未使用状态,这些数据一旦加密,在使用前,需首先通过静态解密得到明文,然后才能使用。目前市场上许多加密软件产品就属于这种加密方式。与静态加密不同,动态加密是指数据在使用过程中自动对数据进行加密或解密操作,无需用户的干预,合法用户在使用加密的文件前,也不需要进行解密操作即可使用,表面看来,访问加密的文件和访问未加密的文件基本相同,对合法用户来说,这些加密文件是“透明的”,即好像没有加密一样,但对于没有访问权限的用户,即使通过其它非常规手段得到了这些文件,由于文件是加密的,因此也无法使用。由于动态加密技术不仅不改变用户的使用习惯,而且无需用户太多的干预操作即可实现文档的安全,因而近年来得到了广泛的应用。由于动态加密要实时加密数据,必须动态跟踪需要加密的数据流,而且其实现的层次一般位于系统内核中,因此,从实现的技术角度看,实现动态加密要比静态加密难的多,需要解决的技术难点也远远超过静态加密。(2)文件级动态加解密技术在文件系统层,不仅能够获得文件的各种信息,而且能够获得访问这些文件的进程信息和用户信息等,因此,可以研制出功能非常强大的文档安全产品。就动态加解密产品而言,有些文件系统自身就支持文件的动态加解密,如Windows系统中的NTFS文件系统,其本身就提供了EFS支持,但作为一种通用的系统,虽然提供了细粒度的控制能力(如可以控制到每个文件),但在实际应用中,其加密对象一般以分区或目录为单位,难以做到满足各种用户个性化的要求,如自动加密某些类型文件等。虽然有某些不足,但支持动态加密的文件系统在某种程度上可以提供和磁盘级加密技术相匹敌的安全性。由于文件系统提供的动态加密技术难以满足用户的个性化需求,因此,为第三方提供动态加解密安全产品提供了足够的空间。要研发在文件级的动态加解密安全产品,虽然与具体的操作系统有关,但仍有多种方法可供选择,一般可通过Hook或过滤驱动等方式嵌入到文件系统中,使其成为文件系统的一部分,从某种意义上来说,第三方的动态加解密产品可以看作是文件系统的一个功能扩展,这种扩展往往以模块化的形式出现,能够根据需要进行挂接或卸载,从而能够满足用户的各种需求,这是作为文件系统内嵌的动态加密系统难以做到的。三、数据库加密对数据库的影响数据加密是通过对明文进行复杂的加密操作,进而无法发现明文和密文之间、密文和密钥之间的内在关系,也就是说经过加密的数据经得起来自操作系统和数据库管理系统的攻击。但在数据库中以密文形式存在的敏感数据无法使用数据库管理系统的一些功能。数据库管理系统的功能比较完备,然而数据库数据加密以后,数据库管理系统一些功能将无法直接使用。1、加密字段不能实现索引功能。为了达到迅速查询的目的,数据库文件需要建立一些索引。索引建立和应用必须是明文状态,否则将失去索引的作用。有的DBMS中可以建立索引,这类索引也需要在明文状态下建立、维护和使用。2、表间的连接码字段不能加密。数据模型规范化以后,数据库表之间存在着密切的联系,这种相关性往往是通过局部编码联系的,这些编码若加密就无法进行表与表之间的连接运算。3、无法实现对数据制约因素的定义。数据库管理系统定义了数据之间的制约规则。数据一旦加密,DBMS将无法实现这一功能,而且,值域的定义也无法进行。4、密文数据无法实现SQL的排序、分组和分类功能。SELECT语句中的Group、Orderby、Having子句分别完成分组、排序、分类等操作。这些子句的操作对象如果是加密数据,那么解密后的明文数据将失去原语句的分组、排序、分类作用,显然这不是用户所需要的。5、