CN117763614A - 一种sql语句的拦截与改写方法 - Google Patents
一种sql语句的拦截与改写方法 Download PDFInfo
- Publication number
- CN117763614A CN117763614A CN202311815130.6A CN202311815130A CN117763614A CN 117763614 A CN117763614 A CN 117763614A CN 202311815130 A CN202311815130 A CN 202311815130A CN 117763614 A CN117763614 A CN 117763614A
- Authority
- CN
- China
- Prior art keywords
- sql
- statement
- query
- encryption
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 7
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 238000003780 insertion Methods 0.000 abstract description 3
- 230000037431 insertion Effects 0.000 abstract description 3
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000011557 critical solution Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Abstract
本发明属于信息安全技术领域,具体涉及一种针对加密数据库的SQL语句的拦截与改写方法。该方法由代理截取即将进入数据库的数据流,检查和捕获传递的SQL查询,利用开源的SQL解析器工具进行语法分析和词法分析,提取SQL关键词后通过配置的改写规则对该用户SQL请求进行处理,在外包存储的加密数据库环境下,在保证原始数据内容隐私的情况下,实现正确高效的数据库SQL拦截与改写操作,实现加密数据库的创建、插入、查询、更新等操作,拦截查询并在传输过程中对数据进行加密,以确保即使在数据传输的过程中,数据也是加密的。
Description
技术领域
本发明属于信息安全技术领域,具体涉及一种针对加密数据库的SQL语句的拦截与改写方法。
背景技术
在当今数字化社会中,隐私数据的加密保护变得至关重要。个人身份信息、金融数据和其他敏感信息的不断增加,使得隐私成为数据管理和传输中的首要关切。加密技术通过将这些隐私数据转化为不可读的形式,确保即使在数据存储、传输和处理的各个环节,也能够有效地防止未经授权的访问和窃取。因此,加密已经成为保障个人隐私权、维护数据完整性以及建立信任的不可或缺的安全手段。
加密数据的广泛应用使得在数据库中进行有效查询变得更为复杂。由于数据被加密,传统的查询操作变得难以直接执行,这涉及到解密的过程。为了克服这一挑战,结合功能密码原语和SQL拦截与改写技术成为一种关键的解决方案。这涉及将功能密码原语嵌入SQL查询中,以在加密数据上执行特定的功能,如求和、平均值等,而无需解密整个数据集。这样的技术要求数据库和应用程序能够理解和支持这些功能密码原语。
功能密码原语允许数据保持加密状态,同时允许在不暴露加密密钥的情况下执行特定的查询功能。通过在数据库查询过程中应用SQL拦截与改写技术,可以实现在加密数据上执行的安全查询。这种综合应用使得在保护隐私的同时,仍然能够实现对加密数据的有效、安全的查询操作,为数据安全性和查询功能性之间的平衡提供了一种创新性的解决途径。
针对上述情况,一种具有可整合揭序加密、同态加密、可搜索加密等功能密码原语的拦截与改写方法的发明意义重大。
发明内容
本发明的目的在于针对现有技术中存在的问题提供一种针对加密数据库的SQL语句的拦截与改写方法,在外包存储的加密数据库环境下,在保证原始数据内容隐私的情况下,实现正确高效的数据库SQL拦截与改写操作,实现加密数据库的创建、插入、查询、更新等操作,拦截查询并在传输过程中对数据进行加密,以确保即使在数据传输的过程中,数据也是加密的。
本发明的技术方案是:
一种SQL语句的拦截与改写方法,包括如下步骤:
S1.用户发送原始SQL查询到数据库;
S2.由代理截取即将进入数据库的原始SQL查询数据流,检查和捕获传递的SQL查询;
S3.利用开源的SQL解析器工具对SQL查询进行语法分析和词法分析,提取请求的SQL查询的结构和关键词,通过配置的改写规则对该用户SQL请求进行改写SQL语句处理;
S4.代理将改写的SQL语句发送给加密数据库执行,执行的结果在密文状态下返回给代理;
S5.代理根据需要将结果解密后返回给用户,或者根据设定好的系统安全策略进行进一步处理。
具体的,所述的步骤S3中对改写SQL语句处理采用创建操作CREATE语句的改写、插入操作INSERT语句的改写、查询操作SELECT语句的改写、更新操作UPDATE语句的改写以及删除操作DELETE语句的改写。
具体的,所述的创建操作CREATE语句的改写是将原本表的明文结构拓展成为密文结构,每一列对应拓展为三列,以便后续分别对明文做AES加密,ORE揭序加密,并针对数据类型从而选择ASHE同态加密也即数值型数据或者SSE可搜索加密也即字符型数据于原始的SQL进行改写。
具体的,所述的插入操作INSERT语句的改写是代理层调用各类功能加密算法,对所有插入的明文值进行加密,将原有数据拓展为三列密文,相应的存储在所改写的密文数据库表中,其中,对数值型数据进行AES加密,揭序加密和同态加密;对字符型数据进行AES加密,揭序加密和可搜索加密。
具体的,所述的查询操作SELECT语句的改写中将查询操作分为普通查询、相等查询、比较查询、搜索查询以及具有同态加法功能的查询。
具体的,所述的更新操作UPDATE语句的改写是在用户希望能够对数据库中的数据进行改动时进行,此时先对UPDATE语句中需要修改的列名进行AES加密得到密文,判断该列的数据类型为字符型/数据型,然后调用对应的三种功能加密算法加密待上传值,从而使得改写后的SQL语句在执行后可以覆盖原有密文。
具体的,所述的删除操作DELETE语句的改写在收到删除命令后,在数据库中删除相关密文。
本发明的有益效果是:本发明提供的一种SQL语句的拦截与改写方法在整合揭序加密、同态加密、可搜索加密等功能密码原语的加密数据库环境中设计,实现加密数据库的创建、插入、查询、更新等操作,拦截查询并在传输过程中对数据进行加密,以确保即使在数据传输的过程中,数据也是加密的。同时,本方法采用代理加密技术,在数据库系统和应用程序之间插入代理层,用于拦截和改写SQL查询,这样的代理可以负责执行加密和解密操作,确保只有授权的用户能够访问解密后的数据。
附图说明
图1是本发明提供的SQL拦截与改写流程示意图;
图2是加密数据库明密文表结构示意图。
具体实施方式
下面结合附图及具体实施方式对本发明的技术方案进行详细的描述
如图1所示为一种SQL语句的拦截与改写方法的流程示意图,包括如下步骤:
S1.用户发送原始SQL查询到数据库;
S2.由代理截取即将进入数据库的原始SQL查询数据流,检查和捕获传递的SQL查询;
S3.利用开源的SQL解析器工具对SQL查询进行语法分析和词法分析,提取请求的SQL查询的结构和关键词,通过配置的改写规则对该用户SQL请求进行改写SQL语句处理;
S4.代理将改写的SQL语句发送给加密数据库执行,执行的结果在密文状态下返回给代理;
S5.代理根据需要将结果解密后返回给用户,或者根据设定好的系统安全策略进行进一步处理。
所述的步骤S3中对改写SQL语句处理采用创建操作CREATE语句的改写、插入操作INSERT语句的改写、查询操作SELECT语句的改写、更新操作UPDATE语句的改写以及删除操作DELETE语句的改写,下面进行详细描述。
1)对创建操作CREATE语句的改写规则如下:
对于创建表的操作而言,主要是将原本表的明文结构拓展成为密文结构,每一列对应拓展为三列,以便后续分别对明文做AES加密,ORE揭序加密,并针对数据类型从而选择ASHE同态加密(数值型数据)或者SSE可搜索加密(字符型数据)对于原始的SQL进行改写。举例而言,若创建table1的原始SQL语句如下:
CREATE TABLE table1(Col1 int,Col2 varchar(20),Col3 int);改写后的建表语句为:
CREATE TABLE table1(Col1-AES varchar(256),Col1-ORE varchar(256),Col1-ASHE varchar(256),Col2-AES varchar(256),
Col2-ORE varchar(256),Col2-SSE varchar(256),Col3-AES varchar(256),Col3-ORE varchar(256),Col3-ASHE varchar(256));其中,varchar长度可根据需要调整,且该过程不需要调用功能加密算法。
2)对插入操作INSERT语句的改写规则如下:
插入与创建表操作类似,代理层会调用各类功能加密算法,对所有插入的明文值进行加密,将原有数据拓展为三列密文,相应的存储在所改写的密文数据库表中。其中,对数值型数据进行AES加密,揭序加密和同态加密;对字符型数据进行AES加密,揭序加密和可搜索加密。
例如,在成功建表之后插入一条数据,原始SQL语句如下:
INSERT INTO table1 VALUES(1,“Alice”,86);
改写后的插入语句为(下述密文形式仅作示例):
INSERT INTO table1 VALUES(“smsk”,“9dsi”,“32k0”,“cos8”,“lvmh”,“6sq8”,“wj9s”,“jwmd”,“qmdl”,“6dsa”,“dsaf”);加密数据库执行该SQL命令,并存储密文。
3)对查询操作SELECT语句的改写规则如下:
将查询操作分为普通查询,相等查询,比较查询,搜索查询以及具有同态加法功能的查询,下面依次展开描述。
a)普通查询/相等查询
普通查询和相等查询的改写都通过将所需要查询的列所对应的AES列从数据库中查询出来,并解密返回给用户来实现。
利用Col-AES列,我们可以进行如“SELECT*FROM table1;”,“SELECT Col2 FROMtable1 WHERE Col1='1';”之类的操作,但是代理层必须修改查询以保护原始表的内容,如果SQL语句为“SELECT Col2 FROM table1 WHERE Col1='1';”,则修改后的SQL如下:
SELECT Col2-AES FROM table1 WHERE Col1-AES='smsk';
数据库根据改写后的SQL进行查询,获取密文结果后经代理层解密返回。
b)比较查询
比较查询可执行“大于”“小于”“ORDER BY”“SORT”“MAX”“MIN”查询。该查询利用揭序加密,通过将对应列的ORE列查询出来,利用ORE的公开比较函数进行比较与筛选,选出符合要求的数据从而完成查询。
例如,若执行“>”“<”“≥”“≤”查询时,原始SQL语句如下:
SELECT Col2 FROM table1 WHERE Col1>1;
假设对“1”进行ORE加密后的密文为“9dsi”,修改后的SQL如下:
SELECT Col2-AES FROM table1 WHERE Col1-ORE>“9dsi”数据库根据改写后的SQL进行查询,将得到的范围内密文使用AES列进行结果查询和解密。
若执行“ORDER BY”查询时,原始SQL语句如下:
SELECT*FROM table1 ORDER BY Coli;
SQL语句被改写为:
SELECT*FROM table1 ORDER BY Coli-ORE;
当Coli为数值型数据时,数据库将利用ORE方案,将Coli-ORE中的所有数据密文按照从小到大的顺序重新排列表格。然后,再通过代理层调用AES算法,解密每一个AES列,返回明文结果。
当Coli为字符型数据时,数据库利用ORE方案对每一个数据,从第一个字母的密文开始比较,数值小(即字母小)的排在前面,然后通过AES解密返回。
同样地,若执行“MIN”查询时,原始SQL语句如下:
SELECT MIN(Col3)FROM table1;
SQL语句被改写为:
SELECT MIN(Col3-ORE)FROM table1;
“SORT”“MAX”查询过程分别与“ORDER BY”“MIN”类似。
c)搜索查询
搜索查询即含有“LIKE”的查询语句,进行对某个关键词的搜索操作,这在文件存储的情况下很有用。该查询利用可搜索加密SSE实现,事先将用户提供的关键词填充到固定的N位长度以根据选取的可搜索加密算法进行加密,并存储到Coli-SSE列中以供后续索引比对。只有字符型数据可以进行搜索查询,若原始SQL语句如下:
SELECT*FROM table1 WHERE Col2 LIKE“%Alice%”;
假设字符串“Alice”的关键词加密索引为“6sq8”,SQL语句被改写为:
SELECT*FROM table1 WHERE Col2-SSE LIKE“%6sq8%”;数据库根据改写后的SQL进行查询,将得到的密文使用AES列进行结果查询和解密。
d)具有同态加法功能的查询
数据库中还有对于数值进行求和(SUM)或平均(AVG)的操作,这里通过同态加密来实现密文加,只能对数值型数据进行操作,用到的是Coli-ASHE列。
若原始SQL语句如下(以SUM为例):
SELECT SUM(Col3)AS sum FROM table1;
SQL语句被改写为:
SELECT SUM(Col3-HOM)AS sum FROM table1;
系统将通过同态加密算法,根据改写后的SQL语句对密文进行相加操作,并将最终和通过AES解密返回。
4)对更新操作UPDATE语句的改写规则如下:
有时用户希望能够对数据库中的数据进行改动,此时先对UPDATE语句中需要修改的列名进行AES加密得到密文,判断该列的数据类型为字符型/数据型,然后调用对应的三种功能加密算法加密待上传值,从而使得改写后的SQL语句在执行后可以覆盖原有密文。
例如,将Alice的成绩由86修改为90分,原始SQL语句如下:
UPDATE table1 SET Col3='90'WHERE Col2='Alice';
代理层先将“Alice”使用AES加密得到密文“cos8”,然后判断Col3为字符型数据,调用AES、ORE、ASHE三种算法加密数字“90”,覆盖原有的密文。因此改写后的更新语句为:
UPDATE table1 SET Col3-AES=EncAES(90),Col3-ORE=EncORE(90),
Col3-ASHE=EncASHE(90)WHERE Col2-AES=“cos8”;
注意在收到包含LIKE的更新操作时,系统需要根据所采用的可搜索加密算法,判断是否需要删除无效状态并在SQL语句中嵌入新的密文状态上传。
5)对删除操作DELETE语句的改写规则如下:
对于删除操作,Proxy在改写上采取与上述相同的策略,在收到删除命令后,只需要在数据库中删除相关密文即可。
例如,删除序号为1的记录,原始SQL语句如下:
DELETE FROM table1 WHERE Col1='1';
改写后的删除语句为(下述密文形式仅作示例):
DELETE FROM table1 WHERE Col1-AES='smsk';
注意在收到包含LIKE的删除操作时,系统需要根据所采用的可搜索加密算法,判断是否需要删除无效状态。
本发明提供的方法具有以下优势:整合功能密码原语使得在数据库中执行的查询不需要对整个数据集进行解密。只有涉及到需要的特定功能的部分数据被解密,从而在数据外包存储环境下优化数据安全保护和数据效用之间的权衡。
功能密码原语的整合允许数据库管理员实现更细粒度的访问控制,因为只有授权用户可以执行特定的功能。通过SQL拦截与改写,可以确保只有经过授权的用户能够执行相关的查询操作。整合功能密码原语使得即便拦截到查询,攻击者也难以获取完整的解密数据,降低了数据泄露的风险。由于不需要对整个数据集进行解密,整合功能密码原语的SQL拦截改写可以提高加密数据库查询性能。这对于大型数据库系统和需要频繁执行聚合函数的场景尤为重要。改写规则简单易实现,具有灵活性和定制性,适配不同存储环境下加密数据库的使用需求。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (7)
1.一种SQL语句的拦截与改写方法,其特征在于,包括如下步骤:
S1.用户发送原始SQL查询到数据库;
S2.由代理截取即将进入数据库的原始SQL查询数据流,检查和捕获传递的SQL查询;
S3.利用开源的SQL解析器工具对SQL查询进行语法分析和词法分析,提取请求的SQL查询的结构和关键词,通过配置的改写规则对该用户SQL请求进行改写SQL语句处理;
S4.代理将改写的SQL语句发送给加密数据库执行,执行的结果在密文状态下返回给代理;
S5.代理根据需要将结果解密后返回给用户,或者根据设定好的系统安全策略进行进一步处理。
2.根据权利要求1所述SQL语句的拦截与改写方法,其特征在于,所述的步骤S3中对改写SQL语句处理采用创建操作CREATE语句的改写、插入操作INSERT语句的改写、查询操作SELECT语句的改写、更新操作UPDATE语句的改写以及删除操作DELETE语句的改写。
3.根据权利要求2所述SQL语句的拦截与改写方法,其特征在于,所述的创建操作CREATE语句的改写是将原本表的明文结构拓展成为密文结构,每一列对应拓展为三列,以便后续分别对明文做AES加密,ORE揭序加密,并针对数据类型从而选择ASHE同态加密也即数值型数据或者SSE可搜索加密也即字符型数据于原始的SQL进行改写。
4.根据权利要求2所述SQL语句的拦截与改写方法,其特征在于,所述的插入操作INSERT语句的改写是代理层调用各类功能加密算法,对所有插入的明文值进行加密,将原有数据拓展为三列密文,相应的存储在所改写的密文数据库表中,其中,对数值型数据进行AES加密,揭序加密和同态加密;对字符型数据进行AES加密,揭序加密和可搜索加密。
5.根据权利要求2所述SQL语句的拦截与改写方法,其特征在于,所述的查询操作SELECT语句的改写中将查询操作分为普通查询、相等查询、比较查询、搜索查询以及具有同态加法功能的查询。
6.根据权利要求2所述SQL语句的拦截与改写方法,其特征在于,所述的更新操作UPDATE语句的改写是在用户希望能够对数据库中的数据进行改动时进行,此时先对UPDATE语句中需要修改的列名进行AES加密得到密文,判断该列的数据类型为字符型/数据型,然后调用对应的三种功能加密算法加密待上传值,从而使得改写后的SQL语句在执行后可以覆盖原有密文。
7.根据权利要求2所述SQL语句的拦截与改写方法,其特征在于,所述的删除操作DELETE语句的改写在收到删除命令后,在数据库中删除相关密文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815130.6A CN117763614A (zh) | 2023-12-27 | 2023-12-27 | 一种sql语句的拦截与改写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815130.6A CN117763614A (zh) | 2023-12-27 | 2023-12-27 | 一种sql语句的拦截与改写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117763614A true CN117763614A (zh) | 2024-03-26 |
Family
ID=90325370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311815130.6A Pending CN117763614A (zh) | 2023-12-27 | 2023-12-27 | 一种sql语句的拦截与改写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117763614A (zh) |
-
2023
- 2023-12-27 CN CN202311815130.6A patent/CN117763614A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10339336B2 (en) | Method and apparatus for encrypting database columns | |
US11366918B1 (en) | Methods and apparatus for encrypted indexing and searching encrypted data | |
US7797342B2 (en) | Database system providing encrypted column support for applications | |
US8281153B2 (en) | Method for indexing encrypted column | |
CN101587479B (zh) | 面向数据库管理系统内核的数据加解密系统及其方法 | |
US9087212B2 (en) | Methods and apparatus for securing a database | |
US8639947B2 (en) | Structure preserving database encryption method and system | |
US7743069B2 (en) | Database system providing SQL extensions for automated encryption and decryption of column data | |
US8504844B2 (en) | System, method, and computer-readable medium for cryptographic key rotation in a database system | |
US9934388B2 (en) | Method and system for database encryption | |
CN109815719A (zh) | 一种可搜索的数据库安全加密系统 | |
Shmueli et al. | Implementing a database encryption solution, design and implementation issues | |
US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
US7809142B2 (en) | Data scrambling and encryption of database tables | |
Almakdi et al. | An efficient secure system for fetching data from the outsourced encrypted databases | |
CN117763614A (zh) | 一种sql语句的拦截与改写方法 | |
CN113360859B (zh) | 基于Python解释器的加密文件安全控制方法和装置 | |
CN115688132A (zh) | 一种支持sql查询的数据库字段加密方法及装置 | |
Tu et al. | Differential Privacy Enhanced Dynamic Searchable Symmetric Encryption for Cloud Environments | |
CN113722359A (zh) | 一种面向密态oltp任务的sql查询重写方法 | |
CN117494167A (zh) | 一种面向数据库的结构化可搜索加密方法及系统 | |
CN116956319A (zh) | 非关系型数据库数据安全防护方法及系统 | |
Holovac | Securing data at rest: database encryption solution using empress RDBMS | |
Chopade et al. | Real Time Performance Comparison of Cryptography Algorithms In Database Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |