您好, 访客   登录/注册

关系型数据库加密技术研究任华新

来源:用户上传      作者: 任华新

  摘要:随着关系型数据库在计算机应用领域越来越多的应用,数据的安全问题越来越受到重视。如果对数据库中的数据进行加密处理,那么数据库的安全性就能有所提高。所以,数据库加密是解决数据库安全问题最为有效的一种方法。关系型数据库的加密技术有很多,关键是应该使用那种方法,所以关系型数据库中加密技术的研究是非常必要的。
  关键词:关系型数据库;加密;加密算法;粒度
  中图分类号:F062.5文献标志码:A文章编号:1673-291X(2009)32-0258-02
  
  数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。数据库的建设规模、数据库信息量的大小和使用频度已逐渐成为衡量一个国家信息化程度的重要标志。在众多数据库模型中关系型数据库是现今使用最广泛、最容易理解和使用的数据库模型。大多数的企业级系统数据库都采用关系型数据库。下面本文就将对关系型数据库加密进行一些探讨性的研究。
  
  1关系型数据库加密的必要性
  
  关系型数据库系统的安全不仅依赖自身内部的安全机制,还与外部网络环境、应用环境、从业人员素质等因素息息相关。因此,从广义上讲,数据库系统的安全框架可以划分为三个层次,即网络系统层次、宿主操作系统层次、数据库管理系统层次。
  这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。但是,值得注意的是OS和DBMS对数据库文件本身仍然缺乏有效的保护措施,无法阻挡对数据文件本身的攻击。最简单的,如有人偷走了存放数据文件的硬盘,则文件中的信息将被泄露。
  据有关资料报道,80%的计算机犯罪来自系统内部。在传统的关系型数据库系统中,数据库管理员的权力是至高无上,他既负责各项系统管理工作,又可以查询数据库中的一切信息。为此,不少系统以种种手段来削弱系统管理员的权力。实现关系型数据库加密以后,各用户(或用户组)的数据由用户用自己的密钥加密,数据库管理员获得的信息无法进行正常解密,从而保证了用户信息的安全。
  
  2关系型数据库加密的要求与限制
  
  2.1关系型数据库加密的要求
  由于关系型数据库本身的特点和实际应用需求,对关系型数据库加密一般应实现以下功能:
  (1)由于关系型数据库数据信息的生命周期一般比较长,所以加强加密的力度,难以破译;
  (2)数据信息在加密后,不能明显地扩大存储空间;
  (3)不能影响数据库的使用速度,即加/解密速度都应足够快;
  (4)加密系统应同时提供一套安全的、灵活的密钥管理机构,提供灵活的加密要求满足;
  (5)加密后的关系型数据库仍能满足用户在不同类别程度上的访问。
  
  2.2关系型数据库加密的限制
  数据加密通过对明文进行复杂的加密操作,以达到无法发现明文和密文之间、密文和密钥之间的内在关系,复杂性已经破译的难度要求足够高,也就是说经过加密的数据经得起来自DS和DBMS的攻击。另一方面,DBMS要完成对数据库文件的管理和使用,必须具有能够识别部分数据的条件。因此,只能对数据库中数据进行部分加密。以下几点是我们在给关系型数据库加密时应该注意的问题。
  (1)索引字段不能加密
  为了达到快速查询的目的,关系型数据库文件需要建立一些索引,它们的建立和应用必须是明文状态,否则将失去索引的作用。
  (2)关系运算的比较字段不能加密
  DBMS要组织和完成关系运算,运算的数据一般都要经过条件筛选,这种“条件”选择项必须是明文,否则DBMS将无法进行比较筛选。
  (3)表间的连接码字段不能加密
  关系型数据库中表之间存在着密切的联系,这种相关性往往是“外部编码”联系的,这些编码若加密就无法进行表与表之间的连接运算。
  
  3关系型数据库加密方式
  
  关系型数据库加密方式数据库加密,主要分为两种方式:DBMS外部加密和DBMS内部加密。
  
  3.1 DBMS外部加密
  DBMS外部加密的优点是,不需要修改DBMS,只需要在应用程序或者操作系统中增加相应的加/解密模块即可。但是,这种方法也有一些缺点,首先它不能支持各种加密粒度。其次,它仅仅对用户数据进行加密,而不能对元数据、索引数据、日志等进行加密。因此,安全性受到影响。再者,数据的完整性检查需要应用程序来完成,不能尽量发挥DBMS的作用,因为数据加密后,没有办法在DBMS完整性检查,而需要在应用程序中增加这项功能,实现起来非常麻烦。
  
  3.2 DBMS内部加密
  一般选择在数据物理存取之前进行加/解密操作。这种方法的优点是,由于DBMS能够区分各种粒度的数据,所以,可以支持各种粒度的加密,加密粒度可以灵活地选择。另外,在DBMS内部实现加密,可以更有效地利用DBMS内部的访问控制机制、授权机制等各种功能。更重要的是,关系型数据库一个重要特点是被多个应用共享,这种方法的加解密都是在DBMS内部完成,对应用程序是透明的,不需要在多个应用中进行修改,使用起来比较方便,且容易保持数据的一致性,缺点是需要修改DBMS的内核。关系型数据库的关键术语有:数据库、表、字段、行和数据元素。基本上可以针对这几方面形成一种加密的方法。
  (1)数据库级
  加密的对象是整个数据库,对数据库中所有的对象进行加密处理。这种加密方法只需要对存储在磁盘中的相应数据库文件进行加密处理即可,密钥的数量少,便于管理。但是,采用此加密粒度,对性能会带来很大的影响。即使只需要查询一条记录,也需要对整个数据库进行解密。这样,访问的速度不可避免的要降低。
  (2)表级
  加密的对象是数据库中的基本元素表。关系型数据库包含多个表,并不是所有的表都有很高的安全需要,因而只需要对其中一些包含敏感信息的表进行加密。与数据库级加密相比,采用表级加密粒度,系统的查询性能会有所改善,因为对于未加密表的查询,系统性能不会受到影响,对于加密表的查询,只需要解密对应的加密表,而不要解密整个数据库。但是,这种方法与DBMS集成时,需要对DBMS内部一些核心模块进行修改,这些工作是很困难完成的。
  (3)记录级
  加密的对象是数据表中的记录,即对整条记录一起进行加密处理。在实现记录级加密时,通过调用专门的加密函数,对记录进行加密。与数据库和表级加密相比,这种加密的粒度更细,可选择的灵活性更好。但是,它和表级加密一样,这种方法也需要对DBMS内核进行修改。
  (4)字段级
  加密的对象是关系中的某个字段,即表中的列。一张表包含多个字段,在某些时候,并不是所有的字段都需要加密。因为在实际生活中,一些重要和敏感的信息往往出现在关系中的某些列,只需要对这些重要数据进行加密保护,而不用对所有字段。在实现字段级加密时,可以采取多种方式,既可以在DBMS外部完成,也可以在DBMS内部完成。
  (5)数据项级
  加密的对象是记录中的某个字段值,它是数据库加密的最小粒度。数据项级加密的方法更为灵活,它的实现方式与字段级加密相似,但其密钥管理将会更加复杂。
  
  4加密算法比较
  
  加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。密钥是控制加密算法和解密算法的关键信息,它的产生、传输、存储等工作是十分重要的。
  DES算法,DES(Data Encryption Standard)是把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,但只用到其中56位。Des的密码学缺点是密钥长度相对比较短,因此,人们又想出了一个解决其长度的方法,即采用三重DES,三重DES是DES的一种变形。
  RSA算法,它是第一个既能用于数据加密也能用于数字签名的算法。RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题,RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。
  AES算法,将在未来几十年里代替DES在各个领域中得到广泛应用,总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。AES设计有三个密钥长度:128、192、256位,相对而言,AES的128密钥比DES的56密钥强1 021倍。AES算法主要包括三个方面:轮变化、圈数和密钥扩展。
  
  5结束语
  
  上面介绍的只是关系型数据库加密方法的一些探讨性研究,这些论述还远远没达到关系型数据库安全需要,比如现在的关系型数据库基本都给与网络架构,网际的安全传输等,也是要重点考虑的方面,等等。一个好的安全系统必须综合考虑如何运用这些技术,以保证数据的安全。
  
  参考文献:
  [1]胡志奇.数据库安全与加密技术研究[J].计算机与现代化,2003,(11):24-3.
  [2]王晓峰,王尚平,秦波.数据库加密方法研究[J].西安理工大学学报,2002,(6):68-73.
  [3]陈卫.数据库加密密钥的分配与管理技术[J].清华大学学报,1994,(1):54,60.
  [4]411N .G albreath.C ryptographyfo rIn tenretan dd atabasea ppilcaitons.W ileyP ublishing,In c,2002.
  
  责任编辑 冯胜利


转载注明来源:https://www.xzbu.com/2/view-400113.htm