本发明涉及云计算,特别涉及一种数据完整性的保护方法、装置、设备及存储介质。
背景技术:
1、在云计算应用系统中,系统中的订单和工单等数据会涉及到计算资源的分配和费用的计量,用户信息和访问控制信息会涉及到用户认证和访问控制的安全性,这些数据一旦被恶意篡改,会给系统带到极大的安全隐患,发生在生产环境中会给客户造成严重的损失,所以系统会要求对关键业务数据进行完整性校验。
2、现有技术中,数据库中数据的完整性校验的处理方式是先逐个修改业务数据表,在业务数据表中增加扩展列用来存储数据的hash(哈希)值,对于特殊要求可能会增加更多的数据列来存储额外的信息,如校验时间和结果;然后去修改相关业务逻辑的代码,如创建数据时计算完整性并同时保存入库;更新数据时先计算校验原数据的hash值,校验通过后执行原有逻辑同时保存新的hash值;删除数据时根据需要决定是否校验hash值之后删除数据。这种处理方式的问题是需要逐个修改业务数据表和业务逻辑代码,完整性的处理逻辑与业务逻辑是耦合在一起的,完整性的计算结果数据与业务数据也是耦合在一起的,功能的扩展性几乎没有,使得在哈希校验数据的范围变更时必须去修改对应的业务数据表和业务逻辑代码。因此,如何能够提供一种数据完整性的校验保护方案,避免完整性校验的处理逻辑与业务数据表耦合的情况,实现完整性保护的哈希校验数据的灵活配置,是现今急需解决的问题。
技术实现思路
1、本发明的目的是提供一种数据完整性的保护方法、装置、设备及计算机可读存储介质,以避免完整性校验的处理逻辑与业务数据表耦合的情况,实现完整性保护的哈希校验数据的灵活配置。
2、为解决上述技术问题,本发明提供一种数据完整性的保护方法,包括:
3、根据获取的关键业务配置信息,获取各业务数据库中的目标业务数据各自对应的目标数据库事件;其中,所述目标业务数据为所述关键业务配置信息中的校验数据信息对应的业务数据,所述校验数据信息包括哈希校验字段标识,所述目标数据库事件的事件类型为预设完整性保护事件,所述预设完整性保护事件包括创建事件、更新事件和删除事件中的至少一项;
4、根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取完整性校验结果;其中,所述关键字段为业务数据中相应的哈希校验字段标识对应的字段;
5、根据所述完整性校验结果,存储各所述目标业务数据的数据完整性信息;其中,所述数据完整性信息包括各所述目标业务数据的数据标识和各所述目标业务数据各自对应的哈希值。
6、在一些实施例中,所述根据获取的关键业务配置信息,获取各业务数据库中的目标业务数据各自对应的目标数据库事件,包括:
7、根据所述关键业务配置信息,利用流处理框架的变更数据捕获机制,监听获取各所述业务数据库中的所述目标数据库事件。
8、在一些实施例中,所述根据所述关键业务配置信息,利用流处理框架的变更数据捕获机制,监听获取各所述业务数据库中的所述目标数据库事件,包括:
9、根据所述关键业务配置信息,利用所述流处理框架的变更数据捕获机制对各所述业务数据库的数据变化日志文件进行扫描检测,得到所述目标数据库事件;其中,所述数据变化日志文件为记录数据库中数据变化的日志文件。
10、在一些实施例中,所述根据所述关键业务配置信息,利用流处理框架的变更数据捕获机制,监听获取各所述业务数据库中的所述目标数据库事件之后,还包括:
11、利用所述流处理框架的联合操作,生成所述目标数据库事件对应的数据库事件流;
12、所述根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取完整性校验结果,包括:
13、根据各所述目标数据库事件的事件类型,对所述数据库事件流中各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取所述完整性校验结果。
14、在一些实施例中,所述校验数据信息包括各所述目标业务数据各自对应的业务类型标识、哈希校验字段标识、业务数据库地址、业务数据标识位置信息和完整性存储控制信息。
15、在一些实施例中,所述完整性存储控制信息包括原始数据记录控制标识、原始数据加密标识和所述预设完整性保护事件对应的校验事件标识中的至少一项。
16、在一些实施例中,所述业务数据标识位置信息包括各所述目标业务数据各自对应的业务数据表的表名称和表内业务数据标识存储位置。
17、在一些实施例中,所述业务类型标识为业务模型的类型信息。
18、在一些实施例中,所述关键业务配置信息还包括各所述目标业务数据各自对应的数据库连接信息;其中,所述数据库连接信息包括数据库连接账号和数据库连接密码。
19、在一些实施例中,所述数据库连接密码以预设加密方式进行加密存储。
20、在一些实施例中,所述关键业务配置信息存储在关键业务数据配置表中,所述关键业务数据配置表中的每个表项存储一个所述目标业务数据对应的关键业务配置信息。
21、在一些实施例中,所述数据完整性信息存储在完整性存储表中,所述完整性存储表中的每个表项存储一个所述目标业务数据对应的数据完整性信息。
22、在一些实施例中,所述数据完整性信息存储在所述业务数据库之外的数据库中。
23、在一些实施例中,所述根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取完整性校验结果,包括:
24、根据消息队列中的用户正常操作触发的用户操作事件,对各所述目标数据库事件进行合法性检测,获取各所述目标数据库事件各自对应的合法性检测结果;
25、根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取哈希值校验结果;
26、根据所述合法性检测结果和所述哈希值校验结果,获取所述完整性校验结果。
27、在一些实施例中,所述预设完整性保护事件包括创建事件、更新事件和删除事件,所述数据完整性信息包括各所述目标数据库事件各自对应的目标业务数据的业务数据标识、当前业务数据、前一业务数据和污染状态信息。
28、在一些实施例中,所述根据消息队列中的用户正常操作触发的用户操作事件,对各所述目标数据库事件进行合法性检测,获取各所述目标数据库事件各自对应的合法性检测结果,包括:
29、利用流处理框架的双流连接函数,根据所述用户操作事件和所述目标数据库事件的业务数据标识,按预设时间间隔对用户操作事件流和数据库事件流进行合并,得到目标事件流;其中,所述用户操作事件流为所述用户操作事件对应的事件流,所述数据库事件流为所述目标数据库事件对应的事件流,所述目标事件流包括所述目标数据库事件和各所述目标数据库事件各自对应的用户操作事件连接信息,所述用户操作事件连接信息包括连接到用户操作事件和未连接到用户操作事件;
30、根据所述目标事件流中的各所述目标数据库事件各自对应的用户操作事件连接信息,确定各所述目标数据库事件的各自对应的合法性检测结果。
31、在一些实施例中,所述根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取哈希值校验结果,包括:
32、根据各所述目标数据库事件各自的事件类型和合法性检测结果,对所述数据库事件流中各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取哈希值校验结果。
33、在一些实施例中,所述预设完整性保护事件包括创建事件、更新事件和删除事件,所述关键业务配置信息中的校验事件标识包括创建事件、更新事件和删除事件的标识时,所述根据各所述目标数据库事件各自的事件类型和合法性检测结果,对所述数据库事件流中各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取哈希值校验结果,包括:
34、若当前目标数据库事件的事件类型为创建事件或删除事件,则确定当前目标数据库事件的哈希值校验结果为不进行数据哈希值校验;其中,当前目标数据库事件为任一所述目标数据库事件;
35、若当前目标数据库事件的事件类型为更新事件,且当前目标数据库事件的合法性检测结果为非法,则确定当前目标数据库事件的哈希值校验结果为不进行数据哈希值校验;
36、若当前目标数据库事件的事件类型为更新事件,且当前目标数据库事件的合法性检测结果为合法,则根据计算得到的当前目标数据库事件的更新前业务数据中的关键字段对应的哈希值与当前目标数据库事件对应的数据完整性信息中的哈希值的比较,确定当前目标数据库事件的哈希值校验结果。
37、在一些实施例中,所述根据所述完整性校验结果,存储各所述目标业务数据的数据完整性信息,包括:
38、若当前目标数据库事件的事件类型为创建事件,则存储当前目标业务数据的数据完整性信息;其中,当前目标业务数据为当前目标数据库事件对应的目标业务数据,当前目标业务数据的数据完整性信息包括当前目标业务数据的业务数据标识、计算得到的当前目标数据库事件中业务数据的关键数据对应的哈希值、当前目标数据库事件中业务数据和污染状态信息;若当前目标数据库事件的合法性检测结果为合法,则当前目标业务数据的数据完整性信息中的污染状态信息为0;若当前目标数据库事件的合法性检测结果为非法,则当前目标业务数据的数据完整性信息中的污染状态信息为1;
39、若当前目标数据库事件的事件类型为删除事件,则在当前目标数据库事件的合法性检测结果为合法时,删除当前目标业务数据的数据完整性信息;在当前目标数据库事件的合法性检测结果为非法时,更新当前目标业务数据的数据完整性信息;其中,当前目标业务数据的数据完整性信息包括当前目标业务数据的业务数据标识、当前目标数据库事件删除前的业务数据和污染状态信息;当前目标业务数据的数据完整性信息中的污染状态信息为当前目标数据库事件之前记录最大的污染状态信息+1;
40、若当前目标数据库事件的事件类型为更新事件且当前目标业务数据最新的污染状态信息为0,则在当前目标数据库事件的合法性检测结果为合法且当前目标数据库事件的哈希值校验结果为校验通过时,更新当前目标业务数据的数据完整性信息;其中,当前目标业务数据的数据完整性信息包括当前目标业务数据的业务数据标识、计算得到的当前目标数据库事件中业务数据的关键数据对应的哈希值、当前目标数据库事件中业务数据、当前目标数据库事件更新前的业务数据和为0的污染状态信息;
41、若当前目标数据库事件的事件类型为更新事件且当前目标业务数据最新的污染状态信息为0,则在当前目标数据库事件的合法性检测结果为非法或当前目标数据库事件的哈希值校验结果为校验不通过时,增加当前目标业务数据的数据完整性信息;其中,增加的当前目标业务数据的数据完整性信息包括当前目标业务数据的业务数据标识、计算得到的当前目标数据库事件中业务数据的关键数据对应的哈希值、当前目标数据库事件中业务数据、当前目标数据库事件更新前的业务数据和为1的污染状态信息;
42、若当前目标数据库事件的事件类型为更新事件且当前目标业务数据最新的污染状态信息不为0,则增加当前目标业务数据的数据完整性信息;其中,增加的当前目标业务数据的数据完整性信息包括当前目标业务数据的业务数据标识、计算得到的当前目标数据库事件中业务数据的关键数据对应的哈希值、当前目标数据库事件中业务数据、当前目标数据库事件更新前的业务数据和污染状态信息;其中,新增的当前目标业务数据的数据完整性信息中的污染状态信息为当前目标数据库事件之前记录最大的污染状态信息+1。
43、本发明还提供了一种数据完整性的保护装置,包括:
44、事件获取模块,用于根据获取的关键业务配置信息,获取各业务数据库中的目标业务数据各自对应的目标数据库事件;其中,所述目标业务数据为所述关键业务配置信息中的校验数据信息对应的业务数据,所述目标数据库事件的事件类型为预设完整性保护事件,所述预设完整性保护事件包括创建事件、更新事件和删除事件中的至少一项;
45、完整性校验模块,用于根据各所述目标数据库事件的事件类型,对各所述目标数据库事件中业务数据中的关键字段进行哈希值校验,获取完整性校验结果;其中,所述关键字段为业务数据中相应的哈希校验字段标识对应的字段;
46、完整性存储模块,用于根据所述完整性校验结果,存储各所述目标业务数据的数据完整性信息;其中,所述数据完整性信息包括各所述目标业务数据的数据标识和各所述目标业务数据各自对应的哈希值。
47、本发明还提供了一种数据完整性的保护设备,包括:
48、存储器,用于存储计算机程序;
49、处理器,用于执行所述计算机程序时实现如上述所述的数据完整性的保护方法的步骤。
50、此外,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据完整性的保护方法的步骤。
51、本发明所提供的一种数据完整性的保护方法,包括:根据获取的关键业务配置信息,获取各业务数据库中的目标业务数据各自对应的目标数据库事件;其中,目标业务数据为关键业务配置信息中的校验数据信息对应的业务数据,校验数据信息包括哈希校验字段标识,目标数据库事件的事件类型为预设完整性保护事件,预设完整性保护事件包括创建事件、更新事件和删除事件中的至少一项;根据各目标数据库事件的事件类型,对各目标数据库事件中业务数据中的关键字段进行哈希值校验,获取完整性校验结果;其中,关键字段为业务数据中相应的哈希校验字段标识对应的字段;根据完整性校验结果,存储各目标业务数据的数据完整性信息;其中,数据完整性信息包括各目标业务数据的数据标识和各目标业务数据各自对应的哈希值;
52、可见,本发明的有益效果在于通过关键业务配置信息的设置,使得用户能够灵活配置需要进行数据完整性校验的目标业务数据,以及数据完整性校验过程中目标业务数据中进行哈希值校验的关键字段,对完整性校验的处理逻辑与业务数据表进行解耦,实现了完整性保护的哈希校验数据的灵活配置。此外,本发明还提供了一种数据完整性的保护方法、装置、设备及计算机可读存储介质,同样具有上述有益效果。