CN108537062B - 一种数据库数据动态加密的方法 - Google Patents

一种数据库数据动态加密的方法 Download PDF

Info

Publication number
CN108537062B
CN108537062B CN201810369714.8A CN201810369714A CN108537062B CN 108537062 B CN108537062 B CN 108537062B CN 201810369714 A CN201810369714 A CN 201810369714A CN 108537062 B CN108537062 B CN 108537062B
Authority
CN
China
Prior art keywords
data
user
server
oracle
information
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
CN201810369714.8A
Other languages
English (en)
Other versions
CN108537062A (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.)
Shandong Chinasoft Goldencis Software Co ltd
Original Assignee
Shandong Chinasoft Goldencis Software 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 Shandong Chinasoft Goldencis Software Co ltd filed Critical Shandong Chinasoft Goldencis Software Co ltd
Priority to CN201810369714.8A priority Critical patent/CN108537062B/zh
Publication of CN108537062A publication Critical patent/CN108537062A/zh
Application granted granted Critical
Publication of CN108537062B publication Critical patent/CN108537062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Abstract

一种数据库数据动态加密的方法,包括如下步骤:设置于Oracle服务器相连的加密服务器;在加密服务器上配置超级用户和需要授权的用户权限;用户端使用Oracle驱动连接Oracle服务器并查询数据表;加密服务器将解析用户的连接信息数据;对于超级用户,解析到查询结果后不做处理,将数据直接发送给用户端,用户端可以看到原始的数据信息,对于授权用户,将数据通过加密算法加密后,然后再将固定长度的数据转成特殊字符后,根据Oracle协议将数据组包后发送给用户端。保证了数据库的安全性。

Description

一种数据库数据动态加密的方法
技术领域
本发明涉及数据库安全领域,具体涉及一种数据库数据动态加密的方法。
背景技术
随着当今网络迅速发展,对于网络的安全及数据库的安全极为重要,越来越多的数据泄露,数据丢失等问题越发严重,虽然大多数的数据库都有各自的安全机制来保护数据,但是黑客会想尽一切办法通过非法途径对数据库进行攻击,从而导致数据的改写和丢失。所以我们需要在原有的数据库安全机制下,在不操作原有数据库的前提下,对客户端和服务端的通信数据进行解析、过滤和加密等方式,保证数据的完整性和一致性。
在现有的解决方案中,我们使用桥接的方式在客户端和数据库服务端中间搭建一台动态监测加密的数据库保护系统,这样保证了用户想要访问数据库,必须将数据发送到我们的数据库保护系统进行过滤中转。当用户访问数据时,首先查看用户权限,目前有超级用户、授权用户和非授权用户。只有超级用户才能访问数据库并显示真实数据,授权用户在访问数据库某个字段的敏感数据时,我们需要将该数据库原有的数据进行解析并将敏感数据以一定的规则进行加密后发送到客户端,但对于非授权用户访问数据库时,我们直接拒绝该类用户访问数据库,保证了数据库的安全性和稳定性。
当今网络迅速发展,大部分公司越来越多的使用Oracle数据库来维护数据,因为它的强大和优秀性得到了越来越多人的青睐。但随着数据量的不断增大,数据的安全问题成为了最为关注的话题。虽然Oracle自带安全机制,尤其在Oracle公司提出“只有Oracle可以做到绝对安全”的口号后,英国专家在Oracle中发现了漏洞,紧接着很多人都提出了许多Oracle程序漏洞的问题,一旦数据库的通信接口暴露后,非法用户可以对数据库进行肆无忌惮的操作,这带来了新的问题:
1.大量的数据泄露,导致非法更改和销毁数据。
2.大量用户攻击,导致数据库整体性能降低。
发明内容
本发明为了克服以上技术的不足,提供了一种保证了数据库的安全性的数据库数据动态加密的方法。
本发明克服其技术问题所采用的技术方案是:
一种数据库数据动态加密的方法,包括如下步骤:
a)设置于Oracle服务器相连的加密服务器,在加密服务器后台管理配置Oracle服务器需要加密的数据库表名、字段名以及敏感词;
b)在加密服务器上配置超级用户和需要授权的用户权限,没有配置权限的用户认定为非授权用户;
c)用户端使用Oracle驱动连接Oracle服务器并查询数据表,用户端的IP地址和端口为加密服务器的IP地址和端口相同;
d)加密服务器接收到用户端的连接信息后,加密服务器将解析用户的连接信息数据并通过socket获取用户的ip及用户连接数据库的驱动信息,通过此信息判断当前用户权限;
d-1) 加密服务器接收到用户端的连接信息如果判断为超级用户或授权用户,加密服务器将解析到的连接数据转发到Oracle服务器并接收Oracle服务器返回的连接成功信息,此信息加密服务器不做处理,直接返回给用户并执行步骤f);
d-2)加密服务器接收到用户端的连接信息如果判断为非授权用户,则不需要将数据发送到Oracle服务器,加密服务器主动断开与该用户端的通信连接;
f) 用户端发送一条select * from student查询指令,加密服务器会通过查询获取select标识(0x73 0x65 0x6c 0x65 0x63 0x74)来查询数据信息并获取数据表名;
g) 对于超级用户,解析到查询结果后不做处理,将数据直接发送给用户端,用户端可以看到原始的数据信息,对于授权用户,将数据通过加密算法加密后,然后再将固定长度的数据转成特殊字符后,根据Oracle协议将数据组包后发送给用户端,用户端通过Oracle驱动解析之后显示的是加密后的数据信息。
优选的,步骤a)中的敏感词为需要加密用户信息表的地址字段。
优选的,步骤c)中Oracle驱动为OCI和/或OCCI和/或JDBC的方式。
优选的,步骤d-3)中加密算法为sha1+md5的方式进行加密计算。
本发明的有益效果是:通过桥接的方式安装动态加密服务器,相当于在数据库服务器外层加上了安全壳。如果管理员不想让某一个用户进行访问数据库或者希望该用户看到的数据是加密后的数据时,这时可以配置一下当前用户的权限即可实现。保证了数据库的安全性。
具体实施方式
下面对本发明做进一步说明。
一种数据库数据动态加密的方法,包括如下步骤:
a)设置于Oracle服务器相连的加密服务器,在加密服务器后台管理配置Oracle服务器需要加密的数据库表名、字段名以及敏感词。
b)在加密服务器上配置超级用户和需要授权的用户权限,没有配置权限的用户认定为非授权用户。
c)用户端使用Oracle驱动连接Oracle服务器并查询数据表,因为是桥接,所以用户端的IP地址和端口为加密服务器的IP地址和端口相同。
d)加密服务器接收到用户端的连接信息后,加密服务器将解析用户的连接信息数据并通过socket获取用户的ip及用户连接数据库的驱动信息,通过此信息判断当前用户权限。加密服务器接收用户连接数据为:
0x01:连接信息标识
0x48 0x4f 0x53 0x54 0x3d 0x31 0x30 0x2e 0x31 0x30 0x2e 0x16 0x2e 0x310x39 0x33:该标识是用户连接的ip地址,HOST=10.10.16.193
0x78 0x38 0x36 0x5f 0x36 0x34 0x2f 0x4c 0x69 0x6e 0x75 0x78 0x29 0x320x2e 0x34 0x2e 0x78 0x78 0x00:该标识是用户连接的数据库驱动的版本号,x86_64/Linux2.4.xx。
d-1) 加密服务器接收到用户端的连接信息如果判断为超级用户或授权用户,加密服务器将解析到的连接数据转发到Oracle服务器并接收Oracle服务器返回的连接成功信息,此信息加密服务器不做处理,直接返回给用户并执行步骤f)。
d-2)加密服务器接收到用户端的连接信息如果判断为非授权用户,则不需要将数据发送到Oracle服务器,加密服务器主动断开与该用户端的通信连接。
f) 用户端发送一条select * from student查询指令,加密服务器会通过查询获取select标识(0x73 0x65 0x6c 0x65 0x63 0x74)来查询数据信息并获取数据表名。之前配置该表的NAME字段配置为数据加密,则我们在解析数据库服务器回传查询结果的时候要找到相应的字段信息。
该表的NAME字段是VARCHAR2的数据类型,我们需要解析数据库返回的信息,首先获取数据库返回的列信息数据:
0x10 0x17:查询select语句返回字段信息的标识
0X51:列信息开始的标识
0x01 0x80:字段的数据类型
0x80 0x00:字段的数据类型长度
0x04:标明字段名称的字节长度(NAME占四个字节)
0x4e 0x41 0x4d 0x45:字段名称(NAME)
0x01: 代表当前列序号(从0开始)
之后数据库再次返回具体的字段内容:
0x06 0x22: 查询字段结果的开始标识
0x07:字段开始标识
0x03:获取后面该行显示哪几列信息值的字节长度
0xc2 0x0b 0x02:查询该行需要显示哪几列信息(获取此三位的值并转换成二进制,倒叙查看分析)
0x08:NAME字段的数据长度
0x73 0x74 0x75 0x64 0x65 0x6e 0x74:具体的NAME信息(student)
g) 对于超级用户,解析到查询结果后不做处理,将数据直接发送给用户端,用户端可以看到原始的数据信息,对于授权用户,将数据通过加密算法加密后,然后再将固定长度的数据转成特殊字符后,根据Oracle协议将数据组包后发送给用户端,用户端通过Oracle驱动解析之后显示的是加密后的数据信息。
如果收到0x4f 0x52 0x41 0x2d 0x30 0x31 0x34 0x30 0x33数据信息后(ORA-01403),则认为本次查询已经结束。
虽然Oracle数据库的高并发是优势,但是如果有非法用户进行大量的非法连接攻击时,有可能会对数据库进行破坏甚至更改和删除重要的数据信息,当有非法用户进行连接时,动态加密服务器判断之后立即与该用户的通信连接断开即可。因此通过桥接的方式安装动态加密服务器,相当于在数据库服务器外层加上了安全壳。如果管理员不想让某一个用户进行访问数据库或者希望该用户看到的数据是加密后的数据时,这时可以配置一下当前用户的权限即可实现。保证了数据库的安全性。
进一步的,步骤a)中的敏感词为需要加密用户信息表的地址字段。
进一步的,步骤c)中Oracle驱动为OCI和/或OCCI和/或JDBC的方式。
进一步的,步骤d-3)中加密算法为sha1+md5的方式进行加密计算。

Claims (4)

1.一种数据库数据动态加密的方法,其特征在于,包括如下步骤:
a)设置于Oracle服务器相连的加密服务器,在加密服务器后台管理配置Oracle服务器需要加密的数据库表名、字段名以及敏感词;
b)在加密服务器上配置超级用户和需要授权的用户权限,没有配置权限的用户认定为非授权用户;
c)用户端使用Oracle驱动连接Oracle服务器并查询数据表,用户端的IP地址和端口为加密服务器的IP地址和端口相同;
d)加密服务器接收到用户端的连接信息后,加密服务器将解析用户的连接信息数据并通过socket获取用户的ip及用户连接数据库的驱动信息,通过此信息判断当前用户权限;
d-1) 加密服务器接收到用户端的连接信息如果判断为超级用户或授权用户,加密服务器将解析到的连接数据转发到Oracle服务器并接收Oracle服务器返回的连接成功信息,此信息加密服务器不做处理,直接返回给用户并执行步骤f);
d-2)加密服务器接收到用户端的连接信息如果判断为非授权用户,则不需要将数据发送到Oracle服务器,加密服务器主动断开与该用户端的通信连接;
f) 用户端发送一条select * from student查询指令,加密服务器会通过查询获取select标识(0x73 0x65 0x6c 0x65 0x63 0x74)来查询数据信息并获取数据表名;
g) 对于超级用户,解析到查询结果后不做处理,将数据直接发送给用户端,用户端可以看到原始的数据信息,对于授权用户,将数据通过加密算法加密后,然后再将固定长度的数据转成特殊字符后,根据Oracle协议将数据组包后发送给用户端,用户端通过Oracle驱动解析之后显示的是加密后的数据信息。
2.根据权利要求1所述的数据库数据动态加密的方法,其特征在于:步骤a)中的敏感词为需要加密用户信息表的地址字段。
3.根据权利要求1所述的数据库数据动态加密的方法,其特征在于:步骤c)中Oracle驱动为OCI和/或OCCI和/或JDBC的方式。
4.根据权利要求1所述的数据库数据动态加密的方法,其特征在于:步骤d-3)中加密算法为sha1+md5的方式进行加密计算。
CN201810369714.8A 2018-04-24 2018-04-24 一种数据库数据动态加密的方法 Active CN108537062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810369714.8A CN108537062B (zh) 2018-04-24 2018-04-24 一种数据库数据动态加密的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810369714.8A CN108537062B (zh) 2018-04-24 2018-04-24 一种数据库数据动态加密的方法

Publications (2)

Publication Number Publication Date
CN108537062A CN108537062A (zh) 2018-09-14
CN108537062B true CN108537062B (zh) 2022-03-22

Family

ID=63479093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810369714.8A Active CN108537062B (zh) 2018-04-24 2018-04-24 一种数据库数据动态加密的方法

Country Status (1)

Country Link
CN (1) CN108537062B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111191255B (zh) * 2019-08-08 2024-04-05 腾讯科技(深圳)有限公司 信息加密处理的方法、服务器、终端、设备以及存储介质
CN112416966B (zh) * 2020-12-11 2024-01-26 北京顺达同行科技有限公司 即席查询方法、装置、计算机设备和存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504706A (zh) * 2009-03-03 2009-08-12 中国科学院软件研究所 数据库信息加密方法和系统
CN102236766A (zh) * 2011-05-10 2011-11-09 桂林电子科技大学 安全的数据项级数据库加密系统
CN102402664A (zh) * 2011-12-28 2012-04-04 用友软件股份有限公司 数据访问控制装置和数据访问控制方法
CN102722667A (zh) * 2012-03-07 2012-10-10 甘肃省电力公司信息通信公司 基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法
CN104679781A (zh) * 2013-12-02 2015-06-03 中国移动通信集团福建有限公司 一种数据模糊处理的方法及装置
CN106407843A (zh) * 2016-10-17 2017-02-15 深圳中兴网信科技有限公司 数据脱敏方法和数据脱敏装置
CN106485155A (zh) * 2015-08-24 2017-03-08 阿里巴巴集团控股有限公司 一种基于字段注释的加密方法和设备
CN106599713A (zh) * 2016-11-11 2017-04-26 中国电子科技网络信息安全有限公司 一种基于大数据的数据库脱敏系统及方法
CN106649455A (zh) * 2016-09-24 2017-05-10 孙燕群 一种大数据开发的标准化系统归类、命令集系统
CN107194276A (zh) * 2017-05-03 2017-09-22 上海上讯信息技术股份有限公司 数据库动态脱敏方法及设备
CN107194270A (zh) * 2017-04-07 2017-09-22 广东精点数据科技股份有限公司 一种实现数据脱敏的系统及方法
CN107391558A (zh) * 2017-06-08 2017-11-24 上海微烛信息技术有限公司 用于操作数据库集群的方法、装置及系统
CN107423632A (zh) * 2017-04-20 2017-12-01 北京同余科技有限公司 可定制的敏感数据脱敏方法和系统
CN107871083A (zh) * 2017-11-07 2018-04-03 平安科技(深圳)有限公司 脱敏规则配置方法、应用服务器及计算机可读存储介质
CN107958158A (zh) * 2017-10-27 2018-04-24 国网辽宁省电力有限公司 一种大数据平台的动态数据脱敏方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100449563C (zh) * 2007-02-12 2009-01-07 深圳市迈科龙电子有限公司 一种控制数据库安全访问的方法
AU2009200922A1 (en) * 2008-03-10 2009-09-24 Fixed Stars Enterprises Pty Ltd Data Access and User Identity Verification
US9449178B2 (en) * 2012-07-24 2016-09-20 ID Insight System, method and computer product for fast and secure data searching
CN102799831B (zh) * 2012-08-28 2014-11-26 无锡华御信息技术有限公司 基于数据库的应用系统信息安全保护系统及信息安全保护方法
CN105069370B (zh) * 2015-07-22 2018-01-30 北京京东尚科信息技术有限公司 数据库自动授权访问方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101504706A (zh) * 2009-03-03 2009-08-12 中国科学院软件研究所 数据库信息加密方法和系统
CN102236766A (zh) * 2011-05-10 2011-11-09 桂林电子科技大学 安全的数据项级数据库加密系统
CN102402664A (zh) * 2011-12-28 2012-04-04 用友软件股份有限公司 数据访问控制装置和数据访问控制方法
CN102722667A (zh) * 2012-03-07 2012-10-10 甘肃省电力公司信息通信公司 基于虚拟数据库和虚拟补丁的数据库安全防护系统和方法
CN104679781A (zh) * 2013-12-02 2015-06-03 中国移动通信集团福建有限公司 一种数据模糊处理的方法及装置
CN106485155A (zh) * 2015-08-24 2017-03-08 阿里巴巴集团控股有限公司 一种基于字段注释的加密方法和设备
CN106649455A (zh) * 2016-09-24 2017-05-10 孙燕群 一种大数据开发的标准化系统归类、命令集系统
CN106407843A (zh) * 2016-10-17 2017-02-15 深圳中兴网信科技有限公司 数据脱敏方法和数据脱敏装置
CN106599713A (zh) * 2016-11-11 2017-04-26 中国电子科技网络信息安全有限公司 一种基于大数据的数据库脱敏系统及方法
CN107194270A (zh) * 2017-04-07 2017-09-22 广东精点数据科技股份有限公司 一种实现数据脱敏的系统及方法
CN107423632A (zh) * 2017-04-20 2017-12-01 北京同余科技有限公司 可定制的敏感数据脱敏方法和系统
CN107194276A (zh) * 2017-05-03 2017-09-22 上海上讯信息技术股份有限公司 数据库动态脱敏方法及设备
CN107391558A (zh) * 2017-06-08 2017-11-24 上海微烛信息技术有限公司 用于操作数据库集群的方法、装置及系统
CN107958158A (zh) * 2017-10-27 2018-04-24 国网辽宁省电力有限公司 一种大数据平台的动态数据脱敏方法及系统
CN107871083A (zh) * 2017-11-07 2018-04-03 平安科技(深圳)有限公司 脱敏规则配置方法、应用服务器及计算机可读存储介质

Also Published As

Publication number Publication date
CN108537062A (zh) 2018-09-14

Similar Documents

Publication Publication Date Title
CN106874461B (zh) 一种工作流引擎支持多数据源配置安全访问系统及方法
US9900290B2 (en) Methods and systems for proxying data
CN110543464B (zh) 一种应用于智慧园区的大数据平台及操作方法
JP4777651B2 (ja) コンピュータシステム及びデータ保存方法
US9166893B2 (en) Methods, apparatus and systems for monitoring locations of data within a network service
KR101327317B1 (ko) Sap 응용 트래픽 분석 및 모니터링 장치 및 방법, 이를 이용한 정보 보호 시스템
CN109995796B (zh) 工控系统终端安全防护方法
CN109976239B (zh) 工控系统终端安全防护系统
CN110889130B (zh) 基于数据库的细粒度数据加密方法、系统及装置
CN103095720B (zh) 一种基于会话管理服务器的云存储系统的安全管理方法
US8548998B2 (en) Methods and systems for securing and protecting repositories and directories
CN104991526A (zh) 工业控制系统安全支撑框架及其数据安全传输和存储方法
CN108537062B (zh) 一种数据库数据动态加密的方法
CN113468576B (zh) 一种基于角色的数据安全访问方法及装置
CN107194273A (zh) 可连续查询的数据脱敏方法和系统
Zhu et al. Full Encryption: An end to end encryption mechanism in GaussDB
CN112035863B (zh) 一种基于智能合约方式的电子合同取证方法及系统
CN112583586A (zh) 一种网络安全信息处理系统
CN112214769B (zh) 基于SGX架构的Windows系统的主动度量系统
CN110233816B (zh) 一种工业数据资产授权管理方法及设备
CN107508739B (zh) 一种通过vpn隧道传输数据的鉴权方法
CN111931218A (zh) 一种用于客户端数据安全防护装置和防护方法
CN110084051A (zh) 一种数据加密方法和系统
US8041948B2 (en) Application level gateway for request verification
CN112463759A (zh) Gbase数据库审计的信息解析方法

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
PP01 Preservation of patent right

Effective date of registration: 20231113

Granted publication date: 20220322

PP01 Preservation of patent right