李振汕
摘? 要: 為了保證電子證據(jù)鏈的完整性,提出采用區(qū)塊鏈和云存儲(chǔ)的混合架構(gòu),利用電子證據(jù)文件構(gòu)建默克爾樹,并與案件號、存證人員身份信息共同組成區(qū)塊體。以上一區(qū)塊的Hash值、區(qū)塊編號、區(qū)塊體默克爾樹根節(jié)點(diǎn)Hash值和存入時(shí)間戳組成區(qū)塊頭,將區(qū)塊頭和區(qū)塊體共同存儲(chǔ)到相應(yīng)的區(qū)塊鏈中,最后通過二維碼實(shí)現(xiàn)對電子證據(jù)的檢索、查詢和驗(yàn)證。保證了電子證據(jù)真實(shí)、可溯源、不可篡改,提高電子證據(jù)的可信度。
關(guān)鍵詞: 電子證據(jù); 區(qū)塊鏈; 完整性; 默克爾樹
中圖分類號:TN911,TP391? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號:1006-8228(2019)12-01-04
Research on the block-chain based method of electronic certificate deposit with integrity
Li Zhenshan
(Department of Information Engineering, Guangxi Police College, Nanning, Guangxi 530200, China)
Abstract: In order to ensure the integrity of the electronic evidence chain, a hybrid architecture of block-chain and cloud storage is proposed. The electronic evidence file is used to construct the Merkel tree, and to form the block body together with the case number and the identity information of the depositor. The Hash value of the previous block, the block number, the Hash value of the block body Merkel root node, and the time stamp of the block form the block header. The block header and the block body are collectively stored in the corresponding block-chain, and finally generate the two-dimensional code. The code implements the retrieval, query and verification of electronic evidence. It ensures that electronic evidence is truly traceable, cannot be falsified, and improves the credibility of electronic evidence.
Key words: electronic evidence; block-chain; integrity; Merkel tree
0 引言
隨著人們使用互聯(lián)網(wǎng)和信息消費(fèi)的迅猛發(fā)展,電子數(shù)據(jù)越來越多地被當(dāng)做證據(jù)使用。電子證據(jù)附著在數(shù)字媒體上,具有技術(shù)高、準(zhǔn)確、形式多樣、易于傳輸和再現(xiàn)的特點(diǎn)。電子證據(jù)的這些優(yōu)勢使得其在證明案件事實(shí)方面發(fā)揮著越來越重要的作用。但是,相比較于傳統(tǒng)證據(jù),電子證據(jù)也有很多缺點(diǎn),比如易于受誤操作、硬件故障等因素的影響,很容易被破壞和篡改,這大大限制了電子證據(jù)的可信性[1]。
在電子取證領(lǐng)域,許多網(wǎng)絡(luò)類型的刑事案件涉及到多個(gè)電子證據(jù)文件,這些文件之間具有一定的關(guān)聯(lián),它們之間的內(nèi)容相互印證,共同構(gòu)成某一案件完整的證據(jù)鏈條,用于證明某一案件的真實(shí)性。電子證據(jù)鏈的完整性是衡量證據(jù)鏈證明力的重要屬性指標(biāo)。然而,電子證據(jù)鏈的完整性涉及證據(jù)提取、證據(jù)固定、證據(jù)驗(yàn)證等多個(gè)步驟,這是一個(gè)復(fù)雜的技術(shù)過程。在實(shí)踐中,可以保障電子證據(jù)完整性的手段還比較單一。
鑒于現(xiàn)有技術(shù)中的不足,本文提出了一種基于完整性的區(qū)塊鏈存證方法,可有效地解決電子證據(jù)鏈的完整性驗(yàn)證問題。
1 相關(guān)背景知識
區(qū)塊鏈技術(shù)是由非對稱加密、分布式數(shù)據(jù)存儲(chǔ)、加密算法、哈希、默克爾樹(Merkel)和點(diǎn)對點(diǎn)傳輸組成。區(qū)塊鏈技術(shù)通過可靠的數(shù)字加密算法和分布式節(jié)點(diǎn)驗(yàn)證和共識機(jī)制,解決了分散系統(tǒng)中節(jié)點(diǎn)間有效信息保護(hù)和信任建立的問題[2],從而在公開透明的基礎(chǔ)上完成信息的傳輸和價(jià)值的轉(zhuǎn)移,實(shí)現(xiàn)當(dāng)前網(wǎng)絡(luò)架構(gòu)的重大轉(zhuǎn)變。
區(qū)塊鏈借由密碼學(xué)串接并保護(hù)內(nèi)容的串連記錄。其存儲(chǔ)以區(qū)塊為單位,每個(gè)區(qū)塊由區(qū)塊頭和區(qū)塊體組成,存儲(chǔ)的內(nèi)容除默克爾樹外,還包含了前一個(gè)區(qū)塊內(nèi)容的哈希值,它等同于前一個(gè)邏輯區(qū)塊的邏輯指針。同理,本區(qū)塊的哈希值也會(huì)被保存在下一個(gè)新區(qū)塊的內(nèi)容中[3]。這是一種前向背書的過程,即新區(qū)塊的產(chǎn)生進(jìn)一步強(qiáng)化鎖定了所有舊區(qū)塊的內(nèi)容。這樣通過密碼學(xué)驗(yàn)證的方式構(gòu)建了保證時(shí)序的、不可偽造、不可篡改、不可撤銷的鏈條。因此,區(qū)塊鏈具有分布、開放、匿名、自治、協(xié)同和透明的特點(diǎn),從而保證了鏈中信息的正確時(shí)序,具有不可偽造、不可篡改、不可刪除的有點(diǎn)。
Merkel樹是區(qū)塊鏈的重要數(shù)據(jù)結(jié)構(gòu)。它具有兩大特性:一是任意一個(gè)葉子節(jié)點(diǎn)的細(xì)微變動(dòng),都會(huì)導(dǎo)致默克爾樹根節(jié)點(diǎn)發(fā)生翻天覆地的變化,這可以用來判斷兩個(gè)不同時(shí)間或地點(diǎn)獲取的數(shù)據(jù)是否完全一致;二是快速定位修改,如果一個(gè)節(jié)點(diǎn)被修改,就會(huì)向上影響到相鄰的節(jié)點(diǎn)直至默克爾樹根,沿著這條路徑便可以快速定位被篡改的節(jié)點(diǎn)。
然而,現(xiàn)有的使用區(qū)塊鏈保存證據(jù)的技術(shù)往往認(rèn)為由某個(gè)可信組織申請存入?yún)^(qū)塊鏈的數(shù)據(jù)即為真實(shí)的證據(jù),忽略了對電子證據(jù)完整性的檢查,因此,存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù)并不一定是完整的真實(shí)證據(jù)信息。比如負(fù)責(zé)證據(jù)入鏈請求的節(jié)點(diǎn)被黑客控制,黑客完全可以將自己偽造的信息保存入?yún)^(qū)塊鏈中,而使其他各方都認(rèn)為這是真實(shí)的電子證據(jù)。因此,急需解決現(xiàn)有電子證據(jù)存儲(chǔ)方法存在的問題。
2 基于完整性的區(qū)塊鏈電子存證方法
2.1 存證方法的實(shí)現(xiàn)流程
為了保證電子證據(jù)鏈的完整性,確保電子證據(jù)的可追溯性,同時(shí)提高電子證據(jù)保存的安全性,有效降低保存成本。本文采用區(qū)塊鏈技術(shù),引入時(shí)間戳服務(wù),將同一個(gè)案件的多個(gè)電子證據(jù)記錄形成證據(jù)鏈存入?yún)^(qū)塊鏈,通過證據(jù)數(shù)據(jù)鏈完整性驗(yàn)證和區(qū)塊鏈完整性驗(yàn)證,排除了整個(gè)電子證據(jù)鏈被篡改或銷毀的可能性,確保了證據(jù)鏈的完整性。其實(shí)現(xiàn)方法的流程如圖1所示。
如圖1所示,基于完整性的區(qū)塊鏈電子存證方法具體步驟[4]為:
⑴ 區(qū)塊鏈系統(tǒng)對存證人員進(jìn)行身份認(rèn)證,身份認(rèn)證通過后,存證人員方可使用區(qū)塊鏈系統(tǒng)進(jìn)行存證,否則,系統(tǒng)返回錯(cuò)誤信息,存證操作失敗;
⑵ 以案件號為關(guān)鍵字,將具有相同案件號的多個(gè)相關(guān)聯(lián)的電子證據(jù)文件組合成電子證據(jù)集;
⑶ 處理電子證據(jù)集,一方面,加密電子證據(jù)集以獲得密文,然后將存證人員身份信息、存入時(shí)間戳、案件號和密文一起存儲(chǔ)到云端存儲(chǔ)器,并返回本次存儲(chǔ)的云存儲(chǔ)位置信息,另一方面,利用電子證據(jù)集中的電子證據(jù)文件構(gòu)造Merkel樹,再將案件號、存證人員身份信息和生成的默克爾樹共同組成區(qū)塊體;
⑷ 將上一區(qū)塊的Hash值、區(qū)塊編號、區(qū)塊體默克爾樹根節(jié)點(diǎn)Hash值和存入時(shí)間戳共同組成區(qū)塊頭,如果沒有上一區(qū)塊,則其Hash值全為零;
⑸ 將上述所生成的區(qū)塊頭和區(qū)塊體組成區(qū)塊,并將區(qū)塊存儲(chǔ)到相應(yīng)的區(qū)塊鏈中,返回本次存儲(chǔ)的區(qū)塊鏈存儲(chǔ)位置信息;
⑹ 生成二維碼,二維碼中的信息包括存證人員身份信息、案件號、本次存儲(chǔ)的云存儲(chǔ)位置信息和區(qū)塊鏈存儲(chǔ)位置信息,便于用戶進(jìn)行電子證據(jù)的查詢、驗(yàn)證和提取。
2.2 存證方法的實(shí)現(xiàn)結(jié)構(gòu)
為了實(shí)現(xiàn)上述的存證方法,本文設(shè)計(jì)了基于完整性的區(qū)塊鏈電子存證系統(tǒng),其體系結(jié)構(gòu)如圖2所示。整個(gè)系統(tǒng)包括身份管理模塊、存證數(shù)據(jù)歸集模塊、區(qū)塊體生成模塊、區(qū)塊頭生成模塊、區(qū)塊生成模塊、區(qū)塊鏈模塊和云存儲(chǔ)模塊。在身份管理模塊對存證人員進(jìn)行身份認(rèn)證后就可以進(jìn)行存證,首先由存證數(shù)據(jù)歸集模塊按案件號將多個(gè)相關(guān)的電子證據(jù)文件組合成電子證據(jù)集,與存證人員的身份信息、案件號和存入時(shí)間戳歸集在一起,共同組成存證數(shù)據(jù)集,再將存證數(shù)據(jù)集送到區(qū)塊體生成模塊和區(qū)塊頭生成模塊分別生成區(qū)塊頭和區(qū)塊體,然后將區(qū)塊頭和區(qū)塊體交由區(qū)塊生成模塊進(jìn)行組合,共同組成一個(gè)完整的區(qū)塊,最后將區(qū)塊送往區(qū)塊鏈模塊進(jìn)行存儲(chǔ)。同時(shí),觸發(fā)區(qū)塊鏈系統(tǒng)中包含二維碼生成程序的智能合約,生成二維碼,用于后續(xù)查詢和驗(yàn)證電子證據(jù)。
2.3 區(qū)塊的構(gòu)造
2.3.1 區(qū)塊的結(jié)構(gòu)
區(qū)塊的構(gòu)造既是本方法實(shí)現(xiàn)的重點(diǎn),也是難點(diǎn)。一個(gè)結(jié)構(gòu)合理的區(qū)塊既可保證存儲(chǔ)信息的完整性,也可提高系統(tǒng)的存儲(chǔ)效益和信息的讀寫效率,便于查詢。區(qū)塊由區(qū)塊頭和區(qū)塊體兩部分組成,對于不同的系統(tǒng),針對不同的應(yīng)用目的,區(qū)塊頭和區(qū)塊體的結(jié)構(gòu)及其內(nèi)容可以不同,基于證據(jù)鏈完整性的考慮,本文采用了如圖3所示的區(qū)塊結(jié)構(gòu)。
2.3.2 區(qū)塊體的生成
如圖3所示,區(qū)塊體包括案件號、存證人員的身份信息和默克爾樹等信息。默克爾樹是利用電子證據(jù)鏈中的電子證據(jù)文件構(gòu)建的。其生成過程[4]如圖4所示。
如圖4所示,使用電子證據(jù)鏈中的電子證據(jù)文件構(gòu)建Merkel樹的具體步驟如下:
⑴ 按取證時(shí)間將具有相同案件號的多個(gè)電子證據(jù)文件進(jìn)行排序;
⑵ 散列每個(gè)電子證據(jù)文件,其散列值是樹的葉子節(jié)點(diǎn)。如果電子證據(jù)文件的數(shù)量是奇數(shù),則復(fù)制最后的散列值以形成偶數(shù)個(gè)葉子節(jié)點(diǎn)。如圖4中的葉子節(jié)點(diǎn)Hash(0-6)和Hash(0-7)相同,兩者均為電子證據(jù)文件e17的散列值;
⑶ 連接兩個(gè)相鄰的散列值,然后對它們進(jìn)行哈希處理以生成上層父節(jié)點(diǎn);
⑷ 重復(fù)步驟⑴和⑶,直到生成根節(jié)點(diǎn)。
如圖4所示,具有案件編號“1”的電子證據(jù)鏈包含7個(gè)電子證據(jù)文件,并且根據(jù)上述過程生成Merkel樹。在該Merkel樹中,由于葉子節(jié)點(diǎn)是電子證據(jù)文件的散列值,因此中間節(jié)點(diǎn)是其兩個(gè)子節(jié)點(diǎn)的散列值,根節(jié)點(diǎn)也是兩個(gè)中間節(jié)點(diǎn)的散列值,因此對底層數(shù)據(jù)的任更改都將傳遞給父節(jié)點(diǎn),一直到根節(jié)點(diǎn)[5]。
2.3.3? 區(qū)塊頭的生成
從圖4中可以看出,區(qū)塊頭由上一區(qū)塊的Hash值、區(qū)塊編號、區(qū)塊體默克爾樹根節(jié)點(diǎn)Hash值、存入時(shí)間戳組成,如果沒有上一區(qū)塊,則其Hash值全為零。
2.4 完整性驗(yàn)證
驗(yàn)證人員通過掃描二維碼查看信息并驗(yàn)證身份;身份認(rèn)證通過后,驗(yàn)證人員就可以開始驗(yàn)證操作,本文的完整性驗(yàn)證包括默克爾樹完整性驗(yàn)證和區(qū)塊鏈完整性驗(yàn)證。
2.4.1 默克爾樹完整性驗(yàn)證
驗(yàn)證人員通過掃描二維碼獲得相應(yīng)案件號的電子證據(jù)在云存儲(chǔ)中的位置信息,并根據(jù)該位置信息在云端存儲(chǔ)器中查找并獲取相應(yīng)的電子證據(jù)密文,解密后得到相應(yīng)的電子證據(jù)集,然后根據(jù)上圖4中的方法生成新的Merkel樹,將其與區(qū)塊鏈上的Merkel樹進(jìn)行比較,其具體步驟為:
⑴ 比對根節(jié)點(diǎn),若根節(jié)點(diǎn)相同,說明默克爾樹完整,從而表明電子證據(jù)鏈滿足完整性要求,驗(yàn)證結(jié)束,否則電子證據(jù)鏈不完整,繼續(xù)執(zhí)行步驟2;
⑵ 比對兩個(gè)子節(jié)點(diǎn),并檢索哈希值不一致的子節(jié)點(diǎn);
⑶ 重復(fù)步驟2,直到比對至葉子節(jié)點(diǎn);
⑷ 確定與不一致葉子節(jié)點(diǎn)對應(yīng)的電子證據(jù)文件,表明該電子證據(jù)文件已被篡改。
2.4.2 區(qū)塊鏈完整性驗(yàn)證
驗(yàn)證人員通過掃描二維碼獲取相應(yīng)案件號的電子證據(jù)在區(qū)塊鏈中的存儲(chǔ)位置信息,根據(jù)案件號檢索相對應(yīng)的區(qū)塊,從該區(qū)塊的區(qū)塊頭中獲得該區(qū)塊的區(qū)塊編號,從而可以確定上一區(qū)塊的區(qū)塊編號,根據(jù)該區(qū)塊編號就可以定位檢索到上一區(qū)塊,由此計(jì)算得到上一區(qū)塊的Hash值。采用相同的辦法就可以計(jì)算得到下一區(qū)塊的Hash值,通過比較上一區(qū)塊Hash值與該區(qū)塊頭中存儲(chǔ)上一區(qū)塊的Hash值,比較該區(qū)塊Hash值與下一區(qū)塊的區(qū)塊頭中存儲(chǔ)的上一區(qū)塊Hash值,當(dāng)兩者均相同時(shí),表明區(qū)塊鏈?zhǔn)峭暾?,從而證明相關(guān)的電子證據(jù)也是完整的[6]。
3 結(jié)論
電子數(shù)據(jù)是現(xiàn)代高科技的產(chǎn)物,具有易創(chuàng)建、易存儲(chǔ)、易傳輸和高利用率等特點(diǎn),可靠性高、證明力強(qiáng)。電子數(shù)據(jù)存證不僅要保障數(shù)據(jù)的可信性和完整性,還要便于存儲(chǔ)、共享、驗(yàn)證和分享。借助于區(qū)塊鏈技術(shù),本文提出采用區(qū)塊鏈和云存儲(chǔ)的混合架構(gòu)保存電子證據(jù),通過使用時(shí)間戳,為電子證據(jù)提供原始的唯一時(shí)間證據(jù),并確保電子證據(jù)真正可追溯,不會(huì)被篡改;在存證端對電子證據(jù)加密后再保存,不僅可以確保傳輸過程中電子證據(jù)的安全性,有效避免隱私證據(jù)泄露的風(fēng)險(xiǎn),而且這種全過程密文傳輸和存儲(chǔ)方法不需要訪問控制網(wǎng)關(guān),適用性高,降低控制網(wǎng)關(guān)被入侵的風(fēng)險(xiǎn),還可在客戶端實(shí)現(xiàn)高速數(shù)據(jù)處理;使用Merkel樹存儲(chǔ)電子證據(jù)文件,便于驗(yàn)證電子證據(jù)鏈的完整性,同時(shí)提高電子證據(jù)保存的安全性,并有效降低保存成本;采用二維碼技術(shù),便于客戶端檢索、查詢和驗(yàn)證相關(guān)的電子證據(jù),提高方法的可用性。隨著區(qū)塊鏈技術(shù)的發(fā)展和應(yīng)用的深入,目前的電子存證將顯現(xiàn)其不足,諸如存證過程自動(dòng)化程度不高、存證過程中電子數(shù)據(jù)風(fēng)險(xiǎn)較大、第三方機(jī)構(gòu)法律處理流程繁瑣等問題,這些問題需要進(jìn)一步解決。
參考文獻(xiàn)(References):
[1] 趙志巖,石文昌.基于證據(jù)鏈的電子證據(jù)可信性分析[J].計(jì)算機(jī)科學(xué),2016.7:131-135
[2] 劉敖迪,杜學(xué)繪,王娜,等. 區(qū)塊鏈技術(shù)及其在信息安全領(lǐng)域的研究進(jìn)展[J].軟件學(xué)報(bào),2018.7:2092-2115
[3] 翟晨曦,徐偉,徐坤,等.區(qū)塊鏈在我國證券市場的應(yīng)用與監(jiān)管研究[J].金融監(jiān)管研究,2018.7:33-54
[4] 梁庚,李玉成,左春,等.基于默克爾樹的電子證據(jù)鏈完整性驗(yàn)證方法[P].中國:CN 108897760A,2018.11.27.
[5] 翁曉康,張平,王煒,等.基于非平衡哈希樹的平臺(tái)完整性遠(yuǎn)程驗(yàn)證機(jī)制[J].計(jì)算機(jī)應(yīng)用,2014.2:433-437
[6] 楊志剛,熊瑜,陳蕾,等.一種消息發(fā)布、校驗(yàn)方法及系統(tǒng)[P].中國:CN 109462470A,2019.03.12.