CN112039837B - 一种基于区块链和秘密共享的电子证据保全方法 - Google Patents

一种基于区块链和秘密共享的电子证据保全方法 Download PDF

Info

Publication number
CN112039837B
CN112039837B CN202010654762.9A CN202010654762A CN112039837B CN 112039837 B CN112039837 B CN 112039837B CN 202010654762 A CN202010654762 A CN 202010654762A CN 112039837 B CN112039837 B CN 112039837B
Authority
CN
China
Prior art keywords
server
electronic evidence
hash
evidence
block
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.)
Active
Application number
CN202010654762.9A
Other languages
English (en)
Other versions
CN112039837A (zh
Inventor
原锦辉
周洪伟
刘伎昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongyuan University of Technology
Original Assignee
Zhongyuan University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongyuan University of Technology filed Critical Zhongyuan University of Technology
Priority to CN202010654762.9A priority Critical patent/CN112039837B/zh
Publication of CN112039837A publication Critical patent/CN112039837A/zh
Application granted granted Critical
Publication of CN112039837B publication Critical patent/CN112039837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/308Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information retaining data, e.g. retaining successful, unsuccessful communication attempts, internet access, or e-mail, internet telephony, intercept related information or call content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开一种基于区块链和秘密共享的电子证据保全方法,包括:取证代理向服务器提交电子证据数据,服务器存储电子证据并生成其完整性检验数据;用户访问电子证据,同时根据服务器所提供的哈希值检测电子证据,以验证电子证据完整性;服务器进行动态调整,包括新服务器的加入、服务器退出时修复电子证据副本以及修复电子证据片段哈希值的秘密份额。本发明通过在区块链中引入秘密共享和数字签名,使得合法参与者可以以较少代价出块,并且攻击者还需要同时控制多个合法参与者才能篡改区块数据,这使得区块链可以在不过多牺牲计算能力的前提下,防御攻击者的篡改、尤其是对区块链的末端区块的篡改,使区块链能够适合电子证据保全的应用背景。

Description

一种基于区块链和秘密共享的电子证据保全方法
技术领域
本发明属于电子证据保全技术领域,尤其涉及一种基于区块链和秘密共享的电子证据保全方法。
背景技术
区块链(李洪涛等,《深入探索区块链》,人民邮电出版社,2019.07.01)是一种对等网络下的分布式数据库系统。是由一串使用密码学方法产生的数据块组成的,每一个区块都包含上一个区块的散列值,从创世区块开始连接到最新区块,形成一条区块的链。由于后一区块需要包含上一个区块的信息,因此一个区块在链中的时间越久,被改变的难度越大。
在区块链中,只有攻击者具有超过所有参与者计算能力的51%,才能对区块实施篡改而不被发现。这就是所谓的51%攻击。传统区块链的出块算法是要求:参与者通过调整少量参数,使区块的完整性摘要值符合某种要求,例如包含若干个零,要得到这样的摘要值需要参与者反复尝试,这将消耗大量的计算能力,当诸多参与者共同参与出块时,攻击者要想篡改区块链中某个区块,不仅需要篡改该区块的后续区块,还需要篡改后续生成的区块,这就要求攻击者的计算能力要超过其它所有参与者的计算能力,由于传统区块链所具有的计算能力庞大,攻击者很难具有这样的攻击实力。然而,在将区块链应用于电子证据完整性检测时,由于电子取证的环境限制,电子证据的数据量存在偶然性,并且系统总体的计算力并不是攻击者难以超越的,所以传统区块链基于计算能力限制的方法将不再适用。在这种应用背景下,具有强大计算能力的攻击者就可以篡改区块数据,特别是区块链尾的区块。
发明内容
本发明针对现有的传统区块链基于计算能力限制的方法不适用于电子证据完整性检测的问题,提出一种基于区块链和秘密共享的电子证据保全方法。
为了实现上述目的,本发明采用以下技术方案:
一种基于区块链和秘密共享的电子证据保全方法,包括:
步骤1:取证代理向服务器提交电子证据数据,服务器存储电子证据并生成其完整性检验数据;
步骤2:用户访问电子证据,同时根据服务器所提供的哈希值检测电子证据,以验证电子证据完整性;
步骤3:服务器进行动态调整,包括新服务器的加入、服务器退出时修复电子证据副本以及修复电子证据片段哈希值的秘密份额。
进一步地,所述步骤1包括:
步骤1.1:取证代理提交电子证据原始数据后,服务器采用冗余存储的方式进行电子证据原始数据的存储;
步骤1.2:服务器采用基于拉格朗日插值公式的秘密共享的方式分散存储电子证据片段哈希值,并检测存储在服务器内的电子证据的完整性。
进一步地,所述步骤1.1包括:
步骤1.1.1:取证代理U生成随机数random,计算哈希值hash(P||random),其中P为电子证据片段;
步骤1.1.2:U确定接收电子证据的服务器C,并使用两者共享的会话密钥加密random,加密结果表示为Ekey(random);
步骤1.1.3:U发送消息M1={U,P,Ekey(random),hash(P||random)}至C;
步骤1.1.4:C解读消息M1,获取消息发送者身份U,并用两者共享的会话密钥解密Ekey(random),得到random,并计算hash(P||random),验证P的完整性;如果P的完整性检验未通过,C返回错误提示,协议结束;如果P的完整性检验通过,继续下一步;
步骤1.1.5:C根据预先定义的策略,随机参与冗余存储的服务器列表为C1,C2,...,Cn
步骤1.1.6:C计算P的完整性摘要值Hash(P),令m=Hash(P),m为签名消息,并对m进行签名,得到签名值SigC(m)、即SigC(Hash(P));
步骤1.1.7:C发送消息M2={Pid,C,(C1,C2,...,Cn),Hash(P),SigC(Hash(P)),P}、即冗余存储数据集,其中Pid为电子证据片段标识;
步骤1.1.8:参与冗余存储的服务器Ci将M2保存,1≤i≤n,协议结束。
进一步地,所述步骤1.2包括:
步骤1.2.1:C生成电子证据片段P的完整性记录{Pid,m};
步骤1.2.2:C按预定查找空闲莫科尔树的叶子节点,用{Pid,m}更新叶子节点,并按照莫科尔树更新规则,更新该叶子节点至根的一系列中间节点,得到根节点值s作为秘密信息;
步骤1.2.3:C随机选择若干服务器参与者C1,C2,...,Cn,作为秘密信息s实施秘密共享参与者;
步骤1.2.4:C随机生成k-1个随机数α12,…αk-1,并构建一个新的多项式f(x)=s+α1x+α2x2+…+αk-1xk-1,其中x为当前莫科尔树有效叶子节点的数量;
步骤1.2.5:C计算si=f(xi),1≤i≤n,si为基于拉格朗日插值算法生成的秘密份额,xi是C生成的随机数;
步骤1.2.6:C生成电子证据片段哈希值数据集Msg={C,(C1,C2,...,Cn),Nid,x,si};其中Nid为区块标识;
步骤1.2.7:C发送消息Msg至C1,C2,...,Cn
步骤1.2.8:参与存储的服务器Ci将Msg保存,1≤i≤n,协议退出。
进一步地,在所述步骤1.2之后还包括:
步骤1.3:当服务器存储足够多的哈希值后,在多个服务器协同认证的基础上,产生新的电子证据区块,并作为尾端区块接入到区块链中。
进一步地,所述步骤1.3包括:
步骤1.3.1:C广播电子证据区块生成协助消息,消息内包括Nid;
步骤1.3.2:接收消息的各服务器,根据Nid检查自己所持有的电子证据片段哈希值数据集{C,(C1,C2,...,Cn),Nid,g,si},明确自己是否参与电子证据片段哈希值的秘密共享;其中g表示按从左到右计数的叶子节点号;
步骤1.3.3:从第一个叶子节点开始,多个服务器参与莫科尔树的根节点中间结果还原操作;包括:
步骤1.3.3a:持有第一个叶子节点哈希值数据集的服务器,广播持有的电子证据片段哈希值数据集{C,(C1,C2,...,Cn),Nid,1,si};
步骤1.3.3b:相关服务器收集h个以上秘密份额,并还原得到s;
步骤1.3.3c:继续还原下一个叶子节点更新时莫科尔树的根节点值;
步骤1.3.3d:反复上述操作,直至得到莫科尔树的根节点值的所有状态结果r1,r2,...rd;rd为莫科尔树树根节点的最后状态的值;d为莫科尔树叶子节点的数目;
步骤1.3.3e:根据莫科尔树的根节点值验证莫科尔树的完整性;
步骤1.3.3f:如果莫科尔树未被篡改,继续下一步,否则协议中止;
步骤1.3.4:参与认证的服务器Ci各自计算;包括:
步骤1.3.4a:生成随机数random;
步骤1.3.4b:计算m=hash(time||random||rd),其中time表示区块的时间戳,然后对m签名得到SigCi(m)、即SigCi(hash(time||random||rd));
步骤1.3.4c:生成背书数据{Ci,random,rm,SigCi(hash(time||random||rd))};
步骤1.3.5:Ci向C发送背书数据,C将接收的背书数据写入区块,当收集到足够多的背书数据后,协议中止。
进一步地,所述步骤2包括:
步骤2.1:通过访问服务器存储的电子证据副本完成电子证据访问;
步骤2.2:通过块链以及基于秘密共享验证电子证据哈希值,完成电子证据完整性验证。
进一步地,所述步骤2.1包括:
步骤2.1.1:用户向取证服务器集群中某个服务器C发出查询请求,请求数据包内含有电子证据片段标识Pid;
步骤2.1.2:C根据Pid查询本地是否存有电子证据片段,是则返回给用户,否则继续下一步;
步骤2.1.3:C在取证服务器集群内,广播Pid,请求相关服务器协查;
步骤2.1.4:其它取证服务器内获取Pid后,查询本地存储情况,如果存储有该电子证据片段,就发送响应数据包;
步骤2.1.5:C接收到响应数据包后,获取存储数据的取证服务器列表,从中选取某个取证服务器Cj,1≤j≤n;如果C没有收到任何响应数据包,则向用户返回错误信息,协议结束;
步骤2.1.6:C发送查询请求报文至Cj,要求Cj发送指定的电子证据片段;
步骤2.1.7:Cj接收C的查询请求,发送{Pid,C0,(C1,C2,...,Cn),Hash(P),SigC0(Hash(P)),P}至C,其中C0表示当初接收该电子证据片段的服务器;
步骤2.1.8:C转发消息包至用户;
步骤2.1.9:用户根据签名SigC0(Hash(P))验证Hash(P)是否被篡改,并进一步验证P是否被篡改,协议结束。
进一步地,所述步骤2.2包括:
步骤2.2.1:用户向取证服务器集群中某个服务器C发出完整性验证请求,请求数据包内含有电子证据区块标识Nid和电子证据片段标识Pid;
步骤2.2.2:C根据Nid,从最后一个区块开始,计算前一个区块的哈希值,跟最后一个区块存储的哈希值对比,若二者相同,则跳到前一个区块进行验证,直至验证目标区块的完整性;如果通过完整性验证,继续下一步,否则向用户返回错误提示;
步骤2.2.3:C读取区块内所记载的、各服务器的背书数据{C,time,x,rd,Sigci(hash(time||x||rd))},其中x为当前莫科尔树有效叶子节点的数量;
步骤2.2.4:针对某个背书签名数据包,C完成以下操作:
步骤2.2.4a:验证时间戳time的正确性;
步骤2.2.4b:计算hash(time||x||rd);
步骤2.2.4c:验证签名Sigci(hash(time||x||rd))的正确性;
步骤2.2.5:C采集足够的秘密份额,按照基于拉格朗日插值公式的秘密共享的方式,将莫科尔树根节点的值进行还原;
步骤2.2.6:C根据莫科尔树根节点的值,验证指定叶子节点的哈希值,并返回验证结果。
进一步地,所述步骤3包括:
步骤3.1:新服务器的加入,包括:
步骤3.1.1:电子证据服务器C向可信第三方T提出加入电子证据服务器集群的请求;
步骤3.1.2:T接收请求,并验证C的信息;
步骤3.1.3:T为C生成证书,包括公钥、IP地址、服务器标识信息,并向集群内发布,C秘密持有私钥;
步骤3.1.4:C向服务器集群内广播加入集群的消息;
步骤3.1.5:集群内其它服务器根据T发布的消息,将C纳入在线服务器列表,并参与后续的冗余存储活动,协议结束;
步骤3.2:服务器退出时修复电子证据副本;包括:
步骤3.2.1:服务器C显式或隐式退出电子证据服务器集群;
步骤3.2.2:服务器Ci发现C退出集群,检查所持有冗余存储数据集中的服务器列表C1,C2,...,Ce,确定C是否存在于列表中;e是预设的保存副本的数量,1<e<n;
步骤3.2.3:如果C存在服务器列表中,Ci广播消息询问列表中其它服务器是否在线;
步骤3.2.4:随机推选某个服务器作为临时的控制服务器;
步骤3.2.5:临时控制服务器检查副本数量是否满足触发副本修复条件,如果满足条件则开始修复,否则广播暂时不修复的消息,退出;
步骤3.2.6:临时控制服务器选择在线服务器C’,修改服务器列表,保证服务器列表内的服务器在线,更新冗余存储数据集中的服务列表信息,并向新增加的服务器发送新的冗余存储数据集;
步骤3.2.7:临时控制服务器广播新的服务器列表,各相关服务器同步冗余存储数据集;
步骤3.2.8:C’广播冗余存储数据集的完整性值,服务器列表内各服务器验证,如果各服务器均没有异议,电子证据片段修复结束;
步骤3.3:服务器退出时修复电子证据片段哈希值的秘密份额;包括:
步骤3.3.1:电子证据服务器C显式或隐式退出电子证据服务器集群;
步骤3.3.2:电子证据服务器Ci发现C退出集群,检查所持有电子证据片段秘密份额数据{C,(C1,C2,...,Ce),Nid,g,si};
步骤3.3.3:如果C存在服务器列表中,Ci询问列表中其它服务器是否在线;
步骤3.3.4:随机推选某个服务器作为临时的控制服务器;
步骤3.3.5:临时控制服务器检查份额数量是否满足触发份额修复条件,如果满足则开始修复,否则广播暂时不修复的消息,协议结束;
步骤3.3.6:服务器列表中所有在线服务器广播消息,临时控制服务器采集足够多的秘密份额,并还原多项式,从而生成新的秘密份额;
步骤3.3.7:临时控制服务器选择在线服务器,修改服务器列表,更新电子证据片段秘密份额数据,并向新的服务器列表中所有服务器发送更新后的服务器列表,其它服务器更新服务器列表;
步骤3.3.8:服务器列表中的各服务器完成两次还原操作:一次包括新生成秘密份额,一次不包括;如果两次还原出来的秘密信息相同,服务器认为生成秘密份额正确,修复成功;如果有一个服务器有异议,重新开始修复,如果连续修复三次失败,则视为修复失败,返回错误信息,协议退出,如果修复成功,返回成功信息,协议退出。
与现有技术相比,本发明具有的有益效果:
传统区块链依赖计算能力限制来防御攻击者篡改的方法并不适应电子证据保全的应用背景。本发明通过在区块链中引入秘密共享和数字签名,使得合法参与者可以以较少代价出块,并且攻击者还需要同时控制多个合法参与者才能篡改区块数据,这使得区块链可以在不过多牺牲计算能力的前提下,防御攻击者的篡改、尤其是对区块链的末端区块的篡改,使区块链能够适合电子证据保全的应用背景。
附图说明
图1为区块链示意图;
图2为本发明实施例一种基于区块链和秘密共享的电子证据保全方法的应用背景示意图;
图3为本发明实施例一种基于区块链和秘密共享的电子证据保全方法的基本流程图;
图4为本发明实施例一种基于区块链和秘密共享的电子证据保全方法的添加电子证据片段至叶子节点3的示例图;
图5为本发明实施例一种基于区块链和秘密共享的电子证据保全方法的区块结构示意图。
具体实施方式
为使本发明更容易被理解,现对本发明中出现的部分名词进行解释:
区块链:区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
51%攻击:区块链采用哈希级联的方式,将所有区块链接在一起。这种数据组织方式使得攻击者篡改任何一个区块的内容,就必须篡改该区块以及该区块后续的所有区块。同时,区块链在不断生成,攻击者篡改的速度还必须超越区块生成速度。所以,只有当攻击者拥有超过总体计算量51%以上才可能篡改成功。
哈希函数和哈希值:哈希(hash)函数一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入,通过散列算法变换成固定长度的输出,该输出就是哈希值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。可以基于哈希值来检测输入数据是否发生改变。
取证代理:取证代理是负责提供电子证据数据的实体。取证代理可能是驻留在目标计算机系统的代理软件,如日志代理。普通民众也可能通过开放的接口提供电子证据。
电子证据服务器:电子证据服务器是负责保存电子证据数据本身以及电子证据完整性证明材料的实体,若干电子证据服务器组成服务器集群,共同向取证代理和用户提供服务。电子证据服务器一般是由司法部门等权威机构认证后的主机。为便于陈述,在不加特殊说明,电子证据服务器简称为服务器。在本发明中,电子证据服务器就是区块链的参与者。
电子证据片段:电子证据的基本单位为电子证据片段,服务器每次保全以电子证据片段为输入。根据预先设定的保护策略,电子证据片段所对应电子证据可能是在某段时间所产生的电子证据,也可能是某个固定长度的电子证据。例如:计算机定时采集系统日志内容,作为证据片段提交给服务器。若干电子证据片段组成一个有意义的电子证据。服务器不关心电子证据片段之间的逻辑关系,取证代理和用户负责电子证据片段之间的逻辑组织。
存储冗余因子:取证服务器采用冗余存储的方式来保存电子证据,副本的数量即为冗余因子。如果冗余因子为3,表明有3个取证服务器存储了电子证据的副本。
莫科尔树:莫科尔树是一种二叉树,每个父节点的值是其两个孩子节点值的完整性摘要值,例如用C1和C2表示两个孩子节点的值,那么父节点的值C=hash(C1||C2)。莫科尔树具有重要的性质:基于树根节点,可以验证所有叶子节点的完整性摘要值是否被篡改。
下面结合附图和具体的实施例对本发明做进一步的解释说明:
图1表示区块链的概念示意图。除了第一个区块外,其它区块均存储有前一个区块的哈希值。这意味着,如果攻击者要篡改区块链上任何一个区块,那么就必须篡改该区块之后所有区块,使得每个区块的完整性摘要值仍然与前一个区块完整性摘要值相符。同时,系统内仍然在不断产生新的区块,所以攻击者不但要篡改原有的后续区块,还必须篡改新增加的区块。这就要求,攻击者必须具有超过全系统一半以上的计算能力,才能超越其它人完成对现有区块以及新增区块的篡改而不被发现。
这样的方法并不适合电子证据完整性检测的应用背景,原因主要有两个方面。首先,传统区块链的出块算法主要基于计算能力限制,例如通过反复计算完整性摘要值,使摘要值满足某种条件。在完全陌生的环境,这种方法是保证出块权威性的有效手段,但是在相对私有和权威的电子证据保全场景,这种方法无疑会导致大量计算能力的消耗。其次,在电子证据保全应用场景中,系统整体的计算能力不会过高,攻击者可能拥有超过该值的计算能力,使得攻击成功的概率增加。
为了使区块链能够应用于电子证据保全,有必要对区块链进行的必要的修改。假设当前区块链的参与者有n个,分别标识为C1,C2,...,Cn,它们分别拥有秘密因子s1,s2,...,sn。对于出块算法为f(z),如果已知z,计算f(z)的时间复杂度为O(s),如果未知z,计算f(z)的时间复杂度为O(z),要求O(z)>>O(s)。这样,对于持有si的Ci(1≤i≤n),能够以较少代价实现出块。考虑到攻击者可能攻击某个Ci(1≤i≤n),从而实现篡改电子证据的目的,我们再次修正出块算法为f(z1,z2,...,zr),要求在已知r个秘密因子的前提下,才能有效减少计算时间复杂度。经过上述修改后,保证了合法者能够快速出块,而攻击者只有在控制多个参与者以后,才能实现对区块的篡改而不被发现。
(1)应用背景
应用背景如图2所示。应用存在三种角色,包括:取证代理、电子证据服务器和用户。取证代理是负责提供电子证据数据的实体。取证代理可能是驻留在目标计算机系统的代理软件,如日志代理。普通民众也可能通过开放的接口提供电子证据。电子证据服务器负责保存电子证据数据本身以及电子证据完整性证明材料,若干电子证据服务器组成服务器集群,共同向取证代理和用户提供服务。电子证据服务器一般是由司法部门等权威机构认证后主机。用户是使用电子证据的实体。司法部门使用某电子证据,并要求验证某项电子证据的完整性。
(2)攻击能力假设
攻击者可以伪装成用户或者取证代理,访问服务器,并提供虚假数据欺骗服务器;攻击者也可以攻击某个服务器,并成功控制服务器,可以依托该服务器完成若干攻击行为,例如冒放、伪装等,而其它服务器无法发现这些行为是攻击行为。
(3)符号说明
服务器:用C表示,多个服务器表示为C1,C2,...,Cn
取证代理:用U表示;
电子证据片段:用P表示,多个电子证据片段表示为P1,P2,...,Pn
连接符:用||表示,表明将连接符左右数据连接起来;
服务器标识:用Cid表示,用于唯一标识某个服务器;
区块标识:用Nid表示,用于唯一标识某个区块;
电子证据片段标识:用Pid表示,用于唯一标识某个电子证据片段;
签名值:用Sigc(m)表示,其中c表示签名者身份,m为签名消息;
冗余存储数据集:电子证据冗余存储所使用的数据集,为六元组,表示为{Pid,C,(C1,C2,...,Cn),hash(P),SigC(Hash(P)),P}。
如图3所示,一种基于区块链和秘密共享的电子证据保全方法,包括:
步骤S101:电子证据的生成:取证代理向服务器提交电子证据数据,服务器存储电子证据并生成其完整性检验数据;
具体地,电子证据的生成是指:取证代理向服务器提交电子证据数据,服务器存储电子证据并生成其完整性检验数据。主要包括以下环节:电子证据的冗余存储、代表电子证据完整性的电子证据片段哈希值的存储以及电子证据区块的生成。取证代理提交电子证据原始数据后,服务器采用冗余存储的方式,将这些数据存储;为了检测存储在服务器内的电子证据的完整性,本发明采用秘密共享的方式来分散存储哈希值,使攻击者篡改数据的难度增加(只有控制足够多的服务器才能实施篡改);当服务器存储足够多的哈希值后,在多个服务器协同认证的基础,实现有多个服务器背书的出块算法,将新增加电子证据完整性数据纳入到区块链中实施保护。
步骤S101.1:电子证据的冗余存储;
电子证据由若干个电子证据片段组成。根据预先设定的保护策略,每个证据片段所对应电子证据可能是在某段时间所产生的电子证据,也可能是某个固定长度的电子证据。例如:计算机定时采集系统日志内容,作为电子证据片段提交给服务器。为了避免被攻击者所污染,取证代理应该尽早将电子证据提交服务器,以减少被攻击者篡改的时间窗口。以电子证据片段为操作的基本单位,可以满足上述需求。
取证代理负责电子证据和电子证据片段之间的映射关系,服务器只负责电子证据的保全。例如电子证据Proof=P1||P2||...||Pn,取证代理根据时间先后,分别向服务器提交P1,P2,...,Pn,服务器分别对其进行保全处理,但是并不清楚这些电子证据片段之间的关系,并且在处理这些电子证据的同时,服务器还可能接收其它取证代理发送来的电子证据片段。电子证据片段之间的逻辑关系,由取证代码保存并发布,供用户访问电子证据时使用。
服务器采用多点冗余存储方式实现电子证据的存储。服务器接收到取证代理所提交的证据片段后,首先对其进行合法性检测,例如:Cid是否合法、电子证据片段是否过长等等。然后,服务器根据预先设定的策略,选择指定数量服务器参与存储,典型的选择策略如负载平衡,既优先选择存储空间留有较大余量的服务器参与存储。参与冗余存储的服务器数量既为存储冗余因子。存储冗余因子越大,电子证据的副本数据也就越多,攻击者篡改电子证据的难度也就越大。
服务器生成电子证据片段的冗余存储数据集。用P表示待冗余存储的电子证据片段,参与冗余存储的服务器列表为(C1,C2,...,Cn),负责分发电子证据片段的服务器为C。C首先计算P的哈希值m=hash(P)。为了标识哈希值的生成者,C对m进行签名,得到签名值SigC(m)。C生成冗余存储数据集:{Pid,C,(C1,C2,...,Cn),hash(P),SigC(Hash(p)),P}。C根据服务器列表内的信息,将冗余存储数据集发送至C1,C2,...,,Cn
具体协议如下所述:
Figure BDA0002576340020000121
步骤S101.2:电子证据片段哈希值存储;
服务器基于莫科尔树存储电子证据片段的哈希值。每个服务器持有一棵莫科尔树,树中每个叶子节点对应一个电子证据片段的哈希值。事先约定莫科尔树的高度为h,那么每个莫科尔树能够记录2h个电子证据片段的完整性摘要值。初始情况下,没有记录任何电子证据片段的莫科尔树,所有叶子节点都是默认初始值。按照预先约定的顺序,例如从左到右,依次将电子证据片段的哈希值更新至叶子节点。每更新一个叶子节点,需要更新从叶子节点到根的这一路径上所有节点的哈希值。如图4所示,节点1和节点2已经存储了电子证据片段的完整性信息,新的电子证据片段完整性信息将保存在节点3,并且由于节点3的值发生变化,导致需要重新计算节点6和节点7的哈希值。
为了防止攻击者篡改莫科尔树的树根信息,本发明采用基于拉格朗日插值公式的秘密共享算法,由多个服务器共同存储树根信息。设当前服务器为C,其计算得到树根信息为s,C随机确定若干参与秘密共享的服务器(C1,C2,...,Cn),选择一个大素数Q,并随机生成k-1个参数α12,…αk-1,αi属于Q为生成元的整数域,可以生成一个多项式f(x)=s+α1x+α2x2+…+αk-1xk-1,并且计算si=f(xi),1≤i≤n,xi是C生成的随机数,计算结果si作为秘密共享份额分发给Ci。为了记录莫科尔树信息,C生成电子证据片段数据集{Nid,Pid,x,si},其中x为当前莫科尔树有效叶子节点的数量,si为基于拉格朗日插值算法生成的秘密份额。
具体协议如下所述:
Figure BDA0002576340020000131
步骤S101.3:电子证据区块生成;
当服务器所持有莫科尔树已经承接了足够多的电子证据完整性记录,服务器可以产生新的电子证据区块,并作为尾端区块接入到链中。服务器不断接收来自不同取证代理的电子证据片段,并生成电子证据片段完整性记录。在这个过程中,莫科尔树在不断“增加”新的叶子节点(将原来空的叶子节点更改为记录完整性纪录的叶子节点)。如果莫尔树中的高度为h,那么意味着当取证服务器接收了2h个电子证据片段以后,就满足了出块的数据基础。
为了确保每个完整性哈希值未被篡改,服务器群内若干服务器将验证莫科尔树的完整性。例如由服务器C0完成某个叶子节点验证,C0要求Ci提供参与该叶子节点秘密共享的服务器列表(C1,C2,...,Cn),然后请求各参与共享的服务器提供的电子证据片段哈希值数据集{C,(C1,C2,...,Cn),Nid,g,si},其中g表示按从左到右计数的叶子节点号,C0通过{Nid,g}就可以确定该数据包是针对哪个区块以及哪个叶子更新时的秘密份额。C0在接收到足够的份额si后,就可以根据下面的秘密还原公式得到s。
假设现有n个数据(xi1,yi1),(xi2,yi2),…,(xin,yin),便得到多个等式:
Figure BDA0002576340020000141
转化得到
Figure BDA0002576340020000142
C0获取Ci中所有莫科尔树的树根中间状态值,即叶子节点在不断更新到莫科尔树中,树根的变化情况,表示为{r1,r2,...,rd},rd为莫科尔树树根节点的最后状态的值,d为莫科尔树叶子节点的数目。此时,C0可以还原莫尔树叶子增加过程,并验证该过程树根节点是否被篡改。当C0认为莫科尔树的数据并没有被篡改,那么E将为该树的完整性背书,具体的方法是对树根最后状态结果rd进行签名:C0将生成随机数random,并且计算m=hash(time||random||rd),其中time表示区块的时间戳,然后对m签名得到SigC0(m)。而C0的背书数据为{C0,random,rd,SigC0(hash(time||random||rd))}。
区块结构如图5所示。区块头包括版本号、时间戳、莫科尔树根和前一个区块的哈希值等信息,这些与传统区块链相同。与传统区块链区块结构不同的是,本发明增加了多个服务器的背书签名,这些服务器分别验证了莫科尔树所代表的所有电子证据片段的哈希值未被篡改,并使用签名对区块的完整性和权威性背书。只有达到预设数据的服务器背书数据,区块的合法性才能被认可。
在上述情况下,攻击者希望篡改数据成功,就必须在下一个区块产生之前,对各取证服务的背书签名包实施篡改。这种篡改的难度等同对签名算法的攻击难度,在有限的时间内(当前区块作为链中最后一个区块的时间),可以认为这几乎是不可能的。这也满足我们初始的设计思想:在已知秘密信息的前提下,合法用户可以用较小代价实现出块,而未知秘密信息的攻击者,只能以较大代价才能实现出现。
为了防止少量服务器被攻击者控制者,实施协同攻击,验证莫科尔树完整性的服务器选择,将多个服务器共同决定,以提高攻击难度。理论上,任何服务器列表的选择,都不应该依赖少量服务器的决定。服务器的选择,可以借鉴现有的分布式计算的研究成果。本发明不对此作过多要求。
具体协议如下所述:
Figure BDA0002576340020000151
Figure BDA0002576340020000161
具体地,生成电子证据的完整工作流程是:协议1→协议2→协议3(如果协议2产生的数据足够出块的话,执行协议3),具体如下所示
Figure BDA0002576340020000162
步骤S102:电子证据的使用:用户访问电子证据,同时根据服务器所提供的哈希值检测电子证据,以验证电子证据完整性;
电子证据使用是指:用户访问电子证据,同时为了检验电子证据完整性,还需要根据服务器所提供的哈希值检测电子证据。主要包括以下环节:电子证据的访问以及电子证据完整性的验证。电子证据访问是通过访问服务器存储的电子证据副本来实现,电子证据完整性验证则依托区块链以及基于秘密共享来验证电子证据哈希值。
步骤S102.1:访问电子证据;
当用户访问电子证据时,其实是访问多个电子证据片段。不过,服务器并不关心哪些电子证据片段属于某个电子证据,电子证据片段的归属由用户根据取证代理的发布信息所决定。当用户需要访问某电子证据时,需要自己明确该电子证据所有的电子证据片段的Pid信息。所以,用户首先明确电子证据所属电子证据片段的Pid信息,然后向服务器提供需要查询的电子证据片段Pid,由服务器查询并返回相应的电子证据片段,最后由用户收集相应的电子证据片段后,进行拼接和还原。
当用户希望查询某个电子证据片段时,向服务器集群中任何一个服务器(例如A)发出请求。服务器A根据电子证据片Pid,首先查询本地存储信息以获取相应的电子证据片,如果本地未存储相应的电子证据片段,向集群内广播电子证据片段Pid,请求其它服务器协助。可能存在多个冗余存储的服务器响应,服务器A择其中之一(例如服务器B)发出进一步协查请求,由服务器B返回电子证据片段至服务器A,由服务器A返回给用户。
Figure BDA0002576340020000171
步骤S102.2:验证电子证据完整性;
验证电子证据完整性分为两个步骤:依托区块链验证电子证据区块的完整性,以及依托秘密共享验证电子证据片断的完整性。依托区块链验证电子证据区块的完整性与传统区块链验证方式类似,从最后一个区块向前回溯,根据每个区块所存储的前一个区块的哈希值,来验证前一个区块的完整性,似此类似,直到验证到目标区块为止。本发明对此不作要求。
依托秘密共享验证电子证据片段的完整性是本发明所设计的,其过程类似于出块时对区块完整性验证。当用户需要验证位于区块内某个电子证据片段时,需要对区块内莫科尔树实施完整性验证。验证的方法是取得存储在区块内,各取证服务器的背书签名{C,time,x,rd,Sigci(hash(time||x||rd))},验证时间戳time是否正确,验证签名值是否正确,获取莫科尔树根的秘密份额。在收集到足够的份额后,用户还原秘密得到莫科尔树根节点的哈希值。基于莫科尔树的根节点,验证指定叶子节点的完整性,即电子证据片段的完整性。
Figure BDA0002576340020000181
Figure BDA0002576340020000191
具体地,访问电子证据的完整工作流程是:协议4→协议5(在协议5验证协议4所获电子证据的完整性),具体如下所示
工作流程2:电子证据访问工作流程
(1)基于协议4访问电子证据;
(2)基于协议5验证电子证据完整性。
步骤S103:服务器进行动态调整,包括新服务器的加入、服务器退出时修复电子证据副本以及修复电子证据片段哈希值的秘密份额;
服务器动态调整是为了适应分布式环境下服务器动态变化的特点所设计的。当某个服务器退出时,会导致电子证据副本丢失以及反映电子证据完整性的哈希值丢失。虽然少量服务器的退出,可能并不会影响电子证据的使用。但是如果退出服务器过多,数据丢失的概率就会明显增加。所以,当某个服务器退出时,有必要及时将其退出的影响消除(将其存储的数据,转存到其它服务器)。主要包括以下环节:新服务器的加入、服务器退出时修复电子证据副本以及修复电子证据片段哈希值的秘密份额。
步骤S103.1:取证服务器的加入;
取证服务器的加入,由可信第三方协同完成。可信第三方一般是密码管理中心,或者司法权威部门。可信第三方为新增加的取证服务器生成一对公私钥,并向取证服务器集群内发布该该服务器的公钥以及IP地址、服务器ID号等身份信息。准备就绪后,新增加的取证服务器向服务器集群内广播消息,正式加入集群。
Figure BDA0002576340020000192
Figure BDA0002576340020000201
步骤S103.2:服务器的退出;
服务器的退出可以是显式的,或者隐式的。显式的是指服务器明确告知各服务器,由于某种原因其将退出集群,请集群内各服务器注意。隐式的是指由于某种故障等原因,服务器无法再对外提供服务,连通知消息也无法发出。对于隐式退出,其它服务器可以通过心跳查询来发现问题,但是存在一定的时间延迟。无论显式或隐式,当某个服务器不再提供服务时,其它服务器将修复该服务器所造成的影响。
服务器退出的影响主要有两个方面:电子证据片段的冗余存储,电子证据片段哈希值秘密份额的存储。出于性能考虑,本发明设定冗余修复阈值,具体是指只有当副本数量,或者秘密份额数量少于某个程度时,再开启冗余修复。例如:冗余存储因子为4,表明电子证据片段的副本总量为4,设冗余修复阈值为2,只有当副本总量小于2时,才开始复制副本并增加副本总量至额定数量4。
Figure BDA0002576340020000202
Figure BDA0002576340020000211
除了修复冗余存储数据集,还需要修复电子证据片段哈希值的秘密份额。
Figure BDA0002576340020000212
具体地,服务器动态调整的完整工作流程是:协议6(服务器加入);协议7→协议8(服务器退出),具体如下所示
Figure BDA0002576340020000221
值得说明的是,本发明未对区块链原有一些措施进行说明,例如当多个服务器同时生成区块,链接时存在副链的解决方案,我们仍然借用传统区块链管理方法来完成此类问题的解决。此外,本发明未对分布式环境下实体选择方法作特殊要求,我们假设现有技术能够很好满足本发明的需求(服务器的选择不受单个服务器的控制)。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于区块链和秘密共享的电子证据保全方法,其特征在于,包括:
步骤1:取证代理向服务器提交电子证据数据,服务器存储电子证据并生成其完整性检验数据;步骤2:用户访问电子证据,同时根据服务器所提供的哈希值检测电子证据,以验证电子证据完整性;
步骤3:服务器进行动态调整,包括新服务器的加入、服务器退出时修复电子证据副本以及修复电子证据片段哈希值的秘密份额;
所述步骤1包括:
步骤1.1:取证代理提交电子证据原始数据后,服务器采用冗余存储的方式进行电子证据原始数据的存储;
步骤1.2:服务器采用基于拉格朗日插值公式的秘密共享的方式分散存储电子证据片段哈希值,并检测存储在服务器内的电子证据的完整性;
所述步骤1.1包括:
步骤1.1.1:取证代理U生成随机数random,计算哈希值hash(P||random),其中P为电子证据片段;
步骤1.1.2:U确定接收电子证据的服务器C,并使用两者共享的会话密钥加密random,加密结果表示为Ekey(random);
步骤1.1.3:U发送消息M1={U,P,Ekey(random),hash(P||random)}至C;
步骤1.1.4:C解读消息M1,获取消息发送者身份U,并用两者共享的会话密钥解密Ekey(random),得到random,并计算hash(P||random),验证P的完整性;如果P的完整性检验未通过,C返回错误提示,协议结束;如果P的完整性检验通过,继续下一步;
步骤1.1.5:C根据预先定义的策略,随机参与冗余存储的服务器列表为C1,C2,...,Cn
步骤1.1.6:C计算P的完整性摘要值Hash(P),令m=Hash(P),m为签名消息,并对m进行签名,得到签名值SigC(m)、即SigC(Hash(P));
步骤1.1.7:C发送消息M2={Pid,C,(C1,C2,...,Cn),Hash(P),SigC(Hash(P)),P}、即冗余存储数据集,其中Pid为电子证据片段标识;
步骤1.1.8:参与冗余存储的服务器Ci将M2保存,1≤i≤n,协议结束。
2.根据权利要求1所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤1.2包括:
步骤1.2.1:C生成电子证据片段P的完整性记录{Pid,m};
步骤1.2.2:C按预定查找空闲莫科尔树的叶子节点,用{Pid,m}更新叶子节点,并按照莫科尔树更新规则,更新该叶子节点至根的一系列中间节点,得到根节点值s作为秘密信息;
步骤1.2.3:C随机选择若干服务器参与者C1,C2,...,Cn,作为秘密信息s实施秘密共享参与者;
步骤1.2.4:C随机生成k-1个随机数α12,…αk-1,并构建一个新的多项式f(x)=s+α1x+α2x2+…+αk-1xk-1,其中x为当前莫科尔树有效叶子节点的数量;
步骤1.2.5:C计算si=f(xi),1≤i≤n,si为基于拉格朗日插值算法生成的秘密份额,xi是C生成的随机数;
步骤1.2.6:C生成电子证据片段哈希值数据集Msg={C,(C1,C2,...,Cn),Nid,x,si};其中Nid为区块标识;
步骤1.2.7:C发送消息Msg至C1,C2,...,Cn
步骤1.2.8:参与存储的服务器Ci将Msg保存,1≤i≤n,协议退出。
3.根据权利要求2所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,在所述步骤1.2之后还包括:
步骤1.3:当服务器存储足够多的哈希值后,在多个服务器协同认证的基础上,产生新的电子证据区块,并作为尾端区块接入到区块链中。
4.根据权利要求3所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤1.3包括:
步骤1.3.1:C广播电子证据区块生成协助消息,消息内包括Nid;
步骤1.3.2:接收消息的各服务器,根据Nid检查自己所持有的电子证据片段哈希值数据集{C,(C1,C2,...,Cn),Nid,g,si},明确自己是否参与电子证据片段哈希值的秘密共享;其中g表示按从左到右计数的叶子节点号;
步骤1.3.3:从第一个叶子节点开始,多个服务器参与莫科尔树的根节点中间结果还原操作;包括:
步骤1.3.3a:持有第一个叶子节点哈希值数据集的服务器,广播持有的电子证据片段哈希值数据集{C,(C1,C2,...,Cn),Nid,1,si};
步骤1.3.3b:相关服务器收集g个以上秘密份额,并还原得到s;
步骤1.3.3c:继续还原下一个叶子节点更新时莫科尔树的根节点值;
步骤1.3.3d:反复上述操作,直至得到莫科尔树的根节点值的所有状态结果r1,r2,...rd;rd为莫科尔树树根节点的最后状态的值;d为莫科尔树叶子节点的数目;
步骤1.3.3e:根据莫科尔树的根节点值验证莫科尔树的完整性;
步骤1.3.3f:如果莫科尔树未被篡改,继续下一步,否则协议中止;
步骤1.3.4:参与认证的服务器Ci各自计算;包括:
步骤1.3.4a:生成随机数random;
步骤1.3.4b:计算m=hash(time||random||rd),其中time表示区块的时间戳,然后对m签名得到SigCi(m)、即SigCi(hash(time||random||rd));
步骤1.3.4c:生成背书数据{Ci,random,rm,SigCi(hash(time||random||rd))};
步骤1.3.5:Ci向C发送背书数据,C将接收的背书数据写入区块,当收集到足够多的背书数据后,协议中止。
5.根据权利要求2所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤2包括:
步骤2.1:通过访问服务器存储的电子证据副本完成电子证据访问;
步骤2.2:通过区块链以及基于秘密共享验证电子证据哈希值,完成电子证据完整性验证。
6.根据权利要求5所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤2.1包括:
步骤2.1.1:用户向取证服务器集群中某个服务器C发出查询请求,请求数据包内含有电子证据片段标识Pid;
步骤2.1.2:C根据Pid查询本地是否存有电子证据片段,是则返回给用户,否则继续下一步;
步骤2.1.3:C在取证服务器集群内,广播Pid,请求相关服务器协查;
步骤2.1.4:其它取证服务器内获取Pid后,查询本地存储情况,如果存储有该电子证据片段,就发送响应数据包;
步骤2.1.5:C接收到响应数据包后,获取存储数据的取证服务器列表,从中选取某个取证服务器Cj,1≤j≤n;如果C没有收到任何响应数据包,则向用户返回错误信息,协议结束;
步骤2.1.6:C发送查询请求报文至Cj,要求Cj发送指定的电子证据片段;
步骤2.1.7:Cj接收C的查询请求,发送{Pid,C0,(C1,C2,...,Cn),Hash(P),SigC0(Hash(P)),P}至C,其中C0表示当初接收该电子证据片段的服务器;
步骤2.1.8:C转发消息包至用户;
步骤2.1.9:用户根据签名SigC0(Hash(P))验证Hash(P)是否被篡改,并进一步验证P是否被篡改,协议结束。
7.根据权利要求5所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤2.2包括:
步骤2.2.1:用户向取证服务器集群中某个服务器C发出完整性验证请求,请求数据包内含有电子证据区块标识Nid和电子证据片段标识Pid;
步骤2.2.2:C根据Nid,从最后一个区块开始,计算前一个区块的哈希值,跟最后一个区块存储的哈希值对比,若二者相同,则跳到前一个区块进行验证,直至验证目标区块的完整性;如果通过完整性验证,继续下一步,否则向用户返回错误提示;
步骤2.2.3:C读取区块内所记载的、各服务器的背书数据{C,time,x,rd,Sigci(hash(time||x||rd))},其中x为当前莫科尔树有效叶子节点的数量;
步骤2.2.4:针对某个背书签名数据包,C完成以下操作:
步骤2.2.4a:验证时间戳time的正确性;
步骤2.2.4b:计算hash(time||x||rd);
步骤2.2.4c:验证签名Sigci(hash(time||x||rd))的正确性;
步骤2.2.5:C采集足够的秘密份额,按照基于拉格朗日插值公式的秘密共享的方式,将莫科尔树根节点的值进行还原;
步骤2.2.6:C根据莫科尔树根节点的值,验证指定叶子节点的哈希值,并返回验证结果。
8.根据权利要求4所述的一种基于区块链和秘密共享的电子证据保全方法,其特征在于,所述步骤3包括:
步骤3.1:新服务器的加入,包括:
步骤3.1.1:电子证据服务器C向可信第三方T提出加入电子证据服务器集群的请求;
步骤3.1.2:T接收请求,并验证C的信息;
步骤3.1.3:T为C生成证书,包括公钥、IP地址、服务器标识信息,并向集群内发布,C秘密持有私钥;
步骤3.1.4:C向服务器集群内广播加入集群的消息;
步骤3.1.5:集群内其它服务器根据T发布的消息,将C纳入在线服务器列表,并参与后续的冗余存储活动,协议结束;
步骤3.2:服务器退出时修复电子证据副本;包括:
步骤3.2.1:服务器C显式或隐式退出电子证据服务器集群;
步骤3.2.2:服务器Ci发现C退出集群,检查所持有冗余存储数据集中的服务器列表C1,C2,...,Ce,确定C是否存在于列表中;e是预设的保存副本的数量,1<e<n;
步骤3.2.3:如果C存在服务器列表中,Ci广播消息询问列表中其它服务器是否在线;
步骤3.2.4:随机推选某个服务器作为临时的控制服务器;
步骤3.2.5:临时控制服务器检查副本数量是否满足触发副本修复条件,如果满足条件则开始修复,否则广播暂时不修复的消息,退出;
步骤3.2.6:临时控制服务器选择在线服务器C’,修改服务器列表,保证服务器列表内的服务器在线,更新冗余存储数据集中的服务列表信息,并向新增加的服务器发送新的冗余存储数据集;
步骤3.2.7:临时控制服务器广播新的服务器列表,各相关服务器同步冗余存储数据集;
步骤3.2.8:C’广播冗余存储数据集的完整性值,服务器列表内各服务器验证,如果各服务器均没有异议,电子证据片段修复结束;
步骤3.3:服务器退出时修复电子证据片段哈希值的秘密份额;包括:
步骤3.3.1:电子证据服务器C显式或隐式退出电子证据服务器集群;
步骤3.3.2:电子证据服务器Ci发现C退出集群,检查所持有电子证据片段秘密份额数据{C,(C1,C2,...,Ce),Nid,g,si};
步骤3.3.3:如果C存在服务器列表中,Ci询问列表中其它服务器是否在线;
步骤3.3.4:随机推选某个服务器作为临时的控制服务器;
步骤3.3.5:临时控制服务器检查份额数量是否满足触发份额修复条件,如果满足则开始修复,否则广播暂时不修复的消息,协议结束;
步骤3.3.6:服务器列表中所有在线服务器广播消息,临时控制服务器采集足够多的秘密份额,并还原多项式,从而生成新的秘密份额;
步骤3.3.7:临时控制服务器选择在线服务器,修改服务器列表,更新电子证据片段秘密份额数据,并向新的服务器列表中所有服务器发送更新后的服务器列表,其它服务器更新服务器列表;
步骤3.3.8:服务器列表中的各服务器完成两次还原操作:一次包括新生成秘密份额,一次不包括;如果两次还原出来的秘密信息相同,服务器认为生成秘密份额正确,修复成功;如果有一个服务器有异议,重新开始修复,如果连续修复三次失败,则视为修复失败,返回错误信息,协议退出,如果修复成功,返回成功信息,协议退出。
CN202010654762.9A 2020-07-09 2020-07-09 一种基于区块链和秘密共享的电子证据保全方法 Active CN112039837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010654762.9A CN112039837B (zh) 2020-07-09 2020-07-09 一种基于区块链和秘密共享的电子证据保全方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010654762.9A CN112039837B (zh) 2020-07-09 2020-07-09 一种基于区块链和秘密共享的电子证据保全方法

Publications (2)

Publication Number Publication Date
CN112039837A CN112039837A (zh) 2020-12-04
CN112039837B true CN112039837B (zh) 2022-09-02

Family

ID=73578948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010654762.9A Active CN112039837B (zh) 2020-07-09 2020-07-09 一种基于区块链和秘密共享的电子证据保全方法

Country Status (1)

Country Link
CN (1) CN112039837B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112635010B (zh) * 2020-12-28 2023-07-07 扬州大学 基于双区块链的边缘计算下数据存储与共享方法
CN113779645B (zh) * 2021-11-12 2022-02-22 南京大学 一种量子数字签名和量子数字签密方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107277189A (zh) * 2017-06-20 2017-10-20 郑州埃文计算机科技有限公司 一种针对全ip应用场景的分类方法
WO2018109010A1 (en) * 2016-12-15 2018-06-21 Luxembourg Institute Of Science And Technology (List) P2p network data distribution and retrieval using blockchain log
CN110532734A (zh) * 2019-07-12 2019-12-03 中国科学院信息工程研究所 一种基于安全多方计算的隐私时间戳的数字版权方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888375A (zh) * 2017-11-08 2018-04-06 深圳市携网科技有限公司 一种基于区块链技术的电子证据保全系统及方法
CN108897760A (zh) * 2018-05-22 2018-11-27 贵阳信息技术研究院(中科院软件所贵阳分部) 基于默克尔树的电子证据链完整性验证方法
CN109120398B (zh) * 2018-08-03 2021-07-27 河南师范大学 一种基于区块链系统的秘密共享方法与装置
CN109257180A (zh) * 2018-10-16 2019-01-22 深圳市乘法信息技术有限公司 一种基于区块链的知识产权文件存证的方法及装置
CN109194466B (zh) * 2018-10-29 2021-07-06 南开大学 一种基于区块链的云端数据完整性检测方法及系统
US11741247B2 (en) * 2018-12-20 2023-08-29 Sri International Smart privacy and controlled exposure on blockchains
CN109672529A (zh) * 2019-01-07 2019-04-23 苏宁易购集团股份有限公司 一种结合区块链和秘密共享的去匿名化的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018109010A1 (en) * 2016-12-15 2018-06-21 Luxembourg Institute Of Science And Technology (List) P2p network data distribution and retrieval using blockchain log
CN107277189A (zh) * 2017-06-20 2017-10-20 郑州埃文计算机科技有限公司 一种针对全ip应用场景的分类方法
CN110532734A (zh) * 2019-07-12 2019-12-03 中国科学院信息工程研究所 一种基于安全多方计算的隐私时间戳的数字版权方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种区块链的云计算电子取证模型;黄晓芳等;《北京邮电大学学报》;20171231;第40卷(第06期);全文 *

Also Published As

Publication number Publication date
CN112039837A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
Luu et al. Scp: A computationally-scalable byzantine consensus protocol for blockchains
CN106972931B (zh) 一种pki中证书透明化的方法
US20220294622A1 (en) Methods and systems to establish trusted peer-to-peer communications between nodes in a blockchain network
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
US20180331832A1 (en) Cryptographic Transactions System
CN110012126B (zh) 一种基于区块链技术的dns系统
CN111639361A (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
CN112583596B (zh) 一种基于区块链技术的完全跨域身份认证方法
CN113194469A (zh) 基于区块链的5g无人机跨域身份认证方法、系统及终端
CN109685505B (zh) 基于关联环签名的拜占庭容错共识优化方法
CN113328997B (zh) 联盟链跨链系统及方法
EP3966997B1 (en) Methods and devices for public key management using a blockchain
CN113055188A (zh) 一种数据处理方法、装置、设备及存储介质
CN114391241A (zh) 具有可调整法定数量的区块链分片
CN115378604A (zh) 一种基于信誉值机制的边缘计算终端设备的身份认证方法
CN112039837B (zh) 一种基于区块链和秘密共享的电子证据保全方法
EP1694027A1 (en) Peer-to-peer network information
CN110445795B (zh) 一种区块链认证唯一性确认方法
KR20200081533A (ko) 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법
CN114731279A (zh) 用于自动数字证书验证的方法和装置
CN110851859B (zh) 一种具有(n,t)门限的分布式权威节点区块链系统的认证方法
Wu et al. Robust and auditable distributed data storage with scalability in edge computing
US20230319103A1 (en) Identifying denial-of-service attacks
Ozcelik et al. Cryptorevocate: A cryptographic accumulator based distributed certificate revocation list
CN116614519A (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
GR01 Patent grant
GR01 Patent grant