李振汕



摘? 要: 為了保證電子證據鏈的完整性,提出采用區塊鏈和云存儲的混合架構,利用電子證據文件構建默克爾樹,并與案件號、存證人員身份信息共同組成區塊體。以上一區塊的Hash值、區塊編號、區塊體默克爾樹根節點Hash值和存入時間戳組成區塊頭,將區塊頭和區塊體共同存儲到相應的區塊鏈中,最后通過二維碼實現對電子證據的檢索、查詢和驗證。保證了電子證據真實、可溯源、不可篡改,提高電子證據的可信度。
關鍵詞: 電子證據; 區塊鏈; 完整性; 默克爾樹
中圖分類號:TN911,TP391? ? ? ? ? 文獻標志碼: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 引言
隨著人們使用互聯網和信息消費的迅猛發展,電子數據越來越多地被當做證據使用。電子證據附著在數字媒體上,具有技術高、準確、形式多樣、易于傳輸和再現的特點。電子證據的這些優勢使得其在證明案件事實方面發揮著越來越重要的作用。但是,相比較于傳統證據,電子證據也有很多缺點,比如易于受誤操作、硬件故障等因素的影響,很容易被破壞和篡改,這大大限制了電子證據的可信性[1]。
在電子取證領域,許多網絡類型的刑事案件涉及到多個電子證據文件,這些文件之間具有一定的關聯,它們之間的內容相互印證,共同構成某一案件完整的證據鏈條,用于證明某一案件的真實性。電子證據鏈的完整性是衡量證據鏈證明力的重要屬性指標。然而,電子證據鏈的完整性涉及證據提取、證據固定、證據驗證等多個步驟,這是一個復雜的技術過程。在實踐中,可以保障電子證據完整性的手段還比較單一。
鑒于現有技術中的不足,本文提出了一種基于完整性的區塊鏈存證方法,可有效地解決電子證據鏈的完整性驗證問題。
1 相關背景知識
區塊鏈技術是由非對稱加密、分布式數據存儲、加密算法、哈希、默克爾樹(Merkel)和點對點傳輸組成。區塊鏈技術通過可靠的數字加密算法和分布式節點驗證和共識機制,解決了分散系統中節點間有效信息保護和信任建立的問題[2],從而在公開透明的基礎上完成信息的傳輸和價值的轉移,實現當前網絡架構的重大轉變。
區塊鏈借由密碼學串接并保護內容的串連記錄。其存儲以區塊為單位,每個區塊由區塊頭和區塊體組成,存儲的內容除默克爾樹外,還包含了前一個區塊內容的哈希值,它等同于前一個邏輯區塊的邏輯指針。同理,本區塊的哈希值也會被保存在下一個新區塊的內容中[3]。這是一種前向背書的過程,即新區塊的產生進一步強化鎖定了所有舊區塊的內容。這樣通過密碼學驗證的方式構建了保證時序的、不可偽造、不可篡改、不可撤銷的鏈條。因此,區塊鏈具有分布、開放、匿名、自治、協同和透明的特點,從而保證了鏈中信息的正確時序,具有不可偽造、不可篡改、不可刪除的有點。
Merkel樹是區塊鏈的重要數據結構。它具有兩大特性:一是任意一個葉子節點的細微變動,都會導致默克爾樹根節點發生翻天覆地的變化,這可以用來判斷兩個不同時間或地點獲取的數據是否完全一致;二是快速定位修改,如果一個節點被修改,就會向上影響到相鄰的節點直至默克爾樹根,沿著這條路徑便可以快速定位被篡改的節點。
然而,現有的使用區塊鏈保存證據的技術往往認為由某個可信組織申請存入區塊鏈的數據即為真實的證據,忽略了對電子證據完整性的檢查,因此,存儲在區塊鏈中的數據并不一定是完整的真實證據信息。比如負責證據入鏈請求的節點被黑客控制,黑客完全可以將自己偽造的信息保存入區塊鏈中,而使其他各方都認為這是真實的電子證據。因此,急需解決現有電子證據存儲方法存在的問題。
2 基于完整性的區塊鏈電子存證方法
2.1 存證方法的實現流程
為了保證電子證據鏈的完整性,確保電子證據的可追溯性,同時提高電子證據保存的安全性,有效降低保存成本。本文采用區塊鏈技術,引入時間戳服務,將同一個案件的多個電子證據記錄形成證據鏈存入區塊鏈,通過證據數據鏈完整性驗證和區塊鏈完整性驗證,排除了整個電子證據鏈被篡改或銷毀的可能性,確保了證據鏈的完整性。其實現方法的流程如圖1所示。
如圖1所示,基于完整性的區塊鏈電子存證方法具體步驟[4]為:
⑴ 區塊鏈系統對存證人員進行身份認證,身份認證通過后,存證人員方可使用區塊鏈系統進行存證,否則,系統返回錯誤信息,存證操作失敗;
⑵ 以案件號為關鍵字,將具有相同案件號的多個相關聯的電子證據文件組合成電子證據集;
⑶ 處理電子證據集,一方面,加密電子證據集以獲得密文,然后將存證人員身份信息、存入時間戳、案件號和密文一起存儲到云端存儲器,并返回本次存儲的云存儲位置信息,另一方面,利用電子證據集中的電子證據文件構造Merkel樹,再將案件號、存證人員身份信息和生成的默克爾樹共同組成區塊體;
⑷ 將上一區塊的Hash值、區塊編號、區塊體默克爾樹根節點Hash值和存入時間戳共同組成區塊頭,如果沒有上一區塊,則其Hash值全為零;
⑸ 將上述所生成的區塊頭和區塊體組成區塊,并將區塊存儲到相應的區塊鏈中,返回本次存儲的區塊鏈存儲位置信息;
⑹ 生成二維碼,二維碼中的信息包括存證人員身份信息、案件號、本次存儲的云存儲位置信息和區塊鏈存儲位置信息,便于用戶進行電子證據的查詢、驗證和提取。
2.2 存證方法的實現結構
為了實現上述的存證方法,本文設計了基于完整性的區塊鏈電子存證系統,其體系結構如圖2所示。整個系統包括身份管理模塊、存證數據歸集模塊、區塊體生成模塊、區塊頭生成模塊、區塊生成模塊、區塊鏈模塊和云存儲模塊。在身份管理模塊對存證人員進行身份認證后就可以進行存證,首先由存證數據歸集模塊按案件號將多個相關的電子證據文件組合成電子證據集,與存證人員的身份信息、案件號和存入時間戳歸集在一起,共同組成存證數據集,再將存證數據集送到區塊體生成模塊和區塊頭生成模塊分別生成區塊頭和區塊體,然后將區塊頭和區塊體交由區塊生成模塊進行組合,共同組成一個完整的區塊,最后將區塊送往區塊鏈模塊進行存儲。同時,觸發區塊鏈系統中包含二維碼生成程序的智能合約,生成二維碼,用于后續查詢和驗證電子證據。
2.3 區塊的構造
2.3.1 區塊的結構
區塊的構造既是本方法實現的重點,也是難點。一個結構合理的區塊既可保證存儲信息的完整性,也可提高系統的存儲效益和信息的讀寫效率,便于查詢。區塊由區塊頭和區塊體兩部分組成,對于不同的系統,針對不同的應用目的,區塊頭和區塊體的結構及其內容可以不同,基于證據鏈完整性的考慮,本文采用了如圖3所示的區塊結構。
2.3.2 區塊體的生成
如圖3所示,區塊體包括案件號、存證人員的身份信息和默克爾樹等信息。默克爾樹是利用電子證據鏈中的電子證據文件構建的。其生成過程[4]如圖4所示。
如圖4所示,使用電子證據鏈中的電子證據文件構建Merkel樹的具體步驟如下:
⑴ 按取證時間將具有相同案件號的多個電子證據文件進行排序;
⑵ 散列每個電子證據文件,其散列值是樹的葉子節點。如果電子證據文件的數量是奇數,則復制最后的散列值以形成偶數個葉子節點。如圖4中的葉子節點Hash(0-6)和Hash(0-7)相同,兩者均為電子證據文件e17的散列值;
⑶ 連接兩個相鄰的散列值,然后對它們進行哈希處理以生成上層父節點;
⑷ 重復步驟⑴和⑶,直到生成根節點。
如圖4所示,具有案件編號“1”的電子證據鏈包含7個電子證據文件,并且根據上述過程生成Merkel樹。在該Merkel樹中,由于葉子節點是電子證據文件的散列值,因此中間節點是其兩個子節點的散列值,根節點也是兩個中間節點的散列值,因此對底層數據的任更改都將傳遞給父節點,一直到根節點[5]。
2.3.3? 區塊頭的生成
從圖4中可以看出,區塊頭由上一區塊的Hash值、區塊編號、區塊體默克爾樹根節點Hash值、存入時間戳組成,如果沒有上一區塊,則其Hash值全為零。
2.4 完整性驗證
驗證人員通過掃描二維碼查看信息并驗證身份;身份認證通過后,驗證人員就可以開始驗證操作,本文的完整性驗證包括默克爾樹完整性驗證和區塊鏈完整性驗證。
2.4.1 默克爾樹完整性驗證
驗證人員通過掃描二維碼獲得相應案件號的電子證據在云存儲中的位置信息,并根據該位置信息在云端存儲器中查找并獲取相應的電子證據密文,解密后得到相應的電子證據集,然后根據上圖4中的方法生成新的Merkel樹,將其與區塊鏈上的Merkel樹進行比較,其具體步驟為:
⑴ 比對根節點,若根節點相同,說明默克爾樹完整,從而表明電子證據鏈滿足完整性要求,驗證結束,否則電子證據鏈不完整,繼續執行步驟2;
⑵ 比對兩個子節點,并檢索哈希值不一致的子節點;
⑶ 重復步驟2,直到比對至葉子節點;
⑷ 確定與不一致葉子節點對應的電子證據文件,表明該電子證據文件已被篡改。
2.4.2 區塊鏈完整性驗證
驗證人員通過掃描二維碼獲取相應案件號的電子證據在區塊鏈中的存儲位置信息,根據案件號檢索相對應的區塊,從該區塊的區塊頭中獲得該區塊的區塊編號,從而可以確定上一區塊的區塊編號,根據該區塊編號就可以定位檢索到上一區塊,由此計算得到上一區塊的Hash值。采用相同的辦法就可以計算得到下一區塊的Hash值,通過比較上一區塊Hash值與該區塊頭中存儲上一區塊的Hash值,比較該區塊Hash值與下一區塊的區塊頭中存儲的上一區塊Hash值,當兩者均相同時,表明區塊鏈是完整的,從而證明相關的電子證據也是完整的[6]。
3 結論
電子數據是現代高科技的產物,具有易創建、易存儲、易傳輸和高利用率等特點,可靠性高、證明力強。電子數據存證不僅要保障數據的可信性和完整性,還要便于存儲、共享、驗證和分享。借助于區塊鏈技術,本文提出采用區塊鏈和云存儲的混合架構保存電子證據,通過使用時間戳,為電子證據提供原始的唯一時間證據,并確保電子證據真正可追溯,不會被篡改;在存證端對電子證據加密后再保存,不僅可以確保傳輸過程中電子證據的安全性,有效避免隱私證據泄露的風險,而且這種全過程密文傳輸和存儲方法不需要訪問控制網關,適用性高,降低控制網關被入侵的風險,還可在客戶端實現高速數據處理;使用Merkel樹存儲電子證據文件,便于驗證電子證據鏈的完整性,同時提高電子證據保存的安全性,并有效降低保存成本;采用二維碼技術,便于客戶端檢索、查詢和驗證相關的電子證據,提高方法的可用性。隨著區塊鏈技術的發展和應用的深入,目前的電子存證將顯現其不足,諸如存證過程自動化程度不高、存證過程中電子數據風險較大、第三方機構法律處理流程繁瑣等問題,這些問題需要進一步解決。
參考文獻(References):
[1] 趙志巖,石文昌.基于證據鏈的電子證據可信性分析[J].計算機科學,2016.7:131-135
[2] 劉敖迪,杜學繪,王娜,等. 區塊鏈技術及其在信息安全領域的研究進展[J].軟件學報,2018.7:2092-2115
[3] 翟晨曦,徐偉,徐坤,等.區塊鏈在我國證券市場的應用與監管研究[J].金融監管研究,2018.7:33-54
[4] 梁庚,李玉成,左春,等.基于默克爾樹的電子證據鏈完整性驗證方法[P].中國:CN 108897760A,2018.11.27.
[5] 翁曉康,張平,王煒,等.基于非平衡哈希樹的平臺完整性遠程驗證機制[J].計算機應用,2014.2:433-437
[6] 楊志剛,熊瑜,陳蕾,等.一種消息發布、校驗方法及系統[P].中國:CN 109462470A,2019.03.12.