敏感数据加密存储方法、装置、设备以及产品与流程

摘要: 本技术涉及数据加密,尤其涉及敏感数据加密存储方法、装置、设备以及产品。背景技术:1、目前,敏感数据加密存储主要采用应用层显式调用加解密接口的方案,或借助数据库内...
敏感数据加密存储方法、装置、设备以及产品与流程

本技术涉及数据加密,尤其涉及敏感数据加密存储方法、装置、设备以及产品。

背景技术:

1、目前,敏感数据加密存储主要采用应用层显式调用加解密接口的方案,或借助数据库内置函数实现,为弥补密文查询能力的缺失,业界引入了盲索引技术,通过额外存储字段的哈希值辅助等值检索,在数据迁移方面,部分方案采用双写模式,在过渡期间同时写入明文和密文,脱敏操作通常在应用展示层执行,数据库中仍保留明文数据,而加密策略相对固定,不同业务场景往往共用同一套加密逻辑,在大规模数据迁移时,普遍使用传统分页查询(limit offset)逐批处理。

2、然而,上述现有技术方案功能割裂,缺乏统一的容错与重试机制,且无法兼容加密失败后的混合查询,导致在灰度发布、数据迁移等过程中,业务连续性、查询完整性和数据安全性难以同时得到保障,尤其无法满足金融等高可靠性场景对不停机平滑迁移、灵活策略适配及大规模数据高效处理的核心需求。

3、上述内容仅用于辅助理解本技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

1、本技术的主要目的在于提供一种敏感数据加密存储方法、装置、设备以及产品,旨在解决现有数据加密技术功能割裂且缺乏容错机制,无法同时保障业务连续性、查询完整性以及数据安全性的技术问题。

2、为实现上述目的,本技术提出一种敏感数据加密存储方法,所述敏感数据加密存储方法包括:

3、对原始数据字段进行白名单配置,得到待加密字段列表以及所述待加密字段列表的生命周期状态;

4、根据所述待加密字段列表进行加密策略选取,得到加密策略,并根据所述加密策略对原始sql查询语句进行语法树解析以及改写,得到改写后的sql语句;

5、根据所述改写后的sql语句以及所述待加密字段列表的生命周期状态,通过加密生命周期状态机对所述待加密字段列表进行数据迁移,得到迁移完成的密文字段;

6、对所述密文字段进行解密以及脱敏,得到脱敏值,并通过所述加密策略将所述脱敏值写入所述原始数据字段对应的原字段,得到加密存储结果。

7、在一实施例中,所述对原始数据字段进行白名单配置,得到待加密字段列表以及所述待加密字段列表的生命周期状态的步骤包括:

8、接收白名单配置指令,解析所述白名单配置指令得到待加密表名以及待加密字段名,并根据所述待加密表名以及待加密字段名生成白名单配置条目;

9、根据所述白名单配置条目对所述原始数据字段进行筛选,得到待加密字段列表;

10、对所述待加密字段列表进行周期分配,得到所述待加密字段列表的生命周期状态。

11、在一实施例中,所述根据所述待加密字段列表进行加密策略选取,得到加密策略的步骤包括:

12、根据所述待加密字段列表,读取加密配置表中若干待加密字段的原始字段名以及最终字段名,得到字段名称映射关系;

13、根据所述字段名称映射关系判断所述原始字段名与所述最终字段名是否相同;

14、若相同,则确定所述加密策略为单字段加密策略;

15、若不相同,则确定所述加密策略为双字段加密策略。

16、在一实施例中,所述根据所述加密策略对原始sql查询语句进行语法树解析以及改写,得到改写后的sql语句的步骤包括:

17、通过sql解析器将所述原始sql查询语句解析为抽象语法树,得到语法树结构;

18、根据所述加密策略对所述语法树结构中的查询字段节点和条件表达式节点进行遍历,得到待改写条件节点集合;

19、根据所述加密策略对所述待改写条件节点集合进行改写,得到改写后的sql语句。

20、在一实施例中,所述根据所述改写后的sql语句以及所述待加密字段列表的生命周期状态,通过加密生命周期状态机对所述待加密字段列表进行数据迁移,得到迁移完成的密文字段的步骤包括:

21、基于所述待加密字段列表的生命周期状态所述原始数据字段对应的新字段;

22、通过双写模式将新增数据写入所述新字段以及所述原始数据字段对应的原字段,得到双写状态;

23、根据所述双写状态以及所述改写后的sql语句,通过游标分页读取存量数据,并对所述存量数据进行加密后写入所述新字段;

24、在写入完成后将查询状态切换为读取新字段,得到切换状态;

25、在所述切换状态为切换完成的情况下,停止所述双写模式,得到迁移完成的密文字段。

26、在一实施例中,所述通过双写模式将新增数据写入所述新字段以及所述原始数据字段对应的原字段,得到双写状态的步骤包括:

27、对所述新增数据进行加密操作,得到加密数据,并监测所述加密操作的执行结果,得到加密状态反馈;

28、若所述加密状态反馈为加密成功,则将所述加密数据写入所述新字段,并将所述新增数据的明文写入所述原字段,得到写入结果;

29、若所述加密状态反馈为加密失败,则对加密失败的字段进行重试加密,在重试加密的次数达到重试阈值时,将新增数据的明文写入原字段,并标记所述新增数据为未加密状态,得到降级写入结果;

30、根据所述写入结果或所述降级写入结果生成双写状态标识,得到双写状态。

31、在一实施例中,所述对所述密文字段进行解密以及脱敏,得到脱敏值,并通过所述加密策略将所述脱敏值写入所述原始数据字段对应的原字段,得到加密存储结果的步骤包括:

32、读取所述密文字段得到对应的密文数据,通过解密算法对所述密文数据进行解密,得到明文数据;

33、对所述明文数据进行脱敏处理,得到脱敏值;

34、将所述脱敏值写入所述原始数据字段对应的原字段,得到加密存储结果。

35、此外,为实现上述目的,本技术还提出一种敏感数据加密存储装置,所述敏感数据加密存储装置包括:

36、配置模块,用于对原始数据字段进行白名单配置,得到待加密字段列表以及所述待加密字段列表的生命周期状态;

37、改写模块,用于根据所述待加密字段列表进行加密策略选取,得到加密策略,并根据所述加密策略对原始sql查询语句进行语法树解析以及改写,得到改写后的sql语句;

38、迁移模块,用于根据所述改写后的sql语句以及所述待加密字段列表的生命周期状态,通过加密生命周期状态机对所述待加密字段列表进行数据迁移,得到迁移完成的密文字段;

39、加密模块,用于对所述密文字段进行解密以及脱敏,得到脱敏值,并通过所述加密策略将所述脱敏值写入所述原始数据字段对应的原字段,得到加密存储结果。

40、此外,为实现上述目的,本技术还提出一种敏感数据加密存储设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的敏感数据加密存储方法的步骤。

41、此外,为实现上述目的,本技术还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的敏感数据加密存储方法的步骤。

42、此外,为实现上述目的,本技术还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如上文所述的敏感数据加密存储方法的步骤。

43、本技术提出的一个或多个技术方案,至少具有以下技术效果:

44、本技术实施例提出的一种敏感数据加密存储方法、装置、设备以及产品,通过对原始数据字段进行白名单配置,得到待加密字段列表以及所述待加密字段列表的生命周期状态;根据所述待加密字段列表进行加密策略选取,得到加密策略,并根据所述加密策略对原始sql查询语句进行语法树解析以及改写,得到改写后的sql语句;根据所述改写后的sql语句以及所述待加密字段列表的生命周期状态,通过加密生命周期状态机对所述待加密字段列表进行数据迁移,得到迁移完成的密文字段;对所述密文字段进行解密以及脱敏,得到脱敏值,并通过所述加密策略将所述脱敏值写入所述原始数据字段对应的原字段,得到加密存储结果。由此,通过白名单配置与加密策略选取的联动,实现了按需灵活适配,打破功能割裂的局限,随后通过sql语法树解析与改写,使加密后的字段仍可被正常查询,保障查询完整性,紧接着通过加密生命周期状态机驱动数据迁移,为迁移过程提供容错能力,确保业务连续性,最后通过对密文解密后脱敏回写至原字段,使数据库层面不再暴露真实明文,从根本上保障数据安全性,解决了现有数据加密技术功能割裂且缺乏容错机制,无法同时保障业务连续性、查询完整性以及数据安全性的问题,提高了敏感数据加密存储的效率。