加密与哈希在取证中的应用
哈希函数是数字取证中最基础也是最重要的工具。简单说,哈希函数把任意长度的数据变成一串固定长度的“指纹”,只要原始数据有一丁点变化,哈希值就会完全不同。
取证中最常用的哈希算法有三个:
MD5:输出128位哈希值,通常表示为32位十六进制字符。比如一份文件的内容是“hello world”,它的MD5就是5eb63bbbe01eeed093cb22bb8f5acdc3。文件里多一个空格,MD5就完全变了。虽然理论上MD5存在碰撞(两个不同文件产生相同哈希)的可能性,但在实际取证中仍然广泛使用。
SHA-1:输出160位,比MD5更长。目前已经被认为不够安全,但在许多取证工具中仍然是默认选项之一。
SHA-256:输出256位,目前安全性足够,也是取证中最推荐的哈希算法。
在取证实践中,哈希有三大用途:
证据完整性验证:获取证据时计算一次哈希值并记录下来。分析结束后再计算一次,两次对比一致就证明证据没有被修改过。这是法庭接受电子证据的基础。
文件去重:在大量文件里找出重复的。比如一个硬盘镜像里有10万张图片,用哈希值做索引,哈希值相同的文件就是重复的,可以只分析一份,节省大量时间。
恶意软件识别:一个恶意软件的哈希值就是它的“身份证”。在威胁情报平台上搜索恶意样本的哈希,能查到它是什么病毒、有什么行为、怎么清除。
在取证工作中,加密技术也经常遇到。加密分两类:
对称加密:加密和解密用同一把钥匙,常见的算法有AES、DES。特点是速度快,适合加密大量数据。
非对称加密:加密用公钥,解密用私钥,常见的算法有RSA。特点是安全性高,但速度慢。
取证人员遇到加密数据时,获取解密密钥是核心工作之一。密钥可能藏在这些地方:内存中(如果系统在运行,密钥可能在内存里)、密码管理软件里、纸质记录里、或者嫌疑人自己知道的密码。
全盘加密是近年来取证遇到的最大挑战。BitLocker(Windows)、FileVault(macOS)、LUKS(Linux)都是全盘加密方案。如果硬盘被全盘加密而取证人员不知道密码,理论上无法读取任何数据。解决方案是:在系统运行时制作内存镜像(密钥可能在内存中)或者通过法律途径获取密码。
浙公网安备 33010602011771号