一种密文数据库系统的访问与集成系统及方法技术方案

技术编号:19321004 阅读:37 留言:0更新日期:2018-11-03 11:11
本发明专利技术公开了一种密文数据库系统的访问与集成系统及方法,包括通信模块1、协议处理模块2、访问与集成模块3和数据库连接模块4,以中间件的形式结合密文数据库查询组件提供服务,以实现上层应用对公有云数据库中加密数据的透明访问,并能够进行异构多库的数据集成;本发明专利技术支持对多种数据库系统进行密文上的透明查询,可对公有云中的MySQL、Oracle和MSSQL数据库中加密数据直接进行查询,避免了云计算服务提供商和黑客获取有效信息破坏数据机密性,并保证了数据在公开信道上传输的安全性。

An access and integration system and method for encrypted database system

The invention discloses an access and integration system and method of ciphertext database system, which includes communication module 1, protocol processing module 2, access and integration module 3 and database connection module 4. It provides services in the form of middleware combined with ciphertext database query component to realize encryption number in public cloud database by upper application. Transparent access to data and data integration of heterogeneous multi-databases; The invention supports transparent query on ciphertext of various database systems, and can directly query encrypted data in MySQL, Oracle and MSSQL databases in public clouds, thus avoiding cloud computing service providers and hackers from obtaining effective information and destroying data. Confidentiality and ensure the security of data transmission on public channels.

【技术实现步骤摘要】
一种密文数据库系统的访问与集成系统及方法
本专利技术属于信息安全
,具体涉及一种密文数据库系统的访问与集成系统及方法,涉及密文数据库系统的访问技术,数据集成技术,可用于密文数据库系统的透明访问及数据集成。
技术介绍
当前处于信息大爆炸的时代,数据产生的速度和频率大大加快以及数据来源的增加,促进了大数据的产生。在大数据时代,信息量爆炸式增长,时时刻刻都有海量数据的产生。面对日益庞大的数据存储和管理任务,传统数据库很难满足如今庞大的数据存储和管理的要求。由于云计算具有便捷的存储服务,灵活的收费方式,高效的性能等优点,越来越多的企业和个人选择将数据存储到公有云上,来降低本地数据的存储负担和管理开销。但是云计算具有潜在的危险性,云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。云计算中的数据对于数据所有者以外的其他云计算用户是保密的,但是对于提供云计算的商业机构而言确实毫无秘密可言。如何保障公有云数据库中数据的安全,确保数据对云计算服务提供商也是保密的,成为当前信息安全领域的一个研究热点。加密数据库对隐私数据的加密存储保护是解决当前互联网中用户隐私数据泄露的一种可行方案。密文数据库是指将原始数据经过加密存放在数据库中形成的数据库。数据库加密可以有效地保证数据库中数据的安全,但是对于加密后的密文数据库,由于密文数据不再保持明文数据原有的顺序关系,所以当用户需要查询时,就不能直接用传统的结构化查询语言SQL对数据库进行操作,严重降低了数据库的查询速度和运行效率。对此,美国麻省理工学院(MIT)计算机科学和人工智能实验室(CSAIL)提出了CryptDB项目,该数据库软件允许用户查询加密的SQL数据库,而且能在不解密储存信息的情况下返回结果。CryptDB系统分为三个部分:Client,MySQL-Proxy和MySQL-SERVER。CryptDB的基本想法是,在MySQL-Proxy处对用户的SQL的关键字段请求进行加密,并且依然保证SQL语句的语法要求,然后发送给MySQL-SERVER,处理完成以后,MySQL-SERVER返回加密的数据给MySQL-PROXY,在Proxy处解密,然后返回给客户端。但是该项目仅支持对MySQL密文数据库的访问,如果数据是存储到其他数据库系统中的,如Oracle、MSSQL等,CryptDB将无能为力,并且CryptDB也不支持异构多库联合查询和数据集成功能。
技术实现思路
针对现有技术存在的不足,本专利技术提出了一种密文数据库系统的访问与集成系统及方法,以中间件的形式结合密文数据库查询组件提供服务,以实现上层应用对公有云数据库中加密数据的透明访问,并能够进行异构多库的数据集成。为实现上述目的,本专利技术采用的技术方案是,一种密文数据库系统的访问与集成系统,包括通信模块1、协议处理模块2、访问与集成模块3和数据库连接模块4,其中:通信模块1,用于处理用户或上层应用的连接请求,接收到连接请求的同时创建与缓存数据库DBc的连接,并管理用户或上层应用与DBc之间的通信;协议处理模块2,用于对通信模块1中的用户或上层应用的连接进行MySQL数据包的接收及MySQL协议解析,并将获取的查询请求S发送给访问与集成模块3中的查询解析子模块31,同时,该模块用于MySQL数据包的重构及数据包的发送;访问与集成模块3,用于对协议处理模块2中协议解析子模块22获取的查询请求S进行解析,解析获取S中涉及的数据库、数据表的标记L,并判断该查询是否是异构多库查询,是则进行异构多库查询处理,否则根据L从数据库连接模块4中的公有云数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,再从缓存数据库DBc的连接池PC中取出DBc的连接将处理后的数据存入DBc,同时重写查询请求S′,并将S′发送给协议处理模块2中的数据包重构子模块23进行数据包的重构;数据库连接模块4,用于建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC,并将相应的数据库连接传给访问与集成模块3中的数据集成子模块32使用,以及清理DBc中的缓存数据表。所述协议处理模块2,包括数据包收发子模块21、协议解析子模块22和数据包重构子模块23,其中:数据包收发子模块21,用于利用通信模块1中的用户或上层应用的连接进行MySQL数据包的收发,对缓存数据库DBc进行MySQL数据包的收发,以及将收到的来自用户或上层应用的数据包转发给DBc,将收到的来自DBc的数据包转发给用户或上层应用;协议解析子模块22,用于对数据包收发子模块21接收的MySQL数据包进行协议解析,解析成实体数据包,生成相应数据包类型的实例;数据包重构子模块23,用于对数据包收发子模块21中收到的MySQL数据包进行重构,修改协议解析子模块22中相应实例的相应变量来重构数据包,并将重构后的数据包发给数据包收发子模块21。所述访问与集成模块3,包括查询解析子模块31、数据集成子模块32和查询重写子模块33,其中:查询解析子模块31,用于对协议处理模块2中的协议解析子模块22解析MySQL命令包获取的查询请求S进行解析,获取查询请求S中涉及的数据库、数据表的标记L,发送查询请求S和标记L给数据集成子模块32进行数据集成;数据集成子模块32,用于根据查询解析子模块31发送来的查询请求S以及标记L,进行数据集成,根据L判断查询S是否是异构多库查询:如是异构多库查询,则进行异构多库查询处理,根据L判断查询S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从数据库连接模块4中的数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统的数据进行MySQL数据类型的统一化,再从连接池PC中取出缓存数据库DBc的连接将解密后的数据按表存入DBc,同时,将查询请求S中的标记L替换成存入DBc的相应表的表名,变为查询S″,利用S″对DBc进行查询,并将查询所得的数据存入DBc的缓存数据表T;如不是异构多库查询,则直接根据L从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,再从PC中取出DBc的连接将数据存入DBc中的表T;查询重写子模块33,用于对查询请求S的重写,将查询请求S变为对缓存数据库DBc中缓存数据表T所有列的查询请求S′,并将S′发给协议处理模块2中的数据包重构子模块23进行数据包的重构。所述数据库系统为关系型数据库,具体包括MySQL、Oracle和MSSQL。本专利技术还提供了一种密文数据库系统的访问与集成方法,包括以下步骤:步骤1,建立连接第一步:建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC;第二步:使用ServerSocket监听用户或上层应用的连接请求,收到连接请求时创建与用户或上层应用之间的Socket连接SUA;第三步:创建与DBc之间的Socket连接步骤2,验证用户第一步:接收发来的MySQL初始化握手包并解析,修改该包添加版权和作者信息本文档来自技高网
...

【技术保护点】
1.一种密文数据库系统的访问与集成系统,其特征在于,包括通信模块1、协议处理模块2、访问与集成模块3和数据库连接模块4,其中:通信模块1,用于处理用户或上层应用的连接请求,接收到连接请求的同时创建与缓存数据库DBc的连接,并管理用户或上层应用与DBc之间的通信;协议处理模块2,用于对通信模块1中的用户或上层应用的连接进行MySQL数据包的接收及MySQL协议解析,并将获取的查询请求S发送给访问与集成模块3中的查询解析子模块31,同时,该模块用于MySQL数据包的重构及数据包的发送;访问与集成模块3,用于对协议处理模块2中协议解析子模块22获取的查询请求S进行解析,解析获取S中涉及的数据库、数据表的标记L,并判断该查询是否是异构多库查询,是则进行异构多库查询处理,否则根据L从数据库连接模块4中的公有云数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,再从缓存数据库DBc的连接池PC中取出DBc的连接将处理后的数据存入DBc,同时重写查询请求S′,并将S′发送给协议处理模块2中的数据包重构子模块23进行数据包的重构;数据库连接模块4,用于建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC,并将相应的数据库连接传给访问与集成模块3中的数据集成子模块32使用,以及清理DBc中的缓存数据表。...

【技术特征摘要】
1.一种密文数据库系统的访问与集成系统,其特征在于,包括通信模块1、协议处理模块2、访问与集成模块3和数据库连接模块4,其中:通信模块1,用于处理用户或上层应用的连接请求,接收到连接请求的同时创建与缓存数据库DBc的连接,并管理用户或上层应用与DBc之间的通信;协议处理模块2,用于对通信模块1中的用户或上层应用的连接进行MySQL数据包的接收及MySQL协议解析,并将获取的查询请求S发送给访问与集成模块3中的查询解析子模块31,同时,该模块用于MySQL数据包的重构及数据包的发送;访问与集成模块3,用于对协议处理模块2中协议解析子模块22获取的查询请求S进行解析,解析获取S中涉及的数据库、数据表的标记L,并判断该查询是否是异构多库查询,是则进行异构多库查询处理,否则根据L从数据库连接模块4中的公有云数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,再从缓存数据库DBc的连接池PC中取出DBc的连接将处理后的数据存入DBc,同时重写查询请求S′,并将S′发送给协议处理模块2中的数据包重构子模块23进行数据包的重构;数据库连接模块4,用于建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC,并将相应的数据库连接传给访问与集成模块3中的数据集成子模块32使用,以及清理DBc中的缓存数据表。2.根据权利要求1所述的一种密文数据库系统的访问与集成系统,其特征在于,所述协议处理模块2,包括数据包收发子模块21、协议解析子模块22和数据包重构子模块23,其中:数据包收发子模块21,用于利用通信模块1中的用户或上层应用的连接进行MySQL数据包的收发,对缓存数据库DBc进行MySQL数据包的收发,以及将收到的来自用户或上层应用的数据包转发给DBc,将收到的来自DBc的数据包转发给用户或上层应用;协议解析子模块22,用于对数据包收发子模块21接收的MySQL数据包进行协议解析,解析成实体数据包,生成相应数据包类型的实例;数据包重构子模块23,用于对数据包收发子模块21中收到的MySQL数据包进行重构,修改协议解析子模块22中相应实例的相应变量来重构数据包,并将重构后的数据包发给数据包收发子模块21。3.根据权利要求1所述的一种密文数据库系统的访问与集成系统,其特征在于,所述访问与集成模块3,包括查询解析子模块31、数据集成子模块32和查询重写子模块33,其中:查询解析子模块31,用于对协议处理模块2中的协议解析子模块22解析MySQL命令包获取的查询请求S进行解析,获取查询请求S中涉及的数据库、数据表的标记L,发送查询请求S和标记L给数据集成子模块32进行数据集成;数据集成子模块32,用于根据查询解析子模块31发送来的查询请求S以及标记L,进行数据集成,根据L判断查询S是否是异构多库查询:如是异构多库查询,则进行异构多库查询处理,根据L判断查询S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从数据库连接模块4中的数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统的数据进行MySQL数据类型的统一化,再从连接池PC中取出缓存数据库DBc的连接将解密后的数据按表存入DBc,同时,将查询请求S中的标记L替换成存入DBc的相应表的表名,变为查询S″,利用S″对DBc进行查询,并将查询所得的数据存...

【专利技术属性】
技术研发人员:马建峰刘少彬李辉冯晓琴
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1