数据库集群加密方法和系统的制作方法

文档序号:6334753阅读:214来源:国知局

专利名称::数据库集群加密方法和系统的制作方法
技术领域
:本发明涉及数据库集群系统,具体地说,涉及一种数据库集群加密方法和使用该方法的数据库集群加密系统。属于信息
技术领域

背景技术
:随着信息化进程的不断推进,信息资产成为了企业的核心资产之一,如何采用技术手段维护企业业务数据的机密性和可用性已成为企业普遍关注的问题。而作为数据存储和管理的核心部件,数据库系统的机密性和可用性更是引起了广泛的重视。集群技术是增强数据库系统可用性的重要技术手段之一。数据库集群将一组数据库服务器聚集在一起,使用统一的输入输出接口向用户提供服务,以获取更高的可用性,更快的响应速度或更强的数据管理能力。数据库集群技术所带来的可用性增强往往是通过数据副本实现的,当某一个数据节点发生故障时,用户请求被转移至其他的数据节点执行,对于用户来说,数据可用性因此得以保全。而用户请求的转移过程由集群控制器透明的执行,用户感受不到请求转移的过程。然而,数据库集群技术在带来可用性提高的同时,也带来信息机密性的更多风险。数据分布式存储的模式,增加了访问控制的难度,也为攻击者获取敏感数据提供了更多的渠道。解决信息系统中敏感数据的机密性问题,其最有效手段就是进行加密。对数据库进行加密可采用多种技术手段,例如在专利200910078781.5中所公开的数据库信息加密方法和系统。数据库加密技术的思路是首先将敏感数据进行加密,然后再存入数据库系统之中,通过控制用户对于密钥的使用权限,防止未授权用户对敏感数据的访问。对数据库进行加密可有效防止管理员滥用权限,并可以防止存储介质丢失所引起的风险。然而,对数据库采取加密必然会更改数据在磁盘中的保存形态,带来数据可用性的倒退。数据可用性的倒退主要体现在以下两个方面(1)访问效率下降。由于数据经加密存储,用户在访问数据时需经解密才可获取明文信息,用户访问的效率因此而下降。(2)密钥丢失将导致数据不可用。授权用户可以访问敏感数据的根本原因在于可以使用正确的密钥进行解密操作,而解密密钥一旦丢失,授权用户也无法获得明文信息。数据的可用性依赖于密钥的可用性,相对于原有的明文系统,这是种可用性的倒退。综上所述,在数据库系统中可用性和机密性成为互相制衡和矛盾的两面,如何协调两者的关系,使其在应用中达到灵活、合理的平衡已成为一个重要的问题,然而在现有技术中,并没有解决这一问题的技术方案。本发明通过提供一种新型的数据库集群加密方法和系统来解决这一问题。
发明内容本发明的目的在于克服现有技术中存在的问题,提供一种数据库集群加密方法和使用该方法的数据库集群加密系统,以获得安全性和可用性的平衡。本发明提供了一种数据库集群加密系统,系统包括一个或多个用户应用,一个集群控制器、一个或多个明文节点,一个或多个密文节点和一个或多个附加于密文节点之上,并于密文节点一对应的加密组件,其中用户应用是用户所面对的人机交互界面,可以是使用C/S,B/S结构构建的应用,通过标准数据库调用接口(如JDBC,ODBC等)与集群控制器连接。集群控制器是所有用户应用的接入点,用于从用户应用中接收数据库查询请求,根据预设条件进行决策,选择合适的明文节点或密文节点,将用户查询请求转发至合适的节点执行,接收明文节点或加密组件返回的查询结果集,并将其转发给用户应用。加密组件用于对数据进行加密,当数据写入时,加密组件负责将集群控制器发来的数据进行加密并将其发送给密文节点,数据以密文形式保存在密文节点中;当数据读取时,加密组件将密文节点返回的查询结果进行解密,并将明文返回给集群控制器。明文节点和密文节点是数据的容器,分别用于保存数据的明文和密文形式,并根据查询请求返回查询结果。所述集群控制器进一步的包括身份管理和访问控制组件,节点管理器组件,日志与恢复组件,查询管理组件和元数据库。其中查询管理组件用于根据系统工作状态选择由明文节点或由加密组件来响应用户的请求。系统工作状态包括安全性优先和效率优先。节点管理组件负责管理明文节点和加密组件节点,并定时获取各节点状态信息。节点管理组件还将用户应用发至集群控制器的用户请求记录到日志之中,并在系统出现错误时根据需要,重做其中的部分操作。此外,本发明还提供了一种数据库集群加密方法,包括以下步骤a)若用户应用提交了查询操作,集群控制器根据系统工作状态,当系统工作状态为安全性优先时,执行b)步骤,当系统工作状态为效率优先时,执行d)步骤。b)断开所有与集群控制器直接相连的明文节点,连接所有与集群控制器相连的加密组件,根据查询管理组件的决策结果,在一个多个加密组件中选择一个,执行用户应用提交的查询操作。c)加密组件驱动与其直接相连的密文节点执行查询,并将查询结果解密,再通过集群控制器将解密后的结果集返回给用户应用。d)连接所有与集群控制器直接相连的明文节点,根据查询管理组件的决策结果,在个或多个明文节点中选择其中一个执行用户应用提交的查询操作,并将查询结果通过集群控制器返回给用户应用。e)若用户应用提交了写入操作,集群控制器连接所有明文节点和加密组件,将写入操作广播,并检测各节点的完成情况,若全部节点执行成功则在日志与恢复组件中写入日志,若有节点执行失败则在日志与恢复组件中记录未完成的节点标识和写入操作命令,以备管理员手工重做。与现有技术相比,本发明具有如下优势(1)可根据用户的需求选择运行模式。在高安全性模式下,使用密文数据并同时接受效率损失;在效率优先模式下,使用明文数据,获得更高效率,并在安全性上做出妥协。(2)不必担心密钥丢失。集群系统中存在数据的明文副本,一旦密钥丢失或密文节点受到破坏,可使用明文节点的数据进行恢复。综上所述,本发明解决了密文数据库系统在应用中的主要问题,为数据库加密技术的更广泛的应用提供了更加灵活的技术实现方案,有助于提高数据库系统的安全性。图1是本发明数据库集群加密系统的结构图;具体实施例方式下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。在本发明的一个实施例中,构建了如附图1所示的数据库集群加密系统,该系统包含用户应用(10),集群控制器(11),一个明文节点(13),一个加密组件(12)和一个密文节点(14)。其中,明文节点(13)和密文节点(14)中分别保存用于测试的表testtab的明文和密文形式。并且,管理员设定该集群加密系统工作在高安全性模式。当用户应用(10)发起一个写入操作,例如,执行如下SQL命令SQL=insertintotabletesttabvalues('test,)集群控制器在收到该请求后,分别连接明文节点(1和加密组件(12),将SQL发给它们进行处理。明文节点(13)直接执行SQL语句并返回执行成功。加密组件对SQL语句的参数进行加密,并将‘test’的值转化为密文,然后再将重写过的SQL语句发给密文节点(14)执行。密文节点(14)成功执行该语句后返回执行成功信息。集群控制器(11)在收到两个节点发来执行成功信息后,写入成功操作日志,终结事务,并向用户应用(10)返回结果。此时,用户操作终结。在本发明的另一个实施例中,同样构建了如附图1所示的数据库集群加密系统,该系统包含用户应用(10),集群控制器(11),一个明文节点(13),一个加密组件(12)和一个密文节点(14)。其中,明文节点(13)和密文节点(14)中分别保存用于测试的表testtab的明文和密文形式。并且,管理员设定该集群加密系统工作在高安全性模式。当用户应用(10)发起一个读取操作,例如,执行如下SQL命令SQL=select氺fromtesttab;集群控制器在收到该请求后,断开与明文节点(1的连接,连接加密组件(12),并将SQL命令转发给加密组件(1处理。加密组件(1向密文节点(14)发送该SQL语句,将返回的结果集解密,并将解密后的结果集发送给集群控制器(11),集群控制器(11)写入操作成功日志,终结事务,并向用户应用(10)返回结果集。此时,用户操作终结。权利要求1.一种数据库集群加密系统,其特征在于,包括一个或多个用户应用组件(10),一个集群控制器(11)、一个或多个明文节点(13),一个或多个密文节点(14)和一个或多个附加于密文节点(14)之上并与其一一对应的加密组件(12),其中用户应用组件(10)是用户所面对的人机交互界面,其是使用C/S、B/S结构构建的应用,通过标准数据库调用接口(如JDBC,0DBC)与集群控制器(11)连接。集群控制器(11)是所有用户应用的接入点,用于从用户应用(10)中接收数据库查询请求,根据预设条件进行决策,选择合适的明文节点(1或密文节点(14),将用户查询请求转发至合适的节点执行,接收明文节点(1或加密组件返回的查询结果集,并将其转发给用户应用。加密组件(1用于对数据进行加密,当数据写入时,加密组件(1负责将集群控制器(11)发来的数据进行加密并将其发送给密文节点(14),数据以密文形式保存在密文节点(14)中,当数据读取时,加密组件(1将密文节点(14)返回的查询结果进行解密,并将其返回给集群控制器(11)。明文节点(1和密文节点(14)是数据的容器,分别用于保存数据的明文和密文形式,并根据查询请求返回查询结果。2.如权利要求1所述的集群加密系统,其中所述集群控制器进一步的包括身份管理和访问控制组件(111),节点管理器组件(112),日志与恢复组件(113),查询管理组件(114)和元数据库(115);3.如权利要求2所述的查询管理组件,其中所述查询管理组件(114)根据系统工作状态选择由明文节点(13)或由加密组件(12)响应用户的请求。4.如权利要求2所述的查询管理组件,其中所述节点管理组件(113),负责管理明文节点(13)和加密组件节点(12),并定时获取各节点状态信息。5.如权利要求2所述的查询管理组件,其中所述节点管理组件(112),用于将用户应用(10)发至集群控制器(11)的用户请求记录到日志之中,并在系统出现错误时能够根据需要重做其中的部分操作。6.一种数据库集群加密方法,其特征在于,所述方法包括以下步骤a)若用户应用提交了查询操作,集群控制器根据系统工作状态,当系统工作状态为安全性优先时,执行b)步骤,当系统工作状态为效率优先时,执行d)步骤。b)断开所有与集群控制器(11)直接相连的明文节点(13),连接所有与集群控制器(11)相连的加密组件(12),根据查询管理组件的决策结果,在一个多个加密组件(1中选择个,执行用户应用提交的查询操作;c)加密组件(1驱动与其直接相连的密文节点(14)执行查询,并将查询结果解密,再通过集群控制器(11)返回给用户应用;d)连接所有与集群控制器(11)直接相连的明文节点(13),根据查询管理组件的决策结果,在一个或多个明文节点(13)中选择其中一个执行用户应用提交的查询操作,并将查询结果通过集群控制器(11)返回给用户应用;c)若用户应用提交了写入操作,集群控制器(11)连接所有明文节点(1和加密组件(12),将写入操作广播,并检测各节点的完成情况,若全部节点执行成功则在日志与恢复组件(113)中写入日志,若有节点执行失败则在日志与恢复组件(113)中记录未完成的节点标识和写入操作命令,以备管理员手工重做。全文摘要本发明公开一种数据库集群加密方法和使用该方法的数据库集群加密系统。数据库集群加密系统包括一个或多个用户应用,一个集群控制器、一个或多个明文节点,一个或多个密文节点和一个或多个附加于密文节点之上,并于密文节点一一对应的加密组件。本发明还公开了应用于数据库集群加密系统之上的数据库集群加密方法。本发明所提供的方法和系统解决了密文数据库系统在应用中的主要问题,为数据库加密技术的更广泛的应用提供了更加灵活的技术实现方案,有助于提高数据库系统的安全性。文档编号G06F21/00GK102456045SQ20101052629公开日2012年5月16日申请日期2010年11月1日优先权日2010年11月1日发明者宋洁申请人:北京中博软创科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1