CN113162974B - 一种基于tcp代理的数据库动态加解密的实现方法及系统 - Google Patents

一种基于tcp代理的数据库动态加解密的实现方法及系统 Download PDF

Info

Publication number
CN113162974B
CN113162974B CN202110236734.XA CN202110236734A CN113162974B CN 113162974 B CN113162974 B CN 113162974B CN 202110236734 A CN202110236734 A CN 202110236734A CN 113162974 B CN113162974 B CN 113162974B
Authority
CN
China
Prior art keywords
database
decryption
encryption
data
client
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
CN202110236734.XA
Other languages
English (en)
Other versions
CN113162974A (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.)
Beijing Zhongan Xingyun Software Technology Co ltd
Original Assignee
Beijing Zhongan Xingyun Software Technology Co ltd
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 Beijing Zhongan Xingyun Software Technology Co ltd filed Critical Beijing Zhongan Xingyun Software Technology Co ltd
Priority to CN202110236734.XA priority Critical patent/CN113162974B/zh
Publication of CN113162974A publication Critical patent/CN113162974A/zh
Application granted granted Critical
Publication of CN113162974B publication Critical patent/CN113162974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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/602Providing cryptographic facilities or services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于TCP代理的数据库动态加解密的实现方法,包括以下步骤:在数据库客户端和数据库服务器之间建立TCP代理;对数据库客户端的请求和数据库服务器的响应内容进行拦截;根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;对待加解密的存储信息进行加解密处理,以得到加解密数据;对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。本发明还公开了一种基于TCP代理的数据库动态加解密的实现系统。本发明在客户端与服务器之间部署TCP代理软件,减少运算资源损耗,实现对客户端访问数据库动态加解密的功能。

Description

一种基于TCP代理的数据库动态加解密的实现方法及系统
技术领域
本发明涉及加解密技术领域,具体而言,涉及一种基于TCP代理的数据库动态加解密的实现方法及系统。
背景技术
现有的动态加密系统,同样是以TCP代理的方式,部署在客户端与关系型数据库服务端之间,通过对客户端访问数据库的SQL语句的解析和重构,在存储类型的SQL语句上增加加密函数,在查询类型的SQL语句上增加对应的解密函数来实现对数据库访问的加解密功能。
现有方案的缺点有:
1.加解密算法需要数据库的支持;2.加解密的实际过程是在数据库服务器上完成的,加解密操作会消耗数据库的运算资源;3.对于不支持SQL查询的数据库无法进行加解密;4.加解密模块是一个单点故障点。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于TCP代理的数据库动态加解密的实现方法及系统,在客户端与服务器之间部署TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
本发明的实施例是这样实现的:
第一方面,本发明实施例提供一种基于TCP代理的数据库动态加解密的实现方法,包括以下步骤:
在数据库客户端和数据库服务器之间建立TCP代理;
通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;
对待加解密的存储信息进行加解密处理,以得到加解密数据;
获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
通过在客户端与数据库之间部署TCP代理软件,实现对客户端访问数据库动态加解密的功能,通过数据库客户端与数据库服务器之间的TCP连接的代理对数据库客户端的请求和数据库服务器的响应的内容进行拦截,经过规则与策略匹配,对需要加解密的存储字段/响应内容进行加解密处理,然后重新根据对应的数据库协议格式组织数据内容,相对应地,把修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端。对于数据库客户端而言,不需要做任何代码上的修改,同时对于数据库又完全透明,在数据库服务器上不需要做任何配置和修改,也没有任何额外的运算负担;不仅可以使用软件的方法进行加解密,也可以与现有的硬件加密机对接,实现高速加解密功能;如果与合适的负载均衡设备进行对接,可以轻松地实现加解密的集群,快速提高性能与高可用性。
本方法通过在客户端与服务器之间部署TCP代理软件,结合TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
基于第一方面,在本发明的一些实施例中,所述根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息的方法包括以下步骤:
根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
基于第一方面,在本发明的一些实施例中,所述根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息的方法包括以下步骤:
根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;
根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容。
基于第一方面,在本发明的一些实施例中,所述对待加解密的存储信息进行加解密处理,以得到加解密数据的方法包括以下步骤:
采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
基于第一方面,在本发明的一些实施例中,所述将重组数据发送给对应的数据库客户端或数据库服务器的方法包括以下步骤:
将重组数据中的请求字段发送给数据库服务器;
将重组数据中的响应内容发送给数据库客户端。
第二方面,本发明实施例提供一种基于TCP代理的数据库动态加解密的实现系统,包括代理部署模块、数据拦截模块、过滤匹配模块、加解密模块以及数据重组模块,其中:
代理部署模块,用于在数据库客户端和数据库服务器之间建立TCP代理;
数据拦截模块,用于通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
过滤匹配模块,用于根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;
加解密模块,用于对待加解密的存储信息进行加解密处理,以得到加解密数据;
数据重组模块,用于获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
通过代理部署模块在客户端与数据库之间部署TCP代理软件,实现对客户端访问数据库动态加解密的功能,数据拦截模块通过数据库客户端与数据库服务器之间的TCP连接的代理对数据库客户端的请求和数据库服务器的响应的内容进行拦截,然后通过过滤匹配模块对数据进行过滤匹配,经过规则与策略匹配得到待加解密的数据,通过加解密模块对需要加解密的存储字段/响应内容进行加解密处理,然后数据重组模块重新根据对应的数据库协议格式组织数据内容,相对应地,把修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端。对于数据库客户端而言,不需要做任何代码上的修改,同时对于数据库又完全透明,在数据库服务器上不需要做任何配置和修改,也没有任何额外的运算负担;不仅可以使用软件的方法进行加解密,也可以与现有的硬件加密机对接,实现高速加解密功能;如果与合适的负载均衡设备进行对接,可以轻松地实现加解密的集群,快速提高性能与高可用性。
本系统通过在客户端与服务器之间部署TCP代理软件,结合TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
基于第二方面,在本发明的一些实施例中,所述过滤匹配模块包括判断子模块,用于根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
基于第二方面,在本发明的一些实施例中,所述过滤匹配模块包括请求子模块和响应子模块,其中:
请求子模块,用于根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;
响应子模块,用于根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容。
基于第二方面,在本发明的一些实施例中,所述加解密模块包括字段加密子模块和内容解密子模块,其中:
字段加密子模块,用于采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
内容解密子模块,用于根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
基于第二方面,在本发明的一些实施例中,所述数据重组模块包括第一发送子模块和第二发送子模块,其中:
第一发送子模块,用于将重组数据中的请求字段发送给数据库服务器;
第二发送子模块,用于将重组数据中的响应内容发送给数据库客户端。
本发明实施例至少具有如下优点或有益效果:
本发明实施例一种基于TCP代理的数据库动态加解密的实现方法及系统,通过在客户端与数据库之间部署TCP代理软件,实现对客户端访问数据库动态加解密的功能,通过数据库客户端与数据库服务器之间的TCP连接的代理对数据库客户端的请求和数据库服务器的响应的内容进行拦截,经过规则与策略匹配,对需要加解密的存储字段/响应内容进行加解密处理,然后重新根据对应的数据库协议格式组织数据内容,相对应地,把修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端。本发明通过在客户端与服务器之间部署TCP代理软件,结合TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例一种基于TCP代理的数据库动态加解密的实现方法的流程图;
图2为本发明实施例一种基于TCP代理的数据库动态加解密的实现系统的原理框图。
图标:100、代理部署模块;200、数据拦截模块;300、过滤匹配模块;310、判断子模块;320、请求子模块;330、响应子模块;400、加解密模块;410、字段加密子模块;420、内容解密子模块;500、数据重组模块;510、第一发送子模块;520、第二发送子模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
实施例
如图1所示,第一方面,本发明实施例提供一种基于TCP代理的数据库动态加解密的实现方法,包括以下步骤:
S1、在数据库客户端和数据库服务器之间建立TCP代理;
S2、通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
S3、根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;
S4、对待加解密的存储信息进行加解密处理,以得到加解密数据;
S5、获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
通过在客户端与数据库之间部署TCP代理软件,实现对客户端访问数据库动态加解密的功能,通过数据库客户端与数据库服务器之间的TCP连接的代理对数据库客户端的请求和数据库服务器的响应的内容进行拦截,经过规则与策略匹配,对需要加解密的存储字段/响应内容进行加解密处理,上述预设的策略匹配规则中,明确定义了哪个数据库的哪些表的哪些列(字段),需要使用什么样的加密算法进行加密,即针对存储的操作语句,要对该语句进行词法分析,先提取语句操作的目标库、表、字段,然后与已有的配置进行对比;然后重新根据对应的数据库协议格式组织数据内容,相对应地,把修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端;数据库客户端对数据库服务器进行查询之后,数据库服务器回复给数据库客户端的数据,是以特定的格式进行组织的。数据库服务器回复给客户端的数据,是以特定的的方式组装的,除了包含数据本身,也包含了对数据内容的一些解释和限定(此为协议,或者说数据结构),同时,解密之后的数据长度与解密之前的长度有可能不一样,无法直接修改,因此要把数据“拆开”,只对需要修改的部分进行改动,然后按照特定的格式进行修改,然后再按照说明书,也就是协议格式进行“组装”。对于数据库客户端而言,不需要做任何代码上的修改,同时对于数据库又完全透明,在数据库服务器上不需要做任何配置和修改,也没有任何额外的运算负担;不仅可以使用软件的方法进行加解密,也可以与现有的硬件加密机对接,实现高速加解密功能;如果与合适的负载均衡设备进行对接,可以轻松地实现加解密的集群,快速提高性能与高可用性。
本方法通过在客户端与服务器之间部署TCP代理软件,结合TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
基于第一方面,在本发明的一些实施例中,所述根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息的方法包括以下步骤:
根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
对数据客户端发给数据库服务器的请求字段进行过滤与匹配,并不是所有字段都需要加密存储,所以需要进行筛选,把需要进行加密的字段进行加密处理,对于数据库服务器响应的内容,同样也要进行过滤与匹配,对进行过加密处理过的内容交给加解密模块进行解密处理;对于不需要加解密的请求字段和响应内容直接进行解析重组,然后得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
基于第一方面,在本发明的一些实施例中,所述根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息的方法包括以下步骤:
根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;
根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容。
分别对数据库客户端的请求字段和数据库服务器的响应内容进行过滤匹配,将需要加密存储的请求字段匹配提取出来,将需要解密的响应内容提取出来,以便进行后续的加解密处理。
基于第一方面,在本发明的一些实施例中,所述对待加解密的存储信息进行加解密处理,以得到加解密数据的方法包括以下步骤:
采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
对传入的明文内容即待加密的存储请求字段使用指定的加密算法和秘钥进行加密处理,同时对传入的密文内容即对待解密的存储响应内容使用指定的加密算法和秘钥进行解密处理,通过TCP代理进行数据处理,无需数据库客户端和数据库服务器进行额外的资源消耗,即可完数据的加解密。
基于第一方面,在本发明的一些实施例中,所述将重组数据发送给对应的数据库客户端或数据库服务器的方法包括以下步骤:
将重组数据中的请求字段发送给数据库服务器;
将重组数据中的响应内容发送给数据库客户端。
对数据库客户端和数据库服务器的数据进行重组后,将修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端,完成数据交互。
如图2所示,第二方面,本发明实施例提供一种基于TCP代理的数据库动态加解密的实现系统,包括代理部署模块100、数据拦截模块200、过滤匹配模块300、加解密模块400以及数据重组模块500,其中:
代理部署模块100,用于在数据库客户端和数据库服务器之间建立TCP代理;
数据拦截模块200,用于通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
过滤匹配模块300,用于根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;
加解密模块400,用于对待加解密的存储信息进行加解密处理,以得到加解密数据;
数据重组模块500,用于获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
通过代理部署模块100在客户端与数据库之间部署TCP代理软件,实现对客户端访问数据库动态加解密的功能,数据拦截模块200通过数据库客户端与数据库服务器之间的TCP连接的代理对数据库客户端的请求和数据库服务器的响应的内容进行拦截,然后通过过滤匹配模块300对数据进行过滤匹配,经过规则与策略匹配得到待加解密的数据,通过加解密模块400对需要加解密的存储字段/响应内容进行加解密处理,然后数据重组模块500重新根据对应的数据库协议格式组织数据内容,相对应地,把修改重组后的请求内容交给数据库服务器,把修改重组后的响应内容发送给数据库客户端。对于数据库客户端而言,不需要做任何代码上的修改,同时对于数据库又完全透明,在数据库服务器上不需要做任何配置和修改,也没有任何额外的运算负担;不仅可以使用软件的方法进行加解密,也可以与现有的硬件加密机对接,实现高速加解密功能;如果与合适的负载均衡设备进行对接,可以轻松地实现加解密的集群,快速提高性能与高可用性。
本系统通过在客户端与服务器之间部署TCP代理软件,结合TCP代理软件,减少运算资源的损耗,实现对客户端访问数据库动态加解密的功能。
如图2所示,基于第二方面,在本发明的一些实施例中,所述过滤匹配模块300包括判断子模块310,用于根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
对数据客户端发给数据库服务器的请求字段进行过滤与匹配,并不是所有字段都需要加密存储,所以需要进行筛选,通过判断子模块310对内容进行判断筛选,把需要进行加密的字段进行加密处理,对于数据库服务器响应的内容,同样也要进行过滤与匹配,对进行过加密处理过的内容交给加解密模块400进行解密处理;对于不需要加解密的请求字段和响应内容直接进行解析重组,然后得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
如图2所示,基于第二方面,在本发明的一些实施例中,所述过滤匹配模块300包括请求子模块320和响应子模块330,其中:
请求子模块320,用于根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;
响应子模块330,用于根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容。
通过请求子模块320和响应子模块330分别对数据库客户端的请求字段和数据库服务器的响应内容进行过滤匹配,将需要加密存储的请求字段匹配提取出来,将需要解密的响应内容提取出来,以便进行后续的加解密处理。
如图2所示,基于第二方面,在本发明的一些实施例中,所述加解密模块400包括字段加密子模块410和内容解密子模块420,其中:
字段加密子模块410,用于采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
内容解密子模块420,用于根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
通过字段加密子模块410对传入的明文内容即待加密的存储请求字段使用指定的加密算法和秘钥进行加密处理,同时通过内容解密子模块420对传入的密文内容即对待解密的存储响应内容使用指定的加密算法和秘钥进行解密处理,通过TCP代理进行数据处理,无需数据库客户端和数据库服务器进行额外的资源消耗,即可完数据的加解密。
如图2所示,基于第二方面,在本发明的一些实施例中,所述数据重组模块500包括第一发送子模块510和第二发送子模块520,其中:
第一发送子模块510,用于将重组数据中的请求字段发送给数据库服务器;
第二发送子模块520,用于将重组数据中的响应内容发送给数据库客户端。
对数据库客户端和数据库服务器的数据进行重组后,通过第一发送子模块510将修改重组后的请求内容交给数据库服务器,通过第二发送子模块520把修改重组后的响应内容发送给数据库客户端,完成数据交互。
本系统还包括存储器、处理器和通信接口,该存储器、处理器和通信接口相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器可用于存储软件程序及模块,处理器通过执行存储在存储器内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口可用于与其他节点设备进行信令或数据的通信。
其中,存储器可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器可以是一种集成电路芯片,具有信号处理能力。该处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图2所示的结构仅为示意还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (8)

1.一种基于TCP代理的数据库动态加解密的实现方法,其特征在于,包括以下步骤:
在数据库客户端和数据库服务器之间建立TCP代理;
通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息,包括:根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容;
对待加解密的存储信息进行加解密处理,以得到加解密数据;
获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
2.根据权利要求1所述的一种基于TCP代理的数据库动态加解密的实现方法,其特征在于,所述根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息的方法包括以下步骤:
根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
3.根据权利要求1所述的一种基于TCP代理的数据库动态加解密的实现方法,其特征在于,所述对待加解密的存储信息进行加解密处理,以得到加解密数据的方法包括以下步骤:
采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
4.根据权利要求1所述的一种基于TCP代理的数据库动态加解密的实现方法,其特征在于,所述将重组数据发送给对应的数据库客户端或数据库服务器的方法包括以下步骤:
将重组数据中的请求字段发送给数据库服务器;
将重组数据中的响应内容发送给数据库客户端。
5.一种基于TCP代理的数据库动态加解密的实现系统,其特征在于,包括代理部署模块、数据拦截模块、过滤匹配模块、加解密模块以及数据重组模块,其中:
代理部署模块,用于在数据库客户端和数据库服务器之间建立TCP代理;
数据拦截模块,用于通过TCP代理对数据库客户端的请求和数据库服务器的响应内容进行拦截;
过滤匹配模块,用于根据预设的策略匹配规则对数据库客户端的请求和数据库服务器的响应内容进行过滤与匹配,以得到待加解密的存储信息;所述过滤匹配模块包括请求子模块和响应子模块,其中:请求子模块,用于根据预设的策略匹配规则对数据库客户端的请求字段进行过滤与匹配,以得到待加密的存储请求字段;响应子模块,用于根据预设的策略匹配规则对数据库服务器的响应内容进行过滤与匹配,以得到待解密的存储响应内容;
加解密模块,用于对待加解密的存储信息进行加解密处理,以得到加解密数据;
数据重组模块,用于获取并根据对应的数据库协议对加解密数据进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
6.根据权利要求5所述的一种基于TCP代理的数据库动态加解密的实现系统,其特征在于,所述过滤匹配模块包括判断子模块,用于根据预设的策略匹配规则判断数据库客户端的请求和数据库服务器的响应内容是否需要加解密,如果是,则提取数据库客户端的请求和数据库服务器的响应内容中的待加解密的存储信息;如果否,则对数据库客户端的请求和数据库服务器的响应内容进行解析重组,以得到重组数据,并将重组数据发送给对应的数据库客户端或数据库服务器。
7.根据权利要求5所述的一种基于TCP代理的数据库动态加解密的实现系统,其特征在于,所述加解密模块包括字段加密子模块和内容解密子模块,其中:
字段加密子模块,用于采用预设的加密算法和加密密钥对待加密的存储请求字段进行加密,以得到加密数据;
内容解密子模块,用于根据预设的加密算法和加密密钥生成对应的解密算法和解密密钥,并采用解密算法和解密密钥对待解密的存储响应内容进行解密,以得到解密数据。
8.根据权利要求5所述的一种基于TCP代理的数据库动态加解密的实现系统,其特征在于,所述数据重组模块包括第一发送子模块和第二发送子模块,其中:
第一发送子模块,用于将重组数据中的请求字段发送给数据库服务器;
第二发送子模块,用于将重组数据中的响应内容发送给数据库客户端。
CN202110236734.XA 2021-03-03 2021-03-03 一种基于tcp代理的数据库动态加解密的实现方法及系统 Active CN113162974B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110236734.XA CN113162974B (zh) 2021-03-03 2021-03-03 一种基于tcp代理的数据库动态加解密的实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110236734.XA CN113162974B (zh) 2021-03-03 2021-03-03 一种基于tcp代理的数据库动态加解密的实现方法及系统

Publications (2)

Publication Number Publication Date
CN113162974A CN113162974A (zh) 2021-07-23
CN113162974B true CN113162974B (zh) 2023-04-07

Family

ID=76884077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110236734.XA Active CN113162974B (zh) 2021-03-03 2021-03-03 一种基于tcp代理的数据库动态加解密的实现方法及系统

Country Status (1)

Country Link
CN (1) CN113162974B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113992448B (zh) * 2021-12-28 2022-04-12 北京瑞莱智慧科技有限公司 一种数据透传方法、系统、介质及计算设备
CN116915387A (zh) * 2023-09-14 2023-10-20 山东三未信安信息科技有限公司 一种可扩展的数据库透明加密装置及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111132150A (zh) * 2019-12-31 2020-05-08 中科曙光国际信息产业有限公司 一种保护数据的方法、装置、存储介质和电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237538A1 (en) * 2013-02-21 2014-08-21 International Business Machines Corporation Input prediction in a database access control system
US20140283115A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Method and system for monitoring access attempts of shared memory of databases
US20150220881A1 (en) * 2014-02-06 2015-08-06 Open Text S.A. Systems, Methods and Architectures for Dynamic Re-Evaluation of Rights Management Rules for Policy Enforcement on Downloaded Content
US20170171170A1 (en) * 2015-12-09 2017-06-15 Xasp Security, Llc Dynamic encryption systems
US10204241B2 (en) * 2017-06-30 2019-02-12 Microsoft Technology Licensing, Llc Theft and tamper resistant data protection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111132150A (zh) * 2019-12-31 2020-05-08 中科曙光国际信息产业有限公司 一种保护数据的方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN113162974A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
US20220329422A1 (en) Data processing method, apparatus, computer program, and storage medium
US10474829B2 (en) Virtual service provider zones
AU2012288609B2 (en) Anonymisation and filtering data
JP6622196B2 (ja) 仮想サービスプロバイダゾーン
CN108520183B (zh) 一种数据存储方法及装置
US8590034B2 (en) Method, system and apparatus for providing stateful information redaction
US8693690B2 (en) Organizing an extensible table for storing cryptographic objects
CN113162974B (zh) 一种基于tcp代理的数据库动态加解密的实现方法及系统
CN114329599B (zh) 一种数据查询方法、装置及存储介质
US9325742B1 (en) Adding an encryption policy in a streaming environment
CN112183765B (zh) 一种用于共享学习的多源多模态数据预处理方法及系统
CN111460503B (zh) 数据分享方法、装置、设备和存储介质
CN112948877A (zh) 一种基于tcp代理的数据库动态脱敏方法及系统
GB2495599A (en) Database management system
Liu Securing outsourced databases in the cloud
CN114117482A (zh) 数据库的加密方法、装置、电子设备及存储介质
JP7222106B2 (ja) プライバシーデータのアップリンク方法、デバイス及び記憶媒体
CN116975926A (zh) 一种基于可信执行环境的数据库代理加密系统
US20140215607A1 (en) Threat exchange information protection
CN107547251B (zh) 一种设备管理方法、装置及系统
CN114679260B (zh) 旁路审计兼容扩展主秘钥的加密数据方法、系统及终端
CN112084522B (zh) 数据存储方法、装置、设备及存储介质
Giblin et al. Securing Kafka with encryption-at-rest
CN113609077A (zh) 一种文件检索方法、系统、存储介质及设备
CN113906405A (zh) 修改数据项

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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Method and System for Implementing Dynamic Database Encryption and Decryption Based on TCP Proxy

Effective date of registration: 20230714

Granted publication date: 20230407

Pledgee: Haidian Beijing science and technology enterprise financing Company limited by guarantee

Pledgor: Beijing Zhongan Xingyun Software Technology Co.,Ltd.

Registration number: Y2023110000289