首页/安全/取证与溯源速查/哈希校验的三个时机
证据与报告57 条

哈希校验的三个时机

哈希至少要在三个节点核对:采集完成时、分析结束时、证据返还或归档前,任何一次不一致都要暂停流程查原因。

取证与溯源速查安全更新于 2026-10-13

哈希要卡在三个时间点

哈希是证明「这份数据从头到尾没变过」的唯一手段,但只在某一个时刻算一次意义有限。规范做法是在三个节点各核对一次:采集完成时(源盘与镜像各记一次)、分析结束时(复核镜像与镜像副本)、证据返还或归档前(再次复核)。任何一次结果与记录不一致,都要暂停流程先查清原因,而不是继续往下走。

基本信息

时机 1采集完成:源设备与镜像各记录一次,方向与范围写清楚
时机 2分析结束:复核镜像文件本身,确认分析过程未改动证据
时机 3归档或返还前:复核存储介质上的镜像副本,确认长期保存未损坏
常用算法SHA-256(新流程首选);MD5 仅作为与旧记录兼容的补充
记录要素哈希值、算法、时间、执行人、被校验对象的完整路径与大小
复核方式sha256sum -c 清单文件,批量比对并保留输出

典型使用场景

  • 交付证据时说明镜像自采集以来未被修改
  • 判断归档介质是否发生静默损坏(位衰减)
  • 排除「分析结果差异是否来自证据改动」这一可能性
  • 多份副本之间做一致性比对
  • 为报告附录提供可复核的校验清单
  • 长周期案件中途交接时,确认接手到的仍是原始副本

记录与复核

记录与复核
# 采集完成:镜像与源设备分别计算,追加写入清单(带时间与执行人注释)
sha256sum /evidence/sdb.dd | tee -a /evidence/hashes.txt
# 源设备仍可读时补记一次;已归还则只能依赖当时记录
sha256sum /dev/sdb | tee -a /evidence/hashes.txt
# 分析结束时复核镜像(清单里只保留镜像行,避免把设备路径也拿去校验)
sha256sum -c /evidence/hashes.txt --ignore-missing
# 归档介质上的副本再核对一次
sha256sum /mnt/archive/sdb.dd
# 把复核输出一并存档,作为过程记录
date -u; hostname; sha256sum -c /evidence/hashes.txt --ignore-missing | tee -a /evidence/hash_recheck.log

校验清单要素

要素作用缺失后果
哈希值与算法唯一标识数据内容无法判断算法不一致时是否为同一份数据
被校验对象路径与大小避免把设备与镜像混在一起比对校验对象错位,复核结论无意义
校验时刻(UTC)把校验行为放入时间线无法证明是何时校验的
执行人责任归属与交接依据出了问题无法追溯
工具与版本不同实现或参数可能产生差异结果不一致时无法排除工具因素
只写不验证的哈希清单没有实际意义。每次复核都要留下带时间与执行人的输出记录,并在清单里注明哪些是对源设备、哪些是对镜像文件。
源设备的哈希在采集后通常无法复测(设备已归还或已改写),必须在现场当场记录。若源设备容量大、时间紧张,可先只记录采集范围(起止扇区)与镜像哈希,并在报告里如实说明未做源侧校验。

易错点

  • 采集完成时不记录源设备哈希,源盘归还后完整性只剩单侧证据,难以证明镜像忠实复制
  • 把清单里的设备路径与镜像路径混在一个文件里做 -c 校验,导致校验失败却查不出是对象错位
  • 存储介质与文件被替换后才发现复核失败,事前没有基线可比
  • 只保存哈希值不保存校验输出与时间,无法证明校验真的执行过
  • 用与记录不一致的算法复算(如记录 SHA-256、复算 MD5),得出「不一致」的错误结论

数据来源与参考

  • NIST SP 800-86(完整性校验)
  • SANS 证据固定资料
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌