CN115795565A - 一种日志防篡改方法、装置、设备及存储介质 - Google Patents
一种日志防篡改方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115795565A CN115795565A CN202211658234.6A CN202211658234A CN115795565A CN 115795565 A CN115795565 A CN 115795565A CN 202211658234 A CN202211658234 A CN 202211658234A CN 115795565 A CN115795565 A CN 115795565A
- Authority
- CN
- China
- Prior art keywords
- log
- block
- log block
- hash value
- target
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种日志防篡改方法、装置、设备及存储介质。确定初始日志块的初始哈希值,并将所述初始哈希值记录到所述初始日志块中;根据目标日志块的上一日志块的哈希值和目标日志块的日志内容计算得到目标日志块的哈希值;在目标日志块的哈希值满足预设通过条件的情况下,将目标日志块的上一日志块的哈希值记录目标日志块中;将最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链。通过构建日志链并通过多个日志块协同约束新日志块的加入,提升了记录日志的安全性,降低了日志内容被篡改的风险。
Description
技术领域
本申请涉及数据安全存储技术领域,特别是涉及一种日志防篡改方法、装置、设备及存储介质。
背景技术
随着网络技术与信息技术的飞速发展,我国已经成功迈入信息化时代,各行各业都非常重视信息化建设。在一些行业中,对业务相关的数据尤其是敏感数据进行处理时,需要将所有数据操作相关的日志进行严格记录,保证日志的不可篡改性和准确性。
当前日志记录的方式多是采用日志流的流式日志的格式进行记录,并存储至指定的日志服务器。此种方式的日志记录实现简单,但是并不安全,当日志服务器被攻破时,或人为登录到日志服务器时,很容易就能够对日志文件中的操作记录进行修改。可见当前的日志记录方式安全隐患多,日志内容容易被非法篡改。
发明内容
基于上述问题,本申请提供了一种日志防篡改方法、装置、设备及存储介质,目的是提升记录日志的安全性,降低日志内容被篡改的风险。
本申请实施例公开了如下技术方案:
本申请第一方面提供了一种日志防篡改方法,所述日志包括多个日志片,每个日志片包括多个日志块,所述多个日志块依据生成顺序前后关联,其中初始日志块为所述多个日志块中最早生成的日志块;所述方法包括:
确定所述初始日志块的初始哈希值,并将所述初始哈希值记录到所述初始日志块中;
根据目标日志块的上一日志块的哈希值和所述目标日志块的日志内容,确定所述目标日志块的哈希值;其中,所述目标日志块为所述多个日志块中除所述初始日志块之外的其他日志块中的任一个;
在所述目标日志块的哈希值满足预设通过条件的情况下,将所述目标日志块的上一日志块的哈希值记录到所述目标日志块中;所述预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联;
将所述多个日志块中最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链。
可选地,所述目标日志块的哈希值满足预设通过条件,具体包括:
对所述目标日志块的哈希值进行投票选举,若除所述目标日志块之外的一个或多个其他日志块对所述目标日志块的哈希值认证通过,则确定所述目标日志块的哈希值满足预设通过条件。
可选地,参与投票选举的多个日志块包括所述日志片中除所述目标日志块之外所有已生成的日志块;所述日志片中的各日志块的元数据中均记录有自身的哈希值及自身认证通过的其他日志块的哈希值。
可选地,方法还包括:
对所述日志链进行连通性校验,以查找非法修改的失效日志块。
可选地,所述对所述日志链进行连通性校验,以查找非法修改的失效日志块,具体包括:
根据所述日志链中第一目标日志块的当前日志内容和所述第一目标日志块记录的第二目标日志块的哈希值,计算所述第一目标日志块的当前哈希值;
将所述当前哈希值与第三目标日志块记录的所述第一目标日志块的哈希值进行比较,如果比较结果不一致,则确定所述第一目标日志块为非法修改的失效日志块;
其中,所述第二目标日志块为所述第一目标日志块的上一日志块;所述第一目标日志块为所述第三目标日志块的上一日志块。
可选地,在所述对由所述日志片中所有日志块构成的日志链进行连通性校验之前,还包括:
将本日志块的副本散列至所述日志片中除所述本日志块之外的其他日志块中进行冗余备份;所述本日志块为所述日志片中任一日志块;
所述方法还包括:
若查找到非法修改的失效日志块,则通过所述失效日志块之外的其他日志块中冗余备份的所述失效日志块的副本,恢复所述失效日志块对应的未经修改的日志内容。
可选地,方法还包括:
对于业务系统产生的操作日志按照所属业务模块进行切片,得到多个日志片。
可选地,确定所述初始日志块的初始哈希值,具体包括:
根据所述初始日志块的日志内容和生成所述初始日志块时的时间戳,计算所述初始日志块的初始哈希值。
本申请第二方面提供了一种日志防篡改装置,所述日志包括多个日志片,每个日志片包括多个日志块,所述多个日志块依据生成顺序前后关联,其中初始日志块为所述多个日志块中最早生成的日志块;所述装置包括:
哈希运算模块,用于确定所述初始日志块的初始哈希值;
记录模块,用于将所述初始哈希值记录到所述初始日志块中;
所述哈希运算模块,还用于根据目标日志块的上一日志块的哈希值和所述目标日志块的日志内容,确定所述目标日志块的哈希值;
所述记录模块,还用于在所述目标日志块的哈希值满足预设通过条件的情况下,将所述目标日志块的上一日志块的哈希值记录到所述目标日志块中,以及将所述多个日志块中最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链;所述预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联。
本申请第三方面提供了一种日志防篡改设备,该设备包括:存储器和处理器;
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现前述第一方面提供的日志防篡改方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述第一方面提供的日志防篡改方法的步骤。
相较于现有技术,本申请具有以下有益效果:
本申请技术方案提供了一种日志防篡改方法和相关产品。本方案中以目标日志块的上一日志块的哈希值作为目标日志块的哈希值的计算基础,再将上一日志块的哈希值记录到目标日志块,构建出闭环的日志链,使日志片的每一个日志块都加入日志链,形成稳固的联合状态。如果非法篡改某一日志块的日志内容,则以日志块的哈希值为基础搭建的日志链将会发生断裂。从而,提升对篡改日志的识别力。此外,由于只有在目标日志块的哈希值满足预设通过条件时,才可将目标日志块的上一日志块的哈希值记录到目标日志块,可见预设通过条件作为本方案中日志块加入日志链的必要条件。由于预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联,即表示目标日志块加入日志链需要由其他的一个或多个日志块知情许可,这加强了对于加入日志链的日志块安全性的鉴别力。总体而言,本申请技术方案通过构建日志链并通过其他日志块协同约束新日志块的加入,提升了记录日志的安全性,降低了日志内容被篡改的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种日志防篡改方法的流程图;
图2为本申请实施例提供的一种由日志片中多个日志块构成日志链的示意图;
图3为本申请实施例提供的一种日志片中新生成的日志块加入日志链中的示意图;
图4为本申请实施例提供的另一种日志防篡改方法的流程图;
图5为本申请实施例提供的一种日志防篡改装置的结构示意图;
图6为本申请实施例提供的另一种日志防篡改装置的结构示意图。
具体实施方式
记录的日志一般由日志服务器存储,存在安全隐患。例如当日志服务器被攻破时,或人为登录到日志服务器时,容易发生日志的非法篡改,影响所记录日志的准确性和安全性。为解决以上问题,本申请技术方案中提出可以通过区块链技术将存储日志的日志块连接到日志链中,建立日志块之间的内容关联,进而降低日志被篡改的风险。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,该图为本申请实施例提供的一种日志防篡改方法的流程图。如图1所示的日志防篡改方法包括:
S101、确定初始日志块的初始哈希值,并将初始哈希值记录到初始日志块中。
实际应用中,可以对操作日志进行划分,得到多个日志片。例如,一个业务系统包括多个业务模块,每个业务模块的数据经过操作均可以产生操作日志。为了更加精准地存储记录的日志,方便管理和查询,本申请技术方案中可以对于业务系统产生的操作日志按照所属业务模块进行切片,得到多个日志片。例如,业务模块1的日志存入日志片1中,业务模块2的日志存入日志片2中,业务模块3的日志存入日志片3中,以此类推。
在本申请实施例中,对于日志的防篡改处置方案以单个日志片为单位进行操作。因此为了便于说明,仅以一个日志片为示例进行介绍。每个日志片中随所对应的业务模块的日志数据不断增加,逐渐产生新的日志块。一个日志片中的多个日志块依据生成顺序前后关联。日志块的容量可以根据系统性能进行配置,不同日志片的日志块的容量可以是相同的,也可以是不同的。作为示例,配置某日志片的单个日志块容量为100M,此处对配置的单个日志块容量不做限定。
本申请实施例中将一个日志片的多个日志块中最早产生的日志块定义为初始日志块。作为日志片的初始日志块,其哈希值称为初始哈希值。初始哈希值的计算方式与随后产生的其他日志块的哈希值计算方式不同。在本申请实施例中,可以根据初始日志块的日志内容和生成初始日志块时的时间戳,计算初始日志块的初始哈希值。由于初始日志块的初始哈希值仅仅取决于自身的日志内容和生成初始日志块的时间戳,因此,在正常情况下,初始哈希值应当自初始日志块生成后不再发生变化,也不受其他日志块的影响。
S102、根据目标日志块的上一日志块的哈希值和目标日志块的日志内容,确定目标日志块的哈希值。
目标日志块为日志片的多个日志块中除了初始日志块之外的其他日志块中任一个。S102描述了目标日志块的哈希值的确定方式。为了便于理解下面结合附图进行说明。图2为本申请实施例提供的一种由日志片中多个日志块构成日志链的示意图。图2展示的日志片中按照生成顺序包括日志块1,日志块2和日志块3。其中,日志块1作为该日志片中的初始日志块,其初始哈希值表示为hash1。本申请实施例中,除了初始日志块,同一日志片中的其余日志块均是根据本日志块的日志内容和上一日志块的哈希值来计算得到本日志块的哈希值。以图2为例,对日志块2的日志内容和hash1计算得到日志块2的哈希值,以hash2表示;对日志块3的日志内容和hash2计算得到日志块3的哈希值,以hash3表示。由于哈希运算属于比较成熟的技术,故本步骤中对于哈希运算的具体过程不做赘述。
本申请实施例中,通过上述日志块哈希值的计算方式,构建出前后相邻生成的日志块之间内容的关联性。举例而言,日志块2和日志块3是前后相邻生成的两个日志块,hash2是基于日志块2的自身日志内容计算得到的,故hash2与日志块2的日志内容关联;hash3是基于hash2和日志块3的日志内容计算得到的,因此hash3不但间接与日志块2的内容关联,还与日志块3的日志内容关联。由于hash2也是基于hash1计算得到的,故hash3还与日志块1的日志内容关联。以此类推。可见,一旦某个日志块的日志内容发生变化,则日志块的日志内容影响自身哈希值的计算并间接影响此后的日志块的哈希值计算。以上日志块哈希值的计算方式主要目的是构建一条闭环的日志链。关于日志链的构建,结合以下步骤S103-S106进行进一步的介绍。
S103、判断目标日志块的哈希值是否满足预设通过条件,如果是,则进入S104,如果否,则进入S106。
本申请实施例中采用预设通过条件约束本日志片中除初始日志块之外的其他日志块加入日志链。可以理解的是,加入日志链的顺序与日志块的生成顺序一致,例如日志块1、日志块2、日志块3相继生成,则加入日志链的顺序为日志块1、日志块2、日志块3。一个日志块能够加入日志链的前提是其上一日志块已加入到日志链中。
本步骤以目标日志块为示例进行介绍。
预设通过条件与日志片中除目标日志块之外的一个或者多个其他日志块关联,如果本日志块的哈希值能够满足预设通过条件,则表示可以将上一日志块的哈希值记录到本日志块中,从而成功构建上一日志块与本日志块的相互关联关系,使本日志块加入到日志链中,参见步骤S104。反之,如果本日志块的哈希值无法满足预设通过条件,则表示本日志块的哈希值无法得到与预设通过条件关联的日志块的认证。此时,不允许将本日志块加入到日志链中,参见S106。
在可能的实现方式中,确定目标日志块的哈希值满足预设通过条件具体可以参照如下方式执行:
对目标日志块的哈希值进行投票选举,若与预设通过条件关联的日志块(除所述目标日志块之外的一个或多个其他日志块,其参与选举)对目标日志块的哈希值认证通过,则确定目标日志块的哈希值满足预设通过条件。此处,与预设通过条件关联的日志块,可以是目标日志块所在的日志片中的部分日志块,也可以是日志片中除了本日志块以外的其余所有的日志块。在可选实施例中,当参与选举的为部分日志块时,要求部分日志块的数量占据日志片已经生成的所有日志块的50%以上,一方面提升判断速度,另一方面通过选举投票保障日志链的安全性。
S104、将目标日志块的上一日志块的哈希值记录到目标日志块中。
当依照上述步骤依次在新的日志块中记录上一日志块的哈希值,即完成将各个日志块加入日志链。为了构建一个闭环的日志链,本申请实施例中还进一步地提出,执行S105将日志片中最新生成的日志块的哈希值记录到初始日志块中,参见图2中加粗的箭头所示,以日志块3作为最新生成的日志块,hash3记录到日志块1(即初始日志块)中。结合图2中的箭头所示,在先生成的日志块的哈希值记录到在后生成的下一日志块中,最新生成的日志块的哈希值记录到初始日志块中,构建出完整的闭环的日志链,参见S105。
S105、将多个日志块中最新生成的日志块的哈希值记录到初始日志块中,构成日志链。
需要说明的是,随着记录的日志量的不断增加,日志片可能不断生成新的日志块。例如,在生成图2所示的日志块3之后,又进一步生成了图3所示的日志块4。图3为本申请实施例提供的一种日志片中新生成的日志块加入日志链中的示意图。如此,最新生成的日志块从图2所示阶段的日志块3变为了图3所示的日志块4。随着最新生成的日志块的变化,对于本步骤执行的操作,也会随之将最新生成的日志块的哈希值记录到初始日志块(图3所示的日志块1)中。如图3所示,在日志块4加入到日志链后,将日志块4的哈希值hash4记录到日志块1中。
通过上文介绍的生成目标日志块的哈希值的实现方式,以及将前后生成的相邻两个日志块中在前的一个日志块的哈希值记录到在后的一个日志块中,使日志链中不断有新生成的日志块加入。通过将最新生成的日志块的哈希值记录到初始日志块,实现最新生成的日志块与初始日志块的通畅连接,将日志链构建为一个闭环,提升日志链的安全系数。
S106、拒绝将目标日志块的上一日志块的哈希值记录到目标日志块。
以上即为本申请实施例介绍的一种日志防篡改方法。该方法中,具体描述了一种应用区块链技术通过日志链将日志片中各个日志块相互关联的实现方案。确定初始日志块的初始哈希值,并将所述初始哈希值记录到所述初始日志块中;根据目标日志块的上一日志块的哈希值和目标日志块的日志内容计算得到目标日志块的哈希值;在目标日志块的哈希值满足预设通过条件的情况下,将目标日志块的上一日志块的哈希值记录目标日志块中;将最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链。
本方案中以目标日志块的上一日志块的哈希值作为目标日志块的哈希值的计算基础,再将上一日志块的哈希值记录到目标日志块,构建出闭环的日志链,使日志片的每一个日志块都加入日志链,形成稳固的联合状态。如果非法篡改某一日志块的日志内容,则以日志块的哈希值为基础搭建的日志链将会发生断裂。从而,提升对篡改日志的识别力。此外,由于只有在目标日志块的哈希值满足预设通过条件时,才可将目标日志块的上一日志块的哈希值记录到目标日志块,可见预设通过条件作为本方案中日志块加入日志链的必要条件。由于预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联,即表示目标日志块加入日志链需要由其他的一个或多个日志块知情许可,这加强了对于加入日志链的日志块安全性的鉴别力。总体而言,本申请技术方案通过构建日志链并通过其他日志块协同约束新日志块的加入,提升了记录日志的安全性,降低了日志内容被篡改的风险。
前面提到,在判定是否允许将目标日志块的上一日志块的哈希值记录到目标日志块时(即判定是否能够将目标日志块加入到日志链时),可以由目标日志块之外的一个或多个其他日志块对目标日志块的哈希值进行选举投票。在一种可能的实现方式中,日志片中的各日志块的元数据中均记录有自身的哈希值及自身认证通过的其他日志块的哈希值。例如,日志块3元数据记录有日志块1的哈希值hash1,日志块2的哈希值hash2,以及日志块3的哈希值hash3。当存在新生成的日志块4并对日志块4的hash4进行满足预设通过条件的判定时,日志块1-3可以分别依据自身元数据记录的hash3和日志块4的日志内容计算得到哈希值,并将自身计算得到的哈希值与hash4进行比较,如果比较结果均一致,则可以确定日志块4的哈希值通过了预设通过条件,均对其认证通过,可以将日志块3的哈希值hash3记录到日志块4中。
在形成日志链后,为了及时判别日志链中是否发生日志的非法篡改情况,本申请实施例进一步介绍了一种通过连通性校验识别失效日志块的技术方案。下面结合实施例进行介绍。
图4为本申请实施例提供的另一种日志防篡改方法的流程图。如图4所示的技术方案中,包括以下步骤:
S401、确定初始日志块的初始哈希值,并将初始哈希值记录到初始日志块中。
S402、根据目标日志块的上一日志块的哈希值和目标日志块的日志内容,确定目标日志块的哈希值。
S403、在目标日志块的哈希值满足预设通过条件的情况下,将目标日志块的上一日志块的哈希值记录到目标日志块中。
S404、将多个日志块中最新生成的日志块的哈希值记录到初始日志块中,构成日志链。
以上步骤S401-S404的实现方式已在前述实施例做过介绍,此处不再赘述。
S405、对于日志链中的任一日志块,将本日志块的副本散列至日志片中除本日志块之外的其他日志块中进行冗余备份。
本申请实施例中,为了便于对日志块的日志内容进行准确恢复,在日志块加入到日志链后,将日志块的副本散列至其他的日志块中进行冗余备份。作为示例,每个日志块配置2个副本,例如日志块3的副本散列至日志块1和日志块2中。从而便于在识别到日志块3发生篡改问题后,对其被篡改前的日志内容进行准确恢复,避免影响业务模块的操作日志的记录。
本步骤中对于散列的副本的位置不做限定。可以按照一定的规律进行散列,也可以随机地散列。作为示例,将本日志块的副本散列至其上一个日志块和上上个日志块。
S406、对日志链进行连通性校验,以查找非法修改的失效日志块。
当日志链上的所有日志块的副本均已散列完毕,便可以执行本步骤,进行对日志链的连通性校验,校验目的是查找被非法修改(即篡改)的日志块,由于此类日志块在日志内容上遭到篡改,已经无法无其后的日志块顺利关联,造成了日志链的断裂,因此本申请实施例中此类日志块称为失效日志块,表示此类日志块的日志内容不可信。
以下结合示例介绍对日志链进行连通性校验的实现方式。在此示例中具体涉及到第一目标日志块、第二目标日志块和第三目标日志块。其中,第二目标日志块为第一目标日志块的上一日志块,第一目标日志块为第三目标日志块的上一日志块。即按照生成的先后顺序依次为:第二目标日志块、第一目标日志块及第三目标日志块。
在对由日志片中所有日志块构成的日志链进行连通性校验时,具体包括:
根据日志链中第一目标日志块的当前日志内容和第一目标日志块记录的第二目标日志块的哈希值,计算第一目标日志块的当前哈希值。将当前哈希值与第三目标日志块记录的第一目标日志块的哈希值进行比较,如果比较结果不一致,则表明第一目标日志块的日志内容存在修改。正常情况下,日志内容不应当被修改。由此,可以确定第一目标日志块为非法修改的失效日志块。以此类推,可以对日志链整体的连通性进行校验。当然,由于各个日志块元数据均存有其他日志块及自身的哈希值,因此,当需要验证第一目标日志块是否为失效日志块时,也可以根据其他的日志块元数据中第一日志块的哈希值参与比较对照。
S407、若查找到非法修改的失效日志块,则通过失效日志块之外的其他日志块中冗余备份的失效日志块的副本,恢复失效日志块对应的未经修改的日志内容。
在本申请实施例中,如果查找到失效日志块,为了保障日志链中日志内容的准确性,可以通过预先冗余备份的该失效日志块的副本,恢复其未经修改的日志内容。一方面,实现了对于副本的有效利用,另一方面从业务系统的日志的准确记录层面也得到了保障。
在本申请技术方案中,由于日志链的建立,若要在无所察觉的情况下进行日志块的内容的恶意篡改,必须要掌握全部的日志块才可进行修改操作,增加了非法修改并不被识别出的难度,保证日志的安全性。这是因为如果要对某一个日志块中的日志进行修改就必然会导致日志块hash值的变更,同时导致整个日志链后续所有日志块的hash值变更,如果不变更后续hash值就会导致日志链的断裂,导致当前日志块的失效,所以恶意篡改日志几乎不可实现,保证了日志的不可篡改性。此外,通过实时连通性校验和日志冗余的机制确保日志块被恶意修改后可恢复,保证了日志的准确性。
基于前述实施例提供的日志防篡改方法,相应地,本申请还提供了一种日志防篡改装置。日志包括多个日志片,每个日志片包括多个日志块,所述多个日志块依据生成顺序前后关联,其中初始日志块为所述多个日志块中最早生成的日志块。图5为本申请实施例提供的一种日志防篡改装置的结构示意图。如图5所示,日志防篡改装置包括:
哈希运算模块501,用于确定所述初始日志块的初始哈希值。
记录模块502,用于将初始哈希值记录到初始日志块中。
哈希运算模块501,还用于根据目标日志块的上一日志块的哈希值和所述目标日志块的日志内容,确定所述目标日志块的哈希值。
记录模块502,还用于在所述目标日志块的哈希值满足预设通过条件的情况下,将所述目标日志块的上一日志块的哈希值记录到所述目标日志块中,以及将所述多个日志块中最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链。
其中,所述预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联。
本方案中以目标日志块的上一日志块的哈希值作为目标日志块的哈希值的计算基础,再将上一日志块的哈希值记录到目标日志块,构建出闭环的日志链,使日志片的每一个日志块都加入日志链,形成稳固的联合状态。如果非法篡改某一日志块的日志内容,则以日志块的哈希值为基础搭建的日志链将会发生断裂。从而,提升对篡改日志的识别力。此外,由于只有在目标日志块的哈希值满足预设通过条件时,才可将目标日志块的上一日志块的哈希值记录到目标日志块,可见预设通过条件作为本方案中日志块加入日志链的必要条件。由于预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联,即表示目标日志块加入日志链需要由其他的一个或多个日志块知情许可,这加强了对于加入日志链的日志块安全性的鉴别力。总体而言,本申请技术方案通过构建日志链并通过其他日志块协同约束新日志块的加入,提升了记录日志的安全性,降低了日志内容被篡改的风险。
在可选的实现方式中,记录模块502具体用于:
对所述目标日志块的哈希值进行投票选举,若除所述目标日志块之外的一个或多个其他日志块对所述目标日志块的哈希值认证通过,则确定所述目标日志块的哈希值满足预设通过条件。
在可选的实现方式中,参与投票选举的多个日志块包括所述日志片中除所述目标日志块之外所有已生成的日志块;所述日志片中的各日志块的元数据中均记录有自身的哈希值及自身认证通过的其他日志块的哈希值。
在可选的实现方式中,哈希运算模块501具体用于:根据所述初始日志块的日志内容和生成所述初始日志块时的时间戳,计算所述初始日志块的初始哈希值。
图6为本申请实施例提供的另一种日志防篡改装置的结构示意图。在该装置中包含上述提及的哈希运算模块501和记录模块502,还进一步地包括:
校验模块503,用于对日志链进行连通性校验,以查找非法修改的失效日志块。
在可选的实现方式中,校验模块503具体用于:
根据所述日志链中第一目标日志块的当前日志内容和所述第一目标日志块记录的第二目标日志块的哈希值,计算所述第一目标日志块的当前哈希值;
将所述当前哈希值与第三目标日志块记录的所述第一目标日志块的哈希值进行比较,如果比较结果不一致,则确定所述第一目标日志块为非法修改的失效日志块;
其中,所述第二目标日志块为所述第一目标日志块的上一日志块;所述第一目标日志块为所述第三目标日志块的上一日志块。
在可选的实现方式中,日志防篡改装置还包括:
备份模块504,用于将本日志块的副本散列至所述日志片中除本日志块之外的其他日志块中进行冗余备份;所述本日志块为所述日志片中任一日志块;
日志防篡改装置还包括:
恢复模块505,用于若查找到非法修改的失效日志块,则通过所述失效日志块之外的其他日志块中冗余备份的所述失效日志块的副本,恢复所述失效日志块对应的未经修改的日志内容。
在可选的实现方式中,日志防篡改装置还包括:
日志切片模块,用于对于业务系统产生的操作日志按照所属业务模块进行切片,得到多个日志片。
本申请还进一步提供一种日志防篡改设备,该设备包括:存储器和处理器。
存储器,其上存储有计算机程序。
处理器,用于执行存储器中的计算机程序,以实现前述实施例介绍的日志防篡改方法中部分或者全部的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述实施例介绍的日志防篡改方法中部分或者全部的步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (11)
1.一种日志防篡改方法,其特征在于,所述日志包括多个日志片,每个日志片包括多个日志块,所述多个日志块依据生成顺序前后关联,其中初始日志块为所述多个日志块中最早生成的日志块;所述方法包括:
确定所述初始日志块的初始哈希值,并将所述初始哈希值记录到所述初始日志块中;
根据目标日志块的上一日志块的哈希值和所述目标日志块的日志内容,确定所述目标日志块的哈希值;其中,所述目标日志块为所述多个日志块中除所述初始日志块之外的其他日志块中的任一个;
在所述目标日志块的哈希值满足预设通过条件的情况下,将所述目标日志块的上一日志块的哈希值记录到所述目标日志块中;所述预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联;
将所述多个日志块中最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链。
2.根据权利要求1所述的日志防篡改方法,其特征在于,所述目标日志块的哈希值满足预设通过条件,具体包括:
对所述目标日志块的哈希值进行投票选举,若除所述目标日志块之外的一个或多个其他日志块对所述目标日志块的哈希值认证通过,则确定所述目标日志块的哈希值满足预设通过条件。
3.根据权利要求2所述的日志防篡改方法,其特征在于,参与投票选举的多个日志块包括所述日志片中除所述目标日志块之外所有已生成的日志块;所述日志片中的各日志块的元数据中均记录有自身的哈希值及自身认证通过的其他日志块的哈希值。
4.根据权利要求1-3任一项所述的日志防篡改方法,其特征在于,还包括:
对所述日志链进行连通性校验,以查找非法修改的失效日志块。
5.根据权利要求4所述的日志防篡改方法,其特征在于,所述对所述日志链进行连通性校验,以查找非法修改的失效日志块,具体包括:
根据所述日志链中第一目标日志块的当前日志内容和所述第一目标日志块记录的第二目标日志块的哈希值,计算所述第一目标日志块的当前哈希值;
将所述当前哈希值与第三目标日志块记录的所述第一目标日志块的哈希值进行比较,如果比较结果不一致,则确定所述第一目标日志块为非法修改的失效日志块;
其中,所述第二目标日志块为所述第一目标日志块的上一日志块;所述第一目标日志块为所述第三目标日志块的上一日志块。
6.根据权利要求4所述的日志防篡改方法,其特征在于,在所述对由所述日志片中所有日志块构成的日志链进行连通性校验之前,还包括:
将本日志块的副本散列至所述日志片中除所述本日志块之外的其他日志块中进行冗余备份;所述本日志块为所述日志片中任一日志块;
所述方法还包括:
若查找到非法修改的失效日志块,则通过所述失效日志块之外的其他日志块中冗余备份的所述失效日志块的副本,恢复所述失效日志块对应的未经修改的日志内容。
7.根据权利要求1-3、5-6中任一项所述的日志防篡改方法,其特征在于,还包括:
对于业务系统产生的操作日志按照所属业务模块进行切片,得到多个日志片。
8.根据权利要求1-3、5-6中任一项所述的日志防篡改方法,其特征在于,确定所述初始日志块的初始哈希值,具体包括:
根据所述初始日志块的日志内容和生成所述初始日志块时的时间戳,计算所述初始日志块的初始哈希值。
9.一种日志防篡改装置,其特征在于,所述日志包括多个日志片,每个日志片包括多个日志块,所述多个日志块依据生成顺序前后关联,其中初始日志块为所述多个日志块中最早生成的日志块;所述装置包括:
哈希运算模块,用于确定所述初始日志块的初始哈希值;
记录模块,用于将所述初始哈希值记录到所述初始日志块中;
所述哈希运算模块,还用于根据目标日志块的上一日志块的哈希值和所述目标日志块的日志内容,确定所述目标日志块的哈希值;
所述记录模块,还用于在所述目标日志块的哈希值满足预设通过条件的情况下,将所述目标日志块的上一日志块的哈希值记录到所述目标日志块中,以及将所述多个日志块中最新生成的日志块的哈希值记录到所述初始日志块中,构成日志链;所述预设通过条件与除所述目标日志块之外的一个或多个其他日志块关联。
10.一种日志防篡改设备,其特征在于,包括:存储器和处理器;
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-8中任一项所述的日志防篡改方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-8中任一项所述的日志防篡改方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211658234.6A CN115795565A (zh) | 2022-12-22 | 2022-12-22 | 一种日志防篡改方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211658234.6A CN115795565A (zh) | 2022-12-22 | 2022-12-22 | 一种日志防篡改方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795565A true CN115795565A (zh) | 2023-03-14 |
Family
ID=85426429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211658234.6A Pending CN115795565A (zh) | 2022-12-22 | 2022-12-22 | 一种日志防篡改方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795565A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117979118A (zh) * | 2024-03-29 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 一种数据流录制方法、装置、记录仪及记录系统 |
-
2022
- 2022-12-22 CN CN202211658234.6A patent/CN115795565A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117979118A (zh) * | 2024-03-29 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 一种数据流录制方法、装置、记录仪及记录系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sivathanu et al. | Ensuring data integrity in storage: Techniques and applications | |
US20180285217A1 (en) | Failover response using a known good state from a distributed ledger | |
Haeberlen et al. | The Case for Byzantine Fault Detection. | |
RU2449358C1 (ru) | Распределенная файловая система и способ управления согласованностью блоков данных в такой системе | |
CN104252500B (zh) | 一种数据库管理平台的故障修复方法和装置 | |
CN108268354A (zh) | 数据安全监控方法、后台服务器、终端及系统 | |
US11354198B2 (en) | Snapshot for world state recovery | |
US11803461B2 (en) | Validation of log files using blockchain system | |
CN114372296B (zh) | 一种基于区块链的用户行为数据审计方法及系统 | |
CN102902926A (zh) | 基于分布式文件同步技术的网站文件防篡改方法 | |
CN111953754B (zh) | 跨链交易方法、电子设备及可读存储介质 | |
CN110088744A (zh) | 一种数据库维护方法及其系统 | |
CN115795565A (zh) | 一种日志防篡改方法、装置、设备及存储介质 | |
CN111625870A (zh) | 基于区块链的安全审计方法、系统及存储介质 | |
CN117150576B (zh) | 一种区块链电子印章的智能验证系统及方法 | |
Han et al. | Fingerprinting the checker policies of parallel file systems | |
CN112019586B (zh) | 用于区块链的验证的方法和系统 | |
CN116956283A (zh) | 基于文件同步的服务器端文件防篡改方法、系统及设备 | |
CN117370970A (zh) | 基于随机故障注入的故障攻击保护方法 | |
CN109951527B (zh) | 面向虚拟化系统的hypervisor完整性检测方法 | |
CN116467388A (zh) | 一种基于区块链的共享文件一致性维护系统及方法 | |
CN113378239B (zh) | 一种数据内容确权方法及系统 | |
JP7325318B2 (ja) | 証跡記録システム及びデータ検証方法 | |
CN112256305B (zh) | 一种区块链软件更新方法及系统 | |
CN109583204B (zh) | 一种混合环境下静态对象篡改的监测方法 |
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 |