CN115659417A - 审计日志存储方法、验证方法、装置和计算机设备 - Google Patents
审计日志存储方法、验证方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN115659417A CN115659417A CN202211404827.XA CN202211404827A CN115659417A CN 115659417 A CN115659417 A CN 115659417A CN 202211404827 A CN202211404827 A CN 202211404827A CN 115659417 A CN115659417 A CN 115659417A
- Authority
- CN
- China
- Prior art keywords
- bloom filter
- audit log
- stored
- monotonic
- current
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本申请涉及一种审计日志存储方法、验证方法、装置和计算机设备,应用于信息安全领域,包括:生成待存储审计日志的单调计数信息;将待存储审计日志和单调计数信息插入当前布隆过滤器;当当前布隆过滤器的存储状态为已存满时,生成当前布隆过滤器对应的签名,并确定当前布隆过滤器在存满状态下的数据信息,将数据信息插入根布隆过滤器中;从可信计算环境中移除当前布隆过滤器,并创建新的当前布隆过滤器,将新的当前布隆过滤器存储至可信计算环境中,并获取下一个待存储审计日志,返回生成待存储日志的单调计数信息的步骤。采用本方法能够在保证审计日志可信性的基础上,减少了签名次数,便于进行大规模的审计日志的可信存储。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种审计日志存储方法、验证方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
审计日志的安全存储更注重其内容的完整性,而非保密性。为了保护审计日志不会被篡改或重放攻击,通常会对审计日志进行哈希(Hash)计算,并对Hash值进行签名,以确保其完整性。
现有的基于可信计算技术的安全存储,包括审计日志的安全存储,主要采用了受硬件安全芯片保护的私钥对审计日志签名来确保完整性,然而,现有方法在每存储一条审核记录时,都要进行绑定签名,签名次数与审计记录条数相同,审计日志的高频更新将会导致造成签名过于频繁。而若每隔一段时间,对审计日志整体进行绑定签名,那么在最近一次签名后新产生的审计日志内容就可能被篡改,或重放攻击。
因此,不论是日志整体签名方式,还是单条日志签名方式,都不适合大规模审计日志的安全存储。
发明内容
基于此,有必要针对上述日志整体签名方式和单条日志签名方式均不适合大规模审计日志的安全存储的技术问题,提供一种审计日志存储方法、验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种审计日志存储方法。所述方法包括:
获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中,并获取下一个待存储审计日志,返回生成所述待存储日志的单调计数信息的步骤。
在其中一个实施例中,所述将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器,包括:
将所述待存储审计日志与所述单调计数信息形成二元组;
通过预设的哈希函数,对所述二元组进行哈希处理,得到所述二元组对应的哈希值;
基于所述哈希值,确定所述二元组在所述当前布隆过滤器中的存储位置;
将所述存储位置对应的数值标记为预设数值,实现待存储审计日志和所述单调计数信息的存储。
在其中一个实施例中,所述生成所述当前布隆过滤器对应的签名,包括:
获取所述当前布隆过滤器中存储的各个审计日志的单调计数信息;
通过所述可信计算环境对应的签名私钥,对所述各个审计日志的单调计数信息进行签名处理,得到所述当前布隆过滤器对应的签名。
在其中一个实施例中,所述将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器之后,还包括:
确定所述当前布隆过滤器的存储状态;
当所述当前布隆过滤器的存储状态为未存满时,获取下一个待存储审计日志,并返回生成所述待存储日志的单调计数信息的步骤。
在其中一个实施例中,所述新的当前布隆过滤器中存储的第一个审计日志的单调计数信息与所述当前布隆过滤器中存储的最后一个审计日志的单调计数信息相邻。
第二方面,本申请提供了一种审计日志验证方法。所述方法包括:
接收审计终端发送的审计日志验证请求;所述审计日志验证请求携带有待验证的审计日志的单调计数信息;
基于所述单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
若所述当前布隆过滤器中不存在所述单调计数信息对应的审计日志,则基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果;
返回所述验证结果至所述审计终端。
在其中一个实施例中,所述基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果,包括:
基于所述单调计数信息,从存储在所述可信环境之外的布隆过滤器中确定出目标布隆过滤器;
查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果;
当所述目标布隆过滤器中存在所述待验证的审计日志时,确定验证结果为验证通过。
在其中一个实施例中,所述查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果之前,还包括:
验证所述目标布隆过滤器的签名;
当所述签名验证通过时,验证所述目标布隆过滤器对应的数据信息在根布隆过滤器中的存在结果;所述数据信息为所述目标布隆过滤器在存满状态下的数据信息,所述根布隆过滤器存储在所述可信计算环境中;
若所述根布隆过滤器中存在所述目标布隆过滤器对应的数据信息,则基于所述单调计数信息,查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果。
第三方面,本申请还提供了一种审计日志存储装置。所述装置包括:
获取模块,用于获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
第一存储模块,用于将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
第二存储模块,用于当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
创建模块,用于从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中。
第四方面,本申请还提供了一种审计日志验证装置。所述装置包括:
接收模块,用于接收审计终端发送的审计日志验证请求;所述审计日志验证你请求携带有待验证的审计日志的单调计数信息;
第一查询模块,用于基于所述单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
第二查询模块,用于若所述当前布隆过滤器中不存在所述单调计数信息对应的审计日志,则基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果;
返回模块,用于返回所述验证结果至所述审计终端。
第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中,并获取下一个待存储审计日志,返回生成所述待存储日志的单调计数信息的步骤。
第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中,并获取下一个待存储审计日志,返回生成所述待存储日志的单调计数信息的步骤。
第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中,并获取下一个待存储审计日志,返回生成所述待存储日志的单调计数信息的步骤。
上述审计日志存储方法、验证方法、装置、计算机设备、存储介质和计算机程序产品,一方面生成待存储审计日志的单调计数信息,将该单调计数信息与待存储审计日志存入位于可信计算环境中的当前布隆过滤器,以保证待存储审计日志在存储过程中的可信性。另一方面在当前布隆过滤器的存储空间已满时,通过生成签名并将已经存满的布隆过滤器移出可信计算环境,并将当前布隆过滤器在存满状态下的数据信息存入处于可信计算环境的根布隆过滤器,保证了可信环境之外的布隆过滤器所存储的审计日志的完整性和可信性。同时利用布隆过滤器的不可撤销的特点来减少签名次数,实现了在保证审计日志可信性的基础上,减少了签名次数,便于进行大规模的审计日志的可信存储。
附图说明
图1为一个实施例中审计日志存储方法的流程示意图;
图2为一个实施例中布隆过滤器树的示意图;
图3为另一个实施例中审计日志存储方法的完整流程示意图;
图4为一个实施例中审计日志验证方法的流程示意图;
图5为一个实施例中审计日志存储系统的示意图;
图6为一个实施例中审计日志存储装置的结构框图;
图7为一个实施例中审计日志验证装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
在一个实施例中,如图1所示,提供了一种审计日志存储方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该方法包括以下步骤:
步骤S110,获取待存储审计日志,生成待存储审计日志的单调计数信息。
其中,单调计数信息可以为单调计数值。
具体实现中,可以实时获取审计日志,也可以从临时存储已生成的审计日志的数据库中获取待存储审计日志,在获取待存储审计日志后,可通过单调计数器生成待存储审计日志的单调计数值,作为单调计数信息。
需要说明的是,单调计数器用于维持一个最新的计数值,该计数值只能单调增加,而不能回退。通常用于保护数据或消息的新鲜性,使攻击者难以用旧数据或旧消息对系统实施攻击。
步骤S120,将待存储审计日志和单调计数信息,插入当前布隆过滤器;当前布隆过滤器存储在可信计算环境中。
其中,布隆过滤器用于检索一个元素是否在一个集合中,它实际上是一个很长的二进制向量和一系列随机哈希函数,优点是其空间效率和时间效率都较为出色,缺点是有一定的误识别率和删除困难。本申请利用其删除困难的缺点,。来确保审计日志的可信性。
其中,可信计算环境表示存储审计日志的服务器或系统使用基于硬件安全芯片TPM(Trusted Platform Module,可信平台模块,一种植于计算机内部为计算机提供可信根的芯片)或TCM(Trusted Cryptography Module,可信密码模块,是可信计算平台的硬件模块,为可信计算平台提供密码运算功能,具有受保护的存储空间),以提供基于硬件的安全保护。
具体实现中,每条待存储审计日志item和该待存储审计日志对应单调计数信息count可形成为一个二元组,记为(item,count),插入处于可信计算环境中的当前布隆过滤器中。
更具体地,可通过预设的哈希函数对该二元组(item,count)进行哈希处理,得到该二元组对应的哈希值,基于哈希值,确定二元组在当前布隆过滤器中对应的存储位置,将待存储审计日志和单调计数信息,存入当前布隆过滤器中的存储位置。在完成待存储审计日志和单调计数信息的存储后,进一步确定当前布隆过滤器的存储状态,以便于根据该存储状态采取对应的措施,保证下一个待存储审计日志可以被存储。
本步骤中,由于攻击者无法篡改或替换可信计算环境中的当前布隆过滤器的内容,同时二元组(item,count)一旦被插入则无法撤销,所以近期的审计日志是完整且可信的。
步骤S130,当当前布隆过滤器的存储状态为已存满时,生成当前布隆过滤器对应的签名,并确定当前布隆过滤器在存满状态下的数据信息,将数据信息插入根布隆过滤器中;根布隆过滤器存储在可信计算环境中。
具体实现中,若判断当前布隆过滤器的存储状态为已存满时,可基于当前布隆过滤器中所有审计日志的单调计数信息,生成当前布隆过滤器对应的签名,通过签名来确保当前布隆过滤器中存储的审计日志的安全性,通过单调计数信息来确定审计日志的新鲜性。
其中,布隆过滤器可以看作一个长度较大的二进制的数组,初始化的数组中各个数位上的值均为0,在进行数据的存储时,将数据通过哈希运算得到哈希值,将哈希值作为数组的下标,然后将初始化的数组中对应的位数的值修改为1,由此实现待数据的存储。
因此,每存储一条审计日志和单调计数信息后,布隆过滤器的各个数位上的值将可能发生一次变化,当完成最后一条审计日志的存储后,将当前布隆过滤器在存满时各个数位上的值对应的数值构成的信息,作为当前布隆过滤器在存满状态下的数据信息,通过哈希函数对该数据信息进行哈希处理得到哈希值,基于该哈希值确定数据信息在根布隆过滤器中的存储位置,从而将该存储位置对应数位上的值调整为1,实现当前布隆过滤器在存满状态下的数据信息在根布隆过滤器中的插入。
在另一实施例中,若判断当前布隆过滤器的存储状态为未存满时,获取下一个待存储审计日志,返回步骤S110中,生成所述待存储日志的单调计数信息的步骤,以此类推,直至当前布隆过滤器的存储空间被存满,进入步骤S130。
步骤S140,从可信计算环境中移除当前布隆过滤器,并创建新的当前布隆过滤器,将新的当前布隆过滤器存储至可信计算环境中,并获取下一个待存储审计日志,返回生成待存储日志的单调计数信息的步骤。
具体实现中,在移除已经存满的当前布隆过滤器的同时,还需创建新的当前布隆过滤器,将新的当前布隆过滤器存入可信计算环境中,进行后续待存储审计日志的存储,每存储一个审计日志后,进行新的当前布隆过滤器的存储状态的确定,直至新的当前布隆过滤器也存满后,从可信计算环境中移除新的当前布隆过滤器,再创建一个新的当前布隆过滤器,以此类推,保证在可信计算环境中始终存储有一个根布隆过滤器和一个当前布隆过滤器,而已存满的布隆过滤器通过签名移出可信计算环境,以减少可信计算环境的存储压力。
上述审计日志存储方法中,一方面生成待存储审计日志的单调计数信息,将该单调计数信息与待存储审计日志存入位于可信计算环境中的当前布隆过滤器,以保证待存储审计日志在存储过程中的可信性。另一方面在当前布隆过滤器的存储空间已满时,通过生成签名将已经存满的布隆过滤器移出可信计算环境,并将已经存满的布隆过滤器在存满状态下的数据信息存入处于可信计算环境的根布隆过滤器,保证了可信环境之外的布隆过滤器所存储的审计日志的完整性和可信性。同时利用布隆过滤器的不可撤销的特点来减少签名次数,实现了在保证审计日志可信性的基础上,减少了签名次数,便于进行大规模的审计日志的可信存储。
在一示例性实施例中,上述步骤S120中,将待存储审计日志和单调计数信息,插入当前布隆过滤器,包括:
步骤S1201,将待存储审计日志与单调计数信息形成二元组;
步骤S1202,通过预设的哈希函数,对二元组进行哈希处理,得到二元组对应的哈希值;
步骤S1203,基于哈希值,确定二元组在当前布隆过滤器中的存储位置;
步骤S1204,将存储位置对应的数值标记为预设数值,实现待存储审计日志和单调计数信息的存储。
具体实现中,布隆过滤器可以看作一个长度较大的二进制的数组,初始化的数组中各个位数都为0,将待存储审计日志item和该待存储审计日志对应单调计数信息count形成为一个二元组(item,count)后,可通过预设的多个哈希函数,对二元组进行哈希处理,得到二元组对应的多个哈希值,作为数组的下标,然后将初始化的数组中对应的位数的值修改为1,由此实现待存储审计日志和单调计数信息的存储。
本实施例中,通过布隆过滤器存储待存储审计日志与待存储审计日志的单调计数信息,利用布隆过滤器的不可撤销的特点,只需在布隆过滤器存满时,进行一次签名,无需每存储一个审计日志后,就生成一个签名,可以极大地减少签名的次数。
在一示例性实施例中,上述步骤130中,生成当前布隆过滤器对应的签名,包括:获取当前布隆过滤器中存储的各个审计日志的单调计数信息;通过可信计算环境对应的签名私钥,对各个审计日志的单调计数信息进行签名处理,得到当前布隆过滤器对应的签名。
其中,签名私钥受到可信计算环境保护,保护方式视不同可信计算技术而定,本申请对此不作限定。例如,保护方式可以是可信计算环境遭受破坏后,签名私钥自动销毁,也可以是该私钥位于可信芯片这种硬件中,不会出现在内存里。这种签名私钥为该主体所在可信计算环境的私钥,代表了环境的身份,与主体无关。
具体实现中,设当前布隆过滤器中各个审计日志的单调计数信息分别为count1、count2、…、countn,则可通过可信计算环境对应的签名私钥,对各个审计日志的单调计数信息进行签名处理,得到一个关于所有单调计数信息的签名:Sign(count1,count2,…,countn)。
本实施例中,通过当前布隆过滤器中存储的各个审计日志的单调计数信息,生成签名,可以确保从count1到countn的布隆过滤器存储的审计日志的列表的完整性。
在一示例性实施例中,新的当前布隆过滤器中存储的第一个审计日志的单调计数信息与当前布隆过滤器中存储的最后一个审计日志的单调计数信息相邻。
具体地,每个布隆过滤器之间的单调计数值是连续的,比如,第一个布隆过滤器存储的审计日志的单调计数值为count1-count50,则第二个布隆过滤器存的存储的审计日志的单调计数值需要从count51开始单调递增。
本实施例中,通过新的当前布隆过滤器中存储的第一个审计日志的单调计数信息与当前布隆过滤器中存储的最后一个审计日志的单调计数信息相邻的设置,以便于后续可以通过检查countn+1对应的(item,countn+1)是否被插入B_cur来判断,来验证一个单调计数信息对应的布隆过滤器B_n是否为可信计算环境中存储的B_cur的前一个布隆过滤器,从而验证审计日志的完整性。
参考图2,为一示例性实施例示出的布隆过滤器树的示意图,如图2所示,布隆过滤器树为一个二层树结构,其叶子节点用于直接记录审计日志的存在性,而根节点用于记录叶子节点的存在性。审计日志的存储步骤如图3所示的流程图所示:
(1)获取待存储审计日志item,生成待存储审计日志的单调计数值。
(2)将待存储审计日志item与当前单调计数值count形成二元组(item,count),然后将该二元组插入当前布隆过滤器B_cur。
(2)若当前布隆过滤器B_cur的存储空间已满,将当前布隆过滤器B_cur移出可信计算环境,并生成当前布隆过滤器B_cur的签名Sign,计算当前布隆过滤器B_cur在存满状态下的数据信息的哈希值:Hash(B_cur,count),将Hash(B_cur,count)插入根布隆过滤器B_root。
(3)创建新的当前布隆过滤器B_cur’,将新的当前布隆过滤器B_cur’存入可信计算环境。
(4)获取下一个待存储审计日志,执行存入新的当前布隆过滤器B_cur’的步骤。
(5)若当前布隆过滤器B_cur的存储空间未满,则可直接获取下一个待存储审计日志,执行将下一个待存储审计日志存入当前布隆过滤器B_cur的步骤。
为了减少可信计算环境的存储压力,可仅将根布隆过滤器B_root与当前布隆过滤器B_cur存储在可信计算环境中,而图2中其他部分的布隆过滤器存储在可信计算环境之外。由于攻击者无法篡改或替换可信计算环境中的B_cur,同时二元组(item,count)一旦被插入则无法撤销,所以近期的审计日志是完整且可信的。同时,签名Sign(count1,count2...countn)确保了从count1到countn的历史布隆过滤器的列表是完整的,然后用根布隆过滤器B_root检查每个布隆过滤器个体的完整性。最后,需要验证countn对应的B_n是可信计算环境中存储的B_cur的前一个布隆过滤器,具体可以通过检查countn+1对应的(item,countn+1)是否被插入B_cur来判断。
本实施例中,采用布隆过滤器树和单调计数器对审计日志的完整性进行保护,然后利用可信计算的签名机制和单调计数器确保上述完整性的可信性和新鲜性。
在一个实施例中,如图4所示,提供了一种审计日志验证方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤S410,接收审计终端发送的审计日志验证请求;审计日志验证请求携带有待验证的审计日志的单调计数信息;
步骤S420,基于单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
步骤S430,若当前布隆过滤器中不存在单调计数信息对应的审计日志,则基于单调计数信息,查询存储在可信环境之外的布隆过滤器,得到审计日志验证请求对应的验证结果;
步骤S440,返回验证结果至审计终端。
具体实现中,当进行审计日志验证时,审计终端发送审计日志请求至可信验证终端,可信验证终端根据审计日志验证请求中携带的待验证的审计日志的单调计数信息,首先查询存储在可信计算环境中的当前布隆过滤器中是否存在待验证的审计日志,若当前布隆过滤器中存在单调计数信息对应的审计日志,说明该审计日志是完整可信的,可以确定验证通过,并返回验证通过的验证结果至审计终端。反之,若当前布隆过滤器中不存在单调计数信息对应的审计日志,则基于单调计数信息,查询存储在可信环境之外的布隆过滤器,得到审计日志验证请求对应的验证结果,并返回验证结果至审计终端。
在一些实施例中,审计日志请求可能携带有多个待验证的审计日志的单调计数信息,此时可按照各个单调计数信息逐一在可信计算环境中存储的当前布隆过滤器中查询是否有各个单调计数信息对应的审计日志,当某个单调计数信息对应的审计日志不在当前布隆过滤器中时,进一步查询存储在可信环境之外的布隆过滤器,直至得到各个单调计数信息对应的查询结果,作为审计日志验证请求对应的验证结果。
本实施例中,通过布隆过滤器来保护审计日志的完整性,采用布隆过滤器的存在性检查取代了大量签名操作和签名验证操作。而布隆过滤器的存在性检查操作效率远高于签名和签名验证操作,因此整个方案克服了频繁签名的问题,具有更高的效率。并且本方案支持对审计日志的一部分进行完整性验证,而不用去验证全部审计日志。
在一示例性实施例中,步骤S420具体可以通过以下步骤实现:
步骤S4201,基于单调计数信息,从存储在可信环境之外的布隆过滤器中确定出目标布隆过滤器;
步骤S4202,查询待验证的审计日志在目标布隆过滤器中的存在结果;
步骤S4203,当目标布隆过滤器中存在待验证的审计日志时,确定验证结果为验证通过。
具体实现中,由于不同的布隆过滤器所存储的审计日志的单调计数信息是连续递增的,因此,可以基于审计日志验证请求携带的单调计数信息,确定待验证的审计日志对应的目标布隆过滤器,查询待验证的审计日志在目标布隆过滤器中的存在结果,若目标布隆过滤器中存在待验证的审计日志时,确定验证结果为验证通过,反之,若目标布隆过滤器中不存在待验证的审计日志时,确定验证结果为验证失败。
本实施例中,通过审计日志验证请求携带的单调计数信息,确定待验证的审计日志对应的目标布隆过滤器,进而可只需查询待验证的审计日志在目标布隆过滤器中的存在结果,无需查询其它的布隆过滤器,可极大地提高审计日志的验证效率。
在一示例性实施例中,步骤S4202之前,还包括:验证目标布隆过滤器的签名;当签名验证通过时,验证目标布隆过滤器对应的数据信息在根布隆过滤器中的存在结果;数据信息为目标布隆过滤器在存满状态下的数据信息,根布隆过滤器存储在可信计算环境中;若根布隆过滤器中存在目标布隆过滤器对应的数据信息,则基于单调计数信息,查询待验证的审计日志在目标布隆过滤器中的存在结果。
具体实现中,在确定目标布隆过滤器之后,在查询待验证的审计日志在目标布隆过滤器中的存在结果之前,还需进行签名验证和目标布隆过滤器的存在性检查。
举例说明,设目标布隆过滤器的签名为Sign(count1,count2...countn),可通过公钥进行签名验证,在签名验证通过后,验证目标布隆过滤器对应的数据信息是否存在于根布隆过滤器中,更具体地,可通过哈希函数对目标布隆过滤器对应的数据信息进行哈希处理,得到哈希值Hash(B_1,countB_1),验证该哈希值Hash(B_1,countB_1)是否存在于根布隆过滤器B_root中,若存在,则可进一步查询目标过滤器,进行待验证的审计日志的查询验证。
本实施例中,针对一个布隆过滤器中存储的审计日志的验证,只需通过一次签名验证和目标布隆过滤器的存在性检查,代替大量的签名验证操作,操作效率得以极大地提高。
参考图5,为一示例性实施例示出的审计日志存储系统的示意图,包括:
日志产生模块,用于不断记录审计日志。
日志存储模块,用于存储日志产生模块产生的审计日志。与传统的日志存储模块不同的是,本申请的日志存储模块需要在每一个审计日志项的后面附上单调计数器的当前值count。
可信日志模块,用于接收日志产生模块产生的新日志,为其赋予当前单调计数值,并负责布隆过滤器的插入操作,以及当前布隆过滤器存满时的新布隆过滤器替换。可信日志模块基于可信计算环境构建得到,持有一个签名私钥,该私钥受到可信计算环境的保护。保护方式视不同可信计算技术而定,本申请不做限定,例如可以是环境遭受破坏后,签名私钥自动销毁,也可以是该私钥位于可信芯片这种硬件中,不会出现在内存里。这种签名私钥为主体所在可信计算环境的私钥,代表了环境的身份,与主体无关。此外,可信日志模块还包括一个单调计数器,其数值只能单调递增,且受到可信环境保护,无法被篡改,保护方式视不同可信计算技术而定,本申请不做限定,例如,可以是可信芯片这种硬件芯片中实现单调计数器。
可信验证模块,用于接收审计终端发送的审计日志验证请求,并执行验证操作,主要的验证流程如下:
a.可信验证模块接收审计终端发送的审计日志验证请求。
b.可信验证模块读取日志存储模块所存储的审计日志,并读取可信计算环境中的布隆过滤器树的B_cur,然后从审计日志最近的日志项开始验证。若(item,count)在B_cur中,则该日志项是完整且可信的;直到某个日志项item_i所对应的(item_i,count_i)不在B_cur中。
c.可信验证模块进一步读取可信计算环境之外的布隆过滤器树的部分,并验证签名Sign(count1,count2......countn),然后验证Hash(B_1,count1),Hash(B_2,count2)...Hash(B_n,countn)是否在B_root中。若签名验证和B_root验证都通过,则从(item_i,count_i)开始继续用最近的历史布隆过滤器B_n进行日志项验证,直到所有日志项被验证是插入在布隆过滤器树中的,则可信验证模块返回验证通过的结论给审计终端。若审计日志中任何一个(item,count)不在布隆过滤器树中,则返回验证未通过的结论给审计终端。
本申请实现了一种防篡改、防伪造的可信审计日志存储方法,具有以下有益效果:
(1)整个方案的可信基础建立在硬件安全芯片基础上,因此具有较强的安全性。(2)创新性地使用布隆过滤器来保护审计日志的完整性,采用布隆过滤器的存在性检查取代了大量签名操作和签名验证操作。而布隆过滤器的存在性检查操作效率远高于签名和签名验证操作,因此整个方案克服了频繁签名的问题,具有更高的效率。(3)创新性地构建了布隆过滤器树结构,减小了对可信计算环境中存储空间的占用,同时也支持对审计日志的一部分进行完整性验证,而不用去验证全部审计日志。例如,仅对最近审计日志进行完整性验证,可以仅使用B_cur进行检验即可。(4)布隆过滤器与单调计数器的联合使用,能够有效发现重放攻击和审计日志缺失问题。(5)由于优点2和优点3,各个布隆过滤器可以独立验证,且签名只在创建新布隆过滤器时发生,签名验证也只需要验证一次,因此本方案适合大规模的日志存储。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的审计日志存储方法的审计日志存储装置,以及用于实现上述所涉及的审计日志验证方法的审计日志验证装置。这两个装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个审计日志存储装置实施例和审计日志验证装置中的具体限定可以参见上文中对于审计日志存储方法和审计日志验证方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种审计日志存储装置,包括:
获取模块610,用于获取待存储审计日志,生成待存储审计日志的单调计数信息;
第一存储模块620,用于将待存储审计日志和单调计数信息,插入当前布隆过滤器;当前布隆过滤器存储在可信计算环境中;
第二存储模块630,用于当当前布隆过滤器的存储状态为已存满时,生成当前布隆过滤器对应的签名,并确定当前布隆过滤器在存满状态下的数据信息,将数据信息插入根布隆过滤器中;根布隆过滤器存储在可信计算环境中;
创建模块640,用于从可信计算环境中移除当前布隆过滤器,并创建新的当前布隆过滤器,将新的当前布隆过滤器存储至可信计算环境中。
在一个实施例中,上述第一存储模块620,具体用于将待存储审计日志与单调计数信息形成二元组;通过预设的哈希函数,对二元组进行哈希处理,得到二元组对应的哈希值;基于哈希值,确定二元组在当前布隆过滤器中的存储位置;将存储位置对应的数值标记为预设数值,实现待存储审计日志和单调计数信息的存储。
在一个实施例中,上述第二存储模块630,具体用于获取当前布隆过滤器中存储的各个审计日志的单调计数信息;通过可信计算环境对应的签名私钥,对各个审计日志的单调计数信息进行签名处理,得到当前布隆过滤器对应的签名。
在一个实施例中,上述装置还包括确定模块,用于确定当前布隆过滤器的存储状态;当当前布隆过滤器的存储状态为未存满时,获取下一个待存储审计日志,并返回生成待存储日志的单调计数信息的步骤。
在一个实施例中,新的当前布隆过滤器中存储的第一个审计日志的单调计数信息与当前布隆过滤器中存储的最后一个审计日志的单调计数信息相邻。
在一个实施例中,如图7所示,提供了一种审计日志验证装置,包括:
接收模块710,用于接收审计终端发送的审计日志验证请求;审计日志验证你请求携带有待验证的审计日志的单调计数信息;
第一查询模块720,用于基于单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
第二查询模块730,用于若当前布隆过滤器中不存在单调计数信息对应的审计日志,则基于单调计数信息,查询存储在可信环境之外的布隆过滤器,得到审计日志验证请求对应的验证结果;
返回模块740,用于返回验证结果至审计终端。
在一个实施例中,上述第二查询模块730,还用于基于单调计数信息,从存储在可信环境之外的布隆过滤器中确定出目标布隆过滤器;查询待验证的审计日志在目标布隆过滤器中的存在结果;当目标布隆过滤器中存在待验证的审计日志时,确定验证结果为验证通过。
在一个实施例中,上述第二查询模块730,还用于验证目标布隆过滤器的签名;当签名验证通过时,验证目标布隆过滤器对应的数据信息在根布隆过滤器中的存在结果;数据信息为目标布隆过滤器在存满状态下的数据信息,根布隆过滤器存储在可信计算环境中;若根布隆过滤器中存在目标布隆过滤器对应的数据信息,则基于单调计数信息,查询待验证的审计日志在目标布隆过滤器中的存在结果。
上述审计日志存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种审计日志存储方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (13)
1.一种审计日志存储方法,其特征在于,所述方法包括:
获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中,并获取下一个待存储审计日志,返回生成所述待存储日志的单调计数信息的步骤。
2.根据权利要求1所述的方法,其特征在于,所述将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器,包括:
将所述待存储审计日志与所述单调计数信息形成二元组;
通过预设的哈希函数,对所述二元组进行哈希处理,得到所述二元组对应的哈希值;
基于所述哈希值,确定所述二元组在所述当前布隆过滤器中的存储位置;
将所述存储位置对应的数值标记为预设数值,实现待存储审计日志和所述单调计数信息的存储。
3.根据权利要求1所述的方法,其特征在于,所述生成所述当前布隆过滤器对应的签名,包括:
获取所述当前布隆过滤器中存储的各个审计日志的单调计数信息;
通过所述可信计算环境对应的签名私钥,对所述各个审计日志的单调计数信息进行签名处理,得到所述当前布隆过滤器对应的签名。
4.根据权利要求1所述的方法,其特征在于,所述将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器之后,还包括:
确定所述当前布隆过滤器的存储状态;
当所述当前布隆过滤器的存储状态为未存满时,获取下一个待存储审计日志,并返回生成所述待存储日志的单调计数信息的步骤。
5.根据权利要求1所述的方法,其特征在于,所述新的当前布隆过滤器中存储的第一个审计日志的单调计数信息与所述当前布隆过滤器中存储的最后一个审计日志的单调计数信息相邻。
6.一种审计日志验证方法,其特征在于,所述方法包括:
接收审计终端发送的审计日志验证请求;所述审计日志验证请求携带有待验证的审计日志的单调计数信息;
基于所述单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
若所述当前布隆过滤器中不存在所述单调计数信息对应的审计日志,则基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果;
返回所述验证结果至所述审计终端。
7.根据权利要求6所述的方法,其特征在于,所述基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果,包括:
基于所述单调计数信息,从存储在所述可信环境之外的布隆过滤器中确定出目标布隆过滤器;
查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果;
当所述目标布隆过滤器中存在所述待验证的审计日志时,确定验证结果为验证通过。
8.根据权利要求7所述的方法,其特征在于,所述查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果之前,还包括:
验证所述目标布隆过滤器的签名;
当所述签名验证通过时,验证所述目标布隆过滤器对应的数据信息在根布隆过滤器中的存在结果;所述数据信息为所述目标布隆过滤器在存满状态下的数据信息,所述根布隆过滤器存储在所述可信计算环境中;
若所述根布隆过滤器中存在所述目标布隆过滤器对应的数据信息,则基于所述单调计数信息,查询所述待验证的审计日志在所述目标布隆过滤器中的存在结果。
9.一种审计日志存储装置,其特征在于,所述装置包括:
获取模块,用于获取待存储审计日志,生成所述待存储审计日志的单调计数信息;
第一存储模块,用于将所述待存储审计日志和所述单调计数信息,插入当前布隆过滤器;所述当前布隆过滤器存储在可信计算环境中;
第二存储模块,用于当所述当前布隆过滤器的存储状态为已存满时,生成所述当前布隆过滤器对应的签名,并确定所述当前布隆过滤器在存满状态下的数据信息,将所述数据信息插入根布隆过滤器中;所述根布隆过滤器存储在所述可信计算环境中;
创建模块,用于从所述可信计算环境中移除所述当前布隆过滤器,并创建新的当前布隆过滤器,将所述新的当前布隆过滤器存储至所述可信计算环境中。
10.一种审计日志验证装置,其特征在于,所述装置包括:
接收模块,用于接收审计终端发送的审计日志验证请求;所述审计日志验证你请求携带有待验证的审计日志的单调计数信息;
第一查询模块,用于基于所述单调计数信息,查询存储在可信计算环境中的当前布隆过滤器;
第二查询模块,用于若所述当前布隆过滤器中不存在所述单调计数信息对应的审计日志,则基于所述单调计数信息,查询存储在所述可信环境之外的布隆过滤器,得到所述审计日志验证请求对应的验证结果;
返回模块,用于返回所述验证结果至所述审计终端。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述方法的步骤。
13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211404827.XA CN115659417A (zh) | 2022-11-10 | 2022-11-10 | 审计日志存储方法、验证方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211404827.XA CN115659417A (zh) | 2022-11-10 | 2022-11-10 | 审计日志存储方法、验证方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115659417A true CN115659417A (zh) | 2023-01-31 |
Family
ID=85020908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211404827.XA Pending CN115659417A (zh) | 2022-11-10 | 2022-11-10 | 审计日志存储方法、验证方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659417A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
CN117176472A (zh) * | 2023-10-30 | 2023-12-05 | 杭州海康威视数字技术股份有限公司 | 基于智能密码安全设备数据防篡改方法、装置及系统 |
-
2022
- 2022-11-10 CN CN202211404827.XA patent/CN115659417A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028990A (zh) * | 2023-03-30 | 2023-04-28 | 中国科学技术大学 | 一种基于区块链的防篡改隐私保护日志审计方法 |
CN117176472A (zh) * | 2023-10-30 | 2023-12-05 | 杭州海康威视数字技术股份有限公司 | 基于智能密码安全设备数据防篡改方法、装置及系统 |
CN117176472B (zh) * | 2023-10-30 | 2024-01-09 | 杭州海康威视数字技术股份有限公司 | 基于智能密码安全设备数据防篡改方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220027515A1 (en) | Decentralized Token Table Generation | |
US9720943B2 (en) | Columnar table data protection | |
CN107220559B (zh) | 一种针对不可篡改文件的加密存储方法 | |
US12010213B2 (en) | Pruning entries in tamper-evident data stores | |
CN101853190B (zh) | 一种适用于嵌入式处理器的数据完整性验证方法 | |
CN115659417A (zh) | 审计日志存储方法、验证方法、装置和计算机设备 | |
RU2351978C2 (ru) | Способ обеспечения целостности набора записей данных | |
WO2019220317A1 (en) | Improved systems and methods for storage, generation and verification of tokens used to control access to a resource | |
CN106776904A (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
CN113704357A (zh) | 一种基于区块链的智慧城市数据共享方法及系统 | |
He et al. | Public integrity auditing for dynamic regenerating code based cloud storage | |
CN114338081B (zh) | 多区块链统一身份认证方法、装置、计算机设备 | |
Weintraub et al. | Data integrity verification in column-oriented NoSQL databases | |
US11502856B2 (en) | Method for providing information to be stored and method for providing a proof of retrievability | |
He et al. | Enabling Decentralized and Dynamic Data Integrity Verification for Secure Cloud Storage via T‐Merkle Hash Tree Based Blockchain | |
CN116192395A (zh) | 用于分散式数据存储的可信系统 | |
CN113468549A (zh) | 基于区块链的加密信息存证的检索方法、系统及电子设备 | |
Rao et al. | Dynamic outsourced proofs of retrievability enabling auditing migration for remote storage security | |
Li et al. | Post‐Quantum Privacy‐Preserving Provable Data Possession Scheme Based on Smart Contracts | |
CN115439118B (zh) | 一种基于区块链的数字存证管理方法 | |
Jadon et al. | Mutable Blockchain for Identity Management | |
CN114090588A (zh) | 区块链在场验证方法、装置、计算机设备和存储介质 | |
CN115757310A (zh) | 信用信息共享方法、装置、计算机设备和存储介质 | |
Aditya et al. | Employing bloom filters for enforcing integrity of outsourced databases in cloud environments | |
CN117391702A (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 |