◆王冠
网络犯罪与取证
哈希算法在电子数据取证中的应用研究
◆王冠
(辽宁警察学院公安信息系 辽宁 116036)
哈希在电子数据取证中具有重要的作用,可以保证电子数据的完整性和真实性。通过分析哈希算法的特点,实验验证Word文件的修改时间对完整性校验的影响。提出把哈希库看作一种广义上的关键字搜索,以及哈希算法在电子数据提取与司法鉴定阶段中的作用。
哈希;电子数据取证
Hash(通常翻译为散列,或音译为哈希),是把任意长度的输入数据通过散列算法,经过压缩映射变换成固定长度的输出散列值,该输出散列值也被称为消息摘要。因此,哈希是一种将任意长度的消息压缩到某一固定长度的消息摘要的算法,被广泛应用于文件校验与数字签名当中。
2016年,两高一部颁布执行的《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》第五条明确保护电子数据完整性的方法,需要计算电子数据完整性校验值;第十二条规定在冻结电子数据时,要求计算电子数据完整性校验值;第二十三条中明确验证电子数据完整性时,需要比对电子数据完整性校验值。2019年公安部颁布执行的《公安机关办理刑事案件电子数据取证规则》中同样也对上述问题提出了计算电子数据完整性校验值的这一要求。实际上,对于电子数据计算完整性校验值,就是将一个电子数据存储介质或一个具体的电子数据文件通过哈希算法得到一个固定长度的哈希校验值,并将该哈希校验值作为该电子数据没有被改变的完整性依据。
哈希算法之所以可以作为验证电子数据完整性的方法,是因为其独有的四个特性,即等长、雪崩、防冲突和不可逆:等长是指对于同一种哈希算法来说,任何文件不论大小(上至TB级的硬盘,下至几个字节的文件),都可以得到固定长度的哈希值;雪崩是指任何一个文件只要内容发生改变,哪怕只是一位二进制下0或1的改写,都会造成该文件的哈希校验值发生根本性变化,即该文件的校验值会变的完全不同;防冲突是指任何两个不同的文件得不到同一个哈希值,以经典的哈希算法MD5来说,其校验值固定长度为128位的二进制数字,因此两个不同文件得到同一个MD5值的概率即为1/2128;不可逆是指由于哈希算法是单向的压缩摘要算法,与传统的文件加密算法不同,无法通过哈希校验值逆推出原文件内容。有上述四个特性可知,哈希也被称作“数字指纹”被广泛应用于电子数据取证中。
在电子数据取证中使用的哈希算法通常为MD5、SHA1、SHA256这三种,其中MD5算法生成的校验为128位二进制,SHA1算法为160位二进制,SHA256算法为256位二进制。算法生成的校验值长度越长,则该算法被碰撞破解的概率越低。由于MD5和SHA1算法都存在被数学破解的可能性(即对不同文件得到同样的哈希值),我国的司法鉴定和证据审查中均要求提交电子数据完整性校验值需采用SHA256算法来计算以保证司法严谨性。但实际操作中,即便是使用MD5算法,只要一个电子数据的哈希值没有发生变化,就可以认为该电子数据的完整性得到了保证。为避免工作中的误操作导致电子数据哈希值的变化破坏证据完整性,本节将设计四个word文档的实验来探讨对于文件修改时间对于哈希值的影响。实验首先准备一个存有文本内容的docx文档并计算MD5值7b2cc8a7dd2c20579307818e35c8e8c5,记录下来用于比对。
实验1:将该文档文件名进行修改,修改后重新计算哈希值与原哈希值比对,哈希值没有改变。实验分析:由于文件名属于文件属性,并没有写入文档所在数据区,而哈希值计算的是文档数据区内容,因此修改文件名并不会更改哈希值。
实验2:将该文档进行复杂粘贴到另一个磁盘分区中,计算该复制文档的哈希值与原哈希值比对,哈希值没有改变。实验分析:复制后文档的创建时间发生变化,但修改时间没有变化,创建时间并不影响文件数据区内容,因此复制文件的副本并不会更改哈希值。
实验3:将该文档打开,不做任何改变直接点击保存按钮。完成后关闭该文档,重新计算哈希值,对比后发现没有改变。实验分析:当对文档内容没有任何操作的情况下,点击保存按钮,并不会造成docx文档的修改时间变化。由于修改时间没有变化,因此哈希值不变。
实验4:打开该文档,在文字中输入一次空格,然后删除该空格。点击保存按钮,关闭文档。重新计算该文档哈希值369a132900749fa2989b3522a6f998e8,对比后发现与原文档哈希不一致,发生改变,操作结果如图1所示。实验分析:对文档加减空格后保存的操作,虽然对实际文本内容没有修改,但由于word文档的特性会对每一次操作进行格外记录,以便于撤销恢复。这些记录会写入文件中,也会造成文档修改时间的改变,因此该文档对应的哈希值也会发生变化。在实际工作中应当避免对于文件误操作后撤销且点击保存的操作,以免造成哈希值的变化而改变文件完整性。
图1 word文件加减空格后保存改变MD5值
在公安工作中,不论在现场提取电子数据或是通过网络在线提取电子数据阶段,都需要对提取的电子数据进行固定,并计算完整性校验值。此外,若需要通过录像的方式记录提取过程时,也同样需要将该录像文件计算完整性校验值。通过提取电子数据时计算哈希值并做好记录的操作,在证据审查阶段,只需确定电子数据的哈希值与提取时的哈希值一致,即可以判断该证据的真实性和完整性。
在对电子数据进行分析和司法鉴定工作中,通常要求对原始电子数据存储介质进行备份或镜像,并通过只读保护设备来对该备份进行分析。为保证电子数据的完整性,首先需要计算该原始电子数据存储介质的哈希值,然后在做完位对位的备份后,同样计算该备份介质的哈希值进行比对,两者一致才能证明是同样的电子数据。分析完成该备份介质后,需要再次对该分析备份介质计算哈希值并证明一致,以此来验证分析过程没有对电子数据造成任何破坏或更改。
此外,在司法鉴定过程中,还经常需要做同一性或相似性鉴定的鉴定报告,这也需要比较双方送检文件的哈希值是否一致来直观判断是否存在同一性问题。对于数据库或软件相似性的司法鉴定,往往也需要比较双方数据库文件或服务器文件中,具有相同哈希值的文件数目,以此来确定是否存在同样的文件,判断存在相似性的可能。
在电子数据分析过程中,通常会将一类已知的特定文件(如操作系统文件,常用软件文件,病毒和恶意代码文件以及犯罪图片等)进行哈希值计算,然后将这些特定类型的文件的哈希值记录下来,并进行分类成为一个库的概念,即为哈希库(hashsets)。在分析一台嫌疑人的电脑时,可以通过计算该电脑中所有文件的哈希值,并与已知登记的哈希库进行碰撞,当发现存在同样哈希值的文件后,即可以快速明确该电脑中存在的文件内容。比如,该电脑的操作系统文件,安装的办公文档软件,是否存在病毒或恶意代码程序以及是否存有相关犯罪图片文件等。采用哈希库这一技术进行快速的文件搜索,实际上非常类似于我们平时使用的关键字搜索技术。关键字搜索技术,是通过将字转换为二进制编码匹配的过程,而哈希库是通过将文件转换为哈希值进行匹配的过程。因此也可以把哈希库看作是是一种广义上的关键字搜索技术。实战中通过特定文件的哈希库进行比对,而不需要一个个的比较文件内容,可以快速发现一类的涉案证据文件,起到事半功倍的效果。
本文介绍了哈希算法的特点,对哈希算法的等长、雪崩、防冲突和不可逆四个特性进行了分析。明确了哈希在电子数据取证中对于完整性和真实性的作用。并进行了word文档的哈希实验,以此确定了修改时间对于哈希值的影响。最后对于哈希在电子数据取证工作中的应用进行了介绍,提出了哈希库是广义上的一种关键字搜索技术这一观点。
[1]王聪,饶智韬,刘满果.MD5值的电子取证应用研究[J].中国公共安全(学术版),2020(01):146-149.
[2]王鸣远. 电子数据完整性证明研究[D].重庆邮电大学,2019.
[3]尹鹤晓. 电子数据侦查取证程序研究[D].中国人民公安大学,2019.