祥子把手机攥在手里,往那个从来没有进去过的房间走过去,备用灯在走廊末端打出明暗交界,那道和墙颜色几乎一样的门就在交界处,她把门把手握住,推了一下,门开着,没有上锁。
她没有进去,在门口侧身,借走廊的光把能看见的内部扫了一遍。
不是储藏间。
里面有一台运行中的数据终端,型号比会议室那台老,但指示灯是亮的,在黑暗里那些指示灯的颜色说明这台设备此刻仍然在传输某些东西。设备旁边的椅子上,放着一件折叠好的外套,她认出那件外套的颜色,是喜多的,今晚她见过喜多穿着它离开的。
喜多的外套在这里,但喜多不在这里。
外套叠好放在椅子上,下方压着什么,把边角略微顶起了一点。祥子没有走进去,她把身体往右偏了一点,勉强把那个被顶起的边角调出可读的角度,露出来的那一点是一张纸,纸上有字,只能看见最底部的两行。
那两行字是一个指令格式,末尾跟着一个确认代码,而确认代码前面的那半行,是一个她以为已经彻底封存的操作权限——安全屋最初建立时留下来的后门级别系统访问密钥。如果这个密钥被激活,安全屋内部所有加密通讯记录、今晚所有操作日志、包括白野今晚调取的外围联络员档案,全部可以被一个外部系统读取。
那台正在运行的终端,不是在存储,是在向外传输。
根据那个指令格式里的时间段,传输窗口从现在开始,还剩不到七分钟。
祥子往后退一步,把门带上,手机已经在拨白野,一边拨一边往走廊深处快走。她不能靠近那台设备,那个房间里有没有人她没有确认,走进去可能触发某种机制,而七分钟之内能做的只有一件事——让安全屋断开外部连接,把整个据点的对外数据通路切断,在传输完成之前让那台终端失去出口。
能做到这件事的是白野,或者是管理端重新启动之后的物理网络分配主控箱,那个主控箱的位置她记得,在公共区域靠窗一侧的内墙,她刚才检查控制箱的时候经过了它。
白野的电话没有接通,是信号问题,她换发消息,消息状态在跳,还没有送达。
走廊里,八奈见从公共区域方向走过来,和她迎面,手里拿着那个单耳耳机,耳机连线另一端接着一个小型接收模块,接收模块的指示灯是红色的,信号丢失的颜色。
两个人在走廊里站住。
八奈见先开口。她说,她刚才一直在监听那台设备的传输频率,信号在几分钟前突然中断,不是正常传输完成,是被人从外部切断,切断节点不在安全屋里。她在监听过程中截到了一段数据包的头部信息,传输目的地不是任何她认识的地址,但那个地址的格式,和野火三年前因内部渗透事件彻底封存的一个旧系统节点格式完全吻合。
那个旧节点按照档案记录应该已经永久停用,没有任何人可以重新激活它,除非有人持有那个旧节点的根权限密钥。
八奈见停顿了一下,说密钥的持有者,在三年前的封存文件上只登记了一个名字。她的手机在这一刻震动了,她看了一眼屏幕,把手机扣下去,然后抬起头,用一种很平静的、几乎没有语气起伏的声音说——那个密钥的登记持有者,和兼定现在发出来的位置信号,在同一条记录里,他们是同一个档案索引下的两个条目,他们之间有一种祥子从来没有被告知过的关联,而这个关联在三年前那次封存中,被人为地从所有可见记录里抹掉了。
这句话落下来,走廊里安静了几秒。
祥子把八奈见刚才说的话在脑子里重新放了一遍,把它和手里那张联络员递过来的卡片、卡片背面那个档案系统的索引编码放在一起比对,那个编码指向的档案层级,和八奈见说的那条被抹掉的关联,在时间节点上高度重合——都指向三年前,都指向那次封存事件,都指向同一个她从来没有被允许接触过的档案位置。
八奈见监听到信号中断,不是祥子造成的,不是她关掉那台终端,是从外部切断的,切断节点在安全屋之外,而那台终端的传输在她推门的时候还在进行。
这意味着有第三方在外部介入,在她发现那个房间之前,就已经有人切断了那条传输线路,而那个人的目的不是阻止传输,是把传输的目的地从对方那一侧斩掉,让数据包在空中丢失。
那台终端此刻传输的状态是什么,她不知道,因为她没有进去,但如果外部已经切断,那台设备现在要么在报错,要么在尝试重新建立连接。
她把这件事告诉八奈见,说那个房间里的终端她没有进去,让八奈见去物理断电,不要碰设备本身,去找主控箱,切掉那个房间的独立供电回路。
八奈见听完,没有问她怎么知道那个房间在哪里,直接往公共区域方向走,步伐快,但没有跑,是那种保持状态稳定的行进速度,她走的路线沿着内侧墙壁,没有靠窗,在经过公共区域入口的时候,她往里侧偏了一步,是避开某个视线角度的本能动作,但走廊里只有她自己,那个动作说明她在公共区域的时候对窗口方向保持着某种习惯性的警觉。
祥子看着她走进公共区域,在走廊里等了几秒,然后手机震动,不是白野,不是虹夏,是兼定的手机位置信号,刚才那条已经更新了,新的坐标显示兼定不在街道上了,他移动了,方向是从安全屋外侧的那条街道往更深处走,新坐标和那张手写纸上的设施坐标之间的距离,步行两分钟。
他在往那个设施走。
但他手上没有令牌,令牌在杂物间的密封袋里,在那里没有被动过,白野的人应该已经过去封了那间屋。
没有令牌进不了那扇有门禁的门。
然后她想到另一个可能性——杂物间里的那几张令牌,是她自己假设的那个人提前放进去的,但兼定在整件事里的位置如果和那个档案记录里的关联有关,他可能从来就不需要从杂物间取令牌,他持有的方式,是另一种。
她把这个推断压下来,把它放到一个待确认的位置,没有现在可以用来验证的手段。
白野的消息这个时候送达了,是一条回复,说外围的人已经控制了地下通道的入口格栅,格栅顶死,里面的三个人加上兼定都困在通道里,南端出口方向正在追,但南端的地形他们不熟,追的人需要时间。
然后白野的消息里还有一条,是关于那根储存管的,外围的人在格栅旁边地上发现了,密封完整,没有被打开过,他想知道这根管子是怎么到地面上的。
祥子把这件事在脑子里过了一遍,把厢式车边那两个人进入地下通道之前的动作重新还原——其中一个人手里拿着那根储存管,两个人都进去了,但储存管留在外面,密封完整,不是掉落,是放置,是有人在进通道前把它故意留在地面上,留在一个可以被发现的位置。
进通道的两个人,有一个在进去之前做了反向动作,是把货留在外面,不让它被带走。
但两个人同时进入,是哪一个做的这件事,她不知道,因为她当时已经不在巷口,她是在绕向安全屋的途中才接到白野这条消息的。
她把这件事告诉白野,让他确认那根储存管的具体落地位置和朝向,如果是正向摆放,是有人专门放置的,不是失手。
走廊里,虹夏从物资区方向快步走过来,手里拿着那个第三份储存盒,不是她命令虹夏去动那个盒子的,虹夏的表情说明发生了另一件事,她说,她守在物资区门口的时候,听见里面有动静,进去查,发现物资区内侧靠里那面墙上有一个通风检修口,检修口的螺丝是松的,是有人从里面拧松过的,在她进去查的时候,那个检修口是开着的,里面的人已经走了,走的是检修口那条路,不是她守着的门。
有人进过物资区,翻找过,弄掉了货架上一个储存盒,那个掉落的盒子里不是样本,是几张折叠的手写纸,现在散在地板上。
祥子让虹夏把那个储存盒放回原位,把掉落的手写纸原位不动,守住检修口,自己走进物资区,在备用灯的角度下把地上那些散落的纸捡起来展开。
是手写的,不是中文,是野火内部核心操作成员用过的那种备用记录格式,缩写加密,能看懂的人范围很窄。
她用大约十秒读完其中一组数字的含义——是一个设施坐标,加上一个入场时间窗口,时间是今晚,距现在还有四十分钟。
从安全屋去那个坐标,正常地面路线不少于三十分钟,加上门禁验证时间,窗口极紧。
她把那些纸叠好放进外套口袋,让虹夏守住检修口,同时在手机上把第三份储存盒的位置标出来,让白野的人来接管,自己走出物资区,在走廊里站了两秒,把现在的整个局面重新整理了一遍。
地下通道里三个人加兼定,格栅封死,信号发射器已被切断外部接收,厢式车被外围盯住,杂物间有提前准备好的背包和令牌,物资区被人翻过,手写坐标指向今晚四十分钟后有人要进入一个特定设施。
这些事同时发生,不是独立的,是同一个计划的不同层次展开。货只是手段,是让所有人的注意力停在样本位置这个问题上的遮盖物,而真正重要的是某个人今晚要用令牌进去的那扇门,以及门后面的那个地方能提供什么。
她把坐标和时间窗口发给白野,没有多说,转身往公共区域走。
公共区域里,八奈见刚从主控箱那边退开,她完成了断电操作,那个房间的独立供电回路已经切掉,那台终端现在是死的,不管之前的传输完成了多少,这个节点之后没有任何数据能从安全屋里再发出去。
但八奈见说了一件事,她在操作主控箱的时候,在箱体内侧发现了一个附加的小型继电器,不是安全屋原有的配置,是今晚加装进去的,这个继电器的功能是在主供电断开时自动切换到一个备用电路,但那个备用电路连接的不是应急电源,是那个密封房间的独立线路,意思是如果有人从外部断开主供电,那台终端不会直接断电,它会自动切换到另一个电源继续运行。
她能切掉的只有主供电回路,那个继电器已经被她物理拆下来了,但她不能确认在她拆掉之前,那台终端是否已经用备用电路又传出去了什么。
整件事里,有人对安全屋的内部结构的熟悉程度,远超祥子此前的任何估计,而且不止一个人在做准备,是分工的,是提前布置的,今晚安全屋内部发生的每一件事,都在某个更大的计划的时间轴上。
祥子把八奈见刚才说的继电器的事在脑子里压了一下,然后问了一件她一直没有找到答案的事——那个发来图片的号码,八奈见在整件事里是什么角色。
八奈见没有立刻回答。她走到窗边,把窗帘拉开一条极细的缝,往窄巷方向看了几秒,然后转过身,说了一段话,内容不是解释她的身份,而是从另一个角度陈述了一件事——她说,三年前那次封存,她在场,不是作为操作者,是作为记录者,她的职能是在封存完成之后核验所有被抹除条目的完整性,而在核验过程中,她发现了一条没有被成功抹除的关联,那条关联就是兼定的档案索引和那个密钥持有者之间的链接,她把这个发现压下来没有上报,因为她不知道上报给谁是安全的,那次封存本身就说明内部有渗透。
她选择压着这件事,同时她建立了一套独立的监听系统,用自己的设备,对今晚这个安全屋的通讯频率保持监控,是为了等那条被压着的关联重新浮出来——而今晚,它浮出来了。
这段话说完,祥子把它和联络员从管道里出来之后递给她的那张卡片放在一起,卡片背面的档案索引编码,指向的那个档案层级,和八奈见说的那条记录,是同一个位置。
联络员知道。八奈见知道。两个人都知道,但两个人今晚的行动方式完全不同,一个在管道里移动,一个在公共区域靠窗守着。
她们知道的东西是否完全一致,祥子不确定,但她现在确认了一件事——今晚在安全屋里,知道那条被抹掉的关联的人,不止一个,而这些人今晚的行动,有一部分在她的视野之外,有一部分在她看见但没有及时理解的地方发生了。
她把这些东西在脑子里压到后面,把最紧的那件事重新提出来——兼定在往那个设施的方向走,他手上没有从杂物间取令牌的记录,但他在往那里走,如果他持有令牌的方式是另一种,如果三年前那条被抹掉的关联本身就是他可以进那扇门的原因,那他今晚进地下通道、被格栅困住,是不是本来就不打算从格栅出来。
地下通道有另一个出口,兼定是第一个发现那个出口的人,他把位置信号在安全屋外侧的街道上发出来,是让她知道,他出来了,而且他出来的方向和那个设施的位置,步行两分钟。
她让他进去的,她守的是入口,她以为地下通道是困住那三个人的手段,但对兼定来说,那条通道是今晚他需要走的路。
这个判断如果是对的,那兼定进地下通道不是被动跟踪,是主动利用了这个局,而格栅里那两个后进去的人,以及提前进去的那一个,是他要在里面处理的事,不是绊脚石,是今晚他必须在那条地下通道里解决的另一场对话或者对抗。
她把这件事发给白野,同时把她手里的所有线索——杂物间令牌、物资区手写坐标、兼定位置信号、八奈见关于三年前那条记录的陈述、联络员的卡片——用最简短的方式整合成一条信息,不是提问,是把局面的当前状态告知白野,让他用外围资源去那个设施坐标的位置,在时间窗口还有四十分钟的时候先到,守住但不进入。
白野的回复来得很快,只有一句话,说他已经不在安全屋外围,他已经在往那个坐标走了,他十分钟前就开始走了,因为他在刚才虹夏发过来的核实节点数据里,看见了那个坐标。
这句话让祥子停了整整三秒。
虹夏发给白野建立的外部核实节点的内容,是她们在发现设备时应急发出的信息,那里面不应该有那个坐标,因为那个坐标是她从手写纸上读到的,而那些纸是她刚才才从物资区地板上捡起来的,比白野说的时间晚。
白野看见那个坐标,不是从虹夏发出的那条数据里看见的,是从另一个地方,他在说谎,或者他用了一个她没有参与的信息来源。
她把手机握在手里,把白野的这句话放在所有已知的事情旁边,走廊里的备用灯在这一刻亮度下降了一格,是供电不稳定的信号,是整个安全屋今晚第三次出现的电力异常,但这一次不是断电,是波动,是主控箱那条线路在刚才被改动之后,负荷重新分配产生的余震。
波动在三秒后稳定了,走廊里重新恢复到正常亮度。
祥子在这三秒的灯光变动里,看见了一件之前一直没有注意到的东西——走廊末端那道和墙颜色几乎一样的门,在刚才八奈见切断供电之后应该是完全黑暗的,但在这次波动里,那道门的下方门缝处,透出了一条极细的光,不是从外面进来的,是从里面的,颜色是蓝色的,是某种设备指示灯的颜色。
那台终端在断电之后还活着,或者,那个房间里还有另一台设备。
波动结束,那条光消失了,门缝重新回到黑暗,但她看见了,她看见了它亮过三秒。
她没有往那个方向走,她在走廊里站定,把手机屏幕亮起来,看了一眼时间,然后看了一眼兼定的位置信号,他的坐标已经不动了,停在那个设施外侧某个位置,没有继续往前,是在等什么。
四十分钟的时间窗口,白野在往那里走,兼定在外面等,那个设施的门禁还没有被触发,这意味着今晚要进那扇门的人还没有到,还在路上,或者还在安全屋里。
她把这个可能性推到最后,然后往那道门走过去,推开了门,走了进去。
里面的那台终端,屏幕是黑的,是真正断电的状态,但设备旁边的椅子上,喜多的外套被动过,不是她离开时折叠的那个状态,而是被翻开了,那张手写纸不在外套下面了,外套是空的,那张纸不见了。
椅子的位置往旁边偏了几厘米,是有人在这里坐过的,坐的时间不长,但偏移的方向指向设备正面,是一个操作设备的坐姿留下的位移。
那条蓝色的指示灯光,在波动的三秒里,是有人坐在这里,在操作某件东西,然后在供电波动恢复之前就已经离开了。
她在这个房间里站了不到五秒,把椅子的位移和消失的手写纸放在一起,这个房间在她之前、在八奈见切断供电之后,还有人进来过。
这个人知道她会来,或者知道八奈见会来切断电源,他提前在波动的窗口里完成了他需要做的事,带走了那张纸,然后在供电稳定、走廊亮度恢复之前,从这个房间里消失了。
这个人走的出口不是那道和墙颜色一样的门,因为她守在走廊里,她会看见。
她把视线移向房间内侧靠墙的位置,靠里那面墙上,有一个检修口,比物资区那个小,但规格相似,螺丝是松的,和物资区内侧那个一样,是同一个人拧松的,是今晚提前布置的退路,他们从这里进来,也从这里出去,从物资区到这个房间,再到走廊,再到整个安全屋,他们的移动路线始终在通风管道和检修口系统里,从来没有在备用灯照得到的地方正面出现过。
她把手机在手里攥了一下,往那个检修口走过去,把它推开了一条缝,往里侧听。
管道里没有声音,那个人已经走远了,或者已经出去了。
管道的走向她在脑子里过了一遍,这个检修口朝里走,连接的方向是物资区,再往里是走廊靠会议室那一段,最后通向安全屋另一侧的排气出口,而排气出口在外墙,外墙那侧对着的是安全屋外的第一条街道,不是窄巷,不是那条格栅封着的小巷,是正面街道。
正面街道上没有外围的人,白野在往那个设施走,外围的人在封窄巷那一侧,正面街道是今晚从来没有被封住的方向。
从这个检修口出去,走正面街道,去那个设施,时间刚好在窗口内。
她把检修口重新带上,走出那个房间,在走廊里把这个推断发给白野,只有一句话——有人会从正面街道那侧出去,不是窄巷,让他在那个设施入口等,不要进去。
白野的回复来得比她预期的慢,等了将近一分半钟,才来了一条,内容只有三个字,说他知道。
他早就知道了。
她把手机收进口袋,走廊里安静,备用灯稳定亮着,兼定的位置信号还停在原处没有动,地下通道里格栅的封口还顶着,手写纸消失了,那个持有密钥的人今晚是否已经进了那扇门,没有人告诉她。
她在走廊里站着,把所有已知的事情放在同一条线上,这条线的起点在三年前那次封存,末端在今晚那个设施的门禁,中间的每一段,都有人在某个她看不见的时刻,提前把路走过了一遍。
联络员把那张卡片递给她,然后消失了,再没有出现过。
她把手机重新拿出来,打开那个野火内部档案系统,用卡片背面的索引编码查,系统要求输入二级验证,她没有权限,页面停在那里,等一个她没有的密码。
然后,她的手机里来了一条新消息,不是任何她认识的联络方式发来的,是一个系统级别的推送,不是消息通知,是一条权限授予记录,发出方是野火档案系统的管理节点,内容是她的账号被授予了一个临时的档案查阅权限,有效期二十分钟,权限范围是一个特定的索引编号——就是那张卡片上的那个。
有人在现在,在这一刻,把这个权限给了她。
这个权限是谁发出来的,发出来的人现在在哪里,她不知道,但权限是真实的,系统验证通过,那个档案页面在她面前打开了。
她把屏幕亮度压低,在走廊里站着,开始读。
档案里是三年前那次封存事件的内部记录,不是公开版本,是核验版本,最后一次被人查阅的时间戳是三年零四个月前,查阅者的账号ID是一串匿名代码,不可追溯,但这条查阅记录下面有一个附注,附注是手动添加的,时间是三年前封存完成后的第七天,附注里只有一行字,说明了一件事——密钥持有者的档案被抹除,但密钥本身没有被销毁,它被转移了,转移的目的地是一个不在野火体系内的独立节点,而负责完成这次转移的人的代号,是一个她认识的,今晚一直在她身边出现的,某个人。
她把屏幕在这一行字面前停了将近十秒,权限的二十分钟倒计时在角落里走着,档案里更深处的内容她还没有读到,但这一行字已经足够让今晚所有发生过的事情的方向,重新对准一个她此前从来没有预期过的落点。
走廊另一端,有脚步声靠近,她把手机屏幕扣下去,抬起头,在备用灯的边沿光里,看见了来人的轮廓。