陳 潮
(浙江警察學(xué)院計算機(jī)與信息安全系,杭州 310053)
隨著信息技術(shù)的不斷發(fā)展及在各個社會領(lǐng)域的深入應(yīng)用,人類社會產(chǎn)生的電子數(shù)據(jù)呈現(xiàn)爆炸式增長,公安機(jī)關(guān)在辦理各類案件中提取海量的電子數(shù)據(jù),部分電子數(shù)據(jù)成為案件偵查、訴訟和審判等司法活動中必須的電子證據(jù)?!吨腥A人民共和國民事訴訟法》和《中華人民共和國刑事訴訟法》中明確規(guī)定電子數(shù)據(jù)可以作為證據(jù),電子證據(jù)已被列為八大類證據(jù)之一,成為司法活動中的重要證據(jù)之一[1]。電子證據(jù)具有的易復(fù)制、易篡改、易損壞和保管監(jiān)管難等特點,導(dǎo)致其在安全性和可靠性方面面臨巨大的挑戰(zhàn)。2018 年,最高人民法院發(fā)布《關(guān)于互聯(lián)網(wǎng)法院審理案件若干問題的規(guī)定》,人民法院應(yīng)當(dāng)對當(dāng)事人通過電子簽名、區(qū)塊鏈等證據(jù)收集、固定和防篡改的技術(shù)手段或通過電子取證存證平臺認(rèn)證收集的證據(jù)予以認(rèn)定[2]。
區(qū)塊鏈?zhǔn)且环N分布式存儲的共享數(shù)據(jù)庫,采用區(qū)塊和哈希鏈的數(shù)據(jù)結(jié)構(gòu),具有去中心化、防篡改和可溯源等特點,特別是其中的聯(lián)盟區(qū)塊鏈,適合公安機(jī)關(guān)跨部門跨警種使用,可以實現(xiàn)對電子證據(jù)的分布式存儲,采用共識算法實現(xiàn)各節(jié)點數(shù)據(jù)的一致性,從而確保上鏈后數(shù)據(jù)的無法篡改。當(dāng)前電子證據(jù)的種類和形式表現(xiàn)多樣性,存儲容量上既有以字節(jié)為單位的電子證據(jù),也有以太字節(jié)為單位的電子證據(jù),呈現(xiàn)數(shù)量級上的巨大差別,而區(qū)塊鏈在存儲大文件時存在冗余大、效力低和處理速度慢等問題,為解決區(qū)塊鏈不適合存儲容量較大的電子證據(jù)的問題,提出一種基于區(qū)塊鏈和星際文件系統(tǒng)的電子證據(jù)存儲模型,將電子證據(jù)及其哈希值分別存儲在星際文件系統(tǒng)和區(qū)塊鏈上,星際文件系統(tǒng)確保電子證據(jù)的去中心化和分布性存儲,區(qū)塊鏈實現(xiàn)對電子證據(jù)的查詢和驗證,從而有力地保障電子證據(jù)的司法效力。
區(qū)塊鏈?zhǔn)菙?shù)字加密貨幣比特幣的一種數(shù)據(jù)結(jié)構(gòu),區(qū)塊鏈技術(shù)是比特幣的底層支撐技術(shù),是計算機(jī)技術(shù)、點對點網(wǎng)絡(luò)、分布式存儲技術(shù)、共識算法、智能合約、密碼技術(shù)和博弈論等眾多理論和技術(shù)的集成創(chuàng)新,是近幾年來最新最熱門的信息技術(shù)之一。區(qū)塊鏈由區(qū)塊和哈希鏈兩個部分構(gòu)成,數(shù)據(jù)結(jié)構(gòu)是區(qū)塊,比特幣區(qū)塊結(jié)構(gòu)如圖1所示,區(qū)塊由區(qū)塊頭和區(qū)塊體兩個部分構(gòu)成,區(qū)塊頭包含前一區(qū)塊哈希值、區(qū)塊版本號、時間戳、目標(biāo)哈希(難度)、隨機(jī)數(shù)和默克爾樹根等,區(qū)塊體由該區(qū)塊所有交易的哈希構(gòu)成的一個默克爾樹根構(gòu)成[3]。區(qū)塊鏈網(wǎng)絡(luò)由眾多節(jié)點構(gòu)成,每個節(jié)點存儲全部或部分區(qū)塊的信息。區(qū)塊鏈分為若干類型,根據(jù)節(jié)點加入?yún)^(qū)塊鏈網(wǎng)絡(luò)是否需要許可,將區(qū)塊鏈分為許可鏈和非許可鏈,非許可鏈即公有鏈,任何節(jié)點無需許可即可加入公有鏈,是一種完全去中心化的區(qū)塊鏈,典型的公有鏈有比特幣、以太坊等;許可鏈又分為私有鏈和聯(lián)盟鏈,私有鏈一般用于一個單位或組織內(nèi)部,是一種不具有去中心化特點的區(qū)塊鏈;而聯(lián)盟鏈一般用于跨單位、跨組織和跨部門之間,是一種具有部分去中心化的區(qū)塊鏈。公安機(jī)關(guān)跨部門跨警種電子證據(jù)的存證,適合使用許可鏈,因此采用聯(lián)盟區(qū)塊鏈來搭建電子證據(jù)存證模型。
星際文件系統(tǒng)(interplanetary file transfer net?work,IPFS)是一種分布式數(shù)據(jù)存儲協(xié)議,用來替代互聯(lián)網(wǎng)中心化的HTTP協(xié)議,也是一種點對點的分布式文件存儲系統(tǒng),可以實現(xiàn)對各種類型文件的永久存儲,星際文件系統(tǒng)具備的重復(fù)文件刪除機(jī)制,能夠避免文件的重復(fù)存儲,從而節(jié)約存儲空間資源,同時存儲在星際文件系統(tǒng)中的文件具有唯一的哈希值,通過文件哈希值實現(xiàn)對文件的快速搜索和定位[4]。互聯(lián)網(wǎng)采用傳統(tǒng)的基于地址的尋址技術(shù),星際文件系統(tǒng)采用基于內(nèi)容的尋址技術(shù),當(dāng)一份文件提交到星際文件系統(tǒng)時,星際文件系統(tǒng)將文件分解為每個大小為256 K字節(jié)的數(shù)據(jù)塊,數(shù)據(jù)塊互相鏈接,并構(gòu)成默克爾有向無環(huán)圖。文件存儲到星際文件系統(tǒng)時,返回一個內(nèi)容標(biāo)識符(content?addressed identifiers for distributed systems,CID),內(nèi)容標(biāo)識符是星際文件系統(tǒng)中標(biāo)準(zhǔn)的文件尋址格式,集合內(nèi)容尋址、加密散列算法和自我描述格式等內(nèi)容,根據(jù)內(nèi)容標(biāo)識符可以實現(xiàn)在星際文件系統(tǒng)中的文件搜索[5]。若一個文件重復(fù)存儲到星際文件系統(tǒng)時,新產(chǎn)生的文件哈希值與之前存儲的文件哈希值相同,星際文件系統(tǒng)將不再重復(fù)存儲相同的文件。若一份文件進(jìn)行修改后提交到星際文件系統(tǒng),則會生成新的內(nèi)容標(biāo)識符。星際文件系統(tǒng)既有效地彌補(bǔ)區(qū)塊鏈存儲空間有限的不足,又利用其自身的分布式存儲技術(shù)解決傳統(tǒng)中心化存儲存在的問題,從而確保電子證據(jù)的安全存儲。
電子證據(jù)存證模型以區(qū)塊鏈網(wǎng)絡(luò)為基礎(chǔ)網(wǎng)絡(luò)架構(gòu),以星際文件系統(tǒng)為存儲介質(zhì),區(qū)塊鏈以公安局各派出所、各警種大隊和各業(yè)務(wù)科室為節(jié)點,證書中心為執(zhí)法辦案民警頒發(fā)公私鑰對,并實現(xiàn)對民警身份的認(rèn)證,具體架構(gòu)如圖2所示,各節(jié)點之間通過點對點專用網(wǎng)絡(luò)互聯(lián),同時每個節(jié)點也連接星際文件系統(tǒng),星際文件系統(tǒng)實現(xiàn)對加密電子證據(jù)的分片存儲與合并提取,實現(xiàn)電子證據(jù)的安全可靠存儲,區(qū)塊節(jié)點將電子證據(jù)哈希值、關(guān)鍵詞和分片位置索引等信息打包成交易存儲在區(qū)塊鏈中,區(qū)塊鏈實現(xiàn)對電子證據(jù)的查詢和防篡改驗證。
圖2 電子證據(jù)存證模型架構(gòu)
電子證據(jù)存證系統(tǒng)由民警身份的注冊和認(rèn)證、電子證據(jù)存儲、電子證據(jù)查詢、電子證據(jù)下載和驗證等部分組成。
3.2.1 電子證據(jù)存儲
電子證據(jù)存證系統(tǒng)采用加密技術(shù)和星際文件系統(tǒng)實現(xiàn)對電子證據(jù)的安全可靠存儲,支持日志、文檔、圖片、音視頻和各類取證鏡像文件的加密存儲[6]。電子證據(jù)存儲流程如圖3 所示,民警在客戶端提交認(rèn)證信息進(jìn)行身份驗證,驗證通過后登入到電子證據(jù)存證系統(tǒng),并接入到所在單位的區(qū)塊鏈節(jié)點。在客戶端計算電子證據(jù)哈希值和實現(xiàn)對電子證據(jù)的加密,加密后的電子證據(jù)上傳到星際文件系統(tǒng),星際文件系統(tǒng)對加密電子證據(jù)進(jìn)行分片存儲,同時將電子證據(jù)文件分片位置索引等信息返回給客戶端,客戶端將電子證據(jù)關(guān)鍵詞、在星際文件系統(tǒng)中的分片位置索引等信息打包成一條交易提到所在單位的區(qū)塊鏈節(jié)點,并通過點對點網(wǎng)絡(luò)廣播到區(qū)塊鏈所有節(jié)點,最終該交易納入到新的區(qū)塊中,從而實現(xiàn)對電子證據(jù)的加密分布式存儲[2],確保電子證據(jù)的機(jī)密性和完整性。
圖3 電子證據(jù)存儲流程
3.2.2 電子證據(jù)查詢
電子證據(jù)查詢由區(qū)塊鏈各節(jié)點對區(qū)塊信息進(jìn)行關(guān)鍵詞搜索,依賴于電子證據(jù)存儲過程中保存在區(qū)塊鏈上的電子證據(jù)在星際文件系統(tǒng)中的分片位置索引和電子證據(jù)相關(guān)關(guān)鍵詞。電子證據(jù)查詢流程如圖4所示,民警在客戶端經(jīng)過身份認(rèn)證后,生成需要查詢的關(guān)鍵詞,提交到民警所在單位的區(qū)塊節(jié)點,節(jié)點在區(qū)塊鏈上進(jìn)行關(guān)鍵詞搜索,若搜索成功,即可獲取電子證據(jù)的哈希值和在星際文件系統(tǒng)的分片位置索引,下一步可以進(jìn)行電子證據(jù)的下載和驗證。
圖4 電子證據(jù)查詢流程
3.2.3 電子證據(jù)下載和驗證
電子證據(jù)存證系統(tǒng)經(jīng)過電子證據(jù)查詢獲得電子證據(jù)在星際文件系統(tǒng)的分片位置索引,經(jīng)過授權(quán)后,即可從星際文件系統(tǒng)下載電子證據(jù),哈希校驗來防止電子證據(jù)的篡改。電子證據(jù)下載與驗證流程如圖5所示,民警獲得下載電子證據(jù)的授權(quán)后,向其所在單位的區(qū)塊節(jié)點發(fā)送下載電子證據(jù)的請求,區(qū)塊節(jié)點一方面獲得原始電子證據(jù)的哈希值,另一方面根據(jù)電子證據(jù)在星際文件系統(tǒng)中的分片位置索引,從星際文件系統(tǒng)下載電子證據(jù)的所有分片,并生成完整的電子證據(jù),對下載的電子證據(jù)計算出哈希值,與原始電子證據(jù)的哈希值進(jìn)行比對,若一致,則說明電子證據(jù)未被篡改,從區(qū)塊節(jié)點下載電子證據(jù);若不一致,則說明電子證據(jù)已經(jīng)被修改失效。
圖5 電子證據(jù)下載與驗證流程
針對傳統(tǒng)中心化存儲電子證據(jù)面臨的易復(fù)制、易篡改和易損壞等問題,在研究區(qū)塊鏈和星際文件系統(tǒng)工作原理的基礎(chǔ)上,提出一種基于區(qū)塊鏈和星際文件系統(tǒng)的電子證據(jù)存證模型,采用點對點網(wǎng)絡(luò)、哈希計算、加密技術(shù)和星際文件系統(tǒng)等技術(shù),實現(xiàn)對電子證據(jù)的安全存儲、可靠下載、防篡改和自動驗證功能,對于提高電子證據(jù)的公信力有一定的借鑒意義。