跳转至

收到来源给的文件

一份内部简报

联系了三个星期的人今天发来一份 PDF,二十几页,看起来是内部简报的导出文件。

接下来要做的事有三件,顺序不能颠倒。确认你收到的跟对方发出的是同一份,弄清楚这个文件本身带着什么,然后决定报道里怎么引用它。

第三件最要紧。同一份文件在机构内部发给不同的人时,每一份可能都不一样,而差异细到肉眼看不出来。你把原文件直接交出去或公开,等于替对方指出是谁给的。

先确认两边是同一份

请来源在他那边算一次文件的 SHA-256,你收到之后用文件哈希比对算一次,两串对一下。

命令行本来就算得出 SHA-256,sha256sumshasum -a 256Get-FileHash 算出来的值跟文件哈希比对一样。对方不熟命令行的时候,给他那一页的网址比教他开终端快。

对得上代表传输过程完整。对不上就是中间掉了东西,重传。这一步做完,后面查到的任何东西都确定属于原文件本身。

看清楚这个文件带着什么

PDF 用 PDF 页面整理的「看里面有什么」,它会把每一页的文字抽出来、数一数附件、批注与表单字段。Office 文件与图片用文件 metadata 清除器,它会逐段列出里面有哪些字段。

常见的是制作者账号名称、公司域名、电脑的用户名称、精确到秒的创建与修改时间、编辑过这份文件的每一个软件版本。这些字段本身就足以把范围缩到几个人。

批注与修订记录也要看。简报里删掉但没有真的移除的备注栏,PDF 里盖着黑色方块但文字层还在的段落,都算在内。用同一页的搜索框查你以为看不到的字,搜索结果会显示那段字还留在第几页。

文件外泄追踪是怎么运作的

把同一份文件发给二十个人,每一份都做一点点不一样,事后取得外泄版本就知道是哪一份出去的。这个做法有几种形式,看不见的字符是其中一种。

零宽字符夹在字与字中间,屏幕上完全看不出来,复制粘贴会跟着走。同形字换掉几个字母,肉眼一样分不出。方向控制字符、标签字符也能拿来编码。

把文字粘贴进隐形字符检测,它会标出这几类字符的位置并说明每一类是什么。

隐形字符检测能证明有,不能证明没有。查出来干净只代表没有这几类已知的字符。用字间距、换行位置、图片里几个像素的差异做的标记,它看不到,而那几种手法一样在用。

所以核实的结论永远不会是「这份文件可以安全地公开」。

引用要靠重打与遮蔽

既然证明不了干净,报道里就不要转发原文件。

引用文字的时候自己重新打一次,不要从原文件复制粘贴。重打不会把夹带的字符带进你的稿子里,它们留在原文件那边,这是最简单也最可靠的一步。

一定要用画面的时候,截图之后用截图遮蔽把不该出现的部分填成实心黑,输出是重新编码的新文件,原文件的 metadata 与文件名都不会跟过来。

要把材料交给编辑部、律师或协作的记者,先问一句这个人需不需要原文件。多数时候他需要的是内容,而原文件每多传一手,被指认的机会就多一分。

原文件怎么收着

原文件要留,因为核实与日后的争议都要靠它。留的方式是加密之后放在自己的设备上。

密语与密码生成器抽一组密语,用本机文件加密封起来。输出是 age 格式,任何装了 age 命令行工具的电脑都打得开,日后换设备也不会被这个网站绑住。

这条路径不只用在内部文件

任何一份你没有制作、却要拿来用的文件都适用:

  • 读者或民众提供的照片、录音与截图
  • 依法申请取得的公文与会议记录
  • 匿名信箱收到的附件
  • 协作对象发来、你要再往外交的素材

这几个工具都在你的浏览器里执行,文件没有离开设备。页面存进设备之后没有网络也能用,见离线阅读