下一章 上一章 目录 设置
17、第17章 PRES- ...
-
第二天早晨,PRES-17出现在信息楼一层的消防器材箱旁。
没有人把它送到宣传部,也没有人联系失物招领。保洁员六点四十分拖地时发现防震包靠着墙,包口敞开,演示器、电源线和便携打印机都在,唯独少了一根红色转接线。设备处于关机状态,外壳没有新划痕,屏幕边缘贴着一张已经作废的自助归还回执。
保卫处封锁了消防器材箱周围的公共区域。许砚知他们到场时,贺承远先让四个人站在警戒线外,逐一说明自己昨晚离开旧仓库后的路线。不是因为怀疑他们,而是任何参与者都要先把自己的位置写进时间线。
沈砺川报完宿舍门禁、校园卡消费和手机基站记录,问:“现在能看设备了吗?”
“先看谁碰过。”贺承远指向地面的黄色标记。
器材箱前有两种鞋印。一种属于保洁员,已经由本人确认;另一种很浅,只留下前掌纹路,无法判断尺码。防震包提手上提取到三组三年前遗留的混合指纹和一组近期残缺纹路。近期纹路不足以比对个人,只能确认不是保洁员。
“能证明有人把包放在这里。”林疏月说。
“还能证明什么?”贺承远问。
“不能证明那个人使用过设备,也不能证明就是昨晚借走的人。”
“写进去。”
设备被送进信息办隔离室。管理员先复制存储镜像,再读取安全芯片中的离线交易队列。昨晚那条“归还”记录确实由PRES-17签名,但签名生成时间不是冻结之后,而是下午四点二十二分。设备在离线状态下提前写好归还请求,直到十一秒后的某次短暂联网才上传成功。
冻结先发生,上传后发生;动作本身却在冻结前。
“所以它没有穿过冻结。”陈以宁在白板上改掉那条红线。
沈砺川盯着时间戳,半晌才说:“我昨天把它当成有人故意挑了冻结后的时间。”
许砚知没有说“我也没下结论”。他把昨天的临时行动单找出来,上面最后一条写的是“记录来源与冻结先后矛盾,待拆分签名时间和上传时间”。两个人都看到了异常,但只有沈砺川先把异常解释成挑衅。
“把你的原判断保留。”许砚知说。
沈砺川看他:“错的也留?”
“留。后面的人要知道为什么查离线队列。”
沈砺川在旁边补了一句:原判断未成立,原因是签名生成与服务器接收不是同一时刻。
证明不是把错误痕迹清干净。真正可靠的证明要让别人看见,哪些路走过,为什么没走通。
管理员继续检查设备。PRES-17的用户目录被清空,开放日插件却保留完整。插件中有一个“演示连续性”模块,负责在网络不稳定时缓存画面、授权和资产操作。当前版本比三年前多了签名验证,却仍兼容旧的LQ角色票据。
“为什么还兼容?”林疏月问。
宣传老师解释,旧活动模板一直没有彻底停用。每年开放日都沿用上一届页面,没人愿意在活动前重写整套控制流程。LQ角色已经不在正式权限列表里,却留在兼容代码中,用于读取旧模板。
“已经废弃的东西,为什么还能签归还记录?”
“归还记录用的是设备证书,不是LQ。”管理员说,“两个机制刚好都在同一个插件里。”
这句话把当前设备与旧案再次拆开。PRES-17能生成离线归还,不等于它用LQ-4操作过当前系统;装有旧插件,也不等于当前匿名帖来自它。
沈砺川请求查看插件执行历史。管理员同意读取命令类型和时间,不展示用户文件。日志显示昨天设备共执行四类任务:资产领取、展示页面预载、图像压缩测试、离线归还。没有访问证据库,也没有登录论坛。那张A401门口照片可能经过同类插件处理,却不是由这台设备完成,至少不是在现存日志覆盖的时段。
“同样的色彩配置,只能证明用过同版本工具。”许砚知说。
沈砺川点头:“不能证明同一台。”
他说得很快,没有为昨天的猜测找借口。
接下来要验证的是LQ-4三年前的实际调用。信息办调来两份长期封存的原始记录:授权服务的签发日志和各终端本地的命令回执。签发日志能证明令牌存在、从哪个父令牌派生;命令回执能证明某台终端曾接受一条指令。两者之间缺少的,是谁把令牌带到终端、谁按下执行。
管理员先把三类事实写在白板上:
生成:系统创建了LQ-4。
接收:设备获取并保存了LQ-4。
操作:终端以LQ-4身份执行具体命令。
“任何一类都不能自动推出下一类。”他说。
沈砺川把旧日志导入只读分析器。第一条生成记录来自MC-07,父令牌是LQ-3。第二条接收记录发生在TEXT-02,方式为局域网广播。第三条操作记录是摘要文档打开,不是修改。真正的批注保存晚了十二分钟,期间TEXT-02上还有两次普通键盘输入和一次文档自动恢复。
“打开和保存不是同一个动作。”许砚知说。
“也可能打开后一直没人动,自动恢复把旧草稿带回来。”沈砺川把文档缓存时间调出来。
缓存里有四段未保存批注,其中两段与最终删改相同,生成时间早于LQ-4。也就是说,LQ-4并不一定创造了那些文字,它可能只是把早已存在的草稿写进正式摘要。
林疏月问:“那谁写草稿?”
“目前不知道。”
“能不能查编辑历史?”
旧文档的本地历史损坏,只剩一个恢复包。恢复包记录作者字段为“MediaTemp”,是开放日所有临时文档共用的默认身份。
他们只能确认:删改内容在LQ-4生成前已经出现;LQ-4使其中一版进入正式文件。把“写出批注”和“保存批注”归给同一个人,没有证据。
appeal_queue的细节更复杂。二十点五十九分的日志过去被概括为“队列被修改”,原始回执却显示命令是`QUEUE_EXPORT_PREVIEW`,作用是生成展示预览。预览过程会暂时把五条待处理异议标为“已展示”,任务结束后应自动恢复。恢复命令没有成功,状态才永久停在错误位置。
“这是删掉申诉吗?”陈以宁问。
“结果上,它让待处理异议从后台列表消失。”管理员说,“但命令本身是预览,不是删除。”
“如果操作者知道恢复会失败呢?”沈砺川问。
“那需要证明他知道。”
旧插件的错误日志里有一条明确警告:队列恢复接口未连接,预览后请人工重置。警告弹出三次,每次都被关闭。关闭动作来自MC-07本机触摸屏。
这让“无意造成”变得难以直接接受,却仍不能确定触屏的是谁。演示器当时在三个房间间移动,任何拿到设备的人都可以点掉警告。
录像覆盖的证明链则最短。MEDIA-BRIDGE收到LQ-4后执行“导出展示片段”,参数引用一个已经存在的预览清单。清单把事故时段误指向早先画面,桥接程序忠实地按清单导出并覆盖临时文件。真正决定覆盖哪个时段的,是预览清单,而不是导出按钮。
预览清单创建于开放日前三天凌晨二点十七分。
正是匿名短信给出的时间。
文件名为`proof_detail_17.json`。
沈砺川看到“17”时立刻翻出P17设备、十七号胸牌和PRES-17的记录。许砚知没有阻止他并列,只在每一项后标注来源:“编号相同,命名规则未知。”
管理员打开文件元数据。`proof_detail_17.json`不是证据摘要,而是一份演示脚本的步骤表:第十七步要求系统切换到预先录制的“成功处理异议”画面,避免现场等待真实队列响应。它由WEN账户创建,随后被MediaTemp修改两次。
周闻创建过这份清单。
沈砺川的脸色明显变了。他没有立刻说话,手掌压在桌边,像把某种反应固定在那里。
“先读操作内容。”许砚知说。
这句话不是替他解释,也不是提醒别人照顾他。它只是把会议重新拉回所有人都应遵守的顺序。
第一次修改增加了“若现场队列不可用,使用离线成功录像”。第二次修改把备用录像路径从`appeal_success_demo`改成`public_success_loop`。后者正是覆盖事故时段的早先画面。
两个修改都发生在开放日前一天。作者字段仍是MediaTemp,无法识别个人。
WEN创建清单能证明周闻参与了演示设计,却不能证明他同意后来的路径替换。若只看最终文件,所有人都会把覆盖录像的源头归到创建者;证明细节却把创建、修改、执行拆成了三个时间点。
“这就是公开复盘里没写的部分。”沈砺川终于开口,“他们只写清单由周闻创建。”
陆行简在远程会议里承认,当年复盘确实引用了文件所有者和最终内容,没有恢复中间版本。“当时我们急着确认为什么录像不对,把文档创建者当成了流程责任人。”
“您签的复盘?”沈砺川问。
“我签了。”
“您现在觉得那份结论还能用吗?”
“不能作为人员责任结论。它最多证明周闻建立过第十七步。”陆行简没有躲开,“我会提交更正说明。”
沈砺川没有说谢谢。他把手从桌边拿开,重新检查时间线。
许砚知问:“你现在最想做什么?”
“把这段发到论坛上。”
“能发吗?”
“不能。里面有未公开材料,也没有完成复核。”
“还想发吗?”
“想。”沈砺川答得很直接,“但我不发。”
这是他的解释机会,不需要许砚知替他说“他不会冲动”。他亲自把冲动、边界和决定说了出来。
午后,孟老师主持了一次短听证。赵嵩、陆行简、宣传老师和当年的一名媒体志愿者唐曼在线参加。唐曼负责TEXT-02文稿切换,记得当晚电脑曾自动恢复一份批注稿。她没有逐字阅读,只看到页面上大量红色修订,以为是负责人确认过的版本,随后按流程点击保存。
“谁让你保存?”孟老师问。
“对讲机里有人说‘文本机不要再卡着,先落版’。”
“声音是谁?”
“听不出来。对讲机频道里很多人,设备也有杂音。”
“你知道保存会使用LQ-4吗?”
“不知道。我只看到登录状态没有掉。”
她的陈述与TEXT-02日志吻合:批注稿早已存在,唐曼完成保存,却不知道令牌来源。她承担操作事实,不承担批注内容来源。
赵嵩则确认自己知道LQ_admin权限过宽,也知道自动接续机制,但以为媒体控制室会在接续后补岗位签收。他没有检查补签是否完成。这个遗漏使空白链条成为可能,却仍不能证明后续三项操作由他指使。
听证结束前,孟老师让每个人分别回答一句:“今天哪项旧结论必须撤回?”
陆行简答:撤回“文档创建者等于最终内容责任人”。
赵嵩答:撤回“没有主动转交就没有产生子令牌”。
唐曼答:撤回“保存文件等于认可文件内容”。
沈砺川答:撤回“LQ-4可以指向一个人”。
许砚知答:撤回“最终结果可以替代中间步骤”。
五句话被写进更正草案,不相互抵消责任,只让责任回到各自能被证明的位置。
听证刚结束,学院论坛就出现了一张模糊截图。截图只保留赵嵩承认“知道自动接续机制”的半句话,标题却写成《旧项目技术联系人承认转移管理员权限》。发布者把“知道机制”改造成“实施转移”,把程序遗漏直接写成个人操作。
林疏月当场骂了一句。陈以宁先检查截图边缘,发现它不是从正式会议录屏裁出,而是有人隔着屏幕拍摄。听证参与者和旁听技术人员共有十二人,材料组没有权限自行排查手机。
孟老师要求先处理错误表述,不追泄漏者。她起草的澄清只有三点:赵嵩承认签领父令牌并知晓自动接续;现有证据不能证明他生成或使用LQ-4;程序责任、管理责任和具体操作责任仍需分别核验。
“要不要写唐曼?”宣传老师问,“不写的话,大家还是会以为保存文件的人就是改稿的人。”
唐曼本人拒绝公开姓名。她愿意让学院说明“固定文稿机操作者只执行保存”,但不愿重新被放进公开讨论。
沈砺川看着澄清稿:“不写她,怎么证明不是赵嵩自己在TEXT-02操作?”
“证明不是她的任务。”许砚知说,“澄清只撤回错误结论,不负责替任何人找到替代责任人。”
“我知道。可论坛的人会问,既然不是他,那是谁。”
“可以回答不知道。”
沈砺川没有立刻接受。他走到走廊尽头,过了几分钟才回来:“那就写不知道。别把唐曼推出去。”
孟老师让他亲自在补充说明栏签名。这个决定意味着,最有利于周闻和沈砺川的舆论回应会变得不够痛快,也意味着唐曼不会为了他们的清白承担新的曝光。
澄清发布后,评论区果然有人追问“不是赵嵩还能是谁”。学院没有补一个名字,只把三类事实表附在正文下面。生成、接收、操作,三栏分别列证据与空缺。很多人嫌表格绕,也有人第一次意识到,过去一句“周闻的文件导致录像覆盖”省掉了多少中间动作。
材料组回到A401,把当天的新事实整理成证明义务表。陈以宁把每个结论拆成“必要条件”和“现有证据”,林疏月专门负责找反例。
结论一:LQ-4由某个人主动创建。
反例:断线倒计时可以自动生成。
结论二:创建令牌的人修改了摘要。
反例:摘要草稿早于令牌,保存发生在固定文稿机。
结论三:预览异议队列的人故意删除申诉。
反例:命令类型是预览,永久状态来自恢复失败;但三次关闭警告仍需解释。
结论四:周闻创建第十七步,因此负责最终录像路径。
反例:路径在后续补丁中被替换。
沈砺川写到最后一条时,笔尖停在“周闻”两个字上。许砚知坐在对面,没有替他把名字划掉,也没有催。
“如果最后证明他知道呢?”沈砺川问。
“那就写知道。”
“你不担心我接受不了?”
“担心。”许砚知说,“但那不是删证据的理由。”
沈砺川抬头。许砚知没有躲开他的视线:“你可以难受,可以暂停,可以不参加某一次听证。但事实别因为我们现在是搭档就换写法。”
“你这话听起来挺冷。”
“你要我说好听一点?”
“算了。冷的比较可信。”
他在证明义务表上补全最后一句:当前只能撤回创建者等于最终修改者,不能撤回周闻参与演示设计。
许砚知在复核栏签名。
轮到沈砺川复核许砚知的部分时,他发现许砚知把“匿名泄漏与当前PRES-17有关”写进了弱假设,却没有填写任何支持证据。沈砺川没有顺手替他补上插件相似性,而是在旁边写:“同版本工具不能推出同设备,暂不成立。”
许砚知看见后,把这项假设降为背景线索。
两个人各自撤掉一条更符合自己直觉的推断。没有谁负责当永远正确的那个人。
他们准备封存证明义务表时,林疏月在旧问题卡夹层里找到一张很薄的复写纸。纸上只有半页格子,标题是“演示证明清单”,每个步骤后有三个方框:内容已核、设备已核、现场已核。第十七步只有前两个框打勾,现场核验框空着。
签名栏写WEN,复核栏空白。
这张纸至少说明,周闻没有把第十七步标记成现场通过。但复写纸脱离原册,来源和装订位置需要确认,不能立即作为决定性证据。
贺承远从库房调出当年材料盒照片。照片里原册右上角确实夹着一张颜色更浅的纸,孔位和当前复写纸一致。材料组申请对纸张纤维和压痕做非破坏比对。结果尚未出来,他们不把空白复核栏写进公开更正,只在内部表中记录“存在未完成现场核验的可能”。
证明的力量不只在于增加结论。有时它首先让一个已经说得太满的结论退回来,退到证据真正能够承担的位置。
傍晚,PRES-17的存储镜像里恢复出一张被删除的二维码截图。它不是昨晚的设备领取码,而是三年前媒体插件的测试入口,图案中央印着“STEP 17”。截图创建时间是昨天下午四点二十一分,比离线归还签名早一分钟。
有人在当前开放日筹备期间重新打开了旧第十七步。
二维码指向的地址已经失效,但路径末尾保留一个脚本名:`style_patch.py`。
信息办在三年前的媒体工具仓库里找到了同名文件。它负责把不同来源的展示页面改成统一样式,也负责生成`proof_detail_17.json`的预览路径。文件历经七次提交,作者字段涉及四个共享账户。
许砚知把“谁写了脚本”从后续问题单里划掉,改成:“哪些写法可以证明代码来自同一工具链,哪些写法不能证明同一作者?”
沈砺川看完,补了一行:“以及现在是谁重新运行了它。”
他们还没有打开源码,代码仓库的提交历史却先弹出一条完整性警告:第三次和第六次提交之间,存在一个未记录的补丁包。
补丁包没有作者,只留下四个字的提交说明:统一风格。
许砚知把那四个字又看了一遍,才合上页面。