CN108734023B - 一种密文数据库系统的访问与集成系统及方法 - Google Patents

一种密文数据库系统的访问与集成系统及方法 Download PDF

Info

Publication number
CN108734023B
CN108734023B CN201810400175.XA CN201810400175A CN108734023B CN 108734023 B CN108734023 B CN 108734023B CN 201810400175 A CN201810400175 A CN 201810400175A CN 108734023 B CN108734023 B CN 108734023B
Authority
CN
China
Prior art keywords
data
query
database
mysql
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810400175.XA
Other languages
English (en)
Other versions
CN108734023A (zh
Inventor
马建峰
刘少彬
李辉
冯晓琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201810400175.XA priority Critical patent/CN108734023B/zh
Publication of CN108734023A publication Critical patent/CN108734023A/zh
Application granted granted Critical
Publication of CN108734023B publication Critical patent/CN108734023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries

Abstract

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

Description

一种密文数据库系统的访问与集成系统及方法
技术领域
本发明属于信息安全技术领域,具体涉及一种密文数据库系统的访问与集成系统及方法,涉及密文数据库系统的访问技术,数据集成技术,可用于密文数据库系统的透明访问及数据集成。
背景技术
当前处于信息大爆炸的时代,数据产生的速度和频率大大加快以及数据来源的增加,促进了大数据的产生。在大数据时代,信息量爆炸式增长,时时刻刻都有海量数据的产生。面对日益庞大的数据存储和管理任务,传统数据库很难满足如今庞大的数据存储和管理的要求。由于云计算具有便捷的存储服务,灵活的收费方式,高效的性能等优点,越来越多的企业和个人选择将数据存储到公有云上,来降低本地数据的存储负担和管理开销。但是云计算具有潜在的危险性,云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。云计算中的数据对于数据所有者以外的其他云计算用户是保密的,但是对于提供云计算的商业机构而言确实毫无秘密可言。如何保障公有云数据库中数据的安全,确保数据对云计算服务提供商也是保密的,成为当前信息安全领域的一个研究热点。
加密数据库对隐私数据的加密存储保护是解决当前互联网中用户隐私数据泄露的一种可行方案。密文数据库是指将原始数据经过加密存放在数据库中形成的数据库。数据库加密可以有效地保证数据库中数据的安全,但是对于加密后的密文数据库,由于密文数据不再保持明文数据原有的顺序关系,所以当用户需要查询时,就不能直接用传统的结构化查询语言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连接
Figure BDA0001645523460000041
步骤2,验证用户
第一步:接收
Figure BDA0001645523460000051
发来的MySQL初始化握手包并解析,修改该包添加版权和作者信息后,将重构后的数据包发送到SUA
第二步:从SUA中接收MySQL客户端认证包,并将该包发送给
Figure BDA0001645523460000052
第三步:接收
Figure BDA0001645523460000053
发来的数据包,发送给SUA,并判断数据包类型是否是MySQL错误包,是则用户验证失败,记录日志信息后结束流程;否则进行后续步骤;
步骤3,解析查询请求
第一步:接收SUA发来的MySQL命令包,解析该包获取查询请求S;
第二步:解析S,获取S中涉及的数据库、数据表的标记L;
步骤4,处理查询请求
第一步:根据标记L判断查询请求S是否是异构多库查询,是则进行第二步,否则进行第三步;
第二步:根据标记L判断查询请求S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统的数据进行MySQL数据类型的统一化,再从PC中取出缓存数据库DBc的连接将处理后的数据按表存入DBc,同时,将查询请求S中的标记L替换成存入DBc的相应表的表名,变为查询请求S″,利用查询请求S″对DBc进行查询,并将查询所得的数据存入DBc的缓存数据表T;
第三步:根据标记L从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,从PC中取出DBc的连接将数据存入DBc的表T;
步骤5,向用户或上层应用返回查询数据
第一步:将查询请求S变为对缓存数据库DBc中缓存数据表T所有列的查询请求S′,即:
S→S′:{select*fromT}
并将查询信息记入日志;
第二步:重构MySQL命令包,将其中的查询请求S变更为查询请求S′,并将该包发送给
Figure BDA0001645523460000061
查询表T;
第三步:接收
Figure BDA0001645523460000062
发来的包含查询请求S′所返回数据的MySQL结果集包,包含:包头包、FILED属性包、EOF包和行数据包,转发给SUA,用户或上层应用即获取到查询请求S所期望的数据;
还包括步骤6,清理缓存:删除缓存数据库DBc中的缓存数据表T,以及异构多库查询中存入DBc的数据表。
所述步骤4的第二步中的数据库系统为关系型数据库,具体包括MySQL、Oracle和MSSQL。
与现有技术相比,本发明具有以下有益的技术效果:
1)本发明支持对多种数据库系统进行密文上的透明查询,包括MySQL、Oracle、MSSQL等关系型数据库。可对公有云中的MySQL、Oracle、MSSQL等数据库中加密数据直接进行查询,避免了云计算服务提供商和黑客获取有效信息破坏数据机密性,并保证了数据在公开信道上传输的安全性;
2)本发明支持密文上的异构多库查询,可以对不同数据库中的不同密文数据表进行联合查询以及数据集成。
附图说明
图1是本发明的架构图;
图2是本发明的实现流程图。
具体实施方式
以下结合附图对本发明进行详细描述:
参照图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,包括数据包收发子模块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、Oracle、MSSQL等关系型数据库的数据进行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进行数据包的重构。
参照图2,本发明密文数据库系统的访问与集成方法的具体流程描述如下:
步骤1,建立连接。
第一步:建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC
第二步:使用ServerSocket监听用户或上层应用的连接请求,收到连接请求时创建与用户或上层应用之间的Socket连接SUA
第三步:创建与DBc之间的Socket连接
Figure BDA0001645523460000091
步骤2,验证用户。
第一步:接收
Figure BDA0001645523460000092
发来的MySQL初始化握手包并解析,修改该包添加版权和作者信息后,将重构后的数据包发送到SUA
第二步:从SUA中接收MySQL客户端认证包,并将该包发送给
Figure BDA0001645523460000093
第三步:接收
Figure BDA0001645523460000094
发来的数据包,发送给SUA,并判断数据包类型是否是MySQL错误包,是则用户验证失败,记录日志信息后结束流程;否则进行后续步骤。
步骤3,解析查询请求。
第一步:接收SUA发来的MySQL命令包,解析该包获取查询请求S;
第二步:解析S,获取S中涉及的数据库、数据表的标记L。
步骤4,处理查询请求。
第一步:根据标记L判断查询S是否是异构多库查询,是则进行第二步,否则进行第三步;
第二步:根据L判断查询S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统如MySQL、Oracle、MSSQL等关系型数据库的数据进行MySQL数据类型的统一化,再从PC中取出缓存数据库DBc的连接将处理后的数据按表存入DBc,同时,将S中的L替换成存入DBc的相应表的表名,变为查询S″,利用S″对DBc进行查询,并将查询所得的数据存入DBc的缓存数据表T;
第三步:根据L从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,从PC中取出DBc的连接将数据存入DBc的表T。
步骤5,向用户或上层应用返回查询数据。
第一步:将查询S变为对缓存数据库DBc中缓存数据表T所有列的查询S′,即:
S→S′:{select*fromT}
并将查询信息记入日志;
第二步:重构MySQL命令包,将其中的查询S变更为S′,并将该包发送给
Figure BDA0001645523460000101
查询表T;
第三步:接收
Figure BDA0001645523460000102
发来的包含查询S′所返回数据的MySQL结果集包,包含:包头包、FILED属性包、EOF包和行数据包,转发给SUA,用户或上层应用即获取到查询S所期望的数据。
步骤6,清理缓存。
删除缓存数据库DBc中的缓存数据表T,以及异构多库查询中存入DBc的数据表。
以上描述仅是本发明的一个具体实例,不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解发明内容和原理后,都可能在不背离本发明原理、结构的前提下,进行算法的修正和改进,但是这些基于本发明算法的修正和改进在本发明的权利要求保护范围之内。

Claims (7)

1.一种密文数据库系统的访问与集成系统,其特征在于,包括通信模块1、协议处理模块2、访问与集成模块3和数据库连接模块4,其中:
通信模块1,用于处理用户或上层应用的连接请求,接收到连接请求的同时创建与缓存数据库DBc的连接,并管理用户或上层应用与DBc之间的通信;
协议处理模块2,用于对通信模块1中的用户或上层应用的连接进行MySQL数据包的接收及MySQL协议解析,并将获取的查询请求S发送给访问与集成模块3中的查询解析子模块31,同时,协议处理模块2还用于MySQL数据包的重构及数据包的发送;
访问与集成模块3,用于对协议处理模块2中协议解析子模块22获取的查询请求S进行解析,解析获取S中涉及的数据库、数据表的标记L,并判断该查询是否是异构多库查询,是则进行异构多库查询处理,根据L判断查询S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从数据库连接模块4中的数据库连接池PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统的数据进行MySQL数据类型的统一化,再从连接池PC中取出缓存数据库DBc的连接将解密后的数据按表存入DBc,同时,将查询请求S中的标记L替换成存入DBc的相应表的表名,变为查询S″,利用S″对DBc进行查询,并将查询所得的数据存入DBc的缓存数据表T;
否则根据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进行查询,并将查询所得的数据存入DBc的缓存数据表T;
如不是异构多库查询,则直接根据L从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,再从PC中取出DBc的连接将数据存入DBc中的表T;
查询重写子模块33,用于对查询请求S的重写,将查询请求S变为对缓存数据库DBc中缓存数据表T所有列的查询请求S′,并将S′发给协议处理模块2中的数据包重构子模块23进行数据包的重构。
4.根据权利要求3所述的一种密文数据库系统的访问与集成系统,其特征在于,所述数据库系统为关系型数据库,具体包括MySQL、Oracle和MSSQL。
5.一种密文数据库系统的访问与集成方法,其特征在于,包括以下步骤:
步骤1,建立连接
第一步:建立公有云数据库连接池PB和MySQL缓存数据库DBc的连接池PC
第二步:使用ServerSocket监听用户或上层应用的连接请求,收到连接请求时创建与用户或上层应用之间的Socket连接SUA
第三步:创建与DBc之间的Socket连接
Figure FDA0003259868240000031
步骤2,验证用户
第一步:接收
Figure FDA0003259868240000032
发来的MySQL初始化握手包并解析,修改MySQL初始化握手包添加版权和作者信息后,将重构后的数据包发送到SUA
第二步:从SUA中接收MySQL客户端认证包,并将MySQL客户端认证包发送给
Figure FDA0003259868240000033
第三步:接收
Figure FDA0003259868240000041
发来的数据包,发送给SUA,并判断数据包类型是否是MySQL错误包,是则用户验证失败,记录日志信息后结束流程;否则进行后续步骤;
步骤3,解析查询请求
第一步:接收SUA发来的MySQL命令包,解析MySQL命令包获取查询请求S;
第二步:解析S,获取S中涉及的数据库、数据表的标记L;
步骤4,处理查询请求
第一步:根据标记L判断查询请求S是否是异构多库查询,是则进行第二步,否则进行第三步;
第二步:根据标记L判断查询请求S具体对公有云数据库中哪些数据库中的哪些数据表进行了异构多库联合查询,从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库中相应数据库中的相应数据表分别进行整张表所有数据的查询和解密,对来自不同数据库系统的数据进行MySQL数据类型的统一化,再从PC中取出缓存数据库DBc的连接将处理后的数据按表存入DBc,同时,将查询请求S中的标记L替换成存入DBc的相应表的表名,变为查询请求S″,利用查询请求S″对DBc进行查询,并将查询所得的数据存入DBc的缓存数据表T;
第三步:根据标记L从PB中取出相关数据库连接,调用密文数据库查询组件对公有云数据库的密文数据进行查询,解密后对数据进行MySQL数据类型的统一化,从PC中取出DBc的连接将数据存入DBc的表T;
步骤5,向用户或上层应用返回查询数据
第一步:将查询请求S变为对缓存数据库DBc中缓存数据表T所有列的查询请求S′,即:
S→S′:{select*from T}
并将查询信息记入日志;
第二步:重构MySQL命令包,将其中的查询请求S变更为查询请求S′,并将重构后的MySQL命令包发送给
Figure FDA0003259868240000051
查询表T;
第三步:接收
Figure FDA0003259868240000052
发来的包含查询请求S′所返回数据的MySQL结果集包,包含:包头包、FILED属性包、EOF包和行数据包,转发给SUA,用户或上层应用即获取到查询请求S所期望的数据。
6.根据权利要求5所述的一种密文数据库系统的访问与集成方法,其特征在于,还包括步骤6,清理缓存:删除缓存数据库DBc中的缓存数据表T,以及异构多库查询中存入DBc的数据表。
7.根据权利要求5所述的一种密文数据库系统的访问与集成方法,其特征在于,所述步骤4的第二步中的数据库系统为关系型数据库,具体包括MySQL、Oracle和MSSQL。
CN201810400175.XA 2018-04-28 2018-04-28 一种密文数据库系统的访问与集成系统及方法 Active CN108734023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810400175.XA CN108734023B (zh) 2018-04-28 2018-04-28 一种密文数据库系统的访问与集成系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810400175.XA CN108734023B (zh) 2018-04-28 2018-04-28 一种密文数据库系统的访问与集成系统及方法

Publications (2)

Publication Number Publication Date
CN108734023A CN108734023A (zh) 2018-11-02
CN108734023B true CN108734023B (zh) 2021-12-21

Family

ID=63939520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810400175.XA Active CN108734023B (zh) 2018-04-28 2018-04-28 一种密文数据库系统的访问与集成系统及方法

Country Status (1)

Country Link
CN (1) CN108734023B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377643A (zh) * 2019-07-25 2019-10-25 新奥(中国)燃气投资有限公司 一种工商户表的数据处理系统及方法
CN111427908A (zh) * 2020-04-23 2020-07-17 北京中安星云软件技术有限公司 一种基于量子密钥的透明加、解密方法、系统及装置
US11659029B2 (en) * 2020-05-29 2023-05-23 Vmware, Inc. Method and system for distributed multi-cloud diagnostics
CN111859426B (zh) * 2020-07-21 2023-04-07 西安电子科技大学 一种通用加密数据库连接器及其设置方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521254A (zh) * 2011-11-17 2012-06-27 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN103593422A (zh) * 2013-11-01 2014-02-19 国云科技股份有限公司 一种异构数据库的虚拟访问管理方法
CN104881280A (zh) * 2015-05-13 2015-09-02 南京邮电大学 一种支持多查询的密文数据库中间件的设计方法
CN106302449A (zh) * 2016-08-15 2017-01-04 中国科学院信息工程研究所 一种密文存储与密文检索开放云服务方法和系统
CN106529327A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 混合云环境下面向加密数据库的数据存取系统及方法
CN107241378A (zh) * 2016-03-28 2017-10-10 波音公司 跨异构网络的统一数据建网的设备和方法以及存储介质
CN107370725A (zh) * 2017-06-21 2017-11-21 西安电子科技大学 一种云环境下通用加密数据库的存取方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150049163A1 (en) * 2013-03-15 2015-02-19 James Paul Smurro Network system apparatus and method of use adapted for visual neural networking with multi-channel multiplexed streaming medical imagery and packetized clinical informatics

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521254A (zh) * 2011-11-17 2012-06-27 广东电网公司电力科学研究院 异构数据库的统一访问方法
CN103593422A (zh) * 2013-11-01 2014-02-19 国云科技股份有限公司 一种异构数据库的虚拟访问管理方法
CN104881280A (zh) * 2015-05-13 2015-09-02 南京邮电大学 一种支持多查询的密文数据库中间件的设计方法
CN107241378A (zh) * 2016-03-28 2017-10-10 波音公司 跨异构网络的统一数据建网的设备和方法以及存储介质
CN106302449A (zh) * 2016-08-15 2017-01-04 中国科学院信息工程研究所 一种密文存储与密文检索开放云服务方法和系统
CN106529327A (zh) * 2016-10-08 2017-03-22 西安电子科技大学 混合云环境下面向加密数据库的数据存取系统及方法
CN107370725A (zh) * 2017-06-21 2017-11-21 西安电子科技大学 一种云环境下通用加密数据库的存取方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Heterogeneous Re-Encryption System for Security and Bigdata Protection;ZAINAB MOHANAD ISSA等;《International Journal of Scientific Engineering and Technology Research》;20170731;第6卷(第23期);第4543-4547页 *
Transparent Access and Integration of Heterogeneous Encrypted Database in Hybrid Cloud Environment;ShaoBin Liu等;《ICC 2019 - 2019 IEEE International Conference on Communications (ICC)》;20190524;第1-6页 *
云计算环境下保护隐私的关键字查询关键技术研究;滕一平;《中国博士学位论文全文数据库 信息科技辑》;20180215(第02期);第I139-29页 *
面向隐私保护的异构数据库集成中间件系统;申东凡等;《计算机技术与发展》;20200131;第30卷(第1期);第99-105页 *

Also Published As

Publication number Publication date
CN108734023A (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN108734023B (zh) 一种密文数据库系统的访问与集成系统及方法
US10063528B2 (en) Searchable encryption enabling encrypted search based on document type
AU2017208878B2 (en) Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
JP6941183B2 (ja) データのトークン化
CN112800088B (zh) 基于双向安全索引的数据库密文检索系统及方法
US10685132B1 (en) Methods and apparatus for encrypted indexing and searching encrypted data
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
US11271726B2 (en) Key encryption methods, apparatuses, and systems
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
US10902063B2 (en) Wildcard search in encrypted text
JP2009099151A (ja) 暗号化されたカラムを含むデータベースにおけるクエリーの暗号化変調による使用者クエリー処理装置及び方法
Cui et al. Harnessing encrypted data in cloud for secure and efficient mobile image sharing
TW201330577A (zh) 基於雲儲存的資料安全保護系統及方法
US11652642B2 (en) Digital data locker system providing enhanced security and protection for data storage and retrieval
CN111859426B (zh) 一种通用加密数据库连接器及其设置方法
US11728974B2 (en) Tenant-based database encryption
CN113157778B (zh) 分布式数据仓库的可代理查询方法、系统、设备及介质
CN110990877A (zh) 一种基于greenplum的医疗影像文件分段加解密系统及方法
US11522686B2 (en) Securing data using key agreement
EP4165821A1 (en) Securing data using key agreement
KR20190139742A (ko) 블록체인에서 정보 조회 시간의 기록을 위한 분산 원장 장치
CN110098924A (zh) 支持可搜索透明加密的层级密钥技术
Sun et al. Research of data security model in cloud computing platform for SMEs
KR20190139744A (ko) Uuid를 이용한 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치
Funde et al. HORAM: Hybrid Oblivious Random Access Memory Scheme for Secure Path Hiding in Distributed Environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant