System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据安全,更具体的说是涉及一种可自由配置的结构化数据指纹生成方法与系统。
技术介绍
1、在信息
,数据自身的安全性至关重要。尤其在数据完整性与不可篡改方面,是众多业务数字化系统中必须具备的基本能力,特别是结构化业务数据的完整性保障方面,绝大部分信息系统均未提供相关的保护措施。近几年,出现大量法律案件,涉嫌系统维护人员在后台违规修改了用户数据、交易数据、日志数据、业务数据、行为数据等,在执法机关进行行为追溯时,发现无法甄别数据是否被篡改、数据本身是否完整,给办案带来了一系列问题。
2、如果要做到重要数据完整性保护,主流的作法是在每个需要保护的数据表中增加数据指纹列,再通过代码实现对单行数据的指纹生成与保存,这样当某字段数据被修改后,会出现整行数据与指纹列数据不匹配的情况。但是,此类方法效率低、灵活性差、且具有业务侵入性(即每个业务系统都需要有类似的指纹生成机制、代码逻辑等),一方面给业务开发人员带来了不便,另一方面容易带来业务系统bug,且缺乏对业务数据项变更时的自适应能力因此,如何在不侵入原业务系统代码与数据库表的情况下,实现数据指纹生成和验证是本领域技术人员亟需解决的问题。
技术实现思路
1、有鉴于此,本专利技术提供了一种可自由配置的结构化数据指纹生成与验证方法及系统,克服了上述缺陷。
2、为了实现上述目的,本专利技术采用如下技术方案:
3、一种可自由配置的结构化数据指纹生成与验证方法,具体步骤为:
4、指纹规则
5、对目标数据库进行指纹生成规则配置,并将所述指纹生成规则写入配置表;
6、指纹生成方法:
7、基于所述目标数据库获取目标数据,并对所述目标数据进行实时感知,提取更新数据;
8、基于所述更新数据利用所述指纹生成规则获得生成指纹,并将所述生成指纹和指纹生成时间写入指纹表中;
9、指纹验证方法:
10、根据验证目标数据在所述指纹表中检索对应的所述生成指纹和所述指纹生成时间;
11、根据所述验证目标数据提取对应的用于生成指纹的业务数据;
12、基于所述业务数据和所述指纹生成时间使用所述指纹生成规则生成验证指纹;
13、将所述验证指纹与所述生成指纹进行对比,获得验证结果。
14、可选地,所述配置表的表结构包括:配置id、第一数据库、第一表名、需要纳入保护的数据列信息、指纹算法、保密salt值、数据篡改检查周期、数据更新感知方式。
15、可选地,所述指纹表的表结构包括指纹id、第二数据库、第二表名、表记录、指纹、所述指纹生成时间。
16、可选地,所述生成指纹的获取步骤为:
17、根据所述指纹生成规则获取所述更新数据的各个字段数据;
18、并对各个所述字段数据进行排列、连接形成字符串d;
19、根据所述字符串d、所述保密salt值以及服务器当前时间戳获得指纹生成数据;
20、利用所述指纹算法根据所述指纹生成数据获得所述生成指纹。
21、可选地,所述生成指纹的表达式为:
22、fp=fp(sort(c1,c2,c3...)+salt+ts),h);
23、式中,fp为指纹生成算法调用函数;h为指纹生成算法;sort为根据列排序数据函数;salt为随机字符串;ts为服务器当前时间戳。
24、可选地,所述验证目标数据包括数据库、表名和所述表记录。
25、可选地,还包括指纹生成规则更新,具体步骤为:
26、对所述目标数据进行全量指纹验证,若验证成功,配置更新指纹生成规则,并对应生成更新指纹,若验证失败,则沿用所述指纹生成规则。
27、一种可自由配置的结构化数据指纹生成与验证系统,包括:指纹配置管理模块、数据更新感知模块、指纹数据生成模块、指纹数据管理模块和指纹数据验证模块;
28、所述指纹配置管理模块,用于对目标数据库进行指纹生成规则的配置或更新;
29、所述数据更新感知模块,用于根据所述目标数据库获取目标数据,并对所述目标数据进行实时感知,提取更新数据;
30、所述指纹数据生成模块,用于根据所述更新数据使用所述指纹生成规则获得生成指纹数据;
31、所述指纹数据管理模块,用于对所述生成指纹数据进行入库或查询;
32、所述指纹数据验证模块,用于根据验证目标数据获得对应的所述生成指纹数据和用于生成指纹的业务数据,并根据所述业务数据获得验证指纹;对所述验证指纹与所述生成指纹数据进行对比,获得验证结果。
33、可选地,所述数据更新感知模块采用sdk、数据库触发器和数据库日志任意一种感知方式。
34、可选地,所述指纹数据验证模块还包括定期篡改检测模块,用于对所述目标数据进行定期检测。
35、经由上述的技术方案可知,本专利技术公开提供了一种可自由配置的结构化数据指纹生成与验证方法及系统,与现有技术相比,具有以下有益效果:
36、1、本专利技术公开的是一种独立于业务系统的指纹系统,不侵入、无代码,对于业务开发人员来说是完全无感的;
37、2、灵活的规则配置策略,具备强大的需求适配性,可满足几乎所有业务系统要求;
38、3、周期性常态化检测异常篡改数据,及时发现隐患,规避法律风险;
39、4、可适用于redis\neo4j\mongodb类似的非结构化、文档型、键值对型数据库,具有良好的延展性。
本文档来自技高网...【技术保护点】
1.一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,具体步骤为:
2.根据权利要求1所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述配置表的表结构包括:配置ID、第一数据库、第一表名、需要纳入保护的数据列信息、指纹算法、保密Salt值、数据篡改检查周期、数据更新感知方式。
3.根据权利要求1所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述指纹表的表结构包括指纹ID、第二数据库、第二表名、表记录、指纹、所述指纹生成时间。
4.根据权利要求2所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述生成指纹的获取步骤为:
5.根据权利要求4所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述生成指纹的表达式为:
6.根据权利要求3所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述验证目标数据包括数据库、表名和所述表记录。
7.根据权利要求1所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,还包括指纹生成规则
8.一种可自由配置的结构化数据指纹生成与验证系统,其特征在于,包括:指纹配置管理模块、数据更新感知模块、指纹数据生成模块、指纹数据管理模块和指纹数据验证模块;
9.根据权利要求8所述的一种可自由配置的结构化数据指纹生成与验证系统,其特征在于,所述数据更新感知模块采用SDK、数据库触发器和数据库日志任意一种感知方式。
10.根据权利要求8所述的一种可自由配置的结构化数据指纹生成与验证系统,其特征在于,所述指纹数据验证模块还包括定期篡改检测模块,用于对所述目标数据进行定期检测。
...【技术特征摘要】
1.一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,具体步骤为:
2.根据权利要求1所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述配置表的表结构包括:配置id、第一数据库、第一表名、需要纳入保护的数据列信息、指纹算法、保密salt值、数据篡改检查周期、数据更新感知方式。
3.根据权利要求1所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述指纹表的表结构包括指纹id、第二数据库、第二表名、表记录、指纹、所述指纹生成时间。
4.根据权利要求2所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述生成指纹的获取步骤为:
5.根据权利要求4所述的一种可自由配置的结构化数据指纹生成与验证方法,其特征在于,所述生成指纹的表达式为:
6.根据权利...
【专利技术属性】
技术研发人员:戴鹏飞,周春姐,
申请(专利权)人:烟台云朵软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。