证据链与保管记录
证据链(chain of custody)是数字证据从采集到归档全过程的可追溯记录:谁在什么时候、从哪里、用什么方式取得,之后经过谁的手、做了什么操作。它的作用不是形式主义——一旦缺少某一环,证据在内部追责、保险理赔乃至司法程序中就可能不被采信。与其事后补记,不如在第一次采集时就按固定字段登记,后续每一步顺手续写。
基本信息
| 要素字段 | 编号、描述、来源主机、采集人、采集时间(UTC)、哈希值、存放位置 |
|---|---|
| 移交记录 | 每次交接写清交出人、接收人、时间、事由,双方确认 |
| 存放要求 | 加锁或加密存储,限制访问人员,介质做好物理标识 |
| 操作原则 | 原始件不动,全部分析在副本上进行 |
| 计算工具 | sha256sum(Linux)、Get-FileHash(Windows) |
| 标准参考 | ISO/IEC 27037 数字证据识别与保全、NIST SP 800-86 |
典型使用场景
- 采集可疑样本、日志、内存与镜像时统一登记,避免“说不清来源”
- 多团队协作处置时交接证据,确保责任边界清晰
- 向管理层或外部机构提交材料时提供完整哈希与保管记录
- 保险理赔与法律程序中说明证据未被污染
- 内部复盘时追溯当时到底采了什么、谁经手的
登记哈希与保管日志
登记哈希与保管日志
CASE=/evidence/CASE-2026-1013 # 以案件号建目录,禁止与主机混放
mkdir -p $CASE && chmod 700 $CASE
sha256sum /evidence/suspect.bin | tee -a $CASE/hash.txt # 采集即算哈希
cp -a /evidence/suspect.bin $CASE/ # 归入案件目录,保留属性
stat -c '%n size=%s mtime=%y ctime=%z' $CASE/suspect.bin | tee -a $CASE/meta.txt
printf '%s | %s | %s | %s\n' "$(date -u +%FT%TZ)" "采集" "张三" "可疑二进制样本" | tee -a $CASE/custody.log
sha256sum -c <(awk '{print $1" "$2}' $CASE/hash.txt) 2>/dev/null | tail -n 3 # 事后校验一致性保管记录字段
| 字段 | 写法要求 | 作用 |
|---|---|---|
| 证据编号 | 案件号加流水号,全流程唯一 | 避免多份证据混称 |
| 描述 | 文件类型、大小、来源路径 | 说明它是什么 |
| 采集信息 | 采集人、时间(UTC)、采集方式 | 证明来源与合法性 |
| 哈希值 | sha256 全文,采集后立即计算 | 证明内容未被改动 |
| 存放位置 | 目录路径或介质编号与保管柜编号 | 证明未被随意接触 |
| 操作记录 | 每次分析或复制的时间、操作人、动作 | 说明经手过程 |
哈希清单与保管日志要异地备份:证据主机自身也可能故障、被加密或被清理。日志与证据分开放,任何单点丢失都不至于让整条链断掉。
原始件永不直接分析:镜像、磁盘与日志原件只读保存,分析一律在副本上进行。需要验证副本与原件的同一性时,用哈希比对,而不是凭文件名与大小判断。
国内场景下数字证据多用于内部追责与向主管机关报告,材料要求以本单位制度与委托机构的要求为准;拿不准时按更严格的标准执行,多记一列比缺一列好补。
常见做法与禁忌
- 用 U 盘拷贝证据前先确认介质可信并做写保护,拷贝后立即校验哈希
- 每次移交或复制后重新校验哈希,并记录校验时间与结果
- 保管记录统一写入案件目录下的日志文件,不要写在便签或聊天记录里
- 证据目录不要放在受害主机同一块磁盘上,加密或清除脚本会连证据一起处理
- 除了文件本身,处置动作与命令也要登记,它们同样属于保管记录