< 返回
一种分布式数据库密钥管理模块设计

[摘 要] 分布式数据库系统是新近发展起来的一种技术,虽然其有效的维护和管理庞大的数据库,提高了数据库的可用性和可靠性,但由于分布式数据库大多存放海量的重要数据,因此其安全性越来越重要。本文从分布式数据库的特点入手,设计了一种分布式数据库加密系统的密钥管理模块。最后指出了分布式数据库安全现存的问题和将来研究的方向。

[关键词] 分布式数据库 加密 密钥管理

一、分布式数据库

分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高系统的可靠性。

但是分布式数据库的系统开销相对较大,并且具有复杂的存取结构,原来在集中式系统中有效存取数据的技术,在分布式系统中都不再适用。更重要的是分布式数据库的数据安全性和保密性较难处理。因此,在分布式数据库中常采用加密手段保证数据安全。

数据库加密系统的关键影响因素一般包括加密粒度、加密算法和密钥管理三个方面。本文将重点对分布式数据库加密系统的密钥管理进行分析和设计。加密数据库中的密钥管理比其他系统的密钥管理更为困难与复杂。而分布式数据库中存储着海量数据,已经加密的数据需要用原来的密钥系统解密,且解密时间将会很长,加密密钥不可能随时更换。除此以外,根据加密粒度的不同,对不同的数据应该使用不同的密钥。因此分布式数据库中需要保存大量的密钥信息。另外,分布式数据库客体之间隐含着复杂的逻辑关系,一个逻辑结构可能对应着多个数据库物理客体,所以数据库加密不仅密钥量大,而且组织和存储工作比较复杂,需要对密钥实现动态管理。因此如何生成、保存、替换数据库加密密钥,对数据库加密中的密钥管理提出了更为严格的要求。

二、密钥管理模块设计

1.系统分析。数据库加密系统中密钥管理通常利用两种方法解决。方法之一是采用分级管理结构。无论哪种多级密钥体制,主密钥都是加密子系统的关键,多级密钥管理体制的安全依赖于主密钥的安全。另一种解决方法是集中密钥管理方法。即在建立加密数据库时,由密钥管理中心负责产生加密密钥并对数据加密。当一用户访问分布式数据库时,密钥管理机构核对用户识别符和用户密钥,认为是合法用户,则允许访问。但必须由密钥管理机构找到或计算出相应的数据加密密钥,并由他们利用数据加密算法解密出相应的数据。由于加密粒度的不同,密钥的种类和密钥的数量不同。这些密钥存储在一张表中。这张表通过加密密钥对其加密保存。目前针对于数据库加密体系中密钥管理的应用和研究大多是以“可信第三方”为基础的。这种基于“可信第三方”的密钥管理方法,认为存在一个可信任的第三方(如:KPI体系中的ca,dbms中的dba等),并将用户密钥交给他保存。“可信第三方”拥有获取和更改用户密钥的权力。这种方法相对来说比较灵活。本文设计了一种基于“可信第三方”的密钥管理机制,该机制既具有较高的安全性,又便于实现。

2.总体设计。本密钥管理模块包括三个部分:系统密钥管理、数据密钥管理和用户密钥管理。数据密钥的管理为二级密钥管理:一级密钥为数据类根密钥,二级密钥为数据类密钥。数据类密钥用于对数据库数据的加脱密。数据类密钥由中央权威机构ca生成,数据类根密钥则是将所有的数据类密钥“集成”后形成的密钥。当然,数据类根密钥可以根据需要“分解”得到所有的数据类密钥或所需要的数据类密钥。将数据类密钥“集成”,主要是为了方便密钥的管理。为了保证数据类密钥的安全,需对其进行加密保护,加密密钥为系统主密钥。系统主密钥由运行在ca处的管理软件在第一次运行时生成,其既为保护数据类根密钥的加密密钥,又为登录ca处管理软件(主要包括密钥管理程序和认证程序)的登录“口令”,以该“口令”登录的用户,对ca处的管理软件有着完全控制的最高权限。鉴于此,必须采取最安全的手段保护它。为确保系统主密钥的安全,采取基于(n,t)门限管理的方法来管理。用户类密钥由ca利用数据类密钥来生成。当一个在ca处注过册的用户向ca申请密钥时,ca管理软件根据注册信息决定用户属于哪个用户类,然后根据用户类型查询用户权限表以决定从解密的数据类根密钥“分解”出哪些数据类的密钥,接着再将这些刚“分解”出的数据类密钥“集成”为该用户所属用户类密钥,最后该密钥发送给用户。通常用户密钥较长,为了方便用户保管,可以用口令将密钥加密存入加密卡,用户只需记住位数较少的口令,这和银行卡原理很相似。

一般来说,一个密钥主要经历生成与存储、密钥分发、密钥启用与停用、密钥替换与更新、密钥销毁以及密钥撤销几个阶段。密钥分发(或密钥分配)既是密钥管理的核心问题,也是密码体制中非常困难的一个问题。接下来,本文将重点介绍一种基于公钥密码体制的密钥分发模块的设计。

本文就一种分布式数据库密钥管理模块的设计进行了讨论。可以预见随着分布式数据库应用范围的扩大,分布式数据库将面临新的安全问题,这必然促使人们对分布式数据库安全研究从各个方面向前推进。

参考文献:

[1]陈永强:分布式数据库系统安全策略分析.武汉工业学院学报,2003;63~67

[2]冯朝胜 秦志光 袁 丁:数据库加密系统密钥管理模块的设计.电子科技大学学报,2007;830~833

1[][][][5][6][7][8][9][10][11][12][13][14]