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