基于网络应用的数据库加密系统问题刍议

时间:2022-09-15 08:59:15

基于网络应用的数据库加密系统问题刍议

摘要:该文针对以上这些问题,在针对数据库基于网络应用模式,对如何保证其中数据的私密性和对数据操作的有效性上,提出了一种加密数据可以直接进行搜索或查询的新方法,并根据研究结果对该算法中的加密方法进行了设计与实现。这些结果不仅可用于数据库应用,也可用于其它应用的加密数据的存储、访问、保密性要求的场合,如:记录日志的安全保护、电子邮件的安全保护等。

关键词:数据库加密;B/S模式;数据库安全;SQL;加密技术

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)14-3267-03

Web-based Applications, the Problem of Database Encryption System

WAN Fang

(Jiangxi Vocational College of Finance & Economics, Jiujiang 332000, China)

Abstract: As a result,on the basis of network,we work out and deeply research a kind ofnew method that can directly research or query on encrypted data so that we caneffectively protect the data privacy and guarantee efficiency in database.And accordingto the results of the research,we realize the encryption in a fact model. At the same time,these results can be applied not only to database,but also to the saving encrypted data,accessing encrypted data and confidentiality of other fields,such as the secureprotection of logs,the secure protection of e-mail,and so on.

Key words:Database encryption; B/S model; Database security; SQL; The Encryption

在网络环境下,由于数据库集中存储了极其大量和重要的数据。因此,数据库容易成为被攻击的重要目标。特别需要指出的是:一个相当重要的原因在于在数据库中存放的原始数据都是以可读的明文形式进行存放的。如果某一非法用户可以突破相关的瓶颈,进入到数据库中,甚至可以通过操作系统获取某一格式进行存储的数据库文件,他们就可完全获取到数据库中的全部数据。

目前,数据库已经成为各行各业不可缺少的重要应用。他们都需要对数据进行相关的使用,这里主要指对数据库的相关操作,比如:访问与存储。因此,这些组织都需要以力所能及的范围内建立并管理数据库系统以满足自己对不同的数据的处理需求。特别是在Internet环境下,较大型的公司、企业都需要借助于公用通信基础设施建立自己的外联网。因此,数据库必然从传统的单机模式发展成为基于网络的,有时甚至时分布式的联机模式。在这种基于网络的数据库应用需求下,数据库本身的安全尤其显得重要。加密技术的发展为此带来了机遇,但由于加密会带来额外的开销,如果加密造成数据库反应过慢,用户接口不良好,仍然会极大地限制加密技术在数据库安全中的应用。

1 数据库安全概述

在计算机系统中,数据主要有两种形式进行组织的:一种主要是以文件形式存储地介质中;另一种是以数据元的形式存储在数据库中。由于以数据库形式进行组织的数据具有一些明显的特性而得到广泛的应用,比如:可组织性、独立性、一致性、完整性和可访问等。所以到目前为止,数据库已成为计算机系统中,甚至是网络环境的计算机系统中数据存储的最主要形式,各种数据库系统也得到了极大的应用。

正是由于数据库极其重要的特性,数据库的安全也需要更高的要求。目前,从多种资料总结得到,数据库面临的安全主要有如图1所示的威胁。

如图1所示,在数据库系统中存在着多种多样的安全威胁,所以用户必须采取有效的方法和措施去保护自己重要的数据,以实现用户自己对安全的需求。从目前而言,数据库中数据的安全主要可以区分为两大类型:一是数据库中数据的逻辑安全;二是数据库中数据的物理安全。物理安全是指在数据库所处的应用软件不变的环境中,由于物理存储特征的改变而带来的安全方面的影响。例如,存储块的大小、存储方法、设备能力等;逻辑安全主要是指在数据库所处的各种环境不变的前提下,现存数据库对新的或对现存数据的各种新应用(比如网络应用)的支持能力。很明显,逻辑安全要求数据库应用程序应具备相应的数据独立性,能完全随着数据库的变化而变化。

2 网络数据库信息系统

在现代社会中,由于Interent的广泛应用,已经造成在各种各样的信息管理系统中,基于网络,特别是基于Internet技术的系统设计与架构已经成为一种非常流行的方式。网络数据库信息系统根据目前的相关研究表明,主要可以区分为三个不同的类别:一是双层体系结构、二是三层体系结构、三是分布式多层体系结构。

2.1 双层数据库应用体系结构

数据库应用系统的双层结构是最常用的一种数据库应用模式,如图1所示。一般情况下,客户端程序是与用户进行交互的接口,数据库一般放置于服务端的计算机上,当然,为了并发性的需求,一台服务器上的数据库由于本身的去支持,可以同时支持多个用户的连接请求,并同时处理多个用户的数据操作。双层结构的网络数据库系统一般情况下,只适用于少量的用户对数据的操作,并且一般局限于局域网内的用户对数据库的操作。要想跨越不同网络,是相当困难的。同时,由于双层结构对数据库和计算机本身系统的依赖性很强,这就给计算机系统的维护和更新带来了极大的不方便,任何一方有软件的更新,都会涉及众多的方面,实现起来常常很困难,特别对于客户端而言,一旦有软件更新,将会对所有客户端进行手工操作,更新相当麻烦。

2.2 三层数据库应用体系结构

正是由于二层数据库本身存在的不足,经过不同研究人员的努力,出现了数据库应用体系的三层结构。三层结构弥补了双层的结构的不足。主要特点是在用户界面的接口层和服务器上的数据库层之间加入了进一步进行相关处理,以完善系统功能的中间层。可以这样来理解,中间层是数据库与用户之间数据进行周转和分配一个中间枢纽站。一般情况下,用户界面接口层不直接同服务器上的数据库进行交互,二者之间主要是通过中间层的接口间接地进行互动,以完成相关的数据操作任务。这样处理的优点在于:中间层可以协调和优化各种处理进程,对于中间层的改动,不会对客户端和服务器端都造成影响,实现了透明操作。同时,由于现行的各种涉及数据库的系统,都会存在较多的用户并发数,在这种情况下,三层结构能提高用户的使用效率。由于三层结构的相对独立性,还能提高程序的可移植性,特别是客户端的可移植性,从而能实现较强的兼容性。

2.3 分布式多层数据库应用体系结构

由于网络技术的进一步发展,特别是考虑到数据的重要性,需要将数据进行分开存放,以实现重要数据的安全和多用户访问时的效率。特别是随着中间件技术的发展,已经较为成熟的三层体系结构面临新的发展趋势,即,由于网络技术的发展,已经逐步向分布式多层体系结构进行发展。所谓分布式多层,是指这种结构中客户端完成的工作更少了,一般只存放表示层软件,相关功能都主要放在中间层,并采用专门的中间件服务器来实现应用逻辑功能,数据库一般并不直接处于服务器中,而是在服务器之后,并不直接面向用户。在多层分布式系统结构中,全部计算机系统的资源被进行统一管理,并进行合理地分配使用,即便是有网络的存在,用户仍然可以透明地使用网络中的数据资源。

2.4 基于网络应用数据库的两种模型

在网络数据库应用中,根据其体系结构的不同,主要存在两种最为典型的结构模型:C/S模型和B/S模型。C/S(Client/Server)模型,一般又可称为客户机-服务器模型。C/S模型通常都是采用上一章节所述的双层体系结构。并且在该模型中,由于客户和服务器两端都存在着硬件环境的优势,可通过合理分配,将比较繁重的任务分散到两端进行处理,从而可以降低系统的通讯开销。但是其扩展比较困难,一旦有软件更新,将会带来极大的不便。同时,由于专门建立通信的连接,其安全性可以做到较好。B/S(Browser/Server)模型,一般又可称为浏览器-服务器模型。B/S模型通常都是采用上一章节所述的三层或多层体系结构。该模型的发展离不开网络技术,特别是Internet技术,在考虑到C/S结构本身的缺点上,对C/S结构的一种变化或者改进的结构,充分考虑到了在网络情况下的应用需求。在B/S结构下,用户接口界面主要是通过浏览器(比如微软的IE浏览器、网景的NETSCAPE浏览器等)来实现,大量的主要事务逻辑在服务器端实现,从而实现瘦客户端。同时兼容性较好,只要有浏览器的地方,即可以实现B/S模型。但由于其使用Internet技术,安全性较差,一般情况下,可以通过相关中间件技术进行弥补。

3 基于网络应用数据库加密系统的实现

3.1 系统要求

基于网络应用数据库加密系统应该满足以下基本要求:

1) 加密灵活

在数据库中密系统中,如果以文件或列为单位进行加密,一个明显的结果是:加密密钥会出现反复使用,对加密密钥的重复作用会带来相关的攻击,从而明显降低加密系统的可靠性。如果采取记录的字段数据为单位进行相应的加密,才会带来较好的灵活性,也才能较为普遍地适应数据库的相关操作,但对于有效的密钥管理是个难题,但对于完成“一次一密”的密码操作是极具好处的。

2) 密钥动态管理

密钥对于数据库加密系统有着极其重要的作用。在加密算法已经公开的情况下,加密后数据的安全性主要取决于密钥。由于数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理,以便保证数据库加密后的安全性,保证用户数据的安全。

3) 数据操作要规范

由于数据库本身就具备不同的数据操作功能,为用户提供了相应的功能。数据库在加密后,不能改变、影响用户以往的正常操作,加密后的数据库仍然要保持规范化的数据操作。首先要恰当地处理数据类型,加密后的数据一般都发生了数据类型的改变,比如:数值型数据将因为加密会转变成字符型数据。如果不考虑好,DBMS将会因加密后的数据不符合定义的数据类型而拒绝加载;另外,在数据的存储问题上,也必须进行充分的考虑,最基本的要求在于,一旦实现数据库加密后,数据库本身的空间不应有明显的增加。考虑到上述要求,与数据库关系运算相关的一些重要的匹配字段,比如:常使用的表间连接码、数据库本身已经建立的索引字段等不宜加密。除此之外的其他字段都可以加密,比如:文献字段虽然是检索字段,但也应该允许加密,主要的原因在于文献字段的检索处理采取的是有别于关系数据库索引的正文索引技术。

4) 不影响合法用户的操作

对于采用了加密的数据库系统,其加密后系统应基本不影响合法用户的操作,即便有,其影响数据操作响应时间应尽量短。此外,在合法用户进行数据的录入、修改和检索的相关操作时,应该不受明显影响,最好是透明的,用户应该不需要考虑数据的加/脱密等相关数据库加密问题。

3.2 加密位置

总体上而言,对于数据库加密可以在三个不同层次上实现,即:OS、DBMS内核层和DBMS外层。相关的资料表明,在OS层,由于我们无法有效地辨认数据库文件中的相关数据关系,从而不能,也无法产生较为合理和有效的密钥,从而根本有效地进行合理的密钥管理和使用。所以,就目前的技术而言,要在OS层对数据库文件进行加密,特别对于大型数据库来说,还很难实现。

除了在OS层加密之外,还可在DBMS内核层实现加密,这就是要求相关数据必须在物理存取之前就应该完成加/脱密工作。这种加密方式是最方便的,也是最有效率的,并且加密功能几乎不会影响DBMS的功能。便最大的不足在于:这种方式势必需要DBMS开发商的支持。另外,这种加密方式也必然需要在服务器端进行加/脱密运算,这样就会明显加重数据库服务器的负载。较为典型的这种加密方式结构如图2所示。

除了上述两种方法之外,最后的一种方法,也是在现实中采用较多的一种方法是将数据库加密系统做成DBMS的一个外层工具,该系统位于DBMS层和用户接口之间。采用上述在DBMS外层进行加密时,一个明显的优点在于:加/脱密运算可以进行灵活设置,为了减少服务器端的负荷,可以将之放在客户端进行,从而不会加重数据库服务器的负载,同时在服务器与客户端进行网上传输时,由于都是加密数据从而提高安全性,缺点是加密功能会受一些限制。特别是对于加密数据库系统,由于处理加密后的数据,数据完整性、一致性问题是必须要考虑的。

参考文献:

[1] (美)斯大林(Stallings.W.). 密码编码学与网络安全.原理与实践[M].2版. 杨明,译.电子工业出版社,2001.

[2] 宋震. 密码学[M].北京:中国水利水电出版社,2002.

[3] 庄成三, 史济民. 数据库系统原理及其应用[M].北京:电子工业出版社,2000.

[4] (美)帕特理克. SQL基础[M]. 2版.高京义, 汤严,等,译.北京:清华大学出版社,2003.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于单片机的CAN_NODE的设计与实现 下一篇:基于网络化测试系统时间同步协议确定