文章总结: 文章详细介绍了哈希值作为电子数据指纹的属性特征、计算方法和应用场景。哈希值具有唯一性和单向性,可用于验证电子数据的完整性和同一性,是电子取证中的重要工具。文章澄清了关于MD5算法的争议,指出尽管存在碰撞可能,但仍可用于数据完整性校验。同时,文章通过实验展示了不同情况下哈希值的变化规律,并强调不能完全依赖书面记录的哈希值,还需结合其他属性和痕迹进行综合判断。
综合评分: 89
文章分类: 数据安全,电子物证,安全工具,应用安全,技术标准
【哈希值(电子数据指纹)的属性特征、计算方法、强大功能及误解澄清】
电子物证
2025年12月9日 00:01
辽宁
转自:司法兰亭会
一、电子数据的完整性、电子数据的“哈希值”
电子数据的完整性,是指电子数据自生成或获取后,其内容未被篡改、删除或损坏,且能够保持原始状态的特性。
《刑事诉讼法解释》(2021)第一百一十条规定: 对电子数据是否真实,应当着重审查以下内容:
(一)是否移送原始存储介质;在原始存储介质无法封存、不便移动时,有无说明原因,并注明收集、提取过程及原始存储介质的存放地点或者电子数据的来源等情况;
(二)是否具有数字签名、数字证书等特殊标识;
(三)收集、提取的过程是否可以重现;
(四)如有增加、删除、修改等情形的,是否附有说明;
(五)完整性是否可以保证。
第一百一十一条规定:对电子数据是否完整,应当根据保护电子数据完整性的相应方法进行审查、验证:
(一)审查原始存储介质的扣押、封存状态;
(二)审查电子数据的收集、提取过程,查看录像;
(三)比对电子数据完整性校验值;
(四)与备份的电子数据进行比较;
(五)审查冻结后的访问操作日志;
(六)其他方法。
第一百一十四条还规定了排除规则,电子数据不真实、不完整的,不得作为定案根据:
电子数据具有下列情形之一的,不得作为定案的根据:
(一)系篡改、伪造或者无法确定真伪的;
(二)有增加、删除、修改等情形,影响电子数据真实性的;
(三)其他无法保证电子数据真实性的情形。
那么,什么是电子数据完整性校验值呢?就是电子数据的哈希值(hash,英文原意是:肉丁、土豆丁做的一种美食)。我国的一系列的技术标准、规范性文件、司法解释将其称为了“电子数据完整性校验值”。
它是指为防止电子数据被篡改或者破坏,使用散列算法等特定算法对电子数据进行计算,得出的用于校验数据完整性的数据值。因此,堪称电子数据的“指纹”。
从实务角度出发,要有效保障电子数据的真实性、完整性、可靠性及同一性,需严格遵循电子数据鉴定领域的国家技术标准:
(1) 《法庭科学 电子数据收集提取技术规范》(GA/T756-2021)收集提取方法中规定:对于能复制导出成为数据文件的电子数据,将数据文件复制导出,并计算其完整性校验值。
(2) 《法庭科学 电子数据恢复检验规程》(GB/T 29360-2023)第 5.3 条围绕数据恢复检验环节,对确保数据真实、完整的操作要点作出了具体规定,是实务中不可或缺的技术依据:计算检材(样本)的完整性校验值,宜对具备保全备份条件的检材(样本)进行保全备份。
(3) 《法庭科学 电子数据文件一致性检验规程》(GB/T29361-2023)检验过程规定:
5.3.1 将检材(或检材文件)和样本(或样本文件)进行保全备份。
5.3.2 分别计算检材文件和样本文件的哈希值,宜选用附录A 所列的哈希算法:
(注:不同算法对同一电子数据算出的哈希值无法换算,也就无法初步比对该数据有无增删改)
特别要说的是,我们认为,从哈希值上述的实际功能角度,可将其称为“电子数据同一性校验值”。因为哈希值其实就是体现电子数据唯一性的属性值,所以,可以用来比对两个数据是否同一。它是要两个待比对的电子数据的哈希值都算出来,然后比对的。
而“完整性校验值”的称呼,容易让文科法律人误以为一算就知完不完整了。因此,应当被称为“同一性校验值”,退一步,将其称为“完好性检验值”也要好些,能避免这种误解。
当然,电子数据哈希值的适用场景很多,在进行数据检索和数据内容信息保护及隐私保护的场合,称其为“电子数据完整性校验值”不会引发太多误解。
二、如何计算哈希值?
在电子取证实务中,对依照法定程序提取、固定的数据库文件、存储介质镜像文件、安装文件等用于证据的电子数据,需采符合《信息技术安全技术密码算法标识规范》(GB/T 32905)的散列算法(优先选用前述SHA-256、SHA-3 等强散列算法)进行计算,生成唯一对应的数据完整性、完好性、可靠性、同一性校验值(即哈希值)。
并且,要同步记录算法类型、计算时间、操作主体、数据来源等核心信息,形成《电子数据完整性校验记录》,作为后续审查数据是否被篡改的依据。
计算工具很多,本次我们使用hash校验工具1.4.7对某游戏的APK文件(安装包文件)进行哈希值计算:将该文件添加进该小计算工具,点击确认,即可得到下列选中算法的哈希值:
三、哈希值的特性以及对MD5值一些争议的澄清
哈希值能成为完整性和同一性校验值的主要原因,在于其独特的数学特性。这让其能够高效、准确地初步验证数据是否被增删改。其最少具有以下特性:
1. 唯一性
哈希值通过固定长度的唯一标识,可快速检测数据微小变化。任何数据篡改都会导致哈希值显著变化。
2. 单向性
哈希算法具有单向不可逆特性,无法通过哈希值反推原始数据。也因此,前述不同算法对同一个电子数据算出的哈希值无法换算,也就无法初步比对其是否有增删改了。
3.对MD5值一些争议的澄清及应对
另外,人们也发现了有两张完全不同照片的MD5值相同。MD5算法也已被我国科学家王小云“破解”。但这正如最高检信息处赵宪伟处长在刘品新老师主持的人民大学“电子数据与信息化高级研修班”2024年第三期授课时指出的:这只是能让人“拼凑”出一些字符串与某一电子数据或某一串密码的哈希值相同,进而进行黑客攻击或密码破解。
同时,上述这些都不意味着能从一个数据的MD5值反推出其原始数据了;也不足以影响对一个电子数据分别算出MD5值以校验是否有增删改的有效性和准确性。
当然,中国司法鉴定科学研究院主持电子数据鉴定标准起草的郭弘专家在上述研修班授课时也指出:新技术标准要求,进行电子数据完整性、同一性校验时,要选择两种以上算法,或者选择MD5算法计算后还要再用逐比特比对(依次从二进制的层面比对两者中的0和1)的方式再次核验,以确保高准确、高可靠。
总之,在实践中的诸多场合,哈希值被用于固定电子数据的原始状态。同时,电子取证、检查、鉴定、审查人往往通过比对电子数据的哈希值,以初步判断数据是否被增删改,在此场景话,我们强烈建议将其称为“电子数据同一性校验值”。
四、哈希值计算中的四个疑问及实验
(一)文件内只加字符、甚至空格,哈希值会改变吗?
在电子数据完整性、完好性、可靠性、同一性校验的实务场景,若对已固定的电子文件(包括但不限于文档、图片、数据库片段等)进行任何实质性修改—— 即使仅添加单个字符(如文字、数字、符号)或空白字符,均会导致文件的字节序列发生改变,引发哈希值“翻天覆地”的改变。
例如,对下方txt文件加入一空格字符,再另存为一个txt文件,分别计算其哈希值,可见其有显著改变:
计算结果一:
计算结果二:
可见,仅一个空格的区别,哈希值就完全不同。
(二)文件名改变,哈希值会改变吗?
我们依然用实验说明:
将一文件制作复件,复制件的文件名发生了变化:
然后分别计算二者的哈希值,发现哈希值并未变化:
计算结果一:
计算结果二:
可见,单纯改变文件名,哈希值不会变化。
(三)office文件,再次打开并另存其他文件夹后,为什么哈希值会变化?
哈希值计算的是文件的完整二进制数据流(从文件开头到结尾的每一个字节)。仅仅当二进制内容发生改变时,哈希值才会变化。
因此,如果文件的存储路径、文件名、文件属性(例如“创建时间”“修改时间”“访问时间”)不嵌入文件的二进制内容中,就不会影响哈希值。
但对office文件(如.docx、.xlsx、.pptx等),新打开并原封不动保存到其他文件夹,虽然文字无变化,但哈希值会变化。可见下方两次计算结果的截图:
计算结果一:
计算结果二:
变化的原因在于:Office 文件内部包含多个“数据文件”和“元文件”。它们通过固定的目录结构组合成一个完整文档。因此,当打开此类文件并另存到其他文件夹时,元文件中的“时间戳”或“路径信息”会被自动更新,因此哈希值会不同。
(四)纯数据文件,再次打开并另存其他文件夹后,哈希值不变
纯数据文件,也就是无动态元数据的文件,例如,压缩包文件(.zip、.7z、.rar)、音视频文件(.mp4、.flac、.jpg)、纯文本文件(.txt)等)的二进制内容完全由“用户数据” 构成,不包含与存储位置、系统环境相关的动态元数据。因此,再次打开并另存其他文件夹时,因其内容无任何改变,因此哈希值不变。可见下方两次计算结果的截图:
计算结果一:
计算结果二:
五、哈希值的强大功能
哈希值在实践中衍生出了诸多强大的功能和丰富的应用场景,如下页PPT所言:
1.比对电子数据的同一性:这在软件代码相似性比对中会大幅度减轻工作量,例如皮浩在虚拟币钱包功能性鉴定中的数据比对经典案例;阚吉峰主任办理案件;哈希值完全一样,京师孙建章案例;哈希值连号;哈希值种类不一;更重要的是,刘品新老师多次指出的,哈希值可能“倒签”,所以还要进行……
此时称哈希值为“电子数据同一性校验值”最合适。
2.特殊数据检索:涉恐涉暴音视频的全网检索;病毒检索
此时称哈希值为“电子数据同一性校验值”最合适。
3.信息内容保护:针对平台工作人员的用户密码保护;区块链数据、虚拟币交易详情的保护;王颋:戴尔下载后核对;许晓东:电网公司数据协同中的数据保护 。
此时称哈希值为电子数据“同一性校验值”“完整性校验值”“完好性校验值”均可。
六、不能过于依赖书面记录的哈希值
书面记录的哈希值可能是不可靠的,不能对其完全依赖。正如刘品新老师多次指出的:“书面记录的前后哈希值一致,数据不一定同一”。因此,还需查验时间、大小、日志等属性与痕迹,甚至抽样对比其内容,以做进一步准确判断。
更进一步说,电子数据形态多样,从电子合同到数据库文件、存储介质镜像,不同证据形式的完整性、完好性、可靠性、同一性的校验场景、技术适配与审查要点各有差异。没有“万能校验模板”和“统一认定标准”。
因此,电子取证人、检查人、鉴定人、法律人在审查中,仍需结合具体案件中的数据来源、提取流程、存储方式综合判断。绝不能因“已生成校验值”和书面记录的校验值前后一致,就放松对数据真实性、完整性、完好性、可靠性、同一性的校验和审查。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:电子物证 《【哈希值(电子数据指纹)的属性特征、计算方法、强大功能及误解澄清】》