🛡️ 第六章 组织机构的安全防范对策
📄 一句话概括

取证要证明的不是【我看过这个文件】,而是【这个文件从提取到呈交全程没被动过】——哈希值与证据链记录表,就是干这件事的两样工具。

📝 本节和前面几节的关系

6-10 讲的是【怎么把记录留下来】,这一节讲的是【怎么让留下来的东西在法律上站得住】——前者是技术问题,后者一半是技术、一半是程序问题。 它和 5-5 直接衔接:那一节讲的哈希三性质(定长、单向、抗碰撞),在这一节变成了一个具体的法律工具——完整性校验值。 它也和 6-5 里【先取证、再遏制】的顺序呼应:取证的动作要在处置之前做,因为处置会破坏证据。

一、法律依据的时间线

电子数据是法定证据种类之一,这件事在国内是通过几个文件确立并细化的:

时间 文件
2016-10-01 施行 两高一部《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》
2019-02-01 施行 公安部《公安机关办理刑事案件电子数据取证规则》
2026-05-22 公布 公安部《公安机关电子数据取证规则(征求意见稿)》

【电子数据是法定证据】这句话的分量,比它听起来要重。它意味着三件事:

二、2026 修订的三个方向

2026-05-22 公布的征求意见稿(反馈截止 2026-06-21)有三个明确的修订方向:

这三条里,【扩大适用范围】最值得注意。它的实际含义是:过去只用于刑事案件的取证规则,现在也会用于行政案件,而企业最常遇到的其实是行政场景(数据泄露、违规处理个人信息、网络安全事件处置)。对应的程序要求上,行政案件基本参照刑事执行,但是否全程同步录像、电子数据冻结期限等,会作出差别化规定。

【明确特殊程序】这一条对企业有直接的操作参考:确需输入智能终端账号密码的,一般应先由持有人提供;不提供的,须经县级以上公安机关负责人批准,并在告知持有人或有见证人见证下采取相应措施;调取电子邮件等个人通讯内容,先由持有人登录邮箱协助,不予协助的须经地市级以上批准并告知或见证。同时增加了【获取账号密码决定书】【获取个人通讯内容决定书】这类文书。这套要求的设计意图很清楚:把【获取什么、凭什么获取、谁批准】写成可追溯的文书,避免过程无据可查。

三、电子数据包括什么

范围比很多人想象得宽:

这个范围对企业内部调查的意义是:可能成为证据的东西,远不止【文件】这一类——聊天记录、日志、账号注册信息、甚至是数字证书,都在范围内。所以【保留证据】这件事,从【把文件拷出来】扩展成了【把整条痕迹链固定下来】。顺带说一句:【电子数据】的范围这么宽,也意味着它极容易因处置动作而被破坏(一条处置指令就可能覆盖日志、清理临时文件)——这就是 6-5 讲的【先取证、再遏制】的技术原因。

四、四个原则与一条底线

电子数据作为证据,要满足四个属性:

原则 落到操作上
真实性 来源可查、过程可复现、内容没被选择性截取
合法性 取证主体与程序合规,该批的批、该见证的见证
关联性 能指向具体的人、账号、设备与时间
完整性 用哈希值固定,且全程留痕

【真实性】这一条有一个特别容易被忽略的补充要求:不得选择性截取、删减或拼接。这条看似只是伦理要求,实际是技术问题:你从一段聊天记录里截取几句话,和把整段对话完整保存,证明力完全不同——前者无法排除【断章取义】的可能。 对应的做法是:保全时尽量保留上下文与原始载体结构,而不是导出成一份【摘要】。

底线是【严禁触碰原始数据】。具体做法是:用只读接口、做数据镜像、在虚拟环境里分析,实时记录检验步骤、设备参数与分析结果,确保操作可复现、可核查。【可复现】这个要求值得特别提一下:它意味着检验过程本身要详细到【另一个有资质的人按记录重做一遍,能得到同样的结果】——这其实是科学方法在取证里的应用,也是【检验步骤要实时记录】的原因。

最后一个数字要记住:冻结电子数据的期限是六个月,每次续冻最长不超过六个月。这个期限和 6-10 里的六个月是两件事:一个是【必须留存多久】(义务),一个是【冻结能持多久】(程序期限)。

五、动手 Demo:用哈希值证明没被动过

这一段是本节最技术、也最有价值的部分。哈希值(完整性校验值)的作用是:用一串短字符代表任意长度内容的【指纹】——内容变一个字节,指纹就完全不同。

import hashlib
data = "订单表 orders_2026Q1.csv 的原始字节".encode("utf-8")
h1 = hashlib.sha256(data).hexdigest()      # 第一次计算
h2 = hashlib.sha256(data).hexdigest()      # 第二次计算,用于比对
# 改动一个字节之后
bad = bytearray(data); bad[0] = (bad[0] + 1) % 256
h3 = hashlib.sha256(bytes(bad)).hexdigest()
same = sum(1 for a, b in zip(h1, h3) if a == b)      # 4 —— 64 位里相同的位置数

实跑输出:

五、动手:用哈希值证明没被动过
  原始数据长度            43 字节
  第 1 次 SHA-256         1490edf3ddc1d4a8a20c06d31c4f619d83d5f84e916bbd99
                          2e83fbbfaf642af3
  第 2 次 SHA-256         1490edf3ddc1d4a8a20c06d31c4f619d83d5f84e916bbd99
                          2e83fbbfaf642af3
  两次是否一致            一致,完整性未被破坏
  改动 1 个字节后         d65dcf716b63b50abc8a2651fbaf196360153fb75628953c
                          9adb4a4b7a20b243
  与原始哈希相同位数      4 / 64
  → 只改了一个字节,64 位十六进制里几乎全变了。
     这就是完整性校验值能当作证据的理由。

读这个输出:

六、证据链记录表要记什么

哈希解决【内容有没有变】,证据链记录表解决【东西经过谁的手】。两件事都要有:

字段 示例
证据编号 EV-2026-0312-001
提取时间与地点 2026-03-12 10:05,主机房 B12 机柜
提取人与见证人 张某(编号 0321)、李某(见证)
原始介质序列号 SN-8HJ2K9L1
镜像文件与哈希 disk01.E01,SHA-256 见上
保管移交记录 每次移交签名与时间,缺一不可

这张表里最关键的是最后一行。证据的证明力不只取决于【它是什么】,还取决于【它没被谁碰过】——所以每一次移交(从现场到实验室、从实验室到保管柜、从保管柜到呈交)都要有签名和时间。 一个常见的失败场景是:证据从技术同事的电脑拷贝到 U 盘,再从 U 盘拷到另一台电脑,中间没有任何记录——这时即使哈希值一致,【这段时间谁能接触到它】也是说不清的。

另外两个细节:① 见证人——在需要见证的场景下,见证人本身也是记录的一部分(他见证了什么、什么时候在场);② 国际协作——《联合国打击网络犯罪公约》在 2024-12 由联合国大会通过,中国等 70 余国签署,跨境取证协作有了新的框架。对涉外业务的组织来说,这意味着【证据能不能跨境采用】这件事,未来会有更明确的路径。

七、⚠️ 2026 现状

30 秒实验

今天做两个动作,各 15 秒:

  1. 在手边找一个文件,算一次它的 SHA-256。Windows 上用 Get-FileHash 文件名 -Algorithm SHA256,Linux/macOS 上用 sha256sum 文件名。 然后改一个字符再算一次,看两串值有多不同——亲手做过一次,你对【哈希能证明没被动过】这件事的理解会比读十遍定义更牢。
  2. 想一下你所在环境里【出事之后第一个要做的事】是什么。如果是【赶紧关机/重启试试】,那说明现有流程与取证要求是冲突的——正确的第一动作通常是【记录并保全易失数据(内存、连接、进程)】,然后才隔离。 这个顺序平时写进一页纸,出事时能省掉几小时。

这一节要带走的一句是:取证的核心不是【我看到了什么】,而是【我怎么证明我看到的就是当时的原样】——哈希管内容,证据链管过程,两者缺一不可。

常见误区

  1. 错误:出了事赶紧关机断电,防止攻击者继续破坏。——纠正:这个动作会销毁大部分易失证据,而且往往没必要。关机断电会让内存中的进程、网络连接、登录会话、临时文件全部消失——而这些恰好是判断【攻击者怎么进来、做了什么、还有没有其他驻留点】的关键材料。更稳妥的顺序是:① 先记录并保全易失数据(内存镜像、当前连接与进程列表、已登录用户);② 再隔离(优先用网络隔离策略而不是关机);③ 保持系统带电——因为很多取证动作要在开机状态下用只读方式完成(镜像制作、日志导出)。当然有一个例外必须承认:如果攻击正在快速扩散(比如勒索软件正在加密共享目录),遏制优先于取证——所以这个判断必须由 6-5 里的【事件指挥官】来做,不能由现场每个人各自决定。

  2. 错误:只要算出哈希值一致,这段证据就没有问题了。——纠正:哈希只解决【内容与计算时刻是否一致】,它不解决另外三件事。① 计算时刻之前的内容对不对——如果提取时就已经不完整(比如漏了一部分日志),哈希只能证明【你手里这份没变】,不能证明【你手里这份是全的】;② 谁在什么时候接触过它——这是证据链要回答的;③ 取证程序是否合规——该批准的有无批准、该见证的有无见证、取证主体是否具备资格,这些属于合法性问题,哈希完全无法覆盖。 换句话说:真实性与完整性靠技术手段(哈希、镜像、时钟同步),合法性与关联性靠程序设计(批准、见证、编号、上下文)——后者往往比前者更容易出问题,因为它需要人按流程做,而不是运行一条命令。

  3. 错误:先把系统重装好恢复业务,取证以后再说。——纠正:重装会不可逆地销毁证据,而【以后】通常意味着证据已经不存在了。具体来说:重装会覆盖磁盘、清除日志、丢失内存中的痕迹;即使之后发现【这是起入侵事件、需要追责或报警】,也已经无法证明对方做了什么。 正确的顺序是把恢复和处置分开:① 先保全证据(镜像 + 内存 + 相关日志导出);② 再评估影响范围与根因;③ 然后才做清理与恢复;④ 恢复后要验证(确认没有残留的账号、任务、外连行为,见 6-5)。一个现实的折中是:如果业务压力极大,可以在保全证据之后,用【干净环境】先恢复对外服务——但前提是证据已经固定住,而不是【边恢复边取证】。

  4. 错误:内部调查不受那些取证规则约束,随便怎么查都行。——纠正:内部调查虽然不适用刑事取证规则,但它受另外两套约束。① 个人信息保护的相关要求——调查中获取员工个人账号、通讯内容、位置信息等,涉及个人信息处理,需要正当目的、必要范围与告知(参照 6-1 讲的隐私策略);② 证据可采信的问题——如果将来要用于劳动仲裁或民事诉讼,程序瑕疵同样会影响它的证明力。所以更稳的做法是【内部调查也按取证标准来】:有批准、有见证、有编号、有哈希、有交接记录。实务建议是在员工手册与信息安全制度里提前写明【公司有权在何种情形下、以何种方式对工作设备与账号进行审计】——提前写清比事后解释有效得多。

自测三问(点开对答案) 1. 哈希值为什么能证明【内容没被动过】?它的局限在哪? —— **原理上**:**哈希函数把任意长度的输入映射成定长输出,且具有雪崩效应(改一个字节,输出几乎完全不同)与抗碰撞性(很难找到两个不同输入得到同一个输出)**(5-5 有完整说明)。**所以【提取时算一次、呈交时再算一次,两值相同】就构成一个很强的证据:内容在这两点之间没有变化**——**Demo 里那个 4/64 就是在演示【哪怕只改一个字节,指纹也会完全不同】。** **局限有三条**:**① 它只能证明【与计算时刻一致】,不能证明内容本身完整、来源合法**(**漏采的数据不会因为哈希一致而变全**);**② 它能证明【没变】,但不能证明【没被人看过】**——**保密性不在它的能力范围内**;**③ 它的效力依赖于【计算过程本身可信】**——**如果算哈希的机器被控制、或者两次计算用的是不同版本的软件,比对的意义就打折**。**所以实务上要求【用只读方式、在受控环境下计算并记录工具与参数】。** 2. 为什么【证据链记录】里的移交记录这么重要? —— 因为它**回答的是【证据有没有被谁动过】这个问题,而这是证明力的核心组成部分**。**哈希能证明【内容一致】,但有一种情况哈希管不了**:**如果有人复制了一份、改动后再复制回来,而两次计算都没在对的时机做**——**这时只有【谁在什么时候持有过它】的记录能揭示出可疑窗口**。**另外,移交记录还有三个直接作用**:**① 它构成完整的保管链证据**,**任何一环缺失都会成为对方质疑的抓手**;**② 它能排除【取证人员自导自演】的怀疑**(**多人见证与签名是廉价的防伪手段**);**③ 它是内部追责与流程改进的依据**(**如果某次移交无人签名,那说明制度执行有洞**)。**实务上最有效的做法是把移交做成一个固定表单**:**每次交接填一行(时间、交出人、接收人、介质编号、哈希值、备注)**——**一行一行填下来,链条就是自动完整的。** 3. 出事后【先恢复业务、再取证】这个想法错在哪? —— 错在**它假定【证据以后还在】,而现实恰恰相反**。**处置动作对证据的破坏是快速且不可逆的**:**重启会清内存、重装会覆盖磁盘、清理临时文件会丢掉执行痕迹、日志轮转会让旧记录消失**(**而这些日志很可能就是 6-10 讲的那种【平时设成 30 天】的应用日志**)。**所以【以后再说】通常等于【永久失去】。** **但这不等于要在没有业务的情况下慢慢取证**——**正确的做法是把顺序拆成【保全 → 处置 → 恢复】三段**:**第一段尽可能短(抓易失数据、做镜像、导出相关日志,通常几十分钟到几小时),第二段把攻击者清出去、把漏洞堵上,第三段恢复业务并验证。** **如果业务压力极大,可以并行**:**在保全完成之后,用隔离的干净环境先恢复对外服务,同时在生产环境的取证副本上继续分析**——**前提是【保全】这一步已经完成,而不是边恢复边取证。**

相关笔记