祥子在那个地下仓库式房间的门口,借着门缝里透出来的光,把里面的格局看清楚了大半。货架后面站着两个人,一个是兼定,左臂绑着临时止血带,止血带的布料渗出了深色的血迹,颜色还新鲜。另一个人她认不出来,背对着门站着,身形比兼定矮半个头,穿着一件深色连帽外套,帽子还压在头上,从她的视角只能看见背部轮廓。
两个人的站位不是对峙,是某种比对峙更复杂的格局——兼定靠着货架,身体重心往左偏,是左臂受伤之后的代偿姿势,但他没有防御性动作,没有往后退,他在听那个背对着门的人说话,姿态里有一种强撑出来的专注。
那个人的声音传不到门口这里来,耳机里只有频段信号的脉冲,没有可解析的语音内容。
祥子把这个画面在脑子里压住,没有动,因为她不知道这个房间里是不是只有这两个人。
货架左侧还有一段空间在她视线之外,那段空间的深度她无法判断,如果还有人在那里,她贸然推门进去,就是直接把自己暴露在一个没有退路的封闭空间里。
她在门口等了大约四十秒,没有来自货架左侧的动静,没有第三道影子出现。
她把那张旧系统令牌从外套口袋里取出来,攥在右手里,用左肩抵住门框,把门推开了一条比原来更宽的缝,踩进去,贴着靠门一侧的墙站住。
兼定先看见她的。
他的视线从那个背对着门的人身上移过来,落在她脸上,停了将近两秒,没有说话,也没有任何示意她退出去或者进来的动作,只是看着她,像是在等她自己判断接下来要做什么。
那个背对着门的人在兼定视线偏移之后,停顿了半拍,然后转过身来。
祥子在这一刻把那张令牌握紧了一下。
是联络员。
她活着,站在这里,站在这个距安全屋步行三分钟的地下仓库里,外套换了一件,比今晚递给祥子卡片时穿的那件更厚,帽子摘下来叠在臂弯里,脸上有划伤,细而浅,像是在管道里移动时蹭到了什么,左侧脸颊靠近颧骨的位置有一道,已经结了壳,不是今晚留下来的。
两人对视的这几秒里,货架右侧有什么东西轻微地响了一声,祥子的视线立刻往那个方向偏,是一个储存箱的金属扣件在温差里热胀产生的形变声,不是人。
联络员没有动,只是把那顶帽子从臂弯里转到右手,用一个无声的动作示意货架深处的某个方向。
货架后面,有一个半开着的金属门,不是刚才她进来时经过的那道门,是房间里侧的,比外侧那道小,上面有一排锁孔,锁是开着的,门缝里透出一种更暗的光,不是荧光灯,是某种设备运行时的指示灯颜色,蓝白色的,稳定。
祥子把这道门和安全屋密封房间里那条蓝色光带放在一起,对准了。
联络员今晚的移动路线里,有一段是从安全屋管道系统出来的,她从物资区检修口进去,在密封房间里坐了不超过三秒,拿走了那张手写纸,然后从那个房间的检修口出去,穿过管道,从正面街道那侧的排气出口离开安全屋,走正面街道,步行到这里。
这条路线是成立的。
但手写纸上的那个设施坐标和时间窗口,是有人提前放在物资区那个储存盒里的,放进去之前,那些纸已经折叠好了,是准备给人发现的,而发现它的是虹夏,虹夏发现之后是她去读的,她把坐标发给了白野——
白野说他在虹夏的核实数据里看见了那个坐标。
那条核实数据里没有坐标,她确认过,虹夏发出去的是设备信息,不是坐标内容。
白野撒谎了,或者白野有另一个信息来源,他在她发现那些手写纸之前,就已经知道那个坐标了。
她把这件事在脑子里快速过了一遍,同时把视线重新对准联络员,问了一件最关键的事——
密钥在哪里。
联络员没有立刻回答,她把手里的帽子放到货架上,从外套里侧的口袋里取出了一样东西,放在货架上,朝着祥子推了过来。
是那张手写纸。
纸展开,就是她在安全屋密封房间里看见的那两行——指令格式加确认代码,以及代码前面那半行系统访问密钥的参数结构。
但纸上多了一行字,是用不同的笔在原有内容下方补写的,比原来那两行字更小,笔压更轻,是另一个人后来加上去的。
那一行补写的内容是一个坐标,不是今晚任何人发给过她的坐标,是一个新的,在这个设施内部的房间编号,以及一个说明——密钥的物理载体在那里,今晚已经被移走了,不在这个房间里。
密钥已经不在这里了。
被谁移走的,移到了哪里,纸上没有写,那行补充的字的笔迹,不是联络员的字迹,她今晚见过联络员在卡片上留字,笔迹不同,是另一个人的。
她把这张纸翻过来,背面有一行印刷字,是一个内部设备的型号编码,说明这张纸原本是某种操作手册的内页,从装订本里撕出来的,撕痕在纸张左侧,是今晚才撕的,纸的断面还没有起毛。
这栋建筑里有某种操作手册,这意味着这里有人在用这个地方,而且用的时间不短,有足够时间建立一套完整的内部操作流程。
兼定在她把纸翻回正面之后开口了,他的声音因为今晚那段时间的透支而有些粗,但说的内容很清楚,他说密钥被移走的时间是两个小时前,在她们还在安全屋里处理厢式车和地下通道的那段时间里,有人进来把东西取走了,而这个人有这个设施里侧房间的访问权限,不需要从外部令牌进门,是有内部凭证的人。
两个小时前,祥子在安全屋里处理的是厢式车出现的问题,白野在外围指挥,八奈见刚刚开始监听那台数据终端。
两个小时前,白野已经在往这个坐标走了。
白野说他十分钟前才开始走,但他说的时间是假的,他在进来之前就已经知道这个坐标,他是今晚所有局面里,唯一一个她从来没有亲眼追踪过移动轨迹的人。
她把手机拿出来,看了一眼白野的最后一条消息时间戳,然后看了一眼兼定。
兼定在地下通道里受的那道伤,止血带是用外套袖子撕的,是临时处理的,没有人帮他,是他自己处理的。地下通道里格栅封死,三个外来的人被困在里面,兼定从南端出口出来,血迹延伸到这里。
她问兼定,地下通道里那三个人,他处理了多少。
兼定停了一拍,说他解决了其中两个,第三个人在格栅封住之前,用一种他没有预期到的方式从南端出口的备用管道出去了,不是她们封住的那条管道,是一条更旧的、没有在安全屋设施图上标注的管道,那个人比兼定更早知道那条管道的存在。
第三个人已经出去了,出去的时间,也是大约两个小时前。
两个小时前,密钥被移走,第三个人从地下通道的旧管道出去,白野开始移动。
这三件事的时间高度重合。
她把手机放回口袋,把手写纸折好,放进外套里侧的口袋,然后往那道里侧的小金属门走,推开了门。
里面是一个更小的房间,不是仓库,更像是一个长期使用的工作间,靠墙有一张长桌,桌上有三台设备,其中两台是关机状态,第三台的屏幕还亮着,屏幕上停着一个操作界面,界面最上方是一个设备型号编码,和那张纸背面的印刷字完全一致。
这台设备的最后一次操作记录停在两小时零七分钟之前,操作内容是一个物理拔取动作,设备记录显示某个外接存储单元在那个时间点被断开连接并移除。
外接存储单元,就是密钥的物理载体,被从这台设备上拔走了。
移走的人没有关机,没有清除操作记录,像是不在乎这些记录会不会被人发现,或者移走密钥之后,他知道这个地方很快就会被别人找到,清除记录没有意义。
她把这台设备的操作界面往下翻,找到历史访问日志,日志里最近三十天的访问记录全部是一个相同的账号ID,是匿名代码,不可追溯,但在倒数第三次访问记录里,有一条异常——那次访问使用的不是主账号,而是一个访客权限,访客权限的授予方式是临时令牌,令牌的颁发节点是野火档案系统的管理节点。
野火档案系统的管理节点,今晚还向她的账号发出了一条权限授予记录,用的是同一个颁发节点。
今晚用这个节点发过两条授权,一条给她,一条给进入这个工作间的那个人,两条之间的时间差是三个小时,另一条更早,是在她们所有人还没有聚集到安全屋之前发出去的。
管理节点的操控者今晚在这个设施里来过,然后离开了,他留下了那台还亮着屏幕的设备,留下了访问日志,他让这些痕迹被人发现,因为他知道今晚会有人来这里,而他希望这个人把今晚所有的碎片拼在一起。
这个设置是给她的。
她在那台设备前站了将近一分钟,把这个判断在脑子里确认了几次,方向没有偏移,每一次确认都指向同一件事——今晚从安全屋到地下通道到这个设施,整条路上的所有细节,都是有人提前铺好的,而铺路的人,不是要困住她,是要带着她,用今晚这些拼图,把一件三年前没能说清楚的事情,重新说一遍。
她把视线从屏幕上移开,往长桌右侧看,桌面上有一块灰色的防尘布,防尘布下面有一个凸起的轮廓,是某个设备或者物件的形状,她把防尘布掀开。
下面是一个档案盒,灰色的,上面有野火内部的标识,标识旁边贴着一张小纸条,纸条上写着一串数字,和她今晚从那张卡片上查到的档案索引编码,后四位相同。
这个档案盒不是空的,她能感觉到盒子的重量,里面有东西。
她把档案盒放到桌面中央,打开盒盖,里面是一叠文件,不是数字档案,是实体打印件,纸张的时间有些久了,边角有轻微的氧化痕迹,最上面一页的页眉日期是三年前,封存事件发生的那个月份。
这是那次封存事件的完整内部记录,实体版,从来没有进入过数字系统,不在任何人可以通过账号查阅的权限范围里,是某个人把它打印出来,放在这里,等人来取的。
她把最上面那几页快速翻了一下,内容比她今晚在手机上读到的数字档案更详细,有完整的操作步骤、参与人员、密钥转移的具体流程,以及一份附录——附录里是一张名单,不是她今晚在权限页面上看见的那份只有两个人的名单,是一张更长的,有将近二十个代号,排在名单最前面的三个,是野火内部核心圈子里的行政账号,已注销,在数字系统里完全不可追溯,但在这份实体文件里,每个代号后面跟着一个括号,括号里是真实姓名。
她把名单从头到尾扫了一遍,在第七个代号的括号里,看见了白野的名字。
不是另一个与他同名的人,是全名,加上一个岗位说明,说明里写明了他在那次封存事件里的具体职能——执行负责人,全程参与,密钥转移的现场监督者。
三年前那次封存,白野是执行负责人,他全程知道密钥的存在,知道它没有被销毁,知道它被转移到了什么地方。
而今晚,他说他在安全屋外围等着,说他看了虹夏发来的核实数据才知道那个坐标,说他十分钟前才开始往这里走,他今晚说的每一句话,都是一条有意识铺设的误导。
她把那份名单的那一页折起来,夹在文件里,把档案盒盖上,把盒子抱在臂弯里,转身走出工作间,回到那个长方形仓库里。
兼定和联络员还在货架旁边,两个人都看见了她手里的档案盒,联络员的眼神落在那个盒子上,停了有两秒,是认出来了,但没有表示什么。
她对兼定说了一件事,说白野的名字在那份实体档案的名单里,他是三年前密钥转移的现场监督者,他今晚在这里等的那个人,不是要进这扇门的密钥持有者,他今晚等的是那个会来取密钥的人——而那个人,就是刚才把密钥从这个工作间里拔走的,是名单里的另一个代号对应的那个人。
兼定听完,没有立刻说什么,他把左手压在止血带上,往那台还亮着屏幕的工作间方向看了一眼,然后说了一件事,他说,他今晚进地下通道,不是追踪,是接头,那三个人里有一个是他今晚要接触的联络方,但在通道里他们没有完成交接,那个人提前用旧管道出去了,他手上没有拿到任何东西,就是说,如果密钥的物理载体是那个人取走的,那么那个人现在带着密钥在街道上,而那个人的目标,是把密钥交给等在外面的白野。
这件事的逻辑链在她脑子里接上了。
白野今晚不是来取档案的,他今晚是来完成一次交接的,密钥换到他手上,他拿着密钥,可以激活那个旧节点,而今晚安全屋里那台终端已经向那个旧节点传出了百分之六十到七十的数据包,如果旧节点被激活,那些数据包就会被处理,就能被阅读——今晚安全屋里所有人的行动轨迹、通讯记录、档案调取内容,都会成为一个外部系统的可读信息。
不是渗透,是收割,是有人用三年的时间,等着今晚这个时间窗口,把安全屋今晚所有人的信息用一次操作全部拿走。
而安排今晚这整个局的人——把手写坐标放进物资区,把档案盒藏在这个工作间,把卡片递给她,把权限发给她,用八奈见的监听设备让那台终端的传输被截断——是希望她今晚把这件事阻止。
是联络员。
是联络员在三年前就开始布的局,今晚让她一步一步走进来,走到这里,把那个档案盒拿在手上。
她把这件事对联络员说出来,不是问句。
联络员没有否认,她把那顶帽子从货架上取回来,重新戴上,整个动作里没有解释也没有辩解,只是把她手里那个档案盒往她怀里推了一下,示意她拿稳。
然后联络员说了今晚她说的第一句完整的话,她说,白野现在在这栋建筑外面,他在等交接,他的人在街道两侧,她出去之后他会发现情况不对,时间窗口比她想的要短,她需要在他发现档案盒不见了之前离开这里。
她需要从这里出去,带着那个盒子,去到一个白野的人找不到的地方,然后用那份名单里的信息,从另一个方向把今晚这件事捅出去。
这条路她能不能走,不取决于联络员,不取决于兼定,取决于现在她自己决定站在哪里。
她把档案盒往臂弯里压紧,对兼定说了一件事,她说她需要知道这栋建筑里,除了正面那道金属门,还有没有别的出口。
兼定往工作间方向看了一眼,然后往货架最里侧走了几步,移开一个放在地面上的储存箱,地面上露出了一道金属舱门,样式很旧,和整栋建筑的建设年代相符,舱门上有一个手动转锁,生锈了,但没有锁上。
地面舱门往下,是另一套管道,不是通风管道,是排水管道改建的,比通风管道宽,直立行走有困难,但是可以移动,出口在这栋建筑背面的街道,绕开了白野守着的正面方向。
兼定没有说他怎么知道这条路,但他已经先蹲下来,把手动转锁往左拧了三圈,舱门发出一声沉闷的金属声,打开了。
下面是黑的。
她在舱门边缘站了两秒,耳机里那个频段的脉冲信号在这一刻突然变了,不是中断,是信号强度骤增,说明旧频段的通讯源在距离她非常近的地方重新激活了,而且是多个信号源同时发出,不是对话,是一种协同行动时的位置确认信号。
白野的人开始移动了,他们收到了某种信号,开始往这栋建筑靠近。
交接没有发生,密钥没有到白野手上,但他们收到了信号,说明那个从旧管道出去的第三个人,在没有完成交接的情况下,用另一种方式通知了白野,告诉他今晚出了变故。
她的时间窗口收口了,不是四十分钟,是现在,是这一刻。
她把档案盒侧过来,压在前胸,双手护住,踩上舱门的第一级台阶,往下走,兼定在她进去之后跟上来,联络员是最后一个,她把地面上那个储存箱用脚踢回原位,盖住舱门打开时留下的痕迹,然后把舱门从里面带上,转锁锁死。
管道里是完全的黑暗,只有她耳机里那个频段的信号还在持续,信号强度在她进入管道之后开始下降,是她和那些通讯源的距离在拉开,说明她的移动方向是正确的,她在离那些信号越来越远。
管道里的移动很缓慢,不能直立,她把档案盒单手护住,另一只手摸索着前进,管道内壁是混凝土的,表面粗糙,划破手掌的边缘,她感到一条细小的疼痛,但没有停下来。
走了大约三分钟,前方出现了一点极微弱的光,是从外面透进来的,说明出口在那里。
她走到出口,那是一块嵌在建筑背面外墙靠地面位置的金属格栅,格栅向外推,格栅外面是一条窄巷,不是正面街道,是背面,没有路灯,但窄巷尽头有城市道路的光,可以辨认方向。
她把格栅推开,侧身出去,站在那条窄巷里,低头看了一眼档案盒,盒子还在,盖子压紧,没有松开。
她把手机拿出来,耳机里那个频段的信号已经很弱,说明白野的人还在建筑正面方向,没有绕过来,她现在的位置在他们的视野范围之外。
她发了一条消息给八奈见,非常短,只说了两件事,一件是她现在在那栋建筑背面的窄巷,她已经拿到了实体档案,另一件是她需要八奈见现在告诉她,安全屋外围还有没有白野没有调动的人,是只听她指令的人。
八奈见的回复来得很快,只有一句话,说有,在西侧,是她三年前独立布置的,从来没有在任何公开资源台账里登记过,白野不知道这些人的存在。
她把手机收起来,往窄巷尽头走,脚步压住,不快,保持不被听见的节奏,档案盒在臂弯里,兼定在她右后方三步跟着,联络员在最后,三个人在这条黑暗的窄巷里向前走,前方是城市道路的光,后方是那栋建筑里白野的人开始涌入之后发出的动静,她没有回头,她把所有注意力放在前方那个出口。
走到窄巷出口,她把手机屏幕亮了一下,看了一眼地图,西侧方向,八奈见说的那个位置,步行七分钟。
她刚要迈出窄巷,手机震动了,不是消息,是一个系统级别的推送,和今晚那条权限授予记录的格式完全一样,是野火档案系统的管理节点发出的,内容是一条警报,说明某个账号在刚才的三十秒内,对今晚她查阅过的那份档案进行了删除申请,申请方是野火内部的一个行政账号,和三年前那次封存的禁令申请人账号格式完全一致。
三年前封存的那个人,今晚要把那份档案从数字系统里再删除一次。
删除申请发出,意味着申请方此刻知道那份档案今晚被人查阅了,他们知道她查过,他们知道她看到了什么,而他们现在的反应不是追人,是先删档案,把数字系统里的痕迹清掉,然后才会来找她和那个档案盒。
那份档案的数字版在被删除,而实体版在她手上。
她把手机屏幕扣下去,迈出了窄巷,走进城市道路的灯光里,向西侧走去。
背后的那栋建筑里,传来了一声沉的、金属的撞击声,像是一道内部的门被强行推开了,然后是脚步声,不止一个人,快速移动,往她刚才离开的那个方向。
她没有跑,保持正常步速,档案盒压在臂弯里,七分钟,七分钟之后,那个白野从来不知道存在的人会出现。
但在她走出第四十步的时候,她前方的街道上,有一个人影从路口转进来,对着她迎面走来,步伐不快,两手放在外套口袋里,身形她认识,是今晚她不止一次在走廊里对过视的那个轮廓。
是八奈见。
她没有在西侧,她在这里,她在窄巷出口三十米外的路口,等在那里,她来之前就知道祥子会从这条路出来,就像今晚每一次她出现的时机都精确到不像是巧合。
两个人在街道灯光里相距二十米,对视。
八奈见从外套口袋里抽出一只手,手里拿着一个小型存储设备,是一个拇指大小的外接存储单元,外壳上有一条划痕,是使用痕迹,不是新的。
那个外接存储单元,就是两个小时前从工作间那台设备上被拔走的密钥物理载体。
八奈见是从工作间拿走密钥的那个人。
她不是从安全屋一直在公共区域监听的,她在中间某个时间段,用那套她自己铺设的独立监听系统让安全屋的监控保持了一个空档,她从安全屋出去,走正面街道,比联络员早进这栋建筑,比所有人都早,她进了工作间,拿走了密钥,然后回到安全屋,回到公共区域,继续守着,等祥子发现那些拼图,把其余的碎片全都捡起来。
八奈见今晚的站位,不是八奈见对祥子说的那个位置——她不是记录者,不是等待者,她是今晚整件事的另一条线的主导者,她的目标和联络员的目标方向相同,但她的手段是独立的,她从来没有把密钥放在会被白野的人拿到的位置上,她今晚一直在等的,不是那条被压着的关联浮出来,而是等一个有能力把今晚所有拼图接住的人,走到她面前,把那个档案盒接过去。
这个人,她等了三年。
祥子在街道灯光里站定,把臂弯里的档案盒压了一下,然后向八奈见走过去。