首页 理论教育 网络数据库的加密保护:实用指南

网络数据库的加密保护:实用指南

时间:2023-11-26 理论教育 版权反馈
【摘要】:另外,通过加密,网络数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。由此可见,网络数据库加密对企业内部安全管理也是不可或缺的。(二)网络数据库加密的层次可以考虑在三个不同层次实现对网络数据库网络数据的加密,这三个层次分别是操作系统层、DBMS内核层和DBMS外层。比较实际的做法是将网络数据库加密系统做成DBMS的一个外层工具。

网络数据库的加密保护:实用指南

大型DBMS的运行平台(如Windows NT和UNIX)一般都具有用户注册、用户识别、任意存取控制(DAC)、审计等安全功能。虽然DBMS在操作系统的基础上增加了不少安全措施(如基于权限的访问控制等),但操作系统和DBMS对网络数据库文件本身仍然缺乏有效的安全保护措施。有经验的网上黑客也会绕过一些防范屏障,直接利用操作系统工具窃取或篡改网络数据库文件内容,这种隐患被称为通向DBMS的“隐秘通道”,它所带来的危害一般网络数据库用户难以觉察。

在传统的网络数据库系统中,网络数据库管理员的权力至高无上,既负责各项系统的管理工作(如资源分配、用户授权、系统审计等),又可以查询网 络数据库中的一切信息。为此,不少系统通过各种方式来削弱系统管理员的权力。

对网络数据库中存储的网络数据进行加密是一种保护网络数据库网络数据安全的有效方法。网络数据库的网络数据加密一般是在通用的网络数据库管理系统之上,增加一些加密/解密控件,来完成对网络数据本身的控制。与一般通信中加密的情况不同,网络数据库的网络数据加密通常不是对网络数据文件加密,而是对记录的字段加密。当然,在网络数据备份到离线的介质上送到异地保存时,也有必要对整个网络数据文件进行加密。

实现网络数据库加密后,各用户(或用户组)的网络数据由用户使用自己的密钥加密,网络数据库管理员对获得的信息无法随意进行解密,从而保证了用户信息的安全。另外,通过加密,网络数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。由此可见,网络数据库加密对企业内部安全管理也是不可或缺的。

也许有人认为,对网络数据库加密后会严重影响网络数据库系统的效率,使系统不堪重负。事实并非如此。如果在网络数据库客户端进行网络数据加密/解密运算,则对网络数据库服务器的负载及系统运行几乎没有影响。比如,在普通PC上,用纯软件实现DES加密算法的速度超过200kb/s,如果对一篇一万个汉字的文章进行加密,其加密/解密时间仅需1/10s,这种时间延迟用户几乎无感觉。目前,加密卡的加密/解密速度一般为1Mb/s,对中小型网络数据库系统来说,这个速度即使在服务器端进行网络数据的加密/解密运算也是可行的,因为一般的关系型网络数据项都不会太长。

(一)网络数据库加密的要求

一个良好的网络数据库加密系统应该满足以下一些基本要求。

1.字段加密

在目前条件下,加密/解密的粒度是每个记录的字段网络数据。如果以文件或列为单位进行加密,必然会形成密钥的反复使用,从而降低加密系统的可靠性,或者因加密/解密时间过长而无法使用。只有以记录的字段网络数据为单位进行加密/解密,才能适应网络数据库操作的需要,同时进行有效的密钥管理并完成“一次一密钥”的密码操作。

2.密钥动态管理

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

3.合理处理网络数据

合理处理网络数据包括以下几个方面的内容:首先,要恰当地处理网络数据类型,否则DBMS将会因加密后的网络数据不符合定义的网络数据类型而拒绝加载;其次,需要处理网络数据的存储问题,实现网络数据库加密后,基本上不增加空间开销。在目前条件下,网络数据库关系运算中的匹配字段(如表间连接码、索引字段等)网络数据不宜加密。

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

加密系统对网络数据操作响应的时间应尽量短。在现阶段,平均延迟时间不应超过1/10s。此外,对网络数据库的合法用户来说,网络数据的录入、修改和检索操作应该是透明的,不需要考虑网络数据的加密/解密问题。

(二)网络数据库加密的层次

可以考虑在三个不同层次实现对网络数据库网络数据的加密,这三个层次分别是操作系统层、DBMS内核层和DBMS外层。

在操作系统层,无法辨认网络数据库文件中的网络数据关系,从而无法产生合理的密钥,也无法进行合理的密钥管理和使用。所以,在操作系统层对网络数据库文件进行加密,对大型网络数据库来说,目前还难以实现。

在DBMS内核层实现加密,是指网络数据在物理存取之前完成加密/解密工作。这种方式势必造成DBMS和加密器(硬件或软件)之间的接口需要DBMS开发商的支持。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与网络数据库管理系统之间的无缝耦合。但这种方式的缺点是在服务器端进行加密/解密运算,加重了网络数据库服务器的负载。(www.xing528.com)

比较实际的做法是将网络数据库加密系统做成DBMS的一个外层工具。采用这种加密方式时,加密/解密运算可以放在客户端进行,其优点是不会加重网络数据库服务器的负载,并可实现网上传输加密;缺点是加密功能会受到一些限制,与网络数据库管理系统之间的耦合性稍差。“加密定义工具”模块的主要功能是定义如何对每个网络数据库表网络数据进行加密。在创建了一个网络数据库表后,通过这一工具对该表进行定义;“网络数据库应用系统”模块的功能是完成网络数据库定义和操作。网络数据库加密系统将根据加密要求自动完成对网络数据库网络数据的加密/解密操作。

(三)网络数据库加密的有关问题

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

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

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

2.防止非法复制

对于纯软件系统,我们可以采用软指纹技术防止非法复制。当然,如果每台客户机上都安装加密卡等硬部件,安全性会更好,还应该保留网络数据库原有的安全措施,如权限控制、备份/恢复和审计控制等。

3.安全的网络数据抽取方式

网络数据库加密系统提供两种网络数据库中卸出和装入加密网络数据的方式。

密文方式卸出方式不解密,卸出的网络数据还是密文,在这种模式下,可直接使用DBMS提供的卸出/装入工具。

明文方式卸出方式需要解密,卸出的网络数据是明文,在这种模式下,可利用系统专用工具先进行网络数据转换,再使用DBMS提供的卸出/装入工具完成。

(四)网络数据库加密系统结构

网络数据库加密系统分为两个功能独立的主要部件:一个是加密字典管理程序;另一个是网络数据库加密/解密引擎。

网络数据库加密系统将用户对网络数据库信息具体的加密要求记载在加密字典中,加密字典是网络数据库加密系统的基础信息,可以通过调用网络数据库加密/解密引擎实现对网络数据库表的加密/解密及网络数据转换等功能。网络数据库信息的加密/解密处理是在后台完成的,对网络数据库服务器是透明的。

加密字典管理程序是管理加密字典的实用程序,是网络数据库管理员变更加密要求的工具。加密字典管理程序通过网络数据库加密/解密引擎实现对网络数据库表的加密/解密及网络数据转换等功能,此时,它作为一个特殊客户来使用网络数据库加密/解密引擎。

网络数据库加密/解密引擎是网络数据库加密系统的核心部件,它位于应用程序与网络数据库服务器之间,负责在后台完成网络数据库信息的加密/解密处理,对应用开发人员和操作人员来说是透明的。网络数据加密/解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通信。

网络数据库加密/解密引擎由三大模块组成:网络数据库接口模块、用户接口模块和加密/解密处理模块。其中,网络数据库接口模块的主要工作是接收用户的操作请求,并传递给加密/解密处理模块;此外,还要代替加密/解密处理模块去访问网络数据库服务器,并完成外部接口参数与加密/解密引擎内部网络数据结构之间的转换。加密/解密处理模块完成网络数据库加密/解密引擎的初始化、内部专用命令的处理、加密字典信息的检索、加密字典缓冲区的管理、SQL命令的加密变换、查询结果的解密处理以及加密/解密算法的实现等功能,此外,还包括一些公用的辅助函数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈