◆王冠
網絡犯罪與取證
哈希算法在電子數據取證中的應用研究
◆王冠
(遼寧警察學院公安信息系 遼寧 116036)
哈希在電子數據取證中具有重要的作用,可以保證電子數據的完整性和真實性。通過分析哈希算法的特點,實驗驗證Word文件的修改時間對完整性校驗的影響。提出把哈希庫看作一種廣義上的關鍵字搜索,以及哈希算法在電子數據提取與司法鑒定階段中的作用。
哈希;電子數據取證
Hash(通常翻譯為散列,或音譯為哈希),是把任意長度的輸入數據通過散列算法,經過壓縮映射變換成固定長度的輸出散列值,該輸出散列值也被稱為消息摘要。因此,哈希是一種將任意長度的消息壓縮到某一固定長度的消息摘要的算法,被廣泛應用于文件校驗與數字簽名當中。
2016年,兩高一部頒布執(zhí)行的《關于辦理刑事案件收集提取和審查判斷電子數據若干問題的規(guī)定》第五條明確保護電子數據完整性的方法,需要計算電子數據完整性校驗值;第十二條規(guī)定在凍結電子數據時,要求計算電子數據完整性校驗值;第二十三條中明確驗證電子數據完整性時,需要比對電子數據完整性校驗值。2019年公安部頒布執(zhí)行的《公安機關辦理刑事案件電子數據取證規(guī)則》中同樣也對上述問題提出了計算電子數據完整性校驗值的這一要求。實際上,對于電子數據計算完整性校驗值,就是將一個電子數據存儲介質或一個具體的電子數據文件通過哈希算法得到一個固定長度的哈希校驗值,并將該哈希校驗值作為該電子數據沒有被改變的完整性依據。
哈希算法之所以可以作為驗證電子數據完整性的方法,是因為其獨有的四個特性,即等長、雪崩、防沖突和不可逆:等長是指對于同一種哈希算法來說,任何文件不論大小(上至TB級的硬盤,下至幾個字節(jié)的文件),都可以得到固定長度的哈希值;雪崩是指任何一個文件只要內容發(fā)生改變,哪怕只是一位二進制下0或1的改寫,都會造成該文件的哈希校驗值發(fā)生根本性變化,即該文件的校驗值會變的完全不同;防沖突是指任何兩個不同的文件得不到同一個哈希值,以經典的哈希算法MD5來說,其校驗值固定長度為128位的二進制數字,因此兩個不同文件得到同一個MD5值的概率即為1/2128;不可逆是指由于哈希算法是單向的壓縮摘要算法,與傳統(tǒng)的文件加密算法不同,無法通過哈希校驗值逆推出原文件內容。有上述四個特性可知,哈希也被稱作“數字指紋”被廣泛應用于電子數據取證中。
在電子數據取證中使用的哈希算法通常為MD5、SHA1、SHA256這三種,其中MD5算法生成的校驗為128位二進制,SHA1算法為160位二進制,SHA256算法為256位二進制。算法生成的校驗值長度越長,則該算法被碰撞破解的概率越低。由于MD5和SHA1算法都存在被數學破解的可能性(即對不同文件得到同樣的哈希值),我國的司法鑒定和證據審查中均要求提交電子數據完整性校驗值需采用SHA256算法來計算以保證司法嚴謹性。但實際操作中,即便是使用MD5算法,只要一個電子數據的哈希值沒有發(fā)生變化,就可以認為該電子數據的完整性得到了保證。為避免工作中的誤操作導致電子數據哈希值的變化破壞證據完整性,本節(jié)將設計四個word文檔的實驗來探討對于文件修改時間對于哈希值的影響。實驗首先準備一個存有文本內容的docx文檔并計算MD5值7b2cc8a7dd2c20579307818e35c8e8c5,記錄下來用于比對。
實驗1:將該文檔文件名進行修改,修改后重新計算哈希值與原哈希值比對,哈希值沒有改變。實驗分析:由于文件名屬于文件屬性,并沒有寫入文檔所在數據區(qū),而哈希值計算的是文檔數據區(qū)內容,因此修改文件名并不會更改哈希值。
實驗2:將該文檔進行復雜粘貼到另一個磁盤分區(qū)中,計算該復制文檔的哈希值與原哈希值比對,哈希值沒有改變。實驗分析:復制后文檔的創(chuàng)建時間發(fā)生變化,但修改時間沒有變化,創(chuàng)建時間并不影響文件數據區(qū)內容,因此復制文件的副本并不會更改哈希值。
實驗3:將該文檔打開,不做任何改變直接點擊保存按鈕。完成后關閉該文檔,重新計算哈希值,對比后發(fā)現(xiàn)沒有改變。實驗分析:當對文檔內容沒有任何操作的情況下,點擊保存按鈕,并不會造成docx文檔的修改時間變化。由于修改時間沒有變化,因此哈希值不變。
實驗4:打開該文檔,在文字中輸入一次空格,然后刪除該空格。點擊保存按鈕,關閉文檔。重新計算該文檔哈希值369a132900749fa2989b3522a6f998e8,對比后發(fā)現(xiàn)與原文檔哈希不一致,發(fā)生改變,操作結果如圖1所示。實驗分析:對文檔加減空格后保存的操作,雖然對實際文本內容沒有修改,但由于word文檔的特性會對每一次操作進行格外記錄,以便于撤銷恢復。這些記錄會寫入文件中,也會造成文檔修改時間的改變,因此該文檔對應的哈希值也會發(fā)生變化。在實際工作中應當避免對于文件誤操作后撤銷且點擊保存的操作,以免造成哈希值的變化而改變文件完整性。
圖1 word文件加減空格后保存改變MD5值
在公安工作中,不論在現(xiàn)場提取電子數據或是通過網絡在線提取電子數據階段,都需要對提取的電子數據進行固定,并計算完整性校驗值。此外,若需要通過錄像的方式記錄提取過程時,也同樣需要將該錄像文件計算完整性校驗值。通過提取電子數據時計算哈希值并做好記錄的操作,在證據審查階段,只需確定電子數據的哈希值與提取時的哈希值一致,即可以判斷該證據的真實性和完整性。
在對電子數據進行分析和司法鑒定工作中,通常要求對原始電子數據存儲介質進行備份或鏡像,并通過只讀保護設備來對該備份進行分析。為保證電子數據的完整性,首先需要計算該原始電子數據存儲介質的哈希值,然后在做完位對位的備份后,同樣計算該備份介質的哈希值進行比對,兩者一致才能證明是同樣的電子數據。分析完成該備份介質后,需要再次對該分析備份介質計算哈希值并證明一致,以此來驗證分析過程沒有對電子數據造成任何破壞或更改。
此外,在司法鑒定過程中,還經常需要做同一性或相似性鑒定的鑒定報告,這也需要比較雙方送檢文件的哈希值是否一致來直觀判斷是否存在同一性問題。對于數據庫或軟件相似性的司法鑒定,往往也需要比較雙方數據庫文件或服務器文件中,具有相同哈希值的文件數目,以此來確定是否存在同樣的文件,判斷存在相似性的可能。
在電子數據分析過程中,通常會將一類已知的特定文件(如操作系統(tǒng)文件,常用軟件文件,病毒和惡意代碼文件以及犯罪圖片等)進行哈希值計算,然后將這些特定類型的文件的哈希值記錄下來,并進行分類成為一個庫的概念,即為哈希庫(hashsets)。在分析一臺嫌疑人的電腦時,可以通過計算該電腦中所有文件的哈希值,并與已知登記的哈希庫進行碰撞,當發(fā)現(xiàn)存在同樣哈希值的文件后,即可以快速明確該電腦中存在的文件內容。比如,該電腦的操作系統(tǒng)文件,安裝的辦公文檔軟件,是否存在病毒或惡意代碼程序以及是否存有相關犯罪圖片文件等。采用哈希庫這一技術進行快速的文件搜索,實際上非常類似于我們平時使用的關鍵字搜索技術。關鍵字搜索技術,是通過將字轉換為二進制編碼匹配的過程,而哈希庫是通過將文件轉換為哈希值進行匹配的過程。因此也可以把哈希庫看作是是一種廣義上的關鍵字搜索技術。實戰(zhàn)中通過特定文件的哈希庫進行比對,而不需要一個個的比較文件內容,可以快速發(fā)現(xiàn)一類的涉案證據文件,起到事半功倍的效果。
本文介紹了哈希算法的特點,對哈希算法的等長、雪崩、防沖突和不可逆四個特性進行了分析。明確了哈希在電子數據取證中對于完整性和真實性的作用。并進行了word文檔的哈希實驗,以此確定了修改時間對于哈希值的影響。最后對于哈希在電子數據取證工作中的應用進行了介紹,提出了哈希庫是廣義上的一種關鍵字搜索技術這一觀點。
[1]王聰,饒智韜,劉滿果.MD5值的電子取證應用研究[J].中國公共安全(學術版),2020(01):146-149.
[2]王鳴遠. 電子數據完整性證明研究[D].重慶郵電大學,2019.
[3]尹鶴曉. 電子數據偵查取證程序研究[D].中國人民公安大學,2019.